45RHO = np.where(np.arange(NZ) < NZ // 2, 1000.0, 1.0)[
None,
None, :] * np.ones((N, N, NZ))
49 s = (pf.SolverColocated
if grid ==
"colo" else pf.Solver)(N, N, NZ)
53 s.set_advection(
False)
54 s.set_domain_bc(
"-z",
"wall")
55 s.set_domain_bc(
"+z",
"wall")
57 s.set_collocated_scheme(
"gauge-exact")
58 s.set_pressure_geometry(
F(np.full((N, N, NZ), 10.0)))
60 for nm, a
in ((
"force_x", 0 * RHO), (
"force_y", 0 * RHO), (
"force_z", -RHO * G)):
62 s.diagnostics.exchange_field(nm)
64 s.set_field(
"rho",
F(RHO))
65 s.diagnostics.exchange_field(
"rho")
66 s.diagnostics.set_density_mode(
"variable")
68 s.set_balanced_force_projection(bfp)
69 s.set_pressure_chebyshev(
True, 2000, 1e-12)