Itasca C++ Interface
ivertexthing.h
Go to the documentation of this file.
1 #pragma once
2 // ivertexthing.h
3 
4 #include "iblockdef.h"
5 #include "base/src/farray.h"
6 
12 namespace itasca
13 {
14  class IThing;
15 }
16 
17 namespace block
18 {
19  class IBlockThing;
20  class IFaceThing;
21  class IFlowKnotThing;
22 
29  {
30  public:
32  static const FInt cpp = 39; // C++ extension from Fortran array
33 
35  enum {BoundFree=0, BoundLoad, BoundViscous, BoundVelocity};
36 
38  inline static const TType type_ = 0x4ed7cfbd;
40  virtual const itasca::IThing * getIThing() const=0;
42  virtual itasca::IThing * getIThing()=0;
44  virtual FInt getFortranOffset() const=0;
46  virtual quint64 getVertexID() const=0;
48  virtual FInt getThreedecID() const=0;
51  virtual bool getBit(int bit) const=0;
57  virtual void setBit(int bit,bool b) const=0;
60  virtual QVariant getValue(int index) const=0;
65  virtual void setValue(int index,const QVariant &v) const=0;
67  virtual DVect3 getLocation() const=0;
69  virtual double getPP() const=0;
71  virtual void setPP(double pp)=0;
73  virtual double getTemperature() const=0;
75  virtual void setTemperature(double temp, bool dtemp=false)=0;
77  virtual bool getTemperatureFixed() const=0;
79  virtual void iniTemperatureAnalytical(double temp)=0;
81  virtual DVect3 getDisplacement() const=0;
83  virtual void setDisplacement(const DVect3 & dv)=0;
85  virtual DVect3 getSmallDisplacement() const=0;
87  virtual DVect3 getVelocity() const=0;
89  virtual void setVelocity(const DVect3 & dv)=0;
91  virtual DVect3 getAcceleration() const=0;
93  virtual DVect3 getForce() const=0;
95  virtual void addForce(const DVect& df) = 0;
97  virtual double getSpare() const=0;
99  virtual FInt getBlock() const=0;
101  virtual IBlockThing * getBlockThing() const=0;
103  virtual quint64 getBlockThingID() const=0;
105  virtual SymTensor getHoStress(bool bEffective) const=0;
107  virtual bool getHidden() const=0;
109  virtual DVect3 getAppliedLoad() const=0;
112  virtual void setAppliedLoad(const DVect3 &dv)=0;
115  virtual DVect3 getAppliedLoadInc() const=0;
117  virtual void setAppliedLoadInc(const DVect3 &dv)=0;
119  virtual DVect3 getReactionForce() const=0;
121  virtual DVect3 getAppliedVelocity() const=0;
124  virtual void setAppliedVelocity(const DVect3 &dv)=0;
127  virtual void setAppliedVelocity(double value, uint component)=0;
131  virtual IVect3 getBCType() const=0;
134  virtual void setBCType(const IVect3& iv)=0;
136  virtual bool getBCNormal() const=0;
138  virtual bool isExcavated() const=0;
140  virtual bool isRemoved() const=0;
144  virtual FArray<const IFaceThing *> getFaces(bool rigid) const=0;
146  virtual bool isValid() const=0;
148  virtual IFlowKnotThing * getFlowKnot() const=0;
150  virtual double getAppliedThermalFlux() const=0;
152  virtual double getThermalFlux() const = 0;
154  virtual double getThermalMass() const = 0;
156  virtual DVect3 getDeformedPosition(bool active, double factor) const=0;
158  virtual double getDynamicMass() const = 0;
160  virtual double getTotalForce() const = 0;
162  virtual IBlockThing* getFaceBlockThing() const = 0;
164  virtual double getStiffness() const = 0;
166  virtual void setStiffness(double value) = 0;
168  virtual double getMass() const = 0;
170  virtual void setMass(double value) = 0;
172  virtual double getDensityScalingFactor() const = 0;
174  virtual void setDensityScalingFactor(double value) = 0;
176  virtual double getDTemperature() const = 0;
179  virtual void addToSelStiffness(double ss) = 0;
182  virtual void addToSelMass(double sm) = 0;
184  virtual double getForceRatio() const = 0;
186  virtual void setForceRatioTarget(double d) = 0;
188  virtual double getForceRatioTarget() const = 0;
190  virtual double getConvergence() const = 0;
191  };
192 
193 } // end namespace block
194 // EOF
An array class that attempts to minimize unnecessary heap access.
Definition: farray.h:25
This is the interface for BlockThing, a class that holds extra data not in the fortran arrays....
Definition: iblockthing.h:32
This is the interface for FlowKnotThing, a C++ wrapper for a flow knot This will be stored in a conta...
Definition: iflowknotthing.h:30
This is the interface for VertexThing. This will be stored in a container and the ID will be stored i...
Definition: ivertexthing.h:29
virtual FInt getBlock() const =0
return fortran offset of host block
virtual DVect3 getVelocity() const =0
Returns gridpoint velocity.
virtual void setPP(double pp)=0
set the gridpoint pore pressure
virtual quint64 getVertexID() const =0
Return Thing ID.
virtual IFlowKnotThing * getFlowKnot() const =0
Return Flow Knot associated with this vertex. Returns null if none.
virtual void setDisplacement(const DVect3 &dv)=0
Set the gridpoint displacement.
virtual bool isExcavated() const =0
Returns true if host block is marked as excavated.
virtual const itasca::IThing * getIThing() const =0
Returns a const IThing pointer.
virtual void setBCType(const IVect3 &iv)=0
virtual bool isRemoved() const =0
Returns true if host block is removed.
virtual void setDensityScalingFactor(double value)=0
Set density scaling factor.
virtual itasca::IThing * getIThing()=0
Returns a IThing pointer.
virtual double getAppliedThermalFlux() const =0
Return applied thermal flux.
virtual void setAppliedLoadInc(const DVect3 &dv)=0
Set the applied load increment on the vertex.
virtual double getForceRatio() const =0
Return current local force ratio.
virtual void iniTemperatureAnalytical(double temp)=0
Initialize gridpoint temperatures for analytical thermal solution.
virtual double getPP() const =0
Returns gridpoint pore pressure.
virtual double getTotalForce() const =0
Return total force magnitude.
virtual DVect3 getDeformedPosition(bool active, double factor) const =0
Return the position of the gridpoint with deformation exaggerated by factor if active is true.
virtual double getDTemperature() const =0
Returns temperature change at gridpoint. Returns 0 if not configured for thermal.
virtual DVect3 getAppliedLoad() const =0
Returns the load (force) applied to the vertex.
virtual void setTemperature(double temp, bool dtemp=false)=0
Sets gridpoint temperature. Does nothing if not configured for thermal.
virtual double getForceRatioTarget() const =0
Return force ratio target.
virtual double getMass() const =0
Return face block thing. Returns nullptr if not on a faceblock.
virtual DVect3 getAppliedLoadInc() const =0
static const FInt cpp
offset for index to VertexThing ID
Definition: ivertexthing.h:32
virtual bool isValid() const =0
Return true if VertexThing and Fortran vertex are in sync.
virtual double getDynamicMass() const =0
Return dynamic mass.
virtual void setStiffness(double value)=0
Set gridpoint stiffness.
virtual void addForce(const DVect &df)=0
Add input vector to current gridpoijnt force.
virtual SymTensor getHoStress(bool bEffective) const =0
return gridpoint stress for high-order zones
virtual bool getTemperatureFixed() const =0
Returns true if temperature is fixed. Returns 0 if not configured for thermal.
virtual void setMass(double value)=0
Set vertex mass.
virtual quint64 getBlockThingID() const =0
return host BlockThing ID
virtual void addToSelMass(double sm)=0
virtual IBlockThing * getFaceBlockThing() const =0
return face block thing. Returns nullptr if not on a faceblock
virtual bool getBCNormal() const =0
Return true if a normal velocity boundary condition is present.
virtual void addToSelStiffness(double ss)=0
virtual IVect3 getBCType() const =0
Return the type of boundary condition for this vertex in each direction Components of the vector corr...
virtual void setAppliedLoad(const DVect3 &dv)=0
virtual void setBit(int bit, bool b) const =0
virtual void setAppliedVelocity(const DVect3 &dv)=0
virtual DVect3 getSmallDisplacement() const =0
Returns gridpoint small strain displacement.
virtual void setForceRatioTarget(double d)=0
Set force ratio target.
virtual void setAppliedVelocity(double value, uint component)=0
virtual double getThermalMass() const =0
Return thermal mass.
virtual DVect3 getReactionForce() const =0
Returns the reaction force at the vertex.
virtual FInt getThreedecID() const =0
Return vertex 3DEC id used for structural elements (not the same as Thing ID)
virtual bool getBit(int bit) const =0
virtual DVect3 getDisplacement() const =0
Returns gridpoint displacement.
virtual bool getHidden() const =0
Returns true if vertex or host block is hidden (TODO - check host zone)
virtual DVect3 getAppliedVelocity() const =0
Returns the velocity applied to the vertex.
virtual double getConvergence() const =0
Return convergence ratio (0-1)
virtual double getThermalFlux() const =0
Return thermal flux.
virtual void setVelocity(const DVect3 &dv)=0
Set the gridpoint velocity.
virtual QVariant getValue(int index) const =0
virtual IBlockThing * getBlockThing() const =0
return host BlockThing
virtual double getDensityScalingFactor() const =0
Return density scaling factor.
virtual DVect3 getAcceleration() const =0
Returns gridpoint acceleration. Returns 0,0,0 if not configured for dynamic.
virtual void setValue(int index, const QVariant &v) const =0
Note - this is const through some hack so that we can use const VertexThings when getting data.
virtual FInt getFortranOffset() const =0
Return vertex fortran offset.
virtual double getSpare() const =0
Returns contents of gridpoint spare offset.
virtual DVect3 getForce() const =0
Returns gridpoint unbalanced (??) force.
virtual double getTemperature() const =0
Returns gridpoint temperature. Returns 0 if not configured for thermal.
static const TType type_
type used in IThing typing system
Definition: ivertexthing.h:38
virtual DVect3 getLocation() const =0
Returns gridpoint position.
virtual FArray< const IFaceThing * > getFaces(bool rigid) const =0
virtual double getStiffness() const =0
Return gridpoint stiffness.
Base class for items that will be stored in containers.
Definition: ithing.h:30
An array class that attempts to minimize unnecessary heap access.
uint32 TType
class type indicator
Definition: basedef.h:46
int32 FInt
Interface to provide access to 3DEC modules, global data, list of 3DEC entities, etc.
Definition: iblockdef.h:19
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition: dim.h:150
Fortran to C++ type declarations.
namespace Itasca
Definition: basememory.cpp:10