Itasca C++ Interface
Loading...
Searching...
No Matches
isubcontactthing.h
Go to the documentation of this file.
1#pragma once
2// isubcontactthing.h
3
4#include "iblockdef.h"
5
11namespace itasca
12{
13 class IThing;
14}
15
16namespace 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;
43 virtual FInt getFortranOffset() const=0;
45 virtual uint64 getSubcontactID() const=0;
47 virtual const IContactThing * getHostContact() const=0;
49 virtual uint64 getHostContactID() const=0;
51 virtual DVect3 getLocation() const=0;
53 virtual bool getHidden() const=0;
55 virtual IFaceThing * getFace() const=0;
57 virtual uint64 getFaceID() const=0;
59 virtual IVertexThing * getVertex() const=0;
61 virtual uint64 getVertexID() const=0;
64 virtual uint64 getFractureID() const=0;
66 virtual uint64 getDFN_ID() const = 0;
68 virtual QString getDFN_name() const = 0;
70 virtual int getMaterial() const=0;
72 virtual string 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 string getModel() const=0;
101 virtual void setModel(const string &s)=0;
103 virtual string 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 uint64 getBlock1_ID() const=0;
115 virtual uint64 getBlock2_ID() const=0;
117 virtual StringList getProperties() const=0;
120 virtual uint32 getPropertyIndex(const string &prop) const=0;
123 virtual base::Property getProperty(uint32 index) const=0;
125 virtual void setProperty(const string &prop, base::Property val) = 0;
129 virtual double getPorePressure() const=0;
131 virtual void setPorePressure(double d)=0;
133 virtual IFlowZoneThing * getFlowZone() 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(uint32 i) const = 0;
159 virtual double getEnergy(const string& 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
Definition basestring.h:89
Definition property.h:25
This is the interface for BlockThing, a class that holds extra data not in the fortran arrays....
Definition iblockthing.h:32
Definition icontactthing.h:31
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 FlowPlaneVertexThing, a C++ wrapper for a flow plane vertex This will be st...
Definition iflowplanevertexthing.h:28
Definition iflowzonething.h:25
This is the interface for SubcontactThing, a class that holds extra data not in the fortran arrays....
Definition isubcontactthing.h:32
virtual void setState(int i)=0
Set the subcontact failure state.
virtual DVect3 getShearDisplacement() const =0
Return the shear displacement vector.
virtual bool getHidden() const =0
Returns true if subcontact or host contact is hidden.
virtual DVect3 getShearForce() const =0
Return the shear force vector.
virtual bool isExcavated() const =0
Return true if subcontact is excavate. False otherwise.
virtual double getNormalDisplacement() const =0
Return the normal displacement.
virtual double getMaxShear() const =0
Returns maximum shear displacement.
virtual void setBit(int bit, bool b) const =0
virtual const itasca::IThing * getIThing() const =0
Returns a const IThing pointer.
virtual QString getDFN_name() const =0
Returns name of DFN used to create contact. Empty string if DFN was not used.
virtual uint64 getBlock1_ID() const =0
Return id of block 1 of the subcontact.
virtual void setInitialAperture(double ap0)=0
Set the initial mechanical aperture.
virtual FInt getFortranOffset() const =0
Return contact fortran offset. Necessary for gui queries.
virtual double getNormalStress() const =0
Return the normal stress.
virtual uint64 getBlock2_ID() const =0
Return id of block 2 of the subcontact.
virtual uint64 getDFN_ID() const =0
Returns ID of DFN used to create contact. 0 if DFN was not used.
virtual void setMaxShear(double d)=0
Set maximum shear displacement.
virtual IFlowPlaneVertexThing * getFlowVertex() const =0
Return the flow plane vertex associated with the subcontact. Null if no flow.
virtual void setProperty(const string &prop, base::Property val)=0
Set property with name prop to value val.
virtual double getArea() const =0
virtual void setPorePressure(double d)=0
Set the pore pressure on the subcontact.
virtual uint32 getPropertyIndex(const string &prop) const =0
SubcontactType
enumeration of possible subcontact types
Definition isubcontactthing.h:35
virtual string getStateString() const =0
Get the subcontact failure state as a string.
virtual const IBlockThing * getBlock2() const =0
Return block 2 of the subcontact.
virtual DVect3 getLocation() const =0
Returns subcontact position.
virtual double getInitialAperture() const =0
Get the initial mechanical aperture.
virtual int getConstitutive() const =0
Return constitutive model number.
virtual const IBlockThing * getBlock1() const =0
Return block 1 of the subcontact.
virtual string getModel() const =0
Get the joint constitutive model as a string.
virtual StringList getProperties() const =0
returns a list of all the valid properties of the current constitutive model assigned to this subcont...
virtual uint64 getSubcontactID() const =0
Return Thing ID.
virtual double getNormalForce() const =0
Return the normal force magnitude.
virtual double getPorePressure() const =0
Return the pore pressure on the subcontact.
virtual base::Property getProperty(uint32 index) const =0
virtual IFaceThing * getFace() const =0
Returns the face associated with this subcontact. null for no face.
virtual double getShearStress() const =0
Return the magnitude of shear stress.
virtual int getState() const =0
Get the subcontact failure state as an integer.
virtual uint64 getFractureID() const =0
static const TType type_
type used in IThing typing system
Definition isubcontactthing.h:37
virtual int getMaterial() const =0
Return material number.
virtual bool getBit(int bit) const =0
virtual uint64 getVertexID() const =0
Returns the Vertex ID associated with the subcontact. 0 for no vertex.
virtual double getFOS() const =0
Return ratio of shear strength to shear stress.
virtual void setNormalDisplacement(double nd)=0
Set the normal displacement.
virtual uint64 getFaceID() const =0
Returns the id of the face associated with this subcontact. 0 for no face.
virtual const IContactThing * getHostContact() const =0
Return host ContactThing.
virtual double getEnergy(uint32 i) const =0
Return energy.
virtual void setShearDisplacement(const DVect3 &dv)=0
Set the shear displacement vector.
virtual string getMaterialString() const =0
Return material as string.
virtual uint64 getHostContactID() const =0
Return host contact id.
virtual bool isBonded() const =0
Return true if subcontact has non-zero strength and has not failed.
virtual void setModel(const string &s)=0
Set joint constitutive model.
virtual IBlockThing * getFaceBlock1() const =0
Return first fblockthing (nullptr if not a faceblock)
virtual IBlockThing * getFaceBlock2() const =0
Return second fblockthing (nullptr if not a faceblock)
virtual itasca::IThing * getIThing()=0
Returns a IThing pointer.
virtual IFlowZoneThing * getFlowZone() const =0
Return the flow zone associated with the subcontact. Null if no flow.
virtual IVertexThing * getVertex() const =0
Returns the vertex associated with this subcontact. null for no vertex.
virtual DVect3 getShearVelocity() const =0
Return the shear velocity vector.
virtual SubcontactType getSubcontactType() const =0
Return the subcontact type.
virtual void setShearForce(const DVect3 &dv)=0
Set the shear force vector.
This is the interface for VertexThing. This will be stored in a container and the ID will be stored i...
Definition ivertexthing.h:29
Base class for items that will be stored in containers.
Definition ithing.h:30
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.
namespace Itasca
Definition basememory.cpp:14