Choked Flow Simulator Back
Compressible Flow Simulator

Choked Flow Simulator — Critical Conditions and Mass Flow Rate in a Converging Nozzle

Visualize the choked condition that occurs when flow in a converging nozzle reaches sonic speed at the throat. Adjust stagnation pressure, stagnation temperature, throat area and back pressure to see how the critical pressure ratio, maximum mass flow rate and throat sonic speed respond.

Parameters
Stagnation pressure P_0
kPa
Stagnation temperature T_0
K
Throat area A*
mm²
Back pressure P_b
kPa

Air (γ = 1.4, R = 287 J/(kg·K)), isentropic, 1-D, steady flow is assumed.

Results
Mass flow rate ṁ
Critical pressure P*
Flow state
Throat velocity
Converging nozzle and flow

Left = upstream (P_0, T_0) / center waist = throat A* / right = back-pressure region P_b. Color shows speed (blue = slow, red = fast); red line is the sonic plane when choked.

Mass flow ṁ vs back-pressure ratio P_b/P_0

P_b/P_0 ≤ 0.528 ⇒ choked (ṁ = ṁ_max); above that, ṁ falls as back pressure rises. Yellow vertical line = current P_b/P_0.

Theory & Key Formulas

For an ideal gas with isentropic, quasi 1-D, steady flow, the critical condition of a converging nozzle depends only on γ. The throat is sonic (M = 1) when:

$$\frac{P^*}{P_0} = \left(\frac{2}{\gamma+1}\right)^{\gamma/(\gamma-1)}$$

When P_b/P_0 ≤ P*/P_0 the flow is choked and the mass flow saturates at its maximum:

$$\dot{m}_{\max} = A^*\,P_0\,\sqrt{\frac{\gamma}{R\,T_0}}\,\left(\frac{2}{\gamma+1}\right)^{(\gamma+1)/(2(\gamma-1))}$$

Throat temperature and sonic speed (choked):

$$T^* = T_0\,\frac{2}{\gamma+1}, \qquad a^* = \sqrt{\gamma\,R\,T^*}$$

For air (γ = 1.4): P*/P_0 ≈ 0.528 and T*/T_0 ≈ 0.833. The sonic plane at the throat blocks downstream information, so ṁ_max cannot grow no matter how much you lower P_b.

What is the Choked Flow Simulator?

🙋
In a compressed-air piping audit the engineer said "the line is choked, so flow won't go any higher". What does that mean exactly?
🎓
It means the gas at the smallest cross-section — the throat — has reached the local speed of sound. With the default sliders (P_0 = 500 kPa, P_b = 200 kPa) the back-pressure ratio is 0.4, below the critical 0.528, so the flow is choked and ṁ = 0.117 kg/s. From here you can drop P_b to 10 kPa and the number won't move by a single gram. Safety valves, burst discs and small orifice meters live in this regime every day.
🙋
Why does reaching sonic speed stop the flow from growing? I heard something about "information not propagating".
🎓
Right, that's the key intuition. Pressure waves travel upstream at the local speed of sound, but once the throat reaches sonic speed nothing acoustic can outrun the flow back upstream. Any change to P_b is felt only downstream of the throat. Mathematically dA/A = (M² − 1) dV/V shows that in a converging duct M = 1 is the ceiling — to go further you need a diverging section, i.e. a Laval (converging-diverging) nozzle.
🙋
Where does the flow stop being choked if I keep raising P_b?
🎓
The boundary is P_b/P_0 = 0.528. With P_0 = 500 kPa that means at P_b ≈ 264 kPa the flow leaves the choked regime and ṁ starts dropping. Bump P_b up to 270 kPa and you'll see ṁ slip below 0.117 kg/s. Push it to 500 kPa (= P_0) and ṁ falls to zero. Hit Play to sweep P_b and the classic S-shape becomes obvious.
🙋
The throat velocity reads 317 m/s — is that the speed of sound?
🎓
Exactly. With T_0 = 300 K the throat temperature is T* = 2T_0/(γ+1) = 250 K, and a* = √(γ R T*) ≈ 317 m/s. It's a bit lower than 343 m/s at room temperature because adiabatic expansion cools the gas down to 250 K at the throat. Raise T_0 with the slider and a* grows accordingly — at T_0 = 600 K you'll see a* ≈ 448 m/s.
🙋
So if I want more flow, what do I increase?
🎓
Look at ṁ_max = A* P_0 √(γ/(R T_0)) (2/(γ+1))^((γ+1)/(2(γ-1))). Three knobs only: (1) raise P_0, (2) enlarge A*, or (3) lower T_0 (cool gas is denser). P_b has zero effect once choked. In a real plant you usually pin P_0 at the design ceiling and size A* to meet the required ṁ.

Frequently Asked Questions

It comes from isentropic flow with M = 1 at the throat. The stagnation-to-throat ratio P_0/P* = (1 + (γ−1)/2)^(γ/(γ-1)) inverts to P*/P_0 = (2/(γ+1))^(γ/(γ-1)). For air (γ = 1.4) that's (2/2.4)^3.5 = 0.5283. For helium (γ = 1.67) it is 0.487, and for CO_2 (γ = 1.30) it is 0.546. The simulator uses the air value.
This tool assumes an ideal gas with isentropic, quasi 1-D, steady flow. In real orifices and control valves engineers multiply by a discharge coefficient C_d (typically 0.6-0.95): ṁ_actual = C_d · ṁ_ideal. For cryogenic high-pressure liquids (LNG, etc.) flashing and Joule-Thomson effects matter, and you usually need a real-gas equation of state (e.g. NIST REFPROP) and numerical integration. API 520 and ISO 4126 for safety-valve sizing both build on the C_d form of the same equation.
The throat critical condition and the ṁ_max formula are identical. The difference is that the diverging section downstream of the throat lets the flow accelerate to supersonic speeds at the design pressure ratio. If the back pressure is too high a normal shock forms inside the diverging part. While the flow is choked ṁ at the throat is the same, so the left half of the ṁ vs P_b/P_0 plot above is identical for both nozzle types.
Because the relief flow then depends only on the vessel pressure P_0 and the throat area A* — completely independent of downstream conditions. Whatever piping, silencer or scrubber sits downstream, the capacity is guaranteed. API 520 and ASME Section VIII size pressure-relief devices with exactly the ṁ_max formula in this tool (plus a C_d). The recipe is: pick the worst-case ṁ for a fire or runaway-reaction scenario and back-solve for A*.

Real-World Applications

Safety valves and burst discs on pressure vessels: Chemical plants, LNG tanks and gas cylinders need relief devices that pop open at a set pressure to prevent over-pressurization. The trick is to keep them choked at all times, so that capacity is determined by P_0 and A* alone, independent of downstream piping. API 520 and ISO 4126 use exactly the formula in this simulator, multiplied by a discharge coefficient C_d. Try P_0 = 1000 kPa with A* = 100 mm² in the tool: a single valve can vent about 0.23 kg/s of air, which makes vessel-emptying time estimates immediate.

Critical-flow orifice meters for gas calibration: Critical Flow Venturi (CFV) nozzles deliberately choke the flow so that ṁ = C_d · ṁ_max depends only on P_0. ISO 9300 standardizes this geometry and achieves better than 0.5% accuracy. Because downstream piping and valves can be anything, multiple flow meters can be calibrated in series simultaneously, which is why CFVs dominate the metrology of gas flow measurement.

Rocket and jet engine nozzles: Solid rockets, liquid rockets and turbojets all pass their combustor gases through a choked throat. Once the chamber pressure (= P_0) is fixed, the throat ṁ_max is uniquely determined, which simplifies thrust design F = ṁ · V_e + (P_e − P_atm)·A_e. The Saturn V's F-1 engine ran with chamber pressure ≈ 7 MPa and a throat diameter of 0.95 m, producing ṁ ≈ 2.6 t/s of choked flow. Plug MPa-scale numbers into the simulator and you can get a feel for these orders of magnitude.

Vacuum leak analysis: When a vacuum chamber or semiconductor process tool refuses to reach base pressure, engineers model the leak path as choked flow. For room-temperature air leaking through a 0.1 mm pinhole (A* ≈ 0.008 mm²), ṁ comes out to about 9 μg/s. The simulator's expression lets you estimate worst-case leak rates from design pressure and area and then back-solve for the pumping speed you actually need — a routine calculation in semiconductor, space and particle-physics vacuum design.

Common Misconceptions and Pitfalls

The most common misconception is the belief that "lowering the back pressure always increases the flow". In the choked regime the back pressure can no longer communicate with the inlet through the sonic plane, so dropping P_b from 200 kPa to 10 kPa or even to vacuum leaves ṁ_max unchanged. Try sweeping P_b downward in the simulator while everything is choked — ṁ does not move a single gram. The "pull harder vacuum, get more flow" intuition only applies when P_b/P_0 > 0.528, and importing it into a choked design leads directly to undersized equipment.

Another trap is thinking that ṁ_max is set by conditions at the throat. The closed-form formula ṁ_max = A* P_0 √(γ/(R T_0)) (2/(γ+1))^((γ+1)/(2(γ-1))) contains only upstream P_0, T_0, the throat area A* and gas constants. P* and T* have cancelled out. Code that "divides by P*" or "measures T* separately" before computing ṁ is doing extra work and is a bug magnet. In the simulator only P_0 and T_0 change ṁ_max, which makes this property tangible.

A third pitfall is believing that "a converging nozzle can be pushed supersonic". The quasi 1-D continuity dA/A = (M² − 1) dV/V says that for M < 1 narrowing the area accelerates the flow, but at M = 1 the area change must vanish, and going further requires the area to increase. So in a purely converging nozzle the throat exit is capped at M = 1, no matter how low you set the back pressure. Supersonic exits require a converging-diverging (Laval) shape, used in jet engines, rockets and supersonic wind tunnels.