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_;
237 return initialCentreOfMass_;
262 return Q() & (
inv(momentOfInertia_) &
pi());
274 motionState0_ = motionState_;
295 const point& initialPoint
301 + (Q() & initialQ_.
T() & (initialPoint - initialCentreOfRotation_))
A 2-tuple for storing two objects of different types.
const sixDoFRigidBodyMotionState & state() const
Return the motion state.
Tensor< scalar > tensor
Tensor of scalars.
#define R(A, B, C, D, E, F, K, M)
const tensor & orientation() const
Return the orientation tensor, Q.
const vector & tau() const
Return access to torque.
const vector & v() const
Return access to velocity.
bool report() const
Return the report Switch.
scalar mass() const
Return the mass.
point transform(const point &initialPoints) const
Transform the given initial state point by the current motion.
const vector & a() const
Return access to acceleration.
dimensionedSphericalTensor inv(const dimensionedSphericalTensor &dt)
void newTime()
Store the motion state at the beginning of the time-step.
dimensionedScalar cos(const dimensionedScalar &ds)
const point & centreOfRotation() const
Return access to the centre of mass.
const diagTensor & momentOfInertia() const
Return the inertia tensor.
const point & initialCentreOfMass() const
Return the initial centre of mass.
Holds the motion state of sixDoF object. Wrapped up together to allow rapid scatter to other processo...
vector omega() const
Return the angular velocity in the global frame.
const vector & pi() const
Return access to angular momentum.
Tensor< Cmpt > T() const
Transpose.
Vector< scalar > vector
A scalar version of the templated Vector.
point velocity(const point &pt) const
Return the velocity of a position.
const tensor & Q() const
Return access to the orientation.
const point & centreOfRotation() const
Return the current centre of rotation.
point centreOfMass() const
Return the current centre of mass.
dimensionedScalar sin(const dimensionedScalar &ds)