Isentropic Flow and Stagnation Conditions Calculator

Isentropic Flow and Stagnation Conditions Calculator

Mach number and the isentropic stagnation ratios — p₀/p, T₀/T, ρ₀/ρ and the area ratio A/A* — for any gas, all explicit in Mach number with no iteration anywhere. Plus the number that actually decides your solver setup: how wrong ½ρV² is at the Mach number you are running, derived rather than quoted.

Isentropic stagnation ratios and the compressibility error

velocity, Mach or a temperature ratio → p/p₀, T/T₀, ρ/ρ₀, A/A* and the ½ρV² error
All three routes give the same Mach number and all three are explicit — there is no iteration on this page and that is deliberate, because the one isentropic relation that does need iterating (Mach from an area ratio) is not offered here rather than being approximated silently. Route 3 is the one a total-temperature probe or a CFD total-temperature monitor gives you, and it inverts in closed form: M = √(2(T₀/T − 1)/(γ − 1)).
Local flow speed at the station you are interested in. For a Mach number that means anything, this and the temperature must be at the SAME point: using a free-stream velocity with a stagnation temperature is the most common way to get a compressible calculation wrong by several per cent.
STATIC temperature — what a thermometer moving with the flow would read, and what a CFD solver stores as the temperature field. Not the total temperature a probe reads. The speed of sound comes from this and nothing else: a = √(γRT). 288.15 K is the ISO standard atmosphere sea-level value; a = 340.295 m/s in air with the R derived here, against ISO 2533’s printed 340.294 — a 0.0008% difference in R, explained in the references.
Absolute static pressure, not gauge. Every ratio on this page is independent of it, but the absolute stagnation pressure, the impact pressure and the dynamic pressure all scale with it — and the stagnation pressure is usually the number you are here for, because it is what a pressure-inlet boundary condition wants.
Used only when the route above is set to Mach directly. Every ratio on this page is a function of Mach number and γ alone, so this is the only input the ratios need — the pressure and temperature are there to turn ratios into absolute values.
Used only when the route above is set to the temperature ratio. This inverts exactly: M = √(2(T₀/T − 1)/(γ − 1)). A value below 1 is unphysical for an adiabatic flow — the total temperature cannot be lower than the static one — and is clamped to 1, giving M = 0.
Every R here is derived from the molar mass and the SI-exact molar gas constant 8.31446261815324 J/(mol·K), not copied from a table, so you can check any of them with one division. The γ values are the room-temperature calorically-perfect ones. They stop being right well before you notice: air at a stagnation temperature above roughly 1000 K has vibrational modes active, cp rises and γ falls below 1.4, and the constant-γ relations then over-predict both T₀ and p₀/p.
Editable only when the gas above is set to Custom; otherwise it shows the γ in use. 1.4 for a diatomic gas at room temperature, 5/3 = 1.667 for a monatomic one, and anything from 1.1 to 1.35 for a polyatomic or a hot gas. A mixture takes the mass-weighted cp and cv, not the mole-weighted γ.
Specific gas constant, R = 8.31446261815324/M with M in kg/mol; 287.055 for dry air. Editable only when the gas above is set to Custom; otherwise it shows the R in use. It scales the speed of sound and therefore the Mach number, but every pressure, temperature and density RATIO on this page depends on γ alone — so an R that is slightly wrong moves the Mach number and nothing else.
0.698534p/p₀Example

Air at 250 m/s, static temperature 288.15 K, static pressure 101 325 Pa absolute, γ = 1.4 and R = 287.055 J/(kg·K) derived from the molar mass

Advertisement

The isentropic relations, all explicit in Mach number

a = √(γRT)  ·  M = V/a  ·  T0/T = 1 + ½(γ−1)M²  ·  p0/p = (T0/T)γ/(γ−1)  ·  ρ0/ρ = (T0/T)1/(γ−1)  ·  A/A* = (1/M) [(2/(γ+1))(T0/T)](γ+1)/2(γ−1)  ·  p */p0 = (2/(γ+1))γ/(γ−1)  ·  ½ρV² = ½γpM²  ·  p0−p = p[(p0/p) − 1]
M
Mach number, V/a. Every ratio on this page is a function of M and γ alone — the pressure and temperature only turn those ratios into absolute numbers
T₀/T
from the adiabatic energy equation, cpT + V²/2 = cpT₀, with cp = γR/(γ−1). No isentropic assumption is needed for this one: it holds across a shock as well, which is why T₀ is conserved through a normal shock and p₀ is not
p₀/p and ρ₀/ρ
the temperature ratio raised to γ/(γ−1) and 1/(γ−1), from p/ρ^γ constant. These DO need the flow to be isentropic, so they fail across a shock
A/A*
ratio of the local area to the area where M = 1, from mass conservation along a stream tube. Explicit in M, which is why it is here. The INVERSE — M from A/A* — is transcendental and has two roots, so it needs iteration and is deliberately absent rather than approximated
p*/p₀
the critical pressure ratio: 0.5283 for γ = 1.4, 0.4871 for a monatomic gas, 0.5457 for γ = 1.3. When the back-pressure ratio falls to this, the throat is sonic and the mass flow stops responding to it
½ρV² = ½γpM²
an identity, not an approximation — ρV² = γpM² follows directly from a² = γp/ρ. It is what makes the dynamic-pressure error below computable from M and γ alone
p₀ − p
impact pressure: what a Pitot-static tube actually reads in subsonic flow, and the compressible form of dynamic pressure. Equal to ½ρV² only in the incompressible limit

Worked example

Air at 250 m/s, static temperature 288.15 K, static pressure 101 325 Pa absolute, γ = 1.4 and R = 287.055 J/(kg·K) derived from the molar mass
The speed of sound is a = √(γRT) = √(1.4 × 287.055 × 288.15) = 340.295 m/s. ISO 2533 prints 340.294 at the same temperature, and the difference is worth stating rather than hiding: ISO 2533 predates the 2019 SI redefinition and uses R = 287.05287, while 287.055 here is 8.31446261815324/0.0289647, so that every gas on this page is one division from its molar mass. Nothing physical moves. So M = 250/340.295 = 0.734656.
The temperature ratio, from the energy equation: T₀/T = 1 + 0.2 × 0.734656² = 1.107939. Stagnation temperature 288.15 × 1.107939 = 319.254 K — 31 K of stagnation heating at a speed most people would call subsonic.
Raise it to γ/(γ−1) = 3.5 for pressure: p₀/p = 1.107939^3.5 = 1.431569, so p/p₀ = 0.698534 and the stagnation pressure is 101 325 × 1.431569 = 145 054 Pa. That last number is the one to type into a pressure-inlet boundary condition, and getting it from the static pressure rather than the other way round is the usual direction of the mistake.
Raise it to 1/(γ−1) = 2.5 for density: ρ₀/ρ = 1.292176. The static density is 101 325/(287.055 × 288.15) = 1.224991 kg/m³ and the stagnation density 1.582805. The density varies by 29% between the free stream and a stagnation point on the body — which is the real reason a constant-density solver cannot be used here.
The area ratio: A/A* = (1/0.734656)[(2/2.4)(1.107939)]^3 = 1.071335. A duct passing this flow would have to contract by only 6.7% to choke. Worth noticing how flat A/A* is near M 1 — and worth noticing that inverting it is a transcendental problem with two roots, which is exactly why this page does not offer it.
NOW THE NUMBER THIS PAGE EXISTS FOR, and it was checked rather than taken on trust. The impact pressure a Pitot tube would read is p₀ − p = 101 325 × 0.43155 = 43 729 Pa. The incompressible dynamic pressure is ½ρV² = ½ × 1.224991 × 250² = 38 281 Pa. So ½ρV² is low by 14.23%.
Work that error out in general and it is a function of M and γ alone, because ½ρV² = ½γpM² identically: (p₀ − p)/(½ρV²) = [(1 + 0.2M²)^3.5 − 1]/(0.7M²). Evaluate it and the familiar figures are confirmed but need three digits, not one: 0.2503% at M 0.1, 1.0040% at M 0.2, 2.2703% at M 0.3, 4.0643% at M 0.4, 6.41% at M 0.5, 17.04% at M 0.8 and 27.56% at M 1. The rule of thumb of about 1% at M 0.2 and about 4% at M 0.4 is right. The series expansion 1 + M²/4 + M⁴/40 + M⁶/1600 reproduces those to seven figures at M 0.2 and six at M 0.4, which is an independent check on both.
And the error in the direction people actually get bitten. If you measure p₀ − p and infer speed with incompressible Bernoulli, you OVER-read the speed by the square root of that factor: 0.50% at M 0.2, 2.01% at M 0.4 and 6.88% here at M 0.73. Half the pressure error, same sign every time. That is why an airspeed indicator needs a compressibility correction and a low-speed wind tunnel does not.
One more figure for the CFD decision, because it is the one that fails first: the density change. ρ₀/ρ − 1 is 2.01% at M 0.2, 4.56% at M 0.3 and 8.19% at M 0.4. The M 0.3 threshold everyone quotes is the 5%-density-variation line, not the 1%-dynamic-pressure line — two different criteria that happen to be quoted with the same number attached.

Isentropic ratios for γ = 1.4, and the two errors an incompressible assumption costs

Mp/p₀T/T₀ρ/ρ₀A/A*ρ₀/ρ − 1Error in ½ρV²Speed error from incompressible Bernoulli
0.10.9930310.9980040.9950175.82180.50%0.2503%0.1250%
0.20.9724970.9920630.9802772.96352.01%1.0040%0.5007%
0.30.9394700.9823180.9563802.03514.56%2.2703%1.1288%
0.40.8956140.9689920.9242741.59018.19%4.0643%2.0119%
0.50.8430190.9523810.8851701.339812.97%6.4072%3.1539%
0.60.7840040.9328360.8404521.188218.98%9.3269%4.5595%
0.80.6560220.8865250.7399921.038235.14%17.0402%8.1851%
1.00.5282820.8333330.6339381.000057.74%27.5613%12.9430%
1.50.2724030.6896550.3949841.1762153.2%not applicable above M 1not applicable above M 1
2.00.1278050.5555560.2300481.6875334.7%not applicable above M 1not applicable above M 1
3.00.0272240.3571430.0762264.23461212%not applicable above M 1not applicable above M 1
5.00.0018900.1666670.01134025.0008718%not applicable above M 1not applicable above M 1
Computed on this page from the closed forms, not transcribed, and checked against the identities that must hold: A/A* = 1 exactly at M = 1, A/A* = 25.000 exactly at M = 5 for γ = 1.4, and p/p₀ = 0.528282 at M = 1. The two error columns stop at M 1 because p₀ − p is no longer what a Pitot tube reads once a bow shock stands in front of it — above M 1 the Rayleigh Pitot formula applies instead, and that lives on the normal shock calculator.

The critical (choking) conditions, by gas

GasγR (J/(kg·K))p*/p₀T*/T₀ρ*/ρ₀
Air, N₂ (diatomic)1.4287.05 / 296.800.5282820.8333330.633938
Argon, helium (monatomic)1.667208.13 / 2077.260.4870920.7499060.649537
Carbon dioxide1.289188.920.5477240.8737440.626870
Steam (superheated)1.33461.520.5403640.8583690.629524
Methane1.32518.280.5421390.8620690.628881
The 0.528 everybody remembers is a γ = 1.4 number and nothing more. A helium system chokes at 0.487 and a CO₂ one at 0.548, which is a 12% spread in the pressure ratio a relief line or an ejector chokes at. Every R here is derived from the molar mass and the SI-exact molar gas constant, so each one can be checked with a single division.

What the Mach number means for how you set up the solver

Mach rangeDensity treatmentSolverWhat breaks if you ignore it
Below 0.3Constant density is defensiblePressure-based, segregated or coupledNothing, unless you are chasing a fraction of a per cent — at M 0.3 you are already discarding 4.6% of density variation and 2.3% of dynamic pressure
0.3 to 0.7Ideal gas, variable densityPressure-based coupled is normally bestPressure coefficients and drag biased by several per cent; total pressure at an inlet mis-set
0.7 to 1.2Ideal gas, variable densityPressure-based coupled or density-based; both are used in practiceLocal supersonic pockets and the shock that closes them are simply absent from an incompressible solution — a qualitative failure, not a quantitative one
1.2 to 5Ideal gas, variable densityDensity-based, with a shock-capturing limiterInlet boundary conditions are wrong if only total conditions are given; convergence stalls; an imposed outlet pressure drives a spurious shock inward
Above 5Real gas or equilibrium chemistryDensity-based with a real-gas modelStagnation temperature and p₀/p both over-predicted by a constant-γ model, by tens of per cent — it is a physics error, not a numerical one
The boundaries are soft and the middle two rows overlap deliberately, because a modern pressure-based coupled solver handles transonic flow perfectly well and the old rule that compressible means density-based has not been true for years. What is not soft is the bottom row: above the point where γ stops being constant, no amount of mesh or solver care recovers the answer.

Where incompressible stops working, with the numbers derived rather than remembered

Every relation on this page is explicit in Mach number, and that is why these particular relations are here. The stagnation ratios, the area ratio and the critical pressure ratio are all closed-form functions of M and γ. The one isentropic relation that is not — Mach number from an area ratio — is transcendental, has a subsonic and a supersonic root, and needs a Newton iteration to solve. It is deliberately absent rather than fitted with a polynomial, because a fitted inverse that is right to three figures in the middle of its range and wrong near M = 1 is worse than no inverse at all. If you need it, solve A/A* for M with a root finder and choose the branch from the physics of your nozzle.

The temperature ratio is more robust than the other two, and knowing why is worth something. T₀/T = 1 + (γ−1)M²/2 comes from the adiabatic energy equation alone — cpT + V²/2 = cpT₀ — with no assumption about reversibility. So it survives anything adiabatic, including a shock: the stagnation temperature is the same on both sides of a normal shock. The pressure and density ratios need p/ρ^γ to be constant, which a shock destroys, and that is the whole reason stagnation pressure loss is a meaningful measure of irreversibility while stagnation temperature loss is not. The normal shock calculator is where that difference is put to work.

Now the compressibility error, derived rather than quoted, because the quoted version is usually given to one significant figure and used as though it were exact. The incompressible dynamic pressure is ½ρV², and the thing a Pitot-static tube actually reads in subsonic flow is the impact pressure p₀ − p. They are not the same. Using the identity ½ρV² = ½γpM², which follows straight from a² = γp/ρ, the ratio is (p₀ − p)/(½ρV²) = [(1 + (γ−1)M²/2)^(γ/(γ−1)) − 1]/(γM²/2) — a function of M and γ only. Evaluate it and the numbers are 0.2503% at M 0.1, 1.0040% at M 0.2, 2.2703% at M 0.3 and 4.0643% at M 0.4, rising to 27.56% at M 1. The familiar “about 1% at M 0.2, about 4% at M 0.4” is confirmed. It is also weakly dependent on γ: at M 0.3 the figure is 2.27% for γ = 1.4, 2.26% for a monatomic gas and 2.27% for γ = 1.3, so for once a rule of thumb travels between gases.

The sign matters and it catches people out. ½ρV² UNDER-reads the impact pressure. So a pressure coefficient reduced on ½ρV² is too large in magnitude, and a drag coefficient with it. But if you go the other way and infer speed from a measured p₀ − p using incompressible Bernoulli, you OVER-read the speed — by the square root of the same factor, so 0.50% at M 0.2 and 2.01% at M 0.4. Half the error, opposite direction. That is why an airspeed indicator needs a compressibility correction at altitude and a low-speed tunnel does not.

The M 0.3 threshold is two different criteria wearing the same number, and it is worth knowing which one you mean. At M 0.3 the dynamic-pressure error is 2.27% and the density differs from its stagnation value by 4.56%. The 5%-density-variation reading is the one the textbook threshold usually comes from, and it is the one that matters for a CFD solver, because the question is not really “is the flow compressible” but “may I hold the density constant”. The answer for a simulation is almost always: let it vary. An ideal-gas density on a pressure-based coupled solver costs very little and removes the question entirely, and the old rule that compressible flow requires a density-based solver stopped being true when coupled pressure-based schemes matured. What a density-based solver is genuinely better at is shock capturing, which starts to matter around M 0.8 locally rather than in the free stream — and local Mach numbers over a curved surface run well above the free-stream value, which is why a free-stream M of 0.6 can already have a shock on it.

Two practical traps in using stagnation conditions in a simulation. The first is mixing stations: the Mach number means nothing unless the velocity and the temperature come from the same point in the flow, and using a free-stream velocity with a probe-measured stagnation temperature is a several-per-cent error that is very hard to see afterwards. The second is the boundary condition itself. A pressure inlet wants total pressure and total temperature; a velocity inlet wants static temperature. Mixing them up under-specifies the density and the symptom is a mass flow that is wrong by exactly the ratio on this page. And at a supersonic inlet total conditions alone are not enough at all: nothing propagates upstream, so every variable has to be given.

Choking is the other thing this page is for. When the static-to-stagnation ratio falls to (2/(γ+1))^(γ/(γ−1)) the throat is sonic and the mass flow stops caring about the back pressure. For air that ratio is 0.528282, which is the number everybody remembers; for helium or argon it is 0.487092 and for carbon dioxide 0.547724, a 12% spread that matters in a relief line or an ejector. The choked mass flux per unit throat area, ρ*a*, is printed below and is the quantity to compare against the flow you are trying to push through a hole. In a simulation a choked throat also explains a class of convergence failure that looks like a mesh problem: imposing a back pressure below the critical value on a passage that is already choked asks the solver for a mass flow the geometry cannot deliver, and it will hunt forever.

Advertisement

Frequently asked questions

Why is there no Mach-from-area-ratio option?

Because it cannot be done without iteration, and this page does not approximate anything silently. A/A* is an explicit function of M, but inverting it is transcendental and has two roots — one subsonic and one supersonic — for every area ratio above 1. Solving it needs a Newton or bisection iteration plus a decision about which branch your nozzle is on, and a polynomial fit that is accurate in mid-range and poor near M = 1 would be worse than nothing, because M = 1 is precisely where you care. Solve it with a root finder and pick the branch from the physics.

Is the M 0.3 incompressibility threshold real?

It is a real 5% line, but on density rather than on anything else, and that is worth being precise about. At M 0.3 the density differs from its stagnation value by 4.56%, while the dynamic-pressure error is only 2.27% and the error you would make inferring speed from a Pitot reading is 1.13%. So which threshold applies depends on what you are computing. For a drag coefficient to within 1% you need M below about 0.2. For a qualitative flow field, M 0.5 is often fine. For a CFD solver, the honest answer is to stop asking: an ideal-gas density on a pressure-based coupled solver costs almost nothing and removes the question.

Does stagnation temperature drop across a shock?

No, and this is the single most useful asymmetry in compressible flow. T₀/T = 1 + (γ−1)M²/2 comes from the adiabatic energy equation with no reversibility assumption, so stagnation temperature is conserved through any adiabatic process including a shock. Stagnation PRESSURE is not, because p₀/p needs p/ρ^γ to be constant and a shock is irreversible. That is why the stagnation pressure ratio across a shock is the direct measure of entropy generation — Δs = −R ln(p₀₂/p₀₁) exactly — and it is computed on the normal shock calculator.

Which temperature does the speed of sound use?

Static, always: a = √(γRT) with T the static temperature. Using the stagnation temperature instead gives a speed of sound that is too high and a Mach number that is too low, and at M 0.73 in the worked example above that error is 5% on the speed of sound and 5% on the Mach number — enough to move you a whole band. If you only have a probe reading, that is a stagnation temperature; use the T₀/T route on this page to get the Mach number from it directly, which is exact and needs no iteration.

What stagnation pressure should I put on a pressure inlet?

The absolute total pressure at the inlet plane, which is p₀ in the results above — and the total temperature with it, because the pair of them is what fixes the density. Two common errors. Using the static pressure as though it were total under-specifies the total by the ratio p₀/p, which is 43% at M 0.73 and 89% at M 1. And giving gauge pressure where absolute is wanted, or the reverse, which on a sea-level case is a factor of two. If the inflow is supersonic none of this is enough anyway: total conditions do not determine a supersonic inflow, because no characteristic carries information upstream, so every variable must be specified.

How do I know if my nozzle or orifice is choked?

Compare the ratio of back-pressure to upstream total pressure with the critical ratio printed above for your gas — 0.528282 for air, 0.487092 for helium or argon, 0.547724 for carbon dioxide. Below it, the throat is sonic and the mass flow is fixed by the upstream total conditions and the throat area alone; lowering the back pressure further changes nothing upstream of the throat. The choked mass flux ρ*a* above, multiplied by the throat area, is that mass flow. In a simulation a choked passage with an imposed back pressure below critical is a classic non-convergence: you are asking for a mass flow the geometry will not pass.

When does a constant γ stop being good enough?

When the stagnation temperature gets high, which happens sooner than most people expect because T₀/T grows as M². In air, vibrational excitation of O₂ and N₂ starts raising cp noticeably above roughly 800 K and is unmistakable by 1000 K, and dissociation follows a few thousand degrees later. T₀ passes 1000 K at about M 3.3 from a 288 K static temperature, and at M 5 it is over 1700 K. Because cp rises and γ falls, a constant-γ model over-predicts BOTH T₀ and p₀/p, and by the hypersonic band the error is tens of per cent. The page warns you when T₀ passes 1000 K.

The Mach number reads 1.000 but the band says “M 0.8 to 1”. Which is right?

The Mach number. The headline here is p/p₀, and the band edges are fixed numbers — the values of p/p₀ at M 0.3, 0.8, 1, 2 and 5 — while p/p₀ at a given Mach number depends on γ. There are three sets of edges, placed at γ = 1.667, 1.4 and 1.30, so for a gas away from those values a labelled edge sits up to about 0.4% off in Mach number: carbon dioxide at γ = 1.289 crosses the sonic edge at M 1.003 rather than M 1.000. Two things are exact regardless: the Mach number printed as the first figure below the answer, and the sonic warning, which keys on M ≥ 1 directly. The edges are also half-open, so a Mach number sitting exactly ON one reads as the lower band — M 2.000 reads as “M 1 to 2”, which is what the label means.

Why are the ratios independent of R but the Mach number is not?

Because every ratio on this page is a function of M and γ alone, while the speed of sound is √(γRT) and therefore carries R. So an R that is slightly wrong moves the Mach number and everything downstream of it, but changing gas at fixed Mach number changes the ratios only through γ. That is a useful check: if you are unsure of your gas properties, enter the Mach number directly and the ratios are as good as your γ.

Related calculators

References

  1. Ames Research Staff, Equations, Tables, and Charts for Compressible Flow, NACA Report 1135 (1953). A US Government work. The primary source for every relation on this page. Every value in the tables here was computed from the closed forms rather than transcribed, and then checked against NACA 1135’s own tabulated values — p/p0 = 0.528282 and A/A* = 1.000000 at M = 1, p/p0 = 0.127805 and A/A* = 1.687500 at M = 2, and A/A* = 25.000 exactly at M = 5 for γ = 1.4, all of which are reproduced to the digits shown.
  2. ISO 2533:1975, Standard Atmosphere, for the sea-level reference values used as the defaults here: T = 288.15 K, p = 101 325 Pa, R = 287.05287 J/(kg·K) and a speed of sound of 340.294 m/s. Cited, not reproduced. This page does NOT use 287.05287: it derives R = 8.31446261815324/0.0289647 = 287.055, so that every gas is one division from its molar mass and can be checked. The two differ by 0.0008% because ISO 2533 predates the 2019 SI redefinition and uses a molar mass of 28.96442 g/mol, and the visible consequence is a speed of sound of 340.295 m/s here against ISO’s 340.294. Stated rather than quietly reconciled.
  3. Specific gas constants are derived rather than quoted: R = Ru/M with Ru = 8.31446261815324 J/(mol·K), exact in the SI since the 2019 redefinition, and molar masses in g/mol of 28.9647 (dry air), 28.0134 (N2), 31.9988 (O2), 44.0095 (CO2), 39.948 (Ar), 4.002602 (He), 18.01528 (H2O), 16.0425 (CH4) and 2.01588 (H2). Any of them can be checked with one division.
  4. Derived for this page rather than taken from a source: the dynamic-pressure error. Using the identity ½ρV² = ½γpM², which follows from a² = γp/ρ, the ratio of the true impact pressure to the incompressible dynamic pressure is [(1 + (γ−1)M²/2)γ/(γ−1) − 1]/(γM²/2), a function of M and γ alone. Evaluated for γ = 1.4 this gives 0.2503% at M 0.1, 1.0040% at M 0.2, 2.2703% at M 0.3, 4.0643% at M 0.4 and 27.5613% at M 1. The commonly quoted "about 1% at M 0.2 and about 4% at M 0.4" is therefore correct, and the three-digit figures are given here because the one-digit version is routinely used as though it were exact. Independently checked against the series expansion 1 + M²/4 + M⁴/40 + M⁶/1600, which agrees to seven figures at M 0.2 and six at M 0.4.
  5. J. D. Anderson, Modern Compressible Flow, for the standard derivations of the stagnation and area–Mach relations and for the statement that the area–Mach relation has a subsonic and a supersonic root. Cited, not reproduced; nothing is taken from its tables.
  6. γ values are the room-temperature calorically-perfect ones and are stated as such: 1.4 for air and nitrogen, 1.395 for oxygen, 1.289 for carbon dioxide, 5/3 ≈ 1.667 for the monatomic gases, 1.33 for superheated steam, 1.32 for methane and 1.41 for hydrogen. They are temperature-dependent in reality, and this page warns when the stagnation temperature exceeds 1000 K because that is where the assumption stops being defensible for air.

Setup guidance, not validation. Correlations have ranges of validity and cell-count estimates are order-of-magnitude. A converged simulation is not a correct one. Full disclaimer at calcengines.com/disclaimer/