Numerical Methods for PDEs: Finite Differences

an upwind scheme

Information in a flow has a direction. If a river carries a dye blob downstream, then what arrives at a point came from UPSTREAM — never from downstream, where the water has not been yet. A finite-difference scheme for advection ought to respect that arrow of flow, and a naive symmetric (central) difference does not: it looks equally in both directions, including downstream where the relevant information simply is not. The upwind scheme fixes this by deliberately leaning its stencil into the wind — using the neighbour the flow is coming FROM.

Consider the advection equation u_t + c*u_x = 0, which transports the profile rightward at speed c (taking c > 0). The upwind scheme approximates the space derivative with a BACKWARD (left-leaning) difference, u_x = (u_j - u_{j-1})/h, because the information at node j is flowing in from the left. Combined with a forward time step, the update is u_j^{n+1} = u_j^n - C*(u_j^n - u_{j-1}^n) with Courant number C = c*k/h. If instead c < 0 (flow to the left), you must switch to a FORWARD difference (u_{j+1} - u_j)/h to keep leaning upstream — the stencil flips with the sign of the speed. The scheme is stable under the CFL condition 0 <= C <= 1, and it is monotone: it will not manufacture new overshoots or oscillations.

Upwinding's honesty is its built-in trade-off. Choosing the correct one-sided direction is what makes it stable where central differencing (FTCS for advection) is unconditionally unstable — getting the direction wrong, leaning downstream, blows up immediately. But the price is heavy numerical dissipation: a Taylor analysis shows first-order upwind is equivalent to solving u_t + c*u_x = (c*h/2)(1 - C)*u_xx, an artificial viscosity that smears sharp fronts into smooth ramps. So upwinding buys robustness and monotonicity at the cost of accuracy and smearing. It is the conceptual seed of all modern shock-capturing methods, which keep its respect-the-flow-direction principle but add slope limiters and higher-order reconstructions to cut the excessive smearing while staying non-oscillatory.

Transport with c = 1, h = 0.1, k = 0.05 (Courant number 0.5). Upwind update: u_j^{new} = u_j - 0.5*(u_j - u_{j-1}). A value of 3 with left neighbour 7 becomes 3 - 0.5*(3 - 7) = 3 + 2 = 5 — pulled toward the upstream value, correctly shifting the profile rightward. Use a central difference instead and the same setup is unconditionally unstable; lean the wrong way (use u_{j+1}) and it explodes at once.

Lean the stencil upstream: stable and monotone, but it smears sharp fronts.

The whole point of upwinding is to use the correct UPSTREAM side, which depends on the SIGN of the flow speed — for variable or sign-changing speeds you must switch the stencil locally (flux-splitting). First-order upwind is robustly stable and oscillation-free but heavily dissipative; getting genuine accuracy needs higher-order extensions (limiters, MUSCL) that preserve the upwind idea without the smear.

Also called
upwind differencingone-sided scheme for advection迎風差分單側格式