Nektar++
|
Base class for time integration schemes. More...
#include <TimeIntegrationScheme.h>
Public Member Functions | |
LUE std::string | GetFullName () const |
LUE std::string | GetName () const |
LUE std::string | GetVariant () const |
LUE size_t | GetOrder () const |
LUE std::vector< NekDouble > | GetFreeParams () |
LUE TimeIntegrationSchemeType | GetIntegrationSchemeType () |
LUE NekDouble | GetTimeStability () const |
LUE size_t | GetNumIntegrationPhases () |
LUE const TripleArray & | GetSolutionVector () const |
Gets the solution vector of the ODE. More... | |
LUE TripleArray & | UpdateSolutionVector () |
LUE void | SetSolutionVector (const size_t Offset, const DoubleArray &y) |
Sets the solution vector of the ODE. More... | |
LUE void | InitializeScheme (const NekDouble deltaT, ConstDoubleArray &y_0, const NekDouble time, const TimeIntegrationSchemeOperators &op) |
Explicit integration of an ODE. More... | |
LUE ConstDoubleArray & | TimeIntegrate (const size_t timestep, const NekDouble delta_t) |
LUE void | print (std::ostream &os) const |
LUE void | printFull (std::ostream &os) const |
Protected Member Functions | |
virtual LUE std::string | v_GetFullName () const |
virtual LUE std::string | v_GetName () const =0 |
virtual LUE std::string | v_GetVariant () const =0 |
virtual LUE size_t | v_GetOrder () const =0 |
virtual LUE std::vector< NekDouble > | v_GetFreeParams () const =0 |
virtual LUE TimeIntegrationSchemeType | v_GetIntegrationSchemeType () const =0 |
virtual LUE NekDouble | v_GetTimeStability () const =0 |
virtual LUE size_t | v_GetNumIntegrationPhases () const =0 |
virtual LUE const TripleArray & | v_GetSolutionVector () const =0 |
virtual LUE TripleArray & | v_UpdateSolutionVector ()=0 |
virtual LUE void | v_SetSolutionVector (const size_t Offset, const DoubleArray &y)=0 |
virtual LUE void | v_InitializeScheme (const NekDouble deltaT, ConstDoubleArray &y_0, const NekDouble time, const TimeIntegrationSchemeOperators &op)=0 |
virtual LUE ConstDoubleArray & | v_TimeIntegrate (const size_t timestep, const NekDouble delta_t)=0 |
virtual LUE void | v_print (std::ostream &os) const =0 |
virtual LUE void | v_printFull (std::ostream &os) const =0 |
LUE | TimeIntegrationScheme (std::string variant, size_t order, std::vector< NekDouble > freeParams) |
LUE | TimeIntegrationScheme (const TimeIntegrationScheme &in)=delete |
virtual | ~TimeIntegrationScheme ()=default |
Friends | |
LUE friend std::ostream & | operator<< (std::ostream &os, const TimeIntegrationScheme &rhs) |
LUE friend std::ostream & | operator<< (std::ostream &os, const TimeIntegrationSchemeSharedPtr &rhs) |
Base class for time integration schemes.
Definition at line 73 of file TimeIntegrationScheme.h.
|
protected |
Definition at line 53 of file TimeIntegration/TimeIntegrationScheme.cpp.
|
protecteddelete |
|
protectedvirtualdefault |
Definition at line 93 of file TimeIntegrationScheme.h.
References v_GetFreeParams().
|
inline |
Definition at line 77 of file TimeIntegrationScheme.h.
References v_GetFullName().
Referenced by Nektar::LibUtilities::TimeIntegrationSchemeGLM::v_InitializeSecondaryData(), Nektar::LibUtilities::NoSchemeTimeIntegrationScheme::v_print(), Nektar::LibUtilities::FractionalInTimeIntegrationScheme::v_print(), Nektar::LibUtilities::TimeIntegrationSchemeGEM::v_print(), Nektar::LibUtilities::TimeIntegrationSchemeGLM::v_print(), Nektar::LibUtilities::TimeIntegrationSchemeSDC::v_print(), Nektar::LibUtilities::NoSchemeTimeIntegrationScheme::v_printFull(), Nektar::LibUtilities::FractionalInTimeIntegrationScheme::v_printFull(), Nektar::LibUtilities::TimeIntegrationSchemeGEM::v_printFull(), Nektar::LibUtilities::TimeIntegrationSchemeGLM::v_printFull(), and Nektar::LibUtilities::TimeIntegrationSchemeSDC::v_printFull().
|
inline |
Definition at line 97 of file TimeIntegrationScheme.h.
References v_GetIntegrationSchemeType().
|
inline |
Definition at line 81 of file TimeIntegrationScheme.h.
References v_GetName().
Referenced by v_GetFullName(), and Nektar::LibUtilities::EulerExponentialTimeIntegrationScheme::v_GetFullName().
|
inline |
Definition at line 105 of file TimeIntegrationScheme.h.
References v_GetNumIntegrationPhases().
|
inline |
Definition at line 89 of file TimeIntegrationScheme.h.
References v_GetOrder().
Referenced by v_GetFullName(), Nektar::LibUtilities::EulerExponentialTimeIntegrationScheme::v_GetFullName(), Nektar::LibUtilities::AdamsBashforthTimeIntegrationScheme::v_GetTimeStability(), and Nektar::LibUtilities::RungeKuttaTimeIntegrationScheme::v_GetTimeStability().
|
inline |
Gets the solution vector of the ODE.
Definition at line 113 of file TimeIntegrationScheme.h.
References v_GetSolutionVector().
Definition at line 101 of file TimeIntegrationScheme.h.
References v_GetTimeStability().
|
inline |
Definition at line 85 of file TimeIntegrationScheme.h.
References v_GetVariant().
Referenced by v_GetFullName(), Nektar::LibUtilities::EulerExponentialTimeIntegrationScheme::v_GetFullName(), and Nektar::LibUtilities::EulerTimeIntegrationScheme::v_GetTimeStability().
|
inline |
Explicit integration of an ODE.
This function explicitely perfroms a single integration step of the ODE system:
\[ \frac{d\boldsymbol{y}}{dt}=\boldsymbol{f}(t,\boldsymbol{y}) \]
timestep | The size of the timestep, i.e. \(\Delta t\). |
f | an object of the class FuncType, where FuncType should have a method FuncType::ODEforcing to evaluate the right hand side \(f(t,\boldsymbol{y})\) of the ODE. |
y | on input: the vectors \(\boldsymbol{y}^{[n-1]}\) and \(t^{[n-1]}\) (which corresponds to the solution at the old time level) |
y | on output: the vectors \(\boldsymbol{y}^{[n]}\) and \(t^{[n]}\) (which corresponds to the solution at the old new level) |
Definition at line 156 of file TimeIntegrationScheme.h.
References v_InitializeScheme().
Definition at line 169 of file TimeIntegrationScheme.h.
References v_print().
Referenced by Nektar::LibUtilities::operator<<().
Definition at line 173 of file TimeIntegrationScheme.h.
References v_printFull().
|
inline |
Sets the solution vector of the ODE.
Definition at line 126 of file TimeIntegrationScheme.h.
References v_SetSolutionVector().
|
inline |
Definition at line 163 of file TimeIntegrationScheme.h.
References v_TimeIntegrate().
|
inline |
Definition at line 118 of file TimeIntegrationScheme.h.
References v_UpdateSolutionVector().
|
protectedpure virtual |
Implemented in Nektar::LibUtilities::NoSchemeTimeIntegrationScheme, Nektar::LibUtilities::FractionalInTimeIntegrationScheme, Nektar::LibUtilities::TimeIntegrationSchemeGEM, Nektar::LibUtilities::TimeIntegrationSchemeGLM, and Nektar::LibUtilities::TimeIntegrationSchemeSDC.
Referenced by GetFreeParams().
|
protectedvirtual |
Reimplemented in Nektar::LibUtilities::EulerExponentialTimeIntegrationScheme, Nektar::LibUtilities::EulerTimeIntegrationScheme, Nektar::LibUtilities::IMEXdirkTimeIntegrationScheme, and Nektar::LibUtilities::IMEXTimeIntegrationScheme.
Definition at line 60 of file TimeIntegration/TimeIntegrationScheme.cpp.
References GetName(), GetOrder(), and GetVariant().
Referenced by GetFullName().
|
protectedpure virtual |
Implemented in Nektar::LibUtilities::NoSchemeTimeIntegrationScheme, Nektar::LibUtilities::FractionalInTimeIntegrationScheme, Nektar::LibUtilities::TimeIntegrationSchemeGEM, Nektar::LibUtilities::TimeIntegrationSchemeGLM, and Nektar::LibUtilities::TimeIntegrationSchemeSDC.
Referenced by GetIntegrationSchemeType().
|
protectedpure virtual |
Implemented in Nektar::LibUtilities::AdamsBashforthTimeIntegrationScheme, Nektar::LibUtilities::AdamsMoultonTimeIntegrationScheme, Nektar::LibUtilities::BDFImplicitTimeIntegrationScheme, Nektar::LibUtilities::CNABTimeIntegrationScheme, Nektar::LibUtilities::DIRKTimeIntegrationScheme, Nektar::LibUtilities::EulerExponentialTimeIntegrationScheme, Nektar::LibUtilities::EulerTimeIntegrationScheme, Nektar::LibUtilities::IMEXdirkTimeIntegrationScheme, Nektar::LibUtilities::IMEXGearTimeIntegrationScheme, Nektar::LibUtilities::IMEXTimeIntegrationScheme, Nektar::LibUtilities::MCNABTimeIntegrationScheme, Nektar::LibUtilities::NoSchemeTimeIntegrationScheme, Nektar::LibUtilities::RungeKuttaTimeIntegrationScheme, Nektar::LibUtilities::FractionalInTimeIntegrationScheme, Nektar::LibUtilities::TimeIntegrationSchemeGEM, and Nektar::LibUtilities::TimeIntegrationSchemeSDC.
Referenced by GetName().
|
protectedpure virtual |
Implemented in Nektar::LibUtilities::NoSchemeTimeIntegrationScheme, Nektar::LibUtilities::FractionalInTimeIntegrationScheme, Nektar::LibUtilities::TimeIntegrationSchemeGEM, Nektar::LibUtilities::TimeIntegrationSchemeGLM, and Nektar::LibUtilities::TimeIntegrationSchemeSDC.
Referenced by GetNumIntegrationPhases().
|
protectedpure virtual |
|
protectedpure virtual |
Implemented in Nektar::LibUtilities::NoSchemeTimeIntegrationScheme, Nektar::LibUtilities::FractionalInTimeIntegrationScheme, Nektar::LibUtilities::TimeIntegrationSchemeGEM, Nektar::LibUtilities::TimeIntegrationSchemeGLM, and Nektar::LibUtilities::TimeIntegrationSchemeSDC.
Referenced by GetSolutionVector().
|
protectedpure virtual |
Implemented in Nektar::LibUtilities::AdamsBashforthTimeIntegrationScheme, Nektar::LibUtilities::AdamsMoultonTimeIntegrationScheme, Nektar::LibUtilities::BDFImplicitTimeIntegrationScheme, Nektar::LibUtilities::CNABTimeIntegrationScheme, Nektar::LibUtilities::DIRKTimeIntegrationScheme, Nektar::LibUtilities::EulerExponentialTimeIntegrationScheme, Nektar::LibUtilities::EulerTimeIntegrationScheme, Nektar::LibUtilities::IMEXdirkTimeIntegrationScheme, Nektar::LibUtilities::IMEXGearTimeIntegrationScheme, Nektar::LibUtilities::IMEXTimeIntegrationScheme, Nektar::LibUtilities::MCNABTimeIntegrationScheme, Nektar::LibUtilities::NoSchemeTimeIntegrationScheme, Nektar::LibUtilities::RungeKuttaTimeIntegrationScheme, Nektar::LibUtilities::FractionalInTimeIntegrationScheme, Nektar::LibUtilities::TimeIntegrationSchemeGEM, and Nektar::LibUtilities::TimeIntegrationSchemeSDC.
Referenced by GetTimeStability().
|
protectedpure virtual |
Implemented in Nektar::LibUtilities::NoSchemeTimeIntegrationScheme, Nektar::LibUtilities::FractionalInTimeIntegrationScheme, Nektar::LibUtilities::TimeIntegrationSchemeGEM, Nektar::LibUtilities::TimeIntegrationSchemeGLM, and Nektar::LibUtilities::TimeIntegrationSchemeSDC.
Referenced by GetVariant().
|
protectedpure virtual |
Implemented in Nektar::LibUtilities::ExplicitTimeIntegrationSchemeSDC, Nektar::LibUtilities::IMEXTimeIntegrationSchemeSDC, Nektar::LibUtilities::ImplicitTimeIntegrationSchemeSDC, Nektar::LibUtilities::NoSchemeTimeIntegrationScheme, Nektar::LibUtilities::FractionalInTimeIntegrationScheme, Nektar::LibUtilities::TimeIntegrationSchemeGEM, Nektar::LibUtilities::TimeIntegrationSchemeGLM, and Nektar::LibUtilities::TimeIntegrationSchemeSDC.
Referenced by InitializeScheme().
|
protectedpure virtual |
Implemented in Nektar::LibUtilities::NoSchemeTimeIntegrationScheme, Nektar::LibUtilities::FractionalInTimeIntegrationScheme, Nektar::LibUtilities::TimeIntegrationSchemeGEM, Nektar::LibUtilities::TimeIntegrationSchemeGLM, and Nektar::LibUtilities::TimeIntegrationSchemeSDC.
Referenced by SetSolutionVector().
|
protectedpure virtual |
Implemented in Nektar::LibUtilities::NoSchemeTimeIntegrationScheme, Nektar::LibUtilities::FractionalInTimeIntegrationScheme, Nektar::LibUtilities::TimeIntegrationSchemeGEM, Nektar::LibUtilities::TimeIntegrationSchemeGLM, and Nektar::LibUtilities::TimeIntegrationSchemeSDC.
Referenced by TimeIntegrate().
|
protectedpure virtual |
Implemented in Nektar::LibUtilities::NoSchemeTimeIntegrationScheme, Nektar::LibUtilities::FractionalInTimeIntegrationScheme, Nektar::LibUtilities::TimeIntegrationSchemeGEM, Nektar::LibUtilities::TimeIntegrationSchemeGLM, and Nektar::LibUtilities::TimeIntegrationSchemeSDC.
Referenced by UpdateSolutionVector().
|
friend |
Definition at line 66 of file TimeIntegration/TimeIntegrationScheme.cpp.
|
friend |
Definition at line 73 of file TimeIntegration/TimeIntegrationScheme.cpp.