Compressible Flow, Shock Waves & Supersonic Flight
When speed approaches and exceeds sound. Learn Mach regimes, isentropic relations for temperature, pressure and density, stagnation conditions, the area–Mach relation and converging-diverging nozzles, normal and oblique shocks, Mach waves and cones, expansion fans, critical Mach and drag divergence, sweep and area rule, sonic boom and aerodynamic heating — with Python for isentropic flow and normal shocks.
Below about Mach 0.3 air density hardly changes and flow is treated as incompressible. Faster, pressure changes compress the air significantly, and at Mach 1 information (pressure waves) can no longer travel upstream: the flow must adjust abruptly through shock waves.
Compressibility shapes airliner wings (sweep, supercritical airfoils), jet-engine nozzles, supersonic inlets, rockets and re-entry vehicles. It is also why there is a 'sound barrier' in drag, not in physics.
An analogy
Sound waves are like ripples from a boat. A slow boat sends ripples ahead of it; a boat faster than the ripples leaves them piled into a V-shaped wake — the Mach cone. A shock wave is that pile-up: an abrupt jump in pressure the air must pass through.
Mach regimes
Flow behaviour changes with Mach number:
- Subsonic (M < 0.8) — smooth flow, compressibility corrections small below 0.3
- Transonic (0.8–1.2) — local supersonic pockets, shocks, drag rise, buffet
- Supersonic (1.2–5) — shock and expansion waves, wave drag
- Hypersonic (> 5) — strong heating, thin shock layers, real-gas effects
Isentropic flow and nozzles
Without friction or shocks, flow is isentropic and stagnation properties stay constant. In a duct, subsonic flow speeds up in a converging section and supersonic flow speeds up in a diverging one; the sonic point sits at the throat. Converging–diverging (de Laval) nozzles therefore accelerate rocket and jet exhaust to supersonic speed; the exit area ratio A/A* sets the exit Mach number.
Shock and expansion waves
A normal shock drops the flow from supersonic to subsonic with jumps in pressure, temperature and density and a loss of stagnation pressure (entropy rise). Oblique shocks at wedges and cones turn the flow with smaller losses. Expansion fans (Prandtl–Meyer) turn supersonic flow around convex corners isentropically. Weak disturbances form Mach waves at angle μ = sin⁻¹(1/M).
Transonic design, boom and heating
Above the critical Mach number, local supersonic regions end in shocks that thicken the boundary layer and cause drag divergence. Designers sweep wings (the normal Mach component falls as M cos Λ), use supercritical airfoils, and shape the fuselage by the area rule. Sonic boom (the N-wave reaching the ground) restricts overland supersonic flight; low-boom shaping (NASA X-59) aims to soften it. At hypersonic speed, aerodynamic heating dominates design: ablative heat shields, ceramic tiles and active cooling.
Formulas
- Stagnation temperature:
T₀/T = 1 + (γ−1)/2·M² - Isentropic pressure & density:
p₀/p = (T₀/T)^(γ/(γ−1)); ρ₀/ρ = (T₀/T)^(1/(γ−1)) - Area–Mach relation:
A/A* = (1/M)·[(2/(γ+1))(1 + (γ−1)/2·M²)]^((γ+1)/(2(γ−1))) - Normal shock:
M₂² = (1 + (γ−1)/2·M₁²)/(γM₁² − (γ−1)/2); p₂/p₁ = 1 + 2γ/(γ+1)·(M₁² − 1) - Mach angle:
μ = sin⁻¹(1/M) - Prandtl–Glauert:
C_p = C_p,0 / √(1 − M∞²) (subsonic)
Worked example: Stagnation temperature
Given: M = 3, T = 216.65 K
Find: T₀.
- 216.65 × (1 + 0.2 × 9)
Answer: 606.6 K (333 °C)
Worked example: Nozzle exit
Given: A_exit/A_throat = 4.235
Find: Supersonic exit Mach.
- Solve area–Mach relation
Answer: M = 3.0
Worked example: Mach cone
Given: Aircraft at M = 2
Find: Mach angle.
- sin⁻¹(1/2)
Answer: 30°
Isentropic relations and a normal shock
import math
g = 1.4
def isentropic(M):
T = 1 + (g - 1) / 2 * M * M
return T, T ** (g / (g - 1)), T ** (1 / (g - 1)) # T0/T, p0/p, rho0/rho
def area_ratio(M):
return (1 / M) * ((2 / (g + 1)) * (1 + (g - 1) / 2 * M * M)) ** ((g + 1) / (2 * (g - 1)))
def normal_shock(M1):
M2 = math.sqrt((1 + (g - 1) / 2 * M1**2) / (g * M1**2 - (g - 1) / 2))
p21 = 1 + 2 * g / (g + 1) * (M1**2 - 1)
t, p01, r = isentropic(M1); t2, p02, r2 = isentropic(M2)
p0_ratio = p21 * p02 / p01
return M2, p21, p0_ratio
for M in (0.5, 1.0, 2.0, 3.0):
T, p, r = isentropic(M)
print(f"M={M}: T0/T={T:.3f} p0/p={p:.3f} A/A*={area_ratio(M):.3f}")
M2, p21, p0r = normal_shock(2.0)
print(f"normal shock at M1=2: M2={M2:.3f}, p2/p1={p21:.3f}, p02/p01={p0r:.4f}")
print(f"Mach angle at M=2: {math.degrees(math.asin(1/2)):.1f} deg")
# M=0.5: T0/T=1.050 p0/p=1.186 A/A*=1.340
# M=1.0: T0/T=1.200 p0/p=1.893 A/A*=1.000
# M=2.0: T0/T=1.800 p0/p=7.824 A/A*=1.688
# M=3.0: T0/T=2.800 p0/p=36.733 A/A*=4.235
# normal shock at M1=2: M2=0.577, p2/p1=4.500, p02/p01=0.7209
# Mach angle at M=2: 30.0 degAt Mach 3 the stagnation temperature is 2.8× ambient — at 216 K that's about 600 K (330 °C) on the nose, why the SR-71 used titanium. A normal shock at Mach 2 destroys 28% of total pressure, so supersonic inlets use several oblique shocks instead.
Common mistakes
- Wrong: Using Bernoulli's incompressible equation above M 0.3. — Right: Use isentropic relations.
- Wrong: Thinking a nozzle always accelerates flow. — Right: Depends on subsonic vs supersonic.
- Wrong: Ignoring total-pressure loss in shocks. — Right: Shock losses cost thrust and range.
Applications
- Airliners: Swept, supercritical wings for M 0.78–0.85.
- Rocket nozzles: Large expansion ratios for vacuum Isp.
- Supersonic inlets: Ramps and cones to decelerate with oblique shocks.
- Re-entry: Blunt bodies push shocks away to reduce heating.
Key takeaways
- T₀/T = 1 + 0.2M² for air.
- C-D nozzles reach supersonic speed at the throat.
- Shocks lose total pressure.
- Sweep and supercritical airfoils delay drag rise.
Going further
- Method of characteristics: Designing shock-free supersonic nozzles.
- Hypersonic real-gas effects: Dissociation and ionisation above ~M 8.
- Low-boom design: Shaping to reduce ground boom (NASA X-59 QueSST).