36 #ifndef ERF_PBL_SCALE_AWARE_BLENDING_H
37 #define ERF_PBL_SCALE_AWARE_BLENDING_H
39 #include <AMReX_REAL.H>
40 #include <AMReX_GpuQualifiers.H>
62 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
69 return d2 / (L * L + d2);
83 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
89 return Lmix * Lmix * std::sqrt(2.0 * amrex::max(SmnSmn,
amrex::Real(0.0)));
103 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
132 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
139 bool use_smag) noexcept
141 if (L_blend <= 0.0)
return K_h;
147 if (use_smag && SmnSmn >= 0.0) {
152 return amrex::min(K_blend, K_max);
const Real dx
Definition: ERF_InitCustomPert_ABL.H:44
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real pbl_kh_blend_and_cap(amrex::Real K_h, amrex::Real dx, amrex::Real L_blend, amrex::Real C_s, amrex::Real c_max, amrex::Real SmnSmn, bool use_smag) noexcept
Apply scale-aware blending and ceiling to a single K_h value.
Definition: ERF_PBLScaleAwareBlending.H:133
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real pbl_blend_factor(amrex::Real dx, amrex::Real L_blend) noexcept
Boutle et al. (2014) blending factor.
Definition: ERF_PBLScaleAwareBlending.H:63
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real pbl_kh_ceiling_powerlaw(amrex::Real dx, amrex::Real c_max) noexcept
Power-law K_h ceiling (fallback when SmnSmn not available).
Definition: ERF_PBLScaleAwareBlending.H:104
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real pbl_kh_ceiling_smag(amrex::Real dx, amrex::Real SmnSmn, amrex::Real C_s) noexcept
Smagorinsky-Lilly K_h ceiling.
Definition: ERF_PBLScaleAwareBlending.H:84
amrex::Real Real
Definition: ERF_ShocInterface.H:19