Itasca C++ Interface
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
ibodymechanical.h
1 #pragma once
2 // ibodymechanical.h
3 
4 // Interface for functionality of all mechanical bodies. There can be a mixture of methods for both
5 // rigid and deformable bodies. The distinction must be made between rigid and deformable bodies as deformable
6 // bodies may require quite different storage when compared with rigid bodies.
7 
8 namespace itascaxd {
9  using namespace itasca;
10  class IBody;
11  class IPieceMechanical;
12 
14  public:
16  inline static const TType type_ = 0x4e67b814;
18  virtual const IBody *getIBody() const=0;
20  virtual IBody *getIBody()=0;
22  virtual bool getFix(quint32 dof) const=0;
24  virtual QString getFixLabel() const=0;
26  virtual QVariant getPieceProperty(const QString &name,const IPiece *p=0) const=0;
28  virtual double getDensity() const=0;
30  virtual double getVolume() const=0;
32  virtual double getInertialMass() const=0;
34  virtual double getMass() const=0;
36  virtual DVect getContactForce() const=0;
38  virtual DAVect getContactMoment() const=0;
40  virtual DVect getAppliedForce() const=0;
42  virtual DAVect getAppliedMoment() const=0;
44  virtual DVect getUnbalancedForce() const=0;
46  virtual DAVect getUnbalancedMoment() const=0;
48  virtual double getLocalDamping() const=0;
50  virtual void setFix(quint32 dof,bool b)=0;
52  virtual bool setPieceProperty(const QString &name,const QVariant &v,IPiece *p=0) =0;
54  virtual void setDensity(const double &d)=0;
56  virtual void setVolume(const double &d)=0;
58  virtual void setContactForce(const DVect &v)=0;
60  virtual void setContactMoment(const DAVect &v)=0;
62  virtual void setAppliedForce(const DVect &v)=0;
64  virtual void setAppliedMoment(const DAVect &v)=0;
66  virtual void setLocalDamping(const double &d)=0;
68  virtual void scaleVolumePreserveMass(const double &d,bool checkState=true,bool lock=false)=0;
69 
70 
71  };
72 } // namespace itascaxd
73 
74 // EoF
namespace Itasca
Definition: basememory.cpp:9
Definition: ipiece.h:15
unsigned int TType
class type indicator
Definition: basedef.h:41
Definition: ibodymechanical.h:13
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
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition: dim.h:145
Definition: ibody.h:20