Symplectic 2nd-order explicit time-integrator for rigid-body motion. More...
Public Member Functions | |
TypeName ("symplectic") | |
Runtime type information. More... | |
symplectic (rigidBodyMotion &body, const dictionary &dict) | |
Construct for the given body from dictionary. More... | |
virtual | ~symplectic () |
Destructor. More... | |
virtual void | solve (const scalarField &tau, const Field< spatialVector > &fx) |
Integrate the rigid-body motion for one time-step. More... | |
Public Member Functions inherited from rigidBodySolver | |
TypeName ("rigidBodySolver") | |
Runtime type information. More... | |
declareRunTimeSelectionTable (autoPtr, rigidBodySolver, dictionary,(rigidBodyMotion &body, const dictionary &dict),(body, dict)) | |
rigidBodySolver (rigidBodyMotion &body) | |
virtual | ~rigidBodySolver () |
Destructor. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from rigidBodySolver | |
static autoPtr< rigidBodySolver > | New (rigidBodyMotion &body, const dictionary &dict) |
Protected Member Functions inherited from rigidBodySolver | |
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 inherited from rigidBodySolver | |
rigidBodyMotion & | model_ |
The rigid-body model. More... | |
Symplectic 2nd-order explicit time-integrator for rigid-body motion.
Reference:
Dullweber, A., Leimkuhler, B., & McLachlan, R. (1997). Symplectic splitting methods for rigid body molecular dynamics. The Journal of chemical physics, 107(15), 5840-5851.
Can only be used for explicit integration of the motion of the body, i.e. may only be called once per time-step, no outer-correctors may be applied. For implicit integration with outer-correctors choose either CrankNicolson or Newmark schemes.
Example specification in dynamicMeshDict:
solver { type symplectic; }
Definition at line 76 of file symplectic.H.
symplectic | ( | rigidBodyMotion & | body, |
const dictionary & | dict | ||
) |
Construct for the given body from dictionary.
Definition at line 46 of file symplectic.C.
|
virtual |
Destructor.
Definition at line 58 of file symplectic.C.
TypeName | ( | "symplectic" | ) |
Runtime type information.
|
virtual |
Integrate the rigid-body motion for one time-step.
Implements rigidBodySolver.
Definition at line 64 of file symplectic.C.