Itasca C++ Interface
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
isubcontactthing.h
Go to the documentation of this file.
1 #pragma once
2 // isubcontactthing.h
3 
4 #include "iblockdef.h"
5 
11 namespace itasca
12 {
13  class IThing;
14 }
15 
16 namespace block
17 {
18  class IFaceThing;
19  class IVertexThing;
20  class IContactThing;
21  class IBlockThing;
22  class IFlowZoneThing;
23  class IFlowPlaneVertexThing;
24 
32  {
33  public:
35  enum SubcontactType {VertexFace=0, EdgeEdge};
37  inline static const TType type_ = 0x4f54d345;
39  virtual const itasca::IThing * getIThing() const=0;
41  virtual itasca::IThing * getIThing()=0;
43  virtual FInt getFortranOffset() const=0;
45  virtual quint64 getSubcontactID() const=0;
47  virtual const IContactThing * getHostContact() const=0;
49  virtual quint64 getHostContactID() const=0;
51  virtual DVect3 getLocation() const=0;
53  virtual bool getHidden() const=0;
55  virtual IFaceThing * getFace() const=0;
57  virtual quint64 getFaceID() const=0;
59  virtual IVertexThing * getVertex() const=0;
61  virtual quint64 getVertexID() const=0;
64  virtual quint64 getFractureID() const=0;
66  virtual quint64 getDFN_ID() const = 0;
68  virtual QString getDFN_name() const = 0;
70  virtual int getMaterial() const=0;
72  virtual QString getMaterialString() const = 0;
74  virtual int getConstitutive() const=0;
76  virtual DVect3 getShearForce() const=0;
78  virtual void setShearForce(const DVect3 &dv)=0;
80  virtual double getNormalForce() const=0;
81  // Set the normal force magnitude
82  virtual void setNormalForce(double nf)=0;
84  virtual DVect3 getShearDisplacement() const=0;
86  virtual void setShearDisplacement(const DVect3 &dv)=0;
88  virtual double getNormalDisplacement() const=0;
90  virtual void setNormalDisplacement(double nd)=0;
93  virtual double getArea() const=0;
95  virtual double getNormalStress() const=0;
97  virtual double getShearStress() const=0;
99  virtual QString getModel() const=0;
101  virtual void setModel(const QString &s)=0;
103  virtual QString getStateString() const=0;
105  virtual int getState() const=0;
107  virtual void setState(int i)=0;
109  virtual const IBlockThing * getBlock1() const=0;
111  virtual const IBlockThing * getBlock2() const=0;
113  virtual quint64 getBlock1_ID() const=0;
115  virtual quint64 getBlock2_ID() const=0;
117  virtual QStringList getProperties() const=0;
120  virtual UInt getPropertyIndex(const QString &prop) const=0;
123  virtual QVariant getProperty(UInt index) const=0;
125  virtual void setProperty(const QString &prop, QVariant val) = 0;
127  virtual SubcontactType getSubcontactType() const=0;
129  virtual double getPorePressure() const=0;
131  virtual void setPorePressure(double d)=0;
133  virtual IFlowZoneThing * getFlowZone() const=0;
135  virtual IFlowPlaneVertexThing* getFlowVertex() const = 0;
137  virtual bool isExcavated() const=0;
139  virtual double getInitialAperture() const=0;
141  virtual void setInitialAperture(double ap0)=0;
144  virtual bool getBit(int bit) const=0;
150  virtual void setBit(int bit,bool b) const=0;
152  virtual DVect3 getShearVelocity() const=0;
154  virtual double getMaxShear() const=0;
156  virtual void setMaxShear(double d) = 0;
158  virtual double getEnergy(UInt i) const = 0;
159  virtual double getEnergy(const QString& e) const = 0;
160  virtual double getTotalEnergy() const = 0;
162  virtual IBlockThing* getFaceBlock1() const = 0;
164  virtual IBlockThing* getFaceBlock2() const = 0;
166  virtual bool isBonded() const = 0;
168  virtual double getFOS() const = 0;
169 
170 
171 
172 
173 
174  };
175 
176 } // end namespace block
177 // EOF
virtual bool isBonded() const =0
Return true if subcontact has non-zero strength and has not failed.
Definition: icontactthing.h:30
virtual quint64 getSubcontactID() const =0
Return Thing ID.
virtual void setNormalDisplacement(double nd)=0
Set the normal displacement.
virtual IVertexThing * getVertex() const =0
Returns the vertex associated with this subcontact. null for no vertex.
virtual int getConstitutive() const =0
Return constitutive model number.
namespace Itasca
Definition: basememory.cpp:9
virtual double getEnergy(UInt i) const =0
Return energy.
Int FInt
Interface to provide access to 3DEC modules, global data, list of 3DEC entities, etc.
Definition: iblockdef.h:19
virtual quint64 getVertexID() const =0
Returns the Vertex ID associated with the subcontact. 0 for no vertex.
Base class for items that will be stored in containers.
Definition: ithing.h:31
This is the interface for SubcontactThing, a class that holds extra data not in the fortran arrays....
Definition: isubcontactthing.h:31
virtual quint64 getFractureID() const =0
virtual const IBlockThing * getBlock1() const =0
Return block 1 of the subcontact.
virtual IBlockThing * getFaceBlock2() const =0
Return second fblockthing (nullptr if not a faceblock)
virtual void setBit(int bit, bool b) const =0
Fortran to C++ type declarations.
virtual DVect3 getShearForce() const =0
Return the shear force vector.
virtual QString getStateString() const =0
Get the subcontact failure state as a string.
virtual quint64 getBlock2_ID() const =0
Return id of block 2 of the subcontact.
virtual double getPorePressure() const =0
Return the pore pressure on the subcontact.
virtual double getMaxShear() const =0
Returns maximum shear displacement.
virtual bool isExcavated() const =0
Return true if subcontact is excavate. False otherwise.
virtual SubcontactType getSubcontactType() const =0
Return the subcontact type.
SubcontactType
enumeration of possible subcontact types
Definition: isubcontactthing.h:35
virtual DVect3 getLocation() const =0
Returns subcontact position.
This is the interface for FlowPlaneVertexThing, a C++ wrapper for a flow plane vertex This will be st...
Definition: iflowplanevertexthing.h:27
virtual quint64 getHostContactID() const =0
Return host contact id.
virtual double getShearStress() const =0
Return the magnitude of shear stress.
virtual double getNormalStress() const =0
Return the normal stress.
virtual void setModel(const QString &s)=0
Set joint constitutive model.
virtual QString getMaterialString() const =0
Return material as string.
unsigned int UInt
unsigned 32 bit
Definition: basedef.h:31
virtual IFlowPlaneVertexThing * getFlowVertex() const =0
Return the flow plane vertex associated with the subcontact. Null if no flow.
This is the interface for BlockThing, a class that holds extra data not in the fortran arrays....
Definition: iblockthing.h:31
virtual const IBlockThing * getBlock2() const =0
Return block 2 of the subcontact.
unsigned int TType
class type indicator
Definition: basedef.h:41
virtual void setProperty(const QString &prop, QVariant val)=0
Set property with name prop to value val.
virtual QVariant getProperty(UInt index) const =0
static const TType type_
type used in IThing typing system
Definition: isubcontactthing.h:37
virtual quint64 getDFN_ID() const =0
Returns ID of DFN used to create contact. 0 if DFN was not used.
virtual void setInitialAperture(double ap0)=0
Set the initial mechanical aperture.
virtual int getMaterial() const =0
Return material number.
virtual FInt getFortranOffset() const =0
Return contact fortran offset. Necessary for gui queries.
virtual DVect3 getShearDisplacement() const =0
Return the shear displacement vector.
virtual QString getDFN_name() const =0
Returns name of DFN used to create contact. Empty string if DFN was not used.
virtual UInt getPropertyIndex(const QString &prop) const =0
virtual double getInitialAperture() const =0
Get the initial mechanical aperture.
virtual bool getBit(int bit) const =0
virtual QString getModel() const =0
Get the joint constitutive model as a string.
virtual double getNormalForce() const =0
Return the normal force magnitude.
virtual const IContactThing * getHostContact() const =0
Return host ContactThing.
This is the interface for VertexThing. This will be stored in a container and the ID will be stored i...
Definition: ivertexthing.h:28
virtual double getNormalDisplacement() const =0
Return the normal displacement.
virtual quint64 getBlock1_ID() const =0
Return id of block 1 of the subcontact.
virtual int getState() const =0
Get the subcontact failure state as an integer.
virtual IFaceThing * getFace() const =0
Returns the face associated with this subcontact. null for no face.
virtual void setPorePressure(double d)=0
Set the pore pressure on the subcontact.
virtual QStringList getProperties() const =0
returns a list of all the valid properties of the current constitutive model assigned to this subcont...
virtual void setShearForce(const DVect3 &dv)=0
Set the shear force vector.
virtual DVect3 getShearVelocity() const =0
Return the shear velocity vector.
virtual bool getHidden() const =0
Returns true if subcontact or host contact is hidden.
virtual const itasca::IThing * getIThing() const =0
Returns a const IThing pointer.
Definition: iflowzonething.h:24
virtual double getFOS() const =0
Return ratio of shear strength to shear stress.
virtual IBlockThing * getFaceBlock1() const =0
Return first fblockthing (nullptr if not a faceblock)
virtual IFlowZoneThing * getFlowZone() const =0
Return the flow zone associated with the subcontact. Null if no flow.
virtual quint64 getFaceID() const =0
Returns the id of the face associated with this subcontact. 0 for no face.
virtual void setMaxShear(double d)=0
Set maximum shear displacement.
This is the interface for FaceThing, a class that holds extra data not in the fortran arrays....
Definition: ifacething.h:32
virtual double getArea() const =0
virtual void setShearDisplacement(const DVect3 &dv)=0
Set the shear displacement vector.
virtual void setState(int i)=0
Set the subcontact failure state.