All Projects
Self-Directed Research · 2025 – Present

CFD Solver Suite — Cavity, Cylinder & Airfoil

A structured Python solver programme — from 1-D diffusion to validated lid-driven cavity flow (Ghia et al., 1982), von Kármán cylinder wake, and NACA 0012 airfoil — 21 working notebooks.

PythonNumPyNavier-StokesFDMFVMLid-Driven CavityImmersed BoundaryNACA 0012

Governing Equations

Momentum
ρ(ut+uu)=p+μ2u+f\rho \left( \frac{\partial \mathbf{u}}{\partial t} + \mathbf{u} \cdot \nabla \mathbf{u} \right) = -\nabla p + \mu \nabla^2 \mathbf{u} + \mathbf{f}
Continuity
u=0\nabla \cdot \mathbf{u} = 0

Methodology

Each solver stage is implemented and validated before the next. The programme covers 1-D diffusion (FTCS, BTCS, Crank–Nicolson), 2-D scalar transport, FVM for 1-D scalars, and incompressible NS via the projection method. The lid-driven cavity solver (41×41 grid, Re=100) was validated against the benchmark data of Ghia et al. (1982), confirming correct u and v-velocity profiles. Flow over a cylinder (220×100 grid) uses the immersed boundary method and captures the von Kármán vortex street at Re=100. The NACA 0012 airfoil solver (220×100 grid, AoA=5°) includes an angle-of-attack sweep to compute lift and drag variation. Module 1 test: 8.5/10; Module 2 test: 10/12 (83%).

Simulation Results

CFD Solver Suite — Cavity, Cylinder & Airfoil simulation output