31 #ifndef ERF_PBL_SCALE_AWARE_BLENDING_H
32 #define ERF_PBL_SCALE_AWARE_BLENDING_H
34 #include <AMReX_REAL.H>
35 #include <AMReX_GpuQualifiers.H>
50 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
54 if (L_blend <= 0.0)
return 1.0;
56 return 1.0 / (1.0 + r * r);
70 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
76 return Lmix * Lmix * std::sqrt(2.0 * amrex::max(SmnSmn,
amrex::Real(0.0)));
90 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
119 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
126 bool use_smag) noexcept
128 if (L_blend <= 0.0)
return K_h;
134 if (use_smag && SmnSmn >= 0.0) {
139 return amrex::min(K_blend, K_max);
const Real dx
Definition: ERF_InitCustomPert_ABL.H:23
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:120
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:51
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:91
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:71
amrex::Real Real
Definition: ERF_ShocInterface.H:19