Six degree of freedom motion for a rigid body. More...
Public Member Functions | |
sixDoFRigidBodyMotion (const Time &) | |
sixDoFRigidBodyMotion (const dictionary &dict, const dictionary &stateDict, const Time &time) | |
sixDoFRigidBodyMotion (const sixDoFRigidBodyMotion &) | |
~sixDoFRigidBodyMotion () | |
scalar | mass () const |
const diagTensor & | momentOfInertia () const |
const sixDoFRigidBodyMotionState & | state () const |
const point & | centreOfRotation () const |
const point & | initialCentreOfMass () const |
point | centreOfMass () const |
const tensor & | orientation () const |
vector | omega () const |
const vector & | v () const |
vector & | v () |
vector | momentArm () const |
bool | report () const |
const Time & | time () const |
void | newTime () |
point & | centreOfRotation () |
void | addRestraints (const dictionary &dict) |
void | addConstraints (const dictionary &dict) |
void | update (bool firstIter, const vector &fGlobal, const vector &tauGlobal, scalar deltaT, scalar deltaT0) |
void | status () const |
point | velocity (const point &pt) const |
point | transform (const point &initialPoints) const |
tmp< pointField > | transform (const pointField &initialPoints) const |
tmp< pointField > | transform (const pointField &initialPoints, const scalarField &scale) const |
void | write (Ostream &) const |
bool | read (const dictionary &dict) |
Friends | |
class | sixDoFSolver |
Six degree of freedom motion for a rigid body.
Angular momentum stored in body fixed reference frame. Reference orientation of the body (where Q = I) must align with the cartesian axes such that the Inertia tensor is in principle component form. Can add restraints (e.g. a spring) and constraints (e.g. motion may only be on a plane).
The time-integrator for the motion is run-time selectable with options for symplectic (explicit), Crank-Nicolson and Newmark schemes.
Definition at line 65 of file sixDoFRigidBodyMotion.H.
sixDoFRigidBodyMotion | ( | const Time & | time | ) |
Definition at line 69 of file sixDoFRigidBodyMotion.C.
sixDoFRigidBodyMotion | ( | const dictionary & | dict, |
const dictionary & | stateDict, | ||
const Time & | time | ||
) |
Definition at line 91 of file sixDoFRigidBodyMotion.C.
References Foam::diag(), dict, dictionary::found(), Foam::I, Foam::magSqr(), R, and Foam::sqr().
sixDoFRigidBodyMotion | ( | const sixDoFRigidBodyMotion & | sDoFRBM | ) |
Definition at line 155 of file sixDoFRigidBodyMotion.C.
Definition at line 180 of file sixDoFRigidBodyMotion.C.
|
inline |
Definition at line 204 of file sixDoFRigidBodyMotionI.H.
Referenced by linearSpringDamper::restrain(), uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField::updateCoeffs(), and sixDoFRigidBodyDisplacementPointPatchVectorField::updateCoeffs().
|
inline |
Definition at line 211 of file sixDoFRigidBodyMotionI.H.
|
inline |
Definition at line 218 of file sixDoFRigidBodyMotionI.H.
|
inline |
Definition at line 224 of file sixDoFRigidBodyMotionI.H.
Referenced by sphericalAngularSpring::restrain(), linearAxialAngularSpring::restrain(), tabulatedAxialAngularSpring::restrain(), sixDoFRigidBodyDisplacementPointPatchVectorField::updateCoeffs(), and sixDoFRigidBodyState::write().
|
inline |
Definition at line 231 of file sixDoFRigidBodyMotionI.H.
|
inline |
Definition at line 237 of file sixDoFRigidBodyMotionI.H.
References Foam::transform().
Referenced by sixDoFRigidBodyState::write().
|
inline |
Definition at line 250 of file sixDoFRigidBodyMotionI.H.
Referenced by sphericalAngularSpring::restrain(), linearAxialAngularSpring::restrain(), tabulatedAxialAngularSpring::restrain(), and sixDoFRigidBodyState::write().
|
inline |
Definition at line 256 of file sixDoFRigidBodyMotionI.H.
References Foam::inv(), and Foam::constant::mathematical::pi().
Referenced by sphericalAngularDamper::restrain(), sphericalAngularSpring::restrain(), linearAxialAngularSpring::restrain(), tabulatedAxialAngularSpring::restrain(), and sixDoFRigidBodyState::write().
|
inline |
Definition at line 136 of file sixDoFRigidBodyMotionI.H.
Referenced by linearDamper::restrain(), and sixDoFRigidBodyState::write().
|
inline |
|
inline |
Definition at line 243 of file sixDoFRigidBodyMotionI.H.
Referenced by sixDoFRigidBodyDisplacementPointPatchVectorField::updateCoeffs().
|
inline |
Definition at line 266 of file sixDoFRigidBodyMotionI.H.
Referenced by sphericalAngularDamper::restrain(), linearDamper::restrain(), sphericalAngularSpring::restrain(), linearAxialAngularSpring::restrain(), linearSpring::restrain(), tabulatedAxialAngularSpring::restrain(), and linearSpringDamper::restrain().
|
inline |
Definition at line 261 of file sixDoFRigidBodyMotionI.H.
Referenced by linearSpringDamper::restrain().
|
inline |
Definition at line 272 of file sixDoFRigidBodyMotionI.H.
Referenced by uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField::updateCoeffs(), and sixDoFRigidBodyDisplacementPointPatchVectorField::updateCoeffs().
|
inline |
void addRestraints | ( | const dictionary & | dict | ) |
Definition at line 187 of file sixDoFRigidBodyMotion.C.
References dict, dictionary::found(), sixDoFRigidBodyMotionRestraint::New(), dictionary::set(), and dictionary::subDict().
Referenced by sixDoFRigidBodyMotion::read().
void addConstraints | ( | const dictionary & | dict | ) |
Definition at line 221 of file sixDoFRigidBodyMotion.C.
References pointConstraint::constraintTransformation(), dict, Foam::endl(), dictionary::found(), Foam::Info, sixDoFRigidBodyMotionConstraint::New(), Foam::nl, and dictionary::subDict().
Referenced by sixDoFRigidBodyMotion::read().
void update | ( | bool | firstIter, |
const vector & | fGlobal, | ||
const vector & | tauGlobal, | ||
scalar | deltaT, | ||
scalar | deltaT0 | ||
) |
Definition at line 301 of file sixDoFRigidBodyMotion.C.
References UPstream::master(), and Pstream::scatter().
Referenced by uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField::updateCoeffs(), and sixDoFRigidBodyDisplacementPointPatchVectorField::updateCoeffs().
void status | ( | ) | const |
Definition at line 323 of file sixDoFRigidBodyMotion.C.
References Foam::endl(), Foam::Info, and Foam::nl.
|
inline |
Definition at line 285 of file sixDoFRigidBodyMotionI.H.
Referenced by linearSpring::restrain(), and linearSpringDamper::restrain().
|
inline |
Definition at line 294 of file sixDoFRigidBodyMotionI.H.
Referenced by linearSpring::restrain(), linearSpringDamper::restrain(), uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField::updateCoeffs(), and sixDoFRigidBodyDisplacementPointPatchVectorField::updateCoeffs().
Foam::tmp< Foam::pointField > transform | ( | const pointField & | initialPoints | ) | const |
Definition at line 336 of file sixDoFRigidBodyMotion.C.
Foam::tmp< Foam::pointField > transform | ( | const pointField & | initialPoints, |
const scalarField & | scale | ||
) | const |
Definition at line 349 of file sixDoFRigidBodyMotion.C.
References forAll, septernion::I, septernion::invTransformPoint(), points, tmp::ref(), s, Foam::slerp(), Foam::T(), and Foam::transform().
void write | ( | Ostream & | os | ) | const |
Definition at line 46 of file sixDoFRigidBodyMotionIO.C.
References Ostream::beginBlock(), Ostream::endBlock(), forAll, Foam::indent(), Foam::name(), os(), Foam::type(), Ostream::write(), and Ostream::writeEntry().
Referenced by sixDoFRigidBodyDisplacementPointPatchVectorField::write().
bool read | ( | const dictionary & | dict | ) |
Definition at line 28 of file sixDoFRigidBodyMotionIO.C.
References sixDoFRigidBodyMotion::addConstraints(), sixDoFRigidBodyMotion::addRestraints(), and dict.
|
friend |
Definition at line 67 of file sixDoFRigidBodyMotion.H.
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.