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=1 inside the gradient, tau_2 one basis higher (lam=2) in the equation – the Dedalus shell examples lift both in lam=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 data rvec (r e_r), ez (e_z = cos(theta) e_r - sin(theta) e_theta) and gT0 (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:

Ready