Nektar++
|
Base class for time integration schemes. More...
#include <TimeIntegrationScheme.h>
Public Member Functions | |
virtual LUE std::string | GetFullName () const |
virtual LUE std::string | GetName () const =0 |
virtual LUE std::string | GetVariant () const =0 |
virtual LUE unsigned int | GetOrder () const =0 |
virtual LUE std::vector< NekDouble > | GetFreeParams () const =0 |
virtual LUE TimeIntegrationSchemeType | GetIntegrationSchemeType () const =0 |
virtual LUE NekDouble | GetTimeStability () const =0 |
virtual LUE unsigned int | GetNumIntegrationPhases () const =0 |
virtual const TripleArray & | GetSolutionVector () const =0 |
Gets the solution vector of the ODE. More... | |
virtual void | SetSolutionVector (const int Offset, const DoubleArray &y)=0 |
Sets the solution vector of the ODE. More... | |
virtual LUE void | InitializeScheme (const NekDouble deltaT, ConstDoubleArray &y_0, const NekDouble time, const TimeIntegrationSchemeOperators &op)=0 |
Explicit integration of an ODE. More... | |
virtual LUE ConstDoubleArray & | TimeIntegrate (const int timestep, const NekDouble delta_t, const TimeIntegrationSchemeOperators &op)=0 |
virtual LUE void | print (std::ostream &os) const =0 |
virtual LUE void | printFull (std::ostream &os) const =0 |
Protected Member Functions | |
LUE | TimeIntegrationScheme (std::string variant, unsigned int order, std::vector< NekDouble > freeParams) |
LUE | TimeIntegrationScheme (const TimeIntegrationScheme &in) |
virtual | ~TimeIntegrationScheme () |
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 76 of file TimeIntegrationScheme.h.
|
inlineprotected |
Definition at line 146 of file TimeIntegrationScheme.h.
|
inlineprotected |
Definition at line 152 of file TimeIntegrationScheme.h.
References Nektar::ErrorUtil::efatal, and NEKERROR.
|
inlineprotectedvirtual |
Definition at line 161 of file TimeIntegrationScheme.h.
|
virtual |
Reimplemented in Nektar::LibUtilities::IMEXTimeIntegrationScheme, Nektar::LibUtilities::IMEXdirkTimeIntegrationScheme, Nektar::LibUtilities::EulerTimeIntegrationScheme, and Nektar::LibUtilities::EulerExponentialTimeIntegrationScheme.
Definition at line 53 of file TimeIntegrationScheme.cpp.
References GetName(), GetOrder(), and GetVariant().
Referenced by Nektar::LibUtilities::TimeIntegrationSchemeGLM::InitializeSecondaryData(), Nektar::LibUtilities::FractionalInTimeIntegrationScheme::print(), Nektar::LibUtilities::TimeIntegrationSchemeGLM::print(), Nektar::LibUtilities::FractionalInTimeIntegrationScheme::printFull(), and Nektar::LibUtilities::TimeIntegrationSchemeGLM::printFull().
|
pure virtual |
|
pure virtual |
Implemented in Nektar::LibUtilities::TimeIntegrationSchemeGLM, Nektar::LibUtilities::FractionalInTimeIntegrationScheme, Nektar::LibUtilities::RungeKuttaTimeIntegrationScheme, Nektar::LibUtilities::MCNABTimeIntegrationScheme, Nektar::LibUtilities::IMEXTimeIntegrationScheme, Nektar::LibUtilities::IMEXGearTimeIntegrationScheme, Nektar::LibUtilities::IMEXdirkTimeIntegrationScheme, Nektar::LibUtilities::EulerTimeIntegrationScheme, Nektar::LibUtilities::EulerExponentialTimeIntegrationScheme, Nektar::LibUtilities::DIRKTimeIntegrationScheme, Nektar::LibUtilities::CNABTimeIntegrationScheme, Nektar::LibUtilities::BDFImplicitTimeIntegrationScheme, Nektar::LibUtilities::AdamsMoultonTimeIntegrationScheme, and Nektar::LibUtilities::AdamsBashforthTimeIntegrationScheme.
Referenced by GetFullName().
|
pure virtual |
|
pure virtual |
Implemented in Nektar::LibUtilities::TimeIntegrationSchemeGLM, and Nektar::LibUtilities::FractionalInTimeIntegrationScheme.
Referenced by GetFullName().
|
pure virtual |
Gets the solution vector of the ODE.
Implemented in Nektar::LibUtilities::TimeIntegrationSchemeGLM, and Nektar::LibUtilities::FractionalInTimeIntegrationScheme.
|
pure virtual |
Implemented in Nektar::LibUtilities::TimeIntegrationSchemeGLM, Nektar::LibUtilities::FractionalInTimeIntegrationScheme, Nektar::LibUtilities::RungeKuttaTimeIntegrationScheme, Nektar::LibUtilities::MCNABTimeIntegrationScheme, Nektar::LibUtilities::IMEXTimeIntegrationScheme, Nektar::LibUtilities::IMEXGearTimeIntegrationScheme, Nektar::LibUtilities::IMEXdirkTimeIntegrationScheme, Nektar::LibUtilities::EulerTimeIntegrationScheme, Nektar::LibUtilities::EulerExponentialTimeIntegrationScheme, Nektar::LibUtilities::DIRKTimeIntegrationScheme, Nektar::LibUtilities::CNABTimeIntegrationScheme, Nektar::LibUtilities::BDFImplicitTimeIntegrationScheme, Nektar::LibUtilities::AdamsMoultonTimeIntegrationScheme, and Nektar::LibUtilities::AdamsBashforthTimeIntegrationScheme.
|
pure virtual |
Implemented in Nektar::LibUtilities::TimeIntegrationSchemeGLM, and Nektar::LibUtilities::FractionalInTimeIntegrationScheme.
Referenced by GetFullName().
|
pure virtual |
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) |
Implemented in Nektar::LibUtilities::TimeIntegrationSchemeGLM, and Nektar::LibUtilities::FractionalInTimeIntegrationScheme.
|
pure virtual |
Sets the solution vector of the ODE.
Implemented in Nektar::LibUtilities::TimeIntegrationSchemeGLM, and Nektar::LibUtilities::FractionalInTimeIntegrationScheme.
|
pure virtual |
|
friend |
Definition at line 59 of file TimeIntegrationScheme.cpp.
|
friend |
Definition at line 66 of file TimeIntegrationScheme.cpp.