Numerical Methods for PDEs

the finite volume method

Many of the most important PDEs — fluid flow, gas dynamics, traffic — are conservation laws: they say some quantity (mass, momentum, energy, cars) is neither created nor destroyed, only moved around. A great numerical method for such equations should conserve that quantity exactly, not just approximately, or it will leak mass and lie about totals. The finite volume method is built from the ground up to do exactly this, which is why it dominates computational fluid dynamics.

The idea is bookkeeping on small boxes. Divide the domain into little control volumes (the 'cells') and, instead of tracking the value at a point, track the AVERAGE of the unknown over each cell. Now apply the integral form of the conservation law to each cell: the rate of change of the total stuff inside a cell equals the net flux flowing in through its faces minus the flux flowing out — exactly the divergence theorem turned into a balance sheet. The update for a 1D cell i reads (u_i new - u_i old)/dt = -(F_{i+1/2} - F_{i-1/2})/h, where F_{i+1/2} is the numerical flux across the face between cell i and cell i+1. The beautiful consequence: the flux LEAVING one cell is identically the flux ENTERING its neighbour, so when you sum over all cells everything cancels in the interior and the total quantity changes only through the outer boundary. Conservation is built in, exactly, regardless of mesh quality.

Everything then hinges on how you choose the numerical flux F at each face, because the cell averages on the two sides generally disagree — this is a tiny Riemann problem at every face. Simple centred fluxes are unstable for advection; upwind fluxes (take the value from the side the flow comes from) are stable but diffusive; Godunov's method solves the local Riemann problem; and flux limiters blend high- and low-order fluxes to stay sharp without oscillating. The Lax–Wendroff theorem rewards all this care: if a conservative scheme converges, it converges to a genuine weak solution of the conservation law (shocks in the right place, moving at the right Rankine–Hugoniot speed) — something a non-conservative scheme can fail to do, putting shocks in the wrong location.

For traffic on a road modelled as a conservation law, the finite volume update tracks the number of cars in each road segment; whatever leaves segment i at its right face is exactly what enters segment i+1. Total cars on the road change only by what crosses the two ends — no spurious creation or loss, even where a traffic-jam shock forms.

Flux out of one cell equals flux into the next — conservation is exact by construction.

Conservation is structural, but accuracy and getting shocks in the RIGHT place is not automatic — it depends entirely on the numerical flux. A naive central flux conserves perfectly yet oscillates wildly near a shock; conservation alone does not buy you a good answer.

Also called
FVMcontrol-volume method有限容積法控制體積法