MoorDyn
Public Member Functions | List of all members
moordyn::time::ABScheme< order, local > Class Template Referencefinal

Adam-Bashforth time schemes collection. More...

#include <Time.hpp>

Inheritance diagram for moordyn::time::ABScheme< order, local >:
Inheritance graph
[legend]
Collaboration diagram for moordyn::time::ABScheme< order, local >:
Collaboration graph
[legend]

Public Member Functions

 ABScheme (moordyn::Log *log, WavesRef waves)
 Constructor. More...
 
 ~ABScheme ()
 Destructor.
 
virtual void Step (real &dt)
 Run a time step. More...
 
virtual std::vector< uint64_t > Serialize (void)
 Produce the packed data to be saved. More...
 
virtual uint64_t * Deserialize (const uint64_t *data)
 Unpack the data to restore the Serialized information. More...
 
- Public Member Functions inherited from moordyn::time::LocalSchemeBase< 1, 5 >
virtual ~LocalSchemeBase ()
 Destructor.
 
void Init ()
 Create an initial state for all the entities. More...
 
virtual void SetState (const state::State &state, unsigned int i=0)
 Resume the simulation from the stationary solution. More...
 
- Public Member Functions inherited from moordyn::time::SchemeBase< NSTATE, NDERIV >
virtual ~SchemeBase ()
 Destructor.
 
virtual void AddLine (Line *obj)
 Add a line. More...
 
virtual unsigned int RemoveLine (Line *obj)
 Remove a line. More...
 
virtual void AddPoint (Point *obj)
 Add a point. More...
 
virtual unsigned int RemovePoint (Point *obj)
 Remove a point. More...
 
virtual void AddRod (Rod *obj)
 Add a rod. More...
 
virtual unsigned int RemoveRod (Rod *obj)
 Remove a rod. More...
 
virtual void AddBody (Body *obj)
 Add a body. More...
 
virtual unsigned int RemoveBody (Body *obj)
 Remove a body. More...
 
virtual void SaveState (const std::string filepath, unsigned int i=0)
 Save the system state on a file. More...
 
virtual void LoadState (const std::string filepath, unsigned int i=0)
 Load the system state from a file. More...
 
state::Staterd (unsigned int i=0)
 Get the state derivative. More...
 
state::Stater (unsigned int i=0)
 Get the state. More...
 
state::State GetState (unsigned int i=0)
 Get the state variable. More...
 
- Public Member Functions inherited from moordyn::time::Scheme
virtual ~Scheme ()
 Destructor.
 
void SetGround (Body *obj)
 Set the ground body. More...
 
std::string GetName () const
 Get the name of the scheme. More...
 
real GetTime () const
 Get the simulation time. More...
 
void SetTime (const real &time)
 Set the simulation time. More...
 
real GetCFL () const
 Get the CFL factor. More...
 
void SetCFL (const real &cfl)
 Set the CFL factor. More...
 
void Next ()
 Prepare everything for the next outer time step. More...
 
- Public Member Functions inherited from moordyn::io::IO
 IO (moordyn::Log *log)
 Costructor. More...
 
virtual ~IO ()=default
 Destructor.
 
void Save (const std::string filepath)
 Save the entity into a file. More...
 
void Load (const std::string filepath)
 Loads the entity from a file. More...
 
- Public Member Functions inherited from moordyn::LogUser
 LogUser (Log *log=NULL)
 Constructor. More...
 
 ~LogUser ()
 Destructor.
 
void SetLogger (Log *log)
 Set the log handler. More...
 
LogGetLogger () const
 Get the log handler. More...
 

Additional Inherited Members

- Protected Types inherited from moordyn::time::SchemeBase< NSTATE, NDERIV >
typedef struct moordyn::time::SchemeBase::_mask mask
 A mask to determine which entities shall be computed. More...
 
- Protected Member Functions inherited from moordyn::time::LocalSchemeBase< 1, 5 >
 LocalSchemeBase (moordyn::Log *log, moordyn::WavesRef waves)
 Costructor. More...
 
void SetCalcMask (real &dt)
 Set the calculation mask. More...
 
- Protected Member Functions inherited from moordyn::time::SchemeBase< NSTATE, NDERIV >
 SchemeBase (moordyn::Log *log, moordyn::WavesRef waves)
 Constructor. More...
 
void Update (real t_local, unsigned int substep=0)
 Update all the entities to set the state. More...
 
void CalcStateDeriv (unsigned int substep=0)
 Compute the time derivatives and store them. More...
 
- Protected Member Functions inherited from moordyn::time::Scheme
 Scheme (moordyn::Log *log)
 Constructor. More...
 
- Protected Member Functions inherited from moordyn::io::IO
ofstream MakeFile (const std::string filepath) const
 Create an output file and write the MoorDyn magic header. More...
 
std::tuple< uint64_t, uint64_t * > LoadFile (const std::string filepath) const
 Open an input file and load the data. More...
 
uint64_t Serialize (const uint64_t &i)
 Pack an unsigned integer to make it writable. More...
 
uint64_t Serialize (const int64_t &i)
 Pack an integer to make it writable. More...
 
uint64_t Serialize (const real &f)
 Pack a float to make it writable. More...
 
std::vector< uint64_t > Serialize (const vec &m)
 Pack a 3D vector to make it writable. More...
 
std::vector< uint64_t > Serialize (const vec6 &m)
 Pack a 6D vector to make it writable. More...
 
std::vector< uint64_t > Serialize (const mat &m)
 Pack a 3x3 matrix to make it writable. More...
 
std::vector< uint64_t > Serialize (const mat6 &m)
 Pack a 6x6 matrix to make it writable. More...
 
std::vector< uint64_t > Serialize (const quaternion &m)
 Pack a quaternion to make it writable. More...
 
std::vector< uint64_t > Serialize (const XYZQuat &m)
 Pack an XYZQuat to make it writable. More...
 
std::vector< uint64_t > Serialize (const std::vector< real > &l)
 Pack a list of floating point numbers to make it writable. More...
 
std::vector< uint64_t > Serialize (const std::vector< vec > &l)
 Pack a list of 3D vectors to make it writable. More...
 
std::vector< uint64_t > Serialize (const std::vector< vec6 > &l)
 Pack a list of 6D vectors to make it writable. More...
 
std::vector< uint64_t > Serialize (const std::vector< mat > &l)
 Pack a list of 3x3 matrices to make it writable. More...
 
std::vector< uint64_t > Serialize (const std::vector< mat6 > &l)
 Pack a list of 6x6 matrices to make it writable. More...
 
std::vector< uint64_t > Serialize (const Eigen::Matrix< real, Eigen::Dynamic, Eigen::Dynamic > &l)
 Pack an arbitrarily large matrix. More...
 
template<typename T >
std::vector< uint64_t > Serialize (const std::vector< std::vector< T >> &l)
 Pack a list of lists to make it writable This function might act recursively. More...
 
uint64_t * Deserialize (const uint64_t *in, uint64_t &out)
 Unpack a loaded unsigned integer. More...
 
uint64_t * Deserialize (const uint64_t *in, int64_t &out)
 Unpack a loaded integer. More...
 
uint64_t * Deserialize (const uint64_t *in, real &out)
 Unpack a loaded floating point number. More...
 
uint64_t * Deserialize (const uint64_t *in, vec &out)
 Unpack a loaded 3D vector. More...
 
uint64_t * Deserialize (const uint64_t *in, vec6 &out)
 Unpack a loaded 6D vector. More...
 
uint64_t * Deserialize (const uint64_t *in, mat &out)
 Unpack a loaded 3x3 matrix. More...
 
uint64_t * Deserialize (const uint64_t *in, mat6 &out)
 Unpack a loaded 6x6 matrix. More...
 
uint64_t * Deserialize (const uint64_t *in, quaternion &out)
 Unpack a loaded quaternion. More...
 
uint64_t * Deserialize (const uint64_t *in, XYZQuat &out)
 Unpack a loaded XYZQuat. More...
 
uint64_t * Deserialize (const uint64_t *in, std::vector< real > &out)
 Unpack a loaded list of floating point numbers. More...
 
uint64_t * Deserialize (const uint64_t *in, std::vector< vec > &out)
 Unpack a loaded list of 3D vectors. More...
 
uint64_t * Deserialize (const uint64_t *in, std::vector< vec6 > &out)
 Unpack a loaded list of 6D vectors. More...
 
uint64_t * Deserialize (const uint64_t *in, std::vector< mat > &out)
 Unpack a loaded list of 3x3 matrices. More...
 
uint64_t * Deserialize (const uint64_t *in, std::vector< mat6 > &out)
 Unpack a loaded list of 6x6 matrices. More...
 
uint64_t * Deserialize (const uint64_t *in, Eigen::Matrix< real, Eigen::Dynamic, Eigen::Dynamic > &out)
 Unpack an arbitrarily large matrix. More...
 
template<typename T >
uint64_t * Deserialize (const uint64_t *in, std::vector< std::vector< T >> &out)
 Unpack a loaded list of lists. More...
 
- Protected Attributes inherited from moordyn::time::SchemeBase< NSTATE, NDERIV >
std::array< moordyn::state::State *, NSTATE > _r
 The list of states.
 
std::array< moordyn::state::State *, NDERIV > _rd
 The list of state derivatives.
 
std::shared_ptr< Waveswaves
 The waves instance.
 
mask _calc_mask
 The SchemeBase::CalcStateDeriv() mask.
 
- Protected Attributes inherited from moordyn::time::Scheme
Bodyground
 The ground body.
 
std::vector< Line * > lines
 The lines.
 
std::vector< Point * > points
 The points.
 
std::vector< Rod * > rods
 The rods.
 
std::vector< Body * > bodies
 The bodies.
 
std::string name
 The scheme name.
 
real t
 The simulation time.
 
real t_local
 The local time, within the outer time step.
 
real cfl
 Maximum CFL factor.
 
- Protected Attributes inherited from moordyn::LogUser
Log_log
 The log handler.
 

Detailed Description

template<unsigned int order, bool local>
class moordyn::time::ABScheme< order, local >

Adam-Bashforth time schemes collection.

The Adam-Bashforth method tries to increase the order of the integrator by using former derivatives. Thus it is requiring just a single derivative computation per time step

Actually, the 1st order and the 2nd order are the same schemes than the Euler's and Heun's ones

Constructor & Destructor Documentation

◆ ABScheme()

template<unsigned int order, bool local>
moordyn::time::ABScheme< order, local >::ABScheme ( moordyn::Log log,
moordyn::WavesRef  waves 
)

Constructor.

Parameters
logLogging handler
wavesWaves instance

Member Function Documentation

◆ Deserialize()

template<unsigned int order, bool local>
virtual uint64_t* moordyn::time::ABScheme< order, local >::Deserialize ( const uint64_t *  data)
inlinevirtual

Unpack the data to restore the Serialized information.

This is the function that each inherited class must implement, and should be the inverse of Serialize(void)

Parameters
dataThe packed data
Returns
A pointer to the end of the file, for debugging purposes

Reimplemented from moordyn::time::SchemeBase< NSTATE, NDERIV >.

Here is the call graph for this function:

◆ Serialize()

template<unsigned int order, bool local>
virtual std::vector<uint64_t> moordyn::time::ABScheme< order, local >::Serialize ( void  )
inlinevirtual

Produce the packed data to be saved.

The produced data can be used afterwards to restore the saved information afterwards calling Deserialize(void).

Returns
The packed data

Reimplemented from moordyn::time::SchemeBase< NSTATE, NDERIV >.

Here is the call graph for this function:

◆ Step()

template<unsigned int order, bool local>
void moordyn::time::ABScheme< order, local >::Step ( real dt)
virtual

Run a time step.

This function is the one that must be specialized on each time scheme

Parameters
dtTime step

Reimplemented from moordyn::time::SchemeBase< NSTATE, NDERIV >.

Here is the call graph for this function:

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