1 #ifndef AMREX_FE_INTEGRATOR_H
2 #define AMREX_FE_INTEGRATOR_H
45 void initialize (
const T& S_data,
const amrex::Real time = 0.0)
50 amrex::Real
advance (T& S_old, T& S_new, amrex::Real time,
const amrex::Real dt)
override
70 void evolve (T& S_out,
const amrex::Real time_out)
override
75 for (
int step_number = 0; step_number <
BaseT::max_steps && !stop; ++step_number)
93 Error(
"Did not reach output time in max steps.");
100 amrex::Error(
"Time interpolation not yet supported by the forward euler integrator.");
103 virtual void map_data (std::function<
void(T&)> Map)
override
Definition: AMReX_FEIntegrator.H:12
void evolve(T &S_out, const amrex::Real time_out) override
Evolve the current (internal) integrator state to time_out.
Definition: AMReX_FEIntegrator.H:70
FEIntegrator()
Definition: AMReX_FEIntegrator.H:36
amrex::Vector< std::unique_ptr< T > > F_nodes
Definition: AMReX_FEIntegrator.H:16
amrex::Vector< std::unique_ptr< T > > S_current
Definition: AMReX_FEIntegrator.H:19
amrex::Real advance(T &S_old, T &S_new, amrex::Real time, const amrex::Real dt) override
Take a single time step from (time, S_old) to (time + dt, S_new) with the given step size.
Definition: AMReX_FEIntegrator.H:50
FEIntegrator(const T &S_data, const amrex::Real time=0.0)
Definition: AMReX_FEIntegrator.H:38
void initialize(const T &S_data, const amrex::Real time=0.0)
Definition: AMReX_FEIntegrator.H:45
virtual void time_interpolate(const T &, const T &, amrex::Real, T &) override
Definition: AMReX_FEIntegrator.H:98
void initialize_stages(const T &S_data, const amrex::Real time)
Definition: AMReX_FEIntegrator.H:22
virtual ~FEIntegrator()
Definition: AMReX_FEIntegrator.H:43
virtual void map_data(std::function< void(T &)> Map) override
Definition: AMReX_FEIntegrator.H:103
amrex::Real time_current
Definition: AMReX_FEIntegrator.H:20
Definition: AMReX_IntegratorBase.H:163
std::function< void(T &, amrex::Real)> post_step_action
The post_step_action function is called by the integrator on the computed state just after it is comp...
Definition: AMReX_IntegratorBase.H:198
int max_steps
Max number of internal steps before an error is returned (Long)
Definition: AMReX_IntegratorBase.H:248
std::function< void(T &rhs, T &state, const amrex::Real time)> Rhs
Rhs is the right-hand-side function the integrator will use.
Definition: AMReX_IntegratorBase.H:168
amrex::Real time_step
Current integrator time step size (Real)
Definition: AMReX_IntegratorBase.H:221
This class is a thin wrapper around std::vector. Unlike vector, Vector::operator[] provides bound che...
Definition: AMReX_Vector.H:27
Definition: AMReX_Amr.cpp:49
void Saxpy(MF &dst, typename MF::value_type a, MF const &src, int scomp, int dcomp, int ncomp, IntVect const &nghost)
dst += a * src
Definition: AMReX_FabArrayUtility.H:1646
void Copy(FabArray< DFAB > &dst, FabArray< SFAB > const &src, int srccomp, int dstcomp, int numcomp, int nghost)
Definition: AMReX_FabArray.H:179
void Error(const std::string &msg)
Print out message to cerr and exit via amrex::Abort().
Definition: AMReX.cpp:219
Definition: AMReX_IntegratorBase.H:17