11#ifndef included_ExplicitEuler
12#define included_ExplicitEuler
20#include "AMP/time_integrators/TimeIntegrator.h"
36 std::shared_ptr<AMP::TimeIntegrator::TimeIntegratorParameters> parameters );
44 std::shared_ptr<AMP::TimeIntegrator::TimeIntegratorParameters> parameters )
46 return std::unique_ptr<TimeIntegrator>(
new ExplicitEuler( parameters ) );
53 std::shared_ptr<AMP::TimeIntegrator::TimeIntegratorParameters> parameters )
override;
61 std::shared_ptr<const AMP::TimeIntegrator::TimeIntegratorParameters> parameters )
override;
75 std::shared_ptr<AMP::LinearAlgebra::Vector> in,
76 std::shared_ptr<AMP::LinearAlgebra::Vector> out )
override;
78 std::string
type()
const override {
return "ExplicitEuler"; }
92 std::shared_ptr<AMP::LinearAlgebra::Vector>
d_f_vec =
nullptr;
std::shared_ptr< AMP::LinearAlgebra::Vector > d_f_vec
std::string type() const override
Return the name of the TimeIntegrator.
static std::unique_ptr< TimeIntegrator > createTimeIntegrator(std::shared_ptr< AMP::TimeIntegrator::TimeIntegratorParameters > parameters)
void reset(std::shared_ptr< const AMP::TimeIntegrator::TimeIntegratorParameters > parameters) override
bool checkNewSolution(void) override
std::shared_ptr< AMP::LinearAlgebra::Vector > d_new_solution
void initialize(std::shared_ptr< AMP::TimeIntegrator::TimeIntegratorParameters > parameters) override
void updateSolution(void) override
int advanceSolution(const double dt, const bool first_step, std::shared_ptr< AMP::LinearAlgebra::Vector > in, std::shared_ptr< AMP::LinearAlgebra::Vector > out) override
Integrate through the specified time increment.
ExplicitEuler(std::shared_ptr< AMP::TimeIntegrator::TimeIntegratorParameters > parameters)
Abstract base class for time integration.
std::shared_ptr< AMP::TimeIntegrator::TimeIntegrator > shared_ptr
Convience typedef.