the Godunov scheme
/ GO-doo-nof /
Suppose you are solving a conservation law with the finite volume method and you reach the crucial question: across the face between two cells, whose value sets the flux? The two cell averages disagree, and that disagreement is a tiny jump — a built-in step in the data, exactly the setup of a Riemann problem (initial data that is one constant on the left and another on the right). Godunov's brilliant 1959 idea was to take that jump seriously and SOLVE the little Riemann problem at every face, then use its answer to define the flux.
Concretely, the scheme treats the piecewise-constant cell averages as the initial data of a fan of local Riemann problems, one at each cell face. For each, you solve (often exactly) how that single jump evolves — into a shock, a rarefaction, or a contact, moving at the physically correct speed — and read off the value sitting right at the face. That value gives the numerical flux for the conservative update. Because the Riemann solution respects the true wave structure of the equation, Godunov's scheme is naturally UPWIND: information is taken from whichever side the waves actually come from, which is exactly what makes it stable. For the simplest scalar problems it reduces to plain upwinding; for systems like gas dynamics it requires a genuine Riemann solver and becomes the prototype for all modern shock-capturing methods.
Godunov's method is the foundational shock-capturing scheme: it is conservative (so it puts shocks in the right place via Lax–Wendroff), monotone, and it captures discontinuities without the wild oscillations that plague naive high-order schemes. Its price is twofold. First, it is only FIRST-order accurate, so it smears smooth features with heavy numerical diffusion — the trade-off for its robustness. Second, exact Riemann solvers can be expensive, so in practice people use approximate ones (Roe, HLL, HLLC). The famous Godunov order barrier — that a linear, monotone scheme can be at most first-order accurate — is precisely the wall that nonlinear flux limiters and higher-order Godunov-type (MUSCL, ENO/WENO) methods were invented to climb over.
For inviscid Burgers' equation u_t + (u^2/2)_x = 0 with a cell jump from u_L = 2 down to u_R = 0, the local Riemann solution is a shock moving at the Rankine–Hugoniot speed (u_L + u_R)/2 = 1; Godunov reads the face value as 2 (the upwind side) and so transports the jump at the correct shock speed without spurious wiggles.
Solve a Riemann problem at every face; the answer is the flux.
Godunov's order barrier is real: no LINEAR monotone scheme exceeds first-order accuracy. Beating it without introducing oscillations forces NONLINEAR methods (limiters, ENO/WENO) — this theorem is why higher-order shock capturing is intrinsically nonlinear.