Public Member Functions | List of all members
CrankNicolson Class Reference

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

Inheritance diagram for CrankNicolson:
Inheritance graph
[legend]
Collaboration diagram for CrankNicolson:
Collaboration graph
[legend]

Public Member Functions

 TypeName ("CrankNicolson")
 
 CrankNicolson (const dictionary &dict, sixDoFRigidBodyMotion &body)
 
virtual autoPtr< sixDoFSolverclone () const
 
virtual ~CrankNicolson ()
 
virtual void solve (bool firstIter, const vector &fGlobal, const vector &tauGlobal, scalar deltaT, scalar deltaT0)
 
- Public Member Functions inherited from sixDoFSolver
 TypeName ("sixDoFSolver")
 
 declareRunTimeSelectionTable (autoPtr, sixDoFSolver, dictionary,(const dictionary &dict, sixDoFRigidBodyMotion &body),(dict, body))
 
 sixDoFSolver (const dictionary &dict, sixDoFRigidBodyMotion &body)
 
virtual ~sixDoFSolver ()
 
void write (Ostream &) const
 

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 ()
 
tensorQ ()
 
vectorv ()
 
vectora ()
 
vectorpi ()
 
vectortau ()
 
const pointcentreOfRotation0 () const
 
const tensorQ0 () const
 
const vectorv0 () const
 
const vectora0 () const
 
const vectorpi0 () const
 
const vectortau0 () const
 
scalar aDamp () const
 
tensor tConstraints () const
 
tensor rConstraints () const
 
Tuple2< tensor, vectorrotate (const tensor &Q0, const vector &pi, const scalar deltaT) const
 
void updateAcceleration (const vector &fGlobal, const vector &tauGlobal)
 
- Protected Attributes inherited from sixDoFSolver
sixDoFRigidBodyMotionbody_
 
dictionary dict_
 

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 70 of file CrankNicolson.H.

Constructor & Destructor Documentation

◆ CrankNicolson()

CrankNicolson ( const dictionary dict,
sixDoFRigidBodyMotion body 
)

Definition at line 40 of file CrankNicolson.C.

◆ ~CrankNicolson()

~CrankNicolson ( )
virtual

Definition at line 53 of file CrankNicolson.C.

Member Function Documentation

◆ TypeName()

TypeName ( "CrankNicolson"  )

◆ clone()

virtual autoPtr<sixDoFSolver> clone ( ) const
inlinevirtual

Implements sixDoFSolver.

Definition at line 99 of file CrankNicolson.H.

References sixDoFSolver::body_, and sixDoFSolver::dict_.

◆ solve()

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

Implements sixDoFSolver.

Definition at line 60 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: