@@ -13,8 +13,8 @@ using CloudMicrophysics.Microphysics0M: remove_precipitation
1313
1414# Siebesma et al (2003) resolution!
1515# DOI: https://doi.org/10.1175/1520-0469(2003)60<1201:ALESIS>2.0.CO;2
16- Nx = Ny = 32
17- Nz = 40
16+ Nx = Ny = 64
17+ Nz = 75
1818
1919Lx = 6400
2020Ly = 6400
@@ -248,7 +248,7 @@ outputs = merge(model.velocities, model.tracers, (; T, qˡ, qᵛ★))
248248averaged_outputs = NamedTuple (name => Average (outputs[name], dims= (1 , 2 )) for name in keys (outputs))
249249
250250filename = string (" bomex_" , Nx, " _" , Ny, " _" , Nz, " .jld2" )
251- averages_filename = string (" bomex_averages " , Nx, " _" , Ny, " _" , Nz, " .jld2" )
251+ averages_filename = string (" bomex_averages_ " , Nx, " _" , Ny, " _" , Nz, " .jld2" )
252252
253253ow = JLD2Writer (model, outputs; filename,
254254 schedule = TimeInterval (1 minutes),
@@ -258,68 +258,47 @@ simulation.output_writers[:jld2] = ow
258258
259259averages_ow = JLD2Writer (model, averaged_outputs;
260260 filename = averages_filename,
261- . schedule = TimeInterval (1 minutes),
261+ schedule = TimeInterval (1 minutes),
262262 overwrite_existing = true )
263263
264264simulation. output_writers[:avg ] = averages_ow
265265
266266@info " Running BOMEX on grid: \n $grid \n and using model: \n $model "
267267run! (simulation)
268268
269- #=
270269if get (ENV , " CI" , " false" ) == " false" # change values for CI
271- wt = FieldTimeSeries("bomex.jld2", "w")
272- θt = FieldTimeSeries("bomex.jld2" , "θ")
273- Tt = FieldTimeSeries("bomex.jld2" , "T")
274- qt = FieldTimeSeries("bomex.jld2" , "q")
275- qˡt = FieldTimeSeries("bomex.jld2" , "qˡ")
270+
271+ θt = FieldTimeSeries (averages_filename , " θ" )
272+ Tt = FieldTimeSeries (averages_filename , " T" )
273+ qt = FieldTimeSeries (averages_filename , " q" )
274+ qˡt = FieldTimeSeries (averages_filename , " qˡ" )
276275 times = qt. times
277276 Nt = length (θt)
278277
279278 fig = Figure (size= (1200 , 800 ), fontsize= 12 )
280- axθ = Axis(fig[1, 1], xlabel="x (m)", ylabel="z (m)")
281- axq = Axis(fig[1, 2], xlabel="x (m)", ylabel="z (m)")
282- axT = Axis(fig[2, 1], xlabel="x (m)", ylabel="z (m)")
283- axqˡ = Axis(fig[2, 2], xlabel="x (m)", ylabel="z (m)")
284- axw = Axis(fig[3, 1], xlabel="x (m)", ylabel="z (m)")
279+ axθ = Axis (fig[1 , 1 ], xlabel= " θ (K)" , ylabel= " z (m)" )
280+ axq = Axis (fig[1 , 2 ], xlabel= " q (kg/kg)" , ylabel= " z (m)" )
281+ axT = Axis (fig[2 , 1 ], xlabel= " T (K)" , ylabel= " z (m)" )
282+ axqˡ = Axis (fig[2 , 2 ], xlabel= " qˡ (kg/kg)" , ylabel= " z (m)" )
285283
286284 Nt = length (θt)
287- slider = Slider(fig[4 , 1:2], range=1:Nt, startvalue=1)
285+ slider = Slider (fig[3 , 1 : 2 ], range= 1 : Nt, startvalue= 1 )
288286
289287 n = slider. value # Observable(length(θt))
290- wn = @lift view(wt [$n], : , 1, :)
291- θn = @lift view(θt [$n], : , 1, :)
292- qn = @lift view(qt [$n], : , 1, :)
293- Tn = @lift view(Tt [$n], : , 1, :)
294- qˡn = @lift view(qˡt[$n], :, 1, : )
288+ θn = @lift interior (θt [$ n], 1 , 1 , :)
289+ qn = @lift interior (qt [$ n], 1 , 1 , :)
290+ Tn = @lift interior (Tt [$ n], 1 , 1 , :)
291+ qˡn = @lift interior (qˡt [$ n], 1 , 1 , :)
292+ z = znodes (θt )
295293 title = @lift " t = $(prettytime (times[$ n])) "
296294
297295 fig[0 , :] = Label (fig, title, fontsize= 22 , tellwidth= false )
298296
299- Tmin = minimum(Tt)
300- Tmax = maximum(Tt)
301- wlim = maximum(abs, wt) / 2
302- qlim = maximum(abs, qt)
303- qˡlim = maximum(abs, qˡt) / 2
304-
305- Tₛ = θ_bomex(0)
306- Δθ = θ_bomex(Lz) - θ_bomex(0)
307- hmθ = heatmap!(axθ, θn, colorrange=(Tₛ, Tₛ+Δθ))
308- hmq = heatmap!(axq, qn, colorrange=(0, qlim), colormap=:magma)
309- hmT = heatmap!(axT, Tn, colorrange=(Tmin, Tmax))
310- hmqˡ = heatmap!(axqˡ, qˡn, colorrange=(0, qˡlim), colormap=:magma)
311- hmw = heatmap!(axw, wn, colorrange=(-wlim, wlim), colormap=:balance)
312-
313- # Label(fig[0, 1], "θ", tellwidth=false)
314- # Label(fig[0, 2], "q", tellwidth=false)
315- # Label(fig[0, 1], "θ", tellwidth=false)
316- # Label(fig[0, 2], "q", tellwidth=false)
317-
318- Colorbar(fig[1, 0], hmθ, label = "θ [K]", vertical=true)
319- Colorbar(fig[1, 3], hmq, label = "q", vertical=true)
320- Colorbar(fig[2, 0], hmT, label = "T [K]", vertical=true)
321- Colorbar(fig[2, 3], hmqˡ, label = "qˡ", vertical=true)
322- Colorbar(fig[3, 0], hmw, label = "w", vertical=true)
297+ hmθ = lines! (axθ, θn, z)
298+ hmq = lines! (axq, qn, z)
299+ hmT = lines! (axT, Tn, z)
300+ hmqˡ = lines! (axqˡ, qˡn, z)
301+ xlims! (axqˡ, - 1e-4 , 1.5e-3 )
323302
324303 fig
325304
@@ -328,4 +307,65 @@ if get(ENV, "CI", "false") == "false" # change values for CI
328307 n[] = nn
329308 end
330309end
310+
311+ #=
312+ wt = FieldTimeSeries(filename, "w")
313+ θt = FieldTimeSeries(filename, "θ")
314+ Tt = FieldTimeSeries(filename, "T")
315+ qt = FieldTimeSeries(filename, "q")
316+ qˡt = FieldTimeSeries(filename, "qˡ")
317+ times = qt.times
318+ Nt = length(θt)
319+
320+ fig = Figure(size=(1200, 800), fontsize=12)
321+ axθ = Axis(fig[1, 1], xlabel="x (m)", ylabel="z (m)")
322+ axq = Axis(fig[1, 2], xlabel="x (m)", ylabel="z (m)")
323+ axT = Axis(fig[2, 1], xlabel="x (m)", ylabel="z (m)")
324+ axqˡ = Axis(fig[2, 2], xlabel="x (m)", ylabel="z (m)")
325+ axw = Axis(fig[3, 1], xlabel="x (m)", ylabel="z (m)")
326+
327+ Nt = length(θt)
328+ slider = Slider(fig[4, 1:2], range=1:Nt, startvalue=1)
329+
330+ n = slider.value #Observable(length(θt))
331+ wn = @lift view(wt[$n], :, 1, :)
332+ θn = @lift view(θt[$n], :, 1, :)
333+ qn = @lift view(qt[$n], :, 1, :)
334+ Tn = @lift view(Tt[$n], :, 1, :)
335+ qˡn = @lift view(qˡt[$n], :, 1, :)
336+ title = @lift "t = $(prettytime(times[$n]))"
337+
338+ fig[0, :] = Label(fig, title, fontsize=22, tellwidth=false)
339+
340+ Tmin = minimum(Tt)
341+ Tmax = maximum(Tt)
342+ wlim = maximum(abs, wt) / 2
343+ qlim = maximum(abs, qt)
344+ qˡlim = maximum(abs, qˡt) / 2
345+
346+ Tₛ = θ_bomex(0)
347+ Δθ = θ_bomex(Lz) - θ_bomex(0)
348+ hmθ = heatmap!(axθ, θn, colorrange=(Tₛ, Tₛ+Δθ))
349+ hmq = heatmap!(axq, qn, colorrange=(0, qlim), colormap=:magma)
350+ hmT = heatmap!(axT, Tn, colorrange=(Tmin, Tmax))
351+ hmqˡ = heatmap!(axqˡ, qˡn, colorrange=(0, qˡlim), colormap=:magma)
352+ hmw = heatmap!(axw, wn, colorrange=(-wlim, wlim), colormap=:balance)
353+
354+ # Label(fig[0, 1], "θ", tellwidth=false)
355+ # Label(fig[0, 2], "q", tellwidth=false)
356+ # Label(fig[0, 1], "θ", tellwidth=false)
357+ # Label(fig[0, 2], "q", tellwidth=false)
358+
359+ Colorbar(fig[1, 0], hmθ, label = "θ [K]", vertical=true)
360+ Colorbar(fig[1, 3], hmq, label = "q", vertical=true)
361+ Colorbar(fig[2, 0], hmT, label = "T [K]", vertical=true)
362+ Colorbar(fig[2, 3], hmqˡ, label = "qˡ", vertical=true)
363+ Colorbar(fig[3, 0], hmw, label = "w", vertical=true)
364+
365+ fig
366+
367+ CairoMakie.record(fig, "bomex.mp4", 1:Nt, framerate=12) do nn
368+ @info "Drawing frame $nn of $Nt..."
369+ n[] = nn
370+ end
331371=#
0 commit comments