1 #ifndef ERF_AUXILIARY_STAGE_H_
2 #define ERF_AUXILIARY_STAGE_H_
24 const amrex::MultiFab*
field{
nullptr};
30 amrex::MultiFab*
field{
nullptr};
36 const amrex::MultiFab*
x{
nullptr};
37 const amrex::MultiFab*
y{
nullptr};
38 const amrex::MultiFab*
z{
nullptr};
92 double host_stage_interval,
94 std::string& diagnostic);
100 amrex::MultiFab& intensive,
102 std::string& diagnostic);
109 const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM>& dx_inv,
110 int rate_component = 0);
122 void define (
const amrex::BoxArray& cell_ba,
123 const amrex::DistributionMapping& dm,
141 double step_old_time,
144 std::string& diagnostic);
149 double step_old_time,
151 std::string& diagnostic);
155 int source_component,
156 int ledger_component,
157 std::string& diagnostic);
amrex::Real Real
Definition: ERF_ShocInterface.H:19
Definition: ERF_AuxiliaryStage.H:116
bool accept_stage(HostIntegrator method, int stage, double step_old_time, const AuxiliaryStageRecipe &recipe, const MappedFaceFluxRate &rate, std::string &diagnostic)
Definition: ERF_AuxiliaryStage.cpp:297
amrex::Real m_open_stage_weight
Definition: ERF_AuxiliaryStage.H:190
bool finish_stage(std::string &diagnostic)
Definition: ERF_AuxiliaryStage.cpp:458
bool m_step_active
Definition: ERF_AuxiliaryStage.H:184
CompletedStepFluxLedger()=default
bool accumulate_stage_component(const MappedFaceFluxRate &rate, int source_component, int ledger_component, std::string &diagnostic)
Definition: ERF_AuxiliaryStage.cpp:421
const IntegratedMappedFaceFlux & integrated_flux() const noexcept
Definition: ERF_AuxiliaryStage.H:175
int m_open_stage
Definition: ERF_AuxiliaryStage.H:189
std::string m_stage_failure_diagnostic
Definition: ERF_AuxiliaryStage.H:193
HostIntegrator m_method
Definition: ERF_AuxiliaryStage.H:187
std::vector< unsigned char > m_stage_components_seen
Definition: ERF_AuxiliaryStage.H:192
CompletedStepFluxLedger(const CompletedStepFluxLedger &)=delete
bool begin_stage(HostIntegrator method, int stage, double step_old_time, const AuxiliaryStageRecipe &recipe, std::string &diagnostic)
Definition: ERF_AuxiliaryStage.cpp:330
IntegratedMappedFaceFlux m_integral
Definition: ERF_AuxiliaryStage.H:183
bool m_stage_open
Definition: ERF_AuxiliaryStage.H:186
bool m_step_complete
Definition: ERF_AuxiliaryStage.H:185
bool step_complete() const noexcept
Definition: ERF_AuxiliaryStage.H:173
void discard_step()
Definition: ERF_AuxiliaryStage.cpp:281
double m_step_old_time
Definition: ERF_AuxiliaryStage.H:191
bool step_active() const noexcept
Definition: ERF_AuxiliaryStage.H:172
void define(const amrex::BoxArray &cell_ba, const amrex::DistributionMapping &dm, int ncomp=1)
Definition: ERF_AuxiliaryStage.cpp:254
CompletedStepFluxLedger & operator=(const CompletedStepFluxLedger &)=delete
bool is_defined() const noexcept
Definition: ERF_AuxiliaryStage.H:171
void latch_stage_failure(const std::string &diagnostic)
Definition: ERF_AuxiliaryStage.cpp:271
int m_next_stage
Definition: ERF_AuxiliaryStage.H:188
int next_stage() const noexcept
Definition: ERF_AuxiliaryStage.H:174
bool is_defined() const noexcept
Definition: ERF_AuxiliaryMappedTransport.H:43
Definition: ERF_AuxiliaryInertTracer.cpp:15
bool AuxiliaryStageTargetIsDisjoint(const AuxiliaryStageContext &context)
Definition: ERF_AuxiliaryStage.cpp:160
void ApplyAuxiliaryMappedStage(const AuxiliaryStageContext &context, const MappedFaceFluxRate &rate, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &dx_inv, const int rate_component)
Definition: ERF_AuxiliaryStage.cpp:169
AuxiliaryFieldValidationPolicy
Definition: ERF_AuxiliaryStage.H:50
HostIntegrator
Definition: ERF_AuxiliaryStage.H:11
bool MakeAuxiliaryStageRecipe(const HostIntegrator method, const int stage, const double host_stage_interval, AuxiliaryStageRecipe &recipe, std::string &diagnostic)
Definition: ERF_AuxiliaryStage.cpp:67
LimiterTrialBase
Definition: ERF_AuxiliaryStage.H:18
const char * HostIntegratorName(const HostIntegrator method) noexcept
Definition: ERF_AuxiliaryStage.cpp:57
bool BuildAuxiliaryIntensiveState(const ConstTimedFieldView &state_input, const ConstTimedFieldView &rho_input, const double input_time, amrex::MultiFab &intensive, const AuxiliaryFieldValidationPolicy validation, std::string &diagnostic)
Definition: ERF_AuxiliaryStage.cpp:113
Definition: ERF_AuxiliaryStage.H:63
int level
Definition: ERF_AuxiliaryStage.H:65
ConstTimedFieldView rho_anchor
Definition: ERF_AuxiliaryStage.H:78
AuxiliaryStageRecipe recurrence
Definition: ERF_AuxiliaryStage.H:72
ConstTimedFieldView rho_input
Definition: ERF_AuxiliaryStage.H:79
int stage
Definition: ERF_AuxiliaryStage.H:66
ConstTimedFieldView measure_anchor
Definition: ERF_AuxiliaryStage.H:82
double input_time
Definition: ERF_AuxiliaryStage.H:69
ConstTimedFieldView measure_input
Definition: ERF_AuxiliaryStage.H:83
HostIntegrator method
Definition: ERF_AuxiliaryStage.H:64
ConstTimedFieldView state_input
Definition: ERF_AuxiliaryStage.H:75
double target_time
Definition: ERF_AuxiliaryStage.H:70
ConstTimedFieldView measure_target
Definition: ERF_AuxiliaryStage.H:84
double step_old_time
Definition: ERF_AuxiliaryStage.H:68
HostCarrierFluxView carrier
Definition: ERF_AuxiliaryStage.H:86
ConstTimedFieldView rho_target
Definition: ERF_AuxiliaryStage.H:80
MutableTimedFieldView state_target
Definition: ERF_AuxiliaryStage.H:76
ConstTimedFieldView state_anchor
Definition: ERF_AuxiliaryStage.H:74
Definition: ERF_AuxiliaryStage.H:41
double face_rate_time_coefficient
Definition: ERF_AuxiliaryStage.H:46
double anchor_weight
Definition: ERF_AuxiliaryStage.H:43
double limiter_trial_interval
Definition: ERF_AuxiliaryStage.H:45
double input_weight
Definition: ERF_AuxiliaryStage.H:44
double completed_ledger_time
Definition: ERF_AuxiliaryStage.H:47
LimiterTrialBase limiter_trial_base
Definition: ERF_AuxiliaryStage.H:42
Definition: ERF_AuxiliaryStage.H:23
double time
Definition: ERF_AuxiliaryStage.H:26
const amrex::MultiFab * field
Definition: ERF_AuxiliaryStage.H:24
int component
Definition: ERF_AuxiliaryStage.H:25
Definition: ERF_AuxiliaryStage.H:35
const amrex::MultiFab * y
Definition: ERF_AuxiliaryStage.H:37
const amrex::MultiFab * x
Definition: ERF_AuxiliaryStage.H:36
const amrex::MultiFab * z
Definition: ERF_AuxiliaryStage.H:38
Definition: ERF_AuxiliaryStage.H:29
int component
Definition: ERF_AuxiliaryStage.H:31
double time
Definition: ERF_AuxiliaryStage.H:32
amrex::MultiFab * field
Definition: ERF_AuxiliaryStage.H:30