38#ifndef NEKTAR_LIB_UTILITIES_TIME_INTEGRATION_TIME_INTEGRATION_SCHEME
39#define NEKTAR_LIB_UTILITIES_TIME_INTEGRATION_TIME_INTEGRATION_SCHEME
52#define LUE LIB_UTILITIES_EXPORT
59typedef NekFactory<std::string, TimeIntegrationScheme, std::string, size_t,
60 std::vector<NekDouble>>
208 std::vector<NekDouble> freeParams);
Provides a generic Factory class.
Base class for time integration schemes.
virtual LUE std::string v_GetFullName() const
virtual LUE std::string v_GetName() const =0
LUE TimeIntegrationSchemeType GetIntegrationSchemeType()
virtual LUE ConstDoubleArray & v_TimeIntegrate(const size_t timestep, const NekDouble delta_t)=0
virtual LUE std::vector< NekDouble > v_GetFreeParams() const =0
virtual ~TimeIntegrationScheme()=default
LUE void InitializeScheme(const NekDouble deltaT, ConstDoubleArray &y_0, const NekDouble time, const TimeIntegrationSchemeOperators &op)
Explicit integration of an ODE.
LUE const TripleArray & GetSolutionVector() const
Gets the solution vector of the ODE.
LUE size_t GetOrder() const
virtual LUE TimeIntegrationSchemeType v_GetIntegrationSchemeType() const =0
LUE NekDouble GetTimeStability() const
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
LUE friend std::ostream & operator<<(std::ostream &os, const TimeIntegrationScheme &rhs)
virtual LUE size_t v_GetOrder() const =0
virtual LUE void v_InitializeScheme(const NekDouble deltaT, ConstDoubleArray &y_0, const NekDouble time, const TimeIntegrationSchemeOperators &op)=0
LUE TimeIntegrationScheme(std::string variant, size_t order, std::vector< NekDouble > freeParams)
LUE void printFull(std::ostream &os) const
LUE std::string GetVariant() const
LUE ConstDoubleArray & TimeIntegrate(const size_t timestep, const NekDouble delta_t)
virtual LUE NekDouble v_GetTimeStability() const =0
LUE TripleArray & UpdateSolutionVector()
LUE TimeIntegrationScheme(const TimeIntegrationScheme &in)=delete
LUE void SetSolutionVector(const size_t Offset, const DoubleArray &y)
Sets the solution vector of the ODE.
virtual LUE size_t v_GetNumIntegrationPhases() const =0
virtual LUE void v_SetSolutionVector(const size_t Offset, const DoubleArray &y)=0
LUE std::string GetName() const
virtual LUE TripleArray & v_UpdateSolutionVector()=0
LUE size_t GetNumIntegrationPhases()
LUE void print(std::ostream &os) const
virtual LUE const TripleArray & v_GetSolutionVector() const =0
LUE std::vector< NekDouble > GetFreeParams()
LUE std::string GetFullName() const
Binds a set of functions for use by time integration schemes.
TimeIntegrationSchemeFactory & GetTimeIntegrationSchemeFactory()
NekFactory< std::string, TimeIntegrationScheme, std::string, size_t, std::vector< NekDouble > > TimeIntegrationSchemeFactory
Datatype of the NekFactory used to instantiate classes derived from the EquationSystem class.
TimeIntegrationSchemeType
std::ostream & operator<<(std::ostream &os, const BasisKey &rhs)
std::shared_ptr< TimeIntegrationScheme > TimeIntegrationSchemeSharedPtr