Compressible flow

One area, two answers

The area of a duct at a station fixes the Mach number there — twice over. A ratio of 2.5 is satisfied at Mach 0.24 and again at Mach 2.44, nothing local chooses between them, and where the choice cannot be made consistently a shock appears inside the duct to join the two.

Worth reading first: The throat that stops listening.

The area–Mach relation has a minimum at Mach one and rises on both sides of it. That is the fact that makes a de Laval nozzle work, and it has a consequence that has been quietly deferred through two rungs of this ladder: a horizontal line crosses the curve twice.

One area ratio, two Mach numbers — and the minimum is at Mach one. The area a stream tube must have, relative to the area it would have where it is sonic, against Mach number. The curve has its minimum at Mach one and rises on both sides, so a given area is satisfied by one subsonic and one supersonic solution. Nothing local to the station decides which of the two the flow is on.
Fig. 1 The area a stream tube needs, with an area ratio of 2.5 marked. It is satisfied at Mach 0.2395 and again at Mach 2.4428. Both roots were found by bisection and then substituted back, returning the ratio to within 1e-9 — so this is genuinely two solutions of one relation, and not one solution and a numerical artefact.

Nothing at the station decides

A station in the divergent section of a nozzle, with an area two and a half times the throat, can be carrying flow at Mach 0.24 or at Mach 2.44. The gas at that station has the same duct, the same stagnation conditions, and the same governing equation in both cases.

There is no local quantity that distinguishes them. The choice is made elsewhere.

This is the first place in this field where a familiar structure from elsewhere on this site reappears. Ideal flow round an aerofoil also admits infinitely many solutions, one for each circulation, and the physics picks one by an extra condition applied at a specific place. Here the extra condition is the pressure imposed at the far end of the duct, and the analogy is close enough to be useful: a differential equation with a family of solutions, and a boundary condition doing the selecting. The difference is that the Kutta condition is a statement about the flow at a sharp edge and this one is a number imposed at the far end of a pipe, which is a much blunter instrument and does a much larger job.

The five things a nozzle can be doing

Sweeping the back pressure from just below the stagnation pressure down to vacuum takes the nozzle through five regimes, in order, with no gaps.

One nozzle, five back pressures, five different flows. The duct above, and the static pressure along it below, computed station by station from the local area. Where a shock stands inside the divergent section its position was solved for rather than placed: the shock spends total pressure, which sets the subsonic Mach number at the exit, which has to match the imposed back pressure.
Fig. 2 One nozzle at five back pressures, with the pressure along the duct beneath it. The convergent half is identical in every choked case; everything that varies happens after the throat. The five curves are five different solutions of the same equation in the same geometry.

Subsonic throughout. The back pressure is high, the throat is not sonic, and the device is a venturi: the flow accelerates to the throat, decelerates after it, and the exit pressure equals the back pressure. Both halves are on the subsonic branch.

Choked, with a shock in the divergent section. Below a back pressure of 0.9608 of stagnation for this geometry, the throat goes sonic. The flow accelerates supersonically past the throat, and then somewhere in the divergent section it has to get back to the imposed pressure — which it does by a normal shock, after which the remainder of the duct decelerates it subsonically.

Shock at the exit plane. At a back pressure of 0.4348 the shock has reached the exit. This is the lowest back pressure at which any part of the exit flow is subsonic.

Overexpanded. Below that, the duct runs supersonic all the way out at the pressure its area dictates — 0.0640 of stagnation here — which is lower than the imposed back pressure. The adjustment happens outside the nozzle, in a system of oblique shocks in the plume.

Underexpanded. Below 0.0640 the exit pressure exceeds the back pressure, and the plume adjusts with expansion fans instead.

Where the shock stands, and why it is not a free choice

The shock position inside the divergent section is the interesting quantity, because it is the one thing the flow has left to vary.

The reasoning is a chain. A shock at a given area is a shock at a given Mach number, since the supersonic branch fixes the Mach number from the area. That shock has a definite strength, and it spends a definite fraction of the total pressure. Spending total pressure enlarges the effective sonic area AA^* behind the shock — the same mass flow now needs more room to go sonic in — so the remaining duct, measured against the new AA^*, has a smaller ratio and gives a particular subsonic exit Mach number. That exit Mach number, applied to the reduced total pressure, gives an exit static pressure.

So each shock position produces exactly one exit pressure, and the flow puts the shock wherever that pressure equals the imposed back pressure. It is a one-dimensional root find, and the solver here does it by bisection.

A nozzle at pb/p₀ = 0.70: shock in the divergent section. The duct above, and the static pressure along it below, computed station by station from the local area. Where a shock stands inside the divergent section its position was solved for rather than placed: the shock spends total pressure, which sets the subsonic Mach number at the exit, which has to match the imposed back pressure.
Fig. 3 The same nozzle at a back pressure of 0.7, with the shock inside the divergent section. Its position was solved for rather than placed: at A/At = 1.59 the flow arrives at Mach 1.93, the shock takes it to Mach 0.59 and destroys 24.6 per cent of the total pressure, and the remaining duct then decelerates the flow to an exit pressure of exactly 0.7.

Lowering the back pressure moves the shock downstream, where it stands in faster flow, is stronger, and destroys more total pressure. That monotonic march is asserted: assertNozzleRegimesAreOrdered requires every shock in a swept solve to sit further down the duct than the one at the higher back pressure, and refuses a sweep in which it does not.

The bug that assertion caught

The bisection above ran the wrong way when it was first written, and the failure is worth recording because of how convincing it looked.

The exit pressure falls as the shock moves downstream. The bracket therefore has to close upward on a back pressure that is too high. Written the other way — the direction that reads naturally, since higher pressure suggests moving the bracket up — the search converges on the exit plane for every back pressure in the whole range.

What that produces is not an error message. It is a nozzle figure with a shock drawn neatly at the exit, an exit Mach number, a total-pressure loss, and a caption, at every back pressure between 0.95 and 0.45: one answer repeated eight times, wearing eight different labels. Every number in it was individually correct. Nothing about the picture looked wrong, and the pressure curve was smooth.

It was caught by the requirement that the shock march, which is a statement about the set of solutions rather than about any one of them — and which is the only kind of check that could have caught it.

The regime that is not on the list

There is one thing a converging–diverging nozzle cannot do, and its absence from the list above is a result rather than an oversight.

There is no operating condition in which the flow becomes supersonic and then returns to subsonic smoothly. Deceleration from supersonic to subsonic through Mach one would require passing the sonic point at a station where the area is stationary, and in the divergent section the area is increasing everywhere. So the return to subsonic can only happen discontinuously — which is to say, through a shock.

That is a strong statement, and it is worth pausing on: the shock is not a failure of the nozzle. It is the only mechanism available. The flow is required by its boundary conditions to be supersonic here and subsonic there, the smooth route between them is geometrically forbidden, and the equations happen to admit a discontinuity that does the job. Whether such a jump is even permissible is the beginning of the next ladder.

What the shock costs, station by station

The shock’s position is not merely a curiosity of where a line falls on a drawing. It sets how much of the flow’s usefulness survives, and the range is enormous.

A duct does the opposite thing above Mach one. The four cases of dA/A = (Ma² − 1) dV/V. Below the speed of sound a narrowing duct accelerates the flow, which is what continuity leads anyone to expect. Above it the sign of the bracket flips, and a narrowing duct decelerates: density is falling faster than the speed is rising, so the stream tube needs more room rather than less.
Fig. 4 Why one area has two answers at all, in one line of algebra. dA/A=(Ma21)dV/VdA/A = (\mathrm{Ma}^2-1)\,dV/V has four cases, and the bracket changes sign at Mach one — so the same narrowing duct accelerates a subsonic flow and decelerates a supersonic one. The area ratio is the same in both; the branch is not.

At a back pressure of 0.95 in this geometry the shock sits at A/At=1.04A/A_t = 1.04, meets flow at Mach 1.23, and destroys about one per cent of the total pressure. At 0.45 it has moved to 2.43, meets flow at Mach 2.41, and destroys 46.6 per cent.

That is the design argument for supersonic diffusers stated in its plainest form: a shock is cheap where the flow is slow, and getting a shock to stand somewhere slow is worth going to considerable trouble for. The alternative — several weak shocks instead of one strong one — is the other half of the same argument, arriving on a different ladder.

Why the exit pressure detaches from the back pressure

The overexpanded and underexpanded regimes contain a fact that feels wrong at first hearing: the pressure at the exit plane of the nozzle is not equal to the pressure of the room it exhausts into.

For a subsonic exit, it must be — a subsonic flow can be told what pressure to arrive at, and it adjusts upstream to comply. For a supersonic exit, it cannot. The exit flow has no way of learning what the room’s pressure is, so it arrives at whatever pressure the duct’s area gave it, and the mismatch is resolved outside, in a plume of shocks or fans that the nozzle knows nothing about.

A nozzle at pb/p₀ = 0.40: overexpanded — oblique shocks outside the nozzle. The duct above, and the static pressure along it below, computed station by station from the local area. Where a shock stands inside the divergent section its position was solved for rather than placed: the shock spends total pressure, which sets the subsonic Mach number at the exit, which has to match the imposed back pressure.
Fig. 5 The overexpanded case, where the exit pressure has detached from the back pressure altogether. The nozzle delivers what its area ratio dictates and the adjustment happens outside it, in oblique shocks the duct never sees — which is the sharpest form of the essay’s point: a station’s area fixes a pair of states and nothing local chooses between them.

This is choking applied at the exit rather than the throat, and it is the reason rocket exhaust plumes have visible structure. The regular diamond pattern in a rocket or jet plume is a train of shocks and expansions reflecting between the plume boundaries, each one an attempt at the reconciliation the nozzle could not make internally.

The design condition, and why nothing flies at it

Exactly one back pressure gives a plume with no structure at all: the one that matches the exit pressure the area ratio produces. That is the design condition, and for this geometry it is 0.0640 of stagnation.

A rocket climbing through the atmosphere passes through its design condition once, on the way up, and spends the rest of the flight either overexpanded or underexpanded. Since the area ratio is fixed in metal and the ambient pressure falls by five orders of magnitude between the pad and vacuum, this is unavoidable, and engine design is a choice about which part of the trajectory to be wrong in.

Being badly overexpanded is the dangerous direction. If the pressure mismatch is large enough, the oblique shock system moves inside the nozzle, the flow separates from the bell asymmetrically, and the resulting side load can tear the engine apart. That is a real failure mode and it is why sea-level engines have modest area ratios while vacuum stages have enormous ones.

Why matching is the optimum, and not merely the tidy case

The design condition has been described here as the one that gives a plume with no structure in it, which is an argument from appearance. There is a better one, from force.

A nozzle exists to make thrust, and the thrust has two terms: the momentum leaving through the exit, and the exit pressure acting over the exit area against the ambient pressure outside it. Now ask what lengthening the bell by a little does. The extra area accelerates the gas further, which raises the momentum term, and it also adds a ring of exit plane on which the pressure difference acts. Working the two through, the rate of change of thrust with exit area is exactly

dFdAe=pepa,\frac{\mathrm dF}{\mathrm dA_e} = p_e - p_a,

so the thrust is stationary precisely where the exit pressure matches the ambient. The tidy plume and the maximum thrust are the same condition, and the second is the reason to care.

The asymmetry the essay already names is sharp in that form. Underexpanded, the extra area would still be pushing; overexpanded, every additional square metre of bell has ambient pressure pressing on it harder than the gas inside, and is subtracting. And in vacuum the penalty vanishes entirely: the optimum area ratio is unbounded, and what stops a vacuum bell growing is mass and length rather than aerodynamics.

Running it backwards: the diffuser problem

Everything so far has read the duct left to right, as a device for accelerating gas. Read it the other way and it is an intake, and the double-valued relation becomes an unpleasant problem rather than a convenience.

A supersonic intake has to slow the flow down to something a compressor can accept, which means getting from the supersonic branch to the subsonic branch. The area relation says a convergent duct does the decelerating above Mach one, so the ideal intake is the nozzle run in reverse: converge to a sonic throat, then diverge to decelerate subsonically, with no shock anywhere and no total pressure lost.

That ideal is unattainable, and the reason is the starting problem. Before the flow is established there is a shock ahead of the intake, and to swallow it the throat has to be large enough to pass the flow behind the shock — which has a bigger AA^*, because the shock spent total pressure. A throat sized for the ideal running condition is too small to start; a throat large enough to start is too large to run efficiently. Variable geometry is the only complete answer, and it is heavy.

A nozzle at pb/p₀ = 0.45: shock in the divergent section. The duct above, and the static pressure along it below, computed station by station from the local area. Where a shock stands inside the divergent section its position was solved for rather than placed: the shock spends total pressure, which sets the subsonic Mach number at the exit, which has to match the imposed back pressure.
Fig. 6 The same nozzle with the shock nearly at the exit, which is the intake problem drawn as a nozzle problem. The flow ahead of the shock is at Mach 2.4 and the total-pressure loss is 46.6 per cent — which is what happens to an intake that fails to swallow its shock, and is why the shock’s position is the whole of intake design.

What the solver computes, and how it is checked

nozzle takes an area ratio and a back-pressure ratio and returns which of the five regimes the device is in, together with the throat and exit Mach numbers and — where there is one — the area at which the shock stands and the total pressure it destroys.

Two assertions run over a sweep of them. assertChokedFlowDoesNotRespond requires every choked case to have a throat at exactly Mach one and every unchoked case to have one below it, and checks the choked flux constant against the sonic state assembled from the isentropic ratios. assertNozzleRegimesAreOrdered requires the five regimes to appear in falling order of back pressure, with no case appearing out of sequence, and requires the shock to march downstream monotonically.

The rejection tests feed each of them a case that is internally consistent and physically impossible: a choked nozzle with a subsonic throat for the first, and a set of shock positions that do not advance for the second.

Where the model stops

The shock is treated as a normal shock across the whole duct, at a single station, with uniform flow on both sides. Real shocks in nozzles are curved, interact strongly with the wall boundary layer, and frequently produce a lambda-shaped foot with separated flow behind it. The quasi-one-dimensional model puts the shock in approximately the right place and says nothing true about its structure.

Separation is not modelled at all. The overexpanded cases here run attached to the exit by assumption. In reality a strongly overexpanded nozzle separates, and where it separates is a boundary-layer question this site’s solver cannot answer — the same limit that governs every separation prediction here.

The plume is not computed. The regimes named “overexpanded” and “underexpanded” describe what happens outside the nozzle, and nothing outside the exit plane is solved. Those labels are classifications of the exit condition, not descriptions of a computed plume.

What the picture cannot show

The pressure curves along the duct are exact, and the shock in them is a vertical line, which is the one honest lie in the figure.

A shock is a few molecular mean free paths thick — of order 10710^{-7} m at atmospheric density — which is far thinner than the stroke used to draw it and thinner than any duct feature at the scale of the picture. The vertical line has a width, and that width means nothing whatever. It is not the shock’s thickness scaled down; it is the minimum a line can be drawn at.

The figure is also silent about what makes the shock stand still. A shock is a wave, and a wave that is not moving is a wave whose propagation speed exactly cancels the flow carrying it — the shock sits where the local flow speed matches the speed at which that particular jump would propagate. If the back pressure changes, the balance breaks and the shock travels until it finds a new station where it holds. None of that motion is in a steady figure.

Who found it, and when

Stodola’s work on steam turbines around 1903 included measurements of the pressure along a nozzle at a series of back pressures, and the curves he published are recognisably the figure in this essay. They showed the shock as a sharp pressure rise partway along the divergent section, moving downstream as the back pressure was lowered, and they showed the convergent half being identical in every case.

That experiment settled the matter for engineering, and the theory was assembled around it. Prandtl’s group produced the interference photographs in the 1900s, and the normal-shock relations themselves — Rankine’s from 1870 and Hugoniot’s from 1887 — had been available and largely unused for a generation. The pattern is the one this site keeps meeting: the mathematics was sitting ready before anybody had an apparatus that needed it.

Where the ladder goes next

Three rungs of this ladder have now used the word “shock” as though it were an available move, without asking whether the conservation laws permit a discontinuity at all.

They do, and that is genuinely surprising: mass, momentum and energy can all be satisfied across a jump, which is why shocks exist and why they are so much easier to compute than to imagine, and which sits oddly beside the smoothness every other flow on this site has. The uncomfortable part comes one rung further on, when the same algebra turns out to permit a jump in the other direction that nature refuses.

What links here

Computed from the collection rather than written here: the essays that point at this one.

Reads more easily once this is understood

Essays that name this one as worth reading first.

Shares its objects with

Essays naming at least two of the same things, that neither author linked.

Named objects

A dashed tag is an object no other essay names yet.

Area machBack pressureBoundary-valueChokingde Laval nozzleOverexpandedShock waveStagnation pressureUnderexpanded