Supersonic Jet: Shock Diamonds
A 2-D compressible CFD simulation of an over-expanded supersonic nozzle, run in OpenFOAM. The same reconfinement shock structure found in jet and rocket engine exhausts, and in jets launched by supermassive black holes, reproduced numerically.
Context
During my PhD and two postdocs I studied reconfinement shocks in AGN jets: the oblique shock structures that form when a jet launched by a supermassive black hole over-expands and the surrounding medium forces it to recollimate. When I started transitioning toward aerospace, I set up this nozzle simulation and the same shock pattern appeared immediately. This project is a direct illustration of how physical intuition built in astrophysics translates to engineering.
Astrophysical scale: 10²⁰ m

AGN jets expand faster than the surrounding medium allows. Oblique shocks form and force the jet to recollimate. These reconfinement shocks appear as bright knots, visible across millions of light years.
Messier 87, JWST NIRCam. © J. Röder, M. Wielgus et al. (2025). Scale bar: 1 000 light years.
Engineering scale: 1 m

When nozzle exit pressure exceeds ambient, the plume over-expands, expansion fans reflect off the jet boundary, and a standing wave pattern forms. These shock diamonds are the exact same pressure-driven reconfinement mechanism, 20 orders of magnitude smaller.
© Swiss Propulsion Laboratory, www.spl.ch
Propulsion & Nozzle Design
Shock diamond spacing and Mach disk formation are direct indicators of nozzle efficiency. Optimising NPR reduces over-expansion losses.
Aeroacoustics
Screech tones and broadband shock-associated noise (BBSAN) are driven by the shock cell structure, so CFD-resolved diamonds feed aeroacoustic models.
Thermal Management
The temperature field downstream of oblique shocks determines heating loads on afterbody structures and ground infrastructure.
Method
The simulation uses rhoCentralFoam, a density-based compressible solver with the Kurganov-Tadmor scheme, specifically designed for supersonic flows with strong shocks. Turbulence is handled by k-ω SST, which stabilises Kelvin-Helmholtz instabilities at the jet shear layer without over-diffusing the shock structure. The domain is 2-D axisymmetric, discretised on a two-block structured mesh and decomposed over 8 cores via MPI.
| Solver | rhoCentralFoam (density-based, Kurganov-Tadmor) |
| Turbulence | k-ω SST (RANS) |
| Geometry | 2-D axisymmetric, 60 m × 8 m, jet radius = 1 m |
| Mesh | 1 200 × 50 (jet) + 1 200 × 140 (ambient), 238 000 cells |
| Parallelisation | 8 cores, MPI (OpenMPI + Scotch decomposition) |
| Nozzle exit | U = 518 m/s, T = 667 K, p = 158 477 Pa, ρ = 0.828 kg/m³ |
| Ambient | p∞ = 101 325 Pa, T∞ = 300 K, ρ∞ = 1.177 kg/m³ |
| NPR | 1.565 (under-expanded → shock diamonds) |
| Farfield BC | waveTransmissive (absorbs outgoing pressure waves) |
| Time scheme | Euler implicit, adaptive Δt, Co < 0.1 |
| Flux scheme | Kurganov-Tadmor with van Leer reconstruction |
Ideal gas · hConstThermo · μ = 1.8 × 10⁻⁵ Pa·s · Pr = 0.72. Farfield uses waveTransmissive to absorb outgoing pressure waves and prevent spurious reflections.
Results
97 snapshots from t = 0.005 s to t = 0.500 s. Select a field and scrub through time, or hit play.

Conclusion
The simulation successfully reproduces shock diamonds consistent with analytical predictions for NPR = 1.565: three visible shock cells before viscous dissipation and turbulent mixing broaden the jet. The schlieren field closely matches what would be observed in a real optical schlieren experiment.
More broadly, this project confirms that the physical intuition I built in computational astrophysics (modeling compressible flows, shocks, and jet instabilities) translates directly to aerospace CFD. It's the same fluid dynamics, just at a very different scale.