70 m_(
dict.get<scalar>(
"mass")),
79 c_(
vector(-st(1, 5), st(0, 5), -st(0, 4))/m_),
116 return Ioc(m_, c - c_);
127inline Foam::RBD::rigidBodyInertia::operator
spatialTensor()
const
147 is >> rbi.m_ >> rbi.c_ >> rbi.Ic_;
158 os << rbi.m_ <<
nl << rbi.c_ <<
nl << rbi.Ic_ <<
endl;
179 const scalar m12 = rbi1.m() + rbi2.m();
180 const vector c12 = (rbi1.m()*rbi1.c() + rbi2.m()*rbi2.c())/m12;
186 rbi1.Ic() + rbi1.Icc(c12) + rbi2.Ic() + rbi2.Icc(c12)
203 (rbi.Io() & av) + rbi.m()*(rbi.c() ^ lv),
204 rbi.m()*lv - rbi.m()*(rbi.c() ^ av)
240 return 0.5*(v && (*
this & v));
246inline void Foam::RBD::rigidBodyInertia::operator+=
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
symmTensor Icc(const vector &c) const
Return the difference between the inertia tensor of the rigid-body.
scalar kineticEnergy(const spatialVector &v)
Return the kinetic energy of the body with the given velocity.
const vector & c() const
Return the centre of mass of the rigid-body.
rigidBodyInertia()
Null constructor, initializes to zero.
symmTensor Io() const
Return the inertia tensor of the rigid-body about the origin.
symmTensor Ioc() const
Return the difference between the inertia tensor of the rigid-body.
scalar m() const
Return the mass of the rigid-body.
static symmTensor Ioc(const scalar m, const vector &c)
Return the difference between the inertia tensor of the rigid-body.
const symmTensor & Ic() const
Return the inertia tensor of the rigid-body about the centre of mass.
Tensor< Cmpt > T() const
Return non-Hermitian transpose.
Creates a single block of cells from point coordinates, numbers of cells in each direction and an exp...
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
This class represents the linear and angular inertia of a rigid body by the mass, centre of mass and ...
OBJstream os(runTime.globalPath()/outputName)
rigidBodyInertia transform(const spatialTransform &X, const rigidBodyInertia &I)
Return (^BX_A)^* I ^AX_B.
dimensionedSymmTensor symm(const dimensionedSymmTensor &dt)
SpatialVector< scalar > spatialVector
SpatialVector of scalars.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
static const Identity< scalar > I
Ostream & endl(Ostream &os)
Add newline and flush stream.
static constexpr const zero Zero
Global zero (0).
SpatialTensor< scalar > spatialTensor
SpatialTensor of scalars.
dimensioned< typename typeOfMag< Type >::type > magSqr(const dimensioned< Type > &dt)
SymmTensor< scalar > symmTensor
SymmTensor of scalars, i.e. SymmTensor<scalar>.
constexpr char nl
The newline '\n' character (0x0a).