-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
WIP add pressure closure file cleanups in entrainment add entr_detr, incomplete move nh_pressure to closures move nh_pressure to closures update tables running with entr in closures running with entr in closures working with entr_detr apply formatter update tables resolve conflicts with yc/call_press_closure remove cleanup_covariance add entr_detr_model + merge turb entr + cleanup fix bug apply formatter
- Loading branch information
yairchn
committed
Aug 10, 2021
1 parent
94a3f72
commit 3fa8046
Showing
7 changed files
with
221 additions
and
333 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
#### Entrainment-Detrainment kernels | ||
""" | ||
entr_detr( | ||
param_set, | ||
w_min, | ||
β, | ||
c_δ, | ||
c_div, | ||
c_μ, | ||
c_μ0, | ||
c_ed_mf, | ||
χ_upd, | ||
c_λ, | ||
εδ_model, | ||
) | ||
Returns the dynamic entrainment and detrainment rates, | ||
as well as the turbulent entrainment rate, following | ||
Cohen et al. (JAMES, 2020), given: | ||
- `param_set`: parameter set | ||
- `w_min`: minimum veritcal velocity | ||
- `β`: sorting power for moist mixing | ||
- `c_δ`: detrainment factor | ||
- `c_div`: divergence factor for bubble case (zero otherwise) | ||
- `c_μ`: logisitc function scale | ||
- `c_μ0`: logisitc function timescale | ||
- `c_ed_mf`: ED-MF coeeficeicent for relating BL tke and velocity scales | ||
- `χ_upd`: updraft mixing fraction | ||
- `c_λ`: | ||
- `εδ_model`: updraft buoyancy | ||
-- Where: | ||
- `εδ_model.b_upd`: updraft buoyancy | ||
- `εδ_model.w_upd`: updraft vertical velocity | ||
- `εδ_model.a_upd`: updraft area fraction | ||
- `εδ_model.a_env`: environment buoyancy | ||
- `εδ_model.b_env`: environment vertical velocity | ||
- `εδ_model.w_env`: environment area fraction | ||
- `εδ_model.ql_up`: updraft liquid water | ||
- `εδ_model.ql_env`: environment liquid water | ||
- `εδ_model.RH_upd`: updraft relative humidity | ||
- `εδ_model.RH_env`: environment relative humidity | ||
- `εδ_model.M`: updraft momentum | ||
- `εδ_model.dMdz`: updraft momentum divergence | ||
- `εδ_model.tke`: env TKE | ||
- `εδ_model.N_up`: total number of updrafts | ||
- `εδ_model.ρ`: referance density | ||
""" | ||
function entr_detr(param_set, w_min, β, c_δ, c_div, c_μ, c_μ0, c_ed_mf, χ_upd, c_λ, ε_t, εδ_model) | ||
|
||
l = zeros(2) | ||
c_ε = CPEDMF.c_ε(param_set) | ||
|
||
if (εδ_model.ql_upd + εδ_model.ql_env) == 0.0 | ||
c_δ = 0.0 | ||
end | ||
|
||
Δw = εδ_model.w_upd - εδ_model.w_env | ||
if Δw < 0.0 | ||
Δw -= w_min | ||
else | ||
Δw += w_min | ||
end | ||
|
||
Δb = (εδ_model.b_upd - εδ_model.b_env) | ||
|
||
D_ε, D_δ, M_δ, M_ε = nondimensional_exchange_functions(c_ε, c_δ, c_μ, c_μ0, β, χ_upd, Δw, Δb, εδ_model) | ||
|
||
l[1] = c_λ * fabs(Δb / sqrt(εδ_model.tke + 1e-8)) | ||
l[2] = fabs(Δb / Δw) | ||
λ = lamb_smooth_minimum(l, 0.1, 0.0005) | ||
|
||
MdMdz = fmax(εδ_model.dMdz / fmax(εδ_model.M, 1e-12), 0.0) | ||
MdMdz = fmax(-εδ_model.dMdz / fmax(εδ_model.M, 1e-12), 0.0) | ||
|
||
|
||
|
||
# turbulent entrainment | ||
k_ε = εδ_model.a_upd * ε_t * sqrt(fmax(εδ_model.tke, 0.0)) * εδ_model.R_up | ||
ε_turb = (2.0 / εδ_model.R_up^2.0) * k_ε / (εδ_model.w_upd * εδ_model.a_upd) | ||
|
||
ε_dyn = λ / Δw * (c_ε * D_ε + c_δ * M_ε) + MdMdz * c_div | ||
δ_dyn = λ / Δw * (c_ε * D_δ + c_δ * M_δ) + MdMdz * c_div | ||
|
||
return ε_dyn, δ_dyn, ε_turb, k_ε | ||
end |
Oops, something went wrong.