8 #include <AMReX_FArrayBox.H>
9 #include <AMReX_Geometry.H>
10 #include <AMReX_MultiFabUtil.H>
47 #ifdef ERF_WDM6_F32_LITERALS
58 using FabPtr = std::shared_ptr<amrex::MultiFab>;
154 void Init (
const amrex::MultiFab& cons_in,
155 const amrex::BoxArray& grids,
156 const amrex::Geometry& geom,
158 std::unique_ptr<amrex::MultiFab>& z_phys_nd,
159 std::unique_ptr<amrex::MultiFab>& detJ_cc)
override;
179 const amrex::MultiFab& )
override
198 std::vector<int>& a_idx,
199 std::vector<std::string>& a_names)
const override
202 a_names = {
"RainAccum",
"SnowAccum",
"GraupAccum"};
constexpr amrex::Real rhoh2o
Definition: ERF_Constants.H:136
AMREX_ALWAYS_ASSERT(bx.length()[2]==khi+1)
amrex::Real Real
Definition: ERF_ShocInterface.H:19
constexpr amrex::Real wdm6_literal(double d)
Definition: ERF_WDM6.H:45
Definition: ERF_NullMoist.H:10
virtual void Update_Micro_Vars(amrex::MultiFab &)
Definition: ERF_NullMoist.H:36
Definition: ERF_WDM6.H:57
amrex::Real m_precs2
Definition: ERF_WDM6.H:258
static constexpr amrex::Real xncr
Definition: ERF_WDM6.H:119
static constexpr amrex::Real ncmin
Definition: ERF_WDM6.H:135
static constexpr amrex::Real qcrmin
Definition: ERF_WDM6.H:134
int nlev
Definition: ERF_WDM6.H:226
amrex::Real m_pidn0g
Definition: ERF_WDM6.H:262
amrex::Real m_precr2
Definition: ERF_WDM6.H:254
int m_axis
Definition: ERF_WDM6.H:227
amrex::Real m_g5pbro2
Definition: ERF_WDM6.H:252
bool m_hail_opt
Definition: ERF_WDM6.H:241
amrex::Real m_bvtg1
Definition: ERF_WDM6.H:260
static constexpr amrex::Real n0r
Definition: ERF_WDM6.H:114
amrex::iMultiFab * m_lmask
Definition: ERF_WDM6.H:233
static constexpr amrex::Real nrmin
Definition: ERF_WDM6.H:136
amrex::Real m_pvtrn
Definition: ERF_WDM6.H:253
amrex::Real m_bvtr3o5
Definition: ERF_WDM6.H:250
int n_qstate_moist_size
Definition: ERF_WDM6.H:217
void Copy_Micro_to_State(amrex::MultiFab &cons_in) override
Definition: ERF_UpdateWDM6.cpp:9
amrex::Real m_rslopecmax
Definition: ERF_WDM6.H:263
static constexpr amrex::Real lamdarmax
Definition: ERF_WDM6.H:125
amrex::Real m_pidn0s
Definition: ERF_WDM6.H:259
amrex::Real dt
Definition: ERF_WDM6.H:223
amrex::Real m_g5pbr
Definition: ERF_WDM6.H:251
amrex::Real m_g3pbs
Definition: ERF_WDM6.H:257
WDM6()
Definition: ERF_WDM6.H:61
amrex::Real m_pacrs
Definition: ERF_WDM6.H:258
amrex::Real m_qc1
Definition: ERF_WDM6.H:248
static constexpr amrex::Real di100
Definition: ERF_WDM6.H:148
int m_qmoist_size
Definition: ERF_WDM6.H:216
amrex::Real m_dzmin
Definition: ERF_WDM6.H:224
amrex::Real m_pvts
Definition: ERF_WDM6.H:258
std::shared_ptr< amrex::MultiFab > FabPtr
Definition: ERF_WDM6.H:58
static constexpr amrex::Real pfrz1
Definition: ERF_WDM6.H:132
amrex::Real m_rslopec3max
Definition: ERF_WDM6.H:263
static constexpr amrex::Real eacrc
Definition: ERF_WDM6.H:137
static constexpr amrex::Real dicon
Definition: ERF_WDM6.H:130
int Qstate_Moist_NumConc_Size() override
Definition: ERF_WDM6.H:195
amrex::Real m_bvtg4
Definition: ERF_WDM6.H:260
amrex::Vector< int > MicVarMap
Definition: ERF_WDM6.H:220
amrex::Real m_pvtr
Definition: ERF_WDM6.H:253
amrex::Real m_rslopegmax
Definition: ERF_WDM6.H:264
static constexpr amrex::Real bvtr
Definition: ERF_WDM6.H:116
amrex::Real m_bvtr7
Definition: ERF_WDM6.H:249
amrex::Real m_rslopesmax
Definition: ERF_WDM6.H:264
amrex::Real m_bvtr3
Definition: ERF_WDM6.H:249
amrex::Real m_pidn0r
Definition: ERF_WDM6.H:255
amrex::Real m_pvtg
Definition: ERF_WDM6.H:262
amrex::Array< FabPtr, MicVar_WDM6::NumVars > mic_fab_vars
Definition: ERF_WDM6.H:235
static constexpr amrex::Real lamdacmax
Definition: ERF_WDM6.H:128
static constexpr amrex::Real alpha_wdm6
Definition: ERF_WDM6.H:142
void Qmoist_Restart_Vars(const SolverChoice &, std::vector< int > &a_idx, std::vector< std::string > &a_names) const override
Definition: ERF_WDM6.H:197
SurfacePrecipAccumulationSources Get_Surface_Precip_Accumulation_Ptrs(const int &) const override
Definition: ERF_WDM6.H:206
amrex::Real m_pi_wdm6
Definition: ERF_WDM6.H:247
static constexpr amrex::Real dtcldcr
Definition: ERF_WDM6.H:113
amrex::Real m_rslopes2max
Definition: ERF_WDM6.H:266
void Set_Lmask(amrex::iMultiFab *lmask) override
Import ERF's land/water mask. Only schemes whose physics branches on land vs water need to override t...
Definition: ERF_WDM6.H:166
static constexpr amrex::Real avts
Definition: ERF_WDM6.H:123
static constexpr amrex::Real xmyu
Definition: ERF_WDM6.H:122
amrex::Real m_rslopegbmax
Definition: ERF_WDM6.H:265
amrex::Real m_bvtr1
Definition: ERF_WDM6.H:249
int n_qstate_moist_numconc_size
Definition: ERF_WDM6.H:218
amrex::Real m_rslopes3max
Definition: ERF_WDM6.H:267
void Copy_State_to_Micro(const amrex::MultiFab &cons_in) override
Definition: ERF_InitWDM6.cpp:83
amrex::Real m_qck1
Definition: ERF_WDM6.H:248
void Advance(const amrex::Real &dt_advance, const SolverChoice &solverChoice) override
Definition: ERF_AdvanceWDM6.cpp:650
amrex::Real m_g1pbs
Definition: ERF_WDM6.H:257
static constexpr amrex::Real qs0
Definition: ERF_WDM6.H:139
void Init(const amrex::MultiFab &cons_in, const amrex::BoxArray &grids, const amrex::Geometry &geom, const amrex::Real &dt_advance, std::unique_ptr< amrex::MultiFab > &z_phys_nd, std::unique_ptr< amrex::MultiFab > &detJ_cc) override
Definition: ERF_InitWDM6.cpp:9
amrex::Real m_rslopeg2max
Definition: ERF_WDM6.H:266
void Define(SolverChoice &sc) override
Definition: ERF_WDM6.H:64
static constexpr amrex::Real n0s
Definition: ERF_WDM6.H:141
amrex::Real m_bvtg3
Definition: ERF_WDM6.H:260
amrex::Real m_rslopesbmax
Definition: ERF_WDM6.H:265
amrex::Geometry m_geom
Definition: ERF_WDM6.H:222
static constexpr amrex::Real di2000
Definition: ERF_WDM6.H:150
amrex::Real m_bvtr2o5
Definition: ERF_WDM6.H:250
amrex::Real m_avtg
Definition: ERF_WDM6.H:242
amrex::Real m_precg1
Definition: ERF_WDM6.H:262
MoistureType m_moisture_type
Definition: ERF_WDM6.H:229
amrex::Real m_rsloperbmax
Definition: ERF_WDM6.H:265
amrex::Real m_g3pbg
Definition: ERF_WDM6.H:261
void Set_dzmin(const amrex::Real dz_min) override
Definition: ERF_WDM6.H:161
amrex::Real m_precr1
Definition: ERF_WDM6.H:254
static constexpr amrex::Real di82
Definition: ERF_WDM6.H:151
amrex::Real m_g7pbr
Definition: ERF_WDM6.H:251
static constexpr amrex::Real actr
Definition: ERF_WDM6.H:145
static constexpr amrex::Real lamdarmin
Definition: ERF_WDM6.H:126
static constexpr amrex::Real lamdacmin
Definition: ERF_WDM6.H:129
amrex::Real m_bvts1
Definition: ERF_WDM6.H:256
amrex::Real m_ccn0
Definition: ERF_WDM6.H:225
amrex::Real m_pidnc
Definition: ERF_WDM6.H:248
amrex::Real m_qc0
Definition: ERF_WDM6.H:248
static constexpr amrex::Real dens_snow
Definition: ERF_WDM6.H:138
amrex::Real m_bvtg
Definition: ERF_WDM6.H:242
amrex::Real m_g1pbg
Definition: ERF_WDM6.H:261
amrex::Real m_rsloper3max
Definition: ERF_WDM6.H:267
amrex::Real m_rslopeg3max
Definition: ERF_WDM6.H:267
amrex::Real m_pidnr
Definition: ERF_WDM6.H:255
amrex::Real m_g4pbr
Definition: ERF_WDM6.H:251
amrex::Real m_pacrr
Definition: ERF_WDM6.H:253
static constexpr amrex::Real bvts
Definition: ERF_WDM6.H:124
amrex::Real m_n0g
Definition: ERF_WDM6.H:242
static constexpr amrex::Real di600
Definition: ERF_WDM6.H:149
static constexpr amrex::Real r0
Definition: ERF_WDM6.H:117
amrex::Real m_g5pbgo2
Definition: ERF_WDM6.H:261
int Qstate_Moist_Size() override
Definition: ERF_WDM6.H:194
amrex::Real m_g4pbs
Definition: ERF_WDM6.H:257
amrex::Real m_g3pbr
Definition: ERF_WDM6.H:251
void Update_Micro_Vars(amrex::MultiFab &cons_in) override
Definition: ERF_WDM6.H:173
static constexpr amrex::Real lamdasmax
Definition: ERF_WDM6.H:127
amrex::Real m_bvtr2
Definition: ERF_WDM6.H:249
amrex::MultiFab * m_detJ_cc
Definition: ERF_WDM6.H:232
void Update_State_Vars(amrex::MultiFab &cons_in, const amrex::MultiFab &) override
Definition: ERF_WDM6.H:178
int zlo
Definition: ERF_WDM6.H:226
int zhi
Definition: ERF_WDM6.H:226
static constexpr amrex::Real xncr0
Definition: ERF_WDM6.H:120
amrex::Real m_precg2
Definition: ERF_WDM6.H:262
amrex::Real m_rslopermax
Definition: ERF_WDM6.H:264
amrex::MultiFab * m_z_phys_nd
Definition: ERF_WDM6.H:231
static constexpr amrex::Real peaut
Definition: ERF_WDM6.H:118
amrex::Real m_bvtr6
Definition: ERF_WDM6.H:249
static constexpr amrex::Real ncrk2
Definition: ERF_WDM6.H:147
amrex::Real m_g6pbr
Definition: ERF_WDM6.H:251
amrex::Real m_xlv1
Definition: ERF_WDM6.H:247
static constexpr amrex::Real xncr1
Definition: ERF_WDM6.H:121
amrex::Real m_bvts4
Definition: ERF_WDM6.H:256
amrex::Real m_pacrg
Definition: ERF_WDM6.H:262
static constexpr amrex::Real ncrk1
Definition: ERF_WDM6.H:146
amrex::Real m_lamdagmax
Definition: ERF_WDM6.H:242
static constexpr amrex::Real di15
Definition: ERF_WDM6.H:152
amrex::Real m_g1pbr
Definition: ERF_WDM6.H:251
void initialize_coeffs()
Definition: ERF_InitWDM6.cpp:158
amrex::Real m_g2pbr
Definition: ERF_WDM6.H:251
amrex::Real m_bvts3
Definition: ERF_WDM6.H:256
amrex::Real m_bvtr5
Definition: ERF_WDM6.H:249
amrex::Real m_xmmax
Definition: ERF_WDM6.H:254
amrex::Real m_bvtr4
Definition: ERF_WDM6.H:249
static constexpr amrex::Real avtr
Definition: ERF_WDM6.H:115
amrex::Real m_pacrc
Definition: ERF_WDM6.H:259
amrex::Real m_bvtg2
Definition: ERF_WDM6.H:260
amrex::Real m_roqimax
Definition: ERF_WDM6.H:254
amrex::Real m_g5pbso2
Definition: ERF_WDM6.H:257
amrex::Real m_g4pbg
Definition: ERF_WDM6.H:261
amrex::Real m_deng
Definition: ERF_WDM6.H:242
int Qmoist_Size() override
Definition: ERF_WDM6.H:193
bool m_do_cond
Definition: ERF_WDM6.H:228
amrex::Real m_eacrr
Definition: ERF_WDM6.H:253
static constexpr amrex::Real dimax
Definition: ERF_WDM6.H:131
amrex::Real m_g7pbro2
Definition: ERF_WDM6.H:252
amrex::MultiFab * Qmoist_Ptr(const int &varIdx) override
Definition: ERF_WDM6.H:187
static constexpr amrex::Real actk
Definition: ERF_WDM6.H:144
static constexpr amrex::Real pfrz2
Definition: ERF_WDM6.H:133
amrex::Real m_precs1
Definition: ERF_WDM6.H:258
static constexpr amrex::Real satmax
Definition: ERF_WDM6.H:143
static constexpr amrex::Real n0smax
Definition: ERF_WDM6.H:140
amrex::Real m_rsloper2max
Definition: ERF_WDM6.H:266
amrex::Real m_rslopec2max
Definition: ERF_WDM6.H:263
amrex::Real m_bvts2
Definition: ERF_WDM6.H:256
Definition: ERF_WDM6.H:19
@ qr
Definition: ERF_WDM6.H:28
@ qv
Definition: ERF_WDM6.H:25
@ qc
Definition: ERF_WDM6.H:26
@ qi
Definition: ERF_WDM6.H:27
@ graup_accum
Definition: ERF_WDM6.H:36
@ rain_accum
Definition: ERF_WDM6.H:34
@ NumVars
Definition: ERF_WDM6.H:37
@ pres
Definition: ERF_WDM6.H:24
@ nr
Definition: ERF_WDM6.H:33
@ qg
Definition: ERF_WDM6.H:30
@ theta
Definition: ERF_WDM6.H:22
@ qs
Definition: ERF_WDM6.H:29
@ nc
Definition: ERF_WDM6.H:32
@ nn
Definition: ERF_WDM6.H:31
@ rho
Definition: ERF_WDM6.H:21
@ tabs
Definition: ERF_WDM6.H:23
@ snow_accum
Definition: ERF_WDM6.H:35
Definition: ERF_DataStruct.H:634
MoistureType moisture_type
Moisture or microphysics model.
Definition: ERF_DataStruct.H:2124
int ave_plane
Averaging plane index used by diagnostics.
Definition: ERF_DataStruct.H:2141
bool uses_shoc_family() const noexcept
Query whether any SHOC-family PBL scheme is active.
Definition: ERF_DataStruct.H:2063
Definition: ERF_SurfacePrecipitation.H:34
SurfacePrecipAccumulationSource snow
Definition: ERF_SurfacePrecipitation.H:37
SurfacePrecipAccumulationSource total
Definition: ERF_SurfacePrecipitation.H:35
SurfacePrecipAccumulationSource graupel
Definition: ERF_SurfacePrecipitation.H:38