This test case features a strange hump on top of the bubble and should be worth looking at

The most complicated part actually is the computation of the hydrostatic initial condition.
We can do it as in #2, cf.
|
function moist_state(y, dz, y0, r_t0, theta_e0, |
or, alternatively, as done here:
https://github.com/trixi-framework/Trixi.jl/blob/cadf32b2f617acc239a53542ba0e5597e7c5cc0b/examples/structured_2d_dgsem/elixir_eulermultimoist_warm_bubble.jl#L19
The latter was adopted from a Fortran code by one of the authors of the paper. It does not require NLSolve, but in the end I did not notice a significant difference.
This test case features a strange hump on top of the bubble and should be worth looking at

The most complicated part actually is the computation of the hydrostatic initial condition.
We can do it as in #2, cf.
TrixiAtmo.jl/examples/elixir_moist_euler_moist_bubble.jl
Line 12 in f870c3a
or, alternatively, as done here:
https://github.com/trixi-framework/Trixi.jl/blob/cadf32b2f617acc239a53542ba0e5597e7c5cc0b/examples/structured_2d_dgsem/elixir_eulermultimoist_warm_bubble.jl#L19
The latter was adopted from a Fortran code by one of the authors of the paper. It does not require NLSolve, but in the end I did not notice a significant difference.