Itasca C++ Interface
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(uint32 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(uint32 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;
70  virtual double getConvergence() const=0;
71 
72 
73  };
74 } // namespace itascaxd
75 
76 // EoF
Definition: ibody.h:20
Definition: ibodymechanical.h:13
virtual double getInertialMass() const =0
Return the inertial mass.
virtual DAVect getContactMoment() const =0
Return the resultant of all contact moments.
virtual DAVect getUnbalancedMoment() const =0
Return the unbalanced moment.
virtual double getConvergence() const =0
Get the convergence.
virtual bool getFix(uint32 dof) const =0
Return a boolean indicating the fixity condition.
virtual double getVolume() const =0
Return the volume in 3D, or the volume per unit thickness in 2D.
virtual DAVect getAppliedMoment() const =0
Return the applied moment.
virtual void setContactForce(const DVect &v)=0
Set the contact force.
virtual void setAppliedForce(const DVect &v)=0
Set the applied force.
virtual QString getFixLabel() const =0
Return a fixity label.
virtual const IBody * getIBody() const =0
Return the IBody pointer.
virtual void setContactMoment(const DAVect &v)=0
Set the contact moment.
virtual void setAppliedMoment(const DAVect &v)=0
Set the applied moment.
virtual double getMass() const =0
Return the mass.
virtual void setFix(uint32 dof, bool b)=0
Set the fixity condition.
virtual bool setPieceProperty(const QString &name, const QVariant &v, IPiece *p=0)=0
Set the property name.
virtual double getLocalDamping() const =0
Return the local damping coefficient.
virtual DVect getAppliedForce() const =0
Return the applied force.
virtual double getDensity() const =0
Return the density.
virtual DVect getContactForce() const =0
Return the resultant of all contact forces.
virtual void setDensity(const double &d)=0
Set the density.
virtual void setVolume(const double &d)=0
Set the volume in 3D, or the volume per unit thickness in 2D.
virtual IBody * getIBody()=0
Return the IBody pointer.
virtual void setLocalDamping(const double &d)=0
Set the local damping coefficient.
virtual void scaleVolumePreserveMass(const double &d, bool checkState=true, bool lock=false)=0
Scale the volume to the specified value while preserving the mass.
virtual QVariant getPieceProperty(const QString &name, const IPiece *p=0) const =0
Return the property of the piece.
virtual DVect getUnbalancedForce() const =0
Return the unbalanced force.
Definition: ipiece.h:15
uint32 TType
class type indicator
Definition: basedef.h:46
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition: dim.h:150
DAVect3 DAVect
Angular vector of doubles, either 2D or 3D.
Definition: dim.h:158
namespace Itasca
Definition: basememory.cpp:10
Itasca Library standard namespace, specific to 2D or 3D.
Definition: icontactmodule.h:4