|
MoorDyn
|
Time scheme abstraction. More...
#include <Time.hpp>


Public Member Functions | |
| virtual | ~Scheme () |
| Destructor. | |
| void | SetGround (Body *obj) |
| Set the ground body. More... | |
| 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... | |
| 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... | |
| virtual void | Init ()=0 |
| Create an initial state for all the entities. More... | |
| virtual void | Step (real &dt) |
| Run a time step. More... | |
| virtual moordyn::state::State | GetState (unsigned int i=0)=0 |
| Get the state variable. More... | |
| virtual void | SetState (const moordyn::state::State &state, unsigned int i=0) |
| Resume the simulation from the stationary solution. 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... | |
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... | |
| virtual std::vector< uint64_t > | Serialize (void)=0 |
| Produce the packed data to be saved. More... | |
| virtual uint64_t * | Deserialize (const uint64_t *data)=0 |
| Unpack the data to restore the Serialized information. 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... | |
| Log * | GetLogger () const |
| Get the log handler. More... | |
Protected Member Functions | |
| 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 | |
| Body * | ground |
| 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. | |
Time scheme abstraction.
This class is helping mooring::MoorDyn to can consider every single time scheme in the very same way
|
inlineprotected |
Constructor.
| log | Logging handler |
|
inlinevirtual |
Add a body.
| obj | The body |
| moordyn::invalid_value_error | If it has been already registered |
Reimplemented in moordyn::time::SchemeBase< NSTATE, NDERIV >, moordyn::time::SchemeBase< 2, 2 >, moordyn::time::SchemeBase< 1, 2 >, moordyn::time::SchemeBase< 2, 1 >, moordyn::time::SchemeBase< 1, 1 >, and moordyn::time::SchemeBase< 5, 4 >.

|
inlinevirtual |
Add a line.
| obj | The line |
| moordyn::invalid_value_error | If it has been already registered |
Reimplemented in moordyn::time::SchemeBase< NSTATE, NDERIV >, moordyn::time::SchemeBase< 2, 2 >, moordyn::time::SchemeBase< 1, 2 >, moordyn::time::SchemeBase< 2, 1 >, moordyn::time::SchemeBase< 1, 1 >, and moordyn::time::SchemeBase< 5, 4 >.

|
inlinevirtual |
Add a point.
| obj | The point |
| moordyn::invalid_value_error | If it has been already registered |
Reimplemented in moordyn::time::SchemeBase< NSTATE, NDERIV >, moordyn::time::SchemeBase< 2, 2 >, moordyn::time::SchemeBase< 1, 2 >, moordyn::time::SchemeBase< 2, 1 >, moordyn::time::SchemeBase< 1, 1 >, and moordyn::time::SchemeBase< 5, 4 >.

|
inlinevirtual |
Add a rod.
| obj | The rod |
| moordyn::invalid_value_error | If it has been already registered |
Reimplemented in moordyn::time::SchemeBase< NSTATE, NDERIV >, moordyn::time::SchemeBase< 2, 2 >, moordyn::time::SchemeBase< 1, 2 >, moordyn::time::SchemeBase< 2, 1 >, moordyn::time::SchemeBase< 1, 1 >, and moordyn::time::SchemeBase< 5, 4 >.

|
inline |
Get the CFL factor.
|
inline |
Get the name of the scheme.
|
pure virtual |
Get the state variable.
| i | The index of the state variable to take |
Implemented in moordyn::time::SchemeBase< NSTATE, NDERIV >, moordyn::time::SchemeBase< 2, 2 >, moordyn::time::SchemeBase< 1, 2 >, moordyn::time::SchemeBase< 2, 1 >, moordyn::time::SchemeBase< 1, 1 >, and moordyn::time::SchemeBase< 5, 4 >.

|
inline |
Get the simulation time.

|
pure virtual |
Create an initial state for all the entities.
Implemented in moordyn::time::LocalSchemeBase< NSTATE, NDERIV >, moordyn::time::LocalSchemeBase< 1, 1 >, moordyn::time::LocalSchemeBase< 1, 5 >, moordyn::time::SchemeBase< NSTATE, NDERIV >, moordyn::time::SchemeBase< 2, 2 >, moordyn::time::SchemeBase< 1, 2 >, moordyn::time::SchemeBase< 2, 1 >, moordyn::time::SchemeBase< 1, 1 >, and moordyn::time::SchemeBase< 5, 4 >.

|
inlinevirtual |
Load the system state from a file.
| filepath | The output file path |
| i | The index of the state variable to overwrite |
Reimplemented in moordyn::time::SchemeBase< NSTATE, NDERIV >, moordyn::time::SchemeBase< 2, 2 >, moordyn::time::SchemeBase< 1, 2 >, moordyn::time::SchemeBase< 2, 1 >, moordyn::time::SchemeBase< 1, 1 >, and moordyn::time::SchemeBase< 5, 4 >.
|
inline |
Prepare everything for the next outer time step.
Always call this method before start calling Scheme::Step()

|
inlinevirtual |
Remove a body.
| obj | The body |
| moordyn::invalid_value_error | If the body has not been registered, or it was already removed |
Reimplemented in moordyn::time::SchemeBase< NSTATE, NDERIV >, moordyn::time::SchemeBase< 2, 2 >, moordyn::time::SchemeBase< 1, 2 >, moordyn::time::SchemeBase< 2, 1 >, moordyn::time::SchemeBase< 1, 1 >, and moordyn::time::SchemeBase< 5, 4 >.

|
inlinevirtual |
Remove a line.
| obj | The line |
| moordyn::invalid_value_error | If the line has not been registered, or it was already removed |
Reimplemented in moordyn::time::SchemeBase< NSTATE, NDERIV >, moordyn::time::SchemeBase< 2, 2 >, moordyn::time::SchemeBase< 1, 2 >, moordyn::time::SchemeBase< 2, 1 >, moordyn::time::SchemeBase< 1, 1 >, and moordyn::time::SchemeBase< 5, 4 >.

|
inlinevirtual |
Remove a point.
| obj | The point |
| moordyn::invalid_value_error | If the point has not been registered, or it was already removed |
Reimplemented in moordyn::time::SchemeBase< NSTATE, NDERIV >, moordyn::time::SchemeBase< 2, 2 >, moordyn::time::SchemeBase< 1, 2 >, moordyn::time::SchemeBase< 2, 1 >, moordyn::time::SchemeBase< 1, 1 >, and moordyn::time::SchemeBase< 5, 4 >.

|
inlinevirtual |
Remove a rod.
| obj | The rod |
| moordyn::invalid_value_error | If the rod has not been registered, or it was already removed |
Reimplemented in moordyn::time::SchemeBase< NSTATE, NDERIV >, moordyn::time::SchemeBase< 2, 2 >, moordyn::time::SchemeBase< 1, 2 >, moordyn::time::SchemeBase< 2, 1 >, moordyn::time::SchemeBase< 1, 1 >, and moordyn::time::SchemeBase< 5, 4 >.

|
inlinevirtual |
Save the system state on a file.
| filepath | The output file path |
| i | The index of the state variable to serialize |
Reimplemented in moordyn::time::SchemeBase< NSTATE, NDERIV >, moordyn::time::SchemeBase< 2, 2 >, moordyn::time::SchemeBase< 1, 2 >, moordyn::time::SchemeBase< 2, 1 >, moordyn::time::SchemeBase< 1, 1 >, and moordyn::time::SchemeBase< 5, 4 >.
|
inline |
Set the CFL factor.
| cfl | The CFL factor |

|
inline |
Set the ground body.
| obj | The ground body |

|
inlinevirtual |
Resume the simulation from the stationary solution.
| state | The stationary solution |
| i | The index of the state variable to take |
Reimplemented in moordyn::time::LocalSchemeBase< NSTATE, NDERIV >, moordyn::time::LocalSchemeBase< 1, 1 >, moordyn::time::LocalSchemeBase< 1, 5 >, moordyn::time::SchemeBase< NSTATE, NDERIV >, moordyn::time::SchemeBase< 2, 2 >, moordyn::time::SchemeBase< 1, 2 >, moordyn::time::SchemeBase< 2, 1 >, moordyn::time::SchemeBase< 1, 1 >, and moordyn::time::SchemeBase< 5, 4 >.

|
inline |
Set the simulation time.
| time | The time |

|
inlinevirtual |
Run a time step.
This function is the one that must be specialized on each time scheme, but remember to call it at the end of the inherited function to increment Scheme::t_local
| dt | Time step |
Reimplemented in moordyn::time::ImplicitWilsonScheme, moordyn::time::ImplicitNewmarkScheme, moordyn::time::ImplicitEulerScheme, moordyn::time::ABScheme< order, local >, moordyn::time::RK4Scheme, moordyn::time::RK2Scheme, moordyn::time::HeunScheme, moordyn::time::LocalEulerScheme, moordyn::time::EulerScheme, moordyn::time::StationaryScheme, moordyn::time::SchemeBase< NSTATE, NDERIV >, moordyn::time::SchemeBase< 2, 2 >, moordyn::time::SchemeBase< 1, 2 >, moordyn::time::SchemeBase< 2, 1 >, moordyn::time::SchemeBase< 1, 1 >, and moordyn::time::SchemeBase< 5, 4 >.
