Itasca C++ Interface
Loading...
Searching...
No Matches
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
15namespace itasca
16{
17 class IThing;
18}
19
20namespace 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;
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;
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
An array class that attempts to minimize unnecessary heap access.
Definition farray.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
virtual const IFlowPlaneThing * getFlowPlane() const =0
Get Flow plane associated with this contact.
virtual const itasca::IThing * getIThing() const =0
Returns a const IThing pointer.
virtual IBlockThing * getFaceBlock1() const =0
Return first fblockthing (nullptr if not a faceblock)
virtual const IBlockThing * getBlock2() const =0
Return block 2 of the contact.
virtual void triangulate()=0
Triangulate subcontacts for plotting.
static const TType type_
type used in IThing typing system
Definition icontactthing.h:43
virtual bool isExcavated() const =0
Returns true if either host block is marked as excavated.
virtual int getMaterial() const =0
Return material number.
virtual quint64 getBlock2_ID() const =0
Return the id of block 2 of the contact.
virtual double getStrainEnergy(StrainEnergyType t) const =0
Return strain energy for input type.
virtual quint64 getContactID() const =0
Get ID of contact in C++ container (not Fortran offset)
virtual quint64 getFractureID() const =0
static const FInt cpp
offset for ContactThing ID
Definition icontactthing.h:40
virtual double getSpare1() const =0
Returns contents of contact first spare offset.
virtual quint64 getDFN_ID() const =0
Returns ID of DFN used to create contact. 0 if DFN was not used.
virtual int getConstitutive() const =0
Return constitutive model number.
virtual ContactType getContactType() const =0
Return contact type.
virtual IBlockThing * getFaceBlock2() const =0
Return second fblockthing (nullptr if not a faceblock)
StrainEnergyType
enumeration of possible energy types
Definition icontactthing.h:37
virtual const IBlockThing * getBlock1() const =0
Return block 1 of the contact.
virtual DVect3 getNormal() const =0
Return the normal vector.
virtual DVect3 getLocation() const =0
Returns contact position.
virtual bool isRemoved() const =0
Returns true if either host block is removed.
virtual bool hasSubcontacts() const =0
Return true if this contact has subcontacts.
virtual void triangulateJoined()=0
Triangulate subcontacts for plotting.
virtual double getArea() const =0
Return area.
virtual QString getTypeString() const =0
Return type of contact as a string.
virtual double getFrictionEnergy() const =0
Return the frictional energy.
ContactType
enumeration of possible contact types
Definition icontactthing.h:35
virtual ContactType getOriginalContactType() const =0
Return original contact type.
virtual void findContactFace()=0
Find contact face for plotting.
virtual itasca::IThing * getIThing()=0
Returns a IThing pointer.
virtual FArray< const ISubcontactThing * > getSubcontacts() const =0
Get array of SubcontactThings that make up this contact.
virtual quint64 getBlock1_ID() const =0
Return the id of block 1 of the contact.
virtual QString getDFN_name() const =0
Returns name of DFN used to create contact. Empty string if DFN was not used.
virtual int getJointSet() const =0
Return joint set or dfn number used to create contact.
virtual bool getHidden() const =0
Returns true if contact or either host block is hidden.
virtual FInt getFortranOffset() const =0
Return contact fortran offset. Necessary for gui queries.
Definition iflowplanething.h:28
Base class for items that will be stored in containers.
Definition ithing.h:30
An array class that attempts to minimize unnecessary heap access.
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:10