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#include "base/src/property.h"
6
12namespace itasca
13{
14 class IThing;
15}
16
17namespace block
18{
19 class IFaceThing;
20 class IVertexThing;
21 class IContactThing;
22 class IBlockThing;
23 class IFlowZoneThing;
24 class IFlowPlaneVertexThing;
25
33 {
34 public:
36 enum SubcontactType {VertexFace=0, EdgeEdge};
38 inline static const TType type_ = 0x4f54d345;
40 virtual const itasca::IThing * getIThing() const=0;
44 virtual FInt getFortranOffset() const=0;
46 virtual uint64 getSubcontactID() const=0;
48 virtual const IContactThing * getHostContact() const=0;
50 virtual uint64 getHostContactID() const=0;
52 virtual DVect3 getLocation() const=0;
54 virtual bool getHidden() const=0;
56 virtual IFaceThing * getFace() const=0;
58 virtual uint64 getFaceID() const=0;
60 virtual IVertexThing * getVertex() const=0;
62 virtual uint64 getVertexID() const=0;
65 virtual uint64 getFractureID() const=0;
67 virtual uint64 getDFN_ID() const = 0;
69 virtual string getDFN_name() const = 0;
71 virtual int getMaterial() const=0;
73 virtual string getMaterialString() const = 0;
75 virtual int getConstitutive() const=0;
77 virtual DVect3 getShearForce() const=0;
79 virtual void setShearForce(const DVect3 &dv)=0;
81 virtual double getNormalForce() const=0;
82 // Set the normal force magnitude
83 virtual void setNormalForce(double nf)=0;
85 virtual DVect3 getShearDisplacement() const=0;
87 virtual void setShearDisplacement(const DVect3 &dv)=0;
89 virtual double getNormalDisplacement() const=0;
91 virtual void setNormalDisplacement(double nd)=0;
94 virtual double getArea() const=0;
96 virtual double getNormalStress() const=0;
98 virtual double getShearStress() const=0;
100 virtual string getModel() const=0;
102 virtual void setModel(const string &s)=0;
104 virtual string getStateString() const=0;
106 virtual int getState() const=0;
108 virtual void setState(int i)=0;
110 virtual const IBlockThing * getBlock1() const=0;
112 virtual const IBlockThing * getBlock2() const=0;
114 virtual uint64 getBlock1_ID() const=0;
116 virtual uint64 getBlock2_ID() const=0;
118 virtual StringList getProperties() const=0;
121 virtual uint32 getPropertyIndex(const string &prop) const=0;
124 virtual base::Property getProperty(uint32 index) const=0;
126 virtual void setProperty(const string &prop, base::Property val) = 0;
130 virtual double getPorePressure() const=0;
132 virtual void setPorePressure(double d)=0;
134 virtual IFlowZoneThing * getFlowZone() const=0;
138 virtual bool isExcavated() const=0;
140 virtual double getInitialAperture() const=0;
142 virtual void setInitialAperture(double ap0)=0;
145 virtual bool getBit(int bit) const=0;
151 virtual void setBit(int bit,bool b) const=0;
153 virtual DVect3 getShearVelocity() const=0;
155 virtual double getMaxShear() const=0;
157 virtual void setMaxShear(double d) = 0;
159 virtual double getEnergy(uint32 i) const = 0;
160 virtual double getEnergy(const string& e) const = 0;
161 virtual double getTotalEnergy() const = 0;
163 virtual IBlockThing* getFaceBlock1() const = 0;
165 virtual IBlockThing* getFaceBlock2() const = 0;
167 virtual bool isBonded() const = 0;
169 virtual double getFOS() const = 0;
170
171
172
173
174
175 };
176
177} // end namespace block
178// EOF
Definition basestring.h:71
Definition property.h:36
This is the interface for BlockThing, a class that holds extra data not in the fortran arrays....
Definition iblockthing.h:33
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:29
Definition iflowzonething.h:25
This is the interface for SubcontactThing, a class that holds extra data not in the fortran arrays....
Definition isubcontactthing.h:33
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 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:36
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 string getDFN_name() const =0
Returns name of DFN used to create contact. Empty string if DFN was not used.
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:38
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:30
Base class for items that will be stored in containers.
Definition ithing.h:31
uint32 TType
class type indicator
Definition basedef.h:47
int64 FInt
Interface to provide access to 3DEC modules, global data, list of 3DEC entities, etc.
Definition iblockdef.h:14
Fortran to C++ type declarations.
namespace Itasca
Definition basememory.cpp:14