Finite volume method Created 2026-10-07 Updated 2026-10-14
The finite volume method follows the amount of a conserved quantity inside each control volume. Its unknowns are cell averages, rather than values at isolated points: a cell's width times its stored average approximates that cell's total. A numerical flux transfers an amount across a face. Using one shared transfer for both neighboring cells makes the loss from one exactly the gain of the other, as explained in shared face flux cancellation.[ref]
Riemann Problems and Jupyter Solutions by David I. Ketcheson, Randall J. LeVeque, and Mauricio J. del Razo. Approximate solvers, §Finite volume methods, equation FVupdate and the following cancellation argument
For a one-dimensional scalar conservation law without sources, let , with conservation law flux . Fix cells of widths . Define the exact cell average and its numerical approximation byThe integral balance over one cell and one time interval of length isFor a smooth solution this follows by integration of the differential equation; with jump discontinuities, it expresses the conservation law in integral form, using appropriate face traces when they exist. Replacing each time-averaged face conservation law flux by a numerical flux givesThus the finite volume method implements a balance directly, without needing a pointwise derivative at a jump. The tube balance in Riemann Problems and Jupyter Solutions by David I. Ketcheson, Randall J. LeVeque, and Mauricio J. del Razo (Advection, §Conservation of mass) motivates this construction from conservation of mass.
This is useful for shock waves: their speed is constrained by the Rankine-Hugoniot condition, itself an integral balance. A nonconservative approximation can give a visibly plausible jump with the wrong speed. Conservation is one requirement; a nonlinear scalar conservation law also needs the correct entropy solution, and the chosen numerical flux and update need their own stability and accuracy analysis.[ref]
Riemann Problems and Jupyter Solutions by David I. Ketcheson, Randall J. LeVeque, and Mauricio J. del Razo. Approximate solvers, §§Finite volume methods, Godunov's method, High-resolution methods: wrong shock speeds, time-step restrictions and smeared jumps
The original periodic upwind finite volume advection example isolates the shared-transfer mechanism in a problem with a known translated solution. Numerical flux Created 2026-10-07 Updated 2026-10-14
A numerical flux estimates the rate of transfer across a cell face from nearby states. In the finite volume method update, approximates the conservation law flux averaged over the time step; is the transferred amount. For a two-state numerical flux approximating a scalar conservation law with conservation law flux , consistency of a numerical method requires . Thus equal states recover the physical transfer rate. With constant equal-width cells, this also preserves a constant state because its incoming and outgoing numerical fluxes agree.[ref]
Riemann Problems and Jupyter Solutions by David I. Ketcheson, Randall J. LeVeque, and Mauricio J. del Razo. Approximate solvers, §Finite volume methods, consistency paragraph after equation FVupdate
Consistency and shared face flux cancellation answer different questions: matching at equal states approximates the intended equation, while sharing one oriented face value preserves the total. The example periodic upwind finite volume advection uses for , so the arriving state comes from the left. The Godunov numerical flux uses an entropy solution of a local Riemann problem; the Engquist-Osher flux provides a different construction for a scalar conservation law. A monotone conservative scheme uses a numerical flux nondecreasing in its left state and nonincreasing in its right state, together with a time step that makes the complete update monotone. Neither two-state consistency nor conservation by itself supplies that time-step restriction or a general stability or order of a numerical method guarantee.
Periodic upwind finite volume advection 2026-10-14
Consider the advection equation with constant speed , no sources, and periodic boundary conditions on . Use equal cells of width , time step , and indices modulo . The exact solution is the periodic translation . At a face, the Riemann problem transports the left state to the right, so the two-state upwind numerical flux is , with .[ref]
Riemann Problems and Jupyter Solutions by David I. Ketcheson, Randall J. LeVeque, and Mauricio J. del Razo. Advection, equations adv:advection and adv:solution, §The Riemann problem; Approximate solvers, §High-resolution methods: reduction to upwind advection
The finite volume method with this numerical flux and an explicit Euler method step givesHere represents a cell average; the recurrence also occurs in the upwind finite difference scheme. Impose the specific CFL condition . Each updated cell average is then a convex combination of two old ones. This proves preservation of their initial minimum and maximum, including nonnegativity for nonnegative data, and contraction of the maximum norm of the difference of two solutions on this periodic grid. These statements concern this constant-speed scalar update with this time step.
For an original synthetic example, take , , , , hence Courant number . Choose a function constant on each successive cell, with the following values, so these are exact initial cell averages. One step givesFor example, cell zero receives from cell seven across the periodic face: . All eight face transfers cancel in the total by shared face flux cancellation. More generally this periodic recurrence conserves the total algebraically for any , even though the CFL condition is needed for the convex combination argument. With the same initial data and , one step gives and , despite preserving the total.
Original periodic upwind profile at zero, one and four steps: the integral remains three quarters while jumps spread
. Details. After four steps, , the exact translated profile has moved two cells to the right. Repeated averaging instead gives the explicit binomial coefficient formulawith all indices modulo eight. The diagram compares these computed cell averages with the exact translated cell averages. Their integrals agree, but the numerical jumps spread across cells. The finite volume method is useful for jump discontinuities because it retains the integral balance even at a jump; conservation alone does not guarantee a sharp profile. At this particular update is an exact one-cell shift, whereas for it mixes neighboring states. No accuracy conclusion at a jump follows just from the conserved total.
