JOVANA
Explore Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

The Rankine-Hugoniot Jump Condition

Once a shock forms, the characteristics no longer tell you how fast it moves. Conservation does — and the answer is a single, beautifully simple formula: the shock speed is the jump in flux divided by the jump in the quantity itself.

Where the last guide left us

In the previous guide you watched something dramatic happen to a perfectly smooth flow. A scalar conservation law u_t + f(u)_x = 0 carries its values along characteristics whose speed depends on u itself, so a fast part of the profile catches up to a slow part, the characteristics cross, and the would-be solution tries to become triple-valued. The smooth solution dies in finite time — that is shock formation — and at the moment it dies, a clean vertical cliff, a shock, appears in the profile.

Here is the honest problem this leaves us with. Past the moment of breaking, the PDE in its classical form is meaningless: you cannot differentiate a function that has a jump, so u_x simply does not exist at the cliff. A classical solution no longer exists, yet physically the gas keeps flowing, the cars keep driving, the water keeps running. We need a notion of solution that allows jumps — a weak solution — and once we have one, we need to know one thing above all: how fast does the cliff move?

Notice what is not going to answer that for us. The characteristics, our trusty guides up to now, are exactly the things that crashed into each other and broke down; on either side of the shock they point toward the cliff, not along it. So they cannot tell us the shock's speed. Something older and more robust has to step in — and that something is conservation itself, the very law the PDE was born from.

Going back to the conservation behind the equation

Remember how the equation u_t + f(u)_x = 0 was built in the first place — this is the lesson of PDEs from conservation laws. You picked a fixed interval [a, b] on the line, you said the amount of stuff inside it can only change because stuff flows in across a and out across b, and you wrote that bookkeeping as an integral balance. The PDE is what you get when you assume the profile is smooth and shrink the interval to a point. The integral law is the parent; the PDE is the smooth child.

The crucial point is that the parent does not need smoothness to make sense. The integral statement — the rate of change of the total amount inside [a, b] equals the inflow flux at a minus the outflow flux at b — is perfectly happy with a jump sitting somewhere inside the interval. An integral of a function with a cliff is no trouble at all; it is only the derivative that chokes. So when the PDE breaks down, we do not throw away the physics. We retreat to the integral conservation law, which still holds, and we let it tell us how the shock must behave.

Deriving the jump speed with a shrinking box

Here is the picture. At some instant the shock sits at position x = s(t), and it is moving — let its speed be the number we want, call it sigma = ds/dt. Just to the left of the cliff the solution takes a constant-ish value u_L; just to the right it takes u_R. The flux carried by each side is f(u_L) on the left and f(u_R) on the right. Now draw a tiny fixed interval [a, b] straddling the shock, so the cliff is somewhere inside it, and watch the total amount Q of stuff in that box over a short time.

Two accounts of how Q changes must agree. First account — flux at the walls: stuff enters the box across the left wall at rate f(u_L) and leaves across the right wall at rate f(u_R), so dQ/dt = f(u_L) - f(u_R). Second account — geometry of the moving cliff: as the shock slides rightward by an amount sigma·dt, it converts a sliver of right-state into left-state. That sliver has width sigma·dt and changes the local value by (u_L - u_R), so the box gains stuff at rate sigma·(u_L - u_R). Both accounts measure the same dQ/dt, so set them equal.

sigma * (u_L - u_R)  =  f(u_L) - f(u_R)

         f(u_L) - f(u_R)        [ f ]      jump in flux
sigma =  ---------------   =   -------  =  -------------------
           u_L - u_R           [ u ]      jump in the quantity

  ( s'(t) = shock speed,  [.] = value just behind minus just ahead )
The Rankine-Hugoniot condition: the shock speed equals the jump in flux divided by the jump in u.

Dividing through gives the Rankine-Hugoniot condition: sigma = (f(u_L) - f(u_R)) / (u_L - u_R), written compactly as sigma = [f] / [u], where the brackets mean "the jump across the shock." That is the whole result — one of the most quietly important formulas in the subject. It says the speed of a discontinuity is not a free choice and not the characteristic speed on either side; it is rigidly fixed by how much flux jumps relative to how much the conserved quantity jumps.

A worked example, and the average-speed picture

Let us pin it down on the friendliest possible model, Burgers' equation u_t + (u^2/2)_x = 0, where the flux is f(u) = u^2/2. Suppose a shock has u_L = 2 behind it and u_R = 1 ahead of it. The fluxes are f(2) = 2 and f(1) = 1/2. Rankine-Hugoniot gives sigma = (2 - 1/2) / (2 - 1) = (3/2) / 1 = 3/2. So the cliff marches to the right at speed 3/2.

For Burgers' equation there is a lovely sanity check hiding here. The characteristic speed is f'(u) = u, so the left characteristics travel at speed 2 and the right ones at speed 1. The shock speed 3/2 is exactly the average of the two, (u_L + u_R)/2. That is special to Burgers (because its flux is quadratic), but it captures the right intuition everywhere: a shock moves at a speed wedged between the characteristic speeds on its two sides — fast characteristics behind it run into it, slow ones ahead get overtaken, and the cliff drifts at some compromise rate in between.

The honest catch: it fixes the speed, not which shock is right

Now for the candid small print, because Rankine-Hugoniot is powerful but it is not the end of the story. The condition tells you the speed any admissible jump must travel at — but it does not tell you whether a given jump is allowed in the first place. The formula is perfectly happy to assign a speed to a jump that runs the wrong way. For Burgers with u_L = 1 behind and u_R = 2 ahead, the same arithmetic gives sigma = 3/2 again, a jump where the slow state is behind and the fast state is ahead.

That second jump satisfies Rankine-Hugoniot exactly, yet it is unphysical: it is a shock that creates information out of nothing, with characteristics emerging from the discontinuity instead of running into it. Worse, the very same initial data also admits a perfectly smooth fan that spreads the states apart — a rarefaction wave. So a weak solution that merely obeys the jump condition is not unique: we have written down two different solutions to the same problem, both satisfying Rankine-Hugoniot, and the formula alone cannot tell us which one nature picks.

This is the famous loss of uniqueness for nonlinear conservation laws, and it is genuinely a feature of the mathematics, not a mistake in our derivation. The jump condition is necessary but not sufficient. What is missing is an extra admissibility rule — an entropy condition — that throws out the backward, information-creating jumps and keeps only the ones that compress, the ones along which characteristics flow in. That selection rule, and the precise sense in which it restores a single physical answer, is exactly where the Riemann problem and the next guide take us.