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) |
~MRISplitIntegrator ()=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 | setAnelastic (int _anelastic) |
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_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) |
void | map_data (std::function< void(T &)> Map) |
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 | anelastic |
Should we use the anelastic 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 &, T &, T &, amrex::Real, amrex::Real, int)> | no_substep |
The no_substep function is called when we have no acoustic substepping. More... | |
amrex::Vector< std::unique_ptr< T > > | T_store |
T * | S_sum |
T * | S_scratch |
T * | F_slow |
|
default |
|
inline |
|
default |
|
defaultnoexcept |
|
delete |
|
inline |
Referenced by ERF::advance_dycore().
|
inline |
|
inline |
Referenced by MRISplitIntegrator< T >::advance().
|
inline |
|
inlineprivate |
Referenced by MRISplitIntegrator< T >::initialize(), and MRISplitIntegrator< T >::MRISplitIntegrator().
|
inline |
|
delete |
|
defaultnoexcept |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
private |
Should we use the anelastic integrator.
Referenced by MRISplitIntegrator< T >::advance(), and MRISplitIntegrator< T >::setAnelastic().
|
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 |
How many components in the cell-centered MultiFab.
Referenced by MRISplitIntegrator< T >::advance(), and MRISplitIntegrator< T >::setNcompCons().
|
private |
The no_substep function is called when we have no acoustic substepping.
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 |
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().