rigidBodySolver Class Referenceabstract
Inheritance diagram for rigidBodySolver:
Collaboration diagram for rigidBodySolver:

Public Member Functions

 TypeName ("rigidBodySolver")
 Runtime type information. More...
 
 declareRunTimeSelectionTable (autoPtr, rigidBodySolver, dictionary,(rigidBodyMotion &body, const dictionary &dict),(body, dict))
 
 rigidBodySolver (rigidBodyMotion &body)
 
virtual ~rigidBodySolver ()
 Destructor. More...
 
virtual void solve (const scalarField &tau, const Field< spatialVector > &fx)=0
 Integrate the rigid-body motion for one time-step. More...
 

Static Public Member Functions

static autoPtr< rigidBodySolverNew (rigidBodyMotion &body, const dictionary &dict)
 

Protected Member Functions

rigidBodyModelStatestate ()
 Return the motion state. More...
 
scalarFieldq ()
 Return the current joint position and orientation. More...
 
scalarFieldqDot ()
 Return the current joint quaternion. More...
 
scalarFieldqDdot ()
 Return the current joint acceleration. More...
 
scalar deltaT () const
 Return the current time-step. More...
 
const rigidBodyModelStatestate0 () const
 Return the previous motion state. More...
 
const scalarFieldq0 () const
 Return the current joint position and orientation. More...
 
const scalarFieldqDot0 () const
 Return the current joint quaternion. More...
 
const scalarFieldqDdot0 () const
 Return the current joint acceleration. More...
 
scalar deltaT0 () const
 Return the previous time-step. More...
 
void correctQuaternionJoints ()
 Correct the quaternion joints based on the current change in q. More...
 

Protected Attributes

rigidBodyMotionmodel_
 The rigid-body model. More...
 

Detailed Description

Constructor & Destructor Documentation

◆ rigidBodySolver()

Definition at line 43 of file rigidBodySolver.C.

◆ ~rigidBodySolver()

~rigidBodySolver ( )
virtual

Destructor.

Definition at line 51 of file rigidBodySolver.C.

Member Function Documentation

◆ state()

Foam::RBD::rigidBodyModelState & state ( )
inlineprotected

Return the motion state.

Definition at line 28 of file rigidBodySolverI.H.

References rigidBodySolver::model_.

Referenced by rigidBodySolver::q(), rigidBodySolver::qDdot(), and rigidBodySolver::qDot().

Here is the caller graph for this function:

◆ q()

Foam::scalarField & q ( )
inlineprotected

Return the current joint position and orientation.

Definition at line 34 of file rigidBodySolverI.H.

References rigidBodyModelState::q(), and rigidBodySolver::state().

Referenced by rigidBodySolver::correctQuaternionJoints().

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

◆ qDot()

Foam::scalarField & qDot ( )
inlineprotected

Return the current joint quaternion.

Return the current joint velocity

Definition at line 40 of file rigidBodySolverI.H.

References rigidBodyModelState::qDot(), and rigidBodySolver::state().

Here is the call graph for this function:

◆ qDdot()

Foam::scalarField & qDdot ( )
inlineprotected

Return the current joint acceleration.

Definition at line 46 of file rigidBodySolverI.H.

References rigidBodyModelState::qDdot(), and rigidBodySolver::state().

Here is the call graph for this function:

◆ deltaT()

Foam::scalar deltaT ( ) const
inlineprotected

Return the current time-step.

Definition at line 52 of file rigidBodySolverI.H.

References rigidBodyModelState::deltaT(), and rigidBodySolver::model_.

Here is the call graph for this function:

◆ state0()

const Foam::RBD::rigidBodyModelState & state0 ( ) const
inlineprotected

Return the previous motion state.

Definition at line 59 of file rigidBodySolverI.H.

References rigidBodySolver::model_.

Referenced by rigidBodySolver::q0(), rigidBodySolver::qDdot0(), and rigidBodySolver::qDot0().

Here is the caller graph for this function:

◆ q0()

const Foam::scalarField & q0 ( ) const
inlineprotected

Return the current joint position and orientation.

Definition at line 64 of file rigidBodySolverI.H.

References rigidBodyModelState::q(), and rigidBodySolver::state0().

Referenced by rigidBodySolver::correctQuaternionJoints().

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

◆ qDot0()

const Foam::scalarField & qDot0 ( ) const
inlineprotected

Return the current joint quaternion.

Return the current joint velocity

Definition at line 70 of file rigidBodySolverI.H.

References rigidBodyModelState::qDot(), and rigidBodySolver::state0().

Here is the call graph for this function:

◆ qDdot0()

const Foam::scalarField & qDdot0 ( ) const
inlineprotected

Return the current joint acceleration.

Definition at line 76 of file rigidBodySolverI.H.

References rigidBodyModelState::qDdot(), and rigidBodySolver::state0().

Here is the call graph for this function:

◆ deltaT0()

Foam::scalar deltaT0 ( ) const
inlineprotected

Return the previous time-step.

Definition at line 82 of file rigidBodySolverI.H.

References rigidBodyModelState::deltaT(), and rigidBodySolver::model_.

Here is the call graph for this function:

◆ correctQuaternionJoints()

void correctQuaternionJoints ( )
protected

Correct the quaternion joints based on the current change in q.

Definition at line 57 of file rigidBodySolver.C.

References Foam::cos(), forAll, rigidBodyModel::joints(), Foam::mag(), rigidBodySolver::model_, Foam::normalise(), rigidBodySolver::q(), rigidBodySolver::q0(), and rigidBodyModel::unitQuaternions().

Here is the call graph for this function:

◆ TypeName()

TypeName ( "rigidBodySolver"  )

Runtime type information.

◆ declareRunTimeSelectionTable()

declareRunTimeSelectionTable ( autoPtr  ,
rigidBodySolver  ,
dictionary  ,
(rigidBodyMotion &body, const dictionary &dict ,
(body, dict  
)

◆ New()

Foam::autoPtr< Foam::RBD::rigidBodySolver > New ( rigidBodyMotion body,
const dictionary dict 
)
static

Definition at line 31 of file rigidBodySolverNew.C.

References dict, Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, Foam::Info, and dictionary::lookup().

Here is the call graph for this function:

◆ solve()

virtual void solve ( const scalarField tau,
const Field< spatialVector > &  fx 
)
pure virtual

Integrate the rigid-body motion for one time-step.

Implemented in CrankNicolson, Newmark, and symplectic.

Member Data Documentation

◆ model_


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