A whole velocity field, not a handful of states.
Every other model in this portfolio tracks a few variables in time. Fluid flow is different: it's a field — velocity and pressure at every point in space, coupled by a partial differential equation, evolving together. Solving it on a grid is computational fluid dynamics, the domain of COMSOL and ANSYS Fluent. This program builds a self-contained solver from scratch and uses it to reproduce the single most recognizable result in the field — the vortex street that peels off a cylinder in a flowing stream — then validates it against textbook benchmarks.

Get the physics right on a problem you can check.
The solver is a Lattice-Boltzmann method — a kinetic, particle-distribution route to the incompressible Navier-Stokes equations that is explicit, local and robust where a direct pressure solve is finicky. Before trusting it on anything complex, the program validates it on pressure-driven channel flow, where the exact answer is a parabola: the simulated profile matches the analytic one to 0.27%. A solver that nails the case you can check on paper is one you can believe on the case you can't.


The wake doesn't always shed — until it does.
At low Reynolds number the flow behind the cylinder is a steady, symmetric pair of recirculating bubbles. Raise the Reynolds number past a critical value and that symmetry breaks: the wake goes unstable and begins to shed vortices at a clean periodic frequency — a Hopf bifurcation in the flow itself. The program sweeps the Reynolds number and catches the transition, the wake oscillation amplitude jumping from essentially zero to fully developed shedding.

Shedding leaves a fingerprint on the forces.
The vortex street isn't just pretty — it's measurable. Probe the wake and its velocity oscillates at a frequency that, made dimensionless, is the Strouhal number ≈ 0.2, the value every fluids textbook quotes. And the shedding shakes the cylinder: the lift force oscillates at the shedding frequency while the drag ripples at exactly twice it — the von Kármán signature, and the reason chimneys, cables and bridge decks need to be designed against vortex-induced vibration.

The other canonical test, passed too.
The lid-driven cavity — fluid in a box dragged by a moving top lid — is the other standard CFD validation case, with decades of published reference solutions. The solver produces the expected primary recirculating vortex, its centre landing right where the literature (Ghia et al.) puts it. Two canonical benchmarks passed, from one self-contained solver written in the notebook.

Every number re-derived at sign-off.
The V&V notebook rebuilds the solver from scratch and re-derives each requirement against theory and benchmark, printing a PASS/FAIL board.
| Result | Requirement | |
|---|---|---|
| Poiseuille profile vs analytic | 0.27% | R-01 < 2% |
| Vortex-shedding amplitude / U₀ | 0.87 | R-02 |
| Strouhal number | 0.20 | R-03 ≈ 0.15–0.2 |
| Drag coefficient / signature | 0.94; drag = 2× lift | R-04 |
| Cavity primary-vortex centre | (0.61, 0.72) | R-05 |
A real field solver, at teaching fidelity.
The deliverable is ten notebooks and the dossier — a discretized PDE field, not an acausal lumped network, so there's no custom block or canvas. The solver is 2D incompressible, low-Mach Lattice-Boltzmann with a single-relaxation-time collision; the grid resolution is modest, the cylinder uses a staircase bounce-back boundary, the drag coefficients are indicative rather than publication-validated, and there's no turbulence model. What the program proves is the capability the portfolio most lacked — solving a partial differential equation as a spatial field on a grid — with a self-contained solver (no external CFD dependency) that reproduces the vortex street, the Strouhal number, the force signature, and two canonical benchmarks, every number re-runnable.
Simulate your own flow.
Book a walkthrough and we'll set up your geometry, your Reynolds number and your boundary conditions, and run the field solve and force studies live.
