@@ -57,6 +57,8 @@ function entrainment(
57
57
:: PiGroupsEntrainment ,
58
58
)
59
59
FT = eltype (thermo_params)
60
+ entr_mult_limiter_coeff = CAP. entr_mult_limiter_coeff (turbconv_params)
61
+
60
62
if ᶜaʲ <= FT (0 )
61
63
return FT (0 )
62
64
else
@@ -68,14 +70,15 @@ function entrainment(
68
70
# non-dimensional pi-groups
69
71
Π₁ = (ᶜz - z_sfc) * (ᶜbuoyʲ - ᶜbuoy⁰) / ((ᶜwʲ - ᶜw⁰)^ 2 + eps (FT)) / 100
70
72
Π₂ = max (ᶜtke⁰, 0 ) / ((ᶜwʲ - ᶜw⁰)^ 2 + eps (FT)) / 2
71
- Π₃ = sqrt (ᶜaʲ)
73
+ Π₃ = sqrt (max ( ᶜaʲ, 0 ) )
72
74
Π₄ = ᶜRHʲ - ᶜRH⁰
73
75
Π₅ = (ᶜz - z_sfc) / ref_H
74
76
# Π₁, Π₂ are unbounded, so clip values that blow up
75
77
Π₁ = min (max (Π₁, - 1 ), 1 )
76
78
Π₂ = min (max (Π₂, - 1 ), 1 )
77
79
78
80
entr =
81
+ ((FT (1 ) - min (ᶜaʲ, FT (1 )))^ entr_mult_limiter_coeff) *
79
82
abs (ᶜwʲ - ᶜw⁰) / (ᶜz - z_sfc) * (
80
83
entr_param_vec[1 ] * abs (Π₁) +
81
84
entr_param_vec[2 ] * abs (Π₂) +
@@ -107,6 +110,7 @@ function entrainment(
107
110
:: GeneralizedEntrainment ,
108
111
)
109
112
FT = eltype (thermo_params)
113
+ entr_mult_limiter_coeff = CAP. entr_mult_limiter_coeff (turbconv_params)
110
114
entr_inv_tau = CAP. entr_tau (turbconv_params)
111
115
entr_coeff = CAP. entr_coeff (turbconv_params)
112
116
min_area_limiter_scale = CAP. min_area_limiter_scale (turbconv_params)
@@ -117,9 +121,11 @@ function entrainment(
117
121
min_area_limiter_scale *
118
122
exp (- min_area_limiter_power * (max (ᶜaʲ, 0 ) - a_min))
119
123
entr =
120
- entr_inv_tau +
121
- entr_coeff * abs (ᶜwʲ - ᶜw⁰) / (ᶜz - z_sfc) +
122
- min_area_limiter
124
+ ((FT (1 ) - min (ᶜaʲ, FT (1 )))^ entr_mult_limiter_coeff) * (
125
+ entr_inv_tau +
126
+ entr_coeff * abs (ᶜwʲ - ᶜw⁰) / (ᶜz - z_sfc) +
127
+ min_area_limiter
128
+ )
123
129
124
130
return max (entr, 0 )
125
131
end
@@ -245,7 +251,7 @@ function detrainment(
245
251
# non-dimensional pi-groups
246
252
Π₁ = (ᶜz - z_sfc) * (ᶜbuoyʲ - ᶜbuoy⁰) / ((ᶜwʲ - ᶜw⁰)^ 2 + eps (FT)) / 100
247
253
Π₂ = max (ᶜtke⁰, 0 ) / ((ᶜwʲ - ᶜw⁰)^ 2 + eps (FT)) / 2
248
- Π₃ = sqrt (ᶜaʲ)
254
+ Π₃ = sqrt (max ( ᶜaʲ, 0 ) )
249
255
Π₄ = ᶜRHʲ - ᶜRH⁰
250
256
Π₅ = (ᶜz - z_sfc) / ref_H
251
257
# Π₁, Π₂ are unbounded, so clip values that blow up
0 commit comments