conatus.problems.channel

conatus.problems.channel(*, Nx, Ny, Nz, Lx, Lz, Re, pressure_gradient, dealias)[source]

3D plane channel (Poiseuille) flow, incompressible Navier–Stokes, as an IVP.

Equations (half-height h = 1, walls at y = -1, +1; x streamwise, z spanwise, both periodic):

dt(u) - lap(u)/Re + grad(p) = -u.grad(u) + G e_x,     div(u) = 0,
u = 0 at y = -1 and y = +1.

Units: length h, velocity U_c = laminar centreline velocity, Re = U_c h / nu. The flow is driven by the declared constant pressure gradient G (pressure_gradient): the laminar solution is U = (G Re / 2)(1 - y^2), so G = 2/Re gives U = 1 - y^2 (centreline velocity 1). Pressure by generalized tau (the top continuity row carries e_y.tu2, tp fixes the pressure level with integ(p) = 0), as in docs/site/tutorials/code/t02a_rayleigh_benard_cpu.py. Bases: RealFourier(x, Nx, (0, Lx)) x Chebyshev(y, Ny, (-1, 1)) x RealFourier(z, Nz, (0, Lz)).

Validation reference: the laminar state is linearly stable below Re_c = 5772.22 (Orszag 1971, J. Fluid Mech. 50, 689); least-stable 2D mode at Re = 10000, alpha = 1: c = 0.23752649 + 0.00373967i. Checked on the Orr–Sommerfeld form, channel_evp() (tests/problems/test_problems_shear.py).

Parameters:
  • Nx (int)

  • Ny (int)

  • Nz (int)

  • Lx (float)

  • Lz (float)

  • Re (float)

  • pressure_gradient (float)

  • dealias (float)

Return type:

Ready