37 #ifndef NEKTAR_LIB_UTILITIES_TIME_INTEGRATION_TIME_INTEGRATION_SCHEME
38 #define NEKTAR_LIB_UTILITIES_TIME_INTEGRATION_TIME_INTEGRATION_SCHEME
42 #include <boost/core/ignore_unused.hpp>
53 #define LUE LIB_UTILITIES_EXPORT
57 namespace LibUtilities
62 typedef NekFactory<std::string,
63 TimeIntegrationScheme, std::string,
unsigned int,
132 const int timestep,
const NekDouble delta_t,
135 LUE virtual void print(std::ostream &os)
const = 0;
147 std::vector<NekDouble> freeParams)
149 boost::ignore_unused(variant, order, freeParams);
154 boost::ignore_unused(in);
157 "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 void SetSolutionVector(const int Offset, const DoubleArray &y)=0
Sets the solution vector of the ODE.
LUE TimeIntegrationScheme(const TimeIntegrationScheme &in)
virtual LUE TimeIntegrationSchemeType GetIntegrationSchemeType() const =0
virtual LUE std::string GetFullName() const
virtual LUE std::string GetName() const =0
virtual ~TimeIntegrationScheme()
virtual LUE void InitializeScheme(const NekDouble deltaT, ConstDoubleArray &y_0, const NekDouble time, const TimeIntegrationSchemeOperators &op)=0
Explicit integration of an ODE.
virtual LUE std::vector< NekDouble > GetFreeParams() const =0
virtual const TripleArray & GetSolutionVector() const =0
Gets the solution vector of the ODE.
LUE friend std::ostream & operator<<(std::ostream &os, const TimeIntegrationScheme &rhs)
virtual LUE unsigned int GetOrder() const =0
virtual LUE void printFull(std::ostream &os) const =0
virtual LUE NekDouble GetTimeStability() const =0
virtual LUE ConstDoubleArray & TimeIntegrate(const int timestep, const NekDouble delta_t, const TimeIntegrationSchemeOperators &op)=0
LUE TimeIntegrationScheme(std::string variant, unsigned int order, std::vector< NekDouble > freeParams)
virtual LUE void print(std::ostream &os) const =0
virtual LUE std::string GetVariant() const =0
virtual LUE unsigned int 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.