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,tpfixes 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: