Itasca C++ Interface
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
ifacething.h
Go to the documentation of this file.
1 #pragma once
2 // ifacething.h
3 
4 #include "fortconv/fortdefc.h"
5 
6 #include "fortconv/fortdefc.h"
7 #include "base/src/farray.h"
8 
14 namespace itasca
15 {
16  class IThing;
17 }
18 
19 namespace block
20 {
21 
22  class IBlockThing;
23  class IZoneThing;
24  class IVertexThing;
25  class IFlowPlaneThing;
26 
32  class IFaceThing
33  {
34  public:
35 
37  static const FInt cpp = 12; // C++ extension from Fortran array
38 
40  virtual const itasca::IThing * getIThing() const=0;
42  virtual itasca::IThing * getIThing()=0;
44  inline static const TType type_ = 0x521615ab;
46  virtual FInt getFortranOffset() const=0;
48  virtual quint64 getFaceID() const=0;
50  virtual IBlockThing* getBlockThing() const=0;
52  virtual IZoneThing* getZoneThing() const=0;
54  virtual quint64 getBlockThingID() const=0;
56  virtual quint64 getZoneThingID() const=0;
58  virtual FArray<const IVertexThing *> getVertices() const=0;
60  virtual FArray<quint64> getVertexIDs() const = 0;
62  virtual FArray<DVect> getVertexLocations() const=0;
64  virtual DVect getVertexLocation(quint32 i) const=0;
66  virtual quint32 getJointsetID() const=0;
68  virtual quint32 getFractureID() const=0;
70  virtual DVect3 getNormal() const=0;
72  virtual bool getHidden() const=0;
74  virtual double getArea() const=0;
76  virtual FInt getFEFaceOffset() const=0;
78  virtual bool isFaceFace(const IBlockThing *bt) const=0;
81  virtual bool isZoneFace() const = 0;
83  virtual bool isValid() const=0;
85  virtual IFlowPlaneThing * getFlowPlane() const=0;
87  virtual quint32 getNumGP() const=0;
89  virtual IVertexThing * getGP(quint32 n) const=0;
91  virtual bool isExcavated() const=0;
93  virtual bool isRemoved() const=0;
95  virtual bool isPlanar() const = 0;
97  virtual double getMinEdgeLength() const = 0;
99  virtual IBlockThing* getFaceBlockThing() const = 0;
101  virtual double getFactorOfSafety() const = 0;
103  virtual void setFactorOfSafety(double d) = 0;
104  };
105 
106 } // end namespace block
107 // EOF
virtual double getMinEdgeLength() const =0
Return the minumum edge length of the face.
virtual double getArea() const =0
Return the area of the face.
virtual quint32 getFractureID() const =0
Return face fracture id number (this is id of a single fracture)
This is the interface for ZoneThing, a class that holds extra data not in the fortran arrays....
Definition: izonething.h:30
virtual IBlockThing * getFaceBlockThing() const =0
Return host fblockthing (nullptr if not a faceblock)
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 bool isExcavated() const =0
Return true if face is on an excavated block.
Definition: iflowplanething.h:27
virtual const itasca::IThing * getIThing() const =0
Returns a const IThing pointer.
static const TType type_
type used in IThing typing system
Definition: ifacething.h:44
virtual void setFactorOfSafety(double d)=0
Set the safety factor of the face.
An array class that attempts to minimize unnecessary heap access.
virtual FArray< DVect > getVertexLocations() const =0
Get a list of vertex locations that make up this face.
virtual quint32 getJointsetID() const =0
Return face joint set id number (this is joint id resulting from jset command)
virtual IBlockThing * getBlockThing() const =0
Return host blockthing.
This is the interface for BlockThing, a class that holds extra data not in the fortran arrays....
Definition: iblockthing.h:31
unsigned int TType
class type indicator
Definition: basedef.h:41
virtual IZoneThing * getZoneThing() const =0
Return host zonething. Returns NULL if unzoned (rigid).
virtual IFlowPlaneThing * getFlowPlane() const =0
Return flow plane associated with the face. Return nullptr if none.
virtual quint64 getFaceID() const =0
Return Thing ID.
virtual quint32 getNumGP() const =0
Return number of gridpoints.
virtual FInt getFortranOffset() const =0
Return block fortran offset. Necessary for gui queries.
virtual bool isValid() const =0
Return true if FaceThing and Fortran face are in sync.
virtual FArray< const IVertexThing * > getVertices() const =0
Get a list of vertexthings that make up this face.
virtual bool isZoneFace() const =0
virtual DVect getVertexLocation(quint32 i) const =0
get location for specified vertex (0 based)
This is the interface for VertexThing. This will be stored in a container and the ID will be stored i...
Definition: ivertexthing.h:28
virtual bool isRemoved() const =0
Return true if face is on a removed block.
virtual DVect3 getNormal() const =0
Return normal vector to face.
virtual quint64 getZoneThingID() const =0
Return host zonething id. Returns 0 if unzoned (rigid).
An array class that attempts to minimize unnecessary heap access.
Definition: farray.h:27
virtual bool getHidden() const =0
Returns true if face or host zone or host block is hidden.
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition: dim.h:145
virtual bool isPlanar() const =0
Return true if face is planar.
virtual FInt getFEFaceOffset() const =0
Return offset of corresponding Finite Element face. Required for ranges.
virtual double getFactorOfSafety() const =0
Return the safety factor of the face.
virtual bool isFaceFace(const IBlockThing *bt) const =0
returns true if there is no f-f contact between the face and input block
virtual IVertexThing * getGP(quint32 n) const =0
Return gridpoint n (0 < n < 2)
static const FInt cpp
offset for FaceThing ID
Definition: ifacething.h:37
This is the interface for FaceThing, a class that holds extra data not in the fortran arrays....
Definition: ifacething.h:32
virtual FArray< quint64 > getVertexIDs() const =0
Get list of vertexids.
virtual quint64 getBlockThingID() const =0
Return host blockthing id.