MEC-370 · Lesson 10 of 12 · 27 min
Normal and oblique shocks
Lesson 9 left a puzzle. A converging-diverging nozzle has two isentropic solutions for a given area ratio, a subsonic one and a supersonic one, and each matches only one back pressure. For any back pressure in between, no smooth solution exists. Nature resolves the puzzle with a shock wave: a very thin region, a few molecular mean free paths thick, across which the pressure, temperature and density jump and the velocity drops from supersonic to subsonic. Shocks appear in supersonic nozzles, in the discharge of relief valves and blowdown lines, ahead of supersonic aircraft and projectiles, in gas-turbine inlets and in explosions. This lesson develops the relations across normal and oblique shocks and uses them to locate a shock in the nozzle of the university's teaching tunnel, where Jun ran laboratory experiments during his compressible flow course.
The normal shock
A normal shock is perpendicular to the flow. Treat it as a discontinuity and apply the conservation laws to a thin control volume that encloses it. Because the volume has negligible thickness, there is no area change, no heat transfer and no work. Mass, momentum and energy give:
Together with the ideal gas law, these three equations have two solutions: the trivial one in which nothing changes, and a shock. For an ideal gas with constant k, the jump conditions depend only on the upstream Mach number:
The temperature ratio is the pressure ratio divided by the density ratio. The stagnation temperature does not change, because the shock is adiabatic, but the stagnation pressure falls, because the shock is irreversible. Its ratio follows from the other relations and is a direct measure of the entropy rise:
# Normal and oblique shocks; locating a shock in the laboratory nozzle
import math
k = 1.4
def normal_shock(M1):
M2 = math.sqrt((1 + (k - 1) / 2 * M1**2) / (k * M1**2 - (k - 1) / 2))
p21 = 1 + 2 * k / (k + 1) * (M1**2 - 1)
r21 = (k + 1) * M1**2 / ((k - 1) * M1**2 + 2)
T21 = p21 / r21
p0r = (r21 ** (k / (k - 1))) * ((1 / p21) ** (1 / (k - 1))) # p02/p01
return M2, p21, r21, T21, p0r
print(" M1 M2 p2/p1 rho2/rho1 T2/T1 p02/p01")
for M1 in (1.1, 1.5, 2.0, 2.5, 3.0):
M2, p21, r21, T21, p0r = normal_shock(M1)
print(f" {M1:3.1f} {M2:.4f} {p21:6.3f} {r21:6.3f} {T21:6.3f} {p0r:.4f}")
# Entropy rise across a Mach 2 shock
R = 287.0
p0r = normal_shock(2.0)[4]
print(f"Entropy rise across a Mach 2 shock: {-R*math.log(p0r):.1f} J/(kg.K)")
def A_ratio(M): return (1 / M) * ((2 / (k + 1)) * (1 + (k - 1) / 2 * M**2)) ** ((k + 1) / (2 * (k - 1)))
def M_sub(Ar):
lo, hi = 1e-6, 1.0
for _ in range(200):
mid = (lo + hi) / 2
if A_ratio(mid) > Ar: lo = mid
else: hi = mid
return (lo + hi) / 2
def M_sup(Ar):
lo, hi = 1.0, 10.0
for _ in range(200):
mid = (lo + hi) / 2
if A_ratio(mid) < Ar: lo = mid
else: hi = mid
return (lo + hi) / 2
pr = lambda M: (1 + (k - 1) / 2 * M**2) ** (-k / (k - 1))
# Nozzle with Ae/At = 1.6875 (design exit Mach 2): back-pressure ratios that mark the regimes
Ae = 1.6875
pb1 = pr(M_sub(Ae)); pb3 = pr(2.0)
M2e, p21, *_ = normal_shock(2.0)
pb2 = pb3 * p21
print(f"\nNozzle Ae/At = {Ae}: choked subsonic exit at pb/p0 = {pb1:.4f}; shock at the exit at {pb2:.4f}; design (shock-free) at {pb3:.4f}")
# Find where a normal shock sits for pb/p0 = 0.75 (area ratio at the shock, by bisection)
target = 0.75
lo, hi = 1.0001, Ae
for _ in range(100):
As = (lo + hi) / 2
M1 = M_sup(As)
M2, p21, r21, T21, p0r = normal_shock(M1)
# after the shock: new sonic area A2* = A*/p0r; exit is subsonic
Me = M_sub(Ae * p0r)
pe = pr(Me) * p0r
if pe > target: lo = As
else: hi = As
print(f"Back pressure {target} p0: shock where A/A* = {As:.3f} (M1 = {M1:.2f}), exit Mach {Me:.3f}")
# Oblique shock on a 10 degree wedge at Mach 2: solve the theta-beta-M relation (weak solution)
M1, theta = 2.0, math.radians(10)
f = lambda b: math.atan(2 / math.tan(b) * (M1**2 * math.sin(b)**2 - 1) / (M1**2 * (k + math.cos(2 * b)) + 2)) - theta
lo, hi = math.asin(1 / M1) + 1e-6, math.radians(64)
for _ in range(100):
mid = (lo + hi) / 2
if f(mid) > 0: hi = mid
else: lo = mid
beta = mid
Mn1 = M1 * math.sin(beta)
Mn2, p21, *_ = normal_shock(Mn1)
M2 = Mn2 / math.sin(beta - theta)
print(f"\nWedge 10 deg at Mach 2: shock angle {math.degrees(beta):.1f} deg, normal Mach {Mn1:.3f}, p2/p1 = {p21:.3f}, M2 = {M2:.2f}")M1 M2 p2/p1 rho2/rho1 T2/T1 p02/p01 1.1 0.9118 1.245 1.169 1.065 0.9989 1.5 0.7011 2.458 1.862 1.320 0.9298 2.0 0.5774 4.500 2.667 1.687 0.7209 2.5 0.5130 7.125 3.333 2.137 0.4990 3.0 0.4752 10.333 3.857 2.679 0.3283 Entropy rise across a Mach 2 shock: 93.9 J/(kg.K) Nozzle Ae/At = 1.6875: choked subsonic exit at pb/p0 = 0.9088; shock at the exit at 0.5751; design (shock-free) at 0.1278 Back pressure 0.75 p0: shock where A/A* = 1.326 (M1 = 1.69), exit Mach 0.448 Wedge 10 deg at Mach 2: shock angle 39.3 deg, normal Mach 1.267, p2/p1 = 1.707, M2 = 1.64
The table shows how quickly shocks strengthen with Mach number. At Mach 1.1 the pressure rises by about 25 percent and the stagnation pressure loss is only 0.1 percent: a weak shock is nearly isentropic. At Mach 2 the pressure jumps by a factor of 4.5, the temperature by 1.69 and the stagnation pressure falls by 28 percent. At Mach 3 the pressure rises tenfold and two thirds of the stagnation pressure is lost. The density ratio, however, never exceeds (k + 1)/(k − 1), which is 6 for air, no matter how strong the shock.
Why shocks only compress
Mathematically, the jump relations also allow an expansion shock, in which a subsonic flow jumps to supersonic and the pressure falls. The second law of thermodynamics rules it out: the entropy would decrease across it. Only compression shocks, from supersonic to subsonic, are possible. Physically, a compression wave steepens because its high-pressure parts are hotter and travel faster than its leading edge, until the steepening is balanced by viscosity and heat conduction in a very thin layer. Expansion waves do the opposite: they spread out and stay gradual.
Worked problem
A Mach 2 shock
Air at 30 kPa and 170 K moves at Mach 2.0 and passes through a normal shock. Find the conditions behind it and the loss of stagnation pressure.
Show solution
- From the table: \(M_2 = 0.577\), \(p_2 = 4.50 \times 30 = 135\) kPa, \(T_2 = 1.687 \times 170 = 287\) K.
- Upstream stagnation pressure: \(p_{01} = 30 \times (1 + 0.2 \times 4)^{3.5} = 30 \times 7.82 = 235\) kPa.
- Downstream: \(p_{02} = 0.721 \times 235 = 169\) kPa; the loss is 66 kPa.
- Velocities: \(V_1 = 2.0\sqrt{1.4 \times 287 \times 170} = 523\) m/s and \(V_2 = 0.577\sqrt{1.4 \times 287 \times 287} = 196\) m/s.
Answer: The shock slows the flow from 523 to 196 m/s and raises its temperature by 117 K. About 28 percent of the stagnation pressure, which represents the ability of the flow to do work, is destroyed.
Shocks in a converging-diverging nozzle
Now return to the teaching tunnel's nozzle, with an exit area 1.6875 times its throat. Holding the supply pressure p₀ and lowering the back pressure, the nozzle passes through a sequence of regimes, which the program quantifies:
While the back pressure is above 0.909 p₀, the flow is subsonic everywhere: it accelerates toward the throat and decelerates in the diverging section, behaving like a venturi. At 0.909 p₀ the throat just reaches Mach 1, and the mass flow reaches its maximum; it stays at that value for every lower back pressure. Between 0.909 p₀ and 0.575 p₀, the flow becomes supersonic downstream of the throat and then passes through a normal shock in the diverging section, after which it is subsonic and decelerates to the exit, where its pressure matches the back pressure. As the back pressure falls, the shock moves downstream. At 0.575 p₀ the shock sits exactly at the exit. Below that, the shock leaves the nozzle: between 0.575 p₀ and the design value 0.128 p₀, the nozzle is overexpanded, and oblique shocks outside the exit raise the pressure to the back pressure. At exactly 0.128 p₀ the nozzle runs at its design condition, with no shocks at all. Below it, the nozzle is underexpanded, and the jet expands further outside the exit through expansion waves.
To find the shock position for a given back pressure, the program guesses the area ratio at which the shock stands, computes the supersonic Mach number just upstream of it, applies the normal shock relations, and continues isentropically from the shock to the exit using the reduced stagnation pressure. Because the stagnation pressure has dropped, the sonic reference area behind the shock is larger: \(A_2^* = A_1^*\,p_{01}/p_{02}\). It adjusts the guess until the computed exit pressure equals the back pressure. For a back pressure of 0.75 p₀, the shock stands where the area is 1.33 times the throat area, the Mach number just upstream is 1.69, and the flow leaves the exit at Mach 0.45.
Worked problem
Exit conditions with a shock at the exit
For the same nozzle, find the back pressure ratio that places the normal shock exactly at the exit plane.
Show solution
- At the exit the supersonic isentropic solution gives \(M_e = 2.0\) and \(p_e/p_0 = 0.1278\).
- A Mach 2 normal shock raises the pressure by 4.5: \(p_b/p_0 = 4.5 \times 0.1278 = 0.575\).
Answer: With a back pressure of 0.575 p₀ the shock sits at the exit. In the laboratory, students see it move toward the exit on a schlieren image as they open the downstream valve and the back pressure falls.
Oblique shocks
When a supersonic flow meets a wedge or a concave corner, it must turn, and it does so through an oblique shock inclined at an angle β to the approaching flow. The trick to analyzing it is to resolve the velocity into components normal and tangential to the shock. The tangential component does not change across the shock, because no force acts along the shock face. The normal component behaves exactly as in a normal shock, with \(M_{n1} = M_1\sin\beta\). The flow deflection θ, the shock angle β and the upstream Mach number are linked by the θ-β-M relation:
For a given M₁ and θ there are usually two solutions, a weak shock and a strong shock. The weak solution, with a smaller β and a supersonic downstream flow, is what normally occurs on wedges and in inlets. If θ exceeds a maximum for the given Mach number, no attached oblique shock is possible; the shock stands off the body as a curved bow shock, normal near the nose. The program solves for a 10° wedge at Mach 2: the shock angle is 39.3°, the normal Mach number is only 1.27, the pressure rises by a factor of 1.71, and the flow behind it stays supersonic at Mach 1.64. Turning the flow through an oblique shock is much less lossy than a normal shock at the same Mach number, which is why supersonic aircraft inlets slow the air in several oblique shocks before a final weak normal shock.
Expansion fans
When a supersonic flow turns away from itself, around a convex corner, it expands rather than compresses, and it does so gradually, through a fan of Mach waves centered on the corner, called a Prandtl-Meyer expansion fan. The flow is isentropic, the Mach number increases and the pressure falls. Combinations of oblique shocks and expansion fans make up the diamond pattern in an underexpanded or overexpanded jet and determine the pressure on supersonic airfoils, which are thin with sharp leading edges to keep their shocks weak.
Shocks in engineering equipment
Shocks are not limited to aircraft and laboratories. The discharge of a safety relief valve on a steam boiler or an air receiver is choked, and the jet leaving it is underexpanded, with shocks and expansion fans; the noise and the reaction force on the outlet piping must be considered in design. Blowdown and vent lines, steam ejectors and gas-pipeline pressure regulators all produce shocks and the noise that comes with them. In gas pipelines and in ventilation ducts, a sudden valve closure can send a pressure wave that steepens into a weak shock as it travels. Explosions and the rupture of pressure vessels produce blast waves, which are strong, spreading shocks; safety codes require receivers and their relief devices precisely because the energy stored in compressed gas is so large.
Worked problem
Energy stored in the air receiver
The filter air-scour system includes a 3 m³ receiver at 800 kPa gauge. Estimate the energy that would be released if the air expanded isentropically to atmospheric pressure, and compare it with the same volume of water at that pressure.
Show solution
- Absolute pressures: about 900 kPa inside and about 96 kPa outside. Isentropic expansion work of an ideal gas: \(W = \frac{p_1 V_1}{k-1}\Big[1 - (p_2/p_1)^{(k-1)/k}\Big]\).
- \[W = \frac{900\,000 \times 3}{0.4}\Big[1 - (96/900)^{0.2857}\Big] = 6.75\times10^6 \times 0.472 = 3.2\ \text{MJ}\]
- For water, the stored elastic energy is about \(V\,\Delta p^2/(2K) = 3 \times 800\,000^2/(2 \times 2.2\times10^9) = 436\) J.
Answer: The air receiver stores about 3 MJ, roughly the energy of 0.8 kg of TNT, while the same volume of water stores less than half a kilojoule. That is why pressure tests of vessels and pipes are done with water wherever possible, and why air testing of water mains is restricted.
In the United States, pressure tests of water mains are normally hydrostatic, following AWWA C600 and C605 and municipal specifications, and OSHA and pressure-vessel rules restrict pneumatic testing because of the stored energy shown in the example.
Common mistakes
MistakeApplying normal shock relations with the flow turning angle.
InsteadFor oblique shocks, apply them to the normal Mach number M₁ sin β.
MistakeAssuming stagnation pressure is constant across a shock.
InsteadStagnation temperature is constant; stagnation pressure falls because the shock is irreversible.
MistakeUsing the original A* behind a shock.
InsteadBehind a shock, A₂* = A₁* p₀₁/p₀₂, which is larger.
MistakeExpecting an expansion shock.
InsteadThe second law allows only compression shocks; expansions are gradual fans.
MistakeTreating a pneumatic pressure test as equivalent to a hydrostatic one.
InsteadCompressed gas stores thousands of times more energy; use water wherever possible.
Summary and key terms
- A normal shock is a thin, irreversible jump from supersonic to subsonic flow, governed by mass, momentum and energy conservation.
- Across a Mach 2 shock in air, M₂ = 0.577, p₂/p₁ = 4.5, T₂/T₁ = 1.69 and p₀₂/p₀₁ = 0.72.
- Stagnation temperature is unchanged across a shock; stagnation pressure falls and entropy rises.
- In a converging-diverging nozzle, back pressures between the choked subsonic and the exit-shock values place a normal shock in the diverging section.
- For the teaching nozzle at p_b = 0.75p₀, the shock stands at A/A* = 1.33 with M₁ = 1.69.
- Oblique shocks turn supersonic flow through the θ-β-M relation and are much less lossy than normal shocks; expansion fans turn it the other way isentropically.
- Shock wave
- A thin region across which a supersonic flow is abruptly compressed and slowed.
- Normal shock
- A shock perpendicular to the flow direction.
- Oblique shock
- A shock inclined to the flow, which turns the flow toward itself.
- Bow shock
- A curved shock that stands off ahead of a blunt body.
- Overexpanded nozzle
- A nozzle whose exit pressure is below the back pressure, producing shocks at or beyond the exit.
- Underexpanded nozzle
- A nozzle whose exit pressure is above the back pressure, producing expansion beyond the exit.
- Expansion fan
- A centered set of Mach waves through which a supersonic flow turns away and expands isentropically.
- Shock angle
- The angle between an oblique shock and the approaching flow.
- Deflection angle
- The angle through which an oblique shock turns the flow.
- Stagnation pressure loss
- The irreversible drop in stagnation pressure across a shock.
Practice problems
Work each problem on paper first, then reveal the answer to check.
Air at Mach 3 passes through a normal shock. Find M₂, p₂/p₁ and p₀₂/p₀₁.
Show answer
0.475, 10.33 and 0.328.
What is the largest density ratio possible across a shock in air?
Show answer
(k + 1)/(k − 1) = 6.
Find the entropy rise across a normal shock at Mach 1.5.
Show answer
−287 ln 0.9298 ≈ 20.9 J/(kg·K).
In the program, change the back pressure to 0.65p₀. Does the shock move upstream or downstream?
Show answer
Downstream, toward the exit, because a lower back pressure requires a stronger shock.
A Mach 2 flow meets a 10° wedge. What is the downstream pressure if p₁ = 50 kPa?
Show answer
1.707 × 50 ≈ 85 kPa.
Why are supersonic aircraft inlets designed with several oblique shocks?
Show answer
Several weak shocks lose far less stagnation pressure than one strong normal shock.
Lesson quiz · 5 questions
Score 60% or more to complete this lesson.
Create a free account to save your progress, take quizzes and earn a certificate.