18#include <yaml-cpp/yaml.h>
36namespace timeintegration
75 const PetscReal &inImplicitCoeff,
76 const PetscInt &inNEcplicit,
185namespace timeintegration
197 const YAML::Node &node,
An implementation of TimeIntegrationBase for 2nd order Adams-Bashforth.
Adams_Bashforth_2(const std::string &name)
Constructor.
virtual ~Adams_Bashforth_2()=default
Destructor.
An implementation of TimeIntegrationBase for 2nd order Crank-Nicolson.
virtual ~Crank_Nicolson()=default
Destructor.
Crank_Nicolson(const std::string &name)
Constructor.
An implementation of TimeIntegrationBase for 1st order explicit Euler.
Euler_Explicit(const std::string &name)
Constructor.
virtual ~Euler_Explicit()=default
Destructor.
An implementation of TimeIntegrationBase for 1st order implicit Euler.
virtual ~Euler_Implicit()=default
Destructor.
Euler_Implicit(const std::string &name)
Constructor.
Base (abstract) class that stores information of temporal integration.
const type::RealVec1D explicitCoeffs
Coefficients of explicit terms.
PetscErrorCode printInfo() const
Print information to standard output.
const std::string scheme
Name of the scheme.
virtual ~TimeIntegrationBase()=default
Destructor.
TimeIntegrationBase()
Default constructor.
TimeIntegrationBase(const std::string &inName, const std::string &inScheme, const PetscReal &inImplicitCoeff, const PetscInt &inNEcplicit, const type::RealVec1D &inExplicitCoeffs)
Constructor (normally not being used publicly).
const PetscInt nExplicit
Number of explicit terms.
const PetscReal implicitCoeff
Coefficient of implicit term.
const std::string name
Name of current instance.
PetscErrorCode createTimeIntegration(const std::string &name, const YAML::Node &node, type::TimeIntegration &integration)
factory function for type::TimeIntegration.
std::shared_ptr< timeintegration::TimeIntegrationBase > TimeIntegration
Definition of type::TimeIntegration.
std::vector< PetscReal > RealVec1D
1D std::vector holding PetscReal.
A toolbox for building flow solvers.
Definition of user-defined types for convenience.