ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
|
#include <ERF_MRI.H>
Public Member Functions | |
MRISplitIntegrator ()=default | |
MRISplitIntegrator (const T &S_data) | |
void | initialize (const T &S_data) override |
~MRISplitIntegrator () override=default | |
MRISplitIntegrator (MRISplitIntegrator &&) noexcept=default | |
MRISplitIntegrator & | operator= (MRISplitIntegrator &&other) noexcept=default |
MRISplitIntegrator (const MRISplitIntegrator &other)=delete | |
MRISplitIntegrator & | operator= (const MRISplitIntegrator &other)=delete |
void | setNcompCons (int _ncomp_cons) |
void | setIncompressible (int _incompressible) |
void | setNoSubstepping (int _no_substepping) |
void | setForceFirstStageSingleSubstep (int _force_stage1_single_substep) |
void | set_slow_rhs_pre (std::function< void(T &, T &, T &, T &, const amrex::Real, const amrex::Real, const amrex::Real, const int)> F) |
void | set_slow_rhs_inc (std::function< void(T &, T &, T &, T &, const amrex::Real, const amrex::Real, const amrex::Real, const int)> F) |
void | set_slow_rhs_post (std::function< void(T &, T &, T &, T &, T &, const amrex::Real, const amrex::Real, const amrex::Real, const int)> F) |
void | set_fast_rhs (std::function< void(int, int, int, T &, const T &, T &, T &, T &, const amrex::Real, const amrex::Real, const amrex::Real, const amrex::Real)> F) |
void | set_slow_fast_timestep_ratio (const int timestep_ratio=1) |
int | get_slow_fast_timestep_ratio () |
void | set_pre_update (std::function< void(T &, int)> F) |
void | set_post_update (std::function< void(T &, amrex::Real, int, int)> F) |
void | set_no_substep (std::function< void(T &, T &, T &, amrex::Real, amrex::Real, int)> F) |
std::function< void(T &, const T &, const amrex::Real, int)> | get_rhs () |
amrex::Real | advance (T &S_old, T &S_new, amrex::Real time, const amrex::Real time_step) override |
void | time_interpolate (const T &, const T &, amrex::Real, T &) override |
void | map_data (std::function< void(T &)> Map) override |
Private Member Functions | |
void | initialize_data (const T &S_data) |
Private Attributes | |
std::function< void(T &, const T &, const amrex::Real, const amrex::Real)> | rhs |
rhs is the right-hand-side function the integrator will use. More... | |
std::function< void(T &, T &, T &, T &, const amrex::Real, const amrex::Real, const amrex::Real, const int)> | slow_rhs_pre |
std::function< void(T &, T &, T &, T &, const amrex::Real, const amrex::Real, const amrex::Real, const int)> | slow_rhs_inc |
std::function< void(T &, T &, T &, T &, T &, const amrex::Real, const amrex::Real, const amrex::Real, const int)> | slow_rhs_post |
std::function< void(int, int, int, T &, const T &, T &, T &, T &, const amrex::Real, const amrex::Real, const amrex::Real, const amrex::Real)> | fast_rhs |
amrex::Real | timestep |
Integrator timestep size (Real) More... | |
int | slow_fast_timestep_ratio = 0 |
The ratio of slow timestep size / fast timestep size (int) More... | |
int | no_substepping |
Should we not do acoustic substepping. More... | |
int | incompressible |
Should we use the incompressible integrator. More... | |
int | ncomp_cons |
How many components in the cell-centered MultiFab. More... | |
int | force_stage1_single_substep |
Do we follow the recommendation to only perform a single substep in the first RK stage. More... | |
std::function< void(T &, int)> | pre_update |
The pre_update function is called by the integrator on stage data before using it to evaluate a right-hand side. More... | |
std::function< void(T &, amrex::Real, int, int)> | post_update |
std::function< void(T &, T &, T &, amrex::Real, amrex::Real, int)> | no_substep |
amrex::Vector< std::unique_ptr< T > > | T_store |
T * | S_sum |
T * | S_scratch |
T * | F_slow |
|
default |
|
inline |
|
overridedefault |
|
defaultnoexcept |
|
delete |
|
inlineoverride |
Referenced by ERF::advance_dycore().
|
inline |
|
inline |
Referenced by MRISplitIntegrator< T >::advance().
|
inlineoverride |
|
inlineprivate |
Referenced by MRISplitIntegrator< T >::initialize(), and MRISplitIntegrator< T >::MRISplitIntegrator().
|
inlineoverride |
|
delete |
|
defaultnoexcept |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlineoverride |
|
private |
Referenced by MRISplitIntegrator< T >::advance(), and MRISplitIntegrator< T >::initialize_data().
|
private |
Referenced by MRISplitIntegrator< T >::advance(), and MRISplitIntegrator< T >::set_fast_rhs().
|
private |
Do we follow the recommendation to only perform a single substep in the first RK stage.
Referenced by MRISplitIntegrator< T >::advance(), and MRISplitIntegrator< T >::setForceFirstStageSingleSubstep().
|
private |
Should we use the incompressible integrator.
Referenced by MRISplitIntegrator< T >::advance(), and MRISplitIntegrator< T >::setIncompressible().
|
private |
How many components in the cell-centered MultiFab.
Referenced by MRISplitIntegrator< T >::advance(), and MRISplitIntegrator< T >::setNcompCons().
|
private |
Referenced by MRISplitIntegrator< T >::advance(), and MRISplitIntegrator< T >::set_no_substep().
|
private |
Should we not do acoustic substepping.
Referenced by MRISplitIntegrator< T >::advance(), and MRISplitIntegrator< T >::setNoSubstepping().
|
private |
Referenced by MRISplitIntegrator< T >::advance(), and MRISplitIntegrator< T >::set_post_update().
|
private |
The pre_update function is called by the integrator on stage data before using it to evaluate a right-hand side.
The post_update function is called by the integrator on stage data at the end of the stage
Referenced by MRISplitIntegrator< T >::advance(), and MRISplitIntegrator< T >::set_pre_update().
|
private |
rhs is the right-hand-side function the integrator will use.
Referenced by MRISplitIntegrator< T >::get_rhs().
|
private |
Referenced by MRISplitIntegrator< T >::advance(), and MRISplitIntegrator< T >::initialize_data().
|
private |
Referenced by MRISplitIntegrator< T >::advance(), and MRISplitIntegrator< T >::initialize_data().
|
private |
The ratio of slow timestep size / fast timestep size (int)
Referenced by MRISplitIntegrator< T >::get_slow_fast_timestep_ratio(), and MRISplitIntegrator< T >::set_slow_fast_timestep_ratio().
|
private |
Referenced by MRISplitIntegrator< T >::advance(), and MRISplitIntegrator< T >::set_slow_rhs_inc().
|
private |
Referenced by MRISplitIntegrator< T >::advance(), and MRISplitIntegrator< T >::set_slow_rhs_post().
|
private |
Referenced by MRISplitIntegrator< T >::advance(), and MRISplitIntegrator< T >::set_slow_rhs_pre().
|
private |
Referenced by MRISplitIntegrator< T >::initialize_data(), and MRISplitIntegrator< T >::map_data().
|
private |
Integrator timestep size (Real)
Referenced by MRISplitIntegrator< T >::advance().