Public Member Functions | Friends | List of all members
sixDoFRigidBodyMotion Class Reference

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 diagTensormomentOfInertia () const
 
const sixDoFRigidBodyMotionStatestate () const
 
const pointcentreOfRotation () const
 
const pointinitialCentreOfMass () const
 
point centreOfMass () const
 
const tensororientation () const
 
vector omega () const
 
const vectorv () const
 
vectorv ()
 
vector momentArm () const
 
bool report () const
 
const Timetime () const
 
void newTime ()
 
pointcentreOfRotation ()
 
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< pointFieldtransform (const pointField &initialPoints) const
 
tmp< pointFieldtransform (const pointField &initialPoints, const scalarField &scale) const
 
void write (Ostream &) const
 
bool read (const dictionary &dict)
 

Friends

class sixDoFSolver
 

Detailed Description

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.

Source files

Definition at line 65 of file sixDoFRigidBodyMotion.H.

Constructor & Destructor Documentation

◆ sixDoFRigidBodyMotion() [1/3]

sixDoFRigidBodyMotion ( const Time time)

Definition at line 69 of file sixDoFRigidBodyMotion.C.

◆ sixDoFRigidBodyMotion() [2/3]

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().

Here is the call graph for this function:

◆ sixDoFRigidBodyMotion() [3/3]

Definition at line 155 of file sixDoFRigidBodyMotion.C.

◆ ~sixDoFRigidBodyMotion()

Definition at line 180 of file sixDoFRigidBodyMotion.C.

Member Function Documentation

◆ mass()

Foam::scalar mass ( ) const
inline

◆ momentOfInertia()

const Foam::diagTensor & momentOfInertia ( ) const
inline

Definition at line 211 of file sixDoFRigidBodyMotionI.H.

◆ state()

const Foam::sixDoFRigidBodyMotionState & state ( ) const
inline

Definition at line 218 of file sixDoFRigidBodyMotionI.H.

◆ centreOfRotation() [1/2]

Foam::point & centreOfRotation ( ) const
inline

◆ initialCentreOfMass()

const Foam::point & initialCentreOfMass ( ) const
inline

Definition at line 231 of file sixDoFRigidBodyMotionI.H.

◆ centreOfMass()

Foam::point centreOfMass ( ) const
inline

Definition at line 237 of file sixDoFRigidBodyMotionI.H.

References Foam::transform().

Referenced by sixDoFRigidBodyState::write().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ orientation()

const Foam::tensor & orientation ( ) const
inline

◆ omega()

Foam::vector omega ( ) const
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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ v() [1/2]

Foam::vector & v ( ) const
inline

Definition at line 136 of file sixDoFRigidBodyMotionI.H.

Referenced by linearDamper::restrain(), and sixDoFRigidBodyState::write().

Here is the caller graph for this function:

◆ v() [2/2]

vector& v ( )
inline

◆ momentArm()

Foam::vector momentArm ( ) const
inline

Definition at line 243 of file sixDoFRigidBodyMotionI.H.

Referenced by sixDoFRigidBodyDisplacementPointPatchVectorField::updateCoeffs().

Here is the caller graph for this function:

◆ report()

bool report ( ) const
inline

◆ time()

const Foam::Time & time ( ) const
inline

Definition at line 261 of file sixDoFRigidBodyMotionI.H.

Referenced by linearSpringDamper::restrain().

Here is the caller graph for this function:

◆ newTime()

void newTime ( )
inline

◆ centreOfRotation() [2/2]

point& centreOfRotation ( )
inline

◆ addRestraints()

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ addConstraints()

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ update()

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ status()

void status ( ) const

Definition at line 323 of file sixDoFRigidBodyMotion.C.

References Foam::endl(), Foam::Info, and Foam::nl.

Here is the call graph for this function:

◆ velocity()

Foam::point velocity ( const point pt) const
inline

Definition at line 285 of file sixDoFRigidBodyMotionI.H.

Referenced by linearSpring::restrain(), and linearSpringDamper::restrain().

Here is the caller graph for this function:

◆ transform() [1/3]

Foam::point transform ( const point initialPoints) const
inline

◆ transform() [2/3]

Foam::tmp< Foam::pointField > transform ( const pointField initialPoints) const

Definition at line 336 of file sixDoFRigidBodyMotion.C.

◆ transform() [3/3]

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().

Here is the call graph for this function:

◆ write()

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ read()

bool read ( const dictionary dict)

Definition at line 28 of file sixDoFRigidBodyMotionIO.C.

References sixDoFRigidBodyMotion::addConstraints(), sixDoFRigidBodyMotion::addRestraints(), and dict.

Here is the call graph for this function:

Friends And Related Function Documentation

◆ sixDoFSolver

friend class sixDoFSolver
friend

Definition at line 67 of file sixDoFRigidBodyMotion.H.


The documentation for this class was generated from the following files: