Go to the documentation of this file.
46 #ifndef sixDoFRigidBodyMotion_H
47 #define sixDoFRigidBodyMotion_H
170 inline const tensor&
Q()
const;
173 inline const vector&
a()
const;
233 inline scalar
mass()
const;
259 inline const vector&
v()
const;
264 inline bool report()
const;
void newTime()
Store the motion state at the beginning of the time-step.
Templated 3D tensor derived from VectorSpace adding construction from 9 components,...
sixDoFRigidBodyMotion()
Construct null.
tensor rotationTensorZ(scalar deltaT) const
Calculate the rotation tensor around the body reference.
A simple wrapper around bool so that it can be read as a word: true/false, on/off,...
scalar mass() const
Return the mass.
Tuple2< tensor, vector > rotate(const tensor &Q0, const vector &pi, const scalar deltaT) const
Apply rotation tensors to Q0 for the given torque (pi) and deltaT.
const tensor & Q() const
Return the orientation.
sixDoFRigidBodyMotionState motionState0_
Motion state data object for previous time-step.
A class for managing temporary objects.
vector & v()
Return non-const access to vector.
const tensor & orientation() const
Return the orientation tensor, Q.
point velocity(const point &pt) const
Return the velocity of a position.
tensor rotationTensorY(scalar deltaT) const
Calculate the rotation tensor around the body reference.
~sixDoFRigidBodyMotion()
Destructor.
scalar aDamp_
Acceleration damping coefficient (for steady-state simulations)
const PtrList< sixDoFRigidBodyMotionConstraint > & constraints() const
Return the constraints.
tensor rConstraints_
Rotational constraint tensor.
PtrList< sixDoFRigidBodyMotionRestraint > restraints_
Motion restraints.
void addRestraints(const dictionary &dict)
Add restraints to the motion, public to allow external.
Switch report_
Switch to turn reporting of motion data on and off.
void write(Ostream &) const
Write.
point initialCentreOfRotation_
Centre of rotation of initial state.
void update(bool firstIter, const vector &fGlobal, const vector &tauGlobal, scalar deltaT, scalar deltaT0)
Symplectic integration of velocities, orientation and position.
tensor tConstraints_
Translational constraint tensor.
Pre-declare SubField and related Field type.
void addConstraints(const dictionary &dict)
Add restraints to the motion, public to allow external.
scalar aRelax_
Acceleration relaxation coefficient.
tensor initialQ_
Orientation of initial state.
autoPtr< sixDoFSolver > solver_
Motion solver.
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
bool read(const dictionary &dict)
Read coefficients dictionary and update system parameters,.
A list of keyword definitions, which are a keyword followed by any number of values (e....
diagTensor momentOfInertia_
Moment of inertia of the body in reference configuration.
void updateAcceleration(const vector &fGlobal, const vector &tauGlobal)
Update and relax accelerations from the force and torque.
Holds the motion state of sixDoF object. Wrapped up together to allow rapid scatter to other processo...
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
const point & initialCentreOfMass() const
Return the initial centre of mass.
scalar mass_
Mass of the body.
Six degree of freedom motion for a rigid body.
point transform(const point &initialPoints) const
Transform the given initial state point by the current motion.
sixDoFRigidBodyMotionState motionState_
Motion state data object.
const point & initialCentreOfRotation() const
Return the initial centre of rotation.
bool report() const
Return the report Switch.
const vector & a() const
Return the current acceleration.
PtrList< sixDoFRigidBodyMotionConstraint > constraints_
Motion constaints.
point initialCentreOfMass_
Centre of mass of initial state.
const vector & pi() const
Return the current angular momentum.
const PtrList< sixDoFRigidBodyMotionRestraint > & restraints() const
Return the restraints.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
A 2-tuple for storing two objects of different types.
vector omega() const
Return the angular velocity in the global frame.
const point & centreOfRotation() const
Return the current centre of rotation.
point centreOfMass() const
Return the current centre of mass.
const diagTensor & momentOfInertia() const
Return the inertia tensor.
void applyRestraints()
Apply the restraints to the object.
void status() const
Report the status of the motion.
tensor rotationTensorX(scalar deltaT) const
Calculate the rotation tensor around the body reference.
const vector & tau() const
Return the current torque.
const sixDoFRigidBodyMotionState & state() const
Return the motion state.
const tensor & initialQ() const
Return the initial orientation.