Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
DR
AF
T
DR
ii
Contents
1 Introduction
3
3
5
5
6
8
10
14
15
16
20
21
22
23
24
26
29
33
36
42
42
44
46
48
50
52
55
iii
iv
CONTENTS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
103
. 103
. 103
. 106
. 110
. 114
. 115
. 115
. 116
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
133
134
136
139
142
147
CONTENTS
6.4.1
6.4.2
6.4.3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
157
. 157
. 157
. 158
. 159
. 159
. 161
. 161
. 162
. 169
. 169
. 172
. 181
. 185
. 188
. 193
. 197
. 202
vi
CONTENTS
Chapter 1
Introduction
Computational Fluid Dynamics (CFD) is the science and art of simulating fluid flows on
computers. Traditionally, experimental and theoretical fluid dynamics were the two dimensions of the subject of Fluid Dynamics. CFD has emerged as a third dimension in the
last three decades [1]. The rapid growth of CFD as a design tool in several branches of engineering, including Aerospace, Mechanical, Civil and Chemical Engineering, is due to the
availability of fast computing power in the last few decades, along with the development
of several intelligent algorithms for solving the governing equations of Fluid Dynamics.
The history of the development of numerical algorithms for solving compressible fluid
flows is an excellent example of the above process. In this course, several important and
interesting algorithms developed in the past three decades for solving the equations of
compressible fluid flows are presented in detail.
In the next chapter (2nd chapter), the basic governing equations of compressible fluid
flows are described briefly, along with some simplifications which show the essential nature of the convection process. The basic convection process is presented in terms of
simpler scalar equations to enhance the understanding of the convection terms. It is the
presence of the convection terms in the governing equations that makes the task of developing algorithms for fluid flows difficult and challenging, due to the non-linearity. The
basic convection equations are presented in both linear and non-linear forms, which will
form the basic tools for developing and testing the algorithms presented in the later chapters. The hyperbolic nature of the convection equations is presented in detail, along with
its important implications. Some of the numerical methods presented in later chapters
depend upon deriving the equations of compressible flows from Kinetic Theory of gases
and as Relaxation Approximations. Therefore, these systems are also presented in this
chapter, as a part of the governing equations for compressible flows, their models and
approximations.
In the third chapter, the basic tools required for analyzing the numerical methods consistency and stability of numerical methods, modified partial differential equations,
numerical dissipation and dispersion, order of accuracy of discrete approximations - are
1
Introduction
briefly presented. These tools help the student in understanding the algorithms presented
in later chapters better.
The fourth chapter presents the central discretization methods for the hyperbolic equations, which were the earliest to be introduced historically. The fifth chapter presents the
upwind discretization methods which became more popular than the central discretization
methods in the last two decades. The four major categories of upwind methods, namely,
Riemann Solvers, Flux Splitting Methods, Kinetic Schemes and Relaxation Schemes, are
presented for the scalar conservation equations in this chapter. More emphasis is given to
the alternative formulations of recent interest, namely, the Kinetic Schemes and Relaxation Schemes. The corresponding numerical methods for vector conservation equations
are presented in the next chapter.
Chapter 2
Compressible Fluid Flows, Their
Governing Equations, Models and
Approximations
2.1
Navier-Stokes Equations
The governing equations of compressible fluid flows are the well-known Navier-Stokes
equations. They describe the conservation of mass, momentum and energy of a flowing
fluid. In three dimensions, we can write the Navier-Stokes equations in the vector form
as
G1 G2 G3
G1,V
G2,V
G3,V
U
+
+
+
=
+
+
(2.1)
t
x
y
z
x
y
z
where U is the vector of conserved variables, also known as the vector of state variables,
defined by
u1
u
(2.2)
U =
2
u3
E
G1 , G2 and G3 are the inviscid flux vectors, given by
u3
u2
u1
p + u21
u3 u1
u2 u1
u
p
+
u
u
u
;
G
=
;
G
=
G1 =
3 u2
1 2
2
2
2
p + u23
u2 u3
u1 u3
pu2 + u3 E
pu2 + u2 E
pu1 + u1 E
G1,V , G2,V and G3,V are the viscous flux vectors, given by
(2.3)
G1,V
0
xx
xy
xz
u1 xx + u2 xy + u3 xz q1
G3,V
; G2,V =
0
yx
yy
yz
u1 yx + u2 yy + u3 yz q2
0
zx
zy
zz
u1 zx + u2 zy + u3 zz q3
(2.4)
In the above equations, is the density of the fluid, u1 , u2 and u3 are the components of
the velocity in x,y and z directions, p is the pressure and E is the total energy (sum of
internal and kinetic energies) given by
1
E = e + u21 + u22 + u23
2
The internal energy is defined by
e=
p
( 1)
(2.5)
(2.6)
where is the ratio of specific heats ( = CCVP ). The pressure, temperature and the density
are related by the equation of state as p = RT where R is the gas constant per unit mass,
obtained by dividing the universal gas constant by molecular weight (for air at standard
conditions, R = 217 J/(Kg K)) and T is the temperature. Here, ij (i=1,2,3, j=1,2,3)
represents the shear stress tensor and qi (i=1,2,3) represents the heat flux vector, the
expressions for which are as follows.
u1
u1 u2 u3
+ bulk
+
+
(2.7)
xx = 2
x
x
y
z
u2
u1 u2 u3
yy = 2
+ bulk
+
+
(2.8)
y
x
y
z
u1 u2 u3
u3
+ bulk
+
+
(2.9)
zz = 2
z
x
y
z
u1 u2
xy = yx =
(2.10)
+
y
x
u1 u3
+
(2.11)
xz = zx =
z
x
yz = zy =
q1 = k
u3 u2
+
y
z
T
T
T
, q2 = k
, q3 = k
x
y
z
(2.12)
(2.13)
where is the coefficient of viscosity, bulk is the bulk viscosity coefficient defined by
2
bulk = and k is the thermal conductivity.
3
2.2
2.2.1
A simplification which is often used is the inviscid approximation in which the viscous and
heat conduction effects are neglected. This approximation is valid in large parts of the
fluid flows around bodies, except close to the solid surfaces where boundary layer effects
are important. The equations of inviscid compressible flows, called Euler equations, are
obtained by neglecting the right hand side of the Navier-Stokes equations (2.1). In this
course, we shall often use the Euler equations and their further simplifications.
Consider the 1-D Navier Stokes equations given by
U
G
GV
+
=
t
x
x
(2.14)
where
0
u
U = u , G = p + u2 and GV =
u q
pu + uE
E
(2.15)
Here, is the 1-D component of the stress tensor and q is the corresponding component
of the heat flux vector. They are defined for this 1-D case by
4 u
T
=
and q = k
3 x
x
(2.16)
where is the viscosity of the fluid and k is the thermal conductivity. Let us make the
first simplifying assumption of neglecting the viscosity and heat conduction. Then, we
obtain the 1-D Euler equations as
G
U
+
=0
t
x
(2.17)
2.2.2
Let us now expand the conservative form of Euler equations to obtain the primitive
variable form. The mass conservation equation
(u)
+
=0
t
x
(2.18)
gives
u
+u
+
=0
t
x
x
The momentum conservation equation
(u) (p + u2 )
+
=0
t
x
(2.19)
(2.20)
gives
p
(u2 )
u
+u +
+
+ u2
=0
t
t x
x
x
or
or
p
u
u
+u +
+ 2u
+ u2
=0
t
t x
x
x
u
u
u p
+ u2
+ u
+
+ u
+
=0
t
x
x
t
x x
u
u
u 1 p
+
=0
+u
+
+u
+
u
t
x
x
t
x x
u
or
(2.21)
(2.22)
(2.23)
gives
(pu)
E
(u)
E
+E
+
+ u
+E
=0
t
t
x
x
x
E (pu)
(u)
E
+ u
+
+E
+
=0
t
x
x
t
x
or
and
1
p
+ u2
( 1) 2
1
E
1
=
p1 +
u2
t
1 t
2 t
p
1 1 p
u
1
2
+
+u
=
1
t 1 t
t
1
E
=
x
1
p
2
or
(2.24)
1 1 p
u
+
+u
x 1 x
x
(2.25)
(2.26)
1 p
1 1 p
u
1 pu
1 u p
u u p p u
+u
+ u2
+
+
=0
2
2
1 t 1 t
t 1 x 1 x
x x x
p p
u pu
p
u
p
u
+ +( 1) u
+u +( 1) u2 +( 1) u +( 1) p
=0
t t
t x
x
x
x
x
or
p pu p
p
u
p
u
u
+ +u +( 1) u +( 1) u2 +( 1) u +( 1) p
=0
t x t
x
t
x
x
x
or
p
p
p
u
p
u
2 u
+
=0
+u
+u
+ ( 1) u
+ u
+u
+p
t
x
t
x
t
x
x
x
Using (2.19), we obtain
p
u
p
u
p
u
u 1 p
u
+
+ ( 1) p
+u
+p
+ ( 1) u
+u
+
=0
x
t
x
x
t
x x
x
which, after using (2.22), gets simplified to
p
u
u
p
+u
+p
+ ( 1) p
=0
t
x
x
x
or
p
u
p
+u
+ p [1 + 1] = 0
t
x
x
or
p
p
u
+u
+ p
=0
(2.27)
t
x
x
Thus, the 1-D Euler equations in primitive variable form (equations (2.19), (2.22) and
(2.27)) can be written as
V
V
+A
=0
(2.28)
t
x
where
V = u and A =
(2.29)
0 u
p
0 p u
The eigenvalues of A are determined by
|A I| = 0
or
or
or
0
1
0
u
0
p u
=0
p
=0
(u ) (u )
p
(u ) (u )2 a2 = 0 as a2 =
1 = u a ; 2 = u ; 3 = u + a
2.2.3
(2.30)
(2.31)
p
u
p
+u
+ a2
=0
t
x
x
(2.32)
+ constant
(2.33)
(2.34)
2
a 1 p
S
= CV
+
x
p x p x
(2.35)
p
p S
=
+ a2
t
CV t
t
(2.36)
and
p S
p
=
+ a2
x
CV x
x
Using the above two equations, the energy equation can be written as
(2.37)
up S
u
p S
+ a2
+
+ ua2
+ a2
=0
CV t
t CV x
x
x
or
or
which becomes
S CV 2 CV p S CV 2
u
+
a
+
u
+
a u
+
=0
t
p
t
p CV x
p
x
x
S CV 2
u
S
+u
+
a
+u
+
=0
t
x
p
t
x
x
S
S
+u
=0
(2.38)
t
x
when the continuity equation (2.22) is used. Thus, for isentropic flow, the Euler equations
are obtained as
+u
+
=0
t
x
x
u 1 p
u
+u
+
=0
t
x x
S
S
+u
=0
t
x
(2.39)
10
2.2.4
u
+u
+
=0
t
x
x
u 1 p
u
+u
+
=0
t
x x
S
S
+u
=0
t
x
(2.40)
Let us change the primitive variables from (, u, S) to (p, u, S). Since the sound speed
a is defined by
p
(2.41)
a2 =
we have
p = a2
Therefore
and
= a2
t
t
(2.42)
= a2
x
x
(2.43)
u
+u
+
=0
t
x
x
then becomes
1 p
1 p
u
+u 2
+
=0
2
a t
a x
x
or
p
u
p
+u
+ a2
=0
t
x
x
The 1-D isentropic Euler equations then can be written as
p
p
u
+u
+ a2
=0
t
x
x
u 1 p
u
+u
+
=0
t
x x
S
S
+u
=0
t
x
(2.44)
(2.45)
11
Note that the third equation in the above system of equations is already in characteristic
form (being similar to a first order wave equation). For this equation
dx
=u
dt
(2.46)
is the equation of the characteristic curve and along this characteristic curve
dS
=0
dt
(2.47)
which means that the entropy is constant along these characteristic paths. Let us try
to write the first two equations of (2.45) in characteristic form. Multiplying the second
equation of (2.45) by a and adding it to the first equation, we obtain
p
p
u 1 p
u
2 u
=0
+u
+ a
+ a
+u
+
t
x
x
t
x x
or
u
p
u
p
+ a
=0
+ (u + a)
+ (u + a)
t
x
t
x
(2.48)
Similarly, multiplying the second equation of (2.45) by a and subtracting it from the
first equation, we obtain
p
u 1 p
p
u
2 u
=0
+u
+ a
a
+u
+
t
x
x
t
x x
or
p
u
p
u
+ (u a)
+ (u a)
a
=0
t
x
t
x
u
1 p
1 p
u
+ (u a)
=0
t
a t
x a x
(2.49)
(2.50)
(2.51)
dw1 = du +
1
dp
a
(2.52)
dw2 = du
1
dp
a
(2.53)
and
12
which give
w1
t
w1
x
w2
t
w2
x
We then obtain
u
1 p
+
t
a t
u
1 p
=
+
t
a x
u
1 p
=
t
a t
u
1 p
=
x a x
(2.54)
w1
w1
+ (u + a)
=0
t
x
(2.55)
and
w2
w2
+ (u a)
=0
(2.56)
t
x
which are in characteristic form, with the constants along the characteristic curves being
defined by
dx
= (u + a)
(2.57)
w1 = constant along
dt
and
dx
= (u a)
(2.58)
w2 = constant along
dt
The 1-D isentropic Euler equations then become
w1
w1
+ (u + a)
= 0 with dw1 = du +
t
x
w2
w2
+ (u a)
= 0 with dw2 = du
t
x
w3
w3
+u
= 0 with w3 = S
t
x
1
dp
a
1
dp
a
(2.59)
1
dp
a
1
dp
a
dp
d
13
we can write
dp = a2 d
Therefore
w1 = u +
1 2
a d = u +
a
a
d
we get
ln
or
Therefore
p
= exp
Sk
CV
= e CV
Sk
CV
k
where k =
= a constant
CV
p = e CV k where k = ek = a constant
Thus
p = k e CV
(2.60)
(2.61)
d
dp
=
(c ) = c(a)
d
d
or
a = (c) 2
Thus
(1)
2
(2.62)
R a
d
R 1
1
(1)
u+
(c) 2 2 d
R
1
(1)
u + (c) 2 2 1 d
1 R
(3)
u + (c) 2 2 d
1
(1)
1
u + (c) 2 2 1
w1 = u +
=
=
=
=
1
(1)
2
(c) 2 2
= u+
( 1)
2
a
= u+
( 1)
14
2a
( 1)
(2.63)
w2 = u
2a
( 1)
(2.64)
Similarly, we get
Therefore, the characteristic form of the isentropic Euler equations are given by
w1
2a
w1
+ (u + a)
= 0 where w1 = u +
t
x
( 1)
w2
2a
w2
+ (u a)
= 0 where w2 = u
t
x
( 1)
w3
w3
+u
= 0 where w3 = S
t
x
2.2.5
(2.65)
Burgers equation
Of the three equations in the system of 1-D isentropic Euler equations in characteristic
form (equations (2.65), the first two equations can be simplified further, by assuming the
fluid to be a mono-atomic gas.
=
D+2+2
CP
=
for a poly-atomic gas
CV
D+2
(2.66)
and
CP
D+2
for a mono-atomic gas
(2.67)
=
CV
D
7
3+2+2
= = 1.4. For a mono-atomic gas flow in 1-D,
Thus, for air flow in 3-D, =
3+2
5
we obtain
1+2
=3
(2.68)
=
1
Therefore, we get
2a
2a
w1 = u +
=u+
=u+a
(2.69)
1
31
=
and
w2 = u
2a
2a
=u
=ua
1
31
(2.70)
w1
w1
+ w1
=0
t
x
(2.71)
15
and
w2
w2
+ w2
=0
t
x
(2.72)
(2.73)
This equation is known as the inviscid Burgers equation. Let us now put the above
equation in conservative form as
u2
u g (u)
+
= 0 where g (u) =
t
x
2
(2.74)
So, the flux g (u) is a quadratic function of the conservative variable u. That is, g (u)
is not a linear function of u and hence it is a non-linear equation. The non-linearity of
the convection terms is one of the fundamental difficulties in dealing with NavierStokes
equations.
2.2.6
For the sake of simplicity, let us linearize the flux g (u) in the above equation as
g (u) = cu where c is a constant
(2.75)
We are doing this linearization only to study and understand the basic convection terms.
When we try to solve the Euler or NavierStokes equations, we will use only the nonlinear equations. With the above assumption of a linear flux, the inviscid Burgers equation
becomes
u
u
+c
=0
(2.76)
t
x
This is called as the linear convection equation. So, the linear convection equation represents the basic convection terms in the NavierStokes equations. The researchers in
CFD use the numerical solution of the linear convection equation as the basic building
block for developing numerical methods for Euler or NavierStokes equations. The Kinetic Schemes and the Relaxation Schemes, the two alternative numerical methodologies
which will be presented in this course, also exploit this strategy, but in a different manner,
as the Boltzmann equation and the Discrete Boltzmann equation, without the collision
term, are just linear convection equations. Note also that the third of the 1-D isentropic
Euler system (2.65) is just a linear convection equation. Thus, the Euler equations consist
of two inviscid Burgers equations (non-linear PDEs) and one linear convection equation.
16
2.3
To understand the nature of the linear convection equation better, let us first find out its
solution. The linear convection equation
u
u
+c
=0
t
x
(2.77)
is a first order wave equation, also called as advection equation. It is a first order hyperbolic
partial differential equation. Hyperbolic partial differential equations are characterised by
information propagation along certain preferred directions. To understand this better, let
us derive the exact solution of (2.77), given the initial condition
u(x, t = 0) = u0 (x)
(2.78)
Let us now use the method of characteristics to find the value of the solution, u(x, t), at
a time t > 0. The method of characteristics uses special curves in the x t plane along
which the partial differential equation (PDE) becomes an ordinary differential equation
(ODE). Consider a curve in the x t plane, given by (x(t), t). The rate of change of u
t
(x(t),t)
(0,0)
d
u (x (t) , t). Using chain rule, we can write
dt
dx
u (x (t) , t) =
u (x (t))
+ u (x (t) , t)
dt
x
dt
t
(2.79)
(2.80)
17
The right hand side of (3.4) looks similar to the left hand side of the linear convection
u
u
equation (2.77), i.e.,
+ c . Therefore, if we choose
t
x
c=
dx
dt
(2.81)
du
then (2.77) becomes
= 0, which is and ODE! The curve (x (t) , t), therefore, should be
dt
defined by
dx
= c with x (t = 0) = xo
(2.82)
dt
The solution of (3.6) is given by
x = ct + k
(2.83)
where k is a constant. Using the initial condition x (t = 0) = x0 , we get
x0 = k
(2.84)
x = ct + x0
(2.85)
Therefore
u
u
+c
=0
t
x
u
u
(2.77), or simply as the characteristic. Along the characteristic, the PDE,
+c
= 0,
t
x
du
= 0. The solution of this ODE is u = constant. Therefore, along
becomes and ODE,
dt
the characteristic, the solution remains a constant. Thus, if we know the solution at the
foot of the characteristic (at x0 ), which is the initial condition, we can get the solution
anywhere on the characteristic, that is, u (x, t). Using (3.9), we can write
The curve x = ct + x0 is called the characteristic curve of the equation
x0 = x ct
(2.86)
(2.87)
x0
1
1
or t = x k
ct = x x0 or t = x
c
c
c
(2.88)
Therefore
We can write (3.9) as
18
slo
pe
=1
/c
Let us now derive the solution (3.11) in a mathematical way. For the PDE which is
u
dx
u
+c
= 0, let us choose
= c. Its solution
the linear convection equation given by
t
x
dt
is x = ct + x0 or x0 = x ct. This suggests a transformation of coordinates from (x, t) to
(s, ) where
s = x c and = t
(2.89)
The inverse transformation is given by
x = s + c and t =
(2.90)
Therefore, the transformation is from u (x, t) to u (s, ). Since the function is the same
in different coordinate systems
u (x, t) = u (s, )
(2.91)
We can now write
d
u
u t u x
u t u x
=
+
=
+
(since u = u)
d
t
x
t
x
(2.92)
Therefore
x
t
= 1 and
=c
(2.93)
u
u
d
u
=
+c
d
t
x
(2.94)
u
u
+c
= 0. Therefore
t
x
d
u
=0
d
(2.95)
19
(2.96)
u ( ) = k = constant
(2.97)
u ( = 0) = u0 (s) = k or k = u0 (s)
(2.98)
u (s, ) = u0 (s)
(2.99)
u (x, t) = u0 (s)
(2.100)
(2.101)
Therefore
Since u = u, we obtain
Using (3.13), we can write
(2.102)
If we consider a point xj with neighbours xj1 and xj+1 to the left and right sides of xj
0
1
000000
111111
0
1
0000000
1111111
0
1
0000000000000000000000000000000
1111111111111111111111111111111
0
0
1
0
1
1
111111
1
1111111
1
01
000000
0
0000000
0
0
1
0
1
0
1
0
1
000000
111111
0
1
0000000
1111111
0
1
0
1
000000
111111
0
1
0000000
1111111
0
1
0
1
000000
111111
0
1
0000000
1111111
0
1
0
1
000000
111111
0
1
0000000
1111111
0
1
1
111111
1
1111111
1
0
000000
0
0000000
0
0
1
000000
111111
0
1
0000000
1111111
0
1
0
1
000000
111111
0
1
0000000
1111111
0
1
0
1
000000
111111
0
1
0000000
1111111
0
1
0
1
000000
111111
0
1
0000000
1111111
0
1
1
111111
1
1111111
1
0
000000
0
0000000
0
0
1
000000
111111
0
1
0000000
1111111
0
1
0
1
000000
111111
0
1
0000000
1111111
0
1
0
1
000000
111111
0
1
0000000
1111111
0
1
0
1
000000
111111
0
1
0000000
1111111
0
1
0
1
000000
111111
0
1
0000000
1111111
0
1
0
1
000000
111111
0
1
0000000
1111111
0
1
0
1
000000
111111
0
1
0000000
1111111
0
1
0
1
000000
111111
0
1
0000000
1111111
0
1
1
111111
1
1111111
1
0
000000
0
0000000
0
0
1
000000
111111
0
1
0000000
1111111
0
1
0
1
000000
111111
0 c<0
1
0000000
1111111
0
1
c>0 1111111
0
1
000000
111111
0
1
0000000
0
1
0
1
000000
111111
0
1
0000000
1111111
0
1
1
111111
1
1111111
1
0
000000
0
0000000
0
0
1
000000
111111
0
1
0000000
1111111
0
1
0
1
000000
111111
0
1
0000000
1111111
0
1
00
1
000000
111111
0
1
0000000
1111111
0
1
1
11111111
00
1
0
1
0
1
0
0
1
000000
0
1
0000000
1111111
0
1
1
0
11
00
1
0
1
0
1
0
xj1
x
ct ct
xj
x
t+t
xj+1
respectively, the foot of the characteristic can fall on the left or right side of xj depending
on the sign of c. Since the information travels a distance of x = ct along the characteristic
during a time t (from t = 0), c is the speed with which information propagates along the
characterstics, and is called characteristic speed or wave speed. Therefore, we can see
that the sign of c determines the direction of information propagation, with information
coming from the left if c > 0 and from right if c < 0.
20
2.4
(2.103)
Let us check the wave speed for this case. The wave speed is defined by
a (u) =
g (u)
u
(2.104)
Therefore, a(u) = u. Consider an initial profile which is monotonically increasing. Therefore as u increases, a(u) increases.
u
t=0
t=t1
t=t 2
large speed
small speed
x
21
u
t=0
t=t1
t=t2
multivalued
unphysical
solution
t=t3
x
Figure 2.5: Shock formation to avoid multivalued unphysical solution for Burgers equation
For the non-linear case and for an initial profile which is monotonically decreasing,
the function may become multi-valued after some time. Then, the solution ceases to be
a function, by definition. Discontinuities may appear and the solution becomes multivalued. Multivalued functions are avoided on physical grounds. Imagine, for example,
the density of a fluid at a point having more than one value at any given time, which is
unphysical. Therefore, as multi-valued functions are avoided, discontinuities will appear.
These discontinuities are known as shock waves.
2.5
In the supersonic flows of inviscid fluid flows modeled by Euler equations, shock waves
appear when the flows are obstructed by solid bodies. The appearance of such shock
waves can be explained as follows.
Consider the flow of a fluid over a blunt body, as shown in the following figure. The
Subsonic flow
(M < 1)
Solid Body
22
fluid flow consists of moving and colliding molecules. Some of the molecules collide with
the solid body and get reflected. Thus, there is a change in the momenta and energy of the
molecules due to their collision with the solid body. The random motion of the molecules
communicates this change in momenta and energy to other regions of the flow. At the
macroscopic level, this can be explained as the propagation of pressure pulses. Thus,
the information about the presence of the body will be propagated throughout the fluid,
including directly upstream of the flow, by sound waves. When the incoming fluid flow
has velocities which are smaller than the speed of the sound (i.e., the flow is subsonic),
then the sound waves can travel upstream and the information about the presence of the
solid body will propagate upstream. This leads to the turning of the streamlines much
ahead of the body, as shown in the figure (2.6).
Now, consider the situation in which the fluid velocities are larger than the speed of
the sound (i.e., the flow is supersonic). The information propagation by sound waves is
Shock Wave
Supersonic Flow
(M > 1)
M<1
Solid Body
Figure 2.7: Supersonic flow over a blunt body with the formation of a shock wave
now not possible upstream of the flow. Therefore, the sound waves tend to coalesce at
a short distance ahead of the body. This coalescence forms a thin wave, known as the
shock wave, as shown in the figure (2.7). The information about the presence of the solid
body will not be available ahead of the shock wave and, therefore, the streamlines do not
change their direction till they reach the shock wave. Behind the shock wave, the flow
becomes subsonic and the streamlines change their directions to suit the contours of the
solid body. Thus, the shock waves are formed when the a supersonic flow is obstructed
by a solid body.
2.6
We can derive several simpler equations from the Navier-Stokes equations : pure convection equation, convection-diffusion equation, pure diffusion equation and the wave
23
equations of first order and second order. These equations, including the Navier-Stokes
equations, are Partial Differential Equations (PDEs). To understand these equations better, we shall study their mathematical and physical behaviour. Let us start with the
classification of PDEs.
2.6.1
u
u
+ B(x, y)
+ C(x, y)u = D(x, y)
x
y
(2.105)
u
u
+ B(x, y)
=0
x
y
(2.106)
The above equation is a first order homogeneous partial differential equation (PDE). Let
us look for the solutions of the form
u(x, y) = f (w)
(2.107)
where w is some combination of x and y such that as x and y change, w remains constant.
Substituting (2.107) in (2.106), we obtain
f (w) w
f (w) w
+ B(x, y)
= 0
w x
w y
w
w
f (w)
A(x, y)
+ B(x, y)
= 0
w
x
y
A(x, y)
(2.108)
(w)
df
df
From the above equation, either dfdw
= 0 or A dx
+ B dy
= 0. Since we assumed that f is
df
a function of w only, dw need not be zero. Therefore, the only possibility for (2.108) to
be true is to have
A(x, y)
w
w
+ B(x, y)
=0
x
y
(2.109)
Let us now seek the solutions of (2.109) such that w remains constant as x and y vary.
Therefore, require
w
w
dx +
dy = 0
(2.110)
dw = 0 or
x
y
From (2.109) and (2.110) (which look alike), we get
A(x, y)
w
w
= B(x, y)
x
y
(2.111)
24
and
w
w
dx = dy
x
y
(2.112)
dx
dy
=
A(x, y)
B(x, y)
(2.113)
Therefore, f(w) will be constant along those lines (x, y) that satisfy (2.113). On integrating
(2.113) for given A(x, y) and B(x, y), we get a functional relation between x and y, which
can be taken as w. Thus, we can get
f (w) = f (w(x, y))
u(x, t) = f (w) = f (w(x, y))
(2.114)
(2.115)
A = 1 and B = c
dt
dx
dt
dx
=
gives
=
A
B
1
c
dx = c dt
(2.116)
Integrating, we get
x = c t + k where k is a constant.
(2.117)
w = k = x ct
(2.118)
(2.119)
where f is an arbitrary function which must be determined by initial conditions for the
PDE, which is (2.115) in this case. In a similar way, the non-homogeneous first order
PDE, where C and D are non-zero, can also be solved [2].
2.6.2
Characteristics
Let us rewrite the general form of first order linear PDE (2.105) as
A(x, y)
u
u
+ B(x, y)
= C(x, y, u)
x
y
(2.120)
Characteristics
25
Let us now solve (2.120) for u(x, y) subject to the boundary condition
u(x, y) = (s)
(2.121)
Let the boundary condition (2.121) be specified in the x y plane along a boundary curve
which is described in parametric form as
x = x(s) and y = y(s)
(2.122)
Here, s in the arc length along the boundary. Along the boundary represented by (2.122),
the variation of u is given by
du
u dx u dy
=
+
(2.123)
ds
x ds y ds
Using (2.121), (2.123) can be written as
u dx u dy
d
du
=
+
=
ds
x ds y ds
ds
We now have two equations (2.120) and (2.124) with two unknowns
(2.124)
u
u
and
. We can
x
y
(2.125)
and
u
u
A+
B=C
x
y
or
d
dx dy
x
ds
ds ds
=
u
A B
C
y
u
u
and
as
We can solve (2.127) to obtain the unknowns
x
y
dx dy 1 d
x
ds ds ds
u
A B
C
y
(2.126)
(2.127)
(2.128)
The solution is not possible if the determinant of the matrix, whose inverse is required,
NT
where N T is the transpose of the matrix N of cofactors of M .
is zero since M 1 =
|M |
26
dx
ds
dy
ds = 0
(2.129)
or
B
dx
dy
A
= 0
ds
ds
B
dy
dx
= A
ds
ds
dy
B
ds =
dx
A
ds
dy
B
=
dx
A
dy
dx
=
A
B
(2.130)
We have already seen that (2.130) represents that curve in the (x, y) plane in which w is
a constant with (u(x, y)) = f (w). Such curves are called characteristic curves or simply
u
u
or
may not exist
characteristics. Note also that the derivatives of the solution,
x
y
along the characteristics, since w = constant along the characteristics.
u
=
f (w) =
x
x
u
=
f (w) =
y
y
f w
f
=
0=0
w x
w
f w
f
=
0=0
w y
w
Therefore, discontinuities in solution may exist along the characteristics. That is why we
u
u
and
everywhere in the (x, y) domain except along the characteristics
can solve for
x
y
(when the determinant is zero (2.129)).
2.6.3
2u
2u
2u
u u
+
B(x,
y)
+
C(x,
y)
= D(x, y, u, , )
2
2
x
xy
y
x y
(2.131)
27
Apart from the general form of the second order PDE, we can obtain two more relationu
u
ships by applying the chain rule to the total derivatives of
and
[3].
x
y
2u
2u
2u
+
B
+
C
= D
(2.132)
x2
xy
y 2
2u
u
2u
(2.133)
dx +
dy = d
2
x
xy
x
2u
2u
u
(2.134)
dx + 2 dy = d
xy
y
y
or
2
u
D
x2
A B C
u
2
u
d
dx dy 0
=
(2.135)
xy
u
0 dx dy 2 u
d
y
y 2
2u
2u 2u
,
and
everywhere in the (x, y)
The equation (2.135) can be solved for
x2 xy
y 2
domain, except on a curve where the determinant in (2.135) is zero, which will be the
characteristic curve. The zero determinant condition is
A B C
A
dx dy
0
0 =0
(2.136)
dx dy
A (dy)2 dx 0 B [dxdy 0] + C (dx)2 dy 0 = 0
A (dy)2 B (dxdy) + C (dx)2 = 0
(2.137)
(2.138)
(2.139)
This is the equation of the curve along which the second partial derivatives of u cannot
be defined. The solution to (2.139) is
p
(B) (B)2 4AC
dy
=
(2.140)
dx
2A
p
B (B)2 4AC
dy
=
(2.141)
dx
2A
28
The curves in the (x, y) domain satisfying (2.139) are called the characteristics of the
PDE (2.131). The characteristics have tangents at each point given by (2.139), when
A 6= 0. The equation (2.141) has real solutions when B 2 4AC > 0 and complex roots
when B 2 4AC < 0. The second order PDEs are classified accordingly as
Hyperbolic if B 2 4AC > 0
Parabolic if B 2 4AC = 0
Elliptic if B 2 4AC < 0
When the PDEs are hyperbolic (B 2 4AC > 0), the equation (2.139) defines two
families of real curves in (x, y) plane. When the PDEs are parabolic (B 2 4AC = 0) the
equation (2.139) defines one family of real curves in the (x, y) plane. When the PDEs are
elliptic (B 2 4AC < 0) the equation (2.139) defines two families of complex curves. Note
that if A, B & C are not constant, the equation may change from one type to another at
different points in the domain. This classification is similar to the classification of general
second degree equations in analytical geometry. Recall that the general equation for a
conic section in analytical geometry is given by
ax2 + bxy + cy 2 + dx + ey = f
(2.142)
(2.143)
(2.144)
(2.145)
2
2u
2 u
=
c
t2
x2
2u
1 2u
=0
x2 c2 t2
1
A = 1, B = 0 & C = 2
c
r
1
0 (0)2 4 1 ( 2 )
1
dt
c
=
=
dx
21
c
dx
= c
dt
x = ct + k & x = ct + k (k = constant)
29
u
2u
=
2
x
t
A = , B = 0 & C = 0
B 2 4AC = 0 4 0 = 0
Therefore the equation is parabolic.
Example 3 : Consider the Laplace equation in 2-D
2u 2u
+
=0
x2 y 2
(2.146)
2.6.4
The mathematical classification introduced in the previous sections, leading to the categorization of the equations of fluid flows and heat transfer as hyperbolic, parabolic or
elliptic, is significant as different types of equations represent different physical behaviour
and demands different types of treatment analytically and numerically.
Hyperbolic PDEs
Hyperbolic equations are characterized by information propagation along certain preferred
directions. These preferred directions are related to the characteristics of the PDEs.
Consequently, there are domains of dependence and zones of influence in the physical
domains where the hyperbolic equations apply. The linear convection equation, the nonlinear inviscid Burgers equation, the Euler equations, the inviscid isothermal equations
and the isentropic equations are all hyperbolic equations. As an illustration, let us consider
the wave equation (which describes linearized gas dynamics, i.e., acoustics), given by
2
2u
2 u
=
c
t2
x2
(2.147)
30
As in a previous section for second order PDE, we can write the above equation as
2
u
t2
0
u
1 0 c2 2
dt dx 0
(2.148)
=
t
xt
u
0 dt dx
2u
x
x2
Setting the determinant of the coefficient matrix in the above equation to zero and solving
for the slopes of the characteristic paths, we obtain
(dx)2 c2 (dt)2 = 0
(2.149)
(2.150)
Therefore, there are two real characteristics associated with the wave equation considered
here. The information propagation along the characteristics is with the speed
a=
dx
= c
dt
(2.151)
The domain of the solution for the wave equation, which is a typical hyperbolic partial
differential equations (PDE), is shown in the figure (2.8).
Figure 2.8: Domain of the Solution for a Hyperbolic PDE (Wave equation)
31
Parabolic PDEs
The parabolic equations are typically characterized by one direction information propagation. Unsteady heat conduction equation, unsteady viscous Burgers equation and
unsteady linear convection-diffusion equation are examples of parabolic equations. Consider the unsteady heat conduction equation in 1-D, given by
T
2T
= 2
t
x
(2.152)
0 0 2
T d T
dx dt 0
=
0 dx dt xt
2 T T
d
t
t2
(2.153)
Setting the determinant of the coefficient matrix to zero and solving for the slopes of the
characteristic paths, we get
(dt)2 = 0
dt = 0
t = constant
(2.154)
Thus, there are two real but repeated roots associated with the characteristic equation
for unsteady conduction equation in 1-D. The characteristics are lines of constant time.
The speed of information propagation (from the above equations) is
dx
dx
=
=
dt
0
(2.155)
Thus, the information propagates at infinite speed along the characteristics (lines of constant t). The domain of the solution for a typical parablic PDE (unsteady heat conduction
equation) is shown in figure (2.9).
Elliptic PDEs
In contrast to the hyperbolic equations, the elliptic equations are characterized by information propagation having no preferred directions. Therefore, the information propagates
in all directions. A typical example is the steady state heat conduction in a slab. The
32
Figure 2.9: Domain of Solution for a Parabolic PDE (unsteady heat conduction equation)
pure diffusion equations in steady state are elliptic equations. Consider the steady heat
conduction equation in 2-D, given by
2T
2T
+
=0
x2
y 2
As done before, the above equation can be written as
2
0
x2
T
1 0 1
d
2T
dx dy 0
=
xy
0 dx dy
T
d
2T
y
2
y
(2.156)
(2.157)
Setting the determinant to zero and solving for the characteristics, we obtain
1 (dy)2 + 1 (dx)2 = 0 or
dy
= 1
dx
(2.158)
Thus, the roots are complex and there are no real characteristics. That means, there are
no preferred directions for information propagation. The domain of dependence and the
range of influence both cover the entire space considered. The domain of solution for a
typical elliptic equation (steady state heat condution equation in 2-D) is shown in figure
(2.10).
33
Figure 2.10: Domain of Solution for an Elliptic PDE (steady heat conduction equation)
Not all equations can be classified neatly into hyperbolic, elliptic or parabolic equations. Some equations show mixed behaviour. Steady Euler equations are hyperbolic for
supersonic flows (when Mach number is greater than unity) but are elliptic for subsonic
flows (when Mach number is less than unity). The mathematical behaviour of the fluid
flow equations may change from one point to another point in the flow domain.
2.7
We have seen how a scalar equation (linear convection equation in this case) is hyperbolic,
characterized by preferred directions of information propagation. Let us now consider the
vector case for hyperbolicity.
(2.159)
where
U =
U1
U2
..
.
Un
G
=
G1
G2
..
.
Gn
(2.160)
34
Here, U is the vector of conserved variables (also called as the field vector) and G is the
vector of fluxes (called as the flux vector), each component of which is a function of U .
Usually, in fluid dynamics, G is a non-linear function of U . Let us rewrite the above
system of equations in a form similar to the linear convection equation (in which the time
and space derivatives are present for the same conserved variable) as
U
G U
+
=0
t
U x
(2.161)
or
U
G
U
+A
= 0 where A =
(2.162)
t
x
U
The above form of system of PDEs (2.162) is known as the quasi-linear form. Note that A
will be a nn matrix. A system of partial differential equations (2.162) is hyperbolic if the
matrix A has real eigenvalues and a corresponding set of linearly independent eigenvectors.
If the eigenvectors are also distinct, the system is said to be strictly hyperbolic. If the
system is hyperbolic, then the matrix A can be diagonalised as
A = RDR1
where R is the matrix of eigenvectors and D is the matrix of eigenvalues.
1 0
0 0
D = ..
..
.. , R = [R1 , , Rn ] , ARi = i Ri
.
.
.
0 n
(2.163)
(2.164)
Therefore, we can define a hyperbolic system of equations as a system with real eigenvalues
and diagonalisable coefficient (flux Jacobian) matrix.
35
W
W
+ R1 AR =
=0
t
x
(2.168)
W
W
+D
=0
t
x
(2.169)
U
U
+
=0
t
x
which can be written in quasi-linear form as
(2.170)
U
U
G
+A
= 0 where A =
t
x
U
A=
0
3 2
u
2
a2 u
2 3
u
2
1
(2.171)
(3 ) u
1
a2
3 2 2
u +
u
2
1
(2.172)
1
p 1
p
p 1
In terms of the total enthalpy H = h + u2 = e + + u2 =
+ + u2
2
2
( 1) 2
0
1
0
3 2
u
(3 ) u
1
(2.173)
A=
2
1 2
2
u H
H ( 1) u
u
u
2
The eigenvalues of A are
1 = u a, 2 = u and 3 = u + a
(2.174)
1
1
1
R1 = u a , R2 = u and R3 = u + a
1 2
H ua
H + ua
u
2
(2.175)
Therefore, we can see that the 1-D Euler equations are (strictly) hyperbolic. So, are
multi-dimensional Euler equations.
36
In this short course, apart from the traditional numerical methods for solving the
equations of compressible flows, alternative methodologies based on the Kinetic Theory of Gases, called as Kinetic Schemes and a relatively new strategy of converting the
non-linear conservation equations into a linear set of equations known as the Relaxation
Systems, along with the related numerical methods known as the Relaxation Schemes,
will be presented. The next two sections are devoted to the presentation of the governing
equations for these two strategies.
2.8
Consider the flow of air over a solid body, say a wing of an aeroplane. The variables
of interest are the fluid velocities and the fluid density, apart from the thermodynamic
variables like pressure and temperature, as they can be used to calculate the required
design parameters like lift, drag, thrust and heat transfer coefficients. To obtain these
variables, we need to solve the Euler or Navier-Stokes equations, which is the subject
matter of traditional CFD and some algorithms for doing so will be presented in the
next chapters. We can also consider the fluid flow from a microscopic point of view,
considering the flow of molecules and their collisions. Obviously, both the microscopic
and the macroscopic approaches must be related, as we are referring to the same fluid
flow. The macroscopic variables can be obtained as statistical averages of the microscopic
quantities. This is the approach of the Kinetic Theory of Gases. Similar to the NavierStokes equations, which are obtained by applying Newtons laws of motion to the fluids, we
can apply Newtons laws of motion to the molecules and, in principle, solve the resulting
equations. But, it is practically impossible to solve the large number of equations that
result, as there will be 1023 molecules in a mole of a gas. Neither can we know the initial
conditions for all the molecules. Therefore, a better way of describing the fluid flow at the
microscopic level is by taking statistical averages and the Kinetic Theory of Gases is based
on such a strategy. In the Kinetic Theory, the movement of the molecules is described
by probabilities instead of individual paths of molecules. The macroscopic quantities of
interest, like density, pressure and velocity, are obtained by taking statistical averages
of the molecular quantities. These averages are taken over macroscopically infinitesimal
but microscopically large volumes. These averages are also known as moments and this
process of taking averages is called as taking moments.
Consider a small volume V (V = 3 r) in the physical space (x,y,z). Let the
number of molecules in this volume be 3 N . Therefore, the local number density, which
represents the number of molecules per unit volume, is given by
n (r) = Lim3 r0
3 N
3 r
(2.176)
37
(2.177)
and we can calculate the number of molecules if the local number density (or the molecular distribution) is known. If we consider a phase space, which has three additional
coordinates as the molecular velocities apart from three physical coordinates, we can
write
d6 N = fp (r, v) d3 rd3 v = fp (r, v) dxdydz dv1 dv2 dv3
(2.178)
where fp (r, v) is the local number density in the phase space, known as the phase space
distribution function. Therefore, if the phase space distribution function is known, we can
calculate the number of molecules by integrating the phase space distribution function
(thereby obtaining the physical number density) as
Z Z Z
fp (r, v) d3 v
(2.179)
n (r) =
(2.180)
Multiplying both sides of the above equation by the mass of the molecules, m, and identifying the density of the gas as the number of molecules multiplied by the mass of the
molecules, we obtain
mn = = hmfp i = hf i where f = mfp
Similarly, the average or mean speed of the molecules can be written as
Z Z Z
vfp (r, v) d3 v
n (r) hvi =
(2.181)
(2.182)
or
nhvi = hvfp i
(2.183)
nmhvi = hvmfp i
(2.184)
hvi = hvf i
(2.185)
or
Denoting the average molecular velocity hvi by u and recognizing it as the fluid velocity,
we can write
u = hvf i
(2.186)
38
(2.187)
1
= hf i ; u = hvf i ; E = h v2 f i
2
(2.188)
which give the macroscopic quantities as averages (also called as moments) of the molecular velocity distribution function. In addition to the above moments, we can also derive
the following additional moments for the Pressure tensor and the heat flux vector.
Pij = pij ij = hci cj f i where c = v u
(2.189)
qi = hcci f i
(2.190)
and
The relative velocity c is known by various names as peculiar velocity, random velocity or
thermal velocity. Here, ij is the Kronecker delta function, defined by
1 if i = j
ij =
(2.191)
0 if i 6= j
and
c2 = c21 + c22 + c23 ; v2 = v12 + v22 + v32
(2.192)
p
u2
+
2
2
u2
2
p
( 1)
(2.193)
(2.194)
(2.195)
is the internal energy. Therefore, to get the right value of E, we have to modify the
moment definitions. But, first let us learn about the equilibrium distribution. If we
keep a system isolated from the surroundings and insulated (no heat transfer), and if
there are no internal heat sources and external forces, the gas in the system will reach
thermodynamic equilibrium. The velocity distribution of such a state is known as the
equilibrium distribution. It is also known as Maxwellian distribution. In such a state,
all gradients are zero (the gas is at rest). However, the flows of interest always contain
39
changes in velocity and gas properties. Therefore, we consider the concept of local thermal
equilibrium, when locally the gradients are very small. For such conditions, we consider
locally Maxwellian distributions. The Maxwellian distribution is defined by
D2
2
F =
e(vu)
(2.196)
where
1
=
(2.197)
2RT
2P
and D is the number of translational degrees of freedom. For 1-D, D=1, for 2-D, D=2
and for 3-D, D=3. R is the gas constant, defined by the state equation
=
p = RT
(2.198)
Now that we know the expression for the Maxwellian distribution, let us evaluate the
moments. From the definitions, we can write for 1 D
U = h v f i
(2.199)
1 2
v
2
U = h v F i
1 2
v
2
(2.200)
U3
F dv
vF dv
= hvF i =
Z 2
v2
v
= h Fi =
F dv
2
2
U1 = hF i =
U2
(2.201)
(2.202)
(2.203)
To evaluate the above, we need to know some basic integrals. Some types of integrals we
encounter often are
Z
2
xn ex dx n = 0, 1, 2, ...
(2.204)
Jn =
Z
2
+
xn ex dx n = 0, 1, 2, ...
(2.205)
Jn =
0
Z 0
2
Jn =
xn ex dx n = 0, 1, 2, ...
(2.206)
40
R
2
We first need to evaluate the fundamental integral ex dx. Let
Z
Z
2
x2
K=
e dx =
ey dy
(2.207)
(2.208)
K =
2
K =
[]2
0
er rdrd
0
er rdr
1 r2
K = 2
e
2
K=
2
Therefore,
ex dx =
(2.209)
J0 = J0 =
J1 = 0 J1 =
+
J2 =
J2 =
2
4
J3 = 0 J3 =
3
3
J4 =
J4 =
4
8
and Jn = Jn Jn+
(2.210)
(2.211)
(2.212)
(2.213)
41
p
u2
+
( 1)
2
(2.214)
This discrepancy is because we considered only a mono-atomic gas which has no internal
degrees of freedom contributing to internal energy. It has only translational degrees of
freedom. A polyatomic gas has internal degrees of freedom contributing to vibrational and
rotational energies. To add internal energy contributions, we modify the definitions as
follows.
Z Z
=
dI
d3 v f
(2.215)
0
Z Z
u =
dI
d3 v vf
(2.216)
0
Z Z
v2
d3 v (I + )f
dI
E =
(2.217)
2
0
where v2 = v12 + v22 + v32
(2.218)
Here I is the internal energy variable corresponding to non-translational degrees of freedom. The Maxwellian is modified as
D
2 (vu)2 I
F =
e
e I0
I0
(2 + D) D
where I0 =
RT
2 ( 1)
(2.219)
(2.220)
is the average internal energy due to non-translational degrees of freedom. The basic
equation of kinetic theory is the Boltzmann equation
f
f
+v
= J (f, f )
t
x
(2.221)
42
2.8.1
Bhatnagar, Gross and Krook [7] proposed a simple model for the collision term :
J (f, f ) =
F f
tR
(2.222)
According to the B-G-K model, the velocity distribution function, f , relaxes to a Maxwellian
distribution, F , in a small relaxation time, tR . With this model, the Boltzmann equation
becomes
f
F f
f
+v
=
(2.223)
t
x
tR
2.8.2
Splitting Method
= v
f
t
f
F f
+
x
tR
= O1 + O2
f
x
F f
=
tR
where O1 = v
and O2
(2.224)
(2.225)
(2.226)
(2.227)
= O1
(2.228)
f
t
= O2
(2.229)
(2.230)
43
f
t
F f
tR
(2.231)
equation (2.230) is the convection equation for f and equation (2.231) is the collision
equation for f. Therefore, The operator splitting has resulted in two steps: (i) a convection
step and (ii) a collision step. In the convection step, (2.230) can be solved exactly or
numerically. Let us see how, in the collision step, the equation (2.231) can be solved. We
can write (2.231) as an ODE.
F f
df
=
(2.232)
dt
tR
This is a simple ODE for which the solution is given by
f = (f0 F ) e
or f = f0 e
tt
tt
+F
t
+ F 1 e tR
f = f0 e 0 + F or f = F
(2.233)
(2.234)
(2.235)
Therefore, If the relaxation time is zero, the exact solution of the collision step drives the
distribution to a Maxwellian. Thus, the collision step becomes a relaxation step. The
kinetic schemes or Boltzmann schemes are based on this split-up into a convection step
and a relaxation step :
Convection Step:
f
f
+v
=0
(2.236)
t
x
Relaxation Step:
f =F
(2.237)
Therefore, in kinetic schemes, after the convection step, the distribution function instantaneously relaxes to a Maxwellian distribution. If we start with an initially Maxwelian
distribution, we can use the approximation
F
F
+v
=0
t
x
(2.238)
where
(i = 1, 2, 3)
ui
U =
E
(2.239)
(2.240)
44
and
ui
G = ij p + ui uj
pui + ui E
(2.241)
E =
p
u2
+
( 1)
2
(2.242)
(2.243)
1
f
f
v
i
= 0i (2.244)
+ vi
h
v2
t
xi
I+
2
1
1
Z Z
vi
vi
Therefore, U = h
d3 v
dI
(2.245)
fi =
2 f
v2
v
0
I+
I+
2
2
1
1
Z Z
vi
vi
d3 v
dI
(2.246)
and Gj = h
2 vj f
2 vj f i =
v
v
0
I+
I+
2
2
The Kinetic Schemes are based on the above connection between the Boltzmann equation
and Euler equations. The splitting method is also an inherent part in most of the Kinetic
Schemes.
2.9
In the previous section, the non-linear vector conservation laws of Fluid Dynamics were
derived from a simpler linear convection equation (the Boltzmann equation), using the
Kinetic Theory of Gases. Thus, the task of solving the non-linear vector conservation
equations was simplified by the use of a linear convection equation. In this section,
another such a simpler framework is presented, in which the non-linear conservation laws
are linearized by a Relaxation Approximation. This framework of a Relaxation System is
even simpler than the previous one and is easier to deal with.
Consider a scalar conservation law in one dimension
u g (u)
+
=0
(2.247)
t
x
with the initial condition u (x, t = 0) = u0 (x) .
45
u2
Here the flux g (u) is a non-linear function of the dependent variable u. With g (u) = ,
2
we recover the inviscid Burgers equation. The main difficulty in solving this equation
numerically is the non-linearity of the flux g (u). Jin and Xin [8] dealt with this problem
of non-linearity by introducing a new variable v, which is not an explicit function of the
dependent variable u and provided the following system of equations.
u v
+
t
t
= 0
1
u
v
+ 2
= [v g (u)]
t
x
(2.248)
Here, is a positive constant and is a very small number approaching zero. We can
rearrange the second equation of the above system (2.248) as
v
2 u
= [v g (u)]
(2.249)
+
t
x
and as 0, we obtain v = g (u). Substituting this expression in the first equation
of the Relaxation System (2.248), we recover the original non-linear conservation law
(2.247). Therefore, in the limit 0, solving the Relaxation System (2.248) is equivalent
to solving the original conservation law (2.247). It is advantageous to work with the
Relaxation System instead of the original conservation law as the convection terms are
not non-linear any more. The source term is still non-linear, and this can be handled
easily by the method of splitting. The initial condition for the new variable v is given by
v(x, t = 0) = g (u0 (x))
(2.250)
This initial condition avoids the development of an initial layer, as the initial state is in
local equilibrium [8]. The above approach of replacing the non-linear conservation law by
a semi-linear Relaxation System can be easily extended to vector conservation laws and
to multi-dimensions. Consider a vector conservation law in one dimension, given by
U G (U)
+
=0
t
x
(2.251)
Here, U is the vector of conserved variables and G (U) is the flux vector, defined by
(2.252)
U = u and G (U) = p + u2
pu + uE
E
where is the density, u is the velocity, p is the pressure and E is the total internal energy
of the fluid, defined by
u2
p
+
(2.253)
E=
( 1)
2
46
with being the ratio of specific heats. The above vector conservation laws are the Euler
equations of gas dynamics and describe the mass, momentum and energy conservation
laws for the case of an inviscid compressible fluid flow. The Relaxation System for the
above vector conservation laws is given by
U V
+
t
x
= 0
U
1
V
+D
= [V G (U)]
t
x
D1 0
0
D = 0 D2 0
0
0 D3
(2.254)
(2.255)
The positive constants in the Relaxation System for the scalar case (2.248) and Di , (i =
1, 2, 3) in the Relaxation System for the vector case (2.254) are chosen in such a way that
the Relaxation System is a dissipative (stable) approximation to the original non-linear
conservation laws. To understand this better, let us do a Chapman-Enskog type expansion
for the Relaxation System.
2.9.1
In this section, a Chapman-Enskog type expansion is performed for the Relaxation System,
following Jin and Xin [8]. We can rewrite the second equation of the Relaxation System
(2.248) as
v
2 u
v = g (u)
(2.256)
+
t
x
which means that
v = g (u) + O []
(2.257)
Differentiating with respect to time, we obtain
v
g u
=
[g (u)] + O [] =
+ O []
t
t
u t
(2.258)
we can write
u
v
=
t
x
(2.259)
g v
v
=
+ O []
t
u x
(2.260)
47
"
u
v = g (u)
x
g
u
2 )#
+ O 2
(2.261)
(2.262)
(2.263)
(2.264)
Substituting this expression for v in the first equation of the Relaxation System (2.248),
we get
" (
2 )#
u
g
u g (u)
2
+
=
+ O 2
(2.265)
t
x
x x
u
The right hand side of (2.265) contains a second derivative of u and hence represents a dissipation (viscous) term. The coefficient represents the coefficient of viscosity. Therefore,
the Relaxation System provides a vanishing viscosity model to the original conservation
law. For the coefficient of dissipation to be positive (then the model is stable), the following condition should be satisfied.
2
g
u
2
or
g
u
(2.266)
U G(U)
D
+ O(2 )
(2.267)
+
=
t
x
x
U
x
For the Relaxation System (2.254) to be dissipative, the following condition should be
satisfied.
2
G (U)
0
(2.268)
D
U
48
Based on the eigenvalues of the original conservation laws (2.251), i.e., Euler equations,
Jin and Xin [8] proposed the following two choices.
2
1 0 0
(i) Define D as D = 0 22 0
0 0 23
First choice : 2 = 21 = 22 = 23 = max [|u a|, |u|, |u + a|]
(2.269)
(2.270)
where u is the fluid velocity and a is the speed of sound. With the first choice, the diagonal
matrix D can be written as
D = 2 I
(2.271)
where I is a unit matrix.
2.9.2
u
v
0 1
2 0
Q
Q
+A
=H
t
x
"
(2.272)
0
1
(2.273)
[v g (u)]
As the Relaxation System (2.248) is hyperbolic, so is (2.272) and, therefore, we can write
where Q =
, A=
and H =
(2.274)
1
1
2 2
0
1 1
1
(2.275)
, R =
R=
and =
0
1
1
2 2
Since the Relaxation System (2.272) is a set of coupled hyperbolic equations, we can
decouple it by introducing the characteristic variables as
f = R1 Q which gives Q = Rf
(2.276)
Q
f
Q
f
=R
and
=R
t
t
x
x
(2.277)
49
(2.278)
(2.279)
where
u
v
1
2 [v g (u)]
2
2
f1
and R1 H =
f=
= R1 Q =
f2
v
u
1
+
[v g (u)]
2 2
2
(2.280)
=
[v g (u)]
t
x
2
(2.281)
f2
f2
1
+
=
[v g (u)]
t
x
2
Solving these two equations in the limit of 0 is equivalent to solving the original
non-linear conservation law (2.247). It is much easier to solve the above two equations
than solving (2.247), since the convection terms in them are linear. The source terms are
still non-linear, but these can be handled easily by the splitting method, which will be
described in the following sections. Using (2.275) and (2.276), we obtain the expressions
u = f1 + f2 and v = (f2 f1 )
(2.282)
using which we can recover the original variables u and v. In the case of vector conservation
laws (2.251), the diagonal form of the Relaxation System leads to
f1
1
f1
=
[V G (U)]
t
x
2
(2.283)
f2
f2
1
+
=
[V G (U)]
t
x
2
where f1 and f2 are vectors with three components each for the 1-D case.
50
2.9.3
The diagonal form of the Relaxation System can be interpreted as a discrete Boltzmann
equation [9, 10, 11]. Let us introduce a new variable F as
u g (u)
2
F1
2
F=
=
F2
u g (u)
+
2
2
(2.284)
With these new variables, the diagonal form of the Relaxation System (2.279) can be
rewritten as
f
f
1
+
= [F f ]
(2.285)
t
x
This equation is similar to the Boltzmann equation of Kinetic Theory of Gases with a
Bhatnagar-Gross-Krook (B-G-K) collision model, except that the molecular velocities are
discrete ( and ) and the distribution function f correspondingly has two components,
f1 andf2 . The new variable F represents the local Maxwellian distribution. This interpretation was used by Natalini [9] and Driollet & Natalini [10] to develop multi-dimensional
Relaxation Systems which are diagonalizable and new schmes based on them. The classical
Boltzmann equation with B-G-K model in one dimension is given by
f
f
1
+
=
[F f ]
t
x
tR
(2.286)
where is the molecular velocity (we are not using v as it has been used in the Relaxation System for the new variable), tR is the relaxation time and F is the equilibrium
(Maxwellian) distribution. The Euler equations can be obtained as moments of the Boltzmann equation. The 1-D local Maxwellian for such a case is given by
F =
I0
12 h
i
(u)2 + II
0
e
(2.287)
1
where is the density, D is the number of translational degrees of freedom, = 2RT
,
T is the temperature, I is the internal energy variable for the non-translational degrees
of freedom and I0 is the corresponding average internal energy. The moments of the
distribution function lead to the macroscopic variables as
u=
dI
I+
2
f =
dI
I+
2
(2.288)
51
and
g (u) =
dI
f =
(2.289)
I+
I+
2
2
The macroscopic equations (Euler equations in this case) are obtained as moments of the
Boltzmann equation by
1
Z Z
f
1
f
+
=
[F f ]
(2.290)
d
dI
1 2
t
x
tR
0
I+
2
The corresponding expressions for the moments of the discrete Boltzmann equation are
0
dI
(2.291)
(2.292)
for the case of vector conservation laws. The macroscopic equations are obtained from the
discrete Boltzmann equation by multiplying by P and P respectively. Let us multiply
the discrete Boltzmann equation (2.285) by P to obtain
f
1
f
P
=P
+
[F f ]
(2.293)
t
x
or
1
(P f ) (P f )
+
= [P F P f ]
(2.294)
t
x
which is the second equation of the Relaxation System (2.248). The Relaxation System for
the vector conservation laws can also be recovered by a similar procedure. In comparison
with the classical Boltzmann equation, we can see that recovering the moments are simpler
for the Relaxation System and therefore the Relaxation Schemes will be simpler than the
traditional Kinetic Schemes in final expressions.
52
2.9.4
(2.298)
The Relaxation System given by Jin and Xin [8] for the above equation is
u v1 v2
+
+
= 0
t
x
y
u
1
v1
+ 21
= [v1 g1 (u)]
t
x
u
1
v2
+ 22
= [v2 g2 (u)]
t
y
(2.299)
(2.300)
where
0 0 1
0 1 0
u
1
{v g1 (u)}
Q = v1 , A1 = 21 0 0 , A2 = 0 0 0 and H = 1
1
22 0 0
0 0 0
v2
{v2 g2 (u)}
(2.301)
The matrices A1 and A2 do not commute (A1 A2 6= A2 A1 ) and the above system is not
diagonalizable. This is true in general for the multi-dimensional Relaxation System of Jin
and Xin (see [9]). As it is preferable to work with a diagonal form, Driollet and Natalini
[10] generalize the discrete Boltzmann equation in 1-D to multi-dimensions to obtain a
multi-dimensional Relaxation System as
D
f X
1
f
+
= [F f ]
k
t k=1 xk
(2.302)
For the multi-dimensional diagonal Relaxation System, the local Maxwellians are defined
by [10]
"
#
D
1X
1
u+
FD+1 =
gk (u)
D
k=1
(2.303)
1
Fi = gi (u) + FD+1 , (i = 1, , D)
53
Let us consider the 2-D case for which the local Maxwellians are given by
u
2
1
g
(u)
+
g
(u)
2
3 3 1
3
F1
u
1
2
F = F2 = + g1 (u) g2 (u)
3 3
3
F3
u
1
1
+ g1 (u) + g2 (u)
3 3
3
(2.304)
u = P f = P F , g1 = P 1 F , g2 = P 2 F , v1 = P 1 f and v2 = P 2 f
(2.305)
we can obtain
0
P = [1 1 1] , 1 =
0
u
3
u
and f =
3
u
3
0 0
0 0 ,
0
2
v1 +
3
1
+ v1
3
1
+ v1 +
3
0 0 0
2 = 0 0
0 0
1
v2
3
v2
3
1
v2
3
(2.306)
Now, multiplying the 2-D discrete Boltzmann equation by P , P 1 and P 2 , we can obtain
the 2-D Relaxation System for (2.298). The 2-D Boltzmann equation is
f
1
f
f
+ 1
+ 2
= [F f ]
t
x
y
(2.307)
(2.308)
(2.309)
(2.310)
54
(2.311)
(2.312)
(2.313)
1
2
2
v2
f3 +
(f2 + f3 ) = [g1 (u) v1 ]
+
(2.314)
t
x
y
Using the definitions (2.305) in (2.309), (2.313) and (2.314), after some algebraic manipulation, we obtain the 2-D Relaxation System as
u v1 v2
+
+
=0
t
x
y
1
v1
+
[2 (u + v1 + v2 ) 3v1 ] +
[u + v1 + v2 ] = [g1 (u) v1 ]
t
3 x
3 y
v2
1
+
[u + v1 + v2 ] +
[2 (u + v1 + v2 ) 3v2 ] = [g2 (u) v2 ]
t
3 x
3 y
(2.315)
This Relaxation System is different from the non-diagonalizable Relaxation System of Jin
and Xin (2.299). The above derivation was done only to see the type of multi-dimensional
Relaxation System we obtain from the multi-dimensional discrete Boltzmann equation. It
is not necessary, however, to use the above Relaxation System, and it is sufficient to use the
multi-dimensional discrete Boltzmann equation as a starting point to derive Relaxation
Schemes. For the 2-D cases presented in this report the following equation is used as a
starting point
f
f
f
1
+ 1
+ 2
= [F f ]
(2.316)
t
x
y
=
[F1 f1 ]
t
x
f2
1
f2
=
[F2 f2 ]
t
y
f3
f3
f3
1
+
+
=
[F3 f3 ]
t
x
y
(2.317)
55
For 2-D Euler equations, the expanded form of the discrete Boltzmann equation is given
by
f1
f1
1
=
[F1 f1 ]
t
x
f2
1
f2
=
[F2 f2 ]
t
y
f3
f3
1
f3
+
+
=
[F3 f3 ]
t
x
y
(2.318)
where fi and Fi for each i, (i = 1, 2, 3) are vectors with 4 components each similar to the
corresponding moments U, V1 , V2 , G1 and G2 . The initial condition for f is prescribed
as
f (x, y, t = 0) = F (U (x, y, t = 0))
(2.319)
The ChapmanEnskog type analysis for the above multidimensional Relaxation System
to be a dissipative approximation to the original conservation laws leads to the following
condition (see [10, 42] for details of the derivation).
max (A1 A2 , 2A1 A2 , A1 + 2A2 )
where
A1 =
2.10
G1 (U)
G2 (U)
and A2 =
U
U
(2.320)
(2.321)
In the preceding sections, the governing equations of compressible fluid flows are presented, along with two major alternative formulations which make the task of solving
these equations simpler - the framework of Kinetic Theory of Gases and the framework
of Relaxation Systems. In the later chapters, the numerical methods for solving the compressible fluid flows are presented, based on each of the above framework. While the
traditional numerical methods based on Euler and Navier-Stokes equations are presented
briefly, more emphasis is given in this course for alternative formulations.
56
Chapter 3
Analysis of Convection Equations
In this chapter, the convection equations are studied in detail. Starting with the linear
convection equation, the method of characteristics is introduced as a technique for finding
the solution for hyperbolic equations. This is followed by a similar analysis for non-linear
convection equation (inviscid Burgers equation) in which the basic difficulties resulting
from the non-linearity are presented, along with the techniques to deal with them.
3.1
To understand the nature of the linear convection equation better, let us first find out its
solution. The linear convection equation
u
u
+c
=0
(3.1)
t
x
is a first order wave equation, also called as advection equation. It is a first order hyperbolic
partial differential equation. Hyperbolic partial differential equations are characterised by
information propagation along certain preferred directions. To understand this better, let
us derive the exact solution of (3.1), given the initial condition
u(x, t = 0) = u0 (x)
(3.2)
Let us now use the method of characteristics to find the value of the solution, u(x, t), at
a time t > 0. The method of characteristics uses special curves in the x t plane along
which the partial differential equation (PDE) becomes an ordinary differential equation
(ODE). Consider a curve in the x t plane, given by (x(t), t). The rate of change of u
d
along this curve is given by u (x (t) , t). Using chain rule, we can write
dt
d
dx
u (x (t) , t) =
u (x (t))
+ u (x (t) , t)
(3.3)
dt
x
dt
t
57
58
(x(t),t)
(0,0)
(3.4)
The right hand side of (3.4) looks similar to the left hand side of the linear convection
u
u
+ c . Therefore, if we choose
equation (3.1), i.e.,
t
x
c=
dx
dt
(3.5)
du
= 0, which is and ODE! The curve (x (t) , t), therefore, should be
then (3.1) becomes
dt
defined by
dx
= c with x (t = 0) = xo
(3.6)
dt
The solution of (3.6) is given by
x = ct + k
(3.7)
where k is a constant. Using the initial condition x (t = 0) = x0 , we get
x0 = k
(3.8)
x = ct + x0
(3.9)
Therefore
u
u
+c
=0
t
x
u
u
+c
= 0,
(3.1), or simply as the characteristic. Along the characteristic, the PDE,
t
x
du
= 0. The solution of this ODE is u = constant. Therefore, along
becomes an ODE,
dt
The curve x = ct + x0 is called the characteristic curve of the equation
59
the characteristic, the solution remains a constant. Thus, if we know the solution at the
foot of the characteristic (at x0 ), which is the initial condition, we can get the solution
anywhere on the characteristic, that is, u (x, t). Using (3.9), we can write
x0 = x ct
(3.10)
(3.11)
1
x0
1
ct = x x0 or t = x
or t = x k
c
c
c
(3.12)
Therefore
We can write (3.9) as
slo
pe
=1
/c
x = s + c and t =
(3.14)
Therefore, the transformation is from u (x, t) to u (s, ). Since the function is the same
in different coordinate systems
u (x, t) = u (s, )
(3.15)
60
(3.16)
Therefore
t
x
= 1 and
=c
(3.17)
d
u
u
u
=
+c
d
t
x
(3.18)
u
u
+c
= 0. Therefore
t
x
d
u
=0
d
(3.19)
(3.20)
u ( ) = k = constant
(3.21)
u ( = 0) = u0 (s) = k or k = u0 (s)
(3.22)
u (s, ) = u0 (s)
(3.23)
u (x, t) = u0 (s)
(3.24)
(3.25)
Therefore
Since u = u, we obtain
Using (3.13), we can write
(3.26)
If we consider a point xj with neighbours xj1 and xj+1 to the left and right sides of xj
respectively, the foot of the characteristic can fall on the left or right side of xj depending
on the sign of c. Since the information travels a distance of x = ct along the characteristic
during a time t (from t = 0), c is the speed with which information propagates along the
characterstics, and is called characteristic speed or wave speed. Therefore, we can see
that the sign of c determines the direction of information propagation, with information
coming from the left if c > 0 and from right if c < 0.
xj1
x
ct ct
xj
x
61
t+t
xj+1
Figure 3.3: Information propagation for linear convection equation on a 3-point stencil
3.2
(3.27)
u (x, t = 0) = u0 (x)
(3.28)
u (x, t) = u0 (x ct)
(3.29)
Example
Consider
u
u
+c
= 0 with c = 5
t
x
and
u (x, t = 0) = u0 (x) = ex
The solution is
2
This example represents a traveling wave with initial profile ex moving in the positive
x-direction with speed c = 5. The traveling wave solution for this problem at different
times are shown in the following figures.
62
3.3
u
u
+ a(x, t)
=0
(3.30)
t
x
Note that the wave speed, a, is not a constant but is a function of x and t. (3.30) is still
a linear equation as a 6= a(u). The characteristics can be found by
dx
= a(x, t)
dt
(3.31)
x(t = 0) = x0
(3.32)
Figure 3.6: Characteristics for a Linear Convection Equation with a Variable Coefficient
as Convection Speed
u
u
d
(u(x(t), t)) =
+ a(x, t)
= 0 (from(3.30) &(3.31))
dt
t
x
Thus, we can see that u is a constant along the characteristics. Will the characteristic
curves intersect? The equation for the characteristic is an ODE, given by
dx
= a(x, t) with x(t = 0) = x0
dt
(3.34)
If a(x, t) is smooth, the curves (3.34) will exist, at least locally, and never intersect without being coincident, by the existence and uniqueness theorem for ordinary differential
equations1 .
Example
u
u
+ t2
= 0, u(x, t = 0) = u0 (x)
t
x
The characteristic curve is given by
dx
= t2
dt
(3.35)
(3.36)
Chorin & MarsdenA Mathematical Introduction to Fluid Mechanics, 3rd edition, 2000, SpringerVerlag, pp 105-106
64
Integrating, we get
1
x = t3 + k
3
The foot of the characteristic corresponding to u0 (x) can be defined as
x(t = 0) = x0
1
0+k
x0 =
3
k = x0
1 3
t + x0
x =
3
(3.37)
(3.38)
3.4
(3.39)
Consider the 1-D inviscid Burgers equation, which is a non-linear convection equation,
given by
u
u
+u
=0
(3.40)
t
x
We can write (3.40) as
u
u
+ a(u)
=0
(3.41)
t
x
where a(u) = u is the convection speed. Since a = a(u), this equation is non-linear. The
characteristics are defined by
dx
= a(u) with x(t = 0) = x0
dt
(3.42)
To integrate (3.42), we need to know u, as a = a(u). But, u is the solution itself, which we
are seeking! Thus, it appears we cannot carry out the integration of (3.42). However, we
can overcome this problem by using the fact that the solution is still a constant along the
65
(3.43)
(3.44)
(3.45)
(3.46)
(3.47)
We can see from (3.45) that characteristics are straight lines, like those for the linear
convection equation. However, unlike for the linear convection equation, the slopes are
t
slope=1/a(u2)
slope=1/a(u1)
x1
slope=1/a(u3 )
x2
x3
Figure 3.7: Typical Characteristics for Non-linear Convection (Inviscid Burgers Equation)
not the same. From the equation (3.45), we get
x x0
=t
a(u0 (x0 ))
66
1
x0
x k ( where k =
= constant )
a(u0 (x0 ))
a(u0 (x0 ))
1
, may vary from point to point for different values of x0 , as it depends
a(u0 (x0 ))
upon u at x0 . Therefore, the characteristics may either converge and may eventually
intersect or may diverge for this case of non-linear convection equation (inviscid Burgers
equation).
The slope ,
Example
Consider the inviscid Burgers equation
u
u
+u
= 0, < x < , t > 0
t
x
(
0
if x 0
with the initial condition u(x, t = 0) =
1
(
)
e x
if x > 0
The convection speed is given by
a(u0 (x0 )) = u0 (x0 )
x = u0 (x0 )t + x0
(
0 t + x0 = x0 if x 0
x =
1
e x0 t + x0 if x > 0
1
=e
As x0 moves to right, slope
u0 (x0 )
1
x0
decreases to zero.
u(xo,0) = 0
x
u(xo,0) = exp(1/xo)
u(x, t) =
0
e
1
x0
if x 0
if x > 0 ( where x = x0 + e
1
x0
t)
3.5
67
Gradient Catastrophe
In the case of linear convection equation, we could obtain the exact solution with the
help of the method of characteristics by using the value of the solution at the foot of a
characteristic. Even for the non-linear convection equation, this strategy of following a
characteristic curve (x, t) back to its foot (x0 , t = 0) can be used as long as the characteristics do not intersect. If the characteristics intersect, this strategy breaks down.
The breakdown of the solution is related to the phenomenon called Gradient Catastrophe.
The gradient catastrophes are precursors to the formation of the discontinuous solutions
known as the shock waves.
Consider the linear convection equation
u
u
+c
= 0, < x < , t > 0
t
x
(3.48)
u(x, t = 0) = u0 (x)
(3.49)
characteristic
68
y
y
y
parallel
characteristics
x
Now, let us consider the case of non-linear convection equation, the Burgers equation,
given by
u
u
+u
= 0, < x < , t > 0
(3.50)
t
x
with initial condition
u(x, t = 0) = u0 (x)
(3.51)
The characteristic curves for this non-linear case, x = a(u(x0 ))t + x0 , are straight lines
but need not be parallel. Let us consider the case when they intersect, at some time tc ,
the critical time. As t increases, if we follow the solution along two characteristics that
u
y
x
y y
x x
intersecting
characteristics
intersect, along each characteristic the solution is constant, but the slope of the solution
69
du
u
profile changes. The gradient
= lim
keeps on increasing as t increases and
dx x0 x
becomes infinite as t approaches tc , when the characteristics intersect. This phenomenon
is called Gradient Catastrophe.
Let us now observe the gradient catastrophe in the x u plane. Recall that for the
linear convection equation, the solution profile u(x, t = 0) simply gets translated with a
speed c.
u
u(x,t=0)
u(x,t1)
u(x,t2)
ct1
ct2
dx
dx
The characteristic is defined by the equation
= c. Thus
represents the convecdt
dt
dx
(= a(u)) is not constant and changes at different
tion speed. In the non-linear case,
dt
points on the solution profile.
u
u3
u2
u1
u=0
speed = a(u3 )
speed = a(u2)
speed = a(u1 )
70
Consider the Burgers equation for which a(u) = u and consider an initial profile which
is monotonically increasing. Therefore as u increases, a(u) increases.
u
t=0
t=t1
t=t 2
large speed
small speed
x
u
t=0
t=t1
t=t2
multivalued
unphysical
solution
t=t3
x
Figure 3.15: Multivalued unphysical solution for Burgers Equation
which is monotonically decreasing, as the upper part overtake lower part (due to larger
speed on the top), the gradient becomes infinite and the solution becomes multi-valued.
Let us now recollect the basic features of a function. A function is rule that assigns
exactly one real number to each number from a set of real numbers. Such a rule is often
71
(3.52)
u(x, t = 0) = u0 (x)
(3.53)
(3.54)
u(x, t) =
x
x0
x0
x
(3.55)
72
by chain rule. To evaluate the right hand side of (3.55) we need the relationship of x0 to
x, which is given by equation for a characteristic as
x = a(u0 (x0 ))t + x0
(3.56)
where a(u) is a convection speed. Note that (3.56) is an implicit equation in x0 . Therefore,
let us use the implicit differentiation to obtain
(x) =
[a(u0 (x0 ))t + x0 ]
x
x
x0
1 = t
[a(u0 (x0 ))] +
x
x
x0 x0
+
[a(u0 (x0 ))]
1 = t
x0
x
x
x0
1 =
t
{a(u0 (x0 ))} + 1
x
x0
x0
=
x
1
(3.57)
[u(x, t)] =
x
u0 (x0 )
x0
(3.58)
When the gradient catastrophe occurs, as the gradient becomes infinity, the denom
inator in (3.58) should become zero. If
{a(u0 (x0 ))} 0, the denominator in (3.58)
x0
{a(u0 (x0 ))} < 0 for some x0 , then the denominator can
never approaches zero. If
x0
become zero. Equating the denominator to zero, we get
1+t
{a(u0 (x0 ))} = 0
x0
73
(3.59)
The value of x0 which produces earliest blow-up time is that value of x0 which makes the
derivative in the denominator most negative.
Example
Consider the Burgers equation
u
u
+u
= 0, < x < , t > 0
t
x
with initial condition
u(x, t = 0) = ex
(3.60)
(3.61)
x = ex0 t + x0 ( u(x, 0) = ex )
(3.62)
h x0 2 i ew w
( where w = x0 2 )
[a(u0 (x0 ))] =
=
e
x0
x0
w x0
2
[a(u0 (x0 ))] = ew (2x0 ) = 2x0 ex0
x0
1
1
=
tc =
2
2x0 ex0
2x0 ex0 2
(3.63)
2
[a(u0 (x0 ))] = 2x0 ex0
x0
(3.64)
74
1.5
tb
1
0.5
ex0
2 x0
2
2
f (x0 ) = 2x0
2ex0
= 2x0 (2x0 )ex0 2ex0 1
x0
x0
x0
2
2
2
f (x0 ) = 4x0 2 ex0 2ex0 = ex0 (4x0 2 2)
x0
2
f (x0 ) to zero, to obtain the maximum, we get ex0 (4x0 2 2) = 0.
Equating
x0
4x0 2 2 = 0
1
or x0 2 =
2
1
x0 =
2
(3.65)
1
If we take x0 = in (3.65), we do not get the most negative values of f (x0 ). Therefore,
2
1
we take x0 = + .
2
1
from (3.63)
tc =
2x0 ex0 2
1
tc =
1 2
2
2 12 e
1
tc =
1
2 e( 2 )
r
r
e
2.718281828
=
= 1.165821991 = 1.17 1.2
tc =
2
2
3.6
We have seen that for non-linear scalar conservation laws the characteristics can intersect and result in the phenomenon of gradient catastrophe. The solution
of a non-linear scalar conservation law can be found using the method of characteristics
only till the time of a gradient catastrophe, that is, till the breaking time. The method
of characteristics temporarily stops when a gradient catastrophe occurs. However, the
physical process modeled by the conservation law does not necessarily end at the breaking time. To extend the method of finding the solution beyond the breaking time, we
need to introduce the concepts of piece-wise smooth solutions and discontinuous solutions. The multi-valued solution is avoided by the introduction of a jump discontinuity
with piece-wise smooth solutions on both sides of the jump discontinuity.
Consider a non-linear scalar conservation law
u g(u)
+
= 0, < x < , t > 0
t
x
(3.66)
u(x, t = 0) = u0 (x)
(3.67)
u
u
and
in R+ and R .
t
x
76
3. At every point (x0 , t0 ) on the curve (xs (t), t), the limits
uL =
lim
(x,t)(x0 ,t0 )
u(x, t) in R and uR =
lim
(x,t)(x0 ,t0 )
u(x, t) in R+
3.7
Discontinuities may develop in the solution of non-linear conservation laws, even if the
initial profile is smooth. Even for the case of a linear conservation law, an initial discontinuity in the solution may propagate in time. Thus, there is a need for considering
discontinuous solutions for conservation laws. Such a generalization of the concept of solutions (from totally smooth solution to piece-wise smooth solutions with discontinuities)
necessiates the introduction of what is known as a weak form of a conservation law.
A differential form of a conservation law
u g(u)
+
= 0, < x < , t > 0
t
x
(3.68)
u(x, t = 0) = u0 (x)
(3.69)
t2
t1
x2
x1
u g(u)
+
t
x
dxdt = 0
(3.70)
(x, t) dxdt = 0
(3.71)
u g(u)
+
t
x
where
(x, t) =
1 if (x, t) Q
0 if (x, t)
/Q
(3.72)
78
The modern theory of PDEs has taken this integrated version of the equation (3.71)
and (3.72) one step further, replacing the discontinuous function (x, t) of (3.72) by a
smooth test function (x, t). This leads the procedure of defining solutions in sense of
distributions. The family of test functions is assumed to be differentiable at least once
(C 1 functions) and have compact support, vanishing outside some rectangle.
The weak form of u
+ (g(u))
= 0 is an alternative integral form of the conservation
t
x
law. The weak form uses test functions which have the following features. A test function
(x, t) is a real valued function for which
1. the derivatives
and
exist and are continuous for all (x, t) and
t
x
2. there is an area of compact support (a circle) in the x t plane such that (x, t) = 0
in all (x, t) = 0 in all (x, t) on or outside this area of compact support.
An example of a test function is
1
exp
if x2 + t2 < 1
(x, t) =
1 x2 t 2
0
if x2 + t2 1
(3.73)
Let us now derive the weak form for a scalar conservation law given by
u g(u)
+
= 0, < x < , t > 0
t
x
(3.74)
u(x, t = 0) = u0 (x)
(3.75)
(3.77)
I2 =
g(x, t)(x, t) dxdt
x
0
Z
I1 =
Z
I1 =
(
(3.78)
(3.79)
u(x, t)(x, t) t
t0
uv = uv
vdu; u & v
I1 =
[0 u0 (x)(x, 0)] dx
I1 =
I2 =
u(x, t)
(3.80)
(3.81)
Similarly,
I2 =
g(x, t)(x, t) x
x
80
uv = uv
vdu; u &v
g
; integration by parts)
x
(3.82)
I1 + I2 = 0
Z Z
(x, t)
(x, t)
u(x, t)
u0 (x)(x, 0)dx
g(x, t)
dxdt
dxdt = 0
t
x
0
Z
Z Z
(x, t)
(x, t)
+ g(x, t)
u0 (x)(x, 0)dx = 0
(3.83)
dxdt +
u(x, t)
t
x
This is the weak form of the conservation law. Note that the weak form (3.83) does not
require derivatives of u(x, t). Hence, it is valid for discontinuous values of u(x, t) also. It
can be shown that any weak solution also satisfies the integral conservation laws 2 .
Let us now consider the integral form of conservation laws, which can also be derived
from the weak form (3.83) by using
1 if (x, t) Q
==
0 if (x, t)
/Q
The integral form of the conservation law considered here is given by
Z x2
d
u(x, t)dx = g(x1 , t) g(x2 , t)
dt x1
(3.84)
Note that (3.84) can also be derived directly by integrating the differential form over
[x1 , x2 ]. The advantage of the integral form over the differential form is that discontinuous
solutions are allowed.
See Ben-Artzi & Fallovitz, Generalized Riemann Problems in CFD, 2003, Cambridge University Press
and LeVeque, FVMs for Hyperbolic Problems, 2003, Cambridge University Press
3.8
81
(3.85)
u(x, t = 0) = u0 (x)
(3.86)
using a curve (xs (t), t) in the x t plane to separate the characteristics approaching from
the left and the right. While many such curves can be drawn, the conservation law chooses
only one curve (xs (t), t) out of all possible choices. Let us now find it out.
(3.87)
If the shock waves (discontinuities) are present, then we need to use the integral form of
the conservation law, given by
Z
d x2
u (x, t) dx = g (u (x1 , t)) g (u (x2 , t))
(3.88)
dt x1
82
for a domain [x1 , x2 ]. Let us assume that the shock is located between x1 x2 , for two times
t and t + t. During t, the distance traveled by the shock is given by
x = st
(3.89)
from xi to xf . Let the values of u before and after the shock be uL and uR . R
x
Let us now evaluate the left hand side of the equation (3.88). Note that x12 udx repZ
d x2
resents the area under the graph between x1 and x2 (see Fig.3.23). Therefore,
udx
dt x1
represents the time rate of change of the above area during t. Let us now estimate the
u
uR
u(t)
D
uL
u(t + t)
G
E
F
K
A
xf
x1
xi
x2
Figure 3.23: Moving shock wave
area under the graphs, both for u(x, t) and u(x, t + t).
x2
x1
Therefore
area EDGF
(3.90)
area F GJK
x2
x1
(3.91)
x2
x1
area ECHF
(3.92)
area F GJK
83
x2
x1
(3.93)
Thus, the change in the area under the graph during t is given by
Change in area = [uR (xi x1 ) + uR st + uL (x2 xf )]
[uR (xi x1 ) + uL st + uL (x2 xf )]
= (uR uL ) st
The left hand side of the equation (3.88) now can be evaluated as
Z
d x2
(uR uL ) st
change in area during t
=
= s (uR uL )
udx =
dt x1
t
t
(3.94)
(3.95)
(3.96)
dxs
g
=
(3.97)
dt
u
This is the Ranking-Hugoniot (jump) condition. Therefore, of all the possible curves
(xs (t), t) separating R and R+ , only that curve which satisfies the jump condition
(3.97) will be picked up by the conservation law. A piece-wise smooth solution u(x, t) of
g(u)
u
+
= 0 with a jump along the a curve xs (t) satisfying the R-H condition is
t
x
called shock wave and the curve xs (t) is called shock path. Note that the jump condition
(3.97) had been obtained in the Fluid Dynamics much before the concept of a weak solution is introduced in applied mathematics. It is based on conservation condition, which
is also at the root of the above mathematical derivation. To understand the R-H condis=
dxs
= 0. Therefore (3.97) gives g = 0 or
dt
84
gL = gR , where L and R denote the left and the right states respectively. This means,
across a shock, the total flux g(u) is conserved, though there is a jump in the
1
conserved variable u. For Burgers equation, since g(u) = u2 , we obtain
2
1 2
1
u 12 u2L
(uR uL )(uR + uL )
dxs
2 R
2
=
=
dt
(uR uL )
(uR uL )
dxs
1
=
(uR + uL )
dt
2
or
uL + uR
(3.98)
s =
2
dxs
If we choose uL = uR , then s =
= 0. Thus, the shock can be made stationary by
dt
choosing uL = uR .
Example
1
u g(u)
+
= 0, g(u) = u2 , < x < , t > 0
t
x
2
The initial condition is
1 if x 0
u(x, 0) =
0 if x > 0
(3.99)
1
xs = t
2
85
1 if x < 2 t
u(x, t) =
0 if x > t
2
86
3.9
(3.100)
uL
(3.101)
Let
uR
if x < xL
if x > xR
(3.102)
xL = xR = xLR
(3.103)
Let
The initial condition can be plotted as shown below. The conservation law (3.100) can
u
u
+ a(u)
=0
t
x
(3.104)
where
g(u)
u
The equation for the characteristics is given by
a(u) =
dx
= a(u)
dt
(3.105)
(3.106)
87
Since the solution is constant along the characteristics, for the solution u(x, t) at any
point on the x t plane, we can use the value at the foot of the characteristic on which
the point lies. Note that the value at the foot of the characteristics are nothing but the
initial conditions. Therefore we can write
dx
= a(u0 (x0 ))
dt
(3.107)
(3.108)
(3.109)
since a(uL ) and a(uR ) are constants, the characteristics are straight lines. Let us now
determine the constants kL and kR . For t = 0 and x = xL , (3.109) gives xL = a(uL ) 0+kL .
kL = xL . For t = 0 and x = xR , (3.109) gives xR = a(uL ) 0+kR . kR = xR . Therefore,
(3.109) gives
88
u(x, 0) =
uL
uL +
if x xL
(uR uL )
(x xL )
(xR xL )
uR
if x xR
dx
= a(u), we obtain
dt
a(uL )
(uR uL )
dx
=
(x xL )
a uL +
dt
(xR xL )
a(uR )
Therefore, from
if xL < x < xR
if xL < x0 < xR
if x0 xR
a(uL )t + kL
for x0 xL
for xL < x0 < xR
x=
for x0 xR
a(uR )t + kR
or
x=
(3.112)
(uR uL )
(x xL ) t + kLR
x = a uL +
(xR xL )
(3.111)
if x0 xL
a(uL )t + kL
if x0 xL
a (uLR ) t + kLR
if xL < x0 < xR
a(uR )t + kR
if x0 xR
(3.113)
89
with
uL < uLR < uR
(3.114)
Figure 3.31: Characteristics with Modified Initial Condition for Non-linear Convection
Equation
gap in the plot now. Let us now shrink x to zero, making xL and xR approach each
other. First, let us get the solution for a finite x. Using (3.113) and (3.111), we can
write
u
if
x
a(u
)t
+
x
L
L
L
(uR uL )
(x xL ) if a(uL )t + xL < x < a(uR )t + xR
uL +
u(x, t) =
(xR xL )
uR
if x a(uR )t + xR
(x xL )
uL
if
a(uL )
(uR uL )
(x xL ) (x xR )
uL +
(x xL ) if a(uL ) <
&
< a(uR )
or u(x, t) =
(xR xL )
t
t
(x
x)
R
a(uR )
uR
if
t
(3.115)
90
u(x, t) = uL +
which is not easy to handle. Therefore, let us take the characteristic equation in the
middle region as
x = xL + a(u)t (for a(uL ) <
(x xR )
(x xL )
&
< a(uR ))
t
t
(x xL )
(x xL )
(x xR )
(for a(uL ) <
&
< a(uR ))
t
t
t
(x xL )
a(uL )
if
t
uL
a(u(x, t)) =
(x xL )
t
u(x, t)
uR
if a(uL ) <
(x xL )
(x xR )
&
< a(uR )
t
t
(x xR )
if
a(uR )
t
(3.116)
u(x, t) = uL
if a(uL )
x
x
x
a(u(x, t)) =
if a(uL ) < & < a(uR )
(3.117)
t
t
t
u(x, t) = uR
if a(uR )
t
The above intuitive approach suggests that the solution is a function of xt in the middle
region, where the gap is to be filled up. In the left and right regions, the solution is a
constant depending on the value of xt . Therefore, we can look for a similarity solution
u(x, t) = ( xt ). Let us now obtain such a solution in a mathematically rigorous way.
u(x, t) = (w) where w =
x
t
=
=
and
t
w t
t
t2
t2
t
x 1
g(u)
g(u) u w
a(u) x
=
= a(u)
=
x
u w x
t t
t
t
u g(u)
+
= 0 gives
t
x
x
a(u) x
x
+
=0
t2
t
t
t
xi
1 x h
a(u)
=0
t t
t
h
xi
x
= 0 or a(u)
=0
Either
t
t
91
(3.118)
First Possibility :
u(x, t) =
x
t
x
t
= 0 or
x
t
= constant
u
if
x
a(u
)t
L
L
uR
if x a(uR )t
(3.119)
The above solution (3.119) means that there are two shocks (jumps), one from uL to K
at x = a(uL )t and another from K to uR at x = a(uR )t. Across x = a(uL )t, the R-H
condition gives
dx
g
g(K) g(uL )
=
=
(3.120)
dt
u
K uL
For Burgers equation
1
1
( K 2 uL 2 )
dx
g
1
2
=
= 2
(3.121)
= (K + uL )
dt
u
K uL
2
dx
But from x = a(uL )t,
= a(uL ) = uL for Burgers equation
(3.122)
dt
The above two values need not be equal for all possible values of K. That means the R-H
condition is not satisfied at x = a(uL )t. Similarly,
we can show that R-H condition is not
x
= constant is not a correct solution in the
satisfied at x = a(uR )t also. Therefore,
t
middle region.
92
Second Possibility :
h
a(u)
u(x, t)
xi
x
= 0 or a(u) =
t
t
= uL
x
t
a(u(x, t)) =
u(x, t)
(3.123)
if x a(uL )t
if a(uL )t < x < a(uR )t
= uR
if x a(uR )t
uL
if x a(uL )t
(3.124)
which is written as
u(x, t) =
x
a1 ( )
t
uR
(3.125)
if x a(uR )t
x
in the middle region.
t
In the above solution, the characteristics now fill up the entire region in the x t plot,
with a centered expansion fan, also referred to as a centered rarefaction fan in the middle
region where there was a gap before. If we observe the u x plot, we can see that the
initial jump in the solution is broken down and the solution now has a smooth variation.
The solution profile gets stretched out or expanded or rarefied, and hence this phenomenon
is called as an expansion fan or a rarefaction fan.
For Burgers equation, as a(u) = u or a1 (u) = u, u(x, t) =
93
Example
u g(u)
+
= 0, < x < , t > 0
t
x
0 if x 0
u(x, 0) =
1 if x > 0
Non-conservative form is
u
u
+ a(u)
= 0, a(u) = u.
t
x
dx
= a(u)
dt
x = a(u0 (x0 ))t + x0
94
x =
The solution is
0 t + x0 = x0
if x0 0
1 t + x0 = t + x0
if x0 t
x
u(x, t) =
t
if x 0
if 0 < x < t
if x t
Figure 3.35: Expansion fan at different times for Non-linear Convection Equation
3.10
95
0 if x 0
u(x, t = 0) =
1 if x > 0
u(x, t) =
to a rarefaction wave is
0
if x 0
x
t
if 0 < x < t
if x t
Let us now check whether another different solution also satisfies the conservation equation
and the other necessary conditions required to have a physically meaningful solution.
Instead of a rarefaction wave, let us prescribe two shocks as shown below. Let the solution
u(x, t) =
k
1
if x kt
2
if
1
1
kt < x < (k + 1)t
2
2
1
if x (k + 1)t
2
96
1
In the region x < kt :
2
u(x, t) = 0
u
u
= 0&
=0
t
x
u
u
+u
=0
t
x
In the region
1
1
kt < x < (k + 1)t :
2
2
u(x, t) =
x
u
= 2
t
t
x
t
u
1
=
x
t
u
x
x1
u
+u
= 2 +
t
x
t
tt
u
x
x
u
+u
= 2 + 2 =0
t
x
t
t
1
In the region x > (k + 1)t :
2
u(x, t) = 1
u
u
= 0&
=0
t
x
97
u
u
+u
=0
t
x
Thus, the equation is satisfied. Therefore, the prescribed solution satisfies the conservation
equation in all the three regions. The solution given contains three regions of constants,
with two discontinuities in between. Let us now check if the given solution also satisfies
the R-H conditions at the discontinuities.
1
R-H Condition at x = kt :
2
1
1
( k 2 02 )
g
dx
2
=
= 2
dt
u
k0
1 2
k
k
dx
= 2 =
dt
k
2
dx
1
1
= k
From x = kt &
2
dt
2
Therefore, the R-H condition is satisfied.
1
R-H Condition at x = (k + 1)t :
2
dx
1
=
(k + 1)
dt
2
1
1
( 12 k 2 )
g
dx
2
=
= 2
From R-H condition,
dt
u
1k
dx
1 (1 + k)(1 k)
1
=
= (k + 1)
dt
2
(1 k)
2
and the jump condition is satisfied here too.
Thus, we can see that this unphysical solution, with shocks instead of an expansion,
not only satisfies the conservation equation, but also is consistent with the RankineHugoniot jump conditions. Thus, this is a solution which is mathematically admissible,
but physically not admissible, as expansion shocks are not admissible. This problem
has arisen because the non-linear conservation equations allow more than one solution
mathematically and this non-uniqueness has to be dealt with additional criteria. In the
next section, we shall discuss such additional criteria, called entropy conditions.
98
3.11
Entropy Conditions
We have seen that the solutions to the non-linear scalar conservation laws are not unique.
We have also seen that an unphysical solution like a rarefaction shock (an expansion
shock) satisfies the non-linear conservation law as well as the Rankine-Hugoniot (jump)
condition. Why did such a situation arise?
Recall that the differential form of a conservation law does not admit shock wave solutions, as discontinuities are not allowed in that formulation. Hence, to deal with the
case of intersecting characteristics, we had to introduce the concept of a Weak Solution,
thus expanding the set of solutions. Unfortunately, this expanded set of solutions admit
unphysical or physically inadmissible solutions. Therefore, to eliminate unphysical weak
solutions, we need extra conditions. These extra conditions are the well-known Entropy
Conditions. Several versions of entropy conditions are described here, without mathematical derivations and proofs. Mathematically rigorous descriptions of the entropy conditions
are available in the books by Smoller, LeVeque, Thomas, and Evans 3 .
3.11.1
u g(u)
The solution to a non-linear scalar conservation law
+
= 0, containing a dist
x
continuity propagating with speed s satisfying the R-H condition g = su is said to
satisfy the entropy condition if
g (uL ) > s > g (uR )
(3.126)
g(u)
and L and R represent the left and right states of the
x
discontinuity. Note that g (uL ) and g (uR ) give the slopes of the characteristic lines
on the two sides of the discontinuity. Therefore, the entropy condition (3.126) means
that as time evolves, the discontinuity moves faster than the characteristic lines ahead of
it and is slower than those trailing it, as shown in the following figure. That means the
characteristics converge on the discontinuity from both sides when the entropy condition is
satisfied. A rarefaction shock does not satisfy the entropy condition as the characteristics
diverge from the discontinuity. If the flux g(u) is a convex function so that g (u) > 0
(which implies that g (u) is increasing), then the shock speed s must lie between g (uL )
where g (u) represents
Entropy conditions
99
and g (uR ), and the condition (3.126) simply becomes g (uL ) > g (uR ). Since g(u) is
convex, this means uL > uR . Therefore, for Burgers equation, as the flux is convex (since,
g (u) = 1 > 0), the expansion shock for the case uL < uR (when expansion wave should
have been the correct solution) does not satisfy the entropy condition. For non-convex
flux function, the following version of the entropy condition given by Oleinik is used.
3.11.2
g(u)
u
+
= 0 containing a
The solution of the non-linear scalar conservation law
t
x
discontinuity is said to satisfy the entropy condition if
g(uR ) g(uL )
g(uL ) g(u)
(3.127)
where uL and uR represent the left and the right states of the discontinuity respectively.
For convex g(u), (3.127) reduces to (3.126).
3.11.3
u g(u)
The solution to a non-linear scalar conservation law
+
= 0 is said to satisfy the
t
x
entropy condition if there is a constant E > 0 such that for all a > 0, t > 0 and x
E
u(x + a, t) u(x, t)
<
a
t
(3.128)
This form of the entropy condition is based on the spreading of the characteristics in a
rarefaction fan. If u(x, t) is an increasing function of x in some region, then the characteristics spread out if g (u) > 0. The condition (3.128) is quantification of the spreading. For
100
3.11.4
u g(u)
+
= 0 is said to satisfy the
t
x
entropy condition if there exists an entropy function S(u) and an entropy flux function
(u) such that
S(u) (u)
+
0
(3.130)
t
x
is satisfied in the weak sense
Z
Z Z
0
The solution to a non-linear scalar conservation law
(3.132)
(3.133)
(3.134)
u
u
u
(3.135)
Entropy conditions
101
Example :
Consider the Burgers equation,
Therefore, (3.135) gives
1
u g(u)
+
= 0 with g(u) = u2 and take S(u) = u2 .
t
x
2
(u)
S(u) g(u)
=
= 2u u = 2u2
u
u
u
Z
2
(u) = 2u2 du = u3
3
Therefore, the entropy condition is
(u2 )
2 3
+
u 0
t
x 3
For smooth solutions of Burgers equation, we have
(u2 )
2 3
+
u =0
t
x 3
(3.136)
(3.137)
2 3
u as the flux. If there
3
is a discontinuity, by integrating the above equation over a rectangle [x1 , x2 ] [t1 , t2 ], we
get
t2 Z t2
x
Z x2
2 3 2
2
2
u dx +
u dt = s2 t(u2L u2R ) + t(u3R u3L ) = 0
(3.138)
3
x1
t1 3
t1
x1
This is a conservation law with u2 as a conserved variable and
where s2 =
s2 =
s2 =
s2 =
s2 =
2
2
( u3R u3L )
3
= 3 2
S
(uR u2L )
2 (u3R u3L )
3 (u2R u2L )
2 (uR uL )(u2R + u2L + uR uL )
3
(uR + uL )(uR uL )
2
2 (uR + u2L + uR uL )
3
(uR + uL )
(3.139)
102
2 (u2R + u2L + uR uL ) 1
(uR + uL )
3
(uR + uL )
2
2
2
4uR + 4uL + 4uR uL 3(uR + uL )2
=
6(uR + uL )
2
2
4uR + 4uL + 4uR uL 3u2R 3u2L 6uR uL
=
6(uR + uL )
2
2
(uR uL )2
u + uL 2uR uL
=
= R
6(uR + uL )
6(uR + uL )
s2 s =
s2 s =
(3.138) gives
t2 Z
Z x2
2
u dx +
x1
t1
t2
t1
(uR uL )2
6(uR + uL )
(3.140)
x
2
2 3 2
u dt
= st(u2L u2R ) + t(u3R u3L )
3
3
x1
t
(uL uR )3 0
6
(3.141)
(3.142)
(3.143)
(uL uR )3 0 (uL uR ) 0
uL > uR , which is consistent with the entropy conditions described earlier.
Chapter 4
Analysis of Numerical Methods
Several numerical methods for scalar and vector conservation equations of compressible
flows will be presented in the next chapters. To understand them better, the basic analysis
of numerical methods is presented in this chapter. First, the basics of Finite Difference
Method (FDM) and the Finite Volume Method (FVM) are presented, with the example
of a simple linear convection equation. Then, the concepts of consistency and stability
of a numerical method are briefly introduced, followed by the discussion on numerical
dissipation, numerical dispersion and order of accuracy, illustrated by the analysis of
Modified Partial Differential Equations (MPDE).
4.1
In this course, we shall limit ourselves the application of Finite Difference Method (FDM)
and Finite Volume Method to the typical scalar and vector conservation equations, concentrating mostly on the Finite Volume Method, which is the most popular method used
in compressible fluid flow simulations.
4.1.1
(4.1)
Let us discretize the above hyperbolic equation on a three point stencil shown in the
figure (4.1). We discretize the time derivative using forward differencing since we will
be marching forward in time for the solution of the convection equations. For the space
103
104
xj1
ct ct
xj
x
x
t+t
xj+1
(4.3)
which, for the 3-point stencil shown in the figure (5.1), can be written as
u (x, t + t) = u (x ct, t)
(4.4)
So, the solution at the new time level can be found by tracing the foot of the characteristic
on the line connecting the points j 1, j and j + 1 at the old time level. Obviously, it
depends on the sign of the convection speed c. If c is positive, the information to the point
j comes from the left, from the point j 1 and if c is negative, the information to the
point j comes from the right, from the point j + 1. Therefore, the information comes only
from one side, depending on the sign of c. The FTCS discretization takes information
from the wrong side also, thus leading to instability. To respect the hyperbolicity of
the equation, we have to introduce one sided differencing, depending on the sign of the
convection speed. To do so, let us first split the convection speed into a positive part and
a negative part as
c + |c| c |c|
c=
+
= c+ + c
(4.5)
2
2
Here, c+ is always positive and c is always negative. Therefore, the linear convection
equation becomes
u
u
u
+ c+
+ c
=0
(4.6)
t
x
x
105
Now, for the c+ term, information comes to the point j only from the left, and hence
a backward differencing can be used. Similarly, for the c term, the information comes
only from the right, and therefore, forward differencing can be used. Such a discretization
where we go up the wind and take the information is called upwind differencing and the
resulting scheme is an upwind scheme.
un+1
unj
unj unj1
unj+1 unj
j
+ c+
+ c
=0
(4.7)
t
x
x
The above method is a Finite Difference Method (FDM) as we have used the finite differences for the derivatives in a partial differential equation.
The upwind method can also be derived in a different way. Since we know the exact
solution of the linear convection equation, we can use it to trace the foot of the characteristic on the 3-point stencil and use a linear interpolation between the grid points. The
solution of the linear convection equation is
u (x, t + t) = u (x ct, t)
(4.8)
Now, consider a 3-point stencil as shown in figure (5.1). The foot of the characteristic falls
between points j and j 1 if c > 0 and between j and j +1 if c < 0. Let us denote the foot
of the characteristic by P and consider the c > 0 case first. Using a linear interpolation
between j and j 1, we can now write
u(xP ) = u(xj1 ) +
Therefore,
u(xj ) u(xj1 )
(xP xj1 )
(xj xj1 )
(4.9)
u(xj ) u(xj1 )
(x ct)
x
(u(xj ) u(xj1 ))
= u(xj1 ) + (u(xj ) u(xj1 )
ct
x
t
= u(xj ) c
[u(xj ) u(xj1 )]
x
= u(xj ) [u(xj ) u(xj1 )]
u(xP ) = u(xj1 ) +
t
. Thus, we recover the upwind method. Therefore, the upwind method
where = c x
follows exact solution with the accuracy of linear interpolation. If c < 0, then we need to
interpolate the foot of the characteristic between the points j and j + 1 which will lead to
(4.10)
106
u
u
u
+ c+
+ c
=0
t
x
x
becomes
(4.11)
or
u c + |c| u c |c| u
+
+
=0
t
2 x
2 x
n
un+1
=
u
u
j
j
j1
j+1
j
j
where
4.1.2
t c |c|
x 2
(4.12)
(4.13)
Let us discretize the linear convection equation by using a Finite Volume Method (FVM).
First, let us write the linear convection equation in conservative form so that the FVM
we shall derive now is equally applicable to any conservative convection equation, linear
or non-linear.
u g (u)
1
+
= 0 , where g (u) = u2
(4.14)
t
x
2
Let us now discretize our 1-D computational domain as a set of cells or finite volumes,
assuming that within each cell the solution has a piecewise polynomial variation. The
simplest choice is to have a piecewise constant approximation in each cell, as shown in
figure (4.2). We can also choose more accurate approximations, like a piecewise linear
0
1
1
0
0
1
0
1
0
1
0
1
0
1
1111111
0000000
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
111111
000000
0
1
0
1
0
1
0
1
0
1
0
1
11111
00000
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1111111
0000000
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
11111
00000
111111
000000
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
00
11
0
1
0 1
1
0 1
1
0 1
1
0 1
1
01
1
0
1
0
1
0
1
0
0
0
0
00
11
0
1
0
1
0
1
0
1
0
1
0
1
0
0 11
1
0
1
0
1
0
1
0
1
0
1
111111111111111111111111111111111111111111111
000000000000000000000000000000000000000000000
00
0
1
0 1
1
0 1
1
0 1
1
0 1
1
01
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
j3
j2
j3/2
j1
j1/2
j+1
j+1/2
j+2
j+3
j+3/2
107
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
00
11
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
111111111111111111111111111111111111111111111
000000000000000000000000000000000000000000000
00
11
0
1
0 1
1
0 1
1
0 1
1
0 1
1
01
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
j1
j2
j3
j3/2
j+1
j1/2
j+1/2
j+2
j+3
j+3/2
now use the finite volume method, which starts with the integral form of the conservation equation in which the integration is over a finite volume or cell [xj 1 , xj+ 1 ] and a
2
2
time interval [tn , tn+1 ]. For simplicity, let us assume a piecewise constant approximation.
The integral form of the scalar conservation equation we have chosen (linear convection
equation) is
Z tn+1 Z x 1
j+ 2
u g
=0
dt
+
dx
t
x
tn
x 1
j 2
xj+ 1
2
tn
xj 1
u
dt
t
dx =
tn+1
tn
xj+ 1
g
dx dt
x
xj 1
Note the changing of the order of time and space integrations in the left hand side so that
a simple integration can be performed easily. Completing the integrations, we obtain
Z tn+1
Z x 1
xj+ 1
j+ 2
tn+1
[u]tn dx =
[g (x)]xj 21 dt
2
tn
xj 1
or
Z
or
Z
xj+ 1
xj 1
xj+ 1
2
xj 1
un+1 dx =
n+1
xj+ 1
2
xj 1
dx =
un dx
"Z
tn+1
tn
tn+1
tn
i
h
g xj+ 1 g xj 1 dt
2
Z
g xj+ 1 dt
2
tn+1
tn
g xj 1 dt
2
(4.15)
(4.16)
j 2
108
Using the above definitions, the update formula of the finite volume method can be written
as
"Z n+1
#
Z tn+1
t
g xj+ 1 dt
x
un+1
= x
unj
g xj 1 dt
j
2
tn
or
un+1
= unj
j
where
tn
i
t h
gj+ 1 gj 1
2
2
x
(4.17)
Z tn+1
Z tn+1
1
1
dt
(4.18)
g xj 1 dt =
g u xj 1
gj 1 =
2
2
2
t tn
t tn
are the time-averaged fluxes. We have to now reconstruct the value of u at xj 1 , as we
2
have the cell integral averages uj (equation (4.16)) only at the cell-centres xj . (Since
we converted u (x), a continuous variable, to a cell-integral average uj , we have lost the
variation of u and now that we require the variation of u at the cell interfaces, we have
to reconstruct the variation of u.) Reconstruction of the variation of u in each cell simply
means that we need to assume a profile for u in each cell. The simplest profile is a
constant value, which means a piece-wise constant reconstruction of u. A better profile
is a linear profile, which means a piece-wise linear reconstruction of u. Recollect that
we have already assumed the profile shape of u in the beginning of the finite volume
approximation. So, we need to just make use of the existing profiles of u in each cell, to
reconstruct the value of u at the cell centres. Since a cell interface is shared by two cells,
it is reasonable to use both the left and right state values of the interface (which means
left and right cell centroid values or the cell-integral values) to reconstruct u.
Referring to the figure (4.2), we can approximate the reconstructed value of u at the
cell interface at xj+ 1 as
2
un if c > 0
j
u xj+ 1 =
(4.19)
2
unj+1 if c < 0
Similarly, we can write
u xj 1
From (4.18)
gj+ 1
2
1
=
t
tn+1
tn
unj1 if c > 0
unj if c < 0
(4.20)
g u xj+ 1 , t dt
2
109
In our reconstruction process, we used only the spatial variation of u in each cell. To
complete the integration, we need to make some assumption of the time variation of u
within the interval [tn , tn+1 ]. Several assumptions of this time variation are possible but
let us use a simple variation of u between tn and tn+1 as
(4.21)
uj (t) = (1 ) uj (tn ) +
uj tn+1
where takes the values between 0 and 1 (0 1) and represents the interpolation
factor (in time). Therefore
Z tn+1
uj (t) dt = (1 ) unj +
un+1
t
(4.22)
j
tn
Thus, we obtain
gj+ 1
2
1
=
t
t
or
gj+ 1 =
2
c (1 ) unj +
un+1
j
f or c > 0
n+1
n
c (1 ) uj+1 +
uj+1 f or c < 0
c (1 ) unj +
un+1
j
f or c > 0
n+1
n
c (1 ) uj+1 +
uj+1 f or c < 0
c (1 ) unj1 +
un+1
j1 f or c > 0
c (1 ) unj +
un+1
f or c < 0
j
(4.23)
(4.24)
(4.25)
Substituting the expressions for above fluxes in the update formula (4.17), we obtain
t
c (1 ) unj unj1 + c un+1
un+1
n+1
n
j
j1 f or c > 0
uj = uj
c (1 ) unj+1 unj + c un+1
n+1
f or c < 0
x
j+1 u
j
or
un+1
= unj
j
t (1 n )
x
c+|c|
2
c+|c|
2
unj
unj1
un+1
un+1
j
j1 +
unj
unj1
o
(4.26)
(4.27)
unj+1 unj
+ c|c|
2
o
c|c|
n+1
n+1
u
j+1
j
2
c |c|
+
2
unj+1
unj
This is called as an explicit method as the value of u at the new time level (n + 1) is
explicitly calculated from the values of u at the old time level (n). If we take = 1, then
we obtain
c |c|
c + |c|
t
n+1
n+1
n+1
n+1
n+1
n
(4.28)
uj uj1 +
uj+1 uj
uj = uj
x
2
2
110
This is called as an implicit method as we need to solve an implicit equation for un+1 .
n+1
Note that, In this implicit method, we need to solve for the values of un+1
and un+1
j1 , uj
j+1
simultaneously, and thus needing to invert a matrix (for all N values of j, j = 1, 2, , N ,
where N is the number of cells or grid points). If we take = 0.5, we get an average
of both the above methods, known as Crank-Nicolson method. The explicit method is
easier to program, as no matrix inversion is needed. However, an implicit method will not
have a stability restriction as in the explicit method and larger values of the time-step are
allowed, leading to faster convergence.
We can see that the piecewise constant approximation with the upwinding in finite
volume method yields the first order accurate upwind finite difference method. This
equivalence is possible for a linear convection equation. The main advantage of the upwind
finite volume method is that the update formula leads to a conservative discretization.
To understand the importance of the conservation at the discrete level, let us sum up the
general finite volume update formula (4.17) for all the N finite volumes or cells in our
1-D domain.
#
" N
N
N
X
X
t X n
n+1
n
n
uj =
uj
(4.29)
g 1 gj 1
2
x j=1 j+ 2
j=1
j=1
or
N
X
un+1
j
j=1
or
N
X
j=1
unj
i
t h n
n
n
n
n
g 3 gn1 + gn5 gn3 + gn7 gn5 + + gN
1 g
3 + g
1 g
1
2
N 2
N+ 2
N 2
2
2
2
2
2
x 2
(4.30)
N
X
j=1
un+1
j
N
X
j=1
unj
i
t h n
n
g 1 g 1
2
x N + 2
(4.31)
Thus, all the fluxes in the middle of the domain cancel and only the fluxes at the boundaries remain, and the net flux (outgoing flux minus the incoming flux) balances the rate
of change of the conservative variable. Thus, the finite volume method preserves conservation at the discrete level and hence the positions of the discontinuities like the shocks or
contact discontinuities are automatically captured correctly on an average. This property
of all the fluxes in the middle of the domain getting canceled is called the telescoping
property of the fluxes. This is a unique property of the Finite Volume Method (FVM).
4.2
Let us now understand the numerical methods like upwind method a little more, analyzing
the truncation error. Since we are solving the governing equation (say linear convection
by an upwind method, for example) approximately, there will be some errors associated
with the approximation. To find out the truncation error, let us substitute Taylor Series
Modified PDEs
111
expansions into the numerical method, to recover the actual equation we are solving
exactly. The resulting equation is called as Modified Partial Differential Equation or
Equivalent Differential Equation. For the linear convection equation
u
u
+c
=0
t
x
(4.32)
(4.33)
(c |c|) t
(c + |c|) t
and =
(4.34)
2
x
2
x
The above equation is an approximation to the linear convection equation as we have
discretized the derivatives. If we are not solving the linear convection equation exactly,
but only approximately, then which equation are we solving exactly? To answer this
question, let us expand the terms in the upwind method using Taylor series.
where + =
uj n+1 = u (xj , t + t) = uj n + t
u n
t
t3 3 u
t2 2 u
+
+ 0(t4 ) (4.35)
2
t2 j
6 t3 j
unj+1 = un (xj + x)
unj+1
= uj + x
u n
x
x3 3 u
x2 2 u
+
+ 0(x4 )
+
2
3
2
x j
6 x j
(4.36)
unj1 = un (xj x)
unj1
= uj x
u n
x
x3 3 u
x2 2 u
+ 0(x4 )
+
2
x2 j
6 x3 j
(4.37)
n
n
n
n
u n
t2 3 u
+ h
x3 3 u i
t 2 u
x2 2 u
+
=
+
+
x
t j
2 t2 j
6 t3 nj
t
x j
2
x2 j
6 x3 j
n
n
3 3 i
4
h
2 2
x u
x
x u
u
+
+ 0(t3 ,
x
)
2
3
t
x j
2
x j
6 x j
t
u n
To simplify the above equation, we have to replace the time derivatives by space derivatives
for which we use the original linear convection equation itself.
u
[u]
[u]
u
+c
= 0 or
= c
t
x
t
x
(4.38)
112
u
=
t2
u
u
]
[c ]
2
t = c
x = c2 u
t
x
x2
3u
= c
t3
Using the above formulae, we obtain
2u
]
3
x2 = c3 u
x
x3
(4.39)
[c2
(4.40)
n
n
t2 3 3 u
t 2 2 u
c
c
t j
2
x2 j
6
x3 j
n
n
+h
2 2 n
x3 3 u i
x u
u
=
+
x
t
x j
2
x2 j
6 x3 nj
n
4
h
2 2 n
x3 3 u i
x u
u
3 x
+
+
0(t
,
)
x
t
x j
2
x2 j
6 x3 j
t
u n
u n
t
u n
u n h
i 2 2 u n
+
2 t x
+
x
x
+
+
= c
t
x j t
x j
2 2t x2 j
n
h
4
t2 i x3 3 u
3 x
+
0(t
,
) (4.41)
+
+ + c 3
6 6t x3 j
t
+
c + |c|
x =
t
2
c |c|
x =
t
2
(4.42)
t
t
and + + = c
x
x
(4.43)
Therefore, we obtain
n
u n
c + |c| u n
c |c| u n h |c|x
|c|t i 2 u
1
+
+
=
t j
2
x j
2
x j
2
x
x2 j
n
h cx2
4
c2 t 2 i 3 u
3 x
+
+
0(t
,
t
) (4.44)
1+
6
x2
x3 j
t
Therefore
u
t
+c
2 u n cx2
3 u n
4
u n |c|x
3 x
2
+
+
0(t
,
1 ||
1
)(4.45)
=
x j
2
x2 j
6
x3 j
t
Modified PDEs
113
3u
x
If
term, then we obtain
= constant and we drop
t
x3
2 u n
u
u n |c|x
+ 0(t2 , x2 )
+c
1 ||
=
t
x j
2
x2 j
Therefore, the scheme is I order accurate in time and space. To understand the terms in
the truncation error better, let us consider the momentum equation of conservation laws
for a fluid in expanded form.
u
u 1 p
2u
+u
+
= 2
t
x x
x
(4.46)
The second order term on right hand side represents a viscous term. Therefore, the
2 u
|c|x
and the
1 ||
upwind scheme has introduced an artificial viscosity term,
2
x2
method is first order accurate. That is
u
u
+c
= 0(t, x)
t
x
(4.47)
What is the role of artificial viscosity? Just as the physical viscosity has the stabilizing
effect on fluid flows, artificial viscosity stabilizes the numerical methods, keeping the errors
without growing (or damping them). We can rewrite the upwind method as follows.
n
n
n
n
n
+
(4.48)
u
u
un+1
=
u
j+1
j
j
j1
j
j
un un
un un
c + |c|
c |c|
j
j1
j+1
j
=
(
)t
)t
(
(4.49)
2
x
2
x
n
n
n
n
n
|c|t uj+1 2uj + uj1
ct uj+1 uj1
n+1
n
+
(4.50)
uj = uj
2
x
2
x
unj+1 2unj + unj1
unj+1 unj1
|c|t
n+1
n
+
x
(4.51)
uj = uj ct
2x
2
x2
If we omit the last term on the right hand side, we get the Forward Time and Centered
u
u
+c
= 0,
Space (FTCS) approximation to
t
x
n
n
n+1
n
u
u
j+1
j1
u j uj
+c
=0
t
2x
un+1
j
unj
Therefore, the upwind method has added an artificial viscosity term to the central dif|c|t 2 u
. We know that
x
ferencing method, and this artificial viscosity term is
2
x2
FTCS is unstable. The artificial diffusion stabilizes the FTCS method. Thus, there are
two routes to obtain a stable scheme, as explained in the following part.
114
Therefore, the FTCS method is actually removing some viscosity from a II order method.
Thus, it makes sense to explicitly add some viscosity to stabilize it. Jameson, Smith &
Turkel(1981) (AIAA-81-1259) developed such a central difference scheme with explicit
artificial viscosity for Euler equations. But, because of the tuning parameters, central
difference schemes are not as popular as upwind schemes.
4.3
(4.52)
(c |c|) t n
(c + |c|) t n
uj unj1
uj+1 unj
x
x
(4.53)
We have seen in the previous section that the Modified Partial Differential Equation
(MPDE) for the above upwind scheme is given by
u
t
+c
2 u n cx2
3 u n
u n |c|x
2
+
+ 0(t3 , x4 ) (4.54)
1 ||
1
=
x j
2
x2 j
6
x3 j
The right hand side of the above equation represents the local truncation error of the
numerical method (upwind method here). We can see that as x 0 and t 0, the
local truncation error on the right hand side completely vanishes and we recover the linear
convection equation. Thus, the upwind scheme is consistent with the linear convection
equation that it approximates here.
Stability analysis
4.4
115
Stability Analysis
While designing and using numerical methods for partial differential equations, it is important to know if the numerical method is stable or not. Before studying the stability
analysis, let us first understand the Fourier series in complex wave form, which we will
use in the stability analysis.
4.4.1
Let
f (x) = a +
h
X
am cos(m x) + bm sin(m x)
m=1
From
eiwm x = cos (wm x) + i sin (wm x) and eiwm x = cos (wm x) i sin (wm x)
we can write
(4.55)
1 im x
e
+ eim x
2
1 im x
im x
sin(m x) =
e
e
2i
cos(m x) =
and
Therefore
am cos(m x) + bm sin(m x) = am
=
1 im x
1 im x
e
+ eim x + bm
e
eim x
2
2i
cm =
(am ibm )
2
&
cm =
f (x) = a +
h
X
m=1
(am + ibm )
2
cm eim x + cm eim x
f (x) =
(4.56)
cm eim x
(4.57)
(4.58)
m=
2
mx
i
2
im x
=
m . Therefore, when m = 0, e
=e L
We have used the fact that m =
L
0
e = 1. The complex form simplifies the algebraic manipulations and is easier to use.
116
4.4.2
(4.59)
un+1
unj
unj+1 unj1
j
+c
= 0 is unstable and the FTBS method (upwind
t
2x
method) given by
un+1
unj
unj unj1
j
+c
=0
(4.60)
t
x
is conditionally stable, with the stability condition given by
given by
0 1 where = c
t
x
(4.61)
What is meant by stability and how do we find stability conditions for numerical methods?
Just like a solid body having different possible states of stability (a ball on concave surface,
a plane or a convex surface) a numerical method can also be unconditionally stable,
conditionally stable or unconditionally unstable. Where are the instabilities coming from?
One source of instability is any error present in the numerical method. There are two
kinds of obvious errors in numerical approximations :
1. A truncation error of the numerical method
2. A round-off error
Truncation error or the Discretization error is the difference between the exact analytical
solution of the PDE and the exact (round-off-free) solution of the corresponding difference
equation. If A is the analytical solution of the PDE, N is the numerical solution from the
computer and E is the exact solution of the difference equation, then
Discretization error = A E and Round off error = = N E.
By definition, E is the exact solution to the difference equation. Therefore, E exactly
satisfies the difference equation. Let us consider FTCS case which leads to
n
n
Ejn+1 Ejn
Ej+1
Ej1
+c
=0
t
2x
(4.62)
(4.63)
Stability analysis
117
Since = N E, and N = E +
n
n
(Ejn+1 + n+1
Ejn nj )
(Ej+1
+ nj+1 Ej1
nj1 )
j
+c
=0
t
2x
(4.64)
Let the round off error at the starting of the nth iteration have an initial random distribution. At any given time, let us express that the random variation of with x analytically
using Fourier series as
X
(x) =
Am eim x
(4.67)
m
im x
Since e
= cos(m x) + isin(m x) the above equation represents both sine and a cosine
series. Here, m is the wave number, Am is the amplitude and the above equation gives the
spatial variation of the error . We also need temporal variation. Therefore, we assume
Am = Am (t).
X
Am (t)eim x
(4.68)
(x, t) =
m
2x
)
(4.69)
2
2
m =
2. Similarly, if we fit 3 sine waves in L, m =
=
L
L
( )
2
waves in an interval L, the wave number is given by
m =
2
m
L
(4.70)
then y = sin(m x) with
2
2
3. If we fit m
=
L
L
( )
3
(4.71)
118
Now that we have understood what the wave number is, the next question is what should
be the value of m? If we have (N 1) grid points in L, then
x =
L
(N 1)
(4.72)
The largest allowable wavelength is max = 2L and the smallest allowable wave length is
2
2L
. Therefore, we have m = h
min = 2x. Therefore min = 2x =
.
2L i
(N 1)
(N 1)
m =
2 N 1
L
2
(4.73)
(N 1)
2
(N 1)
2
(4.74)
(N 1)
2
(x, t) =
Am (t)eim x
(4.75)
m=1
Since errors tend to grow or decay quickly, we can assume an exponential variation for
the amplitude.
Am (t) = eat
(4.76)
(N 1)
2
(x, t) =
eat eim x
(4.77)
m=1
Let us now substitute the above into the error equation, which is
n+1
nj
nj+1 nj1
j
+c
=0
t
2x
(4.78)
Since this equation is linear, after substituting (4.77) in (4.78), each term of the series in
(4.77) behaves in the same way as the series itself. Therefore, we can omit the summation
in (4.77) and use
(x, t) = eat eim x
(4.79)
Substituting (4.79) in (4.78), we get
ea(t) eim (x+x) ea(t) eim (xx)
ea(t+t) eim x ea(t) .eim x
+c
=0
t
2x
Stability analysis
119
But
eat 1
eim x eim x
+c
=0
t
2x
i
ct h im x
at
im x
e
=1
e
e
2x
eim x eim x = 2 i sin(m x)
Therefore
e
at
(4.80)
(4.81)
i
ct h
2 i sin(m x)
=1
2x
eat = 1 i sin(m x)
(4.82)
n+1
ct
j
. The condition for stability is n 1. The amplification factor,
where =
x
j
n+1
j
n , is
j
n+1 ea(t+t) eim x
j
n =
j
eat eim x
n+1
j
That is, n = |ea(t) |
j
n+1
j
n 1
j
|ea(t) | 1
Hence
1 isin(m x) 1
p
12 + 2 sin2 (m x) 1
p
1 + 2 sin2 (m x) 1 for stability
(4.83)
Since sin2 () is always positive, the above condition can never be satisfied, whatever the
values of x and t may be. Therefore, the FTCS scheme is unconditionally unstable. We
performed the von-Neumann stability analysis based on the round-off error, for simplicity.
The concept of stability is actually based on thePbehaviour of the solution itself, not only
on round-off error [12]. We can write u(x) = m Am eim x , where Am is the amplitude
120
An+1
m
and
Am
c>0
un+1
unj
unj unj1
j
+c
=0
t
x
ct
un+1
= unj (unj unj1 ) where =
j
x
X
u(x, t) =
eat eim x
(4.84)
(4.85)
(4.86)
(4.87)
Since the difference eqn (4.86) is linear, when we substitute (4.87) in (4.86), each term
in (4.87) behaves like the entire expression. Therefore, we can omit the summation and
write
u(x, t) = eat eim x
un+1
= u(x, t + t) = ea(t+t) eim x
j
(4.88)
(4.89)
Stability analysis
121
Amplification factor = G =
An+1
ea(t+t)
m
=
= eat
Anm
eat
G = 1 + cos(m x) i sin(m x)
h
(4.90)
2
i 12
i 12
h
m x i 12
|G| = 1 + 22 2 + (2 2)(1 2 sin2 (
)
2
when > 1
m x
m x
) has a maximum for sin2 (
) = 1.
2
2
i 21
= 1 4(1 )
h
i 21
|G|max = 1 4 + 42
h
|G|max = (1 2)
i 21
m x
m x
) has a minimum for sin2 (
) = 0.
2
2
122
Then, |G|2max = 1 and this satisfies the condition |G|2max 1 0r |G|max 1. Therefore,
ct
the method is stable if 1 or
1.
x
Thus, the stability condition fixes the time-step in the numerical method, based on
x
. We take, in practice,
the grid-spacing. For the upwind scheme, we obtained t
c
x
t =
where is a positive constant such that 1. The stability condition can be
c
rewritten as
x
x
c
or
c
1 or c
x
t
t
t
which means that the grid speed must be greater than the convection speed or
x ct
(4.91)
which means that the numerical domain of dependence must include the physical domain
of dependence (see figure (4.4.2)). This is the well-known CFL (Courant-Friedrichs-Lewy)
condition.
00000000000000000000000000000000
11111111111111111111111111111111
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
0
0
01
1
0000000
1111111
01
1
00000000
11111111
01
1
0
1
0
1
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
00
1
0000000
1111111
00
1
00000000
11111111
00
1
1
0
1
11
00
1
1
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
1
0
1
0
11
00
1
0
1
0
1
0
0
1
ct x ct
xj1
j
x
x
t+t
xj+1
Chapter 5
Central Discretization Methods for
Scalar and Vector Conservation Laws
5.1
Historically, central discretization methods were the first to be used for solving hyperbolic
equations. The important central discretization methods are - Lax-Friedrichs method
[13], Lax-Wendroff method [14], MacCormack method [15] and Jameson-Schmidt-Turkel
method [16]. The upwind methods, which were developed in the 80s became more popular
than the central discretization methods. The upwind methods for solving Euler equations
can be broadly classified as
Riemann Solvers (Exact or Approximate),
Flux Vector Splitting Methods,
Kinetic theory based Methods (Kinetic Schemes) and
Relaxation Schemes
The Godunov method [17] is the earliest developed Riemann Solver. The Flux Difference
Splitting methods of Roe [18] and Osher [19] belong to the category of Approximate
Riemann Solvers. The Beam Scheme of Sanders and Prendergast [20] was the first Kinetic
Scheme (also the first Kinetic Flux Vector Splitting scheme), which was followed by several
Kinetic Schemes - the Equilibrium Flux Method of Pullin [21], the Kinetic Numerical
Method of Rietz [22], the Kinetic Flux Vector Splitting (KFVS) method of Deshpande
[23], the Kinetic Scheme of Perthame [25], the Peculiar Velocity based Upwind (PVU)
method of Raghurama Rao and Deshpande [26] and the Gas-Kinetic Scheme or BGK
scheme of Prendergast and Kun Xu [27]. The Relaxation Schemes were first introduced
123
124
by Jin and Xin [8]. Other relaxation schemes of interest were introduced by AregbaDriollet and Natalini [10], Coquel and Perthame [28] and Raghurama Rao and Balakrishna
[53]. There are also some other methods of interest which belong to more than one of
the above categories - the Adevective Upstream Splitting Method (AUSM) of Meng Sing
Liou [29] and the Hybrid Upwind Splitting (HUS) method of Coquel and Liou [30] and the
Convective Upwind Split Pressure (CUSP) method of Jameson [31]. Some of he upwind
methods for scalar and vector conservation equations will be presented separately in the
next two chapters.
In this chapter, two of the central discretization methods, namely, Lax-Friedrichs
method and Lax-Wendroff method are presented.
5.2
Lax-Friedrichs Method
Consider a linear convection equation, which is the simplest convection equation, given
by
u
u
+c
=0
(5.1)
t
x
In conservation form, the above equation is
u g (u)
+
= 0 where g (u) = cu
t
x
(5.2)
t n
n
gj+1 gj1
2x
(5.4)
But, this simple scheme is unstable for the hyperbolic equation cosidered above, as it does
not respect the hyperbolicity of the linear convection equation. In the Lax-Friedrichs [13]
method, the first term on the right hand side of the above expression is replaced by an
average of the values of the dependent variable u at the points j + 1 and j 1, thereby
stabilizing the scheme.
un+1
=
j
t n
1 n
n
uj+1 + unj1
gj+1 gj1
2
2x
(5.5)
1 n
t n
n
gj+1 gj1
+ uj+1 2unj + unj1
2x
2
(5.6)
125
To understand the last term in the above expression, let us write any general scheme
for the linear convection equation in a way such that central differencing of the fluxes is
supplemented by an artificial viscosity term as
un+1
= unj
j
t n
n
gj+1 gj1
+ unj+1 2unj + unj1
2x
(5.7)
Here, last term is an approximation for the second derivative of u and hence represents
the artificial viscosity term, added to the central difference term (last but one term) for
stability. represents the coefficient of artificial viscosity. Any scheme can be rearranged
in the above form, to find out the amount of artificial viscosity present. The von Neumann
stability analysis of such a general scheme gives the condition
2
1
ct
where =
2
2
x
(5.8)
If we take the coefficient of viscosity as the maximum value permitted by the above
1
stability condition, that is, = , we obtain the Lax-Friedrichs scheme derived above!
2
That means, Lax-Friedrichs scheme has the maximum amount of artificial viscosity permitted by the stability condition. Therefore, Lax-Friedrichs method, which is a first order
accurate method, by itself is not usually preferred for solving practical problems.
The Lax-Friedrichs scheme can also be obtained in a different way. The exact solution
of the linear convection equation (5.1) is given by
u(t, x) = u(0, x ct)
(5.9)
(5.10)
for a time increment t. This solution is shown graphically in the following figure (5.1)
To obtain the value of u at the point P , let us interpolate between the values of u at
00000000000000000000000000000000
11111111111111111111111111111111
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0
1
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
0
0
01
1
0000000
1111111
01
1
00000000
11111111
01
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
0
1
0000000
1111111
0
1
00000000
11111111
0
1
01
1
0000000
1111111
01
1
00000000
11111111
01
1
0
00
11
0
0
1
0
0
1
0000000
1111111
0
1
00000000
11111111
0
1
1
0
0
1
00
11
0
0
1
0
1
01
1
xj1
x
ct ct
xj
x
t+t
xj+1
126
un (xj+1 ) un (xj1 )
(xP xj1 )
2x
(5.11)
unj+1 unj1
(x ct)
2x
(5.12)
ct
unj+1 unj1
x unj+1 unj1
(5.13)
2x
2x
ct n
1 n
un+1
= unj1 +
uj+1 unj1
uj+1 unj1
(5.14)
j
2
2x
ct n
1 n
uj1 + unj+1
uj+1 unj1
(5.15)
un+1
=
j
2
2x
For a non-linear scalar conservation law, Lax-Friedrichs method can still be applied without much modification. Consider the 1-D Burgers equation
un+1
= unj1 +
j
u g (u)
u2
+
= 0 where g (u) =
t
x
2
(5.16)
i
t h
1 n
n
n
n
u + uj+1
g (u )j+1 g (u )j1
=
2 j1
2x
(5.17)
which is obtained by central differencing the flux term and replacing the variable unj by
the average value of the values at the neighbours j + 1 and j 1. Note, however, that
the interpretation of exact solution with a linear interpolation between the points j 1
and j + 1 will not now lead to the same scheme. The non-linearity of the flux makes it
different. For non-linear vector conservation equations (Euler equations) also, the LaxFriedrichs method can be applied easily as
Ujn+1
i
t h
1 n
n
n
n
U + Uj+1
G (U )j+1 G (U )j1
=
2 j1
2x
(5.18)
where U and G (U ) represent vectors. The Lax-Friedrichs scheme is the simplest of all
the numerical methods for hyperbolic equations.
5.3
Lax-Wendroff Method
Lax and Wendroff [14] introduced a second order accurate central discretization scheme
for solving hyperbolic equations, which replaced the Lax-Friedrichs scheme. To derive the
127
Lax-Wendroff scheme for the linear convection equation, let us expand the variable u in
Taylor Series and retain the terms upto the second order.
un+1
= u(t + t, x) = unj + t
j
u n
t
t2 2 u n
3
+
O
t
2 t2 j
(5.19)
u
u
2 u
= c
& 2 =
= c
c
=c
t
x
t
t t
t
t
x2
Therefore, un+1
= unj + ct
j
u
x
+ c2
t2 2 u
+ O t3
2
2 x
(uj+1 uj1 )
u
=
+ 0(x2 )
x
2x
Therefore, un+1
j
2u
(uj+1 2uj + uj1 )
=
+ 0(x2 )
2
x
x2
c2 t2
ct
n
3
3
u
2u
+
u
uj+1 uj1 +
= unj +
j+1
j1 + O x , t
j
2
2x
2x
This is the Lax-Wendroff scheme, which is second order accurate in both time and space.
We can also derive this method in a different way. Consider a 3-point stencil as shown in
the figure (5.1). The exact solution of the linear convection equation is given by
u (t + t, xj ) = u (t, xj ct)
(5.20)
To obtain the value of xP on the 3-point stencil, let us now use a quadratic interpolation
of the values of u at the points xj1 , xj and xj+1 . Considering the point xj as the origin
and assuming a quadratic variation, we can write
u (x) = a (x xj )2 + b (x xj ) + c
(5.21)
(5.22)
With the above three equations, the three unknowns a, b and c can be evaluated using
the expression (5.21) as
a=
uj+1 uj1
uj1 2uj + uj+1
, b=
and c = uj
2
2x
2x
(5.23)
128
Therefore, the exact solution of the convection equation with the above quadratic interpolation gives
u (t + t, xj ) =
=
=
=
u (t, xj ct)
un (xP )
a (xj ct xj )2 + b (xj ct xj ) + c
a (ct)2 b (ct) + c
c2 t2 n
ct n
n
n
= unj
u
2u
+
u
uj+1 unj1 +
j+1
j
j1
2x
2x2
(5.24)
Thus, we have obtained the Lax-Wendroff method by tracing the foot of the characteristic with a quadratic interpolation! The Lax-Wendroff method has the least amount of
artificial viscosity allowed by the stability condition.
For non-linear scalar conservation equations, the Lax-Wendroff method can be derived
with a little more care as follows. Consider the inviscid Burgers equation
u
1
+
[g (u)] = 0 where g (u) = u2
t
x
2
(5.25)
u
g (u)
=
t
x
(5.26)
g (u)
g (u)
g (u) u
u
2u
=
=
=
=
t2
t t
t
x
x
t
u t
x
(5.27)
2u
g (u)
g (u)
g (u)
g (u)
or 2 =
=
a (u)
where a (u) =
t
x
u
x
x
x
x
Let us now use Taylor Series expansion to obtain
n
n
u
t2 2 u
n+1
n
uj = u(t + t, x) = uj + t
+
+ O t3
2
t j
2
t j
(5.28)
Let us now replace the time derivatives by space derivatives derived above to obtain
n
n
g (u)
t2
g (u)
n+1
n
a (u)
+
+ O t3
(5.29)
uj = uj t
x
2 x
x
j
j
Now, let us replace the space derivatives by central differences. The first order space
derivative on the right hand side is simple to deal with and we can use
g (uj+1 ) g (uj1 )
g (u)
=
x
x
(5.30)
129
To discretize the second order space derivative, we take the mid-points between the grid
points xj and xj1 and then use the central differencing. Thus, we have
g (u)
a (u)
x
g (u)
g (u)
a uj 1
a uj+ 1
2
2
x
x
j+ 1
j 1
2
x
(5.31)
g (u ) g (u )
g (u ) g (u )
j+1
j
j
j1
a uj 1
a uj+ 1
2
2
x
x
=
x
Using the above central differences for the space derivatives, we obtain the Lax-Wendroff
method for the non-linear scalar conservation equation as
t
[g (uj+1 ) g (uj1 )]
2x
i (5.32)
t2 h
a uj+ 1 {g (uj+1 ) g (uj )} a uj 1 {g (uj ) g (uj1 )}
+
2
2
2x2
un+1
= unj
j
We now have to evaluate the wave speed a (u) at mid-points between the grid points xj
and xj1 . The simplest choice is
a uj+ 1
2
=a
uj + uj+1
2
(5.33)
g
For the Burgers equation, a (u) =
= u. For vector conservation laws (Euler equations)
u
the Lax-Wendroff method can be derived in a similar way as
t
[G (Uj+1 ) G (Uj1 )]
2x
i(5.34)
t2 h
A Uj+ 1 {G (Uj+1 ) G (Uj )} A Uj 1 {G (Uj ) G (Uj1 )}
+
2
2
2x2
Ujn+1 = Ujn
where U and G are conserved variable and flux vectors and A is the flux Jacobian matrix,
G
. We can notice that the Lax-Wendroff method requires the evaluation
defined by A =
U
of the derivatives, and hence is computationally not efficient. Instead, an equivalent twostep Lax-Wendroff method was used in practice, which does not require the evaluation
of Jacobians and is also simpler in multi-dimensions. The Lax-Wendroff method, being
second order accurate, generates wiggles near the captured shocks. The Lax-Wendroff
method does not have sufficient numerical dissipation to capture the expansion waves at
sonic points (where the wave speed changes sign) correctly and is usually supplemented
with a dose of artificial viscosity.
130
5.4
Richtmyer and Morton [34] presented a two-step Lax-Wendroff method, which avoids the
evaluation of flux Jacobian matrices, when applied to vector conservation laws. This
method contains two steps - a predictor step and a corrector step. Consider the scalar
conservation equation
u g (u)
+
=0
(5.35)
t
x
In the predictor step, the Lax-Friedrichs method is used at the mid-points between the
grid points, obtaining
n+ 1
Predictor : uj+ 12 =
2
t
1 n
uj+1 + unj
g unj+1 g unj
2
2x
(5.36)
n+ 1
in the above step. In the corrector step, a centered time and centered space (CTCS)
approximation is used as
Corrector : un+1
= unj
j
i
t h n+ 21
n+ 1
gj+ 1 gj 12
2
2
x
(5.37)
For a linear flux (as in the case of linear convection equation), this two-step scheme
will be identical to the Lax-Wendroff scheme, which can be obtained by substituting the
predictor step expressions in the corrector step. Another two-step method which reduces
to the Lax-Wendroff scheme for a linear flux is the MacCormack method [15], in which
the predictor step is given by
Predictor : u
n+ 21 j
= unj
t
g unj+1 g unj
x
t h
i
1 n
n+ 1
n+ 1
n+ 1
uj + uj 2
g uj 2 g uj12
2
x
(5.38)
(5.39)
Note that the predictor step uses a forward difference while the corrector step uses a
backward difference, which can be interchanged. MacCormack method can also be written
as
t
n+ 1
Predictor : uj 3 = unj
g unj+1 g unj
(5.40)
x
i
t h n+ 13
n+ 31
n+ 31
n+ 23
g uj
g uj1
(5.41)
= uj
Corrector : uj
x
132
Chapter 6
Upwind Methods for Scalar
Conservation Laws
In the third chapter, we learnt about the upwind method for the linear convection equation. For a linear convection equation given by
u g (u)
+
= 0 where g (u) = cu
t
x
(6.1)
the upwind method is developed by splitting the wave-speed, c, into a positive part and
c + |c| c |c|
a negative part as c = c+ + c =
+
and using upwind discretization based
2
2
on these split wave-speeds, either in finite difference form or in finite volume form. For
example, the upwind finite difference method is
un+1
unj
u
u
j
+
+c
+c
=0
(6.2)
t
x Backwarddif f erence
x F orwarddif f erence
Note that the wave-speed c is taken out of the space differentiation term and the discretization is done with the non-conservative form of the equation. This is OK for the
linear convection equation since the wave-speed is a constant. What about a situation in
which the wave-speed is a variable? In the case of Burgers equation,
1
g (u) = u2
2
(6.3)
(6.4)
u
u
+u
=0
t
x
(6.5)
133
134
We can see that the convection speed is not only a variable, it is the solution itself, which
is the unknown! Thus, non-linearity increases the complexity. In such cases, it is better to
use the conservative form of the equation, as it is well-known that only conservative formulations will capture the discontinuities correctly with the right positions on an average.
But, we need wave-speed splitting to separate the directions of information propagation,
so that upwinding can be done based on the separated wave-speeds. Therefore, the challenge is to combine wave-speed splitting with the conservative form. In this chapter,
four different strategies in which this question is answered will be presented, namely, flux
splitting method, the method of a Riemann Solver, the approach of Kinetic Schemes and
finally the strategy of Relaxation Schemes. After these basic strategies for the simpler
case of scalar but non-linear conservation equations, the corresponding methods for vector
conservation equations (Euler equations) are presented in the next chapter.
6.1
(6.6)
Let us rewrite the expression for the flux in such a way that it contains the wave speed,
g (u)
and the conserved variable, u.
a=
u
1
g (u)
1
and k = a constant
g (u) = u2 = u u = aku where a =
2
2
u
(6.7)
The flux now contains the wave-speed explicitly and the constant k is introduced such
that we can tackle both Burgers equation and linear convection equation together in the
same conservative discretization.
"
1 for linear convection equation
k= 1
(6.8)
for Burgers equation
2
a=
(6.9)
a + |a| a |a|
+
2
2
(6.10)
(6.11)
135
(6.12)
(6.13)
and now the flux derivatives are separated based on positive and negative wave-speeds. We
can now introduce upwind differencing to obtain an upwind flux splitting finite difference
scheme as
+
u
g
g
+
+
=0
(6.14)
t
x Backwarddif f erence
x F orwarddif f erence
or
+
+
u gj gj1 gj+1 gj
+
+
=0
(6.15)
t
x
x
If we now discretize the transient term (time derivative of u) by forward differencing and
use an explicit discretization for the space discretiztaion, we obtain the first order flux
split upwind scheme for a scalar conservation equation as
n
+
gj+ gj1
gj+1
gj
un+1
unj
j
+
+
=0
t
x
x
(6.16)
To derive a finite volume method based on flux splitting, let us consider the integral
formulation as
Z tn+1 Z x 1
j+ 2
u g (u)
dxdt = 0
(6.17)
+
t
x
tn
x 1
j 2
which becomes
i
t h n
n
gj+ 1 gj
1
2
2
x
To evaluate the fluxes at the cell interfaces in an upwind way, we can write
(ak
u)j if aj > 0
gj+ 1 =
2
(ak
u)j+1 if aj+1 < 0
un+1 j = unj
(6.18)
(6.19)
j1
+ a k
u
j+1
+ a k
u
= gj+ + gj+1
(6.20)
+
= gj1
+ gj
(6.21)
136
and the update formula for the first order upwind finite volume method becomes
i
t h n
n
n
un+1
=
u
g
(6.22)
g
1
j
j
j 21
x j+ 2
where
(6.23)
gj+ 1 = gj+ + gj+1
2
and
+
+ gj
gj 1 = gj1
(6.24)
6.2
An original innovative idea of tackling the problem of designing an upwind method for
the non-linear scalar conservation equations using a conservative formulation was given
by Godunov [17]. At the edge of each finite volume or cell interface, he proposed to solve
a Riemann problem. A Riemann problem for the equation
u g (u)
+
=0
t
x
is the problem with the initial condition
ulef t for x < 0
u (x, t = 0) =
uright for x > 0
(6.25)
(6.26)
Since we are assuming piecewise polynomial variation within each cell, at the cell interfaces
there is always a discontinuity in the solution and hence a Riemann problem exists at
each cell interface. Godunov proposed to solve the Riemann problem exactly at the cell
interfaces. Such upwind methods are known as exact Riemann solvers. Roe [18] proposed
to solve an approximate Riemann problem at the cell interfaces, which simplifies the
procedure, without losing the accuracy. In this section, the approximate Riemann solver
of Roe is presented for scalar conservation equations.
Consider the scalar conservation equation
u g (u)
+
=0
t
x
(6.27)
Integrating the above equation over a finite volume (or equivalently a cell), we obtain
i
t h n
n
n
g
un+1
=
u
(6.28)
g
1
1
j
j
j 2
x j+ 2
In obtaining the conservative fluxes at the cell interfaces, we have to solve the Riemann
problem
(
ulef t for x < xj+ 1
u g (u)
2
+
= 0 with uj+ 1 =
(6.29)
2
uright for x > xj+ 1
t
x
2
137
or, using the quasilinear form of the equation, the Riemann problem
(
ulef t for x < xj+ 1
u
u
2
+a
= 0 with uj+ 1 =
2
uright for x > xj+ 1
t
x
2
(6.30)
where
g (u)
(6.31)
u
is the wave-speed. Let us now replace the above Riemann problem by an approximate
Riemann problem
(
ulef t for x < xj+ 1
u
u
2
(6.32)
+a
= 0 with uj+ 1 =
2
uright for x > xj+ 1
t
x
a=
where a
is now linear and hence the equation is easier to solve and let a
be a function of
both left and right states as
a = a (ulef t , uright )
(6.33)
Since we have replaced the nonlinear a by a linear a
, obviously, we should connect both
somehow. Let us now put two conditions on a
.
1. a
(ulef t , uright ) = u if ulef t = uright = u
2. g = a
u
The first condition is a simple consistency condition such that when the left and right
states are the same, the approximate Riemann problem should get reduced to the actual
Riemann problem. The second condition actually comes from the conservation condition
G (U ) = AU for the vector conservation laws, modified for this scalar case for flux and
conservative variable differences here. More importantly, the second condition is actually
the Rankine-Hugoniot condition or the jump condition across a discontinuity. Let us now
select a
such that both these conditions are satisfied.
The second condition at the cell interface j + 12 can be written as
gj+1 gj
=a
j+ 1
2
uj+1 uj
(6.34)
gj+1 gj = a
j+ 1 (uj+1 uj )
(6.35)
or
2
Since this is the Rankine-Hugoniot condition, aj+ 1 is actually the speed of a discontinuity,
2
which we can denote by s. The above condition does not distinguish between a left-moving
and right-moving discontinuity. More importantly, the above condition does not give us an
interface flux, gj+ 1 . Therefore, let us split the speed of the discontinuity into two parts - a
2
138
+
1
0
s s000000
0 s
1
0
1
111111
1
0
0
1
1
0
0
1
j1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
j1/2
1
0
0
1
j+1
j+1/2
positive one representing the right-moving discontinuity and a negative one representing
the left-moving discontinuity, as shown in the figure above.
s = s+ + s =
s + |s| s |s|
+
2
2
(6.36)
(6.37)
(6.38)
and
2
Since we denoted the wave speed by the speed of the discontinuity, we can write
(uj+1 uj )
gj+ 1 gj = a
j+ 1
(6.39)
gj+1 gj+ 1 = a
+
(uj+1 uj )
j+ 1
(6.40)
and
2
or
Here
1
1
+
)(uj+1 uj )
gj+ 1 = (gj + gj+1 ) + (
aj+ 1 a
j+ 21
2
2
2
2
(6.41)
1
a
a 1 |aj+ 1 |)
= (
j+ 21
2
2 j+ 2
(6.42)
1
1
1
1
a
j+ 1 |
aj+ 1 | a
j+ 1 |
a 1|
a
+
= a
j+ 21
j+ 21
2
2
2
2
2
2
2 j+ 2
a
+
= |aj+ 1 |
a
j+ 1
j+ 1
2
(6.43)
139
1
1
(gj + gj+1 ) |
a 1 | (uj+1 uj )
2
2 j+ 2
(6.44)
1
1
(gj1 + gj ) |
a 1 | (uj uj1 )
2
2 j 2
(6.45)
Now that we have an expression for the interface fluxes, let us find out the right value of
the interface wave speed. For the Burgers equation
a
j+ 1 =
2
1 2
uj 12 u2j
gj+1 gj
= 2
=
uj+1 uj
uj+1 uj
1
2
(uj+1 uj ) (uj+1 + uj )
1
= (uj + uj+1 )
uj+1 uj
2
(6.46)
Therefore, we have obtained an update formula for the approximate Riemann solver which
satisfies the second condition. Let us now verify whether the wave speed so obtained
satisfies the first condition.
1
(6.47)
a
j+ 1 = (uj + uj+1 )
2
2
When uj = uj+1 = u, the above expression gives a
j+ 1 = u, which is the wave speed of
2
the original conservation law for the Burgers equation. Thus, the first condition is also
satisfied.
6.2.1
Let us now rewrite the expression for the interface flux for Roes scheme as
gj+ 1 =
2
1
1
(gj + gj+1 ) j+ 1 (uj+1 uj )
2
2
2
(6.48)
The first term on the right hand side leads to the central discretization and the second
term on the right hand side leads to the dissipation part. Therefore, j+ 1 represents
2
the coefficient of numerical diffusion. Comparing with the actual expression we derived
before, we can see that
j+ 1 = |aj+ 1 |
(6.49)
2
where aj+ 1 is the wave-speed. Therefore, the numerical diffusion varies linearly with the
2
wave-speed in Roes scheme. This creates a problem as the wave-speed goes to zero, as
the numerical diffusion also goes to zero! Such points where the wave-speed changes sign
are called sonic points. Near sonic points, we are left with only central discretization,
as the numerical diffusion vanishes, and thus the numerical method does not respect the
hyperbolicity. Therefore, Roes scheme produces an unphysical expansion shock instead
of capturing an expansion fan. To correct this behaviour, a residual dissipation is usually
introduced at the sonic points. This residual dissipation prevents the scheme from producing an expansion shock and the expansion fan is captured well because of its presence.
Let us now, derive such a numerical dissipation fix, called as the entropy fix.
140
The basic idea is to select a small region near the sonic points and force a residual
dissipation in this region, instead of letting the dissipation go to zero. Since the variation
of dissipation with respect to the wave-speed is linear outside this region, the simplest
way of doing this is to force a quadratic variation, by choosing the dissipation versus
wave-speed curve to be a parabola instead of straight lines, as shown in the figure (6.1)
below. Let us select the width of the small region in which the residual dissipation is to
j+1/2
/2
aj+1/2
(6.51)
Therefore
1
k3 =
2
and the equation of the parabola becomes
1
= k1 a2 + k2 a +
2
(6.52)
(6.53)
(6.54)
1
1
k1 (a)2 + k2 (a) + = k1 a2 + k2 (a) +
2
2
141
which gives
k2 = 0
(6.55)
(6.56)
Let us now connect this parabola to the linear variation that we are starting back at
a = ||. Therefore
(a = ) = a and (a = ) = a
(6.57)
Therefore
and
1
k1 ()2 + =
2
(6.58)
1
k1 (+)2 + =
2
(6.59)
1
2
(6.60)
1 2 1
a +
2
2
or
=
a2 + 2
2
(6.61)
j+ 1
2
a2 + 2
for aj+ 1 <
2
=
2
1 = |a 1 | for a 1
j+
j+
j+
2
(6.62)
142
6.3
A Kinetic Scheme for Burgers equation can be constructed from a Boltzmann equation
with a B-G-K model and a suitably selected Maxwellian (equilibrium distribution) such
that we get the right moments. Let us consider the 1-D case. The Boltzmann equation
with the B-G-K model is
f
f
F f
+v
=
(6.63)
t
x
tR
Here, f is the molecular velocity distribution function, v is the molecular velocity and
F is the Maxwellian distribution function. The Maxwellian (equilibrium) distribution is
selected in such a way that we can get the right moments.
u 2
F = u e (v 2 )
(6.64)
g (u) = hvf i =
and
f dv = hF i =
F dv
(6.65)
vf dv = hvF i =
vF dv
(6.66)
Note that does not have any physical significance here, as there is no energy equation
(no pressure or temperature). just plays the role of a constant, which determines the
shape of the equilibrium distribution. The Burgers equation can be recovered as a moment
of the above Boltzmann equation, given by the following mathematical expression.
f
f
F f
h
i
(6.67)
+v
=
t
x
tR
where
hf i =
f dv
(6.68)
This approach is valid for recovering any scalar conservation law, as long as the Maxwellian
(equilibrium) distribution is suitably defined. To recover the linear convection equation,
the Maxwellian is given by
F = u e(vc)
(6.69)
We now use the splitting method to separate the linear convection term on the left hand
side of the Boltzmann equation with the B-G-K model from the non-linear source term
on the right hand side, leading to the following two steps as :
Collision Step :
df
F f
=
(6.70)
dt
tR
143
Convection Step :
f
f
+v
=0
(6.71)
t
x
To simplify further, we take the relaxation time tR in the collision step to be zero, thereby
forcing instantaneous relaxation. This simplifies the collision step to a relaxation step.
Thus, we have two steps :
Relaxation Step :
f =F
(6.72)
Convection step :
f
f
+v
=0
(6.73)
t
x
Therefore, all we have to do is to take the initial distribution function as a Maxwellian
and then solve the above linear convection equation by an upwind method for a time-step
t. This constitutes one time-step. Taking moments of the resulting scheme will yield
an upwind scheme for the scalar conservation equation.
Let us now apply an upwind method to the above linear convection equation of the
convection step. First, let us rewrite the above equation in conservative form as
(vf )
f
+
=0
t
x
(6.74)
Note that molecular velocity v is not a function of the space coordinate x, as v changes
only due to molecular collisions (the model we have used in Kinetic Theory is just free
flow with collisions, the free flow being represented by the above equation). Let us now
split the molecular velocity into a positive part and a negative part as
v = v+ + v =
v + |v| v |v|
+
2
2
(6.75)
Therefore, we obtain
f
(v + + v ) f
+
=0
t
x
(v + f ) (v f )
f
+
+
=0
(6.76)
t
x
x
Since we have separated the wave speed (v in this case) into positive and negative parts,
we can now introduce upwind differencing on a 3-point stencil of points [j 1, j, j + 1] as
(v + f )j (v + f )j1 (v f )j+1 (v f )j
f
+
+
=0
t
x
x
(6.77)
Using a simple explicit Euler time-stepping to discretize the transient term and using an
explicit discretization of the space terms, we obtain
n
(6.78)
144
or
n i
n
n
t h + n
+
=
v f j v f j1 + v f j+1 v f j
x
Since we have fjn = Fjn from the Relaxation Step, the above equation becomes
fjn+1
fjn
fjn+1 = Fjn
n i
n
n
t h + n
v F j v + F j1 + v F j+1 v F j
x
(6.79)
(6.80)
Let us now take moments of the above upwind scheme so that we obtain an upwind
scheme for the scalar conservation equation considered as
hfjn+1 = Fjn
or
hfjn+1 i = hFjn i
n i
n
n
t h + n
v F j v + F j1 + v F j+1 v F j i
x
n i
n
n
t h + n
h v F j i h v + F j1 i + h v F j+1 i h v F j i
x
(6.81)
(6.82)
t +n
n
+n
n
gj gj1
+ gj+1
gj
x
g = hv F i
or
+
g =
since v is positive. Therefore
+
g =
or
vF dv
(6.83)
(6.84)
(6.85)
(6.86)
u 2
vu e (v 2 ) dv
Z
u 2
ve (v 2 ) dv
g = u
0
+
(6.87)
(6.88)
145
u
2
1
dv = dw
w
w
u
w s where s =
2
As v 0
Therefore
Z
u w2 1
w
+
dw
g = u
e
s
2
Z
Z
1
u
+
w2
w2
g = u
we dw +
e dw
s
2 s
+
or
(6.89)
(6.90)
I1 =
we
w2
dw +
wew dw
s
1
2
wew dw
2
0
where we have used the table of integrals supplied in the first chapter. Let us use the
change of variable as
z = w2 ; therefore dz = 2wdw
I1 =
As w 0, z 0; as w s z s2
Z s
1
1
2
I1 =
2wdwew
2
2
0
Z s2
1 1
I1 =
ez dz
2 2 0
2
1 1
I1 = [ez ]s
0
2 2
i
1 1 h s2
0
e e
I1 =
2 2
146
e 1
2 2
1 1 2 1
I1 = es +
2 2
2
I1 =
Therefore
1 2
I1 = es
2
Let us now evaluate the second integral.
Z
2
ew dw
I2 =
(6.91)
(6.92)
I2 =
w2
dw +
ew dw
s
ew dw
2
0
Z s
2
ez dz where z = w
+
I2 =
2
0
Let us now use the definition of the error function
Z s
2
2
ew dw
erf (s) =
0
I2 =
Therefore
+
erf (s)
I2 =
2
2
or
I2 =
[1 + erf (s)]
2
Therefore, the split flux expression becomes
u
1 s2
+
g = u
e +
{1 + erf (s)}
2
2 2
or
(6.93)
u
g + = gA+ + B
2
(6.94)
(6.95)
where
1 + erf (s)
1
2
and B = es
g = u2 , A+ =
2
2
Similarly, we can evaluate the negative split flux
Z 0
u
g =
ve (v 2 ) dv
(6.96)
(6.97)
147
u
g = gA B
2
where
1 erf (s)
2
A =
(6.98)
(6.99)
1 p
1
g = u2 and s = u
2
2
Both the split fluxes can be written as
u
g = gA B
2
6.4
(6.100)
(6.101)
Relaxation Schemes
(6.102)
The Relaxation System of Jin and Xin for the above conservation law is given by
u v
+
=0
t
x
(6.103)
v
u
1
+ 2
= [v g (u)] where 0
(6.104)
t
x
Equivalently, the diagonal form of the above Relaxation System leads to the discrete
Boltzmann equation as (see chapter 1)
f
f
F f
+
=
with 0
t
x
(6.105)
1
1
u v
2
f1
2
=
f=
f2
1
1
u+ v
2
2
(6.106)
where
0
0
(6.107)
148
and
1
1
u g (u)
2
F1
2
F =
=
F2
1
1
u + g (u)
2
2
(6.108)
We can use any of the above relaxation systems as a starting point to develop an upwind
scheme for the Burgers equation.
6.4.1
Relaxation Scheme
(6.109)
u
1
v
+ 2
= [v g (u)]
(6.110)
t
x
Thus, we have to solve two convection equations, one with a source term. The update
formulae are
i
un+1
unj
1 h n
j
n
=
0
(6.111)
+
vj+ 1 vj
1
2
2
t
x
and
i
vjn+1 vjn
2 h n
1
+
uj+ 1 unj 1 = vjn g unj
(6.112)
2
2
t
x
Since the Relaxation System has two characteristic variables f1 and f2 which travel with
the frozen characteristic speeds and , upwinding will be applied to these two characteristic variables, based on the characteristic speeds. Therefore
f1,j+ 1 = f1,j+1 for the characteristic speed
(6.113)
(6.114)
1
1
1
1
uj+ 1 vj+ 1 = uj+1 vj+1
2
2
2
2
2
2
(6.115)
and
2
Therefore
and
1
1
1
1
uj+ 1 + vj+ 1 = uj vj
(6.116)
2
2
2
2
2
2
We now have two equations with two unknowns, namely, uj+ 1 and vj+ 1 . Solving these
2
2
two equations, we obtain
uj+ 1 =
2
1
1
(uj + uj+1 )
(vj+1 vj )
2
2
(6.117)
149
and
(6.118)
vj+ 1 = (uj+1 uj ) + (vj + vj+1 )
2
2
2
The expressions for uj 1 and vj 1 can be obtained from the above expressions by substi2
2
tuting j 1 for j. Substituting the above into the update equation, we obtain
un+1
= unj
j
and
vjn+1 = vjn
t n
t n
n
vj+1 vj1
uj+1 2unj + unj1
+
2x
2x
(6.119)
t n
t n
2 t n
n
uj+1 unj1 +
vj+1 2vjn + vj1
vj g unj
(6.120)
2x
2x
We can use the initial condition v (x, t = 0) = g {u (x, t = 0)}. For the value of , experiments have shown that any small value such that 104 will work. Jin and Xin
used = 108 and this value is recommended for use. Alternatively, we can also develop
a Relaxation Scheme by upwind differencing the Discrete Boltzmann equation directly.
Such a Discrete Kinetic Scheme is presented in the next section.
6.4.2
(6.121)
The diagonal form of the Relaxation System for the above equation is the discrete Boltzmann equation, given by
f
1
f
+
= [F f ]
(6.122)
t
x
F =
F1
F2
u g (u)
2
= 2
u g (u)
+
2
2
(6.123)
Let us now apply a splitting method for the discrete Boltzmann equation, obtaining a
Relaxation Step as
1
df
= [F f ]
(6.124)
dt
150
Let us now simplify the Relaxation Step further by assuming = 0 (instantaneous relaxation), obtaining f = F as the Relaxation Step. Therefore, we just have to solve the two
linear convection equations of the above Relaxation System
f1 h1
+
= 0 where h1 = f1
t
x
(6.126)
and
f2 h2
+
= 0 where h2 = f2
(6.127)
t
x
with the constraints f1 = F1 and f2 = F2 . Let us now apply upwinding to the above two
equations. The finite volume method applied to the above equations leads to
i
t h n
n+1
n
h1,j+ 1 hn1,j 1
f1,j
= f1,j
(6.128)
2
2
x
i
t h n
n+1
n
(6.129)
h2,j+ 1 hn2,j 1
f2,j
= f2,j
2
2
x
We can obtain upwind fluxes in the above two equations by using
h1,j+ 1 = h1,j+1 as wave speed is and information comes from right
(6.130)
(6.131)
Similarly,
h1,j 1 = h1,j as wave speed is and information comes from right
(6.132)
(6.133)
The above scheme is the simpler Upwind Relaxation Scheme obtained as the Discrete
Kinetic Scheme. The conserved variable can be obtained as a moment as
n+1
n+1
= f1,j
+ f2,j
(6.134)
un+1
j
Let us now check what is obtained by such an Upwind Relaxation Scheme for the Burgers
equation. By substituting the upwind fluxes in the update formulae, we obtain
n
n
n
n+1 + fn+1 t hn
un+1
=
f
h
+
h
h
(6.135)
1,j
2,j
2,j1
j
1,j
2,j
x 1,j+1
or
n
n
n
n
unj
gjn
gjn
unj1 gj1
uj+1 gj+1
uj
t
n+1
n
+
+
+
uj = uj
x
2
2
2
2
2
2
2
2
(6.136)
or
t n
t n
n
un+1
= unj
gj+1 gj1
uj+1 2
unj + unj1
+
(6.137)
j
2x
2x
Therefore, the upwind relaxed scheme leads to a central differencing of the fluxes plus a
numerical dissipation term, with the coefficient of numerical dissipation being proportional
to the parameter introduced in the Relaxation System, .
6.4.3
151
The Relaxation Schemes are more dissipative than the approximate Riemann solver of
Roe (which can capture steady discontinuities exactly, without numerical dissipation).
Recently, Raghurama Rao and Balakrishna [53] developed a low dissipation Relaxation
Scheme which can capture steady discontinuities exactly, like Roes scheme. That low
dissipation Relaxation Scheme, named An Accurate Shock Capturing Algorithm with a
Relaxation System (ASCARS) is described below.
The two equations of the convection step are
f1
f1
=0
t
x
(6.138)
and
f2
f2
+
=0
t
x
which can be integrated over the finite volume to obtain
and
where
(6.139)
i
t h n
n+1
n
n
h
f1,j = f1,j
1 h
1,j 21
x 1,j+ 2
(6.140)
i
t h n
n+1
n
n
h
f2,j = f2,j
1 h
2,j 21
x 2,j+ 2
(6.141)
h1 = f1 , h2 = f2 and x = xj+ 1 xj 1
2
(6.142)
1
f2,j =
x
Z
Z
xj+ 1
2
f1 dx
(6.143)
f2 dx
(6.144)
xj 1
xj+ 1
2
xj 1
1
[h1,j + h1,j+1 ] d1,j+ 1
2
2
(6.145)
where d1,j+ 1 is the diffusive flux added to the central differences represented by the first
2
two terms on the right hand side. The general form of the diffusive flux is
1
d1,j+ 1 = 1,j+ 1 f1,j+1 f1,j
2
2
2
(6.146)
152
Similarly,
h2,j+ 1 =
2
and
1
[h2,j + h2,j+1 ] d2,j+ 1
2
2
1
d2,j+ 1 = 2,j+ 1 f2,j+1 f2,j
2
2
2
(6.147)
(6.148)
and
n+1
f2,j
=
t n
n
n
f1,j
+
f1,j+1 f1,j1
2x
i
t h
n
n
f1,j
1,j+ 1 f1,j+1
+
2
2x
i
t h
n
n
f1,j1
1,j 1 f1,j
2
2x
t n
n
n
f2,j
+
f2,j+1 f2,j1
2x
i
t h
n
n
f2,j
2,j+ 1 f2,j+1
+
2
2x
i
t h
n
n
f2,j1
2,j 1 f2,j
2
2x
(6.149)
(6.150)
n+1
n+1
Since un+1
= f1,j
+ f2,j
, we obtain, after using the simplified relaxation step fjn = Fjn
j
and the simplification 1,j 1 = 2,j 1 = j 1 , the following update formula.
2
un+1
= unj
j
+
t n
n
gj+1 gj1
2x
t
j+ 1 unj+1 unj
2
2x
(6.151)
t
j 1 unj unj1
2
2x
153
i
t h n
n
gj+ 1 gj
1
2
2
x
(6.152)
1
1
[gj + gj+1 ] j+ 1 [uj+1 uj ]
2
2
2
(6.153)
and
1
1
[gj1 + gj ] j 1 [uj uj1 ]
2
2
2
2
With a little algebraic manipulation, we can rewrite the expression (6.153) as
gj 1 =
(6.154)
+
gj+1 + gj+ 1 + j+
1 [uj+1 uj ]
2
(6.155)
+gj+ 1 gj + j+
1 [uj+1 uj ] = 0
2
where
j+
1 =
j+ 1 |j+ 1 |
2
2
Therefore, the expression for the flux can be split into the following two parts :
(6.156)
+
gj+1 gj+ 1 = j+
1 [uj+1 uj ]
(6.157)
gj+ 1 gj = j+
1 [uj+1 uj ]
(6.158)
and
2
Let us now compare the fluxes in (6.157) and (6.158) with the fluxes that satisfy RankineHugoniot condition. To derive such fluxes satisfying the Rankine-Hugoniot condition,
assume that there is a shock located between the grid points xj and xj+1 , moving with a
speed sj+ 1 . To distinguish the shock moving to the right from the shock moving to the
2
and a negative part s
where
left, we split the shock speed into a positive part s+
j+ 1
j+ 1
2
s
=
j+ 1
sj+ 1 |sj+ 1 |
2
(6.159)
The Rankine-Hugoniot condition (g = su) for the above two cases are given by (see
[54])
gj+1 gj+ 1 = s+
[uj+1 uj ]
(6.160)
j+ 1
2
and
gj+ 1 gj = s
[uj+1 uj ]
j+ 1
2
(6.161)
Comparing the expressions (6.157) and (6.158) with the Rankine-Hugoniot condition for
the shock moving to the right (6.160) and left (6.161), we can fix the coefficients j+
1 as
2
+
j+
1
2
s+
j+ 21
and
j+
1
2
s
j+ 21
(6.162)
154
from which we can obtain the expression for the coefficient of numerical diffusion as
j+ 1 = |sj+ 1 |
2
(6.163)
Similarly, we can obtain the expression for the other coefficient of numerical diffusion as
j 1 = |sj 1 |
2
(6.164)
g
u
(6.165)
we obtain
sj+ 1 =
2
and
sj 1 =
2
gj+1 gj
if uj 6= uj+1
uj+1 uj
(6.166)
gj gj1
if uj 6= uj1
uj uj1
(6.167)
g
|j if uj = uj+1
u
g
|j if uj = uj1
u
Therefore, the new Relaxation Scheme which satisfies the Rankine-Hugoniot condition is
given by the following algorithm.
i
t h n
n+1
n
f1,j
= f1,j
h1,j+ 1 hn1,j 1
2
2
x
h
i
t
n+1
n
hn2,j+ 1 hn2,j 1
f2,j
= f2,j
2
2
x
h1 = f1 , h2 = f2 , x = xj+ 1 xj 1
2
1
h1,j+ 1 = [h1,j + h1,j+1 ] d1,j+ 1
2
2
2
1
d1,j+ 1 = 1,j+ 1 f1,j+1 f1,j
2
2
2
1
h2,j+ 1 = [h2,j + h2,j+1 ] d2,j+ 1
2
2
2
1
d2,j+ 1 = 2,j+ 1 f2,j+1 f2,j
2
2
2
j+ 1
j 1
155
g g
j+1
j
| if uj 6= uj+1
|
u
j+1
j
=
g
| |j if uj = uj+1
u
gj gj1
|
| if uj 6= uj1
u
j
j1
=
g
| |j if uj = uj1
u
un+1 = fn+1 + fn+1
j
1,j
(6.168)
2,j
This low dissipation Relaxation Scheme (ASCARS) for a scalar conservation law, in
the final analysis, is equivalent to the approximate Riemann solver of Roe, though the
implementation is different, as well as the linearisation. The coefficient of numerical dissipation, j 1 is linearly proportional to the numerical wave-speed and thus the dissipation
2
goes to zero when the wave-speed goes to zero. This happens near the sonic points where
the wave-speed changes sign. Since zero dissipation leads to the violation of the entropy
condition, we modify the coefficient of numerical diffusion by forcing a quadratic variation
instead of a linear variation and by keeping a residual dissipation near the sonic points,
as done to the Roes scheme by an entropy fix. Note that this is the entropy fix of Harten
(see [36] for details).
156
Chapter 7
Upwind Methods for Vector
Conservation Laws
In this chapter, some upwind methods for solving vector conservation equations are presented. Some of the basic ideas presented in the previous chapter for scalar conservation
equations are expanded here for the case of vector conservation equations. Specifically,
the Flux Splitting method, the approximate Riemann solver, the Kinetic Flux Splitting
and the Relaxation Schemes are extended for the Euler equations.
7.1
In this section, some important features of Euler equations, which are necessary to understand the numerical methods presented in this chapter, are described. Before studying
the Flux Vector Splitting method, we need to understand the homogeneity property of the
Euler equations. Let us first study this property.
7.1.1
Homogeneity Property
(7.1)
then the function f (x) is called as a function which is homogeneous of degree one (as
the power of m on the right hand side is 1). Let us differentiate both sides of (7.1) with
157
158
respect to m.
[f (mx)] =
[mf (x)]
m
m
f (w) w
[m]
or
=
f (x) where w = mx
w m
m
f (mx)
or
x = 1 f (x)
(mx)
f (mx)
x
f (x) =
(mx)
If we now take m = 1, we obtain
f (x) =
f (x)
x
x
(7.2)
7.1.2
(7.3)
(7.4)
(7.5)
The flux is a homogeneous function of degree one. Differentiating w.r.t. m on both sides,
we get
g(mu)
[m(g(u)]
=
(7.6)
m
m
m
g(w)
= g(u)
where w = mu
(7.7)
m
m
g(w) w
= g(u) 1
(7.8)
w m
g(w)
u = g(u)
(7.9)
w
g(w)
(7.10)
g(u) = u
w
where,
w = mu
(7.11)
Let us take,
m=1
(7.12)
Homogeneity property
159
Then
w=u
(7.13)
g(u)
u
g(u) = cu
g(u) = u
(7.14)
(7.15)
which is trivially same as (7.3), but it is evident that the flux for the linear convection
equation satisfies the homogenity property.
7.1.3
Burgers equation:
1
u g(u)
+
= 0; g(u) = u2
t
x
2
1
1
g(mu) = (mu)2 = m2 u2 = m2 g(u)
2
2
The flux g(u) is not a homogeneous function of degree one.
7.1.4
(7.16)
(7.17)
Euler Equations:
U
G(U )
+
=0
t
x
U = u ; G(U ) = p + u2
pu + uE
E
p = RT ; E =
E =
p
1
+ u2
( 1) 2
p
1
p
1
+ u2 =
+ u2
( 1) 2
1 2
1
p = (E u2 )( 1)
2
1 U22
p = U3
( 1)
2 U1
G1 = u = U2
G2 = p + u2 = U3 ( 1)
( 1) U22 U22
+
2
U1
U1
(7.18)
(7.19)
(7.20)
(7.21)
(7.22)
(7.23)
(7.24)
(7.25)
160
U22
1
]
[1
U1
2
(7.26)
(3 ) U22
2
U1
(7.27)
= U3 ( 1) +
G3 = pu + uE = [U3 ( 1)
=
1 U22 U2 U2 U3
] +
2 U1 U1
U1
U2 U3
1 U23 U2 U3
( 1)
+
U1
2 U12
U1
U2 U )3 ( 1) U23
=
U1
2 U12
(7.28)
(7.29)
(7.30)
U2
(3) U 2
G = U3 ( 1) + 2 U21
U3
U2 U3
U22 (1)
U1
2
(7.31)
mU1
U1
mU = m U2 = mU2
U3
U3
(7.32)
Let m be a scalar,
mU2
(3) (mU2 )2
2 (mU1 )2
1
U2
(3) U 2
= m U3 ( 1) + 2 U21 = mG(U )
U2 U3
U1
(7.33)
(1) U23
2 U12
G(mU ) = mG(U )
(7.34)
The flux vector G(U ) is a homogeneous function of degree one. Differentiating both sides
of (27) w.r.t we get
G(mU )
=
[mG(U )]
(7.35)
m
m
G(W )
= G(U )
[m]
(7.36)
m
m
where W = mU
G(W ) W
= G(U ).1
(7.37)
W m
161
G(W )
.U = G(U )
W
G(W )
U
G(U ) =
W
where W = mU . Taking m = 1, w = 0
(7.40)
(7.41)
A(U ) =
A(U ) =
7.2
7.2.1
0
(3) 2
u
2
(1) + u3 (2)
2
ua2
(7.39)
G(U )
U
U
G(U ) =
where
(7.38)
G(U )
U
1
0
(3 )u
( 1)
2
a
2 (32)
+
u
u
(1)
2
(7.42)
(7.43)
(7.44)
(7.45)
g = cu
(7.46)
(7.47)
unj unj1
unj+1 unj
u
+ c+ [
] + c [
]=0
t
x
x
(7.48)
(7.49)
where
The C-I-R scheme for (1) is;
or
or
162
or
u gj gj1 gj+1 gj
+
+
=0
t
x
x
(7.50)
g + = c+ u
(7.51)
g = c u
(7.52)
where
c + |c| c |c|
+
] = cu
2
2
g+ + g = g
g + + g = c+ u + c u = u[
(7.53)
(7.54)
The upwind scheme has resulted in the splitting of the flux g into a positive part g + and
a negative part g .
Flux Vector splitting for a non-linear vector system of equations is the generalization
of the above procedure to the non-linear vector conservations equations. Obviously, we
require the homogeneity property. Fortunately, Euler equations also possess this property.
7.2.2
U
U
+
=0
(7.55)
t
x
We know that A has real eigenvalues and linearly independent eigenvectors as the system
(15) is hyperbolic. The eigenvalues are;
1 = u a, 2 = u, 3 = u + a
The corresponding right eigenvectors are
1
1
1
R1 = u a , R2 = u and R3 = u + a
u2
H ua
H + ua
2
where H = h +
u2
2
=e+
u2
2
H=
p
(1)
u2
2
(7.56)
(7.57)
u2
a2
u2
p
+
=
+
( 1)
2
( 1)
2
(7.58)
where
The matrix A can be diagonalized using the eigenvectors and the eigenvalues.
a2 =
A = R1 DR
(7.59)
(7.60)
163
where
1 0 0
D = 0 2 0
0 0 3
(7.61)
1
u+a
H + ua
(7.62)
a
u (1)
1
2u
2
a
u
1
(1)
(7.63)
ua
R=
H ua
R1 is the inverse of R.
R1 =
( 1)
2a2
1
u
u2
2
ua
u2
+ (1)
2
2a2
u2
(1)
2
ua
u
(1)
2
The eigenvalue matrix D can be split into two parts. D+ and D such that D+ contains
only positive eigenvalues and D contains only negative eigenvalues.
D = D+ + D
1 0
0
+
0
0
1
0
0 ; D = 0
D + = 0 +
2
2
+
0
0
0
0 3
3
(7.64)
(7.65)
Note that splitting D into D+ and D is not unique. Several splittings are possible.
Consequently, several flux vector splittings are possible.
A = R1 (D)R
(7.66)
A = R1 (D+ + D )R
(7.67)
A = R1 D+ R + R1 D R
(7.68)
A = A+ + A
(7.69)
A+ = R1 D+ R
(7.70)
A = R1 D R
(7.71)
G = AU
(7.72)
where
164
we get G = AU = (A+ + A )U = A+ U + A U
G = G+ + G
(7.73)
G+ = A+ U
(7.74)
G = A U
(7.75)
U
G
+
=0
t
x
(7.76)
(G+ + G )
U
+
=0
t
x
(7.77)
G+ G
U
+
+
=0
t
x
x
(7.78)
where
Now that G+ has only positive eigenvalues and G has only negative eigenvalues, we
+
G+
G
U
j Gj1
j+1 Gj
+
+
=0
t
x
x
(7.79)
Rearranging we get
n
(G+
U
j + Gj+1 ) (Gj1 + Gj )
+
=0
t
x
(7.80)
(Gnj+ 1 Gnj 1 )
U
2
2
+
=0
t
x
(7.81)
Gj+ 1 = G+
j + Gj+1
(7.82)
Gj 1 = G+
j1 + Gj
(7.83)
where
2
(7.84)
165
where
U = u and G = p + u2
pu + uE
E
(7.85)
U
U
G
+A
= 0 where A =
t
x
U
(7.86)
A=
0
( 3) 2
u
2
2
ua
( 2)
+ u3
( 1)
2
(7.87)
1
(3 )u
( 1)
a2
2 (3 2)
+u
u
( 1)
2
(7.88)
The Euler equations are hyperbolic and the flux Jacobian matrix A has real eigenvalues
and linearly independent eigenvectors. The eigenvalues are
1 = u a, 2 = u & 3 = u + a
(7.89)
1
1
1
R1 = u a ; R2 = u2 ; R3 = u + a
u
H + ua
H ua
2
(7.90)
u2
p
u2
p
p
u2
Where H = h +
= e+ +
=
+ +
is the total specific enthalpy.
2
2
( 1)
2
Therefore
p
u2
a2
u2
H=
+
=
+
(7.91)
( 1)
2
( 1)
2
where
a2 =
(7.92)
The matrix A can be diagonalized using the eigenvalues and the eigenvectors as
A = RDR1
(7.93)
166
where
1 0 0
D = 0 2 0
0 0 3
(7.94)
1
1
1
R= ua u u+a
H ua u H + ua
(7.95)
1
ua
a
u2 +
u
1
2
( 1)
( 1)
2
(
1)
2a
2
R1 =
u
2u
2
2a ( 1)
1
ua
a
u2
u
1
2
( 1) ( 1)
(7.96)
The eigenvalue matrix D can be split into two parts, D+ &D such that D+ contains only
positive eigenvalues and D contains only negative eigenvalues.
+
1
D+ = 0
0
D = D+ + D
1 0
0
0
0
0
+
0 ; D = 0
2
2
+
0
0
0 3
3
(7.97)
(7.98)
Note that splitting D into D+ &D is not unique. Several splittings are possible. Consequently, several Flux Vector splittings are possible. Note that
A = R(D)R1 = R(D+ + D )R1 = RD+ R1 + RD R1
or A = A+ + A
(7.99)
A+ = RD+ R1 and A = RD R1
(7.100)
where
Using the homogeneity property
G = AU
(7.101)
(7.102)
G+ = A+ U and G = A U
(7.103)
where
167
(G+ + G )
U
+
=0
t
x
or
U
G+ G
+
+
=0
t
x
x
(7.104)
Now that G+ corresponds to only positive eigenvalues and G corresponds to only negative
G
G+
term and forward difference the
eigenvalues, we can backward difference the
x
x
term. Therefore
+n
n
G+n
Gn
U
j Gj1
j+1 Gj
+
+
=0
(7.105)
t
x
x
Rearranging, we get
n
+n
n
(G+n
U
j + Gj+1 ) (Gj1 + Gj )
+
=0
t
x
(Gnj+ 1 Gnj 1 )
U
2
2
or
+
=0
t
x
(7.106)
Gj+ 1 = G+
j + Gj+1 and Gj 1 = Gj1 + Gj
(7.107)
where
2
Gj+ 1 = G+
j + Gj+1
2
(7.108)
Gj 1 = G+
j1 + Gj
2
(7.109)
168
(7.110)
and
i = (i |i |)
2
Where |i | is the absolute value of i .
i
if i 0
|i | =
i if i 0
(7.111)
(7.112)
Therefore
+
i 0 &
+
1
D+ = 0
0
1
0
D =
0
Consequently
i 0
(7.113)
0
0
+
0
2
0 +
3
0
0
0
2
0
3
(7.114)
(7.115)
A+ = RD+ R1 and A = RD R1
(7.116)
G+ = A+ U and G = A U
(7.117)
(7.118)
Gj+ 1 = G+
j + Gj+1 and Gj 1 = Gj1 + Gj
(7.119)
where
2
When the flow is supersonic, all the three eigenvalues are positive and we just need one
sided differencing without flux splitting. Therefore
When M 1 (0 > u > a, supersonic flow from left to right) G+ = G & G = 0
(7.120)
+
169
(7.122)
We need flux splitting only for subsonic flow for which the eigenvalues of A are of mixed
sign.
Sonic points are the locations where the wind direction changes. Sonic points for
the acoustic waves (corresponding to eigenvalues u a) occur for M = 1 and sonic
points for the entropy waves (corresponding to eigenvalue u) occur for M = 0. At sonic
1
=
(
(7.123)
2i + 2 )
i
i
2
where is a small user-adjustable parameter. For further details on this method, the
reader is referred to the reference [57]. van Leer [58] introduced a better Flux Vector
Splitting method in which the split fluxes are continuous functions of Mach number and
therefore the problem of sonic glitches is avoided.
7.3
The most popular numerical method for solving Euler equations is the approximate Riemann solver of Roe [18]. Before trying to understand Roes Flux Difference Splitting
method, let us learn about some interesting properties of the Euler equations, which will
be useful in understanding Roes method better.
7.3.1
Let us note some interesting properties of the Euler equations, with the eigenvalues and
eigenvectors of the flux Jacobians. Consider 1-D Euler equations.
where
U
G
+
=0
t
x
(7.124)
U = u and G = p + u2
pu + uE
E
(7.125)
U
U
+A
=0
t
x
(7.126)
170
where
G
U
is the flux Jacobian. The eigenvalues of the flux Jacobian matrix A are
A=
1 = u a, 2 = u and 3 = u + a
(7.127)
(7.128)
1
1
1
R1 = u a ; R2 = u2 ; R3 = u + a
u
H ua
H + ua
2
Where
(7.129)
p u2
p
p u2
u2
=e+ +
=
+ +
(7.130)
2
2
( 1)
2
p
H=E+
(7.131)
3
3
3
3u
3u
3u
=
=
R1 + R2 + R3 =
u2
p u2
p
u2
2E + 2 +
2(E + ) +
2H +
2
2
H =h+
(7.132)
(7.133)
1
1
1 u a + 2 u2 + 3 u + a = u
u
E
H + ua
H ua
2
The first equation in the above system is
1 + 2 + 3 =
(7.134)
(7.135)
171
(7.136)
u2
1 (H ua) + 2
+ 3 (H + ua) = E
2
2
p
p
p u2
p u2
u2
p
u
1
+3
+ +
ua +2
+ +
+ ua =
+
( 1)
2
2
( 1)
2
( 1)
2
u2
p
u2 p
(1 + 2 + 3 ) +
(1 + 3 ) + ua(3 1 ) = +
(7.137)
2
( 1)
2
( 1)
Therefore, using the relations 1 + 2 + 3 = and 1 = 3 in the above equation, we
obtain
(7.138)
1 =
2
(7.139)
3 =
2
2 = 1 3
or
2 =
( 1)
(7.140)
Therefore
1 R1 + 2 R2 + 3 R3 = U
where
1 = 3 =
( 1)
and 2 =
2
We can write
U=
3
X
i Ri
(7.141)
(7.142)
(7.143)
i=1
P3
i=1
i i Ri .
i i Ri = 1 1 R1 + 2 2 R2 + 3 3 R3
(7.144)
i=1
where 1 = u a, 2 = u, 3 = u + a.
For the first component :
3
X
1
i i Ri =
( 1)
(u a) +
u + (u + a)
2
172
h
h
( 1)
i
i
i i Ri = u
+
+
+a
2
2
2 2
3
X
i i Ri = u
3
X
h 1 + 1 2 + 2 i
2
i i Ri = u
3
X
i i Ri = G(1)
Similarly, we can show that we can recover the other two fluxes, G(2) and G(3) . Therefore
3
X
i i Ri = G
(7.145)
i i Ri =
3
X
i Ai Ri = A
3
X
i Ri = AU = G
The above two equations mean that we can project the field vector U and flux vector G
onto the eigenvector space as
U=
3
X
1
i Ri & G =
3
X
i i Ri
This property of Euler equations is used by Roe in developing the approximate Riemann
solver. He projects the differences (UR UL ) & (GR GL ) on to the eigenvector space
(of 3 components - like 3 coordinates).
7.3.2
(7.146)
(7.147)
173
where
G
(7.148)
U
If we discretize the 1-D Euler equations using a finite volume method, we obtain
i
t h n
Ujn+1 = U n j
Gj+ 1 Gnj 1
(7.149)
2
2
x
A=
To evaluate the fluxes Gj 1 at the cell interfaces, first we will assume a piece-wise poly2
nomial approximation in each cell. Assuming a piece-wise constant approximation for
simplicity (which leads to a first order accurate method), we will have to solve a Riemann
problem (that is, the equation (7.147)) at each cell interface with the initial condition at
the beginning of each time-step as
(
UL if x < xj+ 1
2
U (x, tn ) =
(7.150)
UR if x > xj+ 1
2
If we solve the Riemann problem at each of the interfaces exactly, then we will obtain Godunovs method. Since the cell integral averages are automatically calculated in the finite
volume method, solving the Riemann problem exactly will be computationally expensive
since the accurate information so obtained is lost in the averaging process any way. Roe
replaces the exact Riemann problem at a cell interface by an approximate Riemann problem in such a way that the new approximate Riemann problem is linear and easy to solve.
Roe replaces the exact Riemann problem (7.147) by an approximate Riemann problem
U
U
+ A
=0
t
x
(7.151)
174
(7.152)
or G = AU
(7.153)
This ensures that flux is in conservative form (G = AU ) and that the total flux is conservative across the discontinuities also. This also has an important consequence. We know
that across the shocks
GR GL = S(UR UL )
(7.154)
R UL ), S must be an eigenvalue of A.
where S is the shock speed. Since GR GL = A(U
Since we are projecting (UR UL ) into the eigenvector space only (which corresponds to
eigenvalues, and therefore to S), the solution will be exact for a single shock or a single
contact discontinuity. Therefore, we require A such that the eigenvalues of A being i ,
G =
3
X
i i Ri
(7.155)
G = AU
(7.156)
G = AU if UR = UL (A = A f or UR = UL )
(7.157)
and
Let us try to understand the geometrical meaning of the above approximation. Let us
first consider a scalar function g(u). Let us try to seek the derivative of g(u) with respect
to u, with two sample points uL &uR .
175
a(uL ) =
g
g(u) g(uL )
(u uL )
(7.158)
a(uR ) =
g
g(u) g(uR )
(u uR )
(7.159)
g(uR ) g(uL )
(uR uL )
(7.160)
uL
uR
Approximation (7.158) is good near uL & approximation (7.159) is good near uR . We seek
an approximation which is good in the entire region (uR uL ). Therefore we can write
a
=
g
u
uL to uR
(7.161)
U
(UR UL )
Therefore
R UL )
G(UR ) G(UL ) = A(U
(7.162)
The vector G(U ) will have N components (N = 3 for 1 - D). Therefore A will have N N
elements. That means, from the above equation, we have N equations with N 2 unknowns.
Therefore, the solution is not unique and we have a lot of choice.
In analogy with the scalar case, A should be an average of A(UL ) and A(UR ). Therefore,
we can write
A = A(U )
(7.163)
where U is an average of UL and UR . Let us now find out this average.
0
1
0
(3) 2
u
(3 )u
( 1)
A=
2
2
2
ua
a
2 (32)
(1)
+ u3 (2)
+
u
u
2
(1)
2
Let us now rewrite the elements A31 and A32 in terms of h = e +
p
1
h = e + p = 1
+ p = p ( 1
+ 1) = p 1
h=
Since p = RT ,
= RT =
a2
h=
and H = h +
(7.164)
u2
2
p
1
(7.165)
a2
1
(7.166)
176
a2
u2
+
( 1)
2
ua2
u2 ( 1)
a2
u3 ( 2)
= u[
]
2
1
2
( 1)
(7.168)
u[u2
(7.169)
a2
u2
( 2) u2
+
]
2
2
( 1)
2
( 1)
uH
2
(3 2)
a2
+ u2
=
( 1)
2
u3
A32
u2 u2
(3 2)
a2
+
+ u2
( 1)
2
2
2
A32 = H + u2 (1 )
(7.167)
1
0
(3) 2
u
(3 )u
( 1)
A=
2
3 (1)
2
u 2 uH H + u (1 )
u
(7.170)
(7.171)
(7.172)
(7.173)
(7.174)
Now,
1
0
(3) 2
u
(3 )
u
( 1)
A=
2
3 (1)
2
H
+ u (1 )
u 2 uH
u
0
(7.175)
U = u
E
u2
p u2
p
=e+ +
=E+
2
p
E=H
p
E = (H ) = H p = H RT
H =h+
E = H
a2
H
= H
RT
(7.176)
(7.177)
(7.178)
(7.179)
a2
H H a2
= H
+
H
a2
H
+ [H
u2
1
1
1
1
H
+[
{1 } + a2 {
( 1) ( 1)
(7.183)
U =
H
( 1)
+ u2
u
2 (1)
+ u 2
u
G = p + u2
pu + uE
G(2) = p + u2 = RT + u2 =
(7.186)
a2
+ u2
u2
a2
u2
[H ]( 1) + u2 (since H =
+ )
2
( 1)
2
( 1)
( 1)
( 1)
( 1)
u2
+ u2 = H
+ u2 [1
]
2
H
( + 1
( 1)
+ u2
G(2) = p + u2 = H
( 1)
( + 1)
+ u2
G(3) = pu + uE
u.[
(7.184)
(7.185)
(7.181)
(7.182)
E =
(7.180)
H
a3
u3
a2
u3 a2
+[
+
( a)
2
( 1)
2
177
a2
a2
p
a2
] + u[H ] (since a2 =
& E = H
)
G(3) = pu + uE = uH
(7.187)
(7.188)
(7.189)
(7.190)
(7.191)
(7.192)
(7.193)
(7.194)
178
u
u
G = p + u2 = H (1)
+ u2 (+1)
2
pu + uE
uH
Let
From (5),
(7.195)
u = uR uL
(7.196)
= R L
(7.197)
H = HR HL
(7.198)
(7.199)
(u)
+ (u2 ) (+1)
2
(H) (1)
(u)
= A.
H
2 (1)
( ) + (u ) 2
(7.200)
where A is given by (14). Let us now consider each of the three equations of (23).
First equation:
( 1)
1
}
(u) = 0. + 1.(u) + 0{(H) + (u2 )
(7.201)
(u) = (u)
(7.202)
It is a trivial identity.
Second equation:
( 1)
( + 1)
+ (u2 )
=
2
( 3) 2
u . + (3 )
u.(u)
2
1
( 1)
+( 1).{(H) + (u2 )
2
(H)
(7.203)
Now,
(H) = R HR L HL
R (
a2
u2
a2
u2
+ R ) L (
+ L ) (since a = constant)
1
2
1
2
(7.204)
(7.205)
(25) gives:
a2
1
. + (u2 )
( 1)
2
179
(7.206)
( 1)
1
( 1) ( + 1)
a2
.
. + (u2 ).
+
(u2 ) =
( 1)
2
( 3)
u2 + (3 ).(u).
u
2
( 1)
a2
1
( 1)2
+
.[
+ (u2 )] +
.(u2 ).
( 1) 2
2
( 1)2 ( + 1)
( 3)
u2 + (3 )(u)
u = (u2 ).[
+
]
2
2
2
.
u + (3 )[
2
( 1)2 ( + 1)
2
].(u).
u = (u2 ).
[
]
3
( 3)
2
.
u2 2.(u).
u = (u2 )
2
2 3
[
]
( 3)
2
u2 2(u)
u + (u2 ) = 0
(7.207)
(7.208)
(7.209)
(7.210)
b2 4ac
2a
4{(u)}2 4..(u)2
2.
p
(u) {(u)}2 .(u2 )
p
(R uR L uL ) (R uR L uL )2 (R L ).(R u2R L u2L )
R L
Now,
2(u)
(R uR L uL ) (uR uL ) R L
=
(R L )
R uR L uL uR R L uL R L
=
(R L )
(7.211)
(7.212)
(7.213)
(7.214)
(7.215)
(7.216)
(7.217)
(7.218)
180
R L ) uL .(L R L )
=
(R L )
uR . R .( R L ) uL . L .( L R )
=
( R + L )( R L )
uL . L .( L L )
uR . R .( R L )
u =
( R + L )( R L ) ( R + L )( R L )
uR .(R
uL L .( R + L )
uR R .( R + L )
u =
( R + L )( R L ) ( R + L )( R L )
uR R u L L
u =
R L
(7.219)
(7.220)
(7.221)
(7.222)
(7.223)
uR R .( R L )
uL L .( L R )
u =
( R + L )( R L ) ( R + L )( R L )
uR R + uL L
u =
R + L
(7.224)
(7.225)
This is the Roe average velocity. Similarly, solving the third equation of (23), we get
H R R + H L L
H=
(7.226)
R + L
This is the Roe average total enthalpy.
Let us assume that
(u) = u + u
R uR L uL = .(uR uL ) + u.(R L )
(uR R + uL L )
.(R L )
R uR L uL = uR uL +
( R + L )
uR R + u L L
R uR L uL = uR uL +
.( R + L )( R L )
( R + L )
(uR uL ) = R L (uR uL )
= R L
(7.227)
(7.228)
(7.229)
(7.230)
(7.231)
(7.232)
181
This is the Roe-average density. We now have expressions for Roe average density, velocity
and total specific enthalpy. Therefore A is completely defined. We also need a
.
a
2
u
2
Let H = (1) + 2
r
2
u )( 1)
(7.233)
a
= (H
2
Now, the eigenvalues of A are:
7.3.3
1 = u a
(7.234)
2 = u
(7.235)
3 = u + a
(7.236)
The Roe averages derived before can also be obtained alternatively by using a parameter
vector. The inspiration for such an approach is from analytical geometry in which a plane
curve y(X) may, in some cases, be described more easily by a parametric form: y = y(T ),
x = x(t). Similarly, we can use G = G(Z) and U = U (Z), where Z is a parameter vector.
)
+ G(U
= 0, with
For 1-D Euler equations, U
t
x
U = u and G(U ) = p + u2
pu + uE
E
and G(U ) =
u
or U =
(1)
1
2
H + 2 u
we can write
u
(1)
H + (+1)
u2
2
uH
(7.237)
(7.238)
Z1
1
Z = Z2 = u
Z3
H
(7.239)
U1 = = ( )2 = Z12
(7.240)
U2 = u =
U3 =
u = Z1 Z2
1
( 1) 2
( 1) 2 1
H +
H +
u =
( u)
(7.241)
(7.242)
182
1
( 1) 2
Z1 Z3 +
Z2
Z12
Z1 Z2
U =
(1) 2
1
Z Z + 2 Z2
1 3
G2 =
(7.243)
(7.244)
G1 = u = U2 = Z1 Z2
(7.245)
( + 1) 2
( 1)
( + 1) 2 ( 1)
H +
H +
u =
( u)
(7.246)
( + 1) 2
( 1)
Z1 Z3 +
Z2
2
G3 = uH = u H
G2 =
G3 = Z1 Z3
Z1 Z2
G = (1)
Z1 Z3 + (+1)
Z22
2
Z2 Z3
(7.247)
(7.248)
(7.249)
(7.250)
We can see that every component of U and G is merely quadratic in the components of
Z. Let us now obtain the matrix A in the expression
R UL )
GR GL = A(U
(7.251)
(7.253)
Let
1
1
a
= (aL + bR )and b = (bL + bR )
2
2
be the arithmetic mean values. We can write (ab) as
(ab) = aR bR aL bL
1
1
1
1
= aR b R + aR b R aL b L aL b L
2
2
2
2
1
1
1
1
1
1
1
1
= aR b R + aR b R aL b L aL b L + aL b R aL b R + aR b L aR b L
2
2
2
2
2
2
2
2
(7.254)
(7.255)
(7.256)
(7.257)
183
1
1
1
1
aL (bR bL ) + aR (bR bL ) + bL (aR aL ) + bR (aR aL )
2
2
2
2
1
1
1
1
(bR bL )( aL + aR ) + (aR aL )( bL + bR )
2
2
2
2
(bR bL )
a + (aR aL )b
(ab) = a
b + ba
(7.258)
(7.259)
(7.260)
(7.261)
1
1
1
aL aR
(aR aL )
( ) =
=
=
a
aR aL
aL aR
( aL aR ) 2
(7.262)
a
1
( ) = 2
a
a
(7.263)
(7.264)
where
a
=
aL aR
=
=
(7.266)
( + 1)
( 1)
(Z1 Z3 ) +
(Z22 )
(7.267)
( + 1) 2
( 1)
2
[Z1 Z3 + Z3 Z1 ] +
(Z2,R Z2,L
)
(7.268)
=
=
( 1)
( + 1) 2
(Z1 Z3 ) +
(Z2 )]
(7.265)
( + 1)
( 1)
(Z1 Z3 + Z3 Z1 ) +
(Z2,R + Z2,L )(Z2,R Z2,L )
(7.269)
( + 1) 1
( 1)
(Z1 Z3 + Z3 Z1 ) +
(Z2,R + Z2,L )(Z2,R Z2,L )
(7.270)
( 1)
( 1)
( + 1)
Z1 Z3 +
Z3 Z1 +
Z2 Z2
G3 = (Z2 Z3 ) = Z2 Z3 + Z3 Z1
Z1 Z2 + Z2 Z1
(1)
G = Z1 Z3 + (1)
Z3 Z1 +
Z2 Z3 + Z3 Z1
G =
Z1
Z2
(1)
Z3
(+1)
Z2
Z3
(+1)
Z2 Z2
(7.271)
(7.272)
(7.273)
Z1
(1)
Z2
Z1
Z3
Z2
0
184
G = CZ
(7.274)
where
C =
Z1
Z2
(1)
Z3
(+1)
Z2
(1)
Z3
Z3
Z2
2
2
U1 = (Z12 ) = Z1,R
Z1,L
= (Z1,R Z1,L )(Z1,R + Z1,L )
1
= Z1 .2. (Z1,L + Z1,R ) = Z1 .2.Z1
2
U1 = 2Z1 Z1
U2 = (Z1 Z2 ) = Z1 Z2 + Z2 Z1
1
( 1) 2
( 1)
1
Z2 ] = (Z1 Z3 ) +
(Z22 )
U3 = [ Z1 Z3 +
2
=
=
( 1) 2
1
2
[Z1 Z3 + Z3 Z1 ] +
(Z2,R Z2,L
)
1
1
( 1)
1
(Z2,R Z2,L ). (Z2,R + Z2,L )
Z1 Z3 + Z3 Z1 +
2
U3 =
1
1
( 1)
Z2 Z2
Z1 Z3 + Z3 Z1 +
2Z1 Z1
Z2 Z1 + Z1 Z2
U =
(1)
1
1
Z Z1 + Z2 Z2 + Z1 Z3
3
2Z1
U = Z2
1
Z
3
Z1
(1)
Z2
(7.275)
(7.276)
(7.277)
(7.278)
(7.279)
(7.280)
(7.281)
(7.282)
(7.283)
(7.284)
0
Z1
0 Z2
1
Z3
Z
1
U = BZ
(7.285)
where
2Z1
= Z2
B
1
Z3
0
Z1
(1)
Z2
0
0
1
Z1
(7.286)
From (27), U = BZ
or
(22) gives
185
1 U
Z = B
(7.287)
1 U
G = CZ
= C B
1 U
G = C B
(7.288)
(7.289)
Comparing with G = AU
(in(12)), we get:
1
A = C B
(7.290)
7.3.4
(7.291)
L , UR ) = A(U ) if UL = UR
A(U
(7.292)
G = AU
(7.293)
(7.294)
2.
and
3.
The question is to show to obtain A which satisfies the above conditions. One way to
obtain A is to integrate the flux Jacobian matrix over a suitable pathin conserved vecotr
space, between UR and UL . Let us consider the straight line path as:
U () = UL + (UR UL )
(7.295)
(7.296)
1
0
dG(U ())
d
d
(7.297)
186
1
0
dG(U ) dU ()
d =
dU
d
G = (UR UL )
G = U
Therefore, we can define A as:
A =
1
0
1
0
dG(U )
)(UR UL )d
dU
(7.298)
dG(U )
d
dU
(7.299)
(
0
1
dG(U )
d
dU
dG(U )
d
dU
(7.300)
(7.301)
This average flux Jacobian matrix will satisfy the conservation condition (G = AU
)
and the consistency condition (A(UL = UR = U ) = A(U )) But the hyperbolicity condition
may or may not be satisfied. That means, A of (8) may or may not have real and distinct
eigenvalues. Another problem is that it may not always be possible to evaluate the integral
in (8) in closed form.
By introducing a parameter vector, Roe obtained a change of variables so that the integral
in (8) becomes easier to evaluate. Instead of (5) as the integration path, Roe chose:
Z() = ZL + (ZR ZL )
(7.302)
(7.303)
where
dZ()
= (ZR ZL )
d
(7.304)
which is independent of .
G = G(UR ) G(UL ) =
G =
1
0
1
0
dG(Z())
d
d
dG(Z()) d(Z())
d
dZ
d
(7.306)
dG(Z())
(ZR ZL )d
dZ
0
Z 1
dG(Z())
(ZR ZL )
d
dZ
0
Z 1
dG(Z())
G = Z
d
dZ
0
G =
(7.305)
(7.307)
(7.308)
(7.309)
187
1
0
1
0
dU (Z())
d
d
dU (Z()) dZ()
d
dZ
d
(7.311)
dU (Z())
(ZR ZL )d
dZ
0
Z 1
dU (Z())
d
U = Z
dZ
0
=
(7.310)
(7.312)
(7.313)
G = (C)Z
(7.314)
& U = (B)Z
(7.315)
where
=
B
and
C =
Z
Z
1
0
1
dU (Z())
d
dZ
(7.316)
dG(Z())
d
dZ
(7.317)
G = CZ
(7.318)
B
1 U )
G = C(
(7.319)
1 U
G = C B
(7.320)
G = AU
(7.321)
1
A = C B
(7.322)
where
Harten, Lax and Van Leer ( on upstream differencing and Godunov type schemes for
hyperbolic conservation laws, SIAM Review, 25, pp.35-61,1983) showed that if the system
has a convex entropy function, then the above integration procedure can always be used
to define a matrix A which satisfies the hyperbolicity condition.
To make the integrals easy for closed form evaluation, Z is chosen such that U
and G
Z
Z
are functions of polynomials of Z. Then, we obtain polynomials in and the integrals
become easier to evaluate.
188
7.3.5
Wave strengths
U =
3
X
i Ri
(7.323)
1
R1 = u a
H ua
(7.324)
1
R2 = u
1 2
u
2
(7.325)
1
R3 = u + a
+ ua
H
(7.326)
U1
R L
U = R uR L uL = U2
U3
R E R L E L
(7.327)
i=1
1
1
U1
1
+ 2 u + 3 u + a
U2 = 1 u a
1
ua
+ ua
H
U3
H
u2
2
U1 = 1 + 2 + 3
U2 = 1 (
ua
) + 2 u + 3 (
u+a
)
1
ua
+ ua
U3 = 1 (H
) + 2 u2 + 3 (H
)
2
From (7), U2 = (1 + 2 + 3 )
u + (3 1 )
u
(7.328)
(7.329)
(7.330)
U2 = U1 .U + (3 1 )
a
(7.331)
(ab) = aR bR aL bL
(7.332)
1
1
a
= (aL + aR ) & b = (bL + bR )
2
2
(7.333)
Let
189
1
1
a
b + ba = (aL + aR )(bR bL ) + (bL + bR )(aR aL )
2
2
= aR b R aL b L
(7.334)
(7.335)
= (ab)
(7.336)
(ab) = a
b + ba
(7.337)
Let us see if Roe averages also have a similar property, as the arithmetic averages do
above.
uR R + uL L
(7.338)
u =
and = R L
R + L
Let us evaluate (
u + u).
(uR R + uL L )
(R L ) + R L (uR uL )
u + u =
( R + L )
(uR R + uL L )
( R L )( R + L ) + R L uR R L uL
( R + L )
u R R uR R L + uL R L uL L + u R R L uL R L
(7.339)
(7.340)
(7.341)
uR R uL L = (u)
(7.342)
(u) = u + u
(7.343)
U2 = uU1 + u
(7.344)
U2 = U1 u + (3 1 )
a = U1 u + u
(7.345)
(3 1 )
a = u
(7.346)
3 1 =
From (6), 3 + 1 = 2 Since H =
=
H
a2
(1)
u
a
u2
,
2
(7.347)
we can write
a
2
1
+ u2
( 1) 2
(7.348)
(8) gives:
ua
(E) = 1 (H
) + 2 ( H
a
2
+ ua
) + 3 ( H
)
( 1)
1 + 2 + 3 ) + ua
(E) = H(
(3 1 ) 2
a
2
( 1)
(7.349)
(7.350)
190
(E) = H
+ ua
.
2
a
( 1)
2
From (10),
(7.351)
a
2
= H
+ uu (E)
( 1)
(7.352)
u = (u) u
(7.353)
(14) gives:
2
a
2
= H
+ u[(u) u] (E)
( 1)
(7.354)
= H
+ u[(u) u] [(e + u2 )]
2
1
= H
+ u[(u) u] (e) ( u2 )
2
2
a
2
1
= H
(e) + u[(u) u] ( u2 )
( 1)
2
Let us first establish some algebraic relations with Roe averages with =
+u
)
(u
u = L(LL +RR ) R , we have already derived:
(7.355)
(7.356)
(7.357)
L R and
(u) = u + u
(7.358)
(7.359)
= (uR R + uL L )(uR R uL L )
(uR R + uL L )
=
( R + L )(uR R uL L )
( R + L )
= (
u)( R + L )(uR R uL L )
= (
u)[uR R uL L R + uR L R uL L ]
= (
u)[(uR R uL L ) + ( L R )(uR uL )]
(7.360)
(7.361)
(7.362)
(7.363)
(7.364)
(7.365)
= (
u)[
u + (u)]
(7.366)
= (
u)[
u + u + u]
(7.367)
= (
u)[2
u + u]
(7.368)
(u2 ) = 2
uu + u2
(7.369)
191
u2
) + (
u)[(u) u]
2
(7.370)
1
= (u2 ) + (
u)(u) u2
2
(7.371)
1
uu + u2 ] + u[
u + u] u2
= [2
2
(From (18) and (17))
(7.372)
1
1
uu u2 + uu + u2 u2
= .2
2
2
(7.373)
1
= u2
2
(7.374)
u2
1
+ (
u)[(u) u] = u2
2
2
(7.375)
(16) gives:
2
=
since H
(1)
u2
a
2
= H
(e) + (
u)[(u) u] (
)
( 1)
2
+ 21 u2
= H
(e) u2
2
2
1
1
a
+ u2 ]() (e) u2
=[
( 1) 2
2
Now, e =
p
(1)
(7.376)
(7.377)
(7.378)
1
1
a
2
+ u2 (e) u2
( 1)
2
2
(7.379)
a
2
=
(E)
2
( 1)
( 1)
(7.380)
e =
(e) =
2
2 =
p
( 1)
p
(pR pL
=
( 1)
( 1)
a
2
a
2
p
=
( 1)
( 1)
( 1)
( 1)
p ( 1)
a
2
2
( 1)
a
( 1) a
2
(7.381)
(7.382)
(7.383)
(7.384)
192
1
p
a
2
(7.385)
From (6), U1 = = 1 + 2 + 3
3 + 1 = 2
3 + 1 = (
1
p)
a
2
1
p
a
2
3 1 = u
a
3 + 1 =
(7.386)
(7.387)
(7.388)
(7.389)
p + u
2
a
1
3 = 2 p + u
2
a
2
a
(p) + (u)(
)(
a)
=
2
2
a
p + a
u
3 =
2
a2
23 + 1 alpha1 =
(24) gives:
or
3 1 = u
a
p + a
u
1 = u
2
2
a
a
p + a
u u
1 =
2
a2
a
p + a
u 2
u
a
=
2
2
a
p a
u
1 =
2
a2
p a
u
1 =
2
a2
1
2 = 2 p
a
p + a
u
&3 =
2
a2
(7.390)
(7.391)
(7.392)
(7.393)
(7.394)
(7.395)
(7.396)
(7.397)
(7.398)
(7.399)
(7.400)
(7.401)
7.3.6
193
(7.402)
with
n
U (x, t ) =
UL for x > 0
UR for x < 0
(7.403)
Note that we have placed the origin, x = 0, at a cell interface, xj+ 1 , as we are solving (1)
2
at x 1 .
at every cell interface. Note also that UL = Uj and UR = Uj+1
j+ 2
L , UR ) is a (locally) constant matrix, as it is an average matrix,
The matrix A = A(U
representing Roe averages. Thus, (1) is a (coupled) linear hyperbolic system. Therefore,
we can decouple it by using a characteristic variable.
(1) gives
(RW )
t
W = R1 U
(7.404)
U = RW
(7.405)
W + AR
W = 0
R
t
x
(7.406)
+ A x
(RW ) = 0 or
is constant as A is constant)
(since R
or
as
W
W = 0
+ R1 AR
t
x
(7.407)
W
W = 0
+D
t
x
(7.408)
D
R1
A = R
(7.409)
Wi
Wi
+ i
= 0, i = 1, 2, 3
t
x
(7.410)
(5) means
as
1 0 0
= 0 2 0
D
0 0 3
(7.411)
194
Solution of (7) is
Wi (x, t) = Wi (x i t, 0)
(7.412)
Let us also transform the initial conditions given by (2) to characteristic variables.
UL for x > 0
.
U (x, 0) =
UR for x < 0
becomes
(x, 0) =
RW
L for x > 0
RW
R for x < 0
RW
or
W (x, 0) = W
(0)
(x) =
WL for x > 0
WR for x < 0
(7.413)
(10) and (11) give us the solution of the approximate Riemann problem (1) and (2). Let
us put this solution in the conserved variables. (4) gives:
V = RW
U1
U2 =
U3
or
W1
R11 R12 R13
R21 R22 R23 W2
W3
R31 R32 R33
U1
U2 = W1
U3
(7.414)
R11
R21 + W2
R31
R12
R22 + W3
R32
U = W1 R1 + W2 R2 W3 R3
or
U=
3
X
Wi Ri
(7.415)
(7.416)
R13
R23
R33
(7.417)
(7.418)
(7.419)
i=1
3
X
195
Wi (x, t)Ri
(7.420)
Wi (x i t)Ri
(7.421)
i=1
3
X
i=1
(0)
The solution is a superposition of three wave solutions, where each represents one linear
convection equation with an initial discontinuity.
There are 3 families of characteristics each having parallel characteristics. We can write:
UL =
3
X
i Ri
(7.422)
i=1
& UR =
3
X
i Ri
(7.423)
i=1
(7.424)
or
Wi (x, t) =
WL,i f or i t > 0
WR,i f or i t < 0
(7.425)
3
X
i Ri +
i=1
i > 0
U (x, t) =
3
X
i=1
i Ri
U (x, t) = UL +
3
X
i Ri
(7.426)
i=1
i < 0
3
X
i=1
i < 0
3
X
i=1
i < 0
i Ri +
3
X
i Ri
(7.427)
i=1
i < 0
(i i )Ri
(7.428)
196
Similarly,
U (x, t) = UR
3
X
i=1
i < 0
1
1
U (x, t) = (UL + UR ) + [
2
2
(i i )Ri
3
X
i=1
i < 0
3
X
i=1
i > 0
(7.429)
](i i )Ri
(7.430)
U = UR UL =
U =
where i = i .i
i=1
3
X
(i i )Ri
(7.431)
i Ri
(7.432)
i=1
3
X
1
U (x, t) = (UL + UR ) + [
2
3
X
i=1
i < 0
]i Ri
i=1
i > 0
Gj+ 1 = G(xj+ 1 , t) = AU
j+ 1
2
1
1
= (A)[ {UL + UR } + {
2
2
1
1
= [GL + GR ] + [
2
2
since G = AU
1
1
= [GL + GR ] + [
2
2
i=1
i < 0
3
X
i=1
i < 0
3
X
i=1
i < 0
(7.434)
3
X
(7.433)
3
X
i=1
i > 0
3
X
}i Ri ]
(7.435)
]i ARi
(7.436)
]i i Ri
(7.437)
i=1
i > 0
3
X
i=1
i > 0
+
since
i i = |i |
7.4
1
1X
= [GL + GR ]
i |i |Ri
2
2 i=1
(7.438)
Let us use the philosophy of Kinetic Schemes explained before, i.e., the splitting method,
to develop an upwind Boltzmann scheme or kinetic scheme. Consider 1-D Boltzmann
equation
f
f
+v
= J (f, f )
(7.439)
t
x
Euler equations can be obtained as moments of (7.439).
1
v
f
f
i=0
+v
v2
t
x
I+
2
v
Let =
v2
I+
2
(7.440)
(7.441)
(7.442)
Since the convection terms in the Boltzmann equation (7.442) are linear, we can apply
the C-I-R upwind scheme easily.
"
n
#
n
fjn+1 fjn v + |v| fjn fj1
fjn
v |v| fj+1
h
+
+
i=0
(7.443)
t
2
x
2
x
n
v |v|
2
(7.444)
(7.445)
198
Therefore, we get
+n
n
Ujn+1 Ujn G+n
Gn
j Gj1
j+1 Gj
+
+
=0
t
x
x
where U = hf i
G+ = hv + f i
and G = hv f i
(7.446)
(7.447)
(7.448)
(7.449)
Using the splitting strategy, we use two steps : (1) a Relaxation Step and (2) a convection
step. In the Convection Step, the distribution function evolves from f n to f n+1 during
a time-step t in the convection step and, therefore, does not remain a Maxwellian.
Following the convection step, the distribution function is instantaneously relaxed to a
Maxwellian in the Relaxation Step. Therefore, at the starting of any time-step, we have
fn = Fn
(7.450)
Thus, we can write the moment relations for the split fluxes as
Gn+ = hv + F n i
and Gn = hv F n i
(7.451)
(7.452)
U = hf i =
dI
dv
1
v
2
v
I+
2
or U = u
E
(7.453)
where
G =
uA B
2
(p + u ) A uB
2
p
+E B
(p u + uE) A
2 2
A=
p
1 erf (s)
2
, B = es andS = u
2
(7.454)
(7.455)
(7.456)
Therefore, the C-I-R upwind scheme applied to the Boltzmann equation, when moments
are taken, leads to a Flux Vector Splitting as
G = G+ + G
(7.457)
Hence this method is called Kinetic Flux Vector Splitting (KFVS) method.
Unlike the Steger and Warming and van Leer Flux Vector Spliting methods, KFVS
is not based on eigenvalues. This method is based on enforcing the upwinding at a
molecular level, using the signs molecular velocities.
Unlike Steger and Warming FVS method, the KFVS method is not limited to those
systems of equations which have homogeneity property. Even for systems of equations not having homogeneity property like Shallow Water Equations or the Burgers
equation, KFVS method can be applied by finding suitable equilibrium distribution
functions.
The split fluxes are continuous functions of Mach number, unlike the Steger and
Warming FVS method. Therefore, no some glitches appear.
When the Continuum hypothesis breaks down, as in the case of hypersonic flows
of re-entry vehicles, KFVS allows a smooth transition from an Euler scheme to a
Boltzmann solver like DSMC. This is a unique property of Kinetic Schemes. This
is very useful for Euler-Boltzmann coupling problems.
A sample split flux derivation:
G+
1
Since
= h1 v F i = h1 v F i = hv F i =
dI
dv
v + |v|
F
2
v + |v|
0, we can write
2
G+
1
G+
1
dI
dI
(v
dv v e
I0
u)2
I
I0
dv vF
Z
Z
I
I
=
ve(v
e 0 dI
I0 0
0
u)2
dv
200
where
K1 =
Let
I
I0
= K1 K2
I0
dI andK2 =
ve(v
u)2
dv
I
=z
I0
dI = dz I0 or dI = I0 dz
as
I 0,
z0
as
K1 =
I
I0
dI =
I , z
Z
z
e dz(I0 ) = I0
ez dz =
0
K1 = I0 [0 1]
K2 =
Let
=
Z
I0 ;
ve(v
u)2
I0 [ez ]
0
I
= I0 e
I0
e I0 dI = I0
dv
p
(v u)
z
v = +
p
dz
dz = dv ordv =
p
As v , z u or z
z=
As v ,
z
z
2 dz
(v u)2
+ u ez
K2 =
ve
dv =
0
s
Z
Z
u
z z2
2
ez dz
e dz +
K2 =
s
s
Z
Z
u
1
2
2
zez dz +
ez dz
K2 =
s
s
Z
Z 0
Z
Z
1
u
u 0 z2
1
z 2
z 2
z 2
ze dz +
ze dz +
e dz +
e dz
K2 =
0
s
s
0
Z
As v ,
Z 0
u
u
2
ey dy (where y = z)
ye dy +
2
s
s
Z s
Z s
1
1
u
u
2
y 2
K2 =
ye dy + +
ey dy
2 0
2
0
1 1 1
K2 =
+
2
Now, let
y 2
x = y 2 dx = 2ydy
As y 0 x 0
ye
y 2
dy =
Also, since
s
0
1
2
2ydyey
2
As y s x s2
Z 2
1 s
1 x s2
=
[e ]0
dx ex =
2 0
2
i
1 1 2
1 h s2
e e0 = es
2
2 2
Z s
2
2
erf (s) =
ex dx
0
Z s
x2
erf (s)
e dx =
2
0
1
u u
1 1 1 s2
u
1 s2
u
K2 =
+ + erf (s) =
e
e
+ + erf (s)
2 2 2
2
2
2
2
2
1 s2 u
e + [1 + erf (s)]
K2 =
2
2
1 s2 u
u
2
+
e +
(1 + erf (s)) = es +
[1 + erf (s)]
G1 = K1 K2 =
I0
2
2
2
2
+
G+
B
1 = uA +
2
where
A+ =
1 + erf (s)
2
and B = es
2
Integrals
Z
x2
dx =
2
xex dx = 0
2 x2
x e dx =
2
2
Z0
1
2
xex dx
=
2
0
2
x2 ex dx
=
4
0
e
x2
dx
202
1
2
x3 ex dx
=
dx = 0
2
0
Z
Z
3
3
2
2
x4 ex dx =
x4 ex dx
=
4
8
0
Z
Z
2
2
x5 ex dx
=
1
x5 ex dx = 0
0
Z
Z
15
15
6 x2
6 x2
x e dx
=
x e dx =
8
16
0
7.5
3 x2
xe
In the KFVS method, the Molecular Velocity Space is divided into two halves, v > 0 and
v < 0, as upwinding is done based on the molecular velocity. The origin, v = 0, presupposes a preferential rest frame, which is not physically meaningful. Therefore, we can
split the velocity space as < v < v0 and v0 < v < . What should be v0 such that
the splitting is meaningful? To answer this question, we look into the basic definitions of
Kinetic Theory.
D
2
2 I
e (~v ~u) e I0
F =
I0
Pij = pij ij
Z Z
d 3 v ci cj f
dI
Pij =
0
where ci = vi ui
Z Z
qi =
dI
where c2 =
0
2
c1 + c22
+ c23
ci c2 f
(7.458)
(7.459)
(7.460)
(7.461)
(7.462)
From the above, we can see that P eculiar Velocity (c = v u) is a more natural variable
than the molecular velocity. Therefore, we can shoose v0 = u. This leads to the following
splitting : < v < u and u < v < or < c < 0 and 0 < c < . Thus,
we can split the velocity space based on positive and negative peculiar Velocities . Peculiar
velocity is also known as Thermal Velocity or Random Velocity.
(7.463)
Now, c = v u or v = c + u.
f
+
[(c + u) f ] = J (f, f )
t
x
f
+
(uf ) +
(cf ) = 0
t
x
x
If we now take moments, we obtain
Z
dI
dv
1
v
f
+
(uf ) +
(cf ) = 0
v2
t
x
x
I+
2
c2 I
F = e
e I0
I0
where
1
v
F
+
(uF ) +
(cF ) = 0
dI
v2
t
x
x
I+
2
hF i +
h uF i +
hcF i = 0
t
x
x
1
Z Z
c+ u
dc
dI
hF i =
2 F
(c + u)
0
I+
2
Z
dc
204
(7.464)
0
u
U = u ; G t = u2 = u U ; G a = p
pu
uE
E
(7.465)
where
u
G = p + u2 = u2 + p = G t + G a
pu
uE
p u + uE
(7.466)
Therefore, the total flux G is naturally split into two parts: Gt and Ga , even before
upwinding based flux splitting.
(7.467)
Therefore, this flux represents the transport flux. The fluid particles transport the fluid
properties U (mass, momentum and energy) along with them. If we analyze the eigenGt
values of the transport flux Jacobian,
= At , we get
U
ti = u, u, u
(7.468)
All the eigenvalues are equal to the fluid velocity and are of the same sign. For the flux
Ga
= Aa we get
Jacobian
U
r
r
1
1
a
i = 0, +a
, a
(7.469)
Therefore, two of the eigenvalues are equal to the sound speed multiplied by a constant,
but are of mixed sign, the third eigenvalue being zero. Therefore, this is the Acoustic
flux, representing information travel by acoustic signals. Since the acoustic signals are
the pressure pulses, this flux is also called pressure flux. Correspondingly, the transport
flux is also caled convective flux and this splitting is called convective - pressure splitting.
The transport flux represents the fluid flow of the fluid particles and the acoustic flux
=
( uU ) =
h uF i
x
x
x
(7.470)
u + |u| u |u|
Gt
Fi
=
h
+
x
x
2
2
Gt
=
hu+ F i +
h u F i
x
x
x
Gt+ Gt
Gt
=
+
x
x
x
where
u =
u |u|
2
=
hcF i
x
x
206
c + |c| c |c|
=
h
+
hc+ F i +
hc F i
Fi =
x
x
2
2
x
x
Ga
Ga+ Ga
=
+
x
x
x
Upwind diferencing, we get
a+
a
Ga+
Ga
Ga
j Gj1
j+1 Gj
=
+
x
x
x
a+
= hc F i =
Ga+ =
Similarly
G
Ga
dI
= hc F i =
Ga =
dI
dc
c + |c|
F
2
dccF
dI
dI
dc
c |c|
F
2
dccF
p
2 ()
p
u
p
2 2 ()
pu
p
p
+E
2
2 () 2
(7.471)
c Fi = h I + +
+ cu
Fi
G3 = h3 c F i = h I +
2
2
2
2
Z Z 0
Z Z
c 2 u2
c |c|
c 2 u2
+ cu
F =
dI
dc I + +
+ c u cF
G3 =
dI
I+ +
2
2
2
2
2
0
1
dc IcF +
dI
2
1
dcc F + u2
dI
2
dI
dc cF + u
dI
dcc2 F
K2
u K3
+
+ uK4
2
2
Z
Z 0
Z Z 0
I
2
K1 =
dI
dc IcF =
dI
dc Ic ec e I0
I0
0
Z
Z 0
I
2
I
c ec dc
Ie 0 dI
K1 =
I0 0
Z 0
Z 0
x
2 dx
c2
ex
K1 = I 0
ce
dc = I0
Z 0
I0 1
I
1
2
p 0
x ex dx = p
=
K1 = I 0
() 2
2 ()
G
3 = K1 +
p
3
K1 = p
RT = p
2 () 2( 1)
2 () 2( 1)
K2 =
dI
Z 0
K2 =
p
3
K1 = p
2 () 2( 1)
Z
Z 0
I
2
3
I
c3 ec dc
dc c F =
e 0 dI
I0 0
Z
0
1
x3 x2 dx
2
=
e
x3 ex dx
K2 = p
RT (1)
()
p
K2 = p
()
Z Z 0
Z 0
Z
I
I
0
K3 =
dI
dc cF =
c e
e dI
I0 0
0
Z 0
x
2 dx
ex
K3 =
Z 0
1
2
K3 =
x ex dx
1
K3 = p
= p
2
()
2 ()
c2
dc
208
dI
dc2 cF =
K4 =
K4 =
I0
p
2 ()
Z
Z 0
I
I
0
c2 e
e dI
0
Z 0 2
x x2 dx
Z 0
2
x2 ex dx
c2
dc
K4 = R T = p
1
p
1
p
3
1
1
K2 + u2 K3 + uK4 = p
p
u2 p
+p
G
3 = K1 +
2
2
2
2 () 2 ( 1) 2 ()
2 ()
p
1 2
3
u p
+1
G3 = pu p
2 () 2
2 () 2( 1)
3 + 2 2
p
1 2
G3 = p u p
u p
2( 1)
2 () 2
2 ()
p
1 2
+1
p
u p
2 () 2
2 () 2 ( 1)
1 2 p +1
u +
G3 = pu p
2( 1)
2 () 2
1 2 p 1
G3 = pu p
u +
+
2 1
2 () 2
p
p
1 2
u +
+
G3 = pu p
( 1) 2
2 () 2
G3 = pu p
+ E
2 () 2
G
3 = pu
(7.472)
PVU method is physically more meaningful than its predecessor, the KFVS method,
as no preferential rest frame is assumed.
It treats the uni-directional and multi-directional terms separately for up-winding.
No error functions and exponential terms are present. Therefore, it is faster than
the KFVS method, by approximately 3 times.
It is similar to other methods which separate convective and pressure fluxes, like
the AUSM, CUSP methods.
Bibliography
[1] Anderson, J.D., Modern Compressible Flows :
MacGraw-Hill, 1990.
[2] K.F. Riley, M.P. Hobson and S.J. Bence, Mathematical Methods for Physics and
Engineering, Cambridge University Press, 1998.
[3] J.D. Hoffmann, Numerical Methods for Scientists and Engineers, Marcel Dekker Inc.,
New York, 2001.
[4] W.G. Vincenti and C.H. Kruger, Introduction to Physical Gas Dynamics, John Wiley,
New York, 1965.
[5] M.N. Kogan, Rarefied Gas Dynamics, Plenum Press, 1965.
[6] T.I. Gombosi, Gaskinetic Theory, Cambridge University Press, 1994.
[7] P.L. Bhatnagar, E.P. Gross and M. Krook, A model for collision processes in gases. I.
Small amplitude processes in charged and neutral one-component systems, Physical
Review, 94, pp. 511-???, 1954.
[8] S. Jin and Z. Xin, The Relaxation Schemes for Systems of Conservation Laws in
Arbitrary Space Dimensions, Communications in Pure and Applied Mathematics,
vol. 48, pp. 235276, 1995.
[9] R. Natalini, A Discrete Kinetic Approximation of Entropy Solutions to Multidimensional Scalar Conservation Laws, Journal of Differential Equations, vol. 148, pp.
292317, 1999.
[10] D. Aregba-Driollet and R. Natalini, Discrete Kinetic Schemes for Multidimensional
Systems of Conservation Laws, SIAM Journal of Numerical Analysis, vol. 37, no. 6,
pp. 19732004, 2000.
[11] R. Natalini, Recent mathematical results on hyperbolic relaxation problems, Analysis of systems of conservation laws, Pitman Research Notes in Mathematics Series,
Longman, Harlow, 1998.
209
210
BIBLIOGRAPHY
[12] John D. Anderson, Computational Fluid Dynamics : The basics with applications,
McGraw-Hill, New York, 1995.
[13] P.D Lax, Weak solutions of nonlinear hyperbolic equations and their numerical computation, Communications in Pure and Applied Mathematics, 7, pp.159-193, 1954.
[14] P.D. Lax and B. Wendroff, Systems of conservation laws, Communications in Pure
and Applied Mathematics, 13, pp. 217-237, 1960.
[15] R.W. MacCormack, The effect of Viscosity in Hypervelocity Impact Cretaring, AIAA
Paper No. AIAA-69-0354.
[16] A. Jameson, W. Schmidt and E. Turkel, Numerical Solution of Euler Equations by
Finite Volume Methods Using Runge-Kutta Time Stepping Schemes, AIAA Paper
no. AIAA-81-1259.
[17] S.K. Godunov, Schemes, AIAA Paper no. AIAA-81-1259, A Difference Scheme for
Numerical Computation of Discontinuous Solutions of Hydrodynamic Equations,
Math. Sbornik, 47, pp. 271-306, 1959. English translation in U.S. Joint Publications
Research Service, JPRS 7226, 1969.
[18] P.L. Roe, Approximate Riemann Solvers, Parameter Vectors and Difference Schemes,
Journal of Computational Physics, 43, pp. 357-372, 1981.
[19] S. Osher and F. Solomon, Upwind Difference Schemes fo Hyperbolic Systems of
Equations, Mathematics of Computation, 38, pp. 339-374, 1982.
[20] R.H. Sanders and K.H. Prendergast, The Possible Relation of the 3-KILOPARSEC
Arm to Explosions in the Galactic Nucleus, Astrophysical Journal, Vol. 188, pp.
489-500, 1974.
[21] D. Pullin, Direct Simulation Methods for Compressible Inviscid Ideal Gas Flow,
Journal of Computational Physics, 34, 231, 1980.
[22] R.D. Rietz, One Dimentional Compressible Gas Dynamic Calculations Using the
Boltzmann Equation, Journal of Computational Physics, 42, 108, 1981.
[23] S.M. Deshpande, Kinetic Theory based New Upwind Methods for Inviscid Compressible Flows, AIAA Paper no. AIAA-1986-0275.
[24] S. Kaniel, A Kinetic Model for Compressible Flow Equations, Indiana University
Mathematical Journal, vol. 37, no. 3, pp. 537-563, 1988.
[25] B. Perthame, Boltzmann Type Schemes for Gas Dynamics and Entropy Property,
SIAM Journal of Numerical Analysis, 27, 6, 1405, 1991.
BIBLIOGRAPHY
211
[26] S.V. Raghurama Rao and S.M. Deshpande, Peculiar Veclocity based Upwind Method
for Inviscid Compressible Flows, Computational Fluid Dynamics Journal, 3, 4, 415,
1995.
[27] K.H. Prendergast and Kun Xu, Numerical Hydrodynamics from Gas-Kinetic Theory,
Journal of Computational Physics, 109, 53, 1993.
[28] F. Coquel and B. Perthame, Relaxation of energy and approximate Riemann solvers
for general pressure laws in fluid dynamics, SIAM Journal of Numerical Analysis, 35,
6, pp. 2223-2249, 1998.
[29] Meng Sing Liou and C.J. Steffen, A New Flux Splitting Scheme, Journal of Computational Physics, 107, pp.23-39, 1993.
[30] F. Coquel and Meng Sing Liou, Hybrid Upwind Splitting (HUS) by a field-by-field
decomposition, NASA TM-106843, Icomp-95-2, 1995.
[31] A. Jameson, Analysis and Design of Upwind Schemes for Gas Dynamics II : Artificial Diffusion and Discrete Shock Structure, International Journal of Computational
Fluid Dynamics, v, pp. 171-218, 1995.
[32] C. Hirsch, Numerical Computation of Internal and External Flows, Vol. 1: Fundamentals of Numerical Discretization, John Wiley & Sons, 1988.
[33] C. Hirsch, Numerical Computation of Internal and External Flows, Vol. 2: Computational Methods for Inviscid and Viscous Flows, John Wiley & Sons, 1990.
[34] R.D. Richtmyer and K.W. Morton, Difference Methods for Initial Value Problems,
2nd edition, John Wiley and Sons, New York, 1967.
[35] E.F. Toro, Riemann Solvers and Numerical Methods for Fluid Dynamics : A Practical
Introduction, 2nd Edition, Springer, 1999.
[36] Culbert B. Laney, Computational Gasdynamics, Cambridge University Press, 1998.
[37] S.M. Deshpande, Kinetic Flux Splitting Schemes, Computational Fluid Dynamics
Review 1995 : A state-of-the-art reference to the latest developments in CFD, (eds.)
M.M. Hafez and K. Oshima, John Wiley & Sons, Chechester, 1995.
[38] E. Godlewski and P.A. Raviart, Numerical Approximations of hyperbolic Systems of
Conservation Laws, Applied Mathematics Series 118, SpringerVerlag, 1996.
[39] Quirk, A contribution to the great Riemann solver debate, International Journal of
Numerical Methods in Fluids, vol. 18, pp. 555-574, 1994.
212
BIBLIOGRAPHY
[40] S. Jin, RungeKutta Methods for Hyperbolic Conservation Laws with Stiff Relaxation Terms, Journal of Computational Physics, vol. 122, pp. 5167, 1995.
[41] R.J. Leveque ad M. Pelanti, A Class of Approximate Riemann Solvers and Their
Relation to Relaxation Schemes, Journal of Computational Physics, 172, pp. 572-59.
2001.
[42] S. Balasubramanyam, A New GridFree Upwind Relaxation Scheme for Compressible
Flows, M.Sc.(Engg.) thesis, Department of Aerospace Engineering, Indian Institute
of Science, Bangalore, India, 2002.
[43] A.K. Ghosh and S.M. Deshpande, Least Squares Kinetic Upwind Method for Inviscid Compressible Flows, AIAA paper, 95-1735, 1995.
[44] S. Balasubramanyam and S.V. Raghurama Rao, A New Grid Free Relaxation Scheme
for Euler Equations, Fluid Mechanics Report No: 2001 FM 07, Dept. of Aerospace
Engg., IISc, Bangalore.
[45] S. Balasubramanyam and S.V. Raghurama Rao, A New Grid Free Relaxation Scheme
for Euler Equations, Proceedings of the Ninth Asian Congress of Fluid Mechanics,
May 27-31 2002, Isfahan, Iran.
[46] S. Balasubramanyam and S.V. Raghurama Rao, A New Grid Free Relaxation Scheme
for Conservation Laws, 2nd International Conference on Computational Fluid Dynamics, July 2002 , Sydney, Australia (accepted for presentation and the full paper
to be published by Springer).
[47] S.V. Raghurama Rao and Sachin Khosla, A New Unsplit Relaxation Scheme for
Hyperbolic Conservation Laws, Fluid Mechanics report, Department of Aerospace
Engineering, Indian Institute of Science, Bangalore, India, 2002.
[48] S.V. Raghuramarao and Sachin Khosla, An Unsplit Relaxation Scheme for Hyperbolic Conservation Laws, 2nd International Conference on Computational Fluid Dynamics, July 2002, Sydney, Australia (accepted for presentation and proceedings to
be published by Springer).
[49] M.V. Subba Rao and S.V. Raghurama Rao, Method of Interpolation with a Relaxation Approximation for Conservation Laws (MIRACL), in preparation.
[50] R. Leveque, Nonlinear Conservation Laws and Finite Volume Methods for Astrophysical Fluid Flow, in Computational Methods for Astrophysical Fluid Flow, R.
J. Leveque, D. Mihalas, E. Dorfi,and E. Mueller, 27th Saas-Fee Advanced Course
Lecture Notes, Edited by O. Steiner and A. Gautschy, Springer-Verlag, 1998.
BIBLIOGRAPHY
213
[51] G. Strang, On the Construction and Comparison of Difference Schemes, SIAM Journal of Numerical Analysis, No. 5, pp. 506-571, 1968.
[52] B. Manoj Kumar, S.V. Raghurama Rao R. Balasubramanian S.M. Deshpande, Kinetic Flux Vector Splitting for NavierStokes equatons based on ChapmanEnskog
distribution, 97 FM 9, Fluid Mechanics reports, Department of Aerospace Engineering, Indian Institute of Science, Bangalore, India, 1997.
[53] S.V. Raghurama Rao and K. Balakrishna, An Accurate Shock Capturing Algorithm
with a Relaxation System for Hyperbolic Conservation Laws, AIAA Paper No. AIAA2003-4145, 2003.
[54] J.C. Tannehil, D.A. Anderson and R.H. Pletcher, Computational Fluid Mechanics
and Heat Transfer, 2nd edition, Taylor & Francis, 1997.
[55] Dominic Denver John Chander, S.V. Raghurama Rao and S.M. Deshpande, A One
Point Shock Capturing Kinetic Scheme for Hyperbolic Conservation Laws, Fluid
Mechanics Report No. 2004 FM ??, Department of Aerospace Engineering, Indian
Institute of Science, Bangalore, India, 2004.
[56] Meng-Sing Liou and Steffen, A New Flux Splitting Method, Journal of Computational Physics, vol. , pp. , .
[57] J.L. Steger and F.F. Warming, Flux Vector Splitting of the Inviscid Gas Dynamics
Equations with Applications to Finite Difference Methods, Journal of Computational
Physics, Vol. 40, pp. 263-293, 1981.
[58] B. van Leer, Flux Vector Splitting for the Euler Equations, Lecture Notes in Physics,
vol. 170, pp. 507-512, 1982.
[59] G.D. van Albada, B. van Leer and J.W.W. Roberts, A Comparative Study of Computational Methods in Cosmic Gas Dynamics, Astronomy and Astrophysics, vol. 108,
1982.
[60] Jaw-Yen Yang, Jer-Wei Chang and I-Nan Tsai, A Kinetic Flux Splitting Method for
Gas Dynamics Based on Beam Scheme, AIAA Paper No. AIAA-97-2096, 1997.