Loading...
Searching...
No Matches
rigidBodySolver Class Referenceabstract

#include <rigidBodySolver.H>

Inheritance diagram for rigidBodySolver:
Collaboration diagram for rigidBodySolver:

Public Member Functions

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

Static Public Member Functions

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

Protected Member Functions

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

Protected Attributes

rigidBodyMotionmodel_
 The rigid-body model.

Detailed Description

Source files

Definition at line 49 of file rigidBodySolver.H.

Constructor & Destructor Documentation

◆ rigidBodySolver()

rigidBodySolver ( rigidBodyMotion & body)

Definition at line 38 of file rigidBodySolver.C.

References model_.

Referenced by CrankNicolson::CrankNicolson(), declareRunTimeSelectionTable(), Newmark::Newmark(), and symplectic::symplectic().

Here is the caller graph for this function:

◆ ~rigidBodySolver()

~rigidBodySolver ( )
virtual

Destructor.

Definition at line 46 of file rigidBodySolver.C.

Member Function Documentation

◆ state()

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

Return the motion state.

Definition at line 23 of file rigidBodySolverI.H.

References model_.

Referenced by q(), qDdot(), qDot(), CrankNicolson::solve(), Newmark::solve(), and symplectic::solve().

Here is the caller graph for this function:

◆ q()

Foam::scalarField & q ( )
inlineprotected

Return the current joint position and orientation.

Definition at line 29 of file rigidBodySolverI.H.

References state().

Referenced by correctQuaternionJoints(), CrankNicolson::solve(), Newmark::solve(), and symplectic::solve().

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 35 of file rigidBodySolverI.H.

References state().

Referenced by CrankNicolson::solve(), Newmark::solve(), and symplectic::solve().

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

◆ qDdot()

Foam::scalarField & qDdot ( )
inlineprotected

Return the current joint acceleration.

Definition at line 41 of file rigidBodySolverI.H.

References state().

Referenced by CrankNicolson::solve(), Newmark::solve(), and symplectic::solve().

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

◆ deltaT()

Foam::scalar deltaT ( ) const
inlineprotected

Return the current time-step.

Definition at line 47 of file rigidBodySolverI.H.

References model_.

Referenced by CrankNicolson::solve(), Newmark::solve(), and symplectic::solve().

Here is the caller graph for this function:

◆ state0()

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

Return the previous motion state.

Definition at line 54 of file rigidBodySolverI.H.

References model_.

Referenced by q0(), qDdot0(), and 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 59 of file rigidBodySolverI.H.

References state0().

Referenced by correctQuaternionJoints(), CrankNicolson::solve(), Newmark::solve(), and symplectic::solve().

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 65 of file rigidBodySolverI.H.

References state0().

Referenced by CrankNicolson::solve(), Newmark::solve(), and symplectic::solve().

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

◆ qDdot0()

const Foam::scalarField & qDdot0 ( ) const
inlineprotected

Return the current joint acceleration.

Definition at line 71 of file rigidBodySolverI.H.

References state0().

Referenced by CrankNicolson::solve(), and Newmark::solve().

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

◆ deltaT0()

Foam::scalar deltaT0 ( ) const
inlineprotected

Return the previous time-step.

Definition at line 77 of file rigidBodySolverI.H.

References model_.

Referenced by symplectic::solve().

Here is the caller graph for this function:

◆ correctQuaternionJoints()

void correctQuaternionJoints ( )
protected

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

Definition at line 52 of file rigidBodySolver.C.

References Foam::cos(), forAll, Foam::mag(), model_, quaternion::normalise(), q(), and q0().

Referenced by CrankNicolson::solve(), Newmark::solve(), and symplectic::solve().

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

◆ TypeName()

TypeName ( "rigidBodySolver" )

Runtime type information.

◆ declareRunTimeSelectionTable()

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

References dict, and rigidBodySolver().

Here is the call graph for this function:

◆ New()

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

Definition at line 26 of file rigidBodySolverNew.C.

References dict, Foam::endl(), Foam::exit(), Foam::FatalIOError, FatalIOErrorInLookup, and Foam::Info.

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: