You are on page 1of 120

Conservation laws Finite volume methods Upwind schemes References

Lecture 1
Fundamentals
Course Block-structured Adaptive Finite Volume Methods in C++

Ralf Deiterding
University of Southampton
Engineering and the Environment
Highfield Campus, Southampton SO17 1BJ, UK

E-mail: r.deiterding@soton.ac.uk

Fundamentals 1
Conservation laws Finite volume methods Upwind schemes References

Outline

Conservation laws
Mathematical background
Characteristic information
Weak and entropy solutions
Characteristic form of the Euler equations
Navier-Stokes equations

Fundamentals 2
Conservation laws Finite volume methods Upwind schemes References

Outline

Conservation laws
Mathematical background
Characteristic information
Weak and entropy solutions
Characteristic form of the Euler equations
Navier-Stokes equations

Finite volume methods


Basics of finite difference methods
Splitting methods, second derivatives

Fundamentals 2
Conservation laws Finite volume methods Upwind schemes References

Outline

Conservation laws
Mathematical background
Characteristic information
Weak and entropy solutions
Characteristic form of the Euler equations
Navier-Stokes equations

Finite volume methods


Basics of finite difference methods
Splitting methods, second derivatives

Upwind schemes
The linear Riemann problem
Flux-difference splitting
Flux-vector splitting

Fundamentals 2
Conservation laws Finite volume methods Upwind schemes References

Outline

Conservation laws
Mathematical background
Characteristic information
Weak and entropy solutions
Characteristic form of the Euler equations
Navier-Stokes equations

Finite volume methods


Basics of finite difference methods
Splitting methods, second derivatives

Upwind schemes
The linear Riemann problem
Flux-difference splitting
Flux-vector splitting

Fundamentals 3
Conservation laws Finite volume methods Upwind schemes References

Mathematical background

Hyperbolic Conservation Laws

d
∂ X ∂
q(x, t) + fn (q(x, t)) = 0 , D ⊂ {(x, t) ∈ Rd × R+
0} (1)
∂t n=1
∂xn

Fundamentals 4
Conservation laws Finite volume methods Upwind schemes References

Mathematical background

Hyperbolic Conservation Laws

d
∂ X ∂
q(x, t) + fn (q(x, t)) = 0 , D ⊂ {(x, t) ∈ Rd × R+
0} (1)
∂t n=1
∂xn

q = q(x, t) ∈ S ⊂ RM - vector of state, fn (q) ∈ C1 (S, RM ) - flux functions,

Fundamentals 4
Conservation laws Finite volume methods Upwind schemes References

Mathematical background

Hyperbolic Conservation Laws

d
∂ X ∂
q(x, t) + fn (q(x, t)) = s(q(x, t)) , D ⊂ {(x, t) ∈ Rd × R+
0} (1)
∂t n=1
∂xn

q = q(x, t) ∈ S ⊂ RM - vector of state, fn (q) ∈ C1 (S, RM ) - flux functions,


s(q) ∈ C1 (S, RM ) - source term

Fundamentals 4
Conservation laws Finite volume methods Upwind schemes References

Mathematical background

Hyperbolic Conservation Laws

d
∂ X ∂
q(x, t) + fn (q(x, t)) = s(q(x, t)) , D ⊂ {(x, t) ∈ Rd × R+
0} (1)
∂t n=1
∂xn

q = q(x, t) ∈ S ⊂ RM - vector of state, fn (q) ∈ C1 (S, RM ) - flux functions,


s(q) ∈ C1 (S, RM ) - source term
Definition (Hyperbolicity)
A(q, ν) = ν1 A1 (q) + · · · + νd Ad (q) with An (q) = ∂fn (q)/∂q has M real
eigenvalues λ1 (q, ν) ≤ ... ≤ λM (q, ν) and M linear independent right
eigenvectors rm (q, ν).

Fundamentals 4
Conservation laws Finite volume methods Upwind schemes References

Mathematical background

Hyperbolic Conservation Laws

d
∂ X ∂
q(x, t) + fn (q(x, t)) = s(q(x, t)) , D ⊂ {(x, t) ∈ Rd × R+
0} (1)
∂t n=1
∂xn

q = q(x, t) ∈ S ⊂ RM - vector of state, fn (q) ∈ C1 (S, RM ) - flux functions,


s(q) ∈ C1 (S, RM ) - source term
Definition (Hyperbolicity)
A(q, ν) = ν1 A1 (q) + · · · + νd Ad (q) with An (q) = ∂fn (q)/∂q has M real
eigenvalues λ1 (q, ν) ≤ ... ≤ λM (q, ν) and M linear independent right
eigenvectors rm (q, ν).

If fn (q) is nonlinear, classical solutions


q(x, t) ∈ C1 (D, S) do not generally exist, not
even for q0 (x) ∈ C1 (Rd , S) [Majda, 1984],
[Godlewski and Raviart, 1996],
[Kröner, 1997]

Example: Euler equations


Fundamentals 4
Conservation laws Finite volume methods Upwind schemes References

Characteristic information

Characteristic variables
Consider the first-order partial differential equation
∂q ∂q
+ A(q) =0 (2)
∂t ∂x

Fundamentals 5
Conservation laws Finite volume methods Upwind schemes References

Characteristic information

Characteristic variables
Consider the first-order partial differential equation
∂q ∂q
+ A(q) =0 (2)
∂t ∂x
For A = const. Eq. (2) is called linear, for A = A(q(x, t)) it is called
quasi-linear. For a hyperbolic system, A is diagonalizable as
R−1 A R = Λ

Fundamentals 5
Conservation laws Finite volume methods Upwind schemes References

Characteristic information

Characteristic variables
Consider the first-order partial differential equation
∂q ∂q
+ A(q) =0 (2)
∂t ∂x
For A = const. Eq. (2) is called linear, for A = A(q(x, t)) it is called
quasi-linear. For a hyperbolic system, A is diagonalizable as
R−1 A R = Λ

R is the matrix of right eigenvectors (column-wise)


R = ( r1 | · · · |rM )

Fundamentals 5
Conservation laws Finite volume methods Upwind schemes References

Characteristic information

Characteristic variables
Consider the first-order partial differential equation
∂q ∂q
+ A(q) =0 (2)
∂t ∂x
For A = const. Eq. (2) is called linear, for A = A(q(x, t)) it is called
quasi-linear. For a hyperbolic system, A is diagonalizable as
R−1 A R = Λ

R is the matrix of right eigenvectors (column-wise)


R = ( r1 | · · · |rM )

and Λ the diagonal matrix of eigenvalues


 
λ1 0 0
Λ =  0 ...
 
0 
0 0 λM

Fundamentals 5
Conservation laws Finite volume methods Upwind schemes References

Characteristic information

Characteristic variables - II
Multiplying (2) with R−1 gives
∂q ∂q
R−1 + R−1 A =0
∂t ∂x

Fundamentals 6
Conservation laws Finite volume methods Upwind schemes References

Characteristic information

Characteristic variables - II
Multiplying (2) with R−1 gives
∂q ∂q
R−1 + R−1 A =0
∂t ∂x
with R−1 dq = dv this becomes
∂v ∂v
+ R−1 AR =0
∂t ∂x
or
∂v ∂v
+Λ =0
∂t ∂x

Fundamentals 6
Conservation laws Finite volume methods Upwind schemes References

Characteristic information

Characteristic variables - II
Multiplying (2) with R−1 gives
∂q ∂q
R−1 + R−1 A =0
∂t ∂x
with R−1 dq = dv this becomes
∂v ∂v
+ R−1 AR =0
∂t ∂x
or
∂v ∂v
+Λ =0
∂t ∂x
which is just a set of decoupled independent advection equations for the
components, i.e.,
∂vm ∂vm
+ λm =0 for m = 1, . . . , M (3)
∂t ∂x

Fundamentals 6
Conservation laws Finite volume methods Upwind schemes References

Characteristic information

Characteristic variables - II
Multiplying (2) with R−1 gives
∂q ∂q
R−1 + R−1 A =0
∂t ∂x
with R−1 dq = dv this becomes
∂v ∂v
+ R−1 AR =0
∂t ∂x
or
∂v ∂v
+Λ =0
∂t ∂x
which is just a set of decoupled independent advection equations for the
components, i.e.,
∂vm ∂vm
+ λm =0 for m = 1, . . . , M (3)
∂t ∂x
(3) is a wave equation but note that in the general quasi-linear case the
eigenvalues can dependent on all vm , i.e. λm = λm (v1 , · · · , vM ) Nevertheless,
an analysis as for the wave equations shows
dx
vm = const. for = λm
dt
Fundamentals 6
Conservation laws Finite volume methods Upwind schemes References

Characteristic information

Wavefronts
The curves dx = λm dt are called wavefronts or characteristics, vm are the
characteristic variables.
The characteristics define how influence spreads in the x − t plane. A point in
the x − t plane is only influenced by points at earlier times in a finite domain of
dependence and influences only points in a finite range of influence.

Typical wave diagram for vector model problem.


Fundamentals 7
Conservation laws Finite volume methods Upwind schemes References

Weak and entropy solutions

Weak solutions

Integral form (Gauss’s theorem):


Z Z
q(x, t + ∆t) dx − q(x, t) dx
Ω Ω

d t+∆t
X Z Z t+∆t
Z Z
+ fn (q(o, t)) σn (o) do dt = s(q(x, t)) dx
n=1 t t
∂Ω Ω

Fundamentals 8
Conservation laws Finite volume methods Upwind schemes References

Weak and entropy solutions

Weak solutions

Integral form (Gauss’s theorem):


Z Z
q(x, t + ∆t) dx − q(x, t) dx
Ω Ω

d t+∆t
X Z Z t+∆t
Z Z
+ fn (q(o, t)) σn (o) do dt = s(q(x, t)) dx
n=1 t t
∂Ω Ω

Theorem (Weak solution)


d
q0 ∈ L∞ ∞
loc (R , S). q ∈ Lloc (D, S) is weak solution if q satisfies

Fundamentals 8
Conservation laws Finite volume methods Upwind schemes References

Weak and entropy solutions

Weak solutions

Integral form (Gauss’s theorem):


Z Z
q(x, t + ∆t) dx − q(x, t) dx
Ω Ω

d t+∆t
X Z Z t+∆t
Z Z
+ fn (q(o, t)) σn (o) do dt = s(q(x, t)) dx
n=1 t t
∂Ω Ω

Theorem (Weak solution)


d
q0 ∈ L∞ ∞
loc (R , S). q ∈ Lloc (D, S) is weak solution if q satisfies

Z∞ Z " d
# Z
∂ϕ X ∂ϕ
·q+ · fn (q) − ϕ · s(q) dx dt + ϕ(x, 0)·q0 (x) dx = 0
∂t n=1
∂xn
0 Rd Rd

for any test function ϕ ∈ C10 (D, S)

Fundamentals 8
Conservation laws Finite volume methods Upwind schemes References

Weak and entropy solutions

Rankine-Hugoniot relations
Consider the 1d version of (1), s(q) = 0 integrated over interval [x, x + dx] × [t, t + dt]
x+dx
Z x+dx
Z t+dt
Z
q(x 0 , t + dt)dx 0 − q(x 0 , t)dx 0 = − f(q(x + dx, t 0 )) − f (q(x, t 0 )) dt 0
 

x x t

Fundamentals 9
Conservation laws Finite volume methods Upwind schemes References

Weak and entropy solutions

Rankine-Hugoniot relations
Consider the 1d version of (1), s(q) = 0 integrated over interval [x, x + dx] × [t, t + dt]
x+dx
Z x+dx
Z t+dt
Z
q(x 0 , t + dt)dx 0 − q(x 0 , t)dx 0 = − f(q(x + dx, t 0 )) − f (q(x, t 0 )) dt 0
 

x x t
Assume a discontinuity traveling with
speed
dx
S=
dt

Fundamentals 9
Conservation laws Finite volume methods Upwind schemes References

Weak and entropy solutions

Rankine-Hugoniot relations
Consider the 1d version of (1), s(q) = 0 integrated over interval [x, x + dx] × [t, t + dt]
x+dx
Z x+dx
Z t+dt
Z
q(x 0 , t + dt)dx 0 − q(x 0 , t)dx 0 = − f(q(x + dx, t 0 )) − f (q(x, t 0 )) dt 0
 

x x t
Assume a discontinuity traveling with
speed
dx
S=
dt

State on the left of discontinuity is index


with L, on the right with R Inserting the
states into (8) gives

(qL − qR ) dx = − [f(qR ) − f(qL )] dt

Fundamentals 9
Conservation laws Finite volume methods Upwind schemes References

Weak and entropy solutions

Rankine-Hugoniot relations
Consider the 1d version of (1), s(q) = 0 integrated over interval [x, x + dx] × [t, t + dt]
x+dx
Z x+dx
Z t+dt
Z
q(x 0 , t + dt)dx 0 − q(x 0 , t)dx 0 = − f(q(x + dx, t 0 )) − f (q(x, t 0 )) dt 0
 

x x t
Assume a discontinuity traveling with
speed
dx
S=
dt

State on the left of discontinuity is index


with L, on the right with R Inserting the
states into (8) gives

(qL − qR ) dx = − [f(qR ) − f(qL )] dt

Or using the above speed definition


S(qR − qL ) = f(qR ) − f(qL )

Fundamentals 9
Conservation laws Finite volume methods Upwind schemes References

Weak and entropy solutions

Rankine-Hugoniot relations
Consider the 1d version of (1), s(q) = 0 integrated over interval [x, x + dx] × [t, t + dt]
x+dx
Z x+dx
Z t+dt
Z
q(x 0 , t + dt)dx 0 − q(x 0 , t)dx 0 = − f(q(x + dx, t 0 )) − f (q(x, t 0 )) dt 0
 

x x t
Assume a discontinuity traveling with
speed
dx
S=
dt

State on the left of discontinuity is index


with L, on the right with R Inserting the
states into (8) gives

(qL − qR ) dx = − [f(qR ) − f(qL )] dt

Or using the above speed definition


S(qR − qL ) = f(qR ) − f(qL )

This is called Rankine-Hugoniot jump relation. Note the form f(qR ) = f(qL ) for S = 0
from which, for instance, the shock relations for Euler equations are derived.
Fundamentals 9
Conservation laws Finite volume methods Upwind schemes References

Weak and entropy solutions

Entropy solutions
Select physical weak solution as lim qε = q almost everywhere in D of
ε→0

d d
∂qε X ∂fn (qε ) X ∂ 2 qε
+ −ε 2
= s(qε ) , x ∈ Rd , t > 0
∂t n=1
∂xn
n=1
∂x n

Fundamentals 10
Conservation laws Finite volume methods Upwind schemes References

Weak and entropy solutions

Entropy solutions
Select physical weak solution as lim qε = q almost everywhere in D of
ε→0

d d
∂qε X ∂fn (qε ) X ∂ 2 qε
+ −ε 2
= s(qε ) , x ∈ Rd , t > 0
∂t n=1
∂xn
n=1
∂x n

Theorem (Entropy condition)


Assume existence of entropy η ∈ C2 (S, R) and entropy fluxes ψn ∈ C1 (S, R)
that satisfy

Fundamentals 10
Conservation laws Finite volume methods Upwind schemes References

Weak and entropy solutions

Entropy solutions
Select physical weak solution as lim qε = q almost everywhere in D of
ε→0

d d
∂qε X ∂fn (qε ) X ∂ 2 qε
+ −ε 2
= s(qε ) , x ∈ Rd , t > 0
∂t n=1
∂xn
n=1
∂x n

Theorem (Entropy condition)


Assume existence of entropy η ∈ C2 (S, R) and entropy fluxes ψn ∈ C1 (S, R)
that satisfy
∂η(q) T ∂fn (q) ∂ψn (q) T
· = , n = 1, . . . , d
∂q ∂q ∂q

Fundamentals 10
Conservation laws Finite volume methods Upwind schemes References

Weak and entropy solutions

Entropy solutions
Select physical weak solution as lim qε = q almost everywhere in D of
ε→0

d d
∂qε X ∂fn (qε ) X ∂ 2 qε
+ −ε 2
= s(qε ) , x ∈ Rd , t > 0
∂t n=1
∂xn
n=1
∂x n

Theorem (Entropy condition)


Assume existence of entropy η ∈ C2 (S, R) and entropy fluxes ψn ∈ C1 (S, R)
that satisfy
∂η(q) T ∂fn (q) ∂ψn (q) T
· = , n = 1, . . . , d
∂q ∂q ∂q
then lim qε = q almost everywhere in D is weak solution and satisfies
ε→0

d
∂η(q) X ∂ψn (q) ∂η(q) T
+ ≤ · s(q)
∂t n=1
∂xn ∂q

in the sense of distributions. Proof: [Godlewski and Raviart, 1996]

Fundamentals 10
Conservation laws Finite volume methods Upwind schemes References

Weak and entropy solutions

Entropy solutions II
Definition (Entropy solution)
Weak solution q is called an entropy solution if q satisfies

Fundamentals 11
Conservation laws Finite volume methods Upwind schemes References

Weak and entropy solutions

Entropy solutions II
Definition (Entropy solution)
Weak solution q is called an entropy solution if q satisfies
Z∞Z " d
#
∂η(q) T
Z
∂ϕ X ∂ϕ
η(q) + ψn (q) − ϕ · s(q) dx dt + ϕ(x, 0) η(q0 (x)) dx ≥ 0
∂t n=1
∂xn ∂q
0 Rd Rd

for all entropy functions η(q) and all test functions ϕ ∈ C10 (D, R+
0 ), ϕ ≥ 0

Fundamentals 11
Conservation laws Finite volume methods Upwind schemes References

Weak and entropy solutions

Entropy solutions II
Definition (Entropy solution)
Weak solution q is called an entropy solution if q satisfies
Z∞Z " d
#
∂η(q) T
Z
∂ϕ X ∂ϕ
η(q) + ψn (q) − ϕ · s(q) dx dt + ϕ(x, 0) η(q0 (x)) dx ≥ 0
∂t n=1
∂xn ∂q
0 Rd Rd

for all entropy functions η(q) and all test functions ϕ ∈ C10 (D, R+
0 ), ϕ ≥ 0

Theorem (Jump conditions)


An entropy solution q is a classical solution q ∈ C1 (D,S) almost everywhere and
satisfies the Rankine-Hugoniot (RH) jump condition
d
X
(q+ − q− ) σt + fn (q+ ) − fn (q− ) σn = 0


n=1

Fundamentals 11
Conservation laws Finite volume methods Upwind schemes References

Weak and entropy solutions

Entropy solutions II
Definition (Entropy solution)
Weak solution q is called an entropy solution if q satisfies
Z∞Z " d
#
∂η(q) T
Z
∂ϕ X ∂ϕ
η(q) + ψn (q) − ϕ · s(q) dx dt + ϕ(x, 0) η(q0 (x)) dx ≥ 0
∂t n=1
∂xn ∂q
0 Rd Rd

for all entropy functions η(q) and all test functions ϕ ∈ C10 (D, R+
0 ), ϕ ≥ 0

Theorem (Jump conditions)


An entropy solution q is a classical solution q ∈ C1 (D,S) almost everywhere and
satisfies the Rankine-Hugoniot (RH) jump condition
d
X
(q+ − q− ) σt + fn (q+ ) − fn (q− ) σn = 0


n=1

and the jump inequality


d
X
(η(q+ ) − η(q− )) σt + ψn (q+ ) − ψn (q− ) σn ≤ 0


n=1

along discontinuities. Proof: [Godlewski and Raviart, 1996]


Fundamentals 11
Conservation laws Finite volume methods Upwind schemes References

Characteristic form of the Euler equations

Euler equations

∂ρ ∂ 
+ ρun = 0
∂t ∂xn
∂  ∂ 
ρuk + ρuk un + δkn p = 0 , k = 1, . . . , d
∂t ∂xn
∂  ∂ 
ρE + un (ρE + p) = 0
∂t ∂xn

Fundamentals 12
Conservation laws Finite volume methods Upwind schemes References

Characteristic form of the Euler equations

Euler equations

∂ρ ∂ 
+ ρun = 0
∂t ∂xn
∂  ∂ 
ρuk + ρuk un + δkn p = 0 , k = 1, . . . , d
∂t ∂xn
∂  ∂ 
ρE + un (ρE + p) = 0
∂t ∂xn
with polytrope gas equation of state
1 
p = (γ − 1) ρE − ρun un
2

Fundamentals 12
Conservation laws Finite volume methods Upwind schemes References

Characteristic form of the Euler equations

Euler equations

∂ρ ∂ 
+ ρun = 0
∂t ∂xn
∂  ∂ 
ρuk + ρuk un + δkn p = 0 , k = 1, . . . , d
∂t ∂xn
∂  ∂ 
ρE + un (ρE + p) = 0
∂t ∂xn
with polytrope gas equation of state
1 
p = (γ − 1) ρE − ρun un
2
have structure
∂t q(x, t) + ∇ · f(q(x, t)) = 0

Fundamentals 12
Conservation laws Finite volume methods Upwind schemes References

Characteristic form of the Euler equations

Characteristic form of the Euler equations


The Jacobian can be written in different forms, using
p p 1 2 a2 1
a2 = γ , h=e+ , H =h+ u ⇒ H= + u2
ρ ρ 2 γ−1 2
For
0 1 0
 
γ−3 2
u (3 − γ)u γ−1 
 
A=

2 
 1 
−uH + (γ − 1) u 3 H − (γ − 1) u 2 γu
2

Fundamentals 13
Conservation laws Finite volume methods Upwind schemes References

Characteristic form of the Euler equations

Characteristic form of the Euler equations


The Jacobian can be written in different forms, using
p p 1 2 a2 1
a2 = γ , h=e+ , H =h+ u ⇒ H= + u2
ρ ρ 2 γ−1 2
For
0 1 0
 
γ−3 2
u (3 − γ)u γ−1 
 
A=

2 
 1 
−uH + (γ − 1) u 3 H − (γ − 1) u 2 γu
2
The matrices  
1 1 1
R= u−a u u+a 
1 2
H − ua 2
u H + ua
 1
(γ − 1)u 2 + ua (1 − γ) u − a γ−1

2
1 
R−1 2a2 − (γ − 1)u 2

= 2 2(γ − 1) u 2(1 − γ) 
2a  
1
2
(γ − 1)u 2 − ua (1 − γ) u + a γ−1
diagonalize A as

Fundamentals 13
Conservation laws Finite volume methods Upwind schemes References

Characteristic form of the Euler equations

Characteristic form of the Euler equations - II


 
u−a 0 0
−1
R AR = Λ =  0 u 0 
0 0 u+a

Fundamentals 14
Conservation laws Finite volume methods Upwind schemes References

Characteristic form of the Euler equations

Characteristic form of the Euler equations - II


 
u−a 0 0
−1
R AR = Λ =  0 u 0 
0 0 u+a
The transformation R−1 dq = R−1 (dρ, d (ρu) , d (ρE ))T into characteristic
variables therefore leads to
∂v− ∂v−
+ (u − a) =0
∂t ∂x
∂v0 ∂v0
+u =0
∂t ∂x
+
∂v ∂v+
+ (u + a) =0
∂t ∂x

Fundamentals 14
Conservation laws Finite volume methods Upwind schemes References

Characteristic form of the Euler equations

Characteristic form of the Euler equations - II


 
u−a 0 0
−1
R AR = Λ =  0 u 0 
0 0 u+a
The transformation R−1 dq = R−1 (dρ, d (ρu) , d (ρE ))T into characteristic
variables therefore leads to
∂v− ∂v−
+ (u − a) =0
∂t ∂x
∂v0 ∂v0
+u =0
∂t ∂x
+
∂v ∂v+
+ (u + a) =0
∂t ∂x
with
dp
dv − = du − = 0 for dx = (u − a)dt
ρa
dp
dv0 = dρ − 2 = 0 for dx = u dt
a The crossing of characteristics
+ dp causes a shock wave.
dv = du + = 0 for dx = (u + a)dt
ρa
Fundamentals 14
Conservation laws Finite volume methods Upwind schemes References

Characteristic form of the Euler equations

Rarefaction and shock waves in the x − t plane


Consider the two enclosing characteristics b1 (t) ≤ x ≤ y ≤ b2 (t)

Fundamentals 15
Conservation laws Finite volume methods Upwind schemes References

Characteristic form of the Euler equations

Rarefaction and shock waves in the x − t plane


Consider the two enclosing characteristics b1 (t) ≤ x ≤ y ≤ b2 (t)

Rarefaction:

u(x, t)±a(x, t) ≤ u(y , t)±a(y , t)

Fundamentals 15
Conservation laws Finite volume methods Upwind schemes References

Characteristic form of the Euler equations

Rarefaction and shock waves in the x − t plane


Consider the two enclosing characteristics b1 (t) ≤ x ≤ y ≤ b2 (t)

Shocks:

Rarefaction: u(x, t)±a(x, t) ≥ u(y , t)±a(y , t)

which gives for the shock speed


u(x, t)±a(x, t) ≤ u(y , t)±a(y , t)
uL ± aL ≥ S ≥ uR ± aR

Fundamentals 15
Conservation laws Finite volume methods Upwind schemes References

Navier-Stokes equations

Navier-Stokes equations

∂ρ ∂ 
+ ρun = 0
∂t ∂xn
∂  ∂ 
ρuk + k = 1, . . . , d
ρuk un + δkn p − τkn = 0 ,
∂t ∂xn
∂  ∂ 
ρE + un (ρE + p) + qn − τnj uj = 0
∂t ∂xn

Fundamentals 16
Conservation laws Finite volume methods Upwind schemes References

Navier-Stokes equations

Navier-Stokes equations

∂ρ ∂ 
+ ρun = 0
∂t ∂xn
∂  ∂ 
ρuk + k = 1, . . . , d
ρuk un + δkn p − τkn = 0 ,
∂t ∂xn
∂  ∂ 
ρE + un (ρE + p) + qn − τnj uj = 0
∂t ∂xn
with stress tensor
∂un ∂uk  2 ∂uj
τkn = µ + − µ δkn
∂xk ∂xn 3 ∂xj
and heat conduction
∂T
qn = −λ
∂xn

Fundamentals 16
Conservation laws Finite volume methods Upwind schemes References

Navier-Stokes equations

Navier-Stokes equations

∂ρ ∂ 
+ ρun = 0
∂t ∂xn
∂  ∂ 
ρuk + k = 1, . . . , d
ρuk un + δkn p − τkn = 0 ,
∂t ∂xn
∂  ∂ 
ρE + un (ρE + p) + qn − τnj uj = 0
∂t ∂xn
with stress tensor
∂un ∂uk  2 ∂uj
τkn = µ + − µ δkn
∂xk ∂xn 3 ∂xj
and heat conduction
∂T
qn = −λ
∂xn
have structure

∂t q(x, t) + ∇ · f(q(x, t)) + ∇ · h(q(x, t), ∇q(x, t)) = 0

Fundamentals 16
Conservation laws Finite volume methods Upwind schemes References

Navier-Stokes equations

Navier-Stokes equations

∂ρ ∂ 
+ ρun = 0
∂t ∂xn
∂  ∂ 
ρuk + k = 1, . . . , d
ρuk un + δkn p − τkn = 0 ,
∂t ∂xn
∂  ∂ 
ρE + un (ρE + p) + qn − τnj uj = 0
∂t ∂xn
with stress tensor
∂un ∂uk  2 ∂uj
τkn = µ + − µ δkn
∂xk ∂xn 3 ∂xj
and heat conduction
∂T
qn = −λ
∂xn
have structure

∂t q(x, t) + ∇ · f(q(x, t)) + ∇ · h(q(x, t), ∇q(x, t)) = 0

Type can be either hyperbolic or parabolic


Fundamentals 16
Conservation laws Finite volume methods Upwind schemes References

Navier-Stokes equations

Navier-Stokes equations for multiple species


For multiple species with chemical reaction, the Navier-Stokes equations would
be extended to
∂ρi ∂
+ (ρi un + ρνin ) = Wi ω̇i , i = 1, . . . , N
∂t ∂xn
∂ ∂
(ρuk ) + (ρuk un + δkn p − τkn ) = 0 , k = 1, . . . , d
∂t ∂xn
∂ ∂ X
(ρE ) + (un (ρE + p) + qn + ρ hj νjn − τnj uj ) = 0
∂t ∂xn j
with diffusivities
∂Yi
νin = Di
∂xn
of species i into the mixture (note difference to binary diffusivities).

Fundamentals 17
Conservation laws Finite volume methods Upwind schemes References

Navier-Stokes equations

Navier-Stokes equations for multiple species


For multiple species with chemical reaction, the Navier-Stokes equations would
be extended to
∂ρi ∂
+ (ρi un + ρνin ) = Wi ω̇i , i = 1, . . . , N
∂t ∂xn
∂ ∂
(ρuk ) + (ρuk un + δkn p − τkn ) = 0 , k = 1, . . . , d
∂t ∂xn
∂ ∂ X
(ρE ) + (un (ρE + p) + qn + ρ hj νjn − τnj uj ) = 0
∂t ∂xn j
with diffusivities
∂Yi
νin = Di
∂xn
of species i into the mixture (note difference to binary diffusivities). The
equation of state X
p= ρi R i T
i
still contains the temperature, which complicates the analysis.

Fundamentals 17
Conservation laws Finite volume methods Upwind schemes References

Navier-Stokes equations

Navier-Stokes equations for multiple species


For multiple species with chemical reaction, the Navier-Stokes equations would
be extended to
∂ρi ∂
+ (ρi un + ρνin ) = Wi ω̇i , i = 1, . . . , N
∂t ∂xn
∂ ∂
(ρuk ) + (ρuk un + δkn p − τkn ) = 0 , k = 1, . . . , d
∂t ∂xn
∂ ∂ X
(ρE ) + (un (ρE + p) + qn + ρ hj νjn − τnj uj ) = 0
∂t ∂xn j
with diffusivities
∂Yi
νin = Di
∂xn
of species i into the mixture (note difference to binary diffusivities). The
equation of state X
p= ρi R i T
i
still contains the temperature, which complicates the analysis. The structure is
∂t q(x, t) + ∇ · f(q(x, t)) + ∇ · h(q(x, t), ∇q(x, t)) = s(q(x, t))

Fundamentals 17
Conservation laws Finite volume methods Upwind schemes References

Outline

Conservation laws
Mathematical background
Characteristic information
Weak and entropy solutions
Characteristic form of the Euler equations
Navier-Stokes equations

Finite volume methods


Basics of finite difference methods
Splitting methods, second derivatives

Upwind schemes
The linear Riemann problem
Flux-difference splitting
Flux-vector splitting

Fundamentals 18
Conservation laws Finite volume methods Upwind schemes References

Basics of finite difference methods

Derivation
Assume ∂t q + ∂x f(q) + ∂x h(q(·, ∂x q)) = s(q)

Fundamentals 19
Conservation laws Finite volume methods Upwind schemes References

Basics of finite difference methods

Derivation
Assume ∂t q + ∂x f(q) + ∂x h(q(·, ∂x q)) = s(q)
Time discretization tn = n∆t, discrete volumes
Ij = [xj − 12 ∆x, xj + 21 ∆x[=: [xj−1/2 , xj+1/2 [

Fundamentals 19
Conservation laws Finite volume methods Upwind schemes References

Basics of finite difference methods

Derivation
Assume ∂t q + ∂x f(q) + ∂x h(q(·, ∂x q)) = s(q)
Time discretization tn = n∆t, discrete volumes
Ij = [xj − 12 ∆x, xj + 21 ∆x[=: [xj−1/2 , xj+1/2 [
1 1
Z Z
Using approximations Qj (t) ≈ q(x, t) dx, s(Qj (t)) ≈ s(q(x, t)) dx
|Ij | |Ij |
Ij Ij
and numerical fluxes
 
F Qj (t), Qj+1 (t) ≈ f(q(xj+1/2 , t)), H Qj (t), Qj+1 (t) ≈ h(q(xj+1/2 , t), ∇q(xj+1/2 , t))

Fundamentals 19
Conservation laws Finite volume methods Upwind schemes References

Basics of finite difference methods

Derivation
Assume ∂t q + ∂x f(q) + ∂x h(q(·, ∂x q)) = s(q)
Time discretization tn = n∆t, discrete volumes
Ij = [xj − 12 ∆x, xj + 21 ∆x[=: [xj−1/2 , xj+1/2 [
1 1
Z Z
Using approximations Qj (t) ≈ q(x, t) dx, s(Qj (t)) ≈ s(q(x, t)) dx
|Ij | |Ij |
Ij Ij
and numerical fluxes
 
F Qj (t), Qj+1 (t) ≈ f(q(xj+1/2 , t)), H Qj (t), Qj+1 (t) ≈ h(q(xj+1/2 , t), ∇q(xj+1/2 , t))
yields after integration (Gauss theorem)
tn+1
Z
1
Qj (tn+1 ) = Qj (tn ) − [F (Qj (t), Qj+1 (t)) − F (Qj−1 (t), Qj (t))] dt−
∆x
tn
tn+1 tn+1
Z Z
1
[H (Qj (t), Qj+1 (t)) − H (Qj−1 (t), Qj (t))] dt + s(Qj (t)) dt
∆x
tn tn

Fundamentals 19
Conservation laws Finite volume methods Upwind schemes References

Basics of finite difference methods

Derivation
Assume ∂t q + ∂x f(q) + ∂x h(q(·, ∂x q)) = s(q)
Time discretization tn = n∆t, discrete volumes
Ij = [xj − 12 ∆x, xj + 21 ∆x[=: [xj−1/2 , xj+1/2 [
1 1
Z Z
Using approximations Qj (t) ≈ q(x, t) dx, s(Qj (t)) ≈ s(q(x, t)) dx
|Ij | |Ij |
Ij Ij
and numerical fluxes
 
F Qj (t), Qj+1 (t) ≈ f(q(xj+1/2 , t)), H Qj (t), Qj+1 (t) ≈ h(q(xj+1/2 , t), ∇q(xj+1/2 , t))
yields after integration (Gauss theorem)
tn+1
Z
1
Qj (tn+1 ) = Qj (tn ) − [F (Qj (t), Qj+1 (t)) − F (Qj−1 (t), Qj (t))] dt−
∆x
tn
tn+1 tn+1
Z Z
1
[H (Qj (t), Qj+1 (t)) − H (Qj−1 (t), Qj (t))] dt + s(Qj (t)) dt
∆x
tn tn

For instance:
n+1 n ∆t h  n n  
n n
i
Qj = Qj − F Qj , Qj+1 − F Qj−1 , Qj −
∆x
∆t h  n n  
n n
i
n
H Qj , Qj+1 − H Qj−1 , Qj + ∆ts(Qj ) dt
∆x
Fundamentals 19
Conservation laws Finite volume methods Upwind schemes References

Basics of finite difference methods

Some classical definitions


(2s + 1)-point difference scheme of the form

Qn+1
j = H(∆t) (Qnj−s , . . . , Qnj+s )

Fundamentals 20
Conservation laws Finite volume methods Upwind schemes References

Basics of finite difference methods

Some classical definitions


(2s + 1)-point difference scheme of the form

Qn+1
j = H(∆t) (Qnj−s , . . . , Qnj+s )

Definition (Stability)
For each time τ there is a constant CS and a value n0 ∈ N such that
kH(∆t) (Qn )k ≤ CS for all n∆t ≤ τ , n < n0

Fundamentals 20
Conservation laws Finite volume methods Upwind schemes References

Basics of finite difference methods

Some classical definitions


(2s + 1)-point difference scheme of the form

Qn+1
j = H(∆t) (Qnj−s , . . . , Qnj+s )

Definition (Stability)
For each time τ there is a constant CS and a value n0 ∈ N such that
kH(∆t) (Qn )k ≤ CS for all n∆t ≤ τ , n < n0

Definition (Consistency)
If the local truncation error
1 h i
L(∆t) (x, t) := q(x, t + ∆t) − H(∆t) (q(·, t))
∆t
satisfies kL(∆t) (·, t)k → 0 as ∆t → 0

Fundamentals 20
Conservation laws Finite volume methods Upwind schemes References

Basics of finite difference methods

Some classical definitions


(2s + 1)-point difference scheme of the form

Qn+1
j = H(∆t) (Qnj−s , . . . , Qnj+s )

Definition (Stability)
For each time τ there is a constant CS and a value n0 ∈ N such that
kH(∆t) (Qn )k ≤ CS for all n∆t ≤ τ , n < n0

Definition (Consistency)
If the local truncation error
1 h i
L(∆t) (x, t) := q(x, t + ∆t) − H(∆t) (q(·, t))
∆t
satisfies kL(∆t) (·, t)k → 0 as ∆t → 0

Definition (Convergence)
If the global error E (∆t) (x, t) := Q(x, t) − q(x, t) satisfies kE (∆t) (·, t)k → 0 as
∆t → 0 for all admissible initial data q0 (x)

Fundamentals 20
Conservation laws Finite volume methods Upwind schemes References

Basics of finite difference methods

Some classical definitions II


Definition (Order of accuracy)
H(·) is accurate of order o if for all sufficiently smooth initial data q0 (x), there
is a constant CL , such that the local truncation error satisfies
kL(∆t) (·, t)k ≤ CL ∆t o for all ∆t < ∆t0 , t ≤ τ

Fundamentals 21
Conservation laws Finite volume methods Upwind schemes References

Basics of finite difference methods

Some classical definitions II


Definition (Order of accuracy)
H(·) is accurate of order o if for all sufficiently smooth initial data q0 (x), there
is a constant CL , such that the local truncation error satisfies
kL(∆t) (·, t)k ≤ CL ∆t o for all ∆t < ∆t0 , t ≤ τ

Definition (Conservative form)


If H(·) can be written in the form

∆t
Qn+1 = Qnj − F(Qnj−s+1 , . . . , Qnj+s ) − F(Qnj−s , . . . , Qnj+s−1 )

j
∆x

Fundamentals 21
Conservation laws Finite volume methods Upwind schemes References

Basics of finite difference methods

Some classical definitions II


Definition (Order of accuracy)
H(·) is accurate of order o if for all sufficiently smooth initial data q0 (x), there
is a constant CL , such that the local truncation error satisfies
kL(∆t) (·, t)k ≤ CL ∆t o for all ∆t < ∆t0 , t ≤ τ

Definition (Conservative form)


If H(·) can be written in the form

∆t
Qn+1 = Qnj − F(Qnj−s+1 , . . . , Qnj+s ) − F(Qnj−s , . . . , Qnj+s−1 )

j
∆x

A conservative scheme satisfies


X X
Qn+1
j = Qnj
j ∈Z j ∈Z

Fundamentals 21
Conservation laws Finite volume methods Upwind schemes References

Basics of finite difference methods

Some classical definitions II


Definition (Order of accuracy)
H(·) is accurate of order o if for all sufficiently smooth initial data q0 (x), there
is a constant CL , such that the local truncation error satisfies
kL(∆t) (·, t)k ≤ CL ∆t o for all ∆t < ∆t0 , t ≤ τ

Definition (Conservative form)


If H(·) can be written in the form

∆t
Qn+1 = Qnj − F(Qnj−s+1 , . . . , Qnj+s ) − F(Qnj−s , . . . , Qnj+s−1 )

j
∆x

A conservative scheme satisfies


X X
Qn+1
j = Qnj
j ∈Z j ∈Z

Definition (Consistency of a conservative method)


If the numerical flux satisfies F(q, . . . , q) = f(q) for all q ∈ S
Fundamentals 21
Conservation laws Finite volume methods Upwind schemes References

Splitting methods, second derivatives

Splitting methods

Solve homogeneous PDE and ODE successively!


∆t
H(∆t) : ∂t q + ∇ · f(q) = 0 , IC: Q(tm ) =⇒ Q̃
∆t
S (∆t) : ∂t q = s(q) , IC: Q̃ =⇒ Q(tm + ∆t)

Fundamentals 22
Conservation laws Finite volume methods Upwind schemes References

Splitting methods, second derivatives

Splitting methods

Solve homogeneous PDE and ODE successively!


∆t
H(∆t) : ∂t q + ∇ · f(q) = 0 , IC: Q(tm ) =⇒ Q̃
∆t
S (∆t) : ∂t q = s(q) , IC: Q̃ =⇒ Q(tm + ∆t)

1st-order Godunov splitting: Q(tm + ∆t) = S (∆t) H(∆t) (Q(tm )),

Fundamentals 22
Conservation laws Finite volume methods Upwind schemes References

Splitting methods, second derivatives

Splitting methods

Solve homogeneous PDE and ODE successively!


∆t
H(∆t) : ∂t q + ∇ · f(q) = 0 , IC: Q(tm ) =⇒ Q̃
∆t
S (∆t) : ∂t q = s(q) , IC: Q̃ =⇒ Q(tm + ∆t)

1st-order Godunov splitting: Q(tm + ∆t) = S (∆t) H(∆t) (Q(tm )),


1 1
2nd-order Strang splitting : Q(tm + ∆t) = S ( 2 ∆t) H(∆t) S ( 2 ∆t) (Q(tm ))

Fundamentals 22
Conservation laws Finite volume methods Upwind schemes References

Splitting methods, second derivatives

Splitting methods

Solve homogeneous PDE and ODE successively!


∆t
H(∆t) : ∂t q + ∇ · f(q) = 0 , IC: Q(tm ) =⇒ Q̃
∆t
S (∆t) : ∂t q = s(q) , IC: Q̃ =⇒ Q(tm + ∆t)

1st-order Godunov splitting: Q(tm + ∆t) = S (∆t) H(∆t) (Q(tm )),


1 1
2nd-order Strang splitting : Q(tm + ∆t) = S ( 2 ∆t) H(∆t) S ( 2 ∆t) (Q(tm ))

1st-order dimensional splitting for H(·) :


(∆t) ∆t
X1 : ∂t q + ∂x1 f1 (q) = 0 , IC: Q(tm ) =⇒ Q̃1/2
(∆t) ∆t
X2 : ∂t q + ∂x2 f2 (q) = 0 , IC: Q̃1/2 =⇒ Q̃
[Toro, 1999]

Fundamentals 22
Conservation laws Finite volume methods Upwind schemes References

Splitting methods, second derivatives

Conservative scheme for diffusion equation


Consider ∂t q − c∆q = 0 with c ∈ R+

Fundamentals 23
Conservation laws Finite volume methods Upwind schemes References

Splitting methods, second derivatives

Conservative scheme for diffusion equation


Consider ∂t q − c∆q = 0 with c ∈ R+ , which is readily discretized as
n+1 n ∆t  n n n
 ∆t  n n n

Qjk = Qjk +c 2
Qj+1,k − 2Qjk + Qj−1,k +c 2
Qj,k+1 − 2Qjk + Qj,k−1
∆x1 ∆x2

Fundamentals 23
Conservation laws Finite volume methods Upwind schemes References

Splitting methods, second derivatives

Conservative scheme for diffusion equation


Consider ∂t q − c∆q = 0 with c ∈ R+ , which is readily discretized as
n+1 n ∆t  n n n
 ∆t  n n n

Qjk = Qjk +c 2
Qj+1,k − 2Qjk + Qj−1,k +c 2
Qj,k+1 − 2Qjk + Qj,k−1
∆x1 ∆x2
or conservatively
∆t ∆t
   
n+1 n 1 1 2 2
Qjk = Qjk +c Hj+ 1 ,k − Hj− 1 ,k +c Hj,k+ 1 − Hj,k− 1
∆x1 2 2 ∆x2 2 2

Fundamentals 23
Conservation laws Finite volume methods Upwind schemes References

Splitting methods, second derivatives

Conservative scheme for diffusion equation


Consider ∂t q − c∆q = 0 with c ∈ R+ , which is readily discretized as
n+1 n ∆t  n n n
 ∆t  n n n

Qjk = Qjk +c 2
Qj+1,k − 2Qjk + Qj−1,k +c 2
Qj,k+1 − 2Qjk + Qj,k−1
∆x1 ∆x2
or conservatively
∆t ∆t
   
n+1 n 1 1 2 2
Qjk = Qjk +c Hj+ 1 ,k − Hj− 1 ,k +c Hj,k+ 1 − Hj,k− 1
∆x1 2 2 ∆x2 2 2

Von Neumann stability analysis: Insert single eigenmode Q̂(t)e ik1 x1 e ik2 x2 into
discretization    
Q̂ n+1 = Q̂ n +C1 Q̂ n e ik1 ∆x1 − 2Q̂ n + Q̂ n e −ik1 ∆x1 +C2 Q̂ n e ik2 ∆x2 − 2Q̂ n + Q̂ n e −ik2 ∆x2
∆t
with Cι = c ∆x 2 , ι = 1, 2,
ι

Fundamentals 23
Conservation laws Finite volume methods Upwind schemes References

Splitting methods, second derivatives

Conservative scheme for diffusion equation


Consider ∂t q − c∆q = 0 with c ∈ R+ , which is readily discretized as
n+1 n ∆t  n n n
 ∆t  n n n

Qjk = Qjk +c 2
Qj+1,k − 2Qjk + Qj−1,k +c 2
Qj,k+1 − 2Qjk + Qj,k−1
∆x1 ∆x2
or conservatively
∆t ∆t
   
n+1 n 1 1 2 2
Qjk = Qjk +c Hj+ 1 ,k − Hj− 1 ,k +c Hj,k+ 1 − Hj,k− 1
∆x1 2 2 ∆x2 2 2

Von Neumann stability analysis: Insert single eigenmode Q̂(t)e ik1 x1 e ik2 x2 into
discretization    
Q̂ n+1 = Q̂ n +C1 Q̂ n e ik1 ∆x1 − 2Q̂ n + Q̂ n e −ik1 ∆x1 +C2 Q̂ n e ik2 ∆x2 − 2Q̂ n + Q̂ n e −ik2 ∆x2
∆t ikι xι = cos(k x ) + i sin(k x )
with Cι = c ∆x 2 , ι = 1, 2, which gives after inserting e ι ι ι ι
ι

Q̂ n+1 = Q̂ n (1 + 2C1 (cos(k1 ∆x1 ) − 1) + 2C2 (cos(k2 ∆x2 ) − 1))

Fundamentals 23
Conservation laws Finite volume methods Upwind schemes References

Splitting methods, second derivatives

Conservative scheme for diffusion equation


Consider ∂t q − c∆q = 0 with c ∈ R+ , which is readily discretized as
n+1 n ∆t  n n n
 ∆t  n n n

Qjk = Qjk +c 2
Qj+1,k − 2Qjk + Qj−1,k +c 2
Qj,k+1 − 2Qjk + Qj,k−1
∆x1 ∆x2
or conservatively
∆t ∆t
   
n+1 n 1 1 2 2
Qjk = Qjk +c Hj+ 1 ,k − Hj− 1 ,k +c Hj,k+ 1 − Hj,k− 1
∆x1 2 2 ∆x2 2 2

Von Neumann stability analysis: Insert single eigenmode Q̂(t)e ik1 x1 e ik2 x2 into
discretization    
Q̂ n+1 = Q̂ n +C1 Q̂ n e ik1 ∆x1 − 2Q̂ n + Q̂ n e −ik1 ∆x1 +C2 Q̂ n e ik2 ∆x2 − 2Q̂ n + Q̂ n e −ik2 ∆x2
∆t ikι xι = cos(k x ) + i sin(k x )
with Cι = c ∆x 2 , ι = 1, 2, which gives after inserting e ι ι ι ι
ι

Q̂ n+1 = Q̂ n (1 + 2C1 (cos(k1 ∆x1 ) − 1) + 2C2 (cos(k2 ∆x2 ) − 1))


Stability requires
|1 + 2C1 (cos(k1 ∆x1 ) − 1) + 2C2 (cos(k2 ∆x2 ) − 1)| ≤ 1

Fundamentals 23
Conservation laws Finite volume methods Upwind schemes References

Splitting methods, second derivatives

Conservative scheme for diffusion equation


Consider ∂t q − c∆q = 0 with c ∈ R+ , which is readily discretized as
n+1 n ∆t  n n n
 ∆t  n n n

Qjk = Qjk +c 2
Qj+1,k − 2Qjk + Qj−1,k +c 2
Qj,k+1 − 2Qjk + Qj,k−1
∆x1 ∆x2
or conservatively
∆t ∆t
   
n+1 n 1 1 2 2
Qjk = Qjk +c Hj+ 1 ,k − Hj− 1 ,k +c Hj,k+ 1 − Hj,k− 1
∆x1 2 2 ∆x2 2 2

Von Neumann stability analysis: Insert single eigenmode Q̂(t)e ik1 x1 e ik2 x2 into
discretization    
Q̂ n+1 = Q̂ n +C1 Q̂ n e ik1 ∆x1 − 2Q̂ n + Q̂ n e −ik1 ∆x1 +C2 Q̂ n e ik2 ∆x2 − 2Q̂ n + Q̂ n e −ik2 ∆x2
∆t ikι xι = cos(k x ) + i sin(k x )
with Cι = c ∆x 2 , ι = 1, 2, which gives after inserting e ι ι ι ι
ι

Q̂ n+1 = Q̂ n (1 + 2C1 (cos(k1 ∆x1 ) − 1) + 2C2 (cos(k2 ∆x2 ) − 1))


Stability requires
|1 + 2C1 (cos(k1 ∆x1 ) − 1) + 2C2 (cos(k2 ∆x2 ) − 1)| ≤ 1
i.e.
|1 − 4C1 − 4C2 | ≤ 1
from which we derive the stability condition
∆t ∆t 1
 
0≤c 2
+ 2

∆x1 ∆x2 2

Fundamentals 23
Conservation laws Finite volume methods Upwind schemes References

Outline

Conservation laws
Mathematical background
Characteristic information
Weak and entropy solutions
Characteristic form of the Euler equations
Navier-Stokes equations

Finite volume methods


Basics of finite difference methods
Splitting methods, second derivatives

Upwind schemes
The linear Riemann problem
Flux-difference splitting
Flux-vector splitting

Fundamentals 24
Conservation laws Finite volume methods Upwind schemes References

The linear Riemann problem

The Riemann problem in the linear case

Consider the linear hyperbolic equation (i.e. A = const. )


∂ ∂
q(x, t) + A q(x, t) = 0
∂t ∂x
Assume (for simplicity) that A has M distinct real eigenvalues λ1 < . . . < λM
with M linear independent right eigenvectors rm .

Fundamentals 25
Conservation laws Finite volume methods Upwind schemes References

The linear Riemann problem

The Riemann problem in the linear case

Consider the linear hyperbolic equation (i.e. A = const. )


∂ ∂
q(x, t) + A q(x, t) = 0
∂t ∂x
Assume (for simplicity) that A has M distinct real eigenvalues λ1 < . . . < λM
with M linear independent right eigenvectors rm .
We can readily apply the characteristic transformation R−1 q = v to obtain
∂v ∂v
+Λ =0
∂t ∂x
or
∂vm ∂vm
+ λm =0 for all m = 1, . . . , M
∂t ∂x

Fundamentals 25
Conservation laws Finite volume methods Upwind schemes References

The linear Riemann problem

The Riemann problem in the linear case

Consider the linear hyperbolic equation (i.e. A = const. )


∂ ∂
q(x, t) + A q(x, t) = 0
∂t ∂x
Assume (for simplicity) that A has M distinct real eigenvalues λ1 < . . . < λM
with M linear independent right eigenvectors rm .
We can readily apply the characteristic transformation R−1 q = v to obtain
∂v ∂v
+Λ =0
∂t ∂x
or
∂vm ∂vm
+ λm =0 for all m = 1, . . . , M
∂t ∂x
Each characteristic variable vm changes only across the characteristic line
associated to λm .
Since the entire problem is linear, we can simply sum up all these jumps ∆vm
successively to connect the RP states vL , vR in characteristic variables.

Fundamentals 25
Conservation laws Finite volume methods Upwind schemes References

The linear Riemann problem

The Riemann problem in the linear case - II

Example of a linear 3 PDE system:

Introducing the jumps

∆v1 = [vR1 − vL1 , 0, 0]T

∆v2 = [0, vR2 − vL2 , 0]T


∆v3 = [0, 0, vR3 − vL3 ]T
the solution reads

Fundamentals 26
Conservation laws Finite volume methods Upwind schemes References

The linear Riemann problem

The Riemann problem in the linear case - II

Example of a linear 3 PDE system:

Introducing the jumps

∆v1 = [vR1 − vL1 , 0, 0]T

∆v2 = [0, vR2 − vL2 , 0]T


∆v3 = [0, 0, vR3 − vL3 ]T
the solution reads



 vL = vR − ∆v3 − ∆v2 − ∆v1 x/t < λ3
x  
vL + ∆v3 = vR − ∆v2 − ∆v1 λ3 < x/t < λ2
v =
t  vL + ∆v3 + ∆v2 = vR − ∆v1
 λ2 < x/t < λ1
vL + ∆v3 + ∆v2 + ∆v1 = vR λ1 < x/t

Fundamentals 26
Conservation laws Finite volume methods Upwind schemes References

The linear Riemann problem

The Riemann problem in the linear case - III


or using the transformation q = Rv and R∆vm = rm ∆vm

 qL = qR − r3 ∆v3 − r2 ∆v2 − r1 ∆v1 x/t < λ3
x   
qL + r3 ∆v3 = qR − r2 ∆v2 − r1 ∆v1 λ3 < x/t < λ2
q =
t 
 qL + r3 ∆v3 + r2 ∆v2 = qR − r1 ∆v1 λ2 < x/t < λ1
qL + r3 ∆v3 + r2 ∆v2 + r1 ∆v1 = qR λ1 < x/t

Fundamentals 27
Conservation laws Finite volume methods Upwind schemes References

The linear Riemann problem

The Riemann problem in the linear case - III


or using the transformation q = Rv and R∆vm = rm ∆vm

 qL = qR − r3 ∆v3 − r2 ∆v2 − r1 ∆v1 x/t < λ3
x   
qL + r3 ∆v3 = qR − r2 ∆v2 − r1 ∆v1 λ3 < x/t < λ2
q =
t 
 qL + r3 ∆v3 + r2 ∆v2 = qR − r1 ∆v1 λ2 < x/t < λ1
qL + r3 ∆v3 + r2 ∆v2 + r1 ∆v1 = qR λ1 < x/t

Multiplying with A and using Arm = λm rm gives



 AqL = AqR − r3 λ3 ∆v3 − r2 λ2 ∆v2 − r1 λ1 ∆v1 x/t < λ3
x   
AqL + r3 λ3 ∆v3 = AqR − r2 λ2 ∆v2 − r1 λ1 ∆v1 λ3 < x/t < λ2
Aq =
t 
 AqL + r3 λ3 ∆v3 + r2 λ2 ∆v2 = AqR − r1 λ1 ∆v1 λ2 < x/t < λ1
AqL + r3 λ3 ∆v3 + r2 λ2 ∆v2 + r1 λ1 ∆v1 = AqR λ1 < x/t

Fundamentals 27
Conservation laws Finite volume methods Upwind schemes References

The linear Riemann problem

The Riemann problem in the linear case - III


or using the transformation q = Rv and R∆vm = rm ∆vm

 qL = qR − r3 ∆v3 − r2 ∆v2 − r1 ∆v1 x/t < λ3
x   
qL + r3 ∆v3 = qR − r2 ∆v2 − r1 ∆v1 λ3 < x/t < λ2
q =
t 
 qL + r3 ∆v3 + r2 ∆v2 = qR − r1 ∆v1 λ2 < x/t < λ1
qL + r3 ∆v3 + r2 ∆v2 + r1 ∆v1 = qR λ1 < x/t

Multiplying with A and using Arm = λm rm gives



 AqL = AqR − r3 λ3 ∆v3 − r2 λ2 ∆v2 − r1 λ1 ∆v1 x/t < λ3
x   
AqL + r3 λ3 ∆v3 = AqR − r2 λ2 ∆v2 − r1 λ1 ∆v1 λ3 < x/t < λ2
Aq =
t 
 AqL + r3 λ3 ∆v3 + r2 λ2 ∆v2 = AqR − r1 λ1 ∆v1 λ2 < x/t < λ1
AqL + r3 λ3 ∆v3 + r2 λ2 ∆v2 + r1 λ1 ∆v1 = AqR λ1 < x/t

This allows direct evaluation of the flux at x=0.

F(qL , qR ) := f(q(0, t)) = A q(0, t)

Fundamentals 27
Conservation laws Finite volume methods Upwind schemes References

Flux-difference splitting

Linear upwind schemes

Consider Riemann problem


∂ ∂
q(x, t)+A q(x, t) = 0 , x ∈ R , t > 0
∂t ∂x

Fundamentals 28
Conservation laws Finite volume methods Upwind schemes References

Flux-difference splitting
t

Linear upwind schemes


. . . . .
M
X M−1
X
β 1 r1 + δm r m β m r m + δM r M
m=2 m=1
Consider Riemann problem
M
X M
X
∂ ∂ q = δm r m q = β m rm
q(x, t)+A q(x, t) = 0 , x ∈ R , t > 0 L
m=1
R
m=1
∂t ∂x
x
Has exact solution 0
X X X X
q(x, t) = qL + am rm = qR − am r m = δm r m + βm r m
λm <x/t λm ≥x/t λm ≥x/t λm <x/t

Fundamentals 28
Conservation laws Finite volume methods Upwind schemes References

Flux-difference splitting
t

Linear upwind schemes


. . . . .
M
X M−1
X
β 1 r1 + δm r m β m r m + δM r M
m=2 m=1
Consider Riemann problem
M
X M
X
∂ ∂ q = δm r m q = β m rm
q(x, t)+A q(x, t) = 0 , x ∈ R , t > 0 L
m=1
R
m=1
∂t ∂x
x
Has exact solution 0
X X X X
q(x, t) = qL + am rm = qR − am r m = δm r m + βm r m
λm <x/t λm ≥x/t λm ≥x/t λm <x/t

Use Riemann problem to evaluate numerical flux F(qL , qR ) := f(q(0, t)) = Aq(0, t) as
X X X X
F(qL , qR ) = AqL + am λm rm = AqR − am λ m r m = δ m λm r m + βm λm rm
λm <0 λm ≥0 λm ≥0 λm <0

Fundamentals 28
Conservation laws Finite volume methods Upwind schemes References

Flux-difference splitting
t

Linear upwind schemes


. . . . .
M
X M−1
X
β 1 r1 + δm r m β m r m + δM r M
m=2 m=1
Consider Riemann problem
M
X M
X
∂ ∂ q = δm r m q = β m rm
q(x, t)+A q(x, t) = 0 , x ∈ R , t > 0 L
m=1
R
m=1
∂t ∂x
x
Has exact solution 0
X X X X
q(x, t) = qL + am rm = qR − am r m = δm r m + βm r m
λm <x/t λm ≥x/t λm ≥x/t λm <x/t

Use Riemann problem to evaluate numerical flux F(qL , qR ) := f(q(0, t)) = Aq(0, t) as
X X X X
F(qL , qR ) = AqL + am λm rm = AqR − am λ m r m = δ m λm r m + βm λm rm
λm <0 λm ≥0 λm ≥0 λm <0

Use λ+
m = max(λm , 0) , λ−m = min(λm , 0)
to define Λ+ := diag(λ1 , . . . , λ+
+
M) , Λ− := diag(λ− −
1 , . . . , λM )

Fundamentals 28
Conservation laws Finite volume methods Upwind schemes References

Flux-difference splitting
t

Linear upwind schemes


. . . . .
M
X M−1
X
β 1 r1 + δm r m β m r m + δM r M
m=2 m=1
Consider Riemann problem
M
X M
X
∂ ∂ q = δm r m q = β m rm
q(x, t)+A q(x, t) = 0 , x ∈ R , t > 0 L
m=1
R
m=1
∂t ∂x
x
Has exact solution 0
X X X X
q(x, t) = qL + am rm = qR − am r m = δm r m + βm r m
λm <x/t λm ≥x/t λm ≥x/t λm <x/t

Use Riemann problem to evaluate numerical flux F(qL , qR ) := f(q(0, t)) = Aq(0, t) as
X X X X
F(qL , qR ) = AqL + am λm rm = AqR − am λ m r m = δ m λm r m + βm λm rm
λm <0 λm ≥0 λm ≥0 λm <0

Use λ+
m = max(λm , 0) , λ−m = min(λm , 0)
to define Λ+ := diag(λ1 , . . . , λ+
+
M) , Λ− := diag(λ− −
1 , . . . , λM )
and A+ := +
RΛ R ,−1 A := R Λ R−1
− − which gives
F(qL , qR ) = AqL + A ∆q = AqR − A ∆q = A+ qL + A− qR
− +

with ∆q = qR − qL

Fundamentals 28
Conservation laws Finite volume methods Upwind schemes References

Flux-difference splitting

Flux difference splitting

Godunov-type scheme with ∆Qnj+1/2 = Qnj+1 − Qnj

∆t  − 
Qn+1
j = Qnj − A ∆Qnj+1/2 + A+ ∆Qnj−1/2
∆x

Fundamentals 29
Conservation laws Finite volume methods Upwind schemes References

Flux-difference splitting

Flux difference splitting

Godunov-type scheme with ∆Qnj+1/2 = Qnj+1 − Qnj

∆t  − 
Qn+1
j = Qnj − A ∆Qnj+1/2 + A+ ∆Qnj−1/2
∆x

Use linearization f̄(q̄) = Â(qL , qR )q̄ and construct scheme for nonlinear
problem as
∆t  − n n 
Qn+1
j = Qnj − Â (Qj , Qj+1 )∆Qnj+ 1 + Â+ (Qnj−1 , Qnj )∆Qnj− 1
∆x 2 2

Fundamentals 29
Conservation laws Finite volume methods Upwind schemes References

Flux-difference splitting

Flux difference splitting

Godunov-type scheme with ∆Qnj+1/2 = Qnj+1 − Qnj

∆t  − 
Qn+1
j = Qnj − A ∆Qnj+1/2 + A+ ∆Qnj−1/2
∆x

Use linearization f̄(q̄) = Â(qL , qR )q̄ and construct scheme for nonlinear
problem as
∆t  − n n 
Qn+1
j = Qnj − Â (Qj , Qj+1 )∆Qnj+ 1 + Â+ (Qnj−1 , Qnj )∆Qnj− 1
∆x 2 2

stability condition
∆t
max |λ̂m,j+ 12 | ≤1, for all m = 1, . . . , M
j∈Z ∆x

[LeVeque, 1992]

Fundamentals 29
Conservation laws Finite volume methods Upwind schemes References

Flux-difference splitting

Roe’s approximate Riemann solver

Choosing Â(qL , qR ) [Roe, 1981]: tn+1

ql qr
tn

Fundamentals 30
Conservation laws Finite volume methods Upwind schemes References

Flux-difference splitting

Roe’s approximate Riemann solver

Choosing Â(qL , qR ) [Roe, 1981]: tn+1


(i) Â(qL , qR ) has real eigenvalues

ql qr
tn

Fundamentals 30
Conservation laws Finite volume methods Upwind schemes References

Flux-difference splitting

Roe’s approximate Riemann solver

Choosing Â(qL , qR ) [Roe, 1981]: tn+1


(i) Â(qL , qR ) has real eigenvalues
∂f(q)
(ii) Â(qL , qR ) → as qL , qR → q
∂q ql qr
tn

Fundamentals 30
Conservation laws Finite volume methods Upwind schemes References

Flux-difference splitting

Roe’s approximate Riemann solver

Choosing Â(qL , qR ) [Roe, 1981]: tn+1


(i) Â(qL , qR ) has real eigenvalues
∂f(q)
(ii) Â(qL , qR ) → as qL , qR → q
∂q ql qr
(iii) Â(qL , qR )∆q = f(qR ) − f(qL ) tn

Fundamentals 30
Conservation laws Finite volume methods Upwind schemes References

Flux-difference splitting

Roe’s approximate Riemann solver

Choosing Â(qL , qR ) [Roe, 1981]: tn+1


(i) Â(qL , qR ) has real eigenvalues
∂f(q)
(ii) as qL , qR → q
Â(qL , qR ) →
∂q ql qr
(iii) Â(qL , qR )∆q = f(qR ) − f(qL ) tn
X
Wave decomposition: ∆q = qr − ql = am r̂m
m
X X
F(qL , qR ) = f(qL ) + λ̂m am r̂m = f(qR ) − λ̂m am r̂m
λ̂m <0 λ̂!
m ≥0

1 X
= f(qL ) + f(qR ) − |λ̂m | am r̂m
2 m

Fundamentals 30
Conservation laws Finite volume methods Upwind schemes References

Flux-difference splitting

The Roe solver for Euler equations


For Euler equations, the following non-apparent average defines the Roe method:
The average for u and H read
√ √ √ √
ρL uL + ρR uR ρL HL + ρR HR
û := √ √ , Ĥ := √ √
ρL + ρR ρL + ρR
The average of the density is
√ √
ρL ρR + ρR ρL √
ρ̂ = √ √ = ρL ρR
ρL + ρR

Fundamentals 31
Conservation laws Finite volume methods Upwind schemes References

Flux-difference splitting

The Roe solver for Euler equations


For Euler equations, the following non-apparent average defines the Roe method:
The average for u and H read
√ √ √ √
ρL uL + ρR uR ρL HL + ρR HR
û := √ √ , Ĥ := √ √
ρL + ρR ρL + ρR
The average of the density is
√ √
ρL ρR + ρR ρL √
ρ̂ = √ √ = ρL ρR
ρL + ρR
and the averaged speed of sound is
1/2
1

â := (γ − 1)(Ĥ − û 2 )
2
The eigenvectors read
1
     
1 1
r̂1 =  û − â  , r̂2 =  û  , r̂3 =  û + â 
Ĥ − ûâ û 2 Ĥ + ûâ
2

Fundamentals 31
Conservation laws Finite volume methods Upwind schemes References

Flux-difference splitting

The Roe solver for Euler equations


For Euler equations, the following non-apparent average defines the Roe method:
The average for u and H read
√ √ √ √
ρL uL + ρR uR ρL HL + ρR HR
û := √ √ , Ĥ := √ √
ρL + ρR ρL + ρR
The average of the density is
√ √
ρL ρR + ρR ρL √
ρ̂ = √ √ = ρL ρR
ρL + ρR
and the averaged speed of sound is
1/2
1

â := (γ − 1)(Ĥ − û 2 )
2
The eigenvectors read
1
     
1 1
r̂2 =  û  ,
r̂1 =  û − â  , r̂3 =  û + â 
Ĥ − ûâ û 2 Ĥ + ûâ
2
and the characteristic wave strengths are
∆p − ρ̂â∆u ∆p ∆p + ρ̂â∆u
∆v1 = a1 = , ∆v2 = a2 = ∆ρ− , ∆v3 = a3 = .
2â2 â2 2â2

Fundamentals 31
Conservation laws Finite volume methods Upwind schemes References

Flux-difference splitting

Harten-Lax-Van Leer (HLL) approximate Riemann solver


sL tn+1 sR tn+1
tn+1
q⋆

 qL , x < sL t
q̄(x, t) = q? , sL t ≤ x ≤ sR t
qR , x > sR t

qL qR
tn

Fundamentals 32
Conservation laws Finite volume methods Upwind schemes References

Flux-difference splitting

Harten-Lax-Van Leer (HLL) approximate Riemann solver


sL tn+1 sR tn+1
tn+1
q⋆

 qL , x < sL t
q̄(x, t) = q? , sL t ≤ x ≤ sR t
qR , x > sR t

qL qR
tn



 f(qL ) , 0 < sL ,

 sR f(qL ) − sL f(qR ) + sL sR (qR − qL )
FHLL (qL , qR ) = , sL ≤ 0 ≤ sR ,


 sR − sL
f(qR ) , 0 > sR ,

Fundamentals 32
Conservation laws Finite volume methods Upwind schemes References

Flux-difference splitting

Harten-Lax-Van Leer (HLL) approximate Riemann solver


sL tn+1 sR tn+1
tn+1
q⋆

 qL , x < sL t
q̄(x, t) = q? , sL t ≤ x ≤ sR t
qR , x > sR t

qL qR
tn



 f(qL ) , 0 < sL ,

 sR f(qL ) − sL f(qR ) + sL sR (qR − qL )
FHLL (qL , qR ) = , sL ≤ 0 ≤ sR ,


 sR − sL
f(qR ) , 0 > sR ,

Euler equations:

sL = min(u1,L − cL , u1,R − cR ) , sR = max(u1,L + cl , u1,R + cR )

[Toro, 1999], HLLC: [Toro et al., 1994]


Fundamentals 32
Conservation laws Finite volume methods Upwind schemes References

Flux-vector splitting

Flux vector splitting

Splitting
F(qL , qR ) = f + (qL ) + f − (qR )
f(q) = f + (q) + f − (q) tl+1

f − (qL ) f + (qL ) f − (qR ) f + (qR )

tl
qL qR

Fundamentals 33
Conservation laws Finite volume methods Upwind schemes References

Flux-vector splitting

Flux vector splitting

Splitting
F(qL , qR ) = f + (qL ) + f − (qR )
f(q) = f + (q) + f − (q) tl+1

derived under restriction λ̂+ m ≥ 0 and f − (qL ) f + (qL ) f − (qR ) f + (qR )


λ̂−
m ≤ 0 for all m = 1, . . . , M for

∂f + (q) ∂f − (q) tl
Â+ (q) = , Â− (q) = qL qR
∂q ∂q

Fundamentals 33
Conservation laws Finite volume methods Upwind schemes References

Flux-vector splitting

Flux vector splitting

Splitting
F(qL , qR ) = f + (qL ) + f − (qR )
f(q) = f + (q) + f − (q) tl+1

derived under restriction λ̂+ m ≥ 0 and f − (qL ) f + (qL ) f − (qR ) f + (qR )


λ̂−
m ≤ 0 for all m = 1, . . . , M for

∂f + (q) ∂f − (q) tl
Â+ (q) = , Â− (q) = qL qR
∂q ∂q

plus reproduction of regular upwinding

f + (q) = f(q) , f − (q) = 0 if λm ≥ 0 for all m = 1, . . . , M


f + (q) = 0, f − (q) = f(q) if λm ≤ 0 for all m = 1, . . . , M

Then use
F(qL , qR ) = f + (qL ) + f − (qR )

Fundamentals 33
Conservation laws Finite volume methods Upwind schemes References

Flux-vector splitting

Steger-Warming

Required f(q) = A(q) q

Fundamentals 34
Conservation laws Finite volume methods Upwind schemes References

Flux-vector splitting

Steger-Warming

Required f(q) = A(q) q


1 1
λ+
m = (λm + |λm |) λ−
m = (λm − |λm |)
2 2
A+ (q) := R(q) Λ+ (q) R−1 (q) , A− (q) := R(q) Λ− (q) R−1 (q)

Fundamentals 34
Conservation laws Finite volume methods Upwind schemes References

Flux-vector splitting

Steger-Warming

Required f(q) = A(q) q


1 1
λ+
m = (λm + |λm |) λ−
m = (λm − |λm |)
2 2
A+ (q) := R(q) Λ+ (q) R−1 (q) , A− (q) := R(q) Λ− (q) R−1 (q)
Gives
f(q) = A+ (q) q + A− (q) q
and the numerical flux

F(qL , qR ) = A+ (qL ) qL + A− (qR ) qR

Fundamentals 34
Conservation laws Finite volume methods Upwind schemes References

Flux-vector splitting

Steger-Warming

Required f(q) = A(q) q


1 1
λ+
m = (λm + |λm |) λ−
m = (λm − |λm |)
2 2
A+ (q) := R(q) Λ+ (q) R−1 (q) , A− (q) := R(q) Λ− (q) R−1 (q)
Gives
f(q) = A+ (q) q + A− (q) q
and the numerical flux

F(qL , qR ) = A+ (qL ) qL + A− (qR ) qR

Jacobians of the split fluxes are identical to A± (q) only in linear case

∂ A± (q) q

∂f ± (q) ∂A± (q)
= = A± (q) + q
∂q ∂q ∂q

Further methods: Van Leer FVS [Toro, 1999], AUSM [Wada and Liou, 1997]

Fundamentals 34
Conservation laws Finite volume methods Upwind schemes References

Flux-vector splitting

Steger-Warming FVS for Euler equations


For Euler equations, f(q) = A(q) q holds true. We also know all matrices R−1 AR = Λ.

Fundamentals 35
Conservation laws Finite volume methods Upwind schemes References

Flux-vector splitting

Steger-Warming FVS for Euler equations


For Euler equations, f(q) = A(q) q holds true. We also know all matrices R−1 AR = Λ.
Approach 1: Introduce λ+ 1
m = 2 (λm + |λm |) , λ− 1
m = 2 (λm − |λm |) and compute A
+

and A− directly.

Fundamentals 35
Conservation laws Finite volume methods Upwind schemes References

Flux-vector splitting

Steger-Warming FVS for Euler equations


For Euler equations, f(q) = A(q) q holds true. We also know all matrices R−1 AR = Λ.
Approach 1: Introduce λ+ 1
m = 2 (λm + |λm |) , λ− 1
m = 2 (λm − |λm |) and compute A
+

and A− directly.
Approach 2: Analyze sign of eigenvalues:
u < −a : All eigenvalues are negative: u − a < u < u + a < 0
T
f − (q) = ρu, ρu 2 + p, ρuH , f + (q) = 0


Fundamentals 35
Conservation laws Finite volume methods Upwind schemes References

Flux-vector splitting

Steger-Warming FVS for Euler equations


For Euler equations, f(q) = A(q) q holds true. We also know all matrices R−1 AR = Λ.
Approach 1: Introduce λ+ 1
m = 2 (λm + |λm |) , λ− 1
m = 2 (λm − |λm |) and compute A
+

and A− directly.
Approach 2: Analyze sign of eigenvalues:
u < −a : All eigenvalues are negative: u − a < u < u + a < 0
T
f − (q) = ρu, ρu 2 + p, ρuH , f + (q) = 0


u > a : All eigenvalues are positive: 0 < u − a < u < u + a


T
f − (q) = 0, f + (q) = ρu, ρu 2 + p, ρuH


Fundamentals 35
Conservation laws Finite volume methods Upwind schemes References

Flux-vector splitting

Steger-Warming FVS for Euler equations


For Euler equations, f(q) = A(q) q holds true. We also know all matrices R−1 AR = Λ.
Approach 1: Introduce λ+ 1
m = 2 (λm + |λm |) , λ− 1
m = 2 (λm − |λm |) and compute A
+

and A− directly.
Approach 2: Analyze sign of eigenvalues:
u < −a : All eigenvalues are negative: u − a < u < u + a < 0
T
f − (q) = ρu, ρu 2 + p, ρuH , f + (q) = 0


u > a : All eigenvalues are positive: 0 < u − a < u < u + a


T
f − (q) = 0, f + (q) = ρu, ρu 2 + p, ρuH


−a ≤ u ≤ a : We find u − a ≤ 0 and u + a ≥ 0 are always satisfied. For u < 0, we


need to evaluate
   
u−a 0 0 0 0 0
− +
f (q) = R  0 u 0  R−1 q, f (q) = R  0 0 0  R−1 q
0 0 0 0 0 u+a
For u ≥ 0, we need to evaluate
   
u−a 0 0 0 0 0
− +
f (q) = R  0 0 0  R−1 q, f (q) = R  0 u 0  R−1 q
0 0 0 0 0 u+a

Fundamentals 35
Conservation laws Finite volume methods Upwind schemes References

References

References I

[Godlewski and Raviart, 1996] Godlewski, E. and Raviart, P.-A. (1996). Numerical
approximation of hyperbolic systems of conservation laws. Springer Verlag, New
York.
[Kröner, 1997] Kröner, D. (1997). Numerical schemes for conservation laws. John
Wiley & Sons and B. G. Teubner, New York, Leipzig.

[LeVeque, 1992] LeVeque, R. J. (1992). Numerical methods for conservation laws.


Birkhäuser, Basel.

[Majda, 1984] Majda, A. (1984). Compressible fluid flow and systems of conservation
laws in several space variables. Applied Mathematical Sciences Vol. 53.
Springer-Verlag, New York.

[Roe, 1981] Roe, P. L. (1981). Approximate Riemann solvers, parameter vectors and
difference schemes. J. Comput. Phys., 43:357–372.

[Toro, 1999] Toro, E. F. (1999). Riemann solvers and numerical methods for fluid
dynamics. Springer-Verlag, Berlin, Heidelberg, 2nd edition.

[Toro et al., 1994] Toro, E. F., Spruce, M., and Speares, W. (1994). Restoration of
the contact surface in the HLL-Riemann solver. Shock Waves, 4:25–34.

Fundamentals 36
Conservation laws Finite volume methods Upwind schemes References

References

References II

[Wada and Liou, 1997] Wada, Y. and Liou, M.-S. (1997). An accurate and robust
flux splitting scheme for shock and contact discontinuities. SIAM J. Sci. Comp.,
18(3):633–657.

Fundamentals 37

You might also like