CrankNicolson Class Reference

Crank-Nicolson 2nd-order time-integrator for 6DoF solid-body motion. More...

Inheritance diagram for CrankNicolson:
Collaboration diagram for CrankNicolson:

Public Member Functions

 TypeName ("CrankNicolson")
 Runtime type information. More...
 
 CrankNicolson (const dictionary &dict, sixDoFRigidBodyMotion &body)
 Construct from a dictionary and the body. More...
 
virtual ~CrankNicolson ()
 Destructor. More...
 
virtual void solve (bool firstIter, const vector &fGlobal, const vector &tauGlobal, scalar deltaT, scalar deltaT0)
 Drag coefficient. More...
 
- Public Member Functions inherited from sixDoFSolver
 TypeName ("sixDoFSolver")
 Runtime type information. More...
 
 declareRunTimeSelectionTable (autoPtr, sixDoFSolver, dictionary,(const dictionary &dict, sixDoFRigidBodyMotion &body),(dict, body))
 
 sixDoFSolver (sixDoFRigidBodyMotion &body)
 
virtual ~sixDoFSolver ()
 Destructor. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from sixDoFSolver
static autoPtr< sixDoFSolverNew (const dictionary &dict, sixDoFRigidBodyMotion &body)
 
- Protected Member Functions inherited from sixDoFSolver
pointcentreOfRotation ()
 Return the current centre of rotation. More...
 
tensorQ ()
 Return the orientation. More...
 
vectorv ()
 Return non-const access to vector. More...
 
vectora ()
 Return non-const access to acceleration. More...
 
vectorpi ()
 Return non-const access to angular momentum. More...
 
vectortau ()
 Return non-const access to torque. More...
 
const pointcentreOfRotation0 () const
 Return the centre of rotation at previous time-step. More...
 
const tensorQ0 () const
 Return the orientation at previous time-step. More...
 
const vectorv0 () const
 Return the velocity at previous time-step. More...
 
const vectora0 () const
 Return the acceleration at previous time-step. More...
 
const vectorpi0 () const
 Return the angular momentum at previous time-step. More...
 
const vectortau0 () const
 Return the torque at previous time-step. More...
 
scalar aDamp () const
 Acceleration damping coefficient (for steady-state simulations) More...
 
tensor tConstraints () const
 Translational constraint tensor. More...
 
tensor rConstraints () const
 Rotational constraint tensor. More...
 
Tuple2< tensor, vectorrotate (const tensor &Q0, const vector &pi, const scalar deltaT) const
 Apply rotation tensors to Q0 for the given torque (pi) and deltaT. More...
 
void updateAcceleration (const vector &fGlobal, const vector &tauGlobal)
 Update and relax accelerations from the force and torque. More...
 
- Protected Attributes inherited from sixDoFSolver
sixDoFRigidBodyMotionbody_
 The rigid body. More...
 

Detailed Description

Crank-Nicolson 2nd-order time-integrator for 6DoF solid-body motion.

The off-centering coefficients for acceleration (velocity integration) and velocity (position/orientation integration) may be specified but default values of 0.5 for each are used if they are not specified. With the default off-centering this scheme is equivalent to the Newmark scheme with default coefficients.

Example specification in dynamicMeshDict:

solver
{
    type    CrankNicolson;
    aoc     0.5;    // Acceleration off-centering coefficient
    voc     0.5;    // Velocity off-centering coefficient
}
See also
Foam::sixDoFSolvers::Newmark
Source files

Definition at line 69 of file CrankNicolson.H.

Constructor & Destructor Documentation

◆ CrankNicolson()

CrankNicolson ( const dictionary dict,
sixDoFRigidBodyMotion body 
)

Construct from a dictionary and the body.

Definition at line 43 of file CrankNicolson.C.

◆ ~CrankNicolson()

~CrankNicolson ( )
virtual

Destructor.

Definition at line 57 of file CrankNicolson.C.

Member Function Documentation

◆ TypeName()

TypeName ( "CrankNicolson"  )

Runtime type information.

◆ solve()

void solve ( bool  firstIter,
const vector fGlobal,
const vector tauGlobal,
scalar  deltaT,
scalar  deltaT0 
)
virtual

Drag coefficient.

Implements sixDoFSolver.

Definition at line 63 of file CrankNicolson.C.

References Foam::constant::atomic::a0, and Foam::constant::mathematical::pi().

Here is the call graph for this function:

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