8.2 Eulerian advection methods 109
taking that
∂
2
ρ
∂x
2
i
=
ρ
t
i−1
− 2ρ
t
i
+ ρ
t
i+1
x
2
we obtain
∂ρ
∂t
i
=−v
x
∂ρ
∂x
central
i
+ D
∂
2
ρ
∂x
2
i
, (8.7c)
where D = v
x
x/2 is the numerical diffusion coefficient. This means that upwind
differences inherently contain numerical diffusion compared to central differences.
On the other hand, applying central and downwind differences for solving the
Eulerian advection equation:
central FD (Fig. 8.2(b)): ρ
t+t
i
= ρ
t
i
− v
x
t
ρ
t
i+1
− ρ
t
i−1
2x
, (8.8)
downwind FD (Fig. 8.2(c)): ρ
t+t
i
= ρ
t
i
− v
x
t
ρ
t
i+1
− ρ
t
i
x
, (8.9)
results in a strong oscillation of the numerical solution compared to the exact one
(Fig. 8.4(b),(c)), which is even more dramatic than the numerical diffusion prob-
lem which is characteristic for upwind differences (compare Fig. 8.4(a),(b),(c)).
The oscillations are caused by the erroneous evaluation of the spatial derivative
of density. With both central and downwind differences (in contrast to upwind
differences), we take into account the density distribution in the outgoing material
flow which is useless for predicting density distribution in the incoming material
flow.
One way to minimise numerical diffusion for the Eulerian advection equation is
to use higher-order numerical schemes such as the Flux-Corrected Transport (FCT)
algorithm (Boris and Book, 1973). The FCT is a conservative shock-capturing
scheme that can, in particular, be used for solving the advection equation. An FCT
algorithm consists of two stages, (I) a transport stage and (II) a flux-corrected
anti-diffusion stage. The numerical diffusion errors introduced in the first stage
are corrected by the anti-diffusion stage. The implementation of the FCT is more
complex than for upwind FD and is based on more nodal points (Fig. 8.5). For
the case of constant velocity and constant grid spacing, the algorithm of updating
advected parameters (e.g. density) on an Eulerian grid is as follows;
(I) Transport stage – using highly diffusive mass-conservative advection scheme (such as
upwind differences, Eqs. (8.4), (8.7)) to obtain preliminary values of density ( ˜ρ
t+t
i
)
at the next time instant t +t
˜ρ
t+t
i
= ρ
t
i
− v
x
t
ρ
t
i+1
− ρ
t
i−1
2x
+ Dt
ρ
t
i−1
− 2ρ
t
i
+ ρ
t
i+1
x
2
, (8.10)
where D =
x
2
t
1
8
+
1
2
v
x
t
x
2
is a numerical diffusion coefficient.