28 inline Foam::tensor Foam::sixDoFRigidBodyMotion::rotationTensorX
42 inline Foam::tensor Foam::sixDoFRigidBodyMotion::rotationTensorY
56 inline Foam::tensor Foam::sixDoFRigidBodyMotion::rotationTensorZ
71 Foam::sixDoFRigidBodyMotion::rotate
78 Tuple2<tensor, vector> Qpi(Q0, pi0);
82 tensor R = rotationTensorX(0.5*deltaT*
pi.x()/momentOfInertia_.xx());
86 R = rotationTensorY(0.5*deltaT*
pi.y()/momentOfInertia_.yy());
90 R = rotationTensorZ(deltaT*
pi.z()/momentOfInertia_.zz());
94 R = rotationTensorY(0.5*deltaT*
pi.y()/momentOfInertia_.yy());
98 R = rotationTensorX(0.5*deltaT*
pi.x()/momentOfInertia_.xx());
107 Foam::sixDoFRigidBodyMotion::restraints()
const
114 Foam::sixDoFRigidBodyMotion::constraints()
const
121 Foam::sixDoFRigidBodyMotion::initialCentreOfRotation()
const
123 return initialCentreOfRotation_;
128 Foam::sixDoFRigidBodyMotion::initialQ()
const
134 inline const Foam::tensor& Foam::sixDoFRigidBodyMotion::Q()
const
136 return motionState_.Q();
142 return motionState_.v();
146 inline const Foam::vector& Foam::sixDoFRigidBodyMotion::a()
const
148 return motionState_.a();
152 inline const Foam::vector& Foam::sixDoFRigidBodyMotion::pi()
const
154 return motionState_.pi();
158 inline const Foam::vector& Foam::sixDoFRigidBodyMotion::tau()
const
160 return motionState_.tau();
164 inline Foam::point& Foam::sixDoFRigidBodyMotion::initialCentreOfRotation()
166 return initialCentreOfRotation_;
170 inline Foam::tensor& Foam::sixDoFRigidBodyMotion::initialQ()
178 return motionState_.Q();
184 return motionState_.v();
190 return motionState_.a();
196 return motionState_.pi();
202 return motionState_.tau();
217 return momentOfInertia_;
230 return motionState_.centreOfRotation();
237 return initialCentreOfMass_;
249 return centreOfMass() - motionState_.centreOfRotation();
262 return Q() & (
inv(momentOfInertia_) &
pi());
274 motionState0_ = motionState_;
280 return motionState_.centreOfRotation();
289 return (
omega() ^ (pt - centreOfRotation())) + v();
295 const point& initialPoint
301 + (Q() & initialQ_.T() & (initialPoint - initialCentreOfRotation_))
A 2-tuple for storing two objects of different types.
Holds the motion state of sixDoF object. Wrapped up together to allow rapid scatter to other processo...
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.
const point & initialCentreOfMass() const
Return the initial centre of mass.
bool report() const
Return the report Switch.
const tensor & orientation() const
Return the orientation tensor, Q.
point transform(const point &initialPoints) const
Transform the given initial state point by the current motion.
vector omega() const
Return the angular velocity in the global frame.
scalar mass() const
Return the mass.
point velocity(const point &pt) const
Return the velocity of a position.
const point & centreOfRotation() const
Return the current centre of rotation.
const sixDoFRigidBodyMotionState & state() const
Return the motion state.
Tensor< scalar > tensor
Tensor of scalars.
dimensionedScalar sin(const dimensionedScalar &ds)
Vector< scalar > vector
A scalar version of the templated Vector.
dimensionSet transform(const dimensionSet &)
static scalar R(const scalar a, const scalar x)
dimensionedSphericalTensor inv(const dimensionedSphericalTensor &dt)
dimensionedScalar cos(const dimensionedScalar &ds)