MoorDyn
Classes | Namespaces | Macros | Functions
Time.hpp File Reference
#include "Misc.hpp"
#include "IO.hpp"
#include "State.hpp"
#include "Line.hpp"
#include "Point.hpp"
#include "Rod.hpp"
#include "Body.hpp"
#include "Waves.hpp"
#include <vector>
#include <string>
Include dependency graph for Time.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  moordyn::time::Scheme
 Time scheme abstraction. More...
 
class  moordyn::time::SchemeBase< NSTATE, NDERIV >
 A generic abstract integration scheme. More...
 
struct  moordyn::time::SchemeBase< NSTATE, NDERIV >::_mask
 A mask to determine which entities shall be computed. More...
 
class  moordyn::time::StationaryScheme
 A stationary solution. More...
 
class  moordyn::time::EulerScheme
 The simplest 1st order Euler's time scheme. More...
 
class  moordyn::time::LocalSchemeBase< NSTATE, NDERIV >
 A generic abstract integration scheme. More...
 
class  moordyn::time::LocalEulerScheme
 A modification of the 1st order Euler's time scheme, which is considering different time steps for each instance. More...
 
class  moordyn::time::HeunScheme
 Quasi 2nd order Heun's time scheme. More...
 
class  moordyn::time::RK2Scheme
 2nd order Runge-Kutta time scheme More...
 
class  moordyn::time::RK4Scheme
 4th order Runge-Kutta time scheme More...
 
class  moordyn::time::ABScheme< order, local >
 Adam-Bashforth time schemes collection. More...
 
class  moordyn::time::ImplicitSchemeBase< NSTATE, NDERIV >
 A generic abstract implicit scheme. More...
 
class  moordyn::time::ImplicitEulerScheme
 Implicit 1st order Euler time scheme. More...
 
class  moordyn::time::ImplicitNewmarkScheme
 Implicit Newmark Scheme. More...
 
class  moordyn::time::ImplicitWilsonScheme
 

Namespaces

 moordyn
 MoorDyn2 C++ API namespace.
 

Macros

#define AS_STATE(R)   ((moordyn::state::State*)R)
 

Functions

Scheme * moordyn::time::create_time_scheme (const std::string &name, moordyn::Log *log, WavesRef waves)
 Create a time scheme. More...
 

Detailed Description

C++ API for the time integration

Macro Definition Documentation

◆ AS_STATE

#define AS_STATE (   R)    ((moordyn::state::State*)R)

Definition to explicitely let the compiler know the type inside the std::array.

This is required to avoid problems with the templates

Function Documentation

◆ create_time_scheme()

Scheme * moordyn::time::create_time_scheme ( const std::string &  name,
moordyn::Log log,
WavesRef  waves 
)

Create a time scheme.

Parameters
nameThe time scheme name, one of the following: "Euler", "Heun", "RK2", "RK4", "AB3", "AB4"
logThe log handler
wavesWaves instance
Returns
The time scheme
Exceptions
moordyn::invalid_value_errorIf there is not a time scheme named after name
moordyn::mem_errorIf the time scheme memory cannot be allocated
Note
Remember to delete the returned time scheme at some point