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< rigidBodySolver > New (rigidBodyMotion &body, const dictionary &dict)
 

Protected Member Functions

rigidBodyModelState & state ()
 Return the motion state. More...
 
scalarField & q ()
 Return the current joint position and orientation. More...
 
scalarField & qDot ()
 Return the current joint quaternion. More...
 
scalarField & qDdot ()
 Return the current joint acceleration. More...
 
scalar deltaT () const
 Return the current time-step. More...
 
const rigidBodyModelState & state0 () const
 Return the previous motion state. More...
 
const scalarField & q0 () const
 Return the current joint position and orientation. More...
 
const scalarField & qDot0 () const
 Return the current joint quaternion. More...
 
const scalarField & qDdot0 () 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

rigidBodyMotion & model_
 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: