46 #ifndef sixDoFRigidBodyMotion_H
47 #define sixDoFRigidBodyMotion_H
93 point initialCentreOfMass_;
96 point initialCentreOfRotation_;
125 inline tensor rotationTensorX(scalar deltaT)
const;
129 inline tensor rotationTensorY(scalar deltaT)
const;
133 inline tensor rotationTensorZ(scalar deltaT)
const;
145 void applyRestraints();
148 void updateAcceleration(
const vector& fGlobal,
const vector& tauGlobal);
165 inline const point& initialCentreOfRotation()
const;
168 inline const tensor& initialQ()
const;
171 inline const tensor& Q()
const;
174 inline const vector& a()
const;
186 inline point& initialCentreOfRotation();
189 inline tensor& initialQ();
238 inline scalar
mass()
const;
264 inline const vector& v()
const;
269 inline bool report()
const;
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
A simple wrapper around bool so that it can be read as a word: true/false, on/off,...
A 2-tuple for storing two objects of different types.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
A list of keywords followed by any number of values (e.g. words and numbers) or sub-dictionaries.
Septernion class used to perform translations and rotations in 3D space.
Holds the motion state of sixDoF object. Wrapped up together to allow rapid scatter to other processo...
Six degree of freedom motion for a rigid body.
point centreOfMass() const
Return the current centre of mass.
const diagTensor & momentOfInertia() const
Return the inertia tensor.
void newTime()
Store the motion state at the beginning of the time-step.
void update(bool firstIter, const vector &fGlobal, const vector &tauGlobal, scalar deltaT, scalar deltaT0)
Symplectic integration of velocities, orientation and position.
const point & initialCentreOfMass() const
Return the initial centre of mass.
bool report() const
Return the report Switch.
void status() const
Report the status of the motion.
const tensor & orientation() const
Return the orientation tensor, Q.
void addConstraints(const dictionary &dict)
Add restraints to the motion, public to allow external.
void write(Ostream &) const
Write.
septernion transform0() const
Return the transformation relative to the initial time.
virtual ~sixDoFRigidBodyMotion()
Destructor.
bool read(const dictionary &dict)
Read coefficients dictionary and update system parameters,.
vector omega() const
Return the angular velocity in the global frame.
scalar mass() const
Return the mass.
TypeName("sixDoFRigidBodyMotion")
Runtime type information.
point transform(const point &initialPoint) const
Transform the given initial state point by the current motion.
void addRestraints(const dictionary &dict)
Add restraints to the motion, public to allow external.
point velocity(const point &pt) const
Return the velocity of a position.
const point & centreOfRotation() const
Return the current centre of rotation.
sixDoFRigidBodyMotion()
Construct null.
const sixDoFRigidBodyMotionState & state() const
Return the motion state.
A class for managing temporary objects.
void rotate(const bool reverse, barycentric &coordinates)
Rotation transform. Corrects the coordinates when the track moves.