Compressible flow

The spin a shock leaves behind

A curved shock gives every streamline a different entropy rise and the same stagnation enthalpy. Crocco's theorem then forces vorticity into a flow with no viscosity anywhere — and it scales as the inverse of the shock's radius of curvature, exactly, so a straight shock makes none.

Worth reading first: Where vorticity comes from · A shock that leans.

For steady flow of any fluid, with no viscosity anywhere,

Ts=h0u×ω.T\nabla s = \nabla h_0 - \mathbf u\times\boldsymbol\omega.

Crocco’s theorem. It is an identity rather than a law — the momentum equation with the entropy substituted for the pressure — and it says something this collection keeps arriving at from different directions: an inviscid flow is irrotational only if its entropy is uniform.

euler-rotational made the same point from the incompressible end, with a flow whose Bernoulli constant varies across the streamlines. This is the compressible statement of it, and the compressible version has a mechanism attached: a curved shock.

The identity, made to work first

Before applying it, it is worth making it produce a number, on a flow where every term is available.

The incompressible form is H=u×ω\nabla H = \mathbf u\times\boldsymbol\omega with H=p/ρ+12q2H = p/\rho + \tfrac12q^2. Evaluated at six points of the exact rotational solution for shear past a cylinder — with H\nabla H differenced from the flow’s own pressure field and ω\boldsymbol\omega from its own stream function — the two sides agree to 1.0×1061.0\times10^{-6} against a gradient of order one.

Crocco's identity, checked on a flow that solves Euler exactly. The incompressible form of the identity, ∇H = u × ω, evaluated at six points of the exact rotational solution this collection uses for shear past a cylinder. The gradient of the Bernoulli function is differenced from the flow's own pressure field; the vorticity from its own stream function; and the two sides agree to about one part in a million of a gradient of order one. The identity is what says that an inviscid flow with a varying Bernoulli constant must be rotational, and it is a piece of arithmetic rather than a hypothesis.
Fig. 1 Crocco’s identity checked on a flow that solves Euler exactly. The two sides are computed by routes with nothing in common.

That is worth doing rather than quoting, because everything below rests on it and an identity that has never been made to produce a number is a definition wearing a theorem’s clothes.

What a shock does to the two terms

Across any shock, weak or strong, oblique or normal, the stagnation enthalpy is conserved exactly. That is the energy equation applied to a control volume straddling the discontinuity and it holds whatever the gas is doing.

So downstream of a shock in a uniform free stream, h0h_0 is the same on every streamline, and h0=0\nabla h_0 = 0. Crocco then reads

Ts=u×ω,T\nabla s = -\mathbf u\times\boldsymbol\omega,

with the left side non-zero as soon as the entropy varies from streamline to streamline.

A straight shock gives every streamline the same entropy rise. Both sides vanish and the flow behind a wedge is irrotational, which is why every oblique-shock calculation in this collection has been able to treat the downstream flow as a uniform stream.

A curved shock does not. Every streamline crosses it at a different angle, so every one gets a different normal Mach number and a different entropy rise.

The bow shock

Put a blunt nose in a Mach 6 stream. The shock stands off, is normal on the axis, and asymptotes to the Mach angle far out.

A curved shock, and the entropy each streamline picks up crossing it. A parabolic bow shock ahead of a blunt nose at Mach six, with the streamlines drawn arriving horizontally and a marker at each crossing whose size is the total pressure lost there. The streamline through the nose crosses a normal shock and keeps three per cent of its total pressure; one four nose radii out crosses at fourteen degrees and keeps ninety-four per cent. Every streamline gets a different entropy, and the stagnation enthalpy is the same on all of them.
Fig. 2 A parabolic bow shock with streamlines arriving horizontally, and a marker at each crossing whose size is the total pressure lost there.

The entropy rise along it, in terms of the total-pressure ratio each streamline keeps:

distance from the axis shock angle p0p_0 ratio TT behind
0 90.0° 0.0297 1,747 K
0.5 RsR_s 62.7° 0.0479
1 RsR_s 45.2° 0.1119
2 RsR_s 26.7° 0.4244
4 RsR_s 14.0° 0.9443 283 K

The streamline through the nose keeps three per cent of its total pressure; one four nose radii out keeps ninety-four. A ratio of 31.8 across a distance of four nose radii, with the stagnation enthalpy identical on all of them.

The vorticity that follows

Crocco turns that entropy gradient into a vorticity. The entropy gradient across the streamlines needs the streamtube width behind the shock, which comes from mass conservation — ρ1UΔy=ρ2q2Δn\rho_1 U\,\Delta y = \rho_2 q_2\, \Delta n — and then

ω=T2q2dsdn.\omega = \frac{T_2}{q_2}\frac{\mathrm ds}{\mathrm dn}.

It is zero on the axis, where the shock is symmetric and the entropy gradient vanishes, rises to a peak about half a nose radius out, and falls away as the shock weakens. The peak is 1,8941,894 per second for a one-metre nose at Mach 6.

The vorticity just behind the shock, against distance from the axis. Crocco's theorem turns the entropy gradient across the streamlines into a vorticity, and this is the result: zero on the axis, where the shock is symmetric and the entropy gradient vanishes, rising to a peak about half a nose radius out and falling away again as the shock weakens. There is no viscosity anywhere in the calculation. An irrotational free stream has become a rotational flow because the shock it crossed was curved.
Fig. 3 The vorticity just behind the shock, against distance from the axis. There is no viscosity anywhere in the calculation.

Showing it is the curvature

A single number proves nothing, and there is an obvious alternative explanation: perhaps the vorticity comes from the shock being strong rather than from its being curved.

The test is a sweep over the nose radius at fixed Mach number. Every member has the same entropy rise at every shock angle — the strength is identical — and only the scale changes. If the curvature is doing it, the vorticity should go as 1/Rs1/R_s.

The fitted exponent is 1.00000-1.00000.

The peak vorticity against the shock's radius of curvature. Five bow shocks of different nose radius at the same Mach number, on logarithmic axes. Every member has the same entropy rise at every shock angle — the strength of the shock is unchanged — and only its scale differs. The fitted exponent is exactly minus one: halve the nose radius and double the vorticity. A straight shock, from a wedge, has infinite radius and produces exactly none, which is the control that makes this a statement about curvature.
Fig. 4 The peak vorticity against the nose radius, on logarithmic axes. Halve the radius and double the vorticity; a wedge shock has infinite radius and makes exactly none.

And the control: a straight shock from a wedge, run through the same machinery, gives an entropy spread of exactly zero along it and therefore no vorticity at all. That is what makes the sweep a result rather than a curve.

Where the entropy rise comes from, angle by angle

The mechanism deserves one more level of detail, because the range of a factor of thirty across a few nose radii is larger than most readers expect.

Only the velocity component normal to a shock is changed by it; the tangential component passes through untouched. That is the observation the whole oblique-shock field is built on, and it means every jump across an oblique shock is the normal-shock jump at M1sinβM_1\sin\beta.

The entropy rise across a weak shock goes as the cube of (Mn1)(M_n - 1) — a result this collection derives in what a shock costs — so it is extraordinarily sensitive to the shock angle near the Mach angle and saturates at large angles. Along the bow shock, MnM_n runs from 6 on the axis down to 1 at the asymptote, and the entropy rise runs from its maximum to zero over that range with the cubic behaviour at one end.

The consequence is that the entropy gradient is not spread evenly. Most of the variation is concentrated in the first nose radius or two, which is exactly where the vorticity peaks, and is why the peak sits at about half a nose radius rather than out where the shock is turning most sharply.

The two ways vorticity gets into a flow

This collection now has both, and they are worth putting side by side because they look nothing alike.

Through a surface. Every scrap of vorticity in a flow past a body enters through its surface, at a rate given by the pressure gradient along the wall — a viscous mechanism whose rate contains no viscosity, which is that essay’s result. The vorticity then diffuses and is advected away, and the whole boundary layer is made of it.

Through a curved shock. Vorticity appears in the interior of the flow, with no surface involved and no viscosity involved, because a discontinuity has given adjacent streamlines different entropies.

The first is a wall effect, confined to a thin layer, and grows with distance along the body. The second is a field effect, spread over the whole shock layer, and is set the moment the fluid crosses the shock. A hypersonic blunt body has both, and telling them apart in a measurement is genuinely hard — which is part of why entropy-layer swallowing is an awkward subject.

There is a third mechanism this collection has met and it belongs on the list: baroclinic generation, where a pressure gradient and a density gradient are not parallel. That is Crocco’s theorem in its unsteady form, and it is what drives the mixing in a stratified flow. The curved-shock case is the baroclinic mechanism with the misalignment supplied by the shock rather than by gravity.

A curved shock, and the entropy each streamline picks up crossing it. A parabolic bow shock ahead of a blunt nose at Mach six, with the streamlines drawn arriving horizontally and a marker at each crossing whose size is the total pressure lost there. The streamline through the nose crosses a normal shock and keeps three per cent of its total pressure; one four nose radii out crosses at fourteen degrees and keeps ninety-four per cent. Every streamline gets a different entropy, and the stagnation enthalpy is the same on all of them.
Fig. 5 The same construction at Mach 10. The shock lies closer to the body, the entropy range along it is larger, and the structure of the argument is unchanged.

Where the entropy ends up

The streamline with the most entropy is the one that crossed the shock at its nose, and it is the one that ends up next to the body. So a blunt nose leaves a thin layer of high-entropy, low-density, low-total-pressure gas wrapped round the whole forebody.

The entropy layer: what the nose leaves wrapped round the body. The shock angle, total-pressure ratio and static temperature behind the shock, for streamlines crossing at five distances from the axis. The one through the nose keeps three per cent of its total pressure and arrives at 1,747 kelvin; one four radii out keeps ninety-four per cent and arrives at 283. The first of those is the streamline that ends up next to the body, so everything computed downstream — the boundary layer's edge conditions, the heat transfer, an intake's recovery — is computed against a gas thirty-two times worse in total pressure than the free stream.
Fig. 6 The entropy layer, streamline by streamline. Everything computed downstream is computed against the top row rather than against the free stream.

That layer is not a boundary layer — it is inviscid, it has no wall condition in it, and it exists in a calculation with the viscosity set to zero — and it is where the boundary layer grows. So the edge conditions for the viscous layer are the entropy layer’s conditions, which are a factor of thirty away from the free stream’s in total pressure.

This is called entropy-layer swallowing, and it is a routine and awkward part of hypersonic aerodynamics: how far downstream the boundary layer has grown thick enough to consume the entropy layer decides which edge conditions to use, and there is no clean answer.

The entropy layer: what the nose leaves wrapped round the body. The shock angle, total-pressure ratio and static temperature behind the shock, for streamlines crossing at five distances from the axis. The one through the nose keeps three per cent of its total pressure and arrives at 1,747 kelvin; one four radii out keeps ninety-four per cent and arrives at 283. The first of those is the streamline that ends up next to the body, so everything computed downstream — the boundary layer's edge conditions, the heat transfer, an intake's recovery — is computed against a gas thirty-two times worse in total pressure than the free stream.
Fig. 7 The entropy layer at Mach 8. The total-pressure ratio across it is larger again, and the stagnation enthalpy is still identical on every streamline in the table.

Why this matters more than it sounds

Three consequences, all of which follow from having a rotational inviscid flow where the theory expected an irrotational one.

Potential flow is not available. The whole apparatus of ideal flow — a single scalar, Laplace’s equation, superposition — needs irrotationality, and behind a curved shock there is none. Panel methods and potential solvers cannot be used at all in that region, which is why supersonic blunt-body work went straight from hand methods to solving the Euler equations without an intermediate stage.

The vorticity is not small. Two thousand per second at Mach 6 is comparable with the shear rate in a boundary layer on the same body, so it is not a correction to be added later.

And it is entirely a curvature effect. A wedge or a cone at incidence has a straight or conical shock and none of this; a blunt nose has all of it. The design consequence — that a sharp nose avoids the entropy layer and a blunt one does not — runs directly against the heating argument that says a nose should be blunt, and the two together are most of why hypersonic noses look the way they do.

What a designer does about it

The entropy layer is not merely an accounting inconvenience; it changes two numbers a vehicle is sized by, and in opposite directions.

The heating goes down. The gas next to the body has the lowest total pressure and the lowest density of anything in the shock layer, so the mass flux through the boundary layer is smaller than a free-stream calculation assumes and the convective heating is correspondingly lower. Using free-stream edge conditions downstream of a blunt nose is conservative, sometimes by tens of per cent.

The boundary layer is thicker and less stable. A layer growing in low-density gas is thicker for the same length, and the entropy layer’s own vorticity is a disturbance the layer sits in. Whether the entropy layer stabilises or destabilises transition on a blunt cone was argued about for decades and the answer turned out to be both, depending on the nose radius — which is the shape of question this collection gives transition a whole anchor for.

The practical upshot is that nose radius is a design variable with three separate effects pulling different ways: it sets the stagnation heating, it sets the standoff, and it sets how far downstream the entropy layer persists. There is no regime in which one of them dominates, which is why hypersonic forebody design is done by computation rather than by rule.

The peak vorticity against the shock's radius of curvature. Five bow shocks of different nose radius at the same Mach number, on logarithmic axes. Every member has the same entropy rise at every shock angle — the strength of the shock is unchanged — and only its scale differs. The fitted exponent is exactly minus one: halve the nose radius and double the vorticity. A straight shock, from a wedge, has infinite radius and produces exactly none, which is the control that makes this a statement about curvature.
Fig. 8 The curvature sweep at Mach 8. The exponent is minus one at this Mach number too, which is what says the result is about the geometry rather than about the strength.

The solvers that ignored it, and how far they got

“Potential flow is not available” is the right conclusion and it was not the one the subject acted on. For about fifteen years the most productive tool in transonic aerodynamics was a full-potential solver — a single scalar, one nonlinear equation, shocks and all — and the reason it worked is worth extracting, because it is a quantitative statement of how much Crocco’s theorem costs.

Such a code assumes the flow is irrotational and isentropic everywhere, which by the identity above means it assumes the shock produces no entropy. It then captures a shock anyway, as a jump that conserves mass and stagnation enthalpy but not momentum. That is the wrong pair to keep — the Rankine–Hugoniot conditions keep all three — so the captured jump is not the real one.

How wrong depends on strength, and the exponent is the essay’s own. The entropy rise across a weak shock goes as the cube of (Mn1)(M_n - 1), so at a normal Mach number of 1.1 the neglected quantity is minuscule and at 1.3 it is still tolerable; beyond about there the isentropic shock is placed too far aft and comes out too strong, and the discrepancy against an Euler solution grows quickly. A transonic wing at cruise sits inside that window, which is exactly why the method survived: the whole of civil transonic design happens where the cube of a small number is negligible.

Two failures of the approximation are worth knowing because neither is a small error.

It permits what the second law forbids. With entropy deleted, nothing in the equations distinguishes a compression jump from an expansion one, so a potential scheme will happily converge to an expansion shock unless a directional bias is written into its shock-point treatment on purpose. The prohibition this collection spends a whole essay on has to be reinstated by hand, as a property of the differencing rather than of the physics.

And the solutions can stop being unique. In some ranges of Mach number and incidence, transonic full-potential solutions on an aerofoil admit more than one converged answer — lift depending on which one the iteration finds — which is a defect of the model rather than of the arithmetic, and it does not occur in the Euler equations.

So the honest version of the claim is narrower and more useful than “potential flow is not available”. It is unavailable behind a curved, strong shock, where the entropy varies from streamline to streamline by factors this essay measures at thirty. Behind a nearly straight, nearly sonic one it is available to third order in the shock strength, and an entire generation of wings was designed inside that qualification.

The same identity, read three ways

Crocco’s theorem is one equation and it is used for three different purposes, which is worth disentangling.

As a statement about vorticity, which is this essay: entropy gradients make it.

As a statement about Bernoulli, which is euler-rotational: h0h_0 is constant along a streamline in steady flow, and constant everywhere only if the flow is irrotational and homentropic. That is the compressible version of the observation that Bernoulli’s constant varies across streamlines in a rotational flow.

And as a statement about what can be neglected, which is how it is most often used in practice: if a flow is homentropic and has uniform stagnation enthalpy, it is irrotational and everything easy is available. The value of the identity is that it makes that a checkable pair of conditions rather than an assumption.

What is not in the velocity field

The entropy field.

The velocity field behind a bow shock is a perfectly ordinary rotational field, and nothing in it says where its vorticity came from. What Crocco supplies is the connection to a thermodynamic quantity that a velocity field does not contain and that has to be carried along separately — one number per streamline, set at the shock and conserved afterwards.

That is a real bookkeeping burden. A code solving the Euler equations behind a bow shock is carrying the entropy implicitly in its state vector and cannot avoid it; a code solving a potential equation cannot represent it at all. The presence of a curved shock in a flow field is the thing that decides which of those two a problem needs, and it is decided by the geometry of the nose rather than by anything about the speed.

The model limit

Three.

The shock shape is a model. A parabola with a stated nose radius is not a solution: the real standoff and curvature come from solving the whole blunt-body problem, and the standoff is what the next essay computes. What is needed here is only that the shock is curved and that its local angle is known, and a parabola supplies both.

The vorticity is computed immediately behind the shock. Downstream it changes, because the streamtubes continue to deform and Crocco continues to hold with the same entropy on each streamline. Following it means solving the flow, which this calculation does not.

And γ is 1.4. At Mach 6 the temperature behind the normal part is 1,747 K, where the vibrational mode is well into filling and γ is nearer 1.34. That changes the entropy rise on the streamlines nearest the axis and therefore the gradient, so the vorticity computed here is right in its scaling and approximate in its value — which is the usual position for a perfect-gas calculation at these speeds.

And the streamtube-width step deserves naming as a limit of its own. Converting an entropy gradient measured along the shock into one measured across the streamlines uses mass conservation in each streamtube, which is exact, and then treats the streamtube as locally straight, which is not. Close to the axis, where the streamlines are turning most sharply, that introduces an error of the order of the local curvature times the tube width — small for the sampling used here and not negligible for a nose radius comparable with the standoff.

What links here

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

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.

Boundary layerCrocco theoremEntropyEntropy layerInviscidIrrotationalModel limitOblique shockShock waveStagnation temperatureTotal pressureVorticity