|
ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
|
#include <ERF_TurbStruct.H>

Public Member Functions | |
| void | init_params (int lev, int max_level, std::string pp_prefix) |
| Read turbulence options for one AMR level from the input parameter database. More... | |
| void | check_params (amrex::GpuArray< ERF_BC, AMREX_SPACEDIM *2 > &phys_bc_type) |
| Validate turbulence options against physical boundary conditions. More... | |
| void | display (int lev) |
| Print turbulence settings for one AMR level. More... | |
| bool | uses_eamxx_shoc () const noexcept |
| Query whether this level uses the EAMxx SHOC PBL scheme. More... | |
| bool | uses_native_shoc () const noexcept |
| Query whether this level uses the native SHOC PBL scheme. More... | |
| bool | uses_shoc_family () const noexcept |
| Query whether this level uses any SHOC-family PBL scheme. More... | |
| bool | pbl_requires_surface_layer () const noexcept |
| Query whether the selected PBL scheme requires surface-layer boundary conditions. More... | |
| bool | pbl_suppresses_microphysics_condensation () const noexcept |
| Query whether the selected PBL scheme suppresses microphysics condensation. More... | |
Public Attributes | |
| LESType | les_type = LESType::None |
| Selected LES closure. More... | |
| amrex::Real | Pr_t = one / three |
| Turbulent Prandtl number. More... | |
| amrex::Real | Pr_t_inv = three |
| Inverse turbulent Prandtl number. More... | |
| amrex::Real | Sc_t = one |
| Turbulent Schmidt number. More... | |
| amrex::Real | Sc_t_inv = one |
| Inverse turbulent Schmidt number. More... | |
| amrex::Real | Cs = zero |
| Smagorinsky model coefficient. More... | |
| bool | smag2d = false |
| Whether the 2-D Smagorinsky formulation is used. More... | |
| amrex::Real | Ce = amrex::Real(0.93) |
| Deardorff dissipation coefficient. More... | |
| amrex::Real | Ce_wall = zero |
| Wall value for the Deardorff dissipation coefficient. More... | |
| amrex::Real | Ck = amrex::Real(0.1) |
| Deardorff eddy-viscosity coefficient. More... | |
| amrex::Real | Cmu0 = amrex::Real(0.5562) |
| One-equation RANS Cmu0 coefficient. More... | |
| amrex::Real | Cb = amrex::Real(0.35) |
| One-equation RANS buoyancy coefficient. More... | |
| amrex::Real | Rt_crit = -one |
| Critical turbulent Reynolds number. More... | |
| amrex::Real | Rt_min = -three |
| Minimum turbulent Reynolds number. More... | |
| amrex::Real | l_g_max = amrex::Real(30.0) |
| Maximum geometric length scale. More... | |
| amrex::Real | sigma_k = amrex::Real(0.5) |
| TKE diffusivity coefficient denominator. More... | |
| amrex::Real | theta_ref = zero |
| Reference potential temperature for stable stratification. More... | |
| StratType | strat_type = StratType::theta |
| Thermodynamic variable used for stability stratification. More... | |
| bool | mix_isotropic = true |
| Whether subgrid mixing uses isotropic length scales. More... | |
| bool | use_Ri_correction = true |
| Whether Richardson-number correction is applied. More... | |
| amrex::Real | Ri_crit = fourth |
| Critical Richardson number for stability correction. More... | |
| RANSType | rans_type = RANSType::None |
| Selected RANS closure. More... | |
| bool | dirichlet_k = false |
| Whether TKE uses Dirichlet boundary treatment. More... | |
| PBLType | pbl_type = PBLType::None |
| Selected PBL closure. More... | |
| MYNNLevel25 | pbl_mynn |
| MYNN level-2.5 closure coefficients. More... | |
| MYNNLevel2 | pbl_mynn_level2 |
| MYNN level-2 closure coefficients for limiting. More... | |
| bool | use_kturb = false |
| Whether any turbulence model is active. More... | |
| bool | use_keqn |
| Whether a microscale TKE closure is active. More... | |
| bool | use_pbl_tke |
| Whether a mesoscale PBL TKE closure is active. More... | |
| bool | use_tke = false |
| Whether any TKE or QKE closure is active. More... | |
| bool | init_tke_from_ustar = false |
| Whether initial TKE/QKE profiles are based on surface friction velocity. More... | |
| amrex::Real | tke_min = amrex::Real(1.e-6) |
| Minimum TKE/QKE value. More... | |
| amrex::Real | pbl_ysu_coriolis_freq |
| Coriolis frequency used by YSU-family PBL schemes. More... | |
| bool | pbl_ysu_use_consistent_coriolis |
| Whether YSU uses the ERF Coriolis frequency. More... | |
| bool | pbl_ysu_force_over_water |
| Whether YSU is forced to use over-water behavior. More... | |
| amrex::Real | pbl_ysu_land_Ribcr |
| Critical bulk Richardson number over land for stable YSU conditions. More... | |
| amrex::Real | pbl_ysu_unst_Ribcr |
| Critical bulk Richardson number for unstable YSU conditions. More... | |
| bool | enable_ysu_liquid_theta |
| Whether YSU uses liquid-water virtual potential temperature for stability. More... | |
| bool | enable_ysu_countergradient |
| Whether YSU countergradient corrections are enabled. More... | |
| bool | enable_ysu_terrain_pblh_floor |
| Whether YSU applies a terrain-following PBL-height floor. More... | |
| bool | enable_ysu_sat_limiter |
| Whether YSU applies a saturation limiter to moisture countergradient terms. More... | |
| bool | enable_ysu_topdown |
| Whether YSU top-down mixing is enabled. More... | |
| bool | enable_ysu_entrainment |
| Whether YSU entrainment-layer parameterization is enabled. More... | |
| bool | enable_ysu_cloud_pblh |
| Whether YSU cloud-based PBL-height detection is enabled. More... | |
| amrex::Real | ysu_qcloud_threshold |
| Cloud liquid water threshold for YSUNew [kg/kg]. More... | |
| bool | ysu_moistvars = false |
| Whether YSU applies turbulence to moisture variables. More... | |
| bool | pbl_ysunew_highres_bounds = false |
| Whether YSUNew applies high-resolution grid-dependent diffusivity bounds. More... | |
| amrex::Real | pbl_mrf_coriolis_freq = amrex::Real(1.0e-4) |
| Coriolis frequency used by the MRF PBL scheme. More... | |
| amrex::Real | pbl_mrf_Ribcr = amrex::Real(0.5) |
| Critical bulk Richardson number for the MRF PBL scheme. More... | |
| amrex::Real | pbl_mrf_const_b = amrex::Real(7.8) |
| MRF constant used to compute PBL height. More... | |
| amrex::Real | pbl_mrf_sf = amrex::Real(0.1) |
| MRF surface flux value used to compute PBL height. More... | |
| amrex::Real | pbl_blend_length = amrex::Real(0.0) |
| Boutle blending length L [m]. 0 = off. More... | |
| amrex::Real | pbl_blend_cs = amrex::Real(0.17) |
| Smagorinsky coeff for K_h ceiling. More... | |
| amrex::Real | pbl_blend_c_max = amrex::Real(0.1) |
| Power-law ceiling coeff [m^(2/3)/s]. More... | |
| bool | pbl_blend_use_smag = true |
| Use Smagorinsky ceiling (else power-law). More... | |
| bool | mrf_moistvars = false |
| Whether MRF applies turbulence to moisture variables. More... | |
| bool | enable_mrf_countergradient = false |
| Whether MRF countergradient corrections are enabled. More... | |
| bool | enable_mrf_cloud_adjustment = false |
| Whether MRF cloud-aware stability adjustments are enabled. More... | |
| bool | pbl_mrf_highres_bounds = false |
| Whether MRF applies high-resolution grid-dependent diffusivity bounds. More... | |
| bool | enable_mrf_unbounded_vpert = false |
| Whether MRF leaves VPERT unlimited by GAMCRT. More... | |
| bool | pbl_mrf_use_zero_ri_extent = false |
| Whether MRF uses the Ri=0 K-profile extent. More... | |
| bool | advect_tke = true |
| Whether TKE/QKE is advected. More... | |
| bool | diffuse_tke_3D = true |
| Whether three-dimensional numerical diffusion is applied to TKE/QKE. More... | |
Container holding quantities related to turbulence parametrizations
|
inline |
Validate turbulence options against physical boundary conditions.
| phys_bc_type | Physical boundary-condition types. |

|
inline |
Print turbulence settings for one AMR level.
| lev | AMR level index. |
|
inline |
Read turbulence options for one AMR level from the input parameter database.
| lev | AMR level index. |
| max_level | Maximum AMR level configured for the run. |
| pp_prefix | ParmParse prefix for the ERF input namespace. |

|
inlinenoexcept |
Query whether the selected PBL scheme requires surface-layer boundary conditions.
Referenced by check_params(), and init_params().


|
inlinenoexcept |
Query whether the selected PBL scheme suppresses microphysics condensation.

|
inlinenoexcept |
Query whether this level uses the EAMxx SHOC PBL scheme.
Referenced by erf_slow_rhs_post(), erf_slow_rhs_pre(), init_params(), and uses_shoc_family().

|
inlinenoexcept |
Query whether this level uses the native SHOC PBL scheme.
Referenced by erf_slow_rhs_post(), erf_slow_rhs_pre(), and uses_shoc_family().

|
inlinenoexcept |
Query whether this level uses any SHOC-family PBL scheme.
Referenced by ComputeTurbulentViscosity(), init_params(), pbl_requires_surface_layer(), and pbl_suppresses_microphysics_condensation().


| TurbChoice::advect_tke = true |
Whether TKE/QKE is advected.
Referenced by erf_slow_rhs_post(), and init_params().
| TurbChoice::Cb = amrex::Real(0.35) |
One-equation RANS buoyancy coefficient.
Referenced by ComputeTurbulentViscosityRANS(), display(), and init_params().
| TurbChoice::Ce = amrex::Real(0.93) |
Deardorff dissipation coefficient.
Referenced by ComputeTurbulentViscosityLES(), display(), and init_params().
| TurbChoice::Ce_wall = zero |
Wall value for the Deardorff dissipation coefficient.
Referenced by check_params(), ComputeTurbulentViscosityLES(), display(), and init_params().
| TurbChoice::Ck = amrex::Real(0.1) |
Deardorff eddy-viscosity coefficient.
Referenced by ComputeTurbulentViscosityLES(), display(), and init_params().
| TurbChoice::Cmu0 = amrex::Real(0.5562) |
One-equation RANS Cmu0 coefficient.
Referenced by ComputeTurbulentViscosityRANS(), display(), and init_params().
| TurbChoice::Cs = zero |
Smagorinsky model coefficient.
Referenced by ComputeTurbulentViscosityLES(), ComputeTurbulentViscosityLES_EB(), display(), and init_params().
| TurbChoice::diffuse_tke_3D = true |
Whether three-dimensional numerical diffusion is applied to TKE/QKE.
Referenced by init_params(), and make_sources().
| TurbChoice::dirichlet_k = false |
Whether TKE uses Dirichlet boundary treatment.
Referenced by init_params().
| TurbChoice::enable_mrf_cloud_adjustment = false |
Whether MRF cloud-aware stability adjustments are enabled.
Referenced by ComputeDiffusivityMRF(), display(), and init_params().
| TurbChoice::enable_mrf_countergradient = false |
Whether MRF countergradient corrections are enabled.
Referenced by ComputeDiffusivityMRF(), display(), and init_params().
| TurbChoice::enable_mrf_unbounded_vpert = false |
Whether MRF leaves VPERT unlimited by GAMCRT.
Referenced by ComputeDiffusivityMRF(), ComputeDiffusivityYSUNew(), display(), and init_params().
| TurbChoice::enable_ysu_cloud_pblh |
Whether YSU cloud-based PBL-height detection is enabled.
Referenced by ComputeDiffusivityYSUNew(), display(), and init_params().
| TurbChoice::enable_ysu_countergradient |
Whether YSU countergradient corrections are enabled.
Referenced by ComputeDiffusivityYSUNew(), display(), and init_params().
| TurbChoice::enable_ysu_entrainment |
Whether YSU entrainment-layer parameterization is enabled.
Referenced by ComputeDiffusivityYSUNew(), display(), and init_params().
| TurbChoice::enable_ysu_liquid_theta |
Whether YSU uses liquid-water virtual potential temperature for stability.
Referenced by ComputeDiffusivityYSUNew(), display(), and init_params().
| TurbChoice::enable_ysu_sat_limiter |
Whether YSU applies a saturation limiter to moisture countergradient terms.
Referenced by ComputeDiffusivityYSUNew(), display(), and init_params().
| TurbChoice::enable_ysu_terrain_pblh_floor |
Whether YSU applies a terrain-following PBL-height floor.
Referenced by ComputeDiffusivityYSUNew(), display(), and init_params().
| TurbChoice::enable_ysu_topdown |
Whether YSU top-down mixing is enabled.
Referenced by ComputeDiffusivityYSUNew(), display(), and init_params().
| TurbChoice::init_tke_from_ustar = false |
Whether initial TKE/QKE profiles are based on surface friction velocity.
Referenced by init_params().
| TurbChoice::l_g_max = amrex::Real(30.0) |
Maximum geometric length scale.
Referenced by ComputeTurbulentViscosityRANS(), display(), and init_params().
| TurbChoice::les_type = LESType::None |
Selected LES closure.
Referenced by check_params(), ComputeTurbulentViscosity(), ComputeTurbulentViscosityLES(), ComputeTurbulentViscosityLES_EB(), display(), erf_make_tau_terms(), erf_slow_rhs_post(), erf_slow_rhs_pre(), and init_params().
| TurbChoice::mix_isotropic = true |
Whether subgrid mixing uses isotropic length scales.
Referenced by ComputeTurbulentViscosityLES(), ComputeTurbulentViscosityLES_EB(), display(), and init_params().
| TurbChoice::mrf_moistvars = false |
Whether MRF applies turbulence to moisture variables.
Referenced by ComputeDiffusivityMRF(), display(), and init_params().
| amrex::Real TurbChoice::pbl_blend_c_max = amrex::Real(0.1) |
Power-law ceiling coeff [m^(2/3)/s].
Referenced by ComputeDiffusivityMRF(), display(), and init_params().
| amrex::Real TurbChoice::pbl_blend_cs = amrex::Real(0.17) |
Smagorinsky coeff for K_h ceiling.
Referenced by ComputeDiffusivityMRF(), display(), and init_params().
| amrex::Real TurbChoice::pbl_blend_length = amrex::Real(0.0) |
Boutle blending length L [m]. 0 = off.
Referenced by ComputeDiffusivityMRF(), display(), and init_params().
| bool TurbChoice::pbl_blend_use_smag = true |
Use Smagorinsky ceiling (else power-law).
Referenced by display(), and init_params().
| TurbChoice::pbl_mrf_const_b = amrex::Real(7.8) |
MRF constant used to compute PBL height.
Referenced by ComputeDiffusivityMRF(), ComputeDiffusivityYSUNew(), display(), and init_params().
| TurbChoice::pbl_mrf_coriolis_freq = amrex::Real(1.0e-4) |
Coriolis frequency used by the MRF PBL scheme.
Referenced by display(), and init_params().
| TurbChoice::pbl_mrf_highres_bounds = false |
Whether MRF applies high-resolution grid-dependent diffusivity bounds.
Referenced by ComputeDiffusivityMRF(), display(), and init_params().
| TurbChoice::pbl_mrf_Ribcr = amrex::Real(0.5) |
Critical bulk Richardson number for the MRF PBL scheme.
Referenced by ComputeDiffusivityMRF(), display(), and init_params().
| TurbChoice::pbl_mrf_sf = amrex::Real(0.1) |
MRF surface flux value used to compute PBL height.
Referenced by ComputeDiffusivityMRF(), ComputeDiffusivityYSUNew(), display(), and init_params().
| TurbChoice::pbl_mrf_use_zero_ri_extent = false |
Whether MRF uses the Ri=0 K-profile extent.
Referenced by ComputeDiffusivityMRF(), ComputeDiffusivityYSUNew(), display(), and init_params().
| TurbChoice::pbl_mynn |
MYNN level-2.5 closure coefficients.
Referenced by ComputeDiffusivityMYNN25(), ComputeDiffusivityMYNNEDMF(), display(), and init_params().
| TurbChoice::pbl_mynn_level2 |
MYNN level-2 closure coefficients for limiting.
Referenced by ComputeDiffusivityMYNN25(), ComputeDiffusivityMYNNEDMF(), and init_params().
| TurbChoice::pbl_type = PBLType::None |
Selected PBL closure.
Referenced by ComputeTurbulentViscosity(), display(), erf_make_tau_terms(), erf_slow_rhs_post(), erf_slow_rhs_pre(), init_params(), pbl_requires_surface_layer(), uses_eamxx_shoc(), and uses_native_shoc().
| TurbChoice::pbl_ysu_coriolis_freq |
Coriolis frequency used by YSU-family PBL schemes.
Referenced by ComputeDiffusivityYSU(), ComputeDiffusivityYSUNew(), display(), and init_params().
| TurbChoice::pbl_ysu_force_over_water |
Whether YSU is forced to use over-water behavior.
Referenced by ComputeDiffusivityYSU(), display(), and init_params().
| TurbChoice::pbl_ysu_land_Ribcr |
Critical bulk Richardson number over land for stable YSU conditions.
Referenced by ComputeDiffusivityYSU(), ComputeDiffusivityYSUNew(), display(), and init_params().
| TurbChoice::pbl_ysu_unst_Ribcr |
Critical bulk Richardson number for unstable YSU conditions.
Referenced by ComputeDiffusivityYSU(), display(), and init_params().
| TurbChoice::pbl_ysu_use_consistent_coriolis |
Whether YSU uses the ERF Coriolis frequency.
Referenced by display(), and init_params().
| TurbChoice::pbl_ysunew_highres_bounds = false |
Whether YSUNew applies high-resolution grid-dependent diffusivity bounds.
Referenced by ComputeDiffusivityYSUNew(), display(), and init_params().
Turbulent Prandtl number.
Referenced by display(), and init_params().
| TurbChoice::Pr_t_inv = three |
Inverse turbulent Prandtl number.
Referenced by ComputeTurbulentViscosityLES(), ComputeTurbulentViscosityLES_EB(), ComputeTurbulentViscosityRANS(), and init_params().
| TurbChoice::rans_type = RANSType::None |
Selected RANS closure.
Referenced by ComputeTurbulentViscosity(), ComputeTurbulentViscosityRANS(), display(), erf_make_tau_terms(), erf_slow_rhs_post(), erf_slow_rhs_pre(), and init_params().
| TurbChoice::Ri_crit = fourth |
Critical Richardson number for stability correction.
Referenced by ComputeTurbulentViscosityLES(), ComputeTurbulentViscosityLES_EB(), display(), and init_params().
| TurbChoice::Rt_crit = -one |
Critical turbulent Reynolds number.
Referenced by ComputeTurbulentViscosityRANS(), display(), and init_params().
| TurbChoice::Rt_min = -three |
Minimum turbulent Reynolds number.
Referenced by ComputeTurbulentViscosityRANS(), display(), and init_params().
| TurbChoice::Sc_t = one |
Turbulent Schmidt number.
Referenced by display(), and init_params().
| TurbChoice::Sc_t_inv = one |
Inverse turbulent Schmidt number.
Referenced by ComputeTurbulentViscosityLES(), ComputeTurbulentViscosityLES_EB(), ComputeTurbulentViscosityRANS(), and init_params().
| TurbChoice::sigma_k = amrex::Real(0.5) |
TKE diffusivity coefficient denominator.
Referenced by ComputeTurbulentViscosityLES(), ComputeTurbulentViscosityLES_EB(), ComputeTurbulentViscosityRANS(), display(), and init_params().
| TurbChoice::smag2d = false |
Whether the 2-D Smagorinsky formulation is used.
Referenced by ComputeTurbulentViscosityLES(), display(), and init_params().
| TurbChoice::strat_type = StratType::theta |
Thermodynamic variable used for stability stratification.
Referenced by ComputeTurbulentViscosityLES(), and init_params().
| TurbChoice::theta_ref = zero |
Reference potential temperature for stable stratification.
Referenced by ComputeTurbulentViscosityLES(), ComputeTurbulentViscosityRANS(), display(), and init_params().
| TurbChoice::tke_min = amrex::Real(1.e-6) |
Minimum TKE/QKE value.
Referenced by init_params().
| TurbChoice::use_keqn |
Whether a microscale TKE closure is active.
Referenced by erf_slow_rhs_pre(), and init_params().
| TurbChoice::use_kturb = false |
Whether any turbulence model is active.
Referenced by ERF::advance_dycore(), erf_make_tau_terms(), erf_slow_rhs_post(), erf_slow_rhs_pre(), ImplicitDiffForMomLU_N(), ImplicitDiffForMomLU_S(), ImplicitDiffForMomLU_T(), and init_params().
| TurbChoice::use_pbl_tke |
| TurbChoice::use_Ri_correction = true |
Whether Richardson-number correction is applied.
Referenced by ComputeTurbulentViscosityLES(), ComputeTurbulentViscosityLES_EB(), display(), and init_params().
| TurbChoice::use_tke = false |
Whether any TKE or QKE closure is active.
Referenced by erf_slow_rhs_post(), init_params(), and make_sources().
| TurbChoice::ysu_moistvars = false |
Whether YSU applies turbulence to moisture variables.
Referenced by ComputeDiffusivityYSUNew(), display(), and init_params().
| TurbChoice::ysu_qcloud_threshold |
Cloud liquid water threshold for YSUNew [kg/kg].
Referenced by ComputeDiffusivityYSUNew(), display(), and init_params().