Skip to content

Commit cdbb42c

Browse files
committed
clean up
1 parent 06940ab commit cdbb42c

File tree

1 file changed

+85
-45
lines changed

1 file changed

+85
-45
lines changed

examples/bomex.jl

Lines changed: 85 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -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

1919
Lx = 6400
2020
Ly = 6400
@@ -248,7 +248,7 @@ outputs = merge(model.velocities, model.tracers, (; T, qˡ, qᵛ★))
248248
averaged_outputs = NamedTuple(name => Average(outputs[name], dims=(1, 2)) for name in keys(outputs))
249249

250250
filename = 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

253253
ow = JLD2Writer(model, outputs; filename,
254254
schedule = TimeInterval(1minutes),
@@ -258,68 +258,47 @@ simulation.output_writers[:jld2] = ow
258258

259259
averages_ow = JLD2Writer(model, averaged_outputs;
260260
filename = averages_filename,
261-
. schedule = TimeInterval(1minutes),
261+
schedule = TimeInterval(1minutes),
262262
overwrite_existing = true)
263263

264264
simulation.output_writers[:avg] = averages_ow
265265

266266
@info "Running BOMEX on grid: \n $grid \n and using model: \n $model"
267267
run!(simulation)
268268

269-
#=
270269
if 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, "")
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
330309
end
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

Comments
 (0)