Loading...
Searching...
No Matches
symplectic Class Reference

Symplectic 2nd-order explicit time-integrator for 6DoF solid-body motion. More...

#include <symplectic.H>

Inheritance diagram for symplectic:
Collaboration diagram for symplectic:

Public Member Functions

 TypeName ("symplectic")
 Runtime type information.
 symplectic (const dictionary &dict, sixDoFRigidBodyMotion &body)
 Construct from a dictionary and the body.
virtual autoPtr< sixDoFSolverclone () const
 Construct and return a clone.
virtual ~symplectic ()
 Destructor.
virtual void solve (bool firstIter, const vector &fGlobal, const vector &tauGlobal, scalar deltaT, scalar deltaT0)
 Drag coefficient.
Public Member Functions inherited from sixDoFSolver
 TypeName ("sixDoFSolver")
 Runtime type information.
 declareRunTimeSelectionTable (autoPtr, sixDoFSolver, dictionary,(const dictionary &dict, sixDoFRigidBodyMotion &body),(dict, body))
 sixDoFSolver (const dictionary &dict, sixDoFRigidBodyMotion &body)
virtual ~sixDoFSolver ()
 Destructor.
void write (Ostream &) const
 Write.

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.
tensorQ ()
 Return the orientation.
vectorv ()
 Return non-const access to vector.
vectora ()
 Return non-const access to acceleration.
vectorpi ()
 Return non-const access to angular momentum.
vectortau ()
 Return non-const access to torque.
const pointcentreOfRotation0 () const
 Return the centre of rotation at previous time-step.
const tensorQ0 () const
 Return the orientation at previous time-step.
const vectorv0 () const
 Return the velocity at previous time-step.
const vectora0 () const
 Return the acceleration at previous time-step.
const vectorpi0 () const
 Return the angular momentum at previous time-step.
const vectortau0 () const
 Return the torque at previous time-step.
scalar aDamp () const
 Acceleration damping coefficient (for steady-state simulations).
tensor tConstraints () const
 Translational constraint tensor.
tensor rConstraints () const
 Rotational constraint tensor.
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.
void updateAcceleration (const vector &fGlobal, const vector &tauGlobal)
 Update and relax accelerations from the force and torque.
void updateConstraints ()
 Update the constraints to the object.
Protected Attributes inherited from sixDoFSolver
sixDoFRigidBodyMotionbody_
 The rigid body.
dictionary dict_
 Model dictionary.

Detailed Description

Symplectic 2nd-order explicit time-integrator for 6DoF solid-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;
}
See also
Foam::sixDoFSolvers::CrankNicolson Foam::sixDoFSolvers::Newmark
Source files

Definition at line 75 of file symplectic.H.

Constructor & Destructor Documentation

◆ symplectic()

symplectic ( const dictionary & dict,
sixDoFRigidBodyMotion & body )

Construct from a dictionary and the body.

Definition at line 39 of file symplectic.C.

References dict, and sixDoFSolver::sixDoFSolver().

Here is the call graph for this function:

◆ ~symplectic()

~symplectic ( )
virtual

Destructor.

Definition at line 51 of file symplectic.C.

Member Function Documentation

◆ TypeName()

TypeName ( "symplectic" )

Runtime type information.

References dict.

◆ clone()

virtual autoPtr< sixDoFSolver > clone ( ) const
inlinevirtual

Construct and return a clone.

Implements sixDoFSolver.

Definition at line 102 of file symplectic.H.

References sixDoFSolver::body_, sixDoFSolver::dict_, and autoPtr< T >::NewFrom().

Here is the call graph for this function:

◆ solve()


The documentation for this class was generated from the following files:
  • src/sixDoFRigidBodyMotion/sixDoFSolvers/symplectic/symplectic.H
  • src/sixDoFRigidBodyMotion/sixDoFSolvers/symplectic/symplectic.C