Skip to content

Commit ec4862a

Browse files
committed
Two working options, bpth missing a term
1 parent 9b5e138 commit ec4862a

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

src/prognostic_equations/advection.jl

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -407,15 +407,50 @@ function edmfx_sgs_vertical_advection_tendency!(
407407
ᶜmseᵣ = (@. lazy(Y.c.sgsʲs.:($$j).q_rai * (TD.internal_energy_liquid(thp, ᶜtsʲs.:($$j)) + TD.gas_constant_air(thp, ᶜtsʲs.:($$j)) * TD.air_temperature(thp, ᶜtsʲs.:($$j)) + ᶜΦ)))
408408
ᶜmseₛ = (@. lazy(Y.c.sgsʲs.:($$j).q_sno * (TD.internal_energy_ice(thp, ᶜtsʲs.:($$j)) + TD.gas_constant_air(thp, ᶜtsʲs.:($$j)) * TD.air_temperature(thp, ᶜtsʲs.:($$j)) + ᶜΦ)))
409409

410+
#=
411+
# option I - RICO works well but we are missing q * mse advective term
412+
#va = vertical_advection(ᶠwₗ³ʲs, (@. lazy(ᶜmseₗ - Y.c.sgsʲs.:($$j).q_liq * Y.c.sgsʲs.:($$j).mse)), edmfx_upwinding)
410413
va = vertical_advection(ᶠwₗ³ʲs, ᶜmseₗ, edmfx_upwinding)
411414
@. Yₜ.c.sgsʲs.:($$j).mse += va
415+
#va = vertical_advection(ᶠwᵢ³ʲs, (@. lazy(ᶜmseᵢ - Y.c.sgsʲs.:($$j).q_ice * Y.c.sgsʲs.:($$j).mse)), edmfx_upwinding)
412416
va = vertical_advection(ᶠwᵢ³ʲs, ᶜmseᵢ, edmfx_upwinding)
413417
@. Yₜ.c.sgsʲs.:($$j).mse += va
418+
#va = vertical_advection(ᶠwᵣ³ʲs, (@. lazy(ᶜmseᵣ - Y.c.sgsʲs.:($$j).q_rai * Y.c.sgsʲs.:($$j).mse)), edmfx_upwinding)
414419
va = vertical_advection(ᶠwᵣ³ʲs, ᶜmseᵣ, edmfx_upwinding)
415420
@. Yₜ.c.sgsʲs.:($$j).mse += va
421+
#va = vertical_advection(ᶠwₛ³ʲs, (@. lazy(ᶜmseₛ - Y.c.sgsʲs.:($$j).q_sno * Y.c.sgsʲs.:($$j).mse)), edmfx_upwinding)
416422
va = vertical_advection(ᶠwₛ³ʲs, ᶜmseₛ, edmfx_upwinding)
417423
@. Yₜ.c.sgsʲs.:($$j).mse += va
418424
425+
va = vertical_advection(ᶠwₗ³ʲs, Y.c.sgsʲs.:($j).mse, edmfx_upwinding)
426+
@. Yₜ.c.sgsʲs.:($$j).mse += va * Y.c.sgsʲs.:($$j).q_liq
427+
va = vertical_advection(ᶠwᵢ³ʲs, Y.c.sgsʲs.:($j).mse, edmfx_upwinding)
428+
@. Yₜ.c.sgsʲs.:($$j).mse += va * Y.c.sgsʲs.:($$j).q_ice
429+
va = vertical_advection(ᶠwᵣ³ʲs, Y.c.sgsʲs.:($j).mse, edmfx_upwinding)
430+
@. Yₜ.c.sgsʲs.:($$j).mse += va * Y.c.sgsʲs.:($$j).q_rai
431+
va = vertical_advection(ᶠwₛ³ʲs, Y.c.sgsʲs.:($j).mse, edmfx_upwinding)
432+
@. Yₜ.c.sgsʲs.:($$j).mse += va * Y.c.sgsʲs.:($$j).q_sno
433+
=#
434+
# option II
435+
# RICO works well but we are missing mse * q_ advection term
436+
va = vertical_advection(ᶠwₗ³ʲs, ᶜmseₗ, edmfx_upwinding)
437+
@. Yₜ.c.sgsʲs.:($$j).mse += va
438+
va = vertical_advection(ᶠwᵢ³ʲs, ᶜmseᵢ, edmfx_upwinding)
439+
@. Yₜ.c.sgsʲs.:($$j).mse += va
440+
va = vertical_advection(ᶠwᵣ³ʲs, ᶜmseᵣ, edmfx_upwinding)
441+
@. Yₜ.c.sgsʲs.:($$j).mse += va
442+
va = vertical_advection(ᶠwₛ³ʲs, ᶜmseₛ, edmfx_upwinding)
443+
@. Yₜ.c.sgsʲs.:($$j).mse += va
444+
#=
445+
va = vertical_advection(ᶠwₗ³ʲs, Y.c.sgsʲs.:($j).q_liq, edmfx_upwinding)
446+
@. Yₜ.c.sgsʲs.:($$j).mse -= Y.c.sgsʲs.:($$j).mse * va
447+
va = vertical_advection(ᶠwᵢ³ʲs, Y.c.sgsʲs.:($j).q_ice, edmfx_upwinding)
448+
@. Yₜ.c.sgsʲs.:($$j).mse -= Y.c.sgsʲs.:($$j).mse * va
449+
va = vertical_advection(ᶠwᵣ³ʲs, Y.c.sgsʲs.:($j).q_rai, edmfx_upwinding)
450+
@. Yₜ.c.sgsʲs.:($$j).mse -= Y.c.sgsʲs.:($$j).mse * va
451+
va = vertical_advection(ᶠwₛ³ʲs, Y.c.sgsʲs.:($j).q_sno, edmfx_upwinding)
452+
@. Yₜ.c.sgsʲs.:($$j).mse -= Y.c.sgsʲs.:($$j).mse * va
453+
=#
419454
# mse, q_tot and moisture tracers terms proportional to 1/ρ̂ ∂zρ̂
420455
ᶜinv_ρ̂ = (@. lazy(divide_by_ρa(FT(1), Y.c.sgsʲs.:($$j).ρa, FT(0), Y.c.ρ, turbconv_model)))
421456
ᶜ∂ρ̂∂zₗ = (@. lazy(upwind_biased_grad(-1 * Geometry.WVector(ᶜwₗʲs.:($$j)), Y.c.sgsʲs.:($$j).ρa)))

0 commit comments

Comments
 (0)