1 #ifndef ERF_DIFF_STRUCT_H_
2 #define ERF_DIFF_STRUCT_H_
7 #include <AMReX_ParmParse.H>
8 #include <AMReX_Print.H>
32 amrex::ParmParse
pp(pp_prefix);
34 static std::string molec_diff_type_string =
"None";
35 pp.queryAdd(
"molec_diff_type",molec_diff_type_string);
37 if (!molec_diff_type_string.compare(
"Constant")) {
39 }
else if (!molec_diff_type_string.compare(
"ConstantAlpha")) {
41 }
else if (!molec_diff_type_string.compare(
"None")) {
44 amrex::Error(
"Don't know this molec_diff_type");
62 amrex::Print() <<
"Using constant kinematic diffusion coefficients" << std::endl;
64 amrex::Print() <<
" temperature : " <<
alpha_T <<
" m^2/s" << std::endl;
65 amrex::Print() <<
" scalar : " <<
alpha_C <<
" m^2/s" << std::endl;
68 amrex::Print() <<
"Using constant dynamic diffusion coefficients" << std::endl;
69 amrex::Print() <<
" momentum : " <<
dynamic_viscosity <<
" kg/(m-s)" << std::endl;
70 amrex::Print() <<
" temperature : " <<
rhoAlpha_T <<
" kg/(m-s)" << std::endl;
71 amrex::Print() <<
" scalar : " <<
rhoAlpha_C <<
" kg/(m-s)" << std::endl;
81 amrex::Print() <<
"Diffusion choices: " << std::endl;
82 amrex::Print() <<
" rho0_trans : " <<
rho0_trans << std::endl;
83 amrex::Print() <<
" alpha_T : " <<
alpha_T << std::endl;
84 amrex::Print() <<
" alpha_C : " <<
alpha_C << std::endl;
88 amrex::Print() <<
"Using constant molecular diffusivity (relevant for DNS)" << std::endl;
90 amrex::Print() <<
"Not using any molecular diffusivity, i.e. using the modeled turbulent diffusivity"
120 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
123 AMREX_ASSERT(n >= 0 && n <
NVAR_max);
127 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
MolecDiffType
Molecular diffusion model used for transport coefficients.
Definition: ERF_DiffStruct.H:16
#define NVAR_max
Definition: ERF_IndexDefines.H:37
#define RhoQ1_comp
Definition: ERF_IndexDefines.H:66
#define NMOIST_max
Definition: ERF_IndexDefines.H:29
constexpr amrex::Real one
Definition: ERF_NumericalConstants.H:37
constexpr amrex::Real zero
Definition: ERF_NumericalConstants.H:36
amrex::Real Real
Definition: ERF_ShocInterface.H:19
Definition: ERF_DiffStruct.H:24
bool eb_diff_constraint_z
Whether to constrain EB diffusion in the z direction.
Definition: ERF_DiffStruct.H:111
int n_qstate_moist
Number of water-related conserved components starting at RhoQ1_comp, retaining their water-species mo...
Definition: ERF_DiffStruct.H:116
amrex::GpuArray< bool, NVAR_max - RhoQ1_comp > qstate_is_diagnostic
Definition: ERF_DiffStruct.H:118
MolecDiffType molec_diff_type
Selected molecular transport model.
Definition: ERF_DiffStruct.H:96
amrex::Real rhoAlpha_T
Dynamic temperature diffusion coefficient [kg/(m-s)].
Definition: ERF_DiffStruct.H:106
int n_qstate_nonmoist
Definition: ERF_DiffStruct.H:117
bool eb_diff_constraint_y
Whether to constrain EB diffusion in the y direction.
Definition: ERF_DiffStruct.H:110
amrex::Real alpha_C
Kinematic scalar diffusivity [m2/s].
Definition: ERF_DiffStruct.H:100
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE bool host_transports(int n) const noexcept
Definition: ERF_DiffStruct.H:121
bool eb_diff_constraint_x
Whether to constrain EB diffusion in the x direction.
Definition: ERF_DiffStruct.H:109
amrex::Real dynamic_viscosity
Dynamic viscosity for momentum diffusion [kg/(m-s)].
Definition: ERF_DiffStruct.H:108
void init_params(std::string pp_prefix)
Read diffusion options from the input parameter database.
Definition: ERF_DiffStruct.H:30
void display()
Print the configured diffusion options.
Definition: ERF_DiffStruct.H:79
amrex::Real rho0_trans
Reference density used to compute dynamic diffusion coefficients [kg/m3].
Definition: ERF_DiffStruct.H:103
amrex::Real alpha_T
Kinematic temperature diffusivity [m2/s].
Definition: ERF_DiffStruct.H:99
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE bool implicit_q(int n) const noexcept
Definition: ERF_DiffStruct.H:128
amrex::Real rhoAlpha_C
Dynamic scalar diffusion coefficient [kg/(m-s)].
Definition: ERF_DiffStruct.H:107