acalculator

What changes in a normal shock?

A compressible flow calculator for normal shock waves: type the upstream Mach number (or M₂, or p₂/p₁) and γ. The normal shock calculator gives the downstream Mach number and every ratio across the shock, as in a normal shock table.

Your numbers

I know
Mach number found
M₂ = 0.57735

For M₁ = 2 and γ = 1.4, the flow leaves the shock at M₂ = 0.57735 with p₂/p₁ = 4.5.

Upstream Mach number (M₁)
2
Downstream Mach number (M₂)
0.57735
Static pressure ratio (p₂/p₁)
4.5
Density ratio (ρ₂/ρ₁)
2.66667
Static temperature ratio (T₂/T₁)
1.6875
Velocity ratio (u₂/u₁)
0.375
Total pressure ratio (p₀₂/p₀₁)
0.720874
Pitot pressure ratio (p₀₂/p₁)
5.64044

Mach number found: M₂ = 0.57735. For M₁ = 2 and γ = 1.4, the flow leaves the shock at M₂ = 0.57735 with p₂/p₁ = 4.5.

How to calculate

Normal shock relations for a perfect gas: from the upstream Mach number (or M₂, or p₂/p₁) and γ, the downstream Mach number and the pressure, density, temperature, velocity and total pressure ratios.

Example with the default inputs (I know Upstream Mach M₁, Upstream Mach number (M₁) 2, Ratio of specific heats (γ) 1.4): For M₁ = 2 and γ = 1.4, the flow leaves the shock at M₂ = 0.57735 with p₂/p₁ = 4.5.

Method: M₂² = [(γ − 1)M₁² + 2] ÷ [2γM₁² − (γ − 1)]; p₂/p₁ = [2γM₁² − (γ − 1)] ÷ (γ + 1); ρ₂/ρ₁ = (γ + 1)M₁² ÷ [(γ − 1)M₁² + 2]; T₂/T₁ = (p₂/p₁) ÷ (ρ₂/ρ₁); p₀₂/p₀₁ = (ρ₂/ρ₁)^(γ/(γ − 1)) × (p₁/p₂)^(1/(γ − 1)).

  • A perfect gas with constant γ, in steady one-dimensional flow with no heat added and no friction (NASA).
  • The shock is normal: at a right angle to the flow.
  • Typed numbers are read as exact decimals; M₂ is a root rounded once; the total pressure ratios are 64-bit floats.

Machine-readable copies: Markdown, JSON.

Worked examples

Each example is checked against the calculator on every build.

  1. I know Upstream Mach M₁, Upstream Mach number (M₁) 2, Ratio of specific heats (γ) 1.4 gives Downstream Mach number (M₂) 0.57735, Static pressure ratio (p₂/p₁) 4.5, Density ratio (ρ₂/ρ₁) 2.66667, Static temperature ratio (T₂/T₁) 1.6875, Velocity ratio (u₂/u₁) 0.375, Total pressure ratio (p₀₂/p₀₁) 0.720874, Pitot pressure ratio (p₀₂/p₁) 5.64044, Mach number found M₂ = 0.57735.Source: NASA Glenn Research Center, Normal Shock Wave Equations (M₁² = [(γ − 1)M² + 2] ÷ [2γM² − (γ − 1)]; T₁/T₀ = [2γM² − (γ − 1)][(γ − 1)M² + 2] ÷ [(γ + 1)²M²]; p₁/p₀ = [2γM² − (γ − 1)] ÷ (γ + 1); r₁/r₀ = (γ + 1)M² ÷ [(γ − 1)M² + 2]; pt₁/pt₀ = {(γ + 1)M² ÷ [(γ − 1)M² + 2]}^[γ/(γ − 1)] × {(γ + 1) ÷ [2γM² − (γ − 1)]}^[1/(γ − 1)]; Tt₁/Tt₀ = 1), https://www.grc.nasa.gov/www/k-12/airplane/normal.html (retrieved 2026-10-19); NASA Glenn Research Center, Isentropic Flow Equations (Eq. 6: p/pt = [1 + M²(γ − 1)/2]^−[γ/(γ − 1)]), https://www.grc.nasa.gov/www/k-12/airplane/isentrop.html (retrieved 2026-10-19)
  2. I know Upstream Mach M₁, Upstream Mach number (M₁) 3, Ratio of specific heats (γ) 1.4 gives Downstream Mach number (M₂) 0.475191, Static pressure ratio (p₂/p₁) 10.3333, Density ratio (ρ₂/ρ₁) 3.85714, Static temperature ratio (T₂/T₁) 2.67901, Total pressure ratio (p₀₂/p₀₁) 0.328344, Pitot pressure ratio (p₀₂/p₁) 12.061.Source: NASA Glenn Research Center, Normal Shock Wave Equations (M₁² = [(γ − 1)M² + 2] ÷ [2γM² − (γ − 1)]; T₁/T₀ = [2γM² − (γ − 1)][(γ − 1)M² + 2] ÷ [(γ + 1)²M²]; p₁/p₀ = [2γM² − (γ − 1)] ÷ (γ + 1); r₁/r₀ = (γ + 1)M² ÷ [(γ − 1)M² + 2]; pt₁/pt₀ = {(γ + 1)M² ÷ [(γ − 1)M² + 2]}^[γ/(γ − 1)] × {(γ + 1) ÷ [2γM² − (γ − 1)]}^[1/(γ − 1)]; Tt₁/Tt₀ = 1), https://www.grc.nasa.gov/www/k-12/airplane/normal.html (retrieved 2026-10-19); NASA Glenn Research Center, Isentropic Flow Equations (Eq. 6: p/pt = [1 + M²(γ − 1)/2]^−[γ/(γ − 1)]), https://www.grc.nasa.gov/www/k-12/airplane/isentrop.html (retrieved 2026-10-19)
  3. I know Upstream Mach M₁, Upstream Mach number (M₁) 1, Ratio of specific heats (γ) 1.4 gives Downstream Mach number (M₂) 1, Static pressure ratio (p₂/p₁) 1, Density ratio (ρ₂/ρ₁) 1, Static temperature ratio (T₂/T₁) 1, Total pressure ratio (p₀₂/p₀₁) 1, Pitot pressure ratio (p₀₂/p₁) 1.89293.Source: NASA Glenn Research Center, Normal Shock Wave Equations (M₁² = [(γ − 1)M² + 2] ÷ [2γM² − (γ − 1)]; T₁/T₀ = [2γM² − (γ − 1)][(γ − 1)M² + 2] ÷ [(γ + 1)²M²]; p₁/p₀ = [2γM² − (γ − 1)] ÷ (γ + 1); r₁/r₀ = (γ + 1)M² ÷ [(γ − 1)M² + 2]; pt₁/pt₀ = {(γ + 1)M² ÷ [(γ − 1)M² + 2]}^[γ/(γ − 1)] × {(γ + 1) ÷ [2γM² − (γ − 1)]}^[1/(γ − 1)]; Tt₁/Tt₀ = 1), https://www.grc.nasa.gov/www/k-12/airplane/normal.html (retrieved 2026-10-19); NASA Glenn Research Center, Isentropic Flow Equations (Eq. 6: p/pt = [1 + M²(γ − 1)/2]^−[γ/(γ − 1)]), https://www.grc.nasa.gov/www/k-12/airplane/isentrop.html (retrieved 2026-10-19)
  4. I know Downstream Mach M₂, Downstream Mach number (M₂) 0.5, Ratio of specific heats (γ) 1.4 gives Upstream Mach number (M₁) 2.64575, Static pressure ratio (p₂/p₁) 8, Density ratio (ρ₂/ρ₁) 3.5, Total pressure ratio (p₀₂/p₀₁) 0.443112, Mach number found M₁ = 2.64575.Source: NASA Glenn Research Center, Normal Shock Wave Equations (M₁² = [(γ − 1)M² + 2] ÷ [2γM² − (γ − 1)]; T₁/T₀ = [2γM² − (γ − 1)][(γ − 1)M² + 2] ÷ [(γ + 1)²M²]; p₁/p₀ = [2γM² − (γ − 1)] ÷ (γ + 1); r₁/r₀ = (γ + 1)M² ÷ [(γ − 1)M² + 2]; pt₁/pt₀ = {(γ + 1)M² ÷ [(γ − 1)M² + 2]}^[γ/(γ − 1)] × {(γ + 1) ÷ [2γM² − (γ − 1)]}^[1/(γ − 1)]; Tt₁/Tt₀ = 1), https://www.grc.nasa.gov/www/k-12/airplane/normal.html (retrieved 2026-10-19)
  5. I know Pressure ratio p₂/p₁, Static pressure ratio (p₂/p₁) 4.5, Ratio of specific heats (γ) 1.4 gives Upstream Mach number (M₁) 2, Downstream Mach number (M₂) 0.57735, Mach number found M₁ = 2.Source: NASA Glenn Research Center, Normal Shock Wave Equations (M₁² = [(γ − 1)M² + 2] ÷ [2γM² − (γ − 1)]; T₁/T₀ = [2γM² − (γ − 1)][(γ − 1)M² + 2] ÷ [(γ + 1)²M²]; p₁/p₀ = [2γM² − (γ − 1)] ÷ (γ + 1); r₁/r₀ = (γ + 1)M² ÷ [(γ − 1)M² + 2]; pt₁/pt₀ = {(γ + 1)M² ÷ [(γ − 1)M² + 2]}^[γ/(γ − 1)] × {(γ + 1) ÷ [2γM² − (γ − 1)]}^[1/(γ − 1)]; Tt₁/Tt₀ = 1), https://www.grc.nasa.gov/www/k-12/airplane/normal.html (retrieved 2026-10-19)
  6. I know Upstream Mach M₁, Upstream Mach number (M₁) 1.5, Ratio of specific heats (γ) 1.3 gives Downstream Mach number (M₂) 0.694249, Static pressure ratio (p₂/p₁) 2.41304, Static temperature ratio (T₂/T₁) 1.24732, Total pressure ratio (p₀₂/p₀₁) 0.9261.Source: NASA Glenn Research Center, Normal Shock Wave Equations (M₁² = [(γ − 1)M² + 2] ÷ [2γM² − (γ − 1)]; T₁/T₀ = [2γM² − (γ − 1)][(γ − 1)M² + 2] ÷ [(γ + 1)²M²]; p₁/p₀ = [2γM² − (γ − 1)] ÷ (γ + 1); r₁/r₀ = (γ + 1)M² ÷ [(γ − 1)M² + 2]; pt₁/pt₀ = {(γ + 1)M² ÷ [(γ − 1)M² + 2]}^[γ/(γ − 1)] × {(γ + 1) ÷ [2γM² − (γ − 1)]}^[1/(γ − 1)]; Tt₁/Tt₀ = 1), https://www.grc.nasa.gov/www/k-12/airplane/normal.html (retrieved 2026-10-19)

How it works

A normal shock stands at a right angle to a supersonic flow. Station 1 is just before it and station 2 just after; M₁ is the upstream Mach number and γ the gas's ratio of specific heats. NASA's page names the stations 0 and 1 and writes M for the upstream Mach number. For a perfect gas with constant γ:

  • Downstream Mach number: M₂² = [(γ − 1)M₁² + 2] ÷ [2γM₁² − (γ − 1)].
  • Static pressure ratio: p₂/p₁ = [2γM₁² − (γ − 1)] ÷ (γ + 1).
  • Density ratio: ρ₂/ρ₁ = (γ + 1)M₁² ÷ [(γ − 1)M₁² + 2].
  • Static temperature ratio: T₂/T₁ = [2γM₁² − (γ − 1)][(γ − 1)M₁² + 2] ÷ [(γ + 1)²M₁²].
  • Velocity ratio: u₂/u₁ = ρ₁/ρ₂ = [(γ − 1)M₁² + 2] ÷ [(γ + 1)M₁²], since mass flow is the same on both sides.
  • Total pressure ratio: p₀₂/p₀₁ = (ρ₂/ρ₁)^(γ/(γ − 1)) × [(γ + 1) ÷ (2γM₁² − (γ − 1))]^(1/(γ − 1)). The total temperature does not change.
  • Pitot pressure ratio: p₀₂/p₁ = (p₀₂/p₀₁) × [1 + (γ − 1)M₁²/2]^(γ/(γ − 1)), the isentropic p₀₁/p₁ before the shock.

Choose what you know:

  • Upstream Mach M₁: used as typed.
  • Downstream Mach M₂: the same equation turned round, M₁² = [(γ − 1)M₂² + 2] ÷ [2γM₂² − (γ − 1)].
  • Pressure ratio p₂/p₁: M₁² = [(γ + 1)(p₂/p₁) + (γ − 1)] ÷ (2γ).

The page then works out every ratio from M₁² as above. The answer is M₂ when you typed M₁, and M₁ otherwise.

Rules

  • M₁ from 1 to 100; M₂ above 0 and at most 1; p₂/p₁ from 1 to 10,000; γ from 1.05 to 1.7. Limits include their ends unless stated.
  • No answer when M₂ is too low for any shock, that is when 2γM₂² − (γ − 1) ≤ 0 ("No normal shock gives this M₂: for this γ, M₂ must be above √((γ − 1) ÷ (2γ)).").
  • No answer when M₁ found from M₂ or from p₂/p₁ is above 100, that is when M₁² > 10,000 ("The upstream Mach number would be above 100, beyond this page’s range."). Within these limits it happens only from an M₂ near its lowest value.
  • At M₁ = 1 every ratio across the shock is 1 (M₂, p₂/p₁, ρ₂/ρ₁, T₂/T₁, u₂/u₁ and p₀₂/p₀₁): the shock has no strength. The pitot ratio p₀₂/p₁ is then the isentropic p₀/p = (1 + (γ − 1)/2)^(γ/(γ − 1)), 1.2^3.5 = 1.89293 for γ = 1.4.

Output format

  • The answer reads M₂ = a or M₁ = a, and every number shows to 6 significant figures, rounded half up, with trailing zeros dropped, thousands commas, and from 10¹⁵ up or below 10⁻⁶ as a × 10ⁿ.
  • Typed numbers are read as exact decimals. M₁², p₂/p₁, ρ₂/ρ₁, T₂/T₁ and u₂/u₁ are exact fractions rounded once. M₁ = √(M₁²) and M₂ = √(M₂²) are the true roots of exact fractions, rounded once.
  • The total pressure ratio is exp(L), with L = γ/(γ − 1) × log1p(2(M₁² − 1) ÷ [(γ − 1)M₁² + 2]) − 1/(γ − 1) × log1p(2γ(M₁² − 1) ÷ (γ + 1)); the arguments of log1p are exact fractions rounded once (they are ρ₂/ρ₁ − 1 and p₂/p₁ − 1), and the logarithms and exp are 64-bit floats. The pitot ratio is exp(L + γ/(γ − 1) × log1p((γ − 1)M₁²/2)).
  • The answer sentence reads For M₁ = a and γ = g, the flow leaves the shock at M₂ = b with p₂/p₁ = c., with γ as typed and the other numbers written as their outputs are.

Worked examples by hand

Mach 2 in air (γ = 1.4). (γ − 1)M₁² + 2 = 0.4 × 4 + 2 = 3.6, 2γM₁² − (γ − 1) = 2.8 × 4 − 0.4 = 10.8.

  • M₂² = 3.6 ÷ 10.8 = 1/3, M₂ = 0.57735.
  • p₂/p₁ = 10.8 ÷ 2.4 = 4.5; ρ₂/ρ₁ = 2.4 × 4 ÷ 3.6 = 2.66667; T₂/T₁ = 4.5 ÷ 2.66667 = 1.6875; u₂/u₁ = 3.6 ÷ 9.6 = 0.375.
  • p₀₂/p₀₁ = (8/3)^3.5 × (2.4 ÷ 10.8)^2.5 = 30.9664 × 0.0232792 = 0.720874.
  • p₀₁/p₁ = (1 + 0.2 × 4)^3.5 = 1.8^3.5 = 7.82445, so p₀₂/p₁ = 0.720874 × 7.82445 = 5.64044.

Mach 3 in air. 0.4 × 9 + 2 = 5.6 and 2.8 × 9 − 0.4 = 24.8: M₂² = 5.6 ÷ 24.8 = 7/31, M₂ = 0.475191; p₂/p₁ = 24.8 ÷ 2.4 = 10.3333; ρ₂/ρ₁ = 21.6 ÷ 5.6 = 3.85714; T₂/T₁ = 2.67901; p₀₂/p₀₁ = 0.328344; p₀₂/p₁ = 12.061.

Mach 1. Both brackets are 2.4, so every ratio across the shock is 1 and M₂ = 1. The pitot ratio is the isentropic p₀₂/p₁ = 1.2^3.5 = 1.89293.

From M₂ = 0.5 (γ = 1.4). M₁² = (0.4 × 0.25 + 2) ÷ (2.8 × 0.25 − 0.4) = 2.1 ÷ 0.3 = 7, so M₁ = √7 = 2.64575, with p₂/p₁ = (2.8 × 7 − 0.4) ÷ 2.4 = 8, ρ₂/ρ₁ = 2.4 × 7 ÷ 4.8 = 3.5 and p₀₂/p₀₁ = 0.443112.

From p₂/p₁ = 4.5 (γ = 1.4). M₁² = (2.4 × 4.5 + 0.4) ÷ 2.8 = 11.2 ÷ 2.8 = 4, so M₁ = 2 and M₂ = 0.57735.

Steam or CO₂, γ = 1.3, M₁ = 1.5. 0.3 × 2.25 + 2 = 2.675 and 2.6 × 2.25 − 0.3 = 5.55: M₂² = 2.675 ÷ 5.55 = 107/222, M₂ = 0.694249; p₂/p₁ = 5.55 ÷ 2.3 = 2.41304; T₂/T₁ = 1.24732; p₀₂/p₀₁ = 0.9261.

Other questions people ask

What is a normal shock?

A shock wave at a right angle to a supersonic flow. Across it the flow drops from supersonic to subsonic in a very thin layer, and its pressure, density and temperature jump while its total (stagnation) pressure falls.

How do I find the Mach number after a normal shock?

M₂² = [(γ − 1)M₁² + 2] ÷ [2γM₁² − (γ − 1)]. For air (γ = 1.4) at M₁ = 2: M₂² = (0.4 × 4 + 2) ÷ (2.8 × 4 − 0.4) = 3.6 ÷ 10.8 = 1/3, so M₂ = 0.57735.

What is the pressure ratio across a normal shock?

p₂/p₁ = [2γM₁² − (γ − 1)] ÷ (γ + 1). At Mach 2 in air it is (11.2 − 0.4) ÷ 2.4 = 4.5; at Mach 3 it is 10.333.

Why does the total pressure fall across a shock?

A shock is not reversible: some of the flow’s energy becomes heat, so entropy rises and the stagnation pressure drops, while the total temperature stays the same. At Mach 2 in air, p₀₂/p₀₁ = 0.72087: 28% of the total pressure is lost.

What is the pitot pressure ratio?

A pitot tube in a supersonic flow reads the total pressure behind the normal shock in front of it: p₀₂/p₁ = (p₀₂/p₀₁) × (p₀₁/p₁), with p₀₁/p₁ = [1 + (γ − 1)M₁²/2]^(γ/(γ − 1)). At Mach 2 in air it is 5.6404.

What γ should I use?

The ratio of specific heats of the gas: 1.4 for air and other two-atom gases, 5/3 (1.667) for helium and argon, and about 1.3 for steam and carbon dioxide.