Itasca C++ Interface
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
icontactthing.h
Go to the documentation of this file.
1 #pragma once
2 // icontactthing.h
3 
4 #include "iblockdef.h"
5 #include "base/src/farray.h"
6 
15 namespace itasca
16 {
17  class IThing;
18 }
19 
20 namespace block
21 {
25 
26  class IBlockThing;
27  class ISubcontactThing;
28  class IFlowPlaneThing;
29 
31  {
32  public:
33 
35  enum ContactType {Null=0, FaceFace, FaceEdge, FaceVertex, EdgeEdge, EdgeVertex, VertexVertex, Joined};
37  enum StrainEnergyType {ESTotal=1, ESTensile, ESCompressive, ESShear};
38 
40  static const FInt cpp = 38; // C++ extension from Fortran array
41 
43  inline static const TType type_ = 0x4f54d324;
45  virtual const itasca::IThing * getIThing() const=0;
47  virtual itasca::IThing * getIThing()=0;
49  virtual quint64 getContactID() const=0;
51  virtual FInt getFortranOffset() const=0;
53  virtual DVect3 getLocation() const=0;
55  virtual double getSpare1() const=0;
57  virtual quint64 getDFN_ID() const=0;
59  virtual QString getDFN_name() const = 0;
61  virtual bool getHidden() const=0;
63  virtual ContactType getContactType() const=0;
65  virtual ContactType getOriginalContactType() const = 0;
67  virtual const IBlockThing * getBlock1() const=0;
69  virtual const IBlockThing * getBlock2() const=0;
71  virtual quint64 getBlock1_ID() const=0;
73  virtual quint64 getBlock2_ID() const=0;
77  virtual int getJointSet() const=0;
80  virtual quint64 getFractureID() const=0;
82  virtual int getMaterial() const=0;
84  virtual int getConstitutive() const=0;
86  virtual DVect3 getNormal() const=0;
88  virtual double getArea() const=0;
90  virtual bool isExcavated() const=0;
92  virtual bool isRemoved() const=0;
94  virtual const IFlowPlaneThing * getFlowPlane() const=0;
96  virtual QString getTypeString() const = 0;
98  virtual double getStrainEnergy(StrainEnergyType t) const = 0;
100  virtual double getFrictionEnergy() const = 0;
102  virtual IBlockThing* getFaceBlock1() const = 0;
104  virtual IBlockThing* getFaceBlock2() const = 0;
106  virtual void triangulate()=0;
108  virtual void triangulateJoined() = 0;
110  virtual void findContactFace() = 0;
112  virtual bool hasSubcontacts() const = 0;
113  };
114 
115 } // end namespace block
116 // EOF
virtual QString getTypeString() const =0
Return type of contact as a string.
virtual quint64 getFractureID() const =0
static const FInt cpp
offset for ContactThing ID
Definition: icontactthing.h:40
Definition: icontactthing.h:30
virtual int getJointSet() const =0
Return joint set or dfn number used to create contact.
StrainEnergyType
enumeration of possible energy types
Definition: icontactthing.h:37
virtual double getStrainEnergy(StrainEnergyType t) const =0
Return strain energy for input type.
virtual int getMaterial() const =0
Return material number.
namespace Itasca
Definition: basememory.cpp:9
Int FInt
Interface to provide access to 3DEC modules, global data, list of 3DEC entities, etc.
Definition: iblockdef.h:19
Base class for items that will be stored in containers.
Definition: ithing.h:31
virtual const IBlockThing * getBlock2() const =0
Return block 2 of the contact.
virtual IBlockThing * getFaceBlock2() const =0
Return second fblockthing (nullptr if not a faceblock)
virtual bool isExcavated() const =0
Returns true if either host block is marked as excavated.
Definition: iflowplanething.h:27
virtual void triangulate()=0
Triangulate subcontacts for plotting.
Fortran to C++ type declarations.
virtual const IBlockThing * getBlock1() const =0
Return block 1 of the contact.
virtual DVect3 getNormal() const =0
Return the normal vector.
virtual const IFlowPlaneThing * getFlowPlane() const =0
Get Flow plane associated with this contact.
virtual double getArea() const =0
Return area.
An array class that attempts to minimize unnecessary heap access.
virtual int getConstitutive() const =0
Return constitutive model number.
virtual void findContactFace()=0
Find contact face for plotting.
virtual quint64 getDFN_ID() const =0
Returns ID of DFN used to create contact. 0 if DFN was not used.
virtual quint64 getBlock1_ID() const =0
Return the id of block 1 of the contact.
virtual const itasca::IThing * getIThing() const =0
Returns a const IThing pointer.
This is the interface for BlockThing, a class that holds extra data not in the fortran arrays....
Definition: iblockthing.h:31
virtual double getSpare1() const =0
Returns contents of contact first spare offset.
unsigned int TType
class type indicator
Definition: basedef.h:41
virtual bool hasSubcontacts() const =0
Return true if this contact has subcontacts.
virtual IBlockThing * getFaceBlock1() const =0
Return first fblockthing (nullptr if not a faceblock)
ContactType
enumeration of possible contact types
Definition: icontactthing.h:35
virtual quint64 getContactID() const =0
Get ID of contact in C++ container (not Fortran offset)
virtual QString getDFN_name() const =0
Returns name of DFN used to create contact. Empty string if DFN was not used.
virtual quint64 getBlock2_ID() const =0
Return the id of block 2 of the contact.
An array class that attempts to minimize unnecessary heap access.
Definition: farray.h:27
virtual DVect3 getLocation() const =0
Returns contact position.
virtual double getFrictionEnergy() const =0
Return the frictional energy.
virtual bool isRemoved() const =0
Returns true if either host block is removed.
static const TType type_
type used in IThing typing system
Definition: icontactthing.h:43
virtual bool getHidden() const =0
Returns true if contact or either host block is hidden.
virtual FArray< const ISubcontactThing * > getSubcontacts() const =0
Get array of SubcontactThings that make up this contact.
virtual void triangulateJoined()=0
Triangulate subcontacts for plotting.
virtual FInt getFortranOffset() const =0
Return contact fortran offset. Necessary for gui queries.
virtual ContactType getContactType() const =0
Return contact type.
virtual ContactType getOriginalContactType() const =0
Return original contact type.