38 #ifndef NEKTAR_LIB_UTILITIES_TIME_INTEGRATION_TIME_INTEGRATION_SCHEME
39 #define NEKTAR_LIB_UTILITIES_TIME_INTEGRATION_TIME_INTEGRATION_SCHEME
43 #include <boost/core/ignore_unused.hpp>
54 #define LUE LIB_UTILITIES_EXPORT
58 namespace LibUtilities
63 typedef NekFactory<std::string, TimeIntegrationScheme, std::string,
64 unsigned int, std::vector<NekDouble>>
163 const int timestep,
const NekDouble delta_t,
201 const int timestep,
const NekDouble delta_t,
208 std::vector<NekDouble> freeParams)
210 boost::ignore_unused(variant, order, freeParams);
215 boost::ignore_unused(in);
218 "TimeIntegrationScheme class should not be "
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mode...
Provides a generic Factory class.
Base class for time integration schemes.
virtual LUE std::string v_GetFullName() const
LUE std::vector< NekDouble > GetFreeParams()
virtual LUE std::string v_GetName() const =0
LUE TimeIntegrationScheme(const TimeIntegrationScheme &in)
LUE TimeIntegrationSchemeType GetIntegrationSchemeType()
LUE void InitializeScheme(const NekDouble deltaT, ConstDoubleArray &y_0, const NekDouble time, const TimeIntegrationSchemeOperators &op)
Explicit integration of an ODE.
virtual LUE TimeIntegrationSchemeType v_GetIntegrationSchemeType() const =0
LUE unsigned int GetOrder() const
virtual ~TimeIntegrationScheme()
void SetSolutionVector(const int Offset, const DoubleArray &y)
Sets the solution vector of the ODE.
LUE NekDouble GetTimeStability() const
virtual void v_SetSolutionVector(const int Offset, const DoubleArray &y)=0
virtual LUE void v_print(std::ostream &os) const =0
virtual LUE std::string v_GetVariant() const =0
virtual LUE void v_printFull(std::ostream &os) const =0
virtual LUE unsigned int v_GetOrder() const =0
LUE friend std::ostream & operator<<(std::ostream &os, const TimeIntegrationScheme &rhs)
const TripleArray & GetSolutionVector() const
Gets the solution vector of the ODE.
virtual LUE void v_InitializeScheme(const NekDouble deltaT, ConstDoubleArray &y_0, const NekDouble time, const TimeIntegrationSchemeOperators &op)=0
LUE void printFull(std::ostream &os) const
LUE std::string GetVariant() const
virtual LUE NekDouble v_GetTimeStability() const =0
LUE TimeIntegrationScheme(std::string variant, unsigned int order, std::vector< NekDouble > freeParams)
LUE unsigned int GetNumIntegrationPhases()
virtual LUE std::vector< NekDouble > v_GetFreeParams() const =0
virtual const TripleArray & v_GetSolutionVector() const =0
LUE std::string GetName() const
virtual LUE ConstDoubleArray & v_TimeIntegrate(const int timestep, const NekDouble delta_t, const TimeIntegrationSchemeOperators &op)=0
LUE void print(std::ostream &os) const
LUE ConstDoubleArray & TimeIntegrate(const int timestep, const NekDouble delta_t, const TimeIntegrationSchemeOperators &op)
LUE std::string GetFullName() const
virtual LUE unsigned int v_GetNumIntegrationPhases() const =0
Binds a set of functions for use by time integration schemes.
NekFactory< std::string, TimeIntegrationScheme, std::string, unsigned int, std::vector< NekDouble > > TimeIntegrationSchemeFactory
Datatype of the NekFactory used to instantiate classes derived from the EquationSystem class.
TimeIntegrationSchemeFactory & GetTimeIntegrationSchemeFactory()
TimeIntegrationSchemeType
std::ostream & operator<<(std::ostream &os, const BasisKey &rhs)
std::shared_ptr< TimeIntegrationScheme > TimeIntegrationSchemeSharedPtr
The above copyright notice and this permission notice shall be included.