Above Mach 1, You Must Widen to Speed Up — The Laval Nozzle Paradox
When flow crosses sound speed, nozzles and diffusers swap jobs. We trace that one-line identity.
On October 14, 1947, Chuck Yeager's X-1 hit Mach 1.06. What surprised the wind-tunnel crews wasn't the sound barrier itself — it was that diffusers behaved like accelerators on the supersonic side, and nozzles behaved like brakes. This post follows the one-line area–Mach identity that explains the swap, shows why a Laval nozzle has to pinch in the middle, and asks where the shock waves come from. We close with a thirty-line NumPy script that traces the isentropic curve for any nozzle.
Mach number — one ratio that splits the regimes#
The Mach number (flow speed over sound speed ) is more than a velocity scale. Per-unit-volume inertia goes like and elastic stress like , so the square root of their ratio is exactly the Mach number.
Here is the bulk modulus (stiffness against volume change) and is density. So Mach measures how hard the flow is squeezing on the medium's elasticity. As a rule of thumb, keeps density variation under five percent and lets you pretend the fluid is incompressible. Above that, the flow itself starts compressing what it moves through.
Past the sound barrier — from Doppler to the Mach cone#
A still source emits concentric wavefronts. Move the source and the front shrinks ahead, stretches behind — classical Doppler. Push the source to sonic speed and every front piles onto one plane. Push it past sonic and the source overtakes the fronts it has emitted. Their envelope wraps into a cone, and outside that cone no sound ever arrives.
The half-angle comes from pure geometry.
A Mach 2 jet trails a cone with ; a Mach 5 vehicle squeezes it to . Try the simulation below. As you raise the slider from 0.6 to 2.5, watch the moment the wave envelope flips behind the source.
The two key things to notice: the fronts realign into a slanted line right at Mach 1, and the cone tightens as Mach grows further.
The one-line identity — (1−1/Ma²)dρ/ρ + dA/A = 0#
Now to the punchline. Take a steady one-dimensional flow through a duct of varying area . Mass conservation in differential form reads
and the isentropic Euler equation, combined with the sound-speed identity , gives
Eliminating between the two leaves the single line that swallows every paradox.
Sign analysis sweeps everything clean. is density, is area, is the Mach number.
Subsonic (, parenthesis negative): shrinking the area () drops density, so velocity rises. That's the garden hose at your thumb.
Supersonic (, parenthesis positive): every sign flips. A narrower duct now raises density and slows the flow. Trying to squeeze gas faster through a tighter neck actually chokes it. To accelerate, you must let the area grow.
The Laval nozzle — pinching does not always mean speeding up#
This sign flip dictates the Laval shape. To take subsonic gas all the way to supersonic, you first contract to reach sonic at one slim cross-section, then expand. The throat sits exactly at because the only way the identity stays consistent when is if .
Once you fix the throat area , every other section follows from Mach alone.
The same area ratio admits two Mach solutions, one subsonic and one supersonic. Which branch the flow picks depends on the back pressure . Try both knobs below.
Cyan curve: Ma along axis (normalized). Dashed red line: throat. Lower P_b makes the diverging part accelerate to supersonic. Raise P_b above the design and a normal shock appears inside.
Drop the back pressure low enough and the diverging part rides the supersonic branch with Mach climbing past one. Push back pressure above the design value and a normal shock appears somewhere inside the nozzle, slamming the flow back to subsonic.
Following the curve in NumPy#
The same area–Mach formula plus an isentropic pressure ratio fits in thirty lines. We invert the relation by bisection.
import numpy as np
GAMMA = 1.4
def area_mach_relation(M, gamma=GAMMA):
"""A/A* — isentropic area-Mach identity."""
exp = (gamma + 1) / (2 * (gamma - 1))
inner = (2 / (gamma + 1)) * (1 + 0.5 * (gamma - 1) * M ** 2)
return (1 / M) * inner ** exp
def solve_supersonic_branch(area_ratio, gamma=GAMMA, lo=1.0001, hi=25.0):
"""Area ratio -> supersonic Mach (bisection)."""
for _ in range(80):
mid = 0.5 * (lo + hi)
if area_mach_relation(mid, gamma) < area_ratio:
lo = mid
else:
hi = mid
return 0.5 * (lo + hi)
def pressure_ratio_isentropic(M, gamma=GAMMA):
"""p/p0 — static over stagnation pressure."""
return (1 + 0.5 * (gamma - 1) * M ** 2) ** (-gamma / (gamma - 1))
def normal_shock_p2_p1(M1, gamma=GAMMA):
"""Static pressure ratio across a normal shock."""
return 1 + (2 * gamma / (gamma + 1)) * (M1 ** 2 - 1)
A_ratio = 2.5
M_exit = solve_supersonic_branch(A_ratio)
p_exit = pressure_ratio_isentropic(M_exit)
print(f"design exit Ma = {M_exit:.3f}")
print(f"design exit p/p0 = {p_exit:.4f}")
print(f"if Ma1=1.5 normal shock, p2/p1 = {normal_shock_p2_p1(1.5):.3f}")The output:
design exit Ma = 2.443
design exit p/p0 = 0.0633
if Ma1=1.5 normal shock, p2/p1 = 2.458A nozzle with area ratio 2.5 run on design hits Mach 2.44 at the exit and drops static pressure to 6.3 percent of stagnation. Embed a Mach 1.5 normal shock inside it and the pressure jumps by a factor 2.46 while the flow snaps back to subsonic.
Shock waves — the limit of compression#
A compression wave that catches up to itself becomes a shock. The trailing edge heats from the compression, sound speed climbs, the rear overtakes the front. The whole pressure jump collapses onto a sheet a few molecular mean free paths thick — micrometers in air.
The normal-shock pressure jump is zero at Mach 1 and grows quadratically. When back pressure exceeds the design value of a supersonic Laval nozzle, the flow plants a shock inside to bridge the pressure mismatch and decelerates itself. That's the over-expanded regime.
Fascinatingly, the same equation governs the micro-shocks released by collapsing cavitation bubbles, the crack of a whip whose tip just exceeded sound speed, and the heating of meteors entering the atmosphere — different faces of one identity.
Worth keeping#
- The single line explains every nozzle/diffuser role swap.
- The pinched throat of a Laval nozzle is the only cross-section where Mach 1 is allowed; exit Mach and pressure follow from area ratio plus back pressure.
- Shock waves appear where the isentropic assumption breaks. A shock inside a nozzle is the flow telling you back pressure sits above the design point.
Share if you found it helpful.