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
66 if (L_blend <= 0.0)
return 1.0;
68 return (r * r) / (1.0 + r * r);
82 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
88 return Lmix * Lmix * std::sqrt(2.0 * amrex::max(SmnSmn,
amrex::Real(0.0)));
102 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
131 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
138 bool use_smag) noexcept
140 if (L_blend <= 0.0)
return K_h;
146 if (use_smag && SmnSmn >= 0.0) {
151 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:132
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:103
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:83
amrex::Real Real
Definition: ERF_ShocInterface.H:19