Itasca C++ Interface
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
icontactmechanical.h
Go to the documentation of this file.
1 #pragma once
2 // icontactmechanical.h
4 #include "base/src/mat.h"
5 
12 namespace itasca {
13  class IThing;
14 }
15 
16 namespace itascaxd {
17  using namespace itasca;
18 
19  class IContact;
20  class IContactModel;
21  class IContactModelMechanical;
22  class IPiece;
23  class IPieceMechanical;
24 
26 
38  public:
40  inline static const TType type_ = 0x04c815ba9;
41 
44 
46  virtual const IThing * getIThing() const=0;
47  virtual IThing * getIThing()=0;
49  virtual const IContact * getContact() const=0;
50  virtual IContact * getContact()=0;
52  virtual const IPiece * getEnd1() const=0;
53  virtual IPiece * getEnd1()=0;
55  virtual const IPieceMechanical * getEnd1Mechanical() const=0;
56  virtual IPieceMechanical * getEnd1Mechanical()=0;
58  virtual const IPiece * getEnd2() const=0;
59  virtual IPiece * getEnd2()=0;
61  virtual const IPieceMechanical * getEnd2Mechanical() const=0;
62  virtual IPieceMechanical * getEnd2Mechanical()=0;
63  // Return the curvature of end1
64  virtual DVect2 getEnd1Curvature() const=0;
65  // Return the curvature of end2
66  virtual DVect2 getEnd2Curvature() const=0;
67  // Return the curvature of end1
68  virtual DVect2 getEnd1Extent() const=0;
69  // Return the curvature of end2
70  virtual DVect2 getEnd2Extent() const=0;
72  virtual const IContactModel * getModel() const=0;
73  virtual IContactModel * getModel()=0;
75  virtual const IContactModelMechanical *getModelMechanical() const=0;
76  virtual IContactModelMechanical * getModelMechanical()=0;
78  virtual IContactModel * setModel(const IContactModel *toClone,bool validate=true)=0;
80  virtual void replaceContactModel(IContactModel*)=0;
82  virtual QString getModelName() const=0;
84  virtual IContactModel * setModelName(const QString &name)=0;
86  virtual QVariant getProperty(const QString &name) const=0;
88  virtual bool setProperty(const QVariant &v,const QString &name)=0;
90  virtual uint getPropertyIndex(const QString &name) const=0;
92  virtual QString getPropertyName(uint index) const=0;
94  virtual DVect getLocalForce() const=0;
96  virtual DAVect getLocalMomentOn1() const=0;
98  virtual DAVect getLocalMomentOn2() const=0;
100  virtual DVect getGlobalForce() const=0;
102  virtual double getNormalForce() const=0;
104  virtual double getShearForce() const=0;
106  virtual DAVect getGlobalMomentOn1() const=0;
108  virtual DAVect getGlobalMomentOn2() const=0;
110  virtual uint getFID() const=0;
112  virtual void setFID(uint i)=0;
114  virtual fid_signal * getFIDSignal() =0;
116  virtual void executeFIDSignal(IContactModel *)=0;
118  virtual void executeFIDSignal(IContactModel *) const=0;
120  virtual double getGap() const=0;
122  virtual double calculateOverlapVolume() const = 0;
126  virtual DVect getLength() const = 0;
128  virtual void updateResultingTorqueOn1Local(const DVect &forceOn2,DAVect *ret) const=0;
130  virtual void updateResultingTorqueOn2Local(const DVect &forceOn2,DAVect *ret) const=0;
132  virtual DVect inGlobal(const DVect &vin) const=0;
134  virtual DVect inLocal(const DVect &vin) const=0;
136  virtual DVect2 getEffectiveTranslationalStiffness() const =0;
137  virtual DAVect getEffectiveRotationalStiffness() const =0;
138 
140  virtual bool getIsBonded() const = 0;
142  virtual void unbondMe()=0;
143 
144  virtual void setFullUpdate(bool)=0;
145  virtual bool getFullUpdate() const=0;
146  virtual DVect localForceFromStress(const Mat &) const=0;
147  virtual void setForce(const DVect &vin) = 0;
149  virtual bool getJointGeometry(std::vector<DVect> *points,int whichProc=0) const=0;
151  virtual DVect getRelativeLocalVelocity(const DVect &pos) const = 0;
152  };
153 } // namespace itascaxd
154 // EoF
namespace Itasca
Definition: basememory.cpp:9
Definition of a Signal2 object, holding a list of ISlot2 objects.
Definition: isignalbase.h:76
Base class for items that will be stored in containers.
Definition: ithing.h:31
Interface for the small-granularity callback utility.
Definition: ipiece.h:15
ContactMechanical class.
Definition: icontactmechanical.h:37
Definition: ipiecemechanical.h:11
unsigned int TType
class type indicator
Definition: basedef.h:41
Signal2< IContactModel *, const IContact * > fid_signal
Fracture ID signal.
Definition: icontactmechanical.h:43
Itasca Library standard namespace, specific to 2D or 3D.
Definition: icontactmodule.h:4
DAVect3 DAVect
Angular vector of doubles, either 2D or 3D.
Definition: dim.h:151
Definition: mat.h:28
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition: dim.h:145
Contact class.
Definition: icontact.h:34