1 #ifndef ERF_SBM_STATE_MANAGER_H_
2 #define ERF_SBM_STATE_MANAGER_H_
6 #include <AMReX_MultiFab.H>
21 [[nodiscard]]
int nlevels () const noexcept {
return static_cast<int>(
m_levels.size()); }
24 void define (
int lev,
const amrex::BoxArray& grids,
25 const amrex::DistributionMapping& mapping,
26 double current_time,
int ngrow = 0);
30 [[nodiscard]]
const amrex::MultiFab&
old_state (
int lev)
const;
31 [[nodiscard]]
double old_time (
int lev)
const;
32 [[nodiscard]]
bool old_valid (
int lev)
const;
35 [[nodiscard]]
const amrex::MultiFab&
new_state (
int lev)
const;
36 [[nodiscard]]
double new_time (
int lev)
const;
37 [[nodiscard]]
bool new_valid (
int lev)
const;
46 bool begin_step (
int lev,
double step_old_time, std::string& diagnostic);
50 bool physical_step_complete,
51 std::string& diagnostic);
56 int qc_component,
int qr_component)
const;
69 [[nodiscard]] LevelState&
level (
int lev);
70 [[nodiscard]]
const LevelState&
level (
int lev)
const;
Definition: ERF_SBMBulkProjection.H:18
Definition: ERF_SBMLayout.H:94
Definition: ERF_SBMStateManager.H:16
bool old_valid(int lev) const
Definition: ERF_SBMStateManager.cpp:84
bool is_defined(int lev) const
Definition: ERF_SBMStateManager.cpp:30
double new_time(int lev) const
Definition: ERF_SBMStateManager.cpp:98
std::vector< LevelState > m_levels
Definition: ERF_SBMStateManager.H:74
SBMBulkProjection m_projection
Definition: ERF_SBMStateManager.H:73
bool begin_step(int lev, double step_old_time, std::string &diagnostic)
Definition: ERF_SBMStateManager.cpp:128
void project_to_core(int lev, amrex::MultiFab &core, int qc_component, int qr_component) const
Definition: ERF_SBMStateManager.cpp:195
void destroy(int lev)
Definition: ERF_SBMStateManager.cpp:64
SBMStateManager(SBMLayout layout, int nlevels)
Definition: ERF_SBMStateManager.cpp:11
bool new_valid(int lev) const
Definition: ERF_SBMStateManager.cpp:104
SBMLayout m_layout
Definition: ERF_SBMStateManager.H:72
const SBMLayout & layout() const noexcept
Definition: ERF_SBMStateManager.H:20
int nlevels() const noexcept
Definition: ERF_SBMStateManager.H:21
bool step_active(int lev) const
Definition: ERF_SBMStateManager.cpp:190
const amrex::MultiFab & new_state(int lev) const
Definition: ERF_SBMStateManager.cpp:89
amrex::MultiFab & new_target_storage(int lev)
Definition: ERF_SBMStateManager.cpp:119
LevelState & level(int lev)
Definition: ERF_SBMStateManager.cpp:18
bool accept_stage_target(int lev, double target_time, bool physical_step_complete, std::string &diagnostic)
Definition: ERF_SBMStateManager.cpp:170
void define(int lev, const amrex::BoxArray &grids, const amrex::DistributionMapping &mapping, double current_time, int ngrow=0)
Definition: ERF_SBMStateManager.cpp:36
amrex::MultiFab & new_state_for_initialization(int lev)
Definition: ERF_SBMStateManager.cpp:109
const amrex::MultiFab & old_state(int lev) const
Definition: ERF_SBMStateManager.cpp:69
double old_time(int lev) const
Definition: ERF_SBMStateManager.cpp:78
Definition: ERF_SBMStateManager.H:59
std::unique_ptr< amrex::MultiFab > new_state
Definition: ERF_SBMStateManager.H:61
std::unique_ptr< amrex::MultiFab > old_state
Definition: ERF_SBMStateManager.H:60
bool new_valid
Definition: ERF_SBMStateManager.H:65
double new_time
Definition: ERF_SBMStateManager.H:63
bool old_valid
Definition: ERF_SBMStateManager.H:64
bool step_active
Definition: ERF_SBMStateManager.H:66
double old_time
Definition: ERF_SBMStateManager.H:62