You are on page 1of 33



4.1 The scalar-transport equation

4.2 Control-volume notation
4.3 The steady-state 1-d advection-diffusion equation
4.4 Discretising diffusion
4.5 Discretising the source term
4.6 Assembling the algebraic equations
4.7 Extension to 2 and 3 dimensions
4.8 Discretising advection (part 1)
4.9 Discretisation properties
4.10 Discretising advection (part 2)
4.11 Implementation of advanced advection schemes
4.12 Implementation of boundary conditions
4.13 Solution of the algebraic equations

4.1 The Scalar-Transport Equation

This is a generic equation for any transported physical quantity (momentum, energy, ...) For
an arbitrary control volume V:
inside V
inside V out of boundary
The total flux comprises advection (transport with the flow) and
diffusion (molecular, or due to turbulent fluctuations). The resulting V un
scalar-transport or advection-diffusion equation for concentration may A
be written, for any control volume (or cell) as:
(mass ) + ( mass flux A ) = S
dt faces n
rate of change advection diffusion source

(Any non-advective fluxes not described by gradient diffusion can be transferred to the
source term.)

4.2 Control-Volume Notation

The commonest configurations are cell-centred storage or cell-vertex storage.

cell-centred cell-vertex

CFD 41 David Apsley

This course focuses on structured meshes using cell-centred storage. (Unstructured meshes
will be discussed briefly in Section 9, but the 2nd edition of Versteeg and Malalasekeras book
gives a much better description.)

A typical 3-d control volume is shown right. Relative to T

the cell centre (point P) the coordinate directions are
commonly denoted west, east, south, north, bottom, top
with: t
lower case w, e, s, n, b, t used for cell faces; N
upper case W, E, S, N, B, T for adjacent nodes. W w
For a Cartesian mesh these would usually correspond to s P e
x, y, z directions respectively. E
Cell-face areas will be denoted Aw, Ae, As, An, Ab, At. k
Cell volumes will be denoted V. In 2 dimensions one
can think of a single layer of cells with unit depth. B

When referring to the entire set of control volumes (as opposed to looking at a representative
one) it is common to switch between local geographic and ijk notation, so that
P ijk, E i+1 jk , etc.

NN i,j+2

N i,j+1
WW Ww P e E EE i-2,j i-1,j i,j i+1,j i+2,j

j i,j-2

CFD 42 David Apsley

4.3 The Steady-State 1-D Advection-Diffusion Equation

Consider first the steady-state, 1-d advection-diffusion equation. This is worthwhile because:
it simplifies the analysis;
it can be solved by hand;
subsequent generalisation to 2 and 3 dimensions is straightforward;
in practice, discretisation of fluxes is generally carried out coordinate-wise;
many important theoretical problems are 1-d.

Integral (Control-Volume) Form

Conservation for one control volume gives

area A
fluxe flux w = source (1)

If is the amount per unit mass, then the total flux has flux w source flux e
advective and diffusive parts:
advection: ( uA) x
diffusion: A
If s is the source per unit length then the advection-diffusion equation for is
d d
uA A uA A = s x (2)
dx e dx w

Conservative Differential Form

Dividing by x and taking the limit as x 0 gives a corresponding differential equation:

d d
( uA A ) = s (3)
dx dx

Non-Conservative Differential Form

Mass conservation implies that uA = constant and hence (3) can also be written
d d d
uA ( A ) = s (4)
dx dx dx

This system is quasi-1-d in the sense that the cross-sectional area A may vary. To
solve a truly 1-d problem, set A = 1. The differential equation is then
d d
( u )=s
dx dx
In this instance, , u, and s are assumed to be known. In the general CFD problem, u
is itself the subject of a transport equation.

CFD 43 David Apsley

Classroom Example 1
T = 20o C

T=100 C

Rod dx =0

0 s = -c(T-T ) 1

A thin rod has length 1 m and cross-section 1 cm 1 cm. The left-hand end is kept at 100 C,
whilst the right-hand end is insulated. The heat flux across any section of area A is given by
where the conductivity k = 1000 W m1 K1.

The rod is allowed to cool along its length at a rate proportional to its difference from the
ambient temperature (Newtons law of cooling); i.e. the heat loss per unit length is:
s = c(T T )
where the ambient temperature T = 20 C and the coefficient c = 2.5 W m1 K1.

(a) Write down and solve the differential equation satisfied by the temperature.
(b) Divide the rod into 5 control sections with nodes at the centre of each section and
carry out a finite-volume analysis to find the temperature along the rod.

4.4 Discretising Diffusion

Gradient diffusion is usually discretised by a central differencing W P

w e E
approximation for the derivative:
d P
A ( A) e E (5)
dx e x
d A
i.e. A De ( E P ) where D (6)
dx e x
D is a diffusive transfer coefficient.

A similar expression is used for the west face:

A D w ( P W )
dx w

In the finite-volume method, fluxes are required at cell faces, not nodes.
This approximation for (d/dx)e is second-order accurate in x (see later).
If the diffusivity varies then its cell-face value must be obtained by interpolation.
Equal weight is applied to the nodes on either side of the cell face, consistent with
diffusion acting equally in all directions. Later on, we shall see that this contrasts with
advection, which has a directional bias.

CFD 44 David Apsley

4.5 Discretising the Source Term

When the source is proportional to the amount of fluid, the total source strength for the cell is
S = sV (source per unit volume) (volume)
In 1-d problems V is the cell length, x, so
S=s x

s may depend on the solution as in the example above. The source term is conveniently
broken down into -independent and -dependent parts in the linear form
source = bP + s P P , sP 0
The reason for this particular form will become apparent later.

4.6 Assembling the Algebraic Equations

As seen in the classroom example, when there is no flow (u = 0) the steady-state diffusion
problem discretises as follows.
flux e flux w = source
De ( E P ) + D w ( P W ) = b P + s P p
or, collecting multiples of P, E and W together:
Dw W + ( Dw + De s p ) P De E = bP

This is commonly written

a w W + a P P a E E = b P
or, in a notation that generalises to 2 and 3 dimensions (and to the case with flow):
a P P a F F = bP (8)

(8) is a canonical form for the discretised scalar-transport equation.

There will be a discretised equation of this form for each variable and for each control
volume. For one variable , if the nodal values are assembled into a vector then the set of
algebraic equations takes the form
O O 0 M M


aW a P a E = b

0 O O M M

For a 1-d system this is tri-diagonal. If the coefficients are constants then it can be solved
directly by Gaussian elimination or very efficiently on a computer by the tri-diagonal matrix
algorithm or TDMA (see the Appendix). If the elements of the matrix are dependent on the
solution then it must be solved iteratively.

CFD 45 David Apsley

4.7 Extension to 2 and 3 Dimensions
flux n
For a multi-dimensional flow the net flux out of a cell can be
obtained by summing the outward fluxes through all faces.
flux w source flux e
For quadrilateral elements (in 2d) or hexahedral elements (in
3d) then the net flux out of a cell is simply the sum of the net
fluxes through opposing sides and the general conservation flux s
equation may be written:
( flux e flux w ) + ( flux n flux s ) + ( fluxt fluxb ) = source (9)

The discretised equations are still assembled in the same matrix form
a P P a F F = bP (10)
with the summation extended to include nodes in the other directions.

Combining the individual equations (10) from all control

volumes gives a matrix equation for the set of nodal values. In
two dimensions this gives the banded matrix system shown.
Further bands appear in three dimensions.

Thus, equation (10) has the same form in 1-, 2- or 3-d problems, but in multiple dimensions
the summation is extended to the other (S, N, B, T) nodes and there is a corresponding
increase in the number of non-zero diagonals in the assembled matrix equation. This makes
the matrix equation much harder to solve (see Section 4.13).

Equation (10) formally describes the discretisation for a single control volume in an
unstructured mesh. However, since the nodes do not have a simple ijk indexing, the resulting
matrix and solution method for unstructured meshes are much more complex.

CFD 46 David Apsley

Classroom Example 2 (Computational Hydraulics Exam, June 2009 extended by part(h))

A 2-d finite-volume calculation is to be undertaken for uN

fully-developed, laminar flow between stationary, plane,
parallel walls. A streamwise pressure gradient
dp/dx = G is imposed and the fluid viscosity is . The
depth of the channel, H, is divided into N equally-sized u j+1
cells of dimension x y 1 as shown, with the
velocity u stored at the centre of each cell. uj
H y

(a) What are the boundary conditions on velocity?
(b) What is the net pressure force on a single cell?

(c) Using a finite-difference approximation for velocity gradient, find expressions for the
viscous forces on upper and lower faces of the jth cell in terms of the nodal velocities
{uj}. (You will need to deal separately with interior cells and the boundary cells j = 1
and j = N.)

(d) By balancing pressure and viscous forces set up the finite-volume equations for the
velocity field.

(e) Solve for the nodal velocities in the case N = 6, leaving your answers as multiples of
U 0 = GH 2 / . (You are advised to note the symmetry of the problem.)

(f) Using your numerical solution, find the volume flow rate (per unit span) Q in terms of
U0 and H.

(g) Find the wall shear stress w.

(h) Compare your answers to (e), (f) and (g) with the exact solution for plane Poiseuille

CFD 47 David Apsley

4.8 Discretising Advection (Part 1)

Purely diffusive problems (u = 0) are of passing interest only. In typical engineering flow
problems, advection fluxes far exceed diffusive fluxes because the Reynolds number
(Re UL/ = ratio of inertial forces [mass acceleration] to viscous forces) is very large.

The 1-d steady-state advection-diffusion equation is u

fluxe flux w = source
where, with mass flux C (= uA): W w P e E
flux = C A
Discretising the diffusion and source terms as before, the equation becomes
[C e e C w w ] [ De ( E P ) Dw ( P W )] = bP + s P P
advection diffusion source

e and w have yet to be approximated. The problem is how to approximate these face
values in terms of the values at adjacent nodes. A method of specifying these face values in
order to calculate advective fluxes is called an advection scheme or advection-differencing

Classroom Example 3.

=0 u d
dx =0
x= 0 L

A pipe of cross-section A = 0.01 m2 and length L = 1 m carries water (density

= 1000 kg m3) at velocity u = 0.1 m s1.

A faulty valve introduces a reactive chemical into the pipe half-way along its length at a
rate of 0.01 kg s1. The diffusivity of the chemical in water is = 0.1 kg m1 s1. The
chemical is subsequently broken down at a rate proportional to its concentration (mass
of chemical per unit mass of water), this rate amounting to per metre, where
= 0.5 kg s1 m1.

Assuming that the downstream boundary condition is d/dx = 0, set up a finite-volume

calculation with 7 cells to estimate the concentration along the pipe using:
(a) central
(b) upwind
differencing schemes for advection.

CFD 48 David Apsley

4.8.1 Central Differencing
In central differencing for advection the cell-face value is
approximated by the average of values at the nodes on either side: P E
e = 12 ( P + E ) e
This is second-order accurate for e in terms of x (see later).
Substituting into (11) (with a similar expression for w) gives
2 C e ( P + E ) 2 C w (W + P ) De ( E P ) + Dw ( P W ) = bP + s P P
1 1

or, collecting terms,

( 12 C w + Dw )W + ( 12 C e 12 C w + De + Dw s P ) P ( 12 C e + De ) E = bP

In the canonical notation:

a P P a F F = bP
where, in one dimension:
aW = 12 C w + Dw
a E = 12 C e + De (12)
a P = a E + aW s P + (C e C w )
(By mass conservation, Ce Cw = 0, so that the expression for aP can be simplified.)

The graphs below show the solution of an advection-diffusion problem with no sources and
constant diffusivity for the two combinations
Pe = 1/2 (advection diffusion) (equation: 54 W + 2 P 34 E = 0 )
Pe = 4 (advection diffusion) (equation: 3W + 2 P + E = 0 )
where the Peclet number Pe is defined by
C advection u x
Pe = i.e. = (13)
D diffusion

Pe = 1/2 Pe = 4

In the first case the solution is good (consistent with second-order accuracy).

In the second case there are pronounced wiggles in what should be a perfectly smooth
solution. What is wrong?

CFD 49 David Apsley

Mathematically, when the cell Peclet number Pe is
bigger than 2, the aE coefficient becomes negative,
meaning that, for example, an increase in E would diffusion only
lead to a decrease in P. This is impossible for a
quantity that is simply advected and diffused.

Physically, the advection process is directional; it

transports properties only in the direction of the flow. u advection
However, the central-differencing formula assigns diffusion
equal weight to both upwind and downwind nodes.

4.8.2 Upwind Differencing

In upwind differencing face is taken as the value at

whichever is the upwind node; i.e. in one dimension:
P e

e = P
(if u > 0) E
E (if u < 0)
This is only first-order accurate in x (see later) but
acknowledges the directional nature of advection. The
alternatives can be summarised as e
face = U
where subscript U denotes whichever is the upwind node for that face.

With this scheme, the algebraic equation for each control volume takes the canonical form
a P P a F F = bP
a E = max(C e ,0) + De
aW = max(C w ,0) + Dw (14)
a P = a E + aW s P
If the max bit confuses you, consider separately the two cases where the mass flux is
positive (flow from left to right) or negative (flow from right to left).

When applied to the same advection-diffusion problem as the central-differencing advection

scheme it is found that:
when Pe = the upwind-differencing scheme is not as accurate as central
differencing; this is to be expected from its order of accuracy;
when Pe = 4 the upwind-differencing solution is not particularly accurate, but the
wiggles have disappeared.
In all cases, however, both aW and aE are unconditionally positive.

So there is a pay-off accuracy versus boundedness (absence of wiggles). The next sections
examine the desirable properties of discretisation schemes, the constraints that they impose
upon the matrix coefficients and more advanced advection schemes that are both accurate and

CFD 4 10 David Apsley

4.9 Discretisation Properties

(i) Consistency

An approximation is consistent if the discretised equations are equivalent to the continuum

equations in the limit as the grid size tends to zero. E.g., by the definition of a derivative,
is a consistent approximation for .
x x

(ii) Conservativeness

A scheme is conservative if fluxes are associated with faces, not cells, so flux
that what goes out of one cell goes into the adjacent cell;

This is automatically built into the finite-volume method.

(iii) Transportiveness

An advection scheme is transportive if it is upstream-biased. In practice this means higher

weighting to nodes on the upstream side of a face.

(iv) Boundedness

A flux-differencing scheme is bounded if, in an advection-diffusion problem without sources:

the value of at a node always lies between the maximum and minimum values at
surrounding nodes;
= constant is a possible solution.

This imposes conditions on the matrix coefficients aP, aW, aE, ... If there are no sources then
aP P aF F = 0 (15)
Suppose that is only non-zero at one adjacent node, F. Then
aP P aF F = 0 or P = F F
Since P must lie between 0 and F, this requires that
0 F 1
Hence, aF and aP must have the same sign (invariably positive in practice). Thus, we require:
a F 0 for all F (positive coefficients) (16)
(It is the contravening of the positivity condition that leads the central-differencing scheme to
produce wiggles.)

If (15) is also to admit the solution = constant then this can be divided out to yield
aP = aF (sum of neighbouring coefficients) (17)

CFD 4 11 David Apsley

(v) Stability

A solution method (not an advection scheme) is stable if small errors do not grow in the
course of the calculation. This determines whether it is possible to obtain a converged
solution: it says nothing about its accuracy or whether it contains wiggles. Stability is heavily
influenced by how the source term is discretised.

Any source term should be linearised as bP + s P P ; the complete equation for one cell is then
a P P a F F = bP + s P P
If the solution-dependent part of the source (sPP) is transferred to the LHS then the diagonal
coefficient is modified to read
aP = aF sP
Numerical stability requires negative feedback; otherwise, an increase in would lead to an
increase in the source, which would lead to a further increase in and so on. Thus:
sP 0 (negative-slope linearisation of the source term)
If this condition and the positivity of the aF is maintained then
aP aF (diagonal dominance)
The last condition is, in fact, a necessary requirement of many matrix solution algorithms.

In summary, boundedness and stability place the following constraints on the discretisation of
flux and source terms:

positive coefficients: a F 0 for all F

negative-slope linearisation of the source term: source = bP + s P P , s P 0
sum of neighbouring coefficients: aP = aF sP

(vi) Order

Order is a measure of accuracy. It defines how fast the error in a numerical approximation
diminishes as the grid spacing gets smaller.

If, on a uniform grid of spacing x, the truncation error is proportional to xn as x 0 then

that scheme is said to be of order n. x

Order can be established formally by a Taylor-series expansion about a P e E

cell face. e.g. for the nodes either side of the east face:

d x 1 d 2 x 1 d 3 x
E = e + ( ) + 2 ( ) 2 + 3 ( ) 3 + L (18)(a)
dx e 2 2! dx e 2 3! dx e 2
d x 1 d 2 x 1 d 3 x
P = e ( ) + 2 ( ) 2 3 ( ) 3 + L (18)(b)
dx e 2 2! dx e 2 3! dx e 2

Subtracting (18)(a) (b) gives:

CFD 4 12 David Apsley

d 1 d 3 x
E P = 0 + x + 0 + 3 ( ) 3 + L
dx e 3 dx e 2
whence, dividing by x,
E P d
= + O( x 2 )
x dx e
P d
As the leading error term is O(x2), E is a second-order approximation for .
x dx e

Alternatively, adding (18)(a) + (b) gives:

d 2 x
P + E = 2 e + 0 + 2 ( ) 2 + L
dx e 2
2 ( P + E ) = e + O ( x ) (read O( x2) as of the order of x2).
1 2

As the error term is O( x2), the central-differencing formula 12 ( P + E ) is a second-order

approximation for e. On the other hand, the upwind-differencing approximations P or E
(depending on the direction of the flow) are first-order accurate.

Higher accuracy can be obtained by using more nodes in an approximation one node
permits schemes of at most first-order accuracy, two permit second-order accuracy and so on.

Schemes of low-order accuracy, e.g. upwind, lead to substantial numerical diffusion in 2- and
3-d calculations when the velocity vector is not aligned with the grid lines.

(1) Order is an asymptotic concept; i.e. it refers to behaviour as x 0. In this limit only
the first non-zero truncation term in the Taylor series is important. However, the full
expansion includes terms of higher order which may be non-negligible for finite x.

(2) Order refers to the theoretical truncation error in the approximation, not the
computers round-off error (the accuracy with which it can store floating-point

(3) The more accurate a scheme then, in principle, the greater the reduction in numerical
error as the grid is made finer or, conversely, the less nodes required for a given
accuracy. However, high-order schemes tend to require more computational resources
and often have boundedness or stability problems. Also, the law of diminishing
returns applies when the truncation error becomes of similar size to the computers
floating-point round-off error.

CFD 4 13 David Apsley

4.10 Discretising Advection (Part 2)

With an understanding of the desirable properties of a flux-differencing scheme it is now

possible to examine more advanced schemes.

4.10.1 Exponential Scheme (Patankar, 1980) area A

The 1-d advection diffusion equation is
fluxe flux w source flux w source flux e
or, equivalently,
d d
( uA A ) = s (19)
dx dx
If there are no sources (s = 0) then the total flux must be constant:
flux = uA A = constant
If , u, A and are constant this equation can be solved exactly, with boundary conditions
= P and = E at adjacent nodes, to give (see the Examples):
e Pe P E
fluxe = C
e 1

C = uA = mass flux
D= = diffusive transfer coefficient
C u x
Pe = = = Peclet number
With a similar expression for the west face, one obtains
fluxe flux w = a P P a F F
Ce Pe C
aW = Pe , a E = Pe , a P = a E + aW (20)
e 1 e 1

Conservative by construction.
Transportive, because there is a larger weighting on the upwind node.
Bounded: all aF are positive and aP is the sum of the neighbouring coefficients.

To see the last two of these you will have to consider separately the cases C > 0 (for which
ePe > 1) and C < 0 (for which ePe < 1).

This scheme, by construction, gives the exact solution for zero sources and constant
velocity and diffusivity, but this is something we could have found analytically anyway. The
scheme has never really found favour because:
the scheme isnt exact when u or vary, or if there are sources, or in 2-d or 3-d flow;
exponentials are extremely expensive to compute.

CFD 4 14 David Apsley

4.10.2 Hybrid Scheme (Spalding (1972)

This is an approximation to the exponential scheme which amounts to:

central differencing if Pe 2 ;
upwind differencing (with zero diffusion!) if Pe > 2 .

fluxe flux w = a P P a F F
where (if u > 0 and the mass flux C and diffusive transport coefficient D are constant):
aW = 12 C + D , a E = 12 C + D if Pe C/D 2

aW = C , aE = 0 if Pe > 2 (21)
a P = a E + aW

The scheme is conservative, transportive and bounded.

The hybrid scheme remained popular in commercial codes for a long time because it was
stable and robust. However, most flows of interest operate in the high-advection/low-
diffusion regime, where this scheme amounts to first-order upwinding with no diffusion.
Modern CFD practitioners seek much higher accuracy.

Patankar also developed a power-law approximation to the exponential scheme, to overcome

the heavy-handed switch-off of diffusion at Pe = 2. However, powers are just as
computationally expensive as exponentials.

4.10.3 QUICK (QUadratic Interpolation for Convective Kinematics Leonard,

Fits a quadratic polynomial through 3 nodes to get 3rd-order
e E
For each cell face, QUICK uses the nodes either side of the
cell face, plus a further upwind node depending on the W P E
direction of the flow as shown right.

UU U D To emphasise the conservation u>0

property which associates
fluxes with cell faces, not
face nodes, we shall, in future, for P
all such three-point schemes use the notation D, U and UU e
for the Downwind, Upwind and Upwind-Upwind nodes at EE
any particular face.
By fitting a quadratic polynomial to these nodes (see the e
Examples) the QUICK scheme gives:
face = 18 UU + 34 U + 83 D u<0 (22)

CFD 4 15 David Apsley

For example, if u > 0 on the east face then:
e = 18 W + 34 P + 83 E WW W P E EE
whereas, if u < 0: w e
e = 18 E + 34 E + 83 P

3rd-order accurate.
Conservative by construction.
Transportive (upwind bias in the selection of the third node and relative weightings).
Not bounded; (for example, if u > 0 then aE is negative see the Examples).

Despite boundedness not being guaranteed (which can be a major problem in turbulent flows,
where certain turbulence variables are required to be positive see Section 8) the high-order
accuracy of the QUICK scheme make it popular and widely-used.

4.10.4 Flux-Limited Schemes

Hitherto we have only seen schemes where the matrix coefficients aF are constants (i.e.
independent of the solution ). The only unconditionally-bounded scheme of this type is first-
order upwind differencing. Schemes such as QUICK, which fit a polynomial through several
points, are prone to generate cell-face values which lie outside the interpolating values D, U,
UU. To prevent this, modern schemes employ solution-dependent limiters, which enforce
boundedness while trying to retain high-order accuracy wherever possible.

For three-point schemes, is said to be:

monotonic increasing if UU < U < D ,
monotonic decreasing if UU > U > D .
A necessary condition for boundedness is that
the schemes must default to first-order
upwinding (i.e. face = U) if is not locally
monotonic non-monotonic
monotonic (either increasing or decreasing).

Monotonic variation in may be gauged by whether the changes in between successive

pairs of nodes have the same sign; i.e.
monotonic ( D U )(U UU ) > 0

Such schemes can then be written (in the notation of Versteeg and Malalasakera, if not in the
manner in which they are programmed) as the sum of the upstream value (U) and a solution-
dependent fraction of the difference between downstream and upstream nodal values:
+ 1 (r )( D U ) if monotone
face = U 2
U otherwise
where r is the ratio of successive differences (>0 where monotonic): UU U D
r= U
D U face

CFD 4 16 David Apsley

The limiter (r) is given below for various schemes used at the University of Manchester.

Scheme (r) (for r > 0)

Upstream Monotonic Interpolation for Scalar
min{2, 2r , 14 (1 + 3r ), 14 (3 + r )} Transport (Lien and Leschziner, 1993). A limited
variant of QUICK, this is 3rd-order accurate
where monotone.
2r Van Leer (1974).
Harmonic Second-order accurate where monotone.
1+ r

Min-mod min(r,1) Roe (1985)

Van Albada r + r2
Van Albada et al., (1982)
et al. 1+ r2

In all cases (r) is taken as 0 if non-monotonic (r < 0).

The choice of these examples is (obviously!) parochial. Many other equally-good schemes
exist; see, e.g., Versteeg and Malalasekera (2007) for a list. The important points about these
schemes are that they are: (a) bounded; and (b) non-linear (i.e. the resulting matrix elements
depend on, and hence change with, the solution ). The last property means that an iterative
numerical solution is inevitable.

4.11 Implementation of Advanced Advection Schemes

The general steady-state scalar-transport equation is

( mass flux
A ) = S
advection diffusion source

If Cf and Df are the outward mass flux and diffusive transport coefficient on cell face f, then,
with the standard discretisation for diffusion and sources, (23) becomes
[C f f + D f ( P F )] = bP + s P P
where F denotes an adjacent node, P is the index of the cell-centre node and the sum is over
faces of that cell. Since Cf = 0 by mass conservation, it is convenient to subtract ( Cf )P
(which is 0) from the LHS:
[C f ( f P ) + D f ( P F )] = bP + s P P (24)

An advection scheme (Upwind, Central, QUICK, ) is needed to specify the cell-face value
f. Because many matrix-solution algorithms require positive coefficients and diagonal
dominance, it is common practice to separate f into the Upwind part plus a correction; i.e.
f = U + ( f U )

Then, for the advective flux:

CFD 4 17 David Apsley

C f ( f P ) = C f ( U P ) + C f ( f U )
142 4 43 4 142 4 43 4
upwind correction (25)
= max(C f ,0)( P F ) + C f ( f U )

The first part of (25) always gives rise to a positive matrix coefficient:
a F = max(C f ,0) + D f
The latter part is transferred to the RHS of the equation as a deferred correction; (deferred
because it is treated explicitly and wont be updated until the next iteration):
F a F ( P F ) = bP + s P P faces
C f ( f U )
144 42444 3
deferred correction

4.12 Implementation of Boundary Conditions

The most common types of boundary condition are:

value specified (Dirichlet boundary condition);
e.g. = constant: velocity at a wall, or temperature fixed at some surface;
gradient /n specified (Neumann boundary condition).
e.g. /n = 0 on a symmetry plane, or at an outflow boundary.

In the finite-volume method,

both types of boundary

condition can be implemented 2 3 4 NI-3 NI-2 NI-1

by transferring the boundary
flux to the source term.

For a cell abutting a boundary:

flux + fluxboundary = source

aP P
a F F = bP fluxboundary

Thus, there are two modifications: boundary

the aF coefficient in the direction of the boundary is set to zero;
the outward boundary flux is subtracted from the source terms.

If flux() is specified on the boundary, then this is immediate. If itself is fixed on the
boundary node B then, with x the width of the cell:
flux() = A B1 = 2 D ( B P )

2 x
To subtract this flux from the source term requires a simple change of coefficients:
bP bP + 2 D B , sP sP 2D (26)

(You should revisit the classroom examples of earlier sections to see this in action.)

CFD 4 18 David Apsley

4.13 Solution of the Algebraic Equations

The discretisation of a single scalar-transport equation over a single control volume produces
an algebraic equation of the form
a P P a F F = bP
where the summation is over adjacent nodes. Combining the equations for all control
volumes produces a set of simultaneous equations, i.e. a matrix equation
A = b
where is the vector of nodal values. Matrix A is sparse (i.e. has only a few non-zero
elements). Many algebraic methods can be used to tackle this problem; some of the simpler
ones are mentioned below.

4.13.1 Matrix Solution Algorithms

Gaussian Elimination

This is a direct (i.e. non-iterative) method. It consists of a sequence of row operations to

obtain zeros below the main diagonal (upper-triangular matrix), followed by back-

In general, it is inefficient because it tends to fill in sparse matrices (tridiagonal systems are
an important exception), whilst for fluid-flow problems the matrix elements vary with the
solution, so that an iterative solution is necessary anyway.

Gaussian elimination is OK for small hand calculations, but not recommended for large
systems of equations.


Rearrange the equation for

N each control volume as an
iterative update for the
W P E central node:
P = (bP + a F *F )
(the asterisk * denotes the
most recent value). Then
repeatedly cycle through the entire set of equations direction of sweep
until convergence is achieved.

Gauss-Seidel is very simple to code and is often used for unstructured grids. However, it
tends to converge slowly for large matrices and may require substantial under-relaxation (see

CFD 4 19 David Apsley

Classroom Example 4.

(a) Show how Gauss-Seidel can be used to solve the following matrix equation iteratively,
and conduct 3 Gauss-Seidel sweeps.
4 1 0 0 A 2

1 4 1 0 B 4
0 1 4 1 C = 6

0 0 1 4 D 13
Write a computer program (using any programming language or application of your choice)
to solve this problem iteratively.

(b) Now try to do the same for the matrix equation (which actually has the same solution):
1 4 0 0 A 7

4 1 4 0 B 14
0 4 1 4 C = 21

0 D 8
0 4 1
Why does Gauss-Seidel not converge in this case?

Line-Iterative Procedures (Line Gauss-Seidel)

Along any one coordinate line, the system is tri-

diagonal; e.g. in the i-direction: b- *
a + a a = b a *

W ,E

Thus, using the tri-diagonal matrix algorithm a whole

line can be updated at one go and information can of sweep

propagate right across the domain in one iteration, W P E

rather than (as in Gauss-Seidel) one node at a time. A
typical single iteration would consist of applying the S
update for each successive i line, then for each
successive j line, then for each successive k line.

This is probably the most popular method for block-structured grids, and is the basis of most
of our in-house research codes. Note, however, that it doesnt work for unstructured grids.

CFD 4 20 David Apsley

4.13.2 Convergence Criteria

Iteration is stopped when the total residual error becomes less than some small, pre-defined
tolerance. The total residual error is a suitably-weighted sum over the errors for all cells; e.g.
sum of absolute residuals: res

root-mean-square (rms) error:
N cells
(res ) 2

where the residual is the error in satisfying the algebraic equations for any one cell:
res = a P P a F F bP
The tolerance at which convergence is assumed is a matter of judgement. To avoid
dependence on units or the number of cells the tolerance is often set to some small fraction
(e.g. 104) of the error at the first iteration. However, this has its own deficiencies because it
obviously depends on how close the initial starting values are to the final solution.

4.13.3 Under-Relaxation

If iterative algebraic methods are applied to non-linear, coupled equations then large changes
in variables in the course of an iteration may cause numerical instability. To overcome this,
under-relaxation applies only a fraction of the projected change at each iteration. Since
incremental changes vanish as the solution is approached, under-relaxation makes no
difference to the final result.

The discretised scalar-transport equation for one cell:

a P P a F F = bP
can be rearranged as

P =
a F F + bP
This can be written as the sum of the previous iteration value plus the change in :
a F F + bP
P = Pprev + Pprev

If, instead, only a fraction of the projected change in is applied then
a F F + bP
P = Pprev + Pprev

is called an under-relaxation factor.

The equation can then be rearranged back as

a P P a F F = bP + (1 )a P Pprev
Hence, under-relaxation can be implemented by a simple change of coefficients:
aF aF
bP bP + (1 )a P Pprev
This has the added advantage of making the equations more diagonally dominant (aF
becomes smaller), so improving stability.

CFD 4 21 David Apsley


The generic scalar-transport equation for a particular control volume has the form
rate of change + net outward flux = source

flux rate of transport through a surface and consists of:

advection transport with the flow (other authors prefer convection);
diffusion net transport by random molecular or turbulent fluctuations.

Discretisation of the (steady) scalar-transport equation yields an equation of form

a P P a F F = bP
for each control volume, where the summation is over adjacent nodes.

The collection of these simultaneous equations on a structured mesh yields a matrix

equation with limited bandwidth (i.e. few non-zero diagonals), typically solved by
iterative methods such as Gauss-Seidel or line-Gauss-Seidel.

Source terms are linearised as

bP + s P P , s P 0 .

Diffusive fluxes are usually discretised by central differencing; e.g.

A ( E P )
x x

Advection schemes are means of approximating on cell faces in order to compute

advective fluxes. They include upwind, central, exponential, hybrid, QUICK, and
various flux-limited schemes.

General desirable properties for a numerical scheme:

accuracy / high-order

Boundedness and stability impose certain constraints on the matrix equations:

a F 0 for all F (positive coefficients)
sP 0 (negative feedback in the source term)
aP = aF sP (sum of the neighbouring coefficients)

To ensure positive coefficients (and implement non-linear schemes), advective fluxes

are often decomposed into
Upwind + deferred correction
with the latter being transferred to the source term and treated explicitly (i.e. fixed for
this iteration).

CFD 4 22 David Apsley

Boundary conditions can be implemented by transferring boundary fluxes to the
source terms.

Under-relaxation is usually required to solve coupled and/or non-linear equations.


Leonard, B.P., 1979, A stable and accurate convective modelling procedure based on
quadratic upstream interpolation, Comput. Meth. Appl. Mech. Engng, 19, 59-98.
Lien, F.S. and Leschziner, M.A., 1993, Upstream monotonic interpolation for scalar transport
with application to complex turbulent flows, Int. J. Numer. Methods Fluids, 19, 293-
Patankar, S.V., 1980, Numerical Heat Transfer and Fluid Flow, McGraw-Hill.
Roe, P.L., 1985, Some contributions to the modelling of discontinuous flows, Lectures in
Applied Mechanics, 22, Springer-Verlag, 163-193.
Spalding, D.B., 1972, A novel finite-difference formulation for different expressions
involving both first and second derivatives, Int. J. Numer. Meth. Engng, 4, 551-559.
Sweby, P.K., High resolution schemes using flux limiters for hyperbolic conservation laws,
SIAM J. Numer. Anal., 21, 995-1011.
Van Albada, G.D., Van Leer, B. and Roberts, W.W., 1982, A comparative study of
computational methods in cosmic gas dynamics, Astron. Astrophys., 108, 76-84.
Van Leer, B., 1974, Towards the ultimate conservative difference scheme II: monotonicity
and conservation combined in a second-order scheme, J. Comput. Phys., 14, 361-370.
Versteeg, H.K. and Malalasekera, W., 2007, An Introduction to Computational Fluid
Dynamics: The Finite Volume Method, 2nd Edition, Pearson.

CFD 4 23 David Apsley

Appendix: Tri-Diagonal Matrix Algorithm

b1 c1 0 O 0 1 d1
System of equations (note the signs!):
ai i 1 + bi i ci i +1 = d i , i = 1,K, N O O O 0 O M M
0 a b c 0 i = d i
i i i

Either 0 and N +1 are given, or a1 = cN = 0. O 0 O O O M M
0 O 0 a bN N d N

Forward pass:
P0 = 0, Q0 = 0
ci d i + ai Qi 1
Pi = , Qi = , i = 1, K, N
bi ai Pi 1 bi ai Pi 1

Backward pass:
i = Pi i +1 + Qi , i = N , K, 1

The method is guaranteed to converge if the coefficients are non-negative and diagonally
ai 0, ci 0, ai + ci bi for all i
except in the degenerate case where zero ai or ci allow successive rows to be multiples of
each other and the matrix is consequently singular (rank < N).

Exercise: Code your own solver as a subroutine and test it on one of the classroom examples.

CFD 4 24 David Apsley


Consider the uniform, one-dimensional arrangement of nodes W P E EE
shown right. Face e lies half way between P and E nodes.

(a) Show that the central-differencing schemes

e 12 ( P + E )
d P
dx e x
are second-order accurate approximations for e and (d/dx)e respectively.

(b) Making use of the W and EE nodes also, find symmetric fourth-order-accurate
approximations for e and (d/dx)e.

(a) By fitting a quadratic function (x) to values W, P and E at x = 32 x , x = 12 x
and x = 12 x , and taking its value at x = 0, deduce the formula for the QUICK
advection scheme (in the case of positive x-velocity):
e = 18 W + 34 P + 83 E .

(b) By expanding W, P and E as Taylor series in terms of and its derivatives at cell
face e, show that requiring a constant-coefficient combination of these to be third-
order accurate leads to the same expression as in part (a).

If the continuity (mass-conservation) equation were to be regarded as a special case of the
general scalar-transport equation, what would be the expressions for , and S?

Q4. (From Patankar, 1980)

The source term for a dependent variable is given by 2 3 P P . If this term is to be
linearised as bP + s P P , comment on the following practices ( *P denotes the value from the
previous iteration):
(a) bP = 2 3 *P *P , s P = 0
(b) bP = 2 3*P , s P = 0
(c) bP = 2 4 *P *P , s P = *P
(d) bP = 2 , s P = 3 *P

CFD 4 25 David Apsley

Consider the advection-diffusion equation with no sources:
d d
( u )=0
dx dx
where , u, are constants. If = P at x = 0 and = E at x = x, find the value of the flux
at any point between x = 0 and x. (This is the basis of the exponential differencing scheme).

The QUICK scheme fits a quadratic function to three nodal values UU U D
to estimate the value of a scalar at a cell face, according to
face = 18 UU + 34 U + 83 D face
(a) For a two-dimensional problem, write down expressions for
e, w, n, s
in terms of the values at neighbouring nodes, assuming that velocity components u
and v are known, constant and positive.

(b) Neglecting diffusion, and assuming a uniform source s per unit volume, derive an
algebraic discretisation of the conservation equation
(outward flux) = source
in the form
a P P a F F = bP
where the sum is over local nodes. (Assume the cell to be Cartesian, with unit depth in
the z direction, face areas Ae, Aw, An, As and volume V).

(c) How do the expressions for w and e change if u < 0.

(d) Which of the following properties does the QUICK scheme satisfy:

(e) Split the QUICK expression for face in the form

Upwind differencing + deferred correction
Why is this decomposition used?

Q7. (Computational Hydraulics Exam, May 2010 part)
The figure shows part of a rectangular 2-d mesh, together 3
with the values of a scalar at some nodes. Using the QUICK face
scheme, calculate the value of the scalar on the highlighted 2 2 3 4 6
face if the Cartesian velocity components (u,v) on this face
are: 1
(a) (4, 3);
(b) (4, 3). y,v -1


CFD 4 26 David Apsley

Q8. (Computational Hydraulics Exam, May 2011 part)
w e
A local arrangement of nodes and faces in a 1-d WW W P E EE
finite-volume mesh with standard notation and
uniform mesh spacing x is shown right.
A general expression for on a cell face with a 3-point advection scheme is
face = U + 12 (r )( D U ) , where r= U UU U D
where subscripts D, U and UU denote downstream, upstream and
double-upstream nodes, respectively. face

(a) Write down the (constant) values of for first-order upwind and central advection

(b) The Min-Mod flux limiter is

(r ) = max(0, min(r ,1))
In a particular case, takes the following values at local nodes:
WW = 3, W = 3, P = 4, E = 7, EE = 5,
Find the values of on face e if the velocity on that face is (i) positive; (ii) negative.

The general three-point scheme for the cell-face value of a transported scalar is
face = U + 12 (r )( D U ) , r= U
where upstream (U) and downstream (D) are defined by flow direction. face

(a) The linear upwind differencing (LUD) and QUICK schemes are:
LUD: face = 32 U 12 UU
QUICK: face = 18 UU + 34 U + 83 D
Identify the functional form of (r) for each of these schemes.

(b) Swebys conditions for total-variation-diminishing (TVD) schemes are that

=0 if r 0
min(2r ,2) if r 0
Show that LUD and QUICK both contravene these conditions for some r 0.

(c) The Van Albada scheme has

0, if r 0

(r ) = r + r 2
1 + r 2 , if r 0
Show that this satisfies Swebys criteria and also the symmetry property
(r ) 1
= ( ) for r > 0
r r

CFD 4 27 David Apsley

Q10. (Computational Hydraulics Exam, May 2012)
The QUICK advection scheme may be written
1 3 3 D
face = UU + U + D , UU U
8 4 8
where downwind (D) and upwind (U, UU) nodes relative to a
cell face and direction of flow are defined right. face

(a) Define the terms transportive and bounded when applied to an advection scheme and
state, without proof, whether QUICK is transportive and/or bounded.

(b) Prove that QUICK is 3rd-order accurate (on a uniform mesh).

w e

WW = 1, W = 2, P = 5, E = 3, EE = 2

(c) The values of at successive nodes of a cell-centred structured mesh are shown in the
figure above. The flow is everywhere from left to right. Using the QUICK scheme
find the values of on cell faces marked w and e.

(d) The UMIST scheme is a variant of the QUICK scheme defined by

face = U + 12 (r )( D U ) ,
(r ) = max[0, min{2, 2r , 14 (1 + 3r ), 14 (3 + r )}] , r= U .
Sketch a graph of against r, indicating key points. Show that the UMIST scheme
reduces to the QUICK scheme when 1 r 5.

(e) Find the values of on faces w and e using the UMIST scheme.

CFD 4 28 David Apsley

Q11. (Computational Hydraulics Exam, May 2008)
The local arrangement of nodes and faces in a 1-d finite-volume mesh with standard
geographical notation and uniform mesh spacing x is shown in the figure below.

w e

(a) The 1-d advection-diffusion equation for a transported variable is

d d
u = s,
dx dx
where is density, u is velocity, is diffusivity, s is source density. Write this in a
corresponding integral form for the shaded cell.

(b) Write finite-difference expressions for d/dx on w and e faces.

(c) Write expressions for on w and e faces of the shaded cell if u is positive for:
(i) first-order upwind
(ii) central
advection schemes.

(d) Define the term bounded when applied to flux-differencing schemes and deduce a
condition on , u, and x for the central scheme to be bounded.

A general expression for e when u is positive is

e = P + 12 (r )( E P ) where r=
(e) Write the (constant) values of for
(i) first-order upwind
(ii) central
advection schemes.

(f) The Van Leer flux limiter is

if r > 0
(r ) = 1 + r
0 otherwise
In a particular case, = 1, u = 1, = 0.02 and x = 0.1 in consistent units. In a
solution with the Van Leer advection scheme, takes the following values:
WW = 1, W = 2, P = 4, E = 2, EE = 3,
Find the values of and d/dx on w and e faces, and hence the mean source density s
for cell P.

CFD 4 29 David Apsley

(a) Define the following properties in the context of a flux-differencing scheme in a
finite-volume discretisation:

(b) What is meant by the statement that an advection scheme is Total-Variation-

Diminishing (TVD)?

The general three-point scheme for the cell-face value of a transported scalar is
face = U + 12 (r )( D U ) , r= U , UU U D
where nodes UU, U and D are determined by flow direction as

Conditions for an advection scheme to be TVD are:

=0 if r 0;
min(2r ,2) if r 0.
A scheme is at least 2 -order accurate if (r) passes through the point (1,1) and 3rd-order
accurate if it does so with slope .

(c) For each of the following advection schemes use the conditions above to determine:
(i) whether the scheme is TVD;
(ii) the order of the scheme.
Upwind: (r ) = 0
Central: (r ) = 1
QUICK: (r ) = 14 (3 + r )
Min-mod: (r ) = max(0, min(r ,1))
2r /(1 + r ) if r > 0
Van Leer: (r ) =
0 otherwise

(d) A local arrangement of nodes and faces in a 1-d finite-volume mesh with standard
notation and uniform mesh w e
spacing x is shown right. WW W P E EE

The values of a scalar at these nodes are:
WW = 2, W = 4, P = 6, E = 7, EE = 6.
Using the Van Leer advection scheme, calculate the value of on the west (w) and
east (e) cell faces if the velocity throughout the domain is:
(i) positive;
(ii) negative.

CFD 4 30 David Apsley

Q13. (Computational Hydraulics Exam, May 2010 part)
The figure below and the accompanying table show the velocity components and values of a
conserved scalar on the faces of a cell in a 2-d finite-volume simulation of steady,
incompressible flow. Coordinates of cell vertices are given in the figure. Assume units such
that the density = 1.
(a) Calculate the mass flux (per unit span) out of each of the w, n, s faces.
(b) Use continuity to find the velocity component u on the east (e) face.
(c) Assuming no source term or diffusion, calculate on the east face.

(0,3) velocity scalar
face u v
e e ? 0 ?
w cell
n 6 3 4
w 5 2 2
s 5 2 3.5
(0,0) s (2,0)

Q14. (*** Advanced ***)

The figure below and the accompanying table show the velocity components and values of a
conserved scalar on the faces of a cell in a 2-d finite-volume simulation of steady,
incompressible, irrotational flow. The coordinates of the cell vertices are given in the figure.
(a) Calculate the volume flux (per unit span) out of each of the n, w, s faces.
(b) Use the incompressibility and irrotationality conditions to find the velocity
components u and v on the east (e) face.
(c) Assuming no source or diffusion of the scalar, calculate on the east face.

(1,4) (4,4)
velocity scalar
face u v
w e
e ? ? ?
n 9 3 0
y s w 4 -2 6
(2,1) (3,1) s 3 3 2

CFD 4 31 David Apsley

Q15. U0
A 2-d finite-volume calculation is to be undertaken for uN
fully-developed, laminar flow between plane, parallel
walls. The upper wall is moving at speed U0, whilst
the lower wall is stationary. A streamwise pressure
gradient dp/dx = G is imposed.
u j+1
The depth of the channel, H, is divided into N equally-
sized cells of dimension x y 1 as shown, with
H y
the velocity u stored at the centre of each cell. uj-1


(a) What are the boundary conditions on upper and lower walls?

(b) What is the net pressure force on a single cell?

(c) Write down a second-order approximation for the shear stress on the upper face of
the jth internal cell, in terms of the velocities uj and uj+1.

(d) Write down similar approximations for on upper and lower walls.

(e) By balancing pressure and viscous forces set up the finite-volume equations for
velocity. (Separate equations are required for internal and boundary cells).

(f) Solve your equations for the nodal velocities in the case
GH 2
N = 4, =2
leaving your answers in terms of U0.

(g) Using your answer to part (f), find the volume flow rate per unit span (leaving your
answer as a multiple of U0H).

(h) Solve the Navier-Stokes equation analytically for this case and compare with your
answers in parts (f) and (g).

CFD 4 32 David Apsley

Q16. (Computational Hydraulics Exam, May 2010 part)
Use the Gauss-Seidel iterative method to solve the system of equations
5 1 0 1 A 9.5

3 8 1 0 B 3.5
0 4 10 1 C = 30.5 ,

2 0 3 10 D 37

giving solutions for A, B, C, and D correct to 2 decimal places.

The discretisation of a 1-d scalar-transport equation results in a set of simultaneous equations
for the nodal values {i} of the form
2 i 1 + 6 i i +1 = 2 2 i i , i = 1,2,K, N
where 0 and N+1 are given. Use the Gauss-Seidel method to solve this iteratively for the
case N = 3 with boundary conditions 0 = 4 = 0 .

The linear system of equations
ai i 1 + bi i ci i +1 = d i , i = 1,2,K, N
(where ai, bi, ci and di are constants, and 0 and N+1 are fixed) can be solved by the tri-
diagonal matrix algorithm as
i = Pi i +1 + Qi , i = N ,K,1
where {Pi} and {Qi}are determined from an initial forward pass. Show that
Pi = , i = 1,K, N ; P0 = 0
bi ai Pi 1
and derive a similar recurrence relation for the {Qi}.
(You may assume here that ai > 0, ci > 0, ai + ci bi for all i.)

CFD 4 33 David Apsley