Upwind scheme

From Wikipedia, the free encyclopedia
Jump to: navigation, search

In computational physics, upwind schemes denote a class of numerical discretization methods for solving hyperbolic partial differential equations. Upwind schemes use an adaptive or solution-sensitive finite difference stencil to numerically simulate the direction of propagation of information in a flow field. The upwind schemes attempt to discretize hyperbolic partial differential equations by using differencing biased in the direction determined by the sign of the characteristic speeds. Historically, the origin of upwind methods can be traced back to the work of Courant, Isaacson, and Rees who proposed the CIR method.[1]

Model equation[edit]

To illustrate the method, consider the following one-dimensional linear advection equation

  \qquad \frac{\partial u}{\partial t} + a \frac{\partial u}{\partial x} = 0

which describes a wave propagating in the x-direction with a velocity a. This equation is also a mathematical model for one-dimensional linear advection. Consider a typical grid point i in the domain. In a one-dimensional domain, there are only two directions associated with point i – left and right. If a is positive the left side is called upwind side and right side is the downwind side. Similarly, if a is negative the left side is called downwind side and right side is the upwind side. If the finite difference scheme for the spatial derivative, \partial u / \partial x contains more points in the upwind side, the scheme is called an upwind-biased or simply an upwind scheme.

First-order upwind scheme[edit]

The simplest upwind scheme possible is the first-order upwind scheme. It is given by[2]

  \quad (1) \qquad \frac{u_i^{n+1} - u_i^n}{\Delta t} + a \frac{u_i^n - u_{i-1}^n}{\Delta x} = 0 \quad \text{for} \quad a > 0

  \quad (2) \qquad \frac{u_i^{n+1} - u_i^n}{\Delta t} + a \frac{u_{i+1}^n - u_i^n}{\Delta x} = 0 \quad \text{for} \quad a < 0

Compact form[edit]


  \qquad \qquad a^+ = \text{max}(a,0)\,, \qquad a^- = \text{min}(a,0)


  \qquad \qquad u_x^- = \frac{u_i^{n} - u_{i-1}^{n}}{\Delta x}\,, \qquad u_x^+ = \frac{u_{i+1}^{n} - u_{i}^{n}}{\Delta x}

the two conditional equations (1) and (2) can be combined and written in a compact form as

  \quad (3) \qquad u_i^{n+1} = u_i^n - \Delta t \left[ a^+ u_x^- + a^- u_x^+ \right]

Equation (3) is a general way of writing any upwind-type schemes.


The upwind scheme is stable if the following Courant–Friedrichs–Lewy condition (CFL) condition is satisfied.[3]

  \qquad \qquad c = \left| \frac{a\Delta t}{\Delta x} \right| \le 1 .

A Taylor series analysis of the upwind scheme discussed above will show that it is first-order accurate in space and time. The first-order upwind scheme introduces severe numerical diffusion in the solution where large gradients exist[dubious ].

Second-order upwind scheme[edit]

The spatial accuracy of the first-order upwind scheme can be improved by including 3 data points instead of just 2, which offers a more accurate finite difference stencil for the approximation of spatial derivative. For the second-order upwind scheme, u_x^- becomes the 3-point backward difference in equation (3) and is defined as

  \qquad \qquad u_x^- = \frac{3u_i^n - 4u_{i-1}^n + u_{i-2}^n}{2\Delta x}

and u_x^+ is the 3-point forward difference, defined as

  \qquad \qquad u_x^+ = \frac{-u_{i+2}^n + 4u_{i+1}^n - 3u_i^n}{2\Delta x}

This scheme is less diffusive compared to the first-order accurate scheme and is called linear upwind differencing (LUD) scheme.

Third-order upwind scheme[edit]

For the third-order upwind scheme, u_x^- in equation (3) is defined as

  \qquad \qquad u_x^- = \frac{2u_{i+1} + 3u_i - 6u_{i-1} + u_{i-2}}{6\Delta x}

and u_x^+ is defined as

  \qquad \qquad u_x^+ = \frac{-u_{i+2} + 6u_{i+1} - 3u_i - 2u_{i-1}}{6\Delta x}

This scheme is less diffusive compared to the second-order accurate scheme. However, it is known to introduce slight dispersive errors in the region where the gradient is high.

See also[edit]


  1. ^ Courant, Richard; Isaacson, E; Rees, M. (1952). "On the Solution of Nonlinear Hyperbolic Differential Equations by Finite Differences". Comm. Pure Appl. Math. 5: 243..255. doi:10.1002/cpa.3160050303. 
  2. ^ Patankar, S. V. (1980). Numerical Heat Transfer and Fluid Flow. Taylor & Francis. ISBN 978-0-89116-522-4. 
  3. ^ Hirsch, C. (1990). Numerical Computation of Internal and External Flows. John Wiley & Sons. ISBN 978-0-471-92452-4.