Itasca C++ Interface
Loading...
Searching...
No Matches
iball.h
Go to the documentation of this file.
1#pragma once
8#include "base/src/matrix.h"
9
10namespace itasca {
11 class IThing;
12 class IGroup;
13}
14
15namespace itascaxd {
16 class IPiece;
17 class IPieceMechanical;
18 class IBody;
19 class IBodyMechanical;
20 class IRigidBodyMechanical;
21}
22
23namespace pfc {
24 using namespace itasca;
25 using namespace itascaxd;
26
35 class IBall {
36 public:
38 inline static const TType type_ = 0x51c13f16;
39
41 virtual IThing * getIThing()=0;
43 virtual const IThing * getIThing() const=0;
45 virtual IPiece * getIPiece()=0;
47 virtual const IPiece * getIPiece() const=0;
51 virtual const IPieceMechanical * getIPieceMechanical() const=0;
53 virtual IBody * getIBody()=0;
55 virtual const IBody * getIBody() const=0;
59 virtual const IBodyMechanical * getIBodyMechanical() const=0;
65 virtual DExtent getCellExtent() const=0;
67 virtual DExtent getToleranceExtent() const=0;
69 virtual DMatrix<DIM,DIM> getStress() const=0;
71 virtual double getInertialMoi() const=0;
73 virtual double getMoi() const=0;
75 virtual double getRadius() const=0;
77 virtual int getFragmentIndex() const=0;
79 virtual void setFragmentIndex(int ind)=0;
81 virtual bool getIsIn(const DVect &) const = 0;
82
86 virtual void setRadius(const double &d,bool lock=false)=0;
87 virtual void setRadiusNoLock(const double &d)=0;
88
91 virtual bool getFix(uint32 dof) const=0;
93 virtual QString getFixLabel() const=0;
95 virtual QVariant getPieceProperty(const QString &name,const IPiece *p=0) const=0;
97 virtual double getDensity() const=0;
99 virtual double getInertialMass() const=0;
101 virtual double getMass() const=0;
103 virtual DVect getContactForce() const=0;
105 virtual DAVect getContactMoment() const=0;
107 virtual DVect getAppliedForce() const=0;
109 virtual DAVect getAppliedMoment() const=0;
111 virtual DVect getUnbalancedForce() const=0;
113 virtual DAVect getUnbalancedMoment() const=0;
115 virtual double getLocalDamping() const=0;
117 virtual void setFix(uint32 dof,bool b)=0;
119 virtual bool setPieceProperty(const QString &name,const QVariant &v,IPiece *p=0) =0;
121 virtual void setDensity(const double &d)=0;
123 virtual void setContactForce(const DVect &v)=0;
125 virtual void setContactMoment(const DAVect &v)=0;
127 virtual void setAppliedForce(const DVect &v)=0;
129 virtual void setAppliedMoment(const DAVect &v)=0;
131 virtual void setLocalDamping(const double &d)=0;
133 virtual void scaleVolumePreserveMass(const double &d,bool checkState=true,bool lock=false)=0;
134
135
137#ifdef TWOD
138 virtual double getAngDisplacement() const=0;
139#endif
140 virtual DVect getCentroid() const=0;
141 virtual DVect getVelocity() const=0;
142 virtual DAVect getAngVelocity() const=0;
143 virtual DVect getDisplacement() const=0;
144 virtual double getVolume() const=0;
145 virtual Quat getOrient() const=0;
146
147#ifdef TWOD
148 virtual void setAngDisplacement(const double &v)=0;
149#endif
150 virtual void setCentroid(const DVect &p)=0;
151 virtual void setVelocity(const DVect &p)=0;
152 virtual void setAngVelocity(const DAVect &p)=0;
153 virtual void setDisplacement(const DVect &v)=0;
154 virtual void setOrient(const Quat &q)=0;
155#ifdef THREED
156 virtual DVect getEulerFromOrient() const=0;
157 virtual void setOrientFromEuler(const DVect3 &d)=0;
158#endif
159
160 };
161} // namespace pfc
162// EoF
163
DMatrix is a Matrix that defaults to type double...
Definition matrix.h:758
3D quaternion utility class.
Definition quat.h:108
Base class for items that will be stored in containers.
Definition ithing.h:30
Definition ibody.h:20
Definition ibodymechanical.h:13
Definition ipiece.h:15
Definition ipiecemechanical.h:11
Definition irigidbodymechanical.h:7
Interface for a ball.
Definition iball.h:35
virtual void setFragmentIndex(int ind)=0
Set the ball fragment index.
virtual bool setPieceProperty(const QString &name, const QVariant &v, IPiece *p=0)=0
Set the property name.
virtual double getInertialMoi() const =0
Return the ball scaled moment of inertia.
virtual DVect getAppliedForce() const =0
Return the applied force.
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 DVect getCentroid() const =0
IRigidBodyMechanical interface.
virtual const IPieceMechanical * getIPieceMechanical() const =0
Return a const IPieceMechanical interface for this object.
virtual void setLocalDamping(const double &d)=0
Set the local damping coefficient.
virtual IThing * getIThing()=0
Return an IThing interface for this object.
virtual IBodyMechanical * getIBodyMechanical()=0
Return an IBodyMechanical interface for this object.
virtual double getMass() const =0
Return the mass.
virtual bool getFix(uint32 dof) const =0
virtual IPiece * getIPiece()=0
Return an IPiece interface for this object.
virtual DMatrix< DIM, DIM > getStress() const =0
Return the current stress computed for this ball.
virtual void setAppliedForce(const DVect &v)=0
Set the applied force.
virtual QString getFixLabel() const =0
Return a fixity label.
virtual double getInertialMass() const =0
Return the inertial mass.
virtual void setContactMoment(const DAVect &v)=0
Set the contact moment.
virtual const IRigidBodyMechanical * getIRigidBodyMechanical() const =0
Return a const IRigidBodyMechanical interface for this object.
virtual double getLocalDamping() const =0
Return the local damping coefficient.
virtual IRigidBodyMechanical * getIRigidBodyMechanical()=0
Return an IRigidBodyMechanical interface for this object.
virtual void setRadius(const double &d, bool lock=false)=0
virtual int getFragmentIndex() const =0
Return the ball fragment index.
virtual double getDensity() const =0
Return the density.
virtual const IBody * getIBody() const =0
Return a const IBody interface for this object.
virtual IBody * getIBody()=0
Return an IBody interface for this object.
virtual DAVect getContactMoment() const =0
Return the resultant of all contact moments.
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.
virtual DExtent getCellExtent() const =0
Return the ball's cell extent.
virtual DAVect getAppliedMoment() const =0
Return the applied moment.
virtual void setFix(uint32 dof, bool b)=0
Set the fixity condition.
virtual double getRadius() const =0
Return the ball radius.
static const TType type_
TType for type casting.
Definition iball.h:38
virtual DAVect getUnbalancedMoment() const =0
Return the unbalanced moment.
virtual double getMoi() const =0
Return the ball real moment of inertia.
virtual const IThing * getIThing() const =0
Return a const IThing interface for this object.
virtual DExtent getToleranceExtent() const =0
Return the ball's tolerance extent.
virtual void setContactForce(const DVect &v)=0
Set the contact force.
virtual void setDensity(const double &d)=0
Set the density.
virtual void setAppliedMoment(const DAVect &v)=0
Set the applied moment.
virtual bool getIsIn(const DVect &) const =0
Returns a boolean indicating whether a point in space is inside or outside of the ball.
virtual DVect getContactForce() const =0
Return the resultant of all contact forces.
virtual const IBodyMechanical * getIBodyMechanical() const =0
Return a const IBodyMechanical interface for this object.
virtual IPieceMechanical * getIPieceMechanical()=0
Return an IPieceMechanical interface for this object.
virtual const IPiece * getIPiece() const =0
Return a const IPiece interface for this object.
uint32 TType
class type indicator
Definition basedef.h:46
DExtent3 DExtent
A DExtent2 in 2D, a DExtent3 in 3D.
Definition dim.h:160
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition dim.h:154
DAVect3 DAVect
Angular vector of doubles, either 2D or 3D.
Definition dim.h:162
A template-based matrix class, size fixed at compile time.
namespace Itasca
Definition basememory.cpp:10
Itasca Library standard namespace, specific to 2D or 3D.
Definition icontactmodule.h:4
PFC namespace.
Definition iballfluid.h:15