conatus.problems.pipe

conatus.problems.pipe(*, Nphi, Nr, Nz, Lz, Re, pressure_gradient, dealias)[source]

Pressure-driven pipe flow (Hagen–Poiseuille), incompressible Navier–Stokes, IVP.

Equations (pipe radius 1, z periodic of length Lz):

dt(u) - lap(u)/Re + grad(p) = -u.grad(u) + G e_z,    div(u) = 0,    u = 0 at r = 1.

Units: radius R, centreline velocity U_c of the laminar flow, Re = U_c R / nu (Meseguer & Trefethen 2003). Laminar solution W = (G Re / 4)(1 - r^2): G = 4/Re gives W = 1 - r^2. Bases: RealFourier(phi, Nphi) x DiskBasis(r, Nr, radius 1) x ComplexFourier(z, Nz, (0, Lz)) (the axial basis of a cylinder is ComplexFourier; a real field stores m >= 0, every k_z). The no-slip tau is lifted in the derivative basis of order 2 (lam=2), the pressure gauge tp with integ(p) = 0 (Dedalus disk example, tests/polar/test_polar_ivp_dedalus.py).

Validation reference: linear stability of the laminar flow, pipe_evp(): Meseguer & Trefethen (2003), J. Comput. Phys. 186, 178, Table 1, Re = 1000: (m, k) = (1, 1) centre mode -0.0708640053 + 0.8467498288i, wall mode -0.0911426036 + 0.4691428789i (conjugates of the tabulated values: opposite sign convention of the frequency); (m, k) = (1, 0): -0.0146819706. Linearly stable at every Re.

Parameters:
  • Nphi (int)

  • Nr (int)

  • Nz (int)

  • Lz (float)

  • Re (float)

  • pressure_gradient (float)

  • dealias (float)

Return type:

Ready