Itasca C++ Interface
Loading...
Searching...
No Matches
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
12namespace itasca
13{
14 class IThing;
15}
16
17namespace 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;
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
A symmetric 2nd order tensor.
Definition symtensor.h:22
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 IFlowKnotThing * getFlowKnot() const =0
Return Flow Knot associated with this vertex. Returns null if none.
virtual quint64 getVertexID() const =0
Return Thing ID.
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 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 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 itasca::IThing * getIThing()=0
Returns a IThing pointer.
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 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 IBlockThing * getBlockThing() const =0
return host BlockThing
virtual FArray< const IFaceThing * > getFaces(bool rigid) const =0
virtual void setAppliedVelocity(const DVect3 &dv)=0
virtual DVect3 getSmallDisplacement() const =0
Returns gridpoint small strain displacement.
virtual IBlockThing * getFaceBlockThing() const =0
return face block thing. Returns nullptr if not on a faceblock
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 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 const itasca::IThing * getIThing() const =0
Returns a const IThing pointer.
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:154
Fortran to C++ type declarations.
namespace Itasca
Definition basememory.cpp:10