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#include "baseqt/src/baseqt.h"
7
16namespace itasca
17{
18 class IThing;
19}
20
21namespace block
22{
26
27 class IBlockThing;
28 class ISubcontactThing;
29 class IFlowPlaneThing;
30
32 {
33 public:
34
36 enum ContactType {Null=0, FaceFace, FaceEdge, FaceVertex, EdgeEdge, EdgeVertex, VertexVertex, Joined};
38 enum StrainEnergyType {ESTotal=1, ESTensile, ESCompressive, ESShear};
39
41 static const FInt cpp = 38; // C++ extension from Fortran array
42
44 inline static const TType type_ = 0x4f54d324;
46 virtual const itasca::IThing * getIThing() const=0;
50 virtual uint64 getContactID() const=0;
52 virtual FInt getFortranOffset() const=0;
54 virtual DVect3 getLocation() const=0;
56 virtual double getSpare1() const=0;
58 virtual uint64 getDFN_ID() const=0;
60 virtual QString getDFN_name() const = 0;
62 virtual bool getHidden() const=0;
64 virtual ContactType getContactType() const=0;
68 virtual const IBlockThing * getBlock1() const=0;
70 virtual const IBlockThing * getBlock2() const=0;
72 virtual uint64 getBlock1_ID() const=0;
74 virtual uint64 getBlock2_ID() const=0;
78 virtual int getJointSet() const=0;
81 virtual uint64 getFractureID() const=0;
83 virtual int getMaterial() const=0;
85 virtual int getConstitutive() const=0;
87 virtual DVect3 getNormal() const=0;
89 virtual double getArea() const=0;
91 virtual bool isExcavated() const=0;
93 virtual bool isRemoved() const=0;
95 virtual const IFlowPlaneThing * getFlowPlane() const=0;
97 virtual QString getTypeString() const = 0;
99 virtual double getStrainEnergy(StrainEnergyType t) const = 0;
101 virtual double getFrictionEnergy() const = 0;
103 virtual IBlockThing* getFaceBlock1() const = 0;
105 virtual IBlockThing* getFaceBlock2() const = 0;
107 virtual void triangulate() const=0;
109 virtual void triangulateJoined() const= 0;
111 virtual void findContactFace() = 0;
113 virtual bool hasSubcontacts() const = 0;
114 };
115
116} // end namespace block
117// 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:33
Definition icontactthing.h:32
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.
static const TType type_
type used in IThing typing system
Definition icontactthing.h:44
virtual uint64 getBlock2_ID() const =0
Return the id of block 2 of the contact.
virtual bool isExcavated() const =0
Returns true if either host block is marked as excavated.
virtual int getMaterial() const =0
Return material number.
virtual uint64 getDFN_ID() const =0
Returns ID of DFN used to create contact. 0 if DFN was not used.
virtual double getStrainEnergy(StrainEnergyType t) const =0
Return strain energy for input type.
static const FInt cpp
offset for ContactThing ID
Definition icontactthing.h:41
virtual double getSpare1() const =0
Returns contents of contact first spare offset.
virtual uint64 getContactID() const =0
Get ID of contact in C++ container (not Fortran offset)
virtual void triangulate() const =0
Triangulate subcontacts for plotting.
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:38
virtual const IBlockThing * getBlock1() const =0
Return block 1 of the contact.
virtual uint64 getBlock1_ID() const =0
Return the id of 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 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.
virtual void triangulateJoined() const =0
Triangulate subcontacts for plotting.
ContactType
enumeration of possible contact types
Definition icontactthing.h:36
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 QString getDFN_name() const =0
Returns name of DFN used to create contact. Empty string if DFN was not used.
virtual uint64 getFractureID() const =0
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:31
An array class that attempts to minimize unnecessary heap access.
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