Itasca C++ Interface
izonething.h
Go to the documentation of this file.
1 #pragma once
2 // izonething.h
3 
9 #include "iblockdef.h"
11 
12 namespace itasca
13 {
14  class IThing;
15 }
16 
17 namespace models {
18  class ConstitutiveModel;
19 }
20 
21 namespace block
22 {
23 
24  class IVertexThing;
25  class IBlockThing;
26  class IFaceThing;
27 
33 
35  {
36  public:
38  static const FInt cpp = 23; // C++ extension from Fortran array
39 
41  virtual const itasca::IThing * getIThing() const=0;
43  virtual itasca::IThing * getIThing()=0;
45  inline static const TType type_ = 0x4ede2fe7;
47  virtual FInt getFortranOffset() const=0;
49  virtual uint64 getZoneID() const = 0;
52  virtual bool getBit(int bit) const=0;
58  virtual void setBit(int bit,bool b) const=0;
61  virtual QVariant getValue(int index) const=0;
66  virtual void setValue(int index,const QVariant &v) const=0;
68  virtual uint32 getNumVertices() const=0;
70  virtual uint32 getNumFaces() const=0;
73  virtual const IVertexThing * getVertexThing(qint32 index) const=0;
76  virtual uint64 getVertexThingID(qint32 index) const=0;
79  virtual FInt getVertex(qint32 index) const=0;
82  virtual uint32 getFaceSize(uint32 face) const=0;
86  virtual const IVertexThing * getFaceVertexThing(uint32 face,uint32 index) const=0;
90  virtual uint32 getFaceVertexIndex(uint32 face,uint32 index) const=0;
94  virtual DVect3 getFaceNormal(uint32 face) const=0;
98  virtual DVect3 getFaceCentroid(uint32 face) const=0;
102  virtual const IFaceThing* getFaceThing(uint32 face) const=0;
106  virtual uint64 getFaceThingID(uint32 face) const=0;
109  virtual const IZoneThing * getJoin(uint32 face) const=0;
111  virtual double getDensity() const=0;
113  virtual void setDensity(double d)=0;
114  virtual const models::ConstitutiveModel* getCModel() const = 0;
116  virtual string getModelName() const=0;
118  virtual void setModelName(const string &mname)=0;
121  virtual StringList getModelStates() const = 0;
123  virtual int getState() const=0;
125  virtual void setState(int s)=0;
127  virtual string getStateString(bool omitpaststate=false) const=0;
130  virtual uint32 getPropertyIndex(const string &sc) const=0;
133  virtual string getPropertyName(uint32 index) const=0;
135  virtual StringList getPropertyNames() const=0;
138  virtual base::Property getProperty(uint index) const=0;
141  virtual base::Property getProperty(const string& propName) const=0;
143  virtual void setProperty(const string &sprop, base::Property val)=0;
145  virtual const QStringList getThermProperties() const=0;
148  virtual uint32 getThermPropertyIndex(const QString &sc) const=0;
151  virtual QVariant getThermProperty(uint index) const=0;
154  virtual QVariant getThermProperty(const QString& propName) const=0;
156  virtual bool setThermProperty(const QString& sprop, QVariant value)=0;
158  virtual const QStringList getFluidProperties() const=0;
161  virtual uint32 getFluidPropertyIndex(const QString &sc) const=0;
164  virtual QVariant getFluidProperty(uint index) const=0;
167  virtual QVariant getFluidProperty(const QString& propName) const=0;
169  virtual bool setFluidProperty(const QString& sprop, QVariant value)=0;
171  virtual double getSpare() const=0;
173  virtual SymTensor getStress(bool bEffective) const=0;
175  virtual void setStress(const SymTensor &st)=0;
177  virtual double getPP() const=0;
179  virtual SymTensor getStrainRate() const=0;
181  virtual SymTensor getStrainIncrement() const=0;
183  virtual SymTensor getRotStrainRate() const=0;
185  virtual SymTensor getRotStrainIncrement() const=0;
187  virtual FInt getBlock() const=0;
189  virtual IBlockThing* getBlockThing() const=0;
191  virtual uint64 getBlockThingID() const=0;
193  virtual double getMass() const=0;
195  virtual int getMaterialNumber() const=0;
197  //virtual double getMaxPressure() const=0;
199  //virtual double getVolumetricStrain() const=0;
201  //virtual double getMaxVolumetricStrain() const=0;
203  virtual bool isExcavated() const=0;
205  virtual bool isRemoved() const=0;
207  virtual bool getHidden() const=0;
209  virtual double getZoneVolume() const=0;
211  virtual uint32 getOverlay() const=0;
213  virtual double getMinEdgeLength() const=0;
215  virtual bool checkGoodForFLAC3D() const=0;
217  virtual DVect3 getFluidDischarge() const=0;
219  virtual DVect3 getThermalFlux() const=0;
221  virtual double getSxx() const=0;
223  virtual double getSyy() const=0;
225  virtual double getSzz() const=0;
227  virtual double getSxy() const=0;
229  virtual double getSxz() const=0;
231  virtual double getSyz() const=0;
233  virtual void setSxx(double s)=0;
235  virtual void setSyy(double s)=0;
237  virtual void setSzz(double s)=0;
239  virtual void setSxy(double s)=0;
241  virtual void setSxz(double s)=0;
243  virtual void setSyz(double s)=0;
248  virtual double getStrengthStressRatio(const SymTensor &s) const=0;
250  virtual double getZoneCondition(int i) const=0;
252  virtual DVect3 getDeformedPosition(bool active, double factor) const=0;
254  virtual double getSSI() const=0;
256  virtual double getSSR() const=0;
258  virtual double getVSI() const=0;
260  virtual double getVSR() const=0;
262  virtual DVect3 getLocation() const = 0;
263  };
264 
265 } // end namespace block
266 // EOF
Definition: basestring.h:77
Definition: property.h:20
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 FaceThing, a class that holds extra data not in the fortran arrays....
Definition: ifacething.h:33
This is the interface for VertexThing. This will be stored in a container and the ID will be stored i...
Definition: ivertexthing.h:29
This is the interface for ZoneThing, a class that holds extra data not in the fortran arrays....
Definition: izonething.h:35
virtual uint32 getThermPropertyIndex(const QString &sc) const =0
virtual double getSSI() const =0
Return Shear Strain increment.
virtual SymTensor getStrainRate() const =0
Return strain rate.
virtual QVariant getThermProperty(const QString &propName) const =0
virtual double getPP() const =0
Return zone pore pressure (= average of gridpoint pore pressures)
virtual void setSxx(double s)=0
Set xx component of stress.
virtual DVect3 getFaceNormal(uint32 face) const =0
virtual itasca::IThing * getIThing()=0
Returns a IThing pointer.
virtual void setBit(int bit, bool b) const =0
virtual int getState() const =0
Returns the code for the plastic state.
virtual double getSSR() const =0
Return Shear Strain rate increment.
virtual const QStringList getThermProperties() const =0
Returns the list of properties for the thermal model.
virtual string getModelName() const =0
Returns the name of the mechanical constitutive model present in the zone.
virtual bool getHidden() const =0
Returns true if zone or host block is hidden.
virtual const itasca::IThing * getIThing() const =0
Returns a const IThing pointer.
virtual double getVSR() const =0
Return Volumetric Strain rate increment.
virtual uint64 getZoneID() const =0
Return the zone ID.
virtual uint32 getFaceSize(uint32 face) const =0
virtual SymTensor getStress(bool bEffective) const =0
Return zone stress.
virtual uint32 getOverlay() const =0
Returns overlay number (0-3). Used in quad zoning.
virtual bool isExcavated() const =0
Returns total volumetric strain.
virtual double getZoneVolume() const =0
Returns zone volume.
virtual StringList getModelStates() const =0
virtual base::Property getProperty(const string &propName) const =0
virtual void setModelName(const string &mname)=0
Set constitutive modoel name.
virtual const IFaceThing * getFaceThing(uint32 face) const =0
Return 0 if not a block face.
virtual uint32 getNumVertices() const =0
Returns the number of vertices used by the zone.
virtual void setState(int s)=0
Sets the code for the plastic state.
virtual double getSxz() const =0
Get xz component of stress (=zx)
virtual SymTensor getRotStrainIncrement() const =0
Return rotational strain increment.
virtual double getDensity() const =0
returns the zone density
virtual FInt getBlock() const =0
return fortran offset of host block
virtual SymTensor getRotStrainRate() const =0
Return rotational strain rate.
virtual bool setFluidProperty(const QString &sprop, QVariant value)=0
Set fluid property sprop to value. Returns false if property not found.
virtual void setSyz(double s)=0
Set yz component of stress (=zy)
virtual double getSyz() const =0
Get yz component of stress (=zy)
virtual double getZoneCondition(int i) const =0
Returns the condition of zone geometry.
virtual uint32 getNumFaces() const =0
Returns the number of faces used by the zone.
virtual void setSyy(double s)=0
Set yy component of stress.
virtual double getSxx() const =0
Get xx component of stress.
virtual string getStateString(bool omitpaststate=false) const =0
Returns string associated with state.
virtual const IVertexThing * getFaceVertexThing(uint32 face, uint32 index) const =0
virtual uint32 getPropertyIndex(const string &sc) const =0
static const TType type_
type used in IThing typing system
Definition: izonething.h:45
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 QVariant getValue(int index) const =0
virtual void setSzz(double s)=0
Set zz component of stress.
virtual DVect3 getFaceCentroid(uint32 face) const =0
virtual bool setThermProperty(const QString &sprop, QVariant value)=0
Set thermal property sprop to value. Returns false if property not found.
virtual double getSpare() const =0
Returns value of spare offset.
virtual void setDensity(double d)=0
sets the density of the individual zone (not the material density)
virtual uint32 getFluidPropertyIndex(const QString &sc) const =0
virtual QVariant getThermProperty(uint index) const =0
virtual bool getBit(int bit) const =0
virtual void setValue(int index, const QVariant &v) const =0
Note - this is const through some hack so that we can use const ZoneThings when getting data.
virtual const IZoneThing * getJoin(uint32 face) const =0
virtual double getStrengthStressRatio(const SymTensor &s) const =0
virtual uint64 getFaceThingID(uint32 face) const =0
virtual double getMinEdgeLength() const =0
Get minimum edge length.
virtual uint64 getBlockThingID() const =0
Return host blockthing id.
virtual double getSzz() const =0
Get zz component of stress.
virtual QVariant getFluidProperty(uint index) const =0
virtual double getVSI() const =0
Return Volumetric Strain increment.
virtual int getMaterialNumber() const =0
return zone material number
virtual void setSxz(double s)=0
Set xz component of stress (=zx)
virtual IBlockThing * getBlockThing() const =0
Return host blockthing.
virtual SymTensor getStrainIncrement() const =0
Return strain increment.
virtual DVect3 getThermalFlux() const =0
Get thermal flow vector.
virtual bool isRemoved() const =0
Returns true if zone is in a block that is removed.
virtual void setStress(const SymTensor &st)=0
Set the zone stress.
virtual double getSyy() const =0
Get yy component of stress.
virtual uint32 getFaceVertexIndex(uint32 face, uint32 index) const =0
virtual QVariant getFluidProperty(const QString &propName) const =0
virtual base::Property getProperty(uint index) const =0
virtual double getSxy() const =0
Get xy component of stress (=yx)
virtual const IVertexThing * getVertexThing(qint32 index) const =0
virtual StringList getPropertyNames() const =0
returns a list of all the valid properties of the current constitutive model assigned to this zone
virtual void setProperty(const string &sprop, base::Property val)=0
Set property sprop to value. Returns false if property not found.
virtual const QStringList getFluidProperties() const =0
Returns the list of properties for the matrix flow model.
virtual DVect3 getLocation() const =0
Returns zone position.
virtual bool checkGoodForFLAC3D() const =0
Checks to ascertain if the tet volume will be adequate for FLAC3D.
virtual FInt getVertex(qint32 index) const =0
static const FInt cpp
offset to obtain pointer to zonething ID
Definition: izonething.h:38
virtual FInt getFortranOffset() const =0
Return fortran offset. Necessary for gui queries.
virtual uint64 getVertexThingID(qint32 index) const =0
virtual DVect3 getFluidDischarge() const =0
Get the fluid discharge vector.
virtual double getMass() const =0
return zone mass
virtual void setSxy(double s)=0
Set xy component of stress (=yx)
virtual string getPropertyName(uint32 index) const =0
Base class for items that will be stored in containers.
Definition: ithing.h:30
The base class for constitutive model plug-ins.
Definition: conmodel.h:33
Generic base class for the zone interface made available to the constitutive model system.
Definition: igenericzone.h:23
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
Fortran to C++ type declarations.
Generic base class for the zone interface made available to the constitutive model system.
namespace Itasca
Definition: basememory.cpp:10
The Constitutive Model interface library.
Definition: conmodel.cpp:7