conatus.problems.rotating_shell_convection¶
- conatus.problems.rotating_shell_convection(*, Nphi, Ntheta, Nr, eta, Ra, E, Pr, dealias)[source]¶
Rotating Boussinesq convection in a spherical shell (Christensen et al. 2001 geometry and units, non-magnetic), IVP.
Gap D = r_o - r_i = 1, radius ratio r_i / r_o =
eta(radius_ratio=is its deprecated v0.1 name); viscous time D^2/nu; temperature perturbation theta = T - T0 about the conduction profile T0 = r_i r_o / r - r_i (T = 1 at r_i, 0 at r_o); gravity g ~ r / r_o. Momentum divided by E = nu / (Omega D^2):dt(u) - lap(u) + grad(p)/E - (Ra / (E r_o)) theta r e_r = -u.grad(u) - (2/E) e_z x u, div(u) = 0, dt(theta) + u.grad(T0) - lap(theta)/Pr = -u.grad(theta), u = 0 and theta = 0 at r = r_i and r = r_o (no slip, fixed temperature).
Ra = alpha g_0 DeltaT D / (nu Omega) (Christensen’s modified Rayleigh number), Pr = nu/kappa. First-order tau form: tau_1 lifted in the derivative basis
lam=1inside the gradient, tau_2 one basis higher (lam=2) in the equation – the Dedalus shell examples lift both inlam=1, which gives a spurious growing tau mode from N_r ~ 48 (timestep/tau_modes.py); the Coriolis term is explicit (RHS): its rate 2/E bounds the time step of an explicit scheme. NCC datarvec(r e_r),ez(e_z = cos(theta) e_r - sin(theta) e_theta) andgT0(grad T0). Bases: RealFourier(phi, Nphi) x SphereBasis(theta, Ntheta) x ShellBasis(r, Nr).extras["initial_theta"]: the benchmark’s initial perturbation, eq. (9) (m = 4, A = 0.1).Validation reference: Christensen et al. (2001), PEPI 128, 25, case 0 (eta = 0.35, E = 1e-3, Pr = 1, Ra = 100): E_kin = 58.348 +- 0.050, drift frequency 0.1824 +- 0.005 (Table 4); this formulation gave E_kin = 58.347, drift 0.1820 (run preliminary). Linear onset at these E, Pr: Ra_c = 55.904299, m_c = 4 (see
rotating_shell_convection_evp()).- Parameters:
Nphi (int)
Ntheta (int)
Nr (int)
eta (float)
Ra (float)
E (float)
Pr (float)
dealias (float)
- Return type: