Professional Documents
Culture Documents
CA AA214 Ch7
CA AA214 Ch7
CA AA214 Ch7
These slides are partially based on the recommended textbook: Culbert B. Laney.
“Computational Gas Dynamics,” CAMBRIDGE UNIVERSITY PRESS, ISBN 0-521-62558-0
1 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 2 / 61
Outline
1 Conservative Finite Volume Methods in One Dimension
2 Introduction to Reconstruction-Evolution Methods
3 First-Order Upwind Reconstruction-Evolution Methods
Scalar Conservation Laws
Euler Equations
Roe’s First-Order Upwind Method for the Euler Equations
4 Introduction to Second- & Higher-Order Reconstruction-Evolution
Methods
5 The MUSCL/TVD Method
The Method of Lines
Flux Splitting
Second-Order Approximation
Van Leer’s Slope Limiter
6 Steger-Warming Flux Vector Splitting Method for the Euler Equations
7 Multidimensional Extensions
2 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 3 / 61
3 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 4 / 61
Conservative Finite Volume Methods in One Dimension
where
Z xi+1/2 Z t n+1
1 1
ūin ≈ u(x, t n )dx, fˆi+1/2
n
≈ f u(xi+1/2 , t) dt
∆x xi−1/2 ∆t tn
(2)
and the rest of the notation is the same as in the previous Chapter
4 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 5 / 61
Conservative Finite Volume Methods in One Dimension
ūin is the spatial cell-integral average value of u at time t n – that is, the average value of u
in the cell [xi−1/2 , xi+1/2 ] at time t n
fˆi+1/2
n
is the time-integral average of f at the point xi+1/2
Note that for a uniform spatial discretization, xi+1/2 − xi−1/2 = xi+1 − xi = ∆x is constant,
xi = (xi−1 + xi+1 )/2, xi±1/2 = xi ± ∆x/2, and therefore
1
Z xi+1/2
2
g (x)dx = g (xi ) + O(∆x ) (3)
∆x xi−1/2
5 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 6 / 61
Introduction to Reconstruction-Evolution Methods
Z xi+1/2 Z t n+1
n+1 n
[u(x, t )−u(x, t )] dx = − [f u(xi+1/2 , t) −f u(xi−1/2 , t) ] dt
xi−1/2 tn
\n
∂ ū
∆t = −λ(fˆi+1/2
n
− fˆi−1/2
n
)
∂t i
Z xi+1/2 Z t n+1
1 1
ūin n
fˆi+1/2
n
≈ u(x, t )dx, ≈ f u(xi+1/2 , t) dt
∆x xi−1/2 ∆t tn
6 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 7 / 61
Introduction to Reconstruction-Evolution Methods
7 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 7 / 61
Introduction to Reconstruction-Evolution Methods
1
Z t n+1
fˆi+1/2
n
= f u(xi+1/2 , t) dt
∆t tn
7 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 8 / 61
Introduction to Reconstruction-Evolution Methods
8 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 9 / 61
Introduction to Reconstruction-Evolution Methods
then
Z t n+1 Z t n+1
1 1
fˆi+1/2
n
= f pe,i+1/2 (t) dt = ape,i+1/2 (t)dt
∆t tn ∆t tn
aūin
for 0 ≤ λa ≤ 1
= n
aūi+1 for − 1 ≤ λa ≤ 0
9 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 10 / 61
Introduction to Reconstruction-Evolution Methods
10 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 11 / 61
Introduction to Reconstruction-Evolution Methods
11 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 12 / 61
First-Order Upwind Reconstruction-Evolution Methods
Scalar Conservation Laws
where
Z t n+1
1
fˆi+1/2
n
= f uRiemann (xi+1/2 , t) dt
∆t tn
12 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 12 / 61
First-Order Upwind Reconstruction-Evolution Methods
Scalar Conservation Laws
where
Z t n+1
1
fˆi+1/2
n
= f uRiemann (xi+1/2 , t) dt
∆t tn
=⇒ fˆi+1/2
n
= f uRiemann (xi+1/2 , t) = f (uRiemann (0)) (4)
where f uRiemann (xi+1/2 , t) is computed using any exact or
approximate Riemann solver and t is any arbitrary time t > t n
Many first-order upwind methods for scalar conservation laws are
based on (4) 12 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 13 / 61
First-Order Upwind Reconstruction-Evolution Methods
Scalar Conservation Laws
fˆi+1/2
n
= f uRiemann (xi+1/2 , t) = f (uRiemann (0))
above equation assumes that the waves from different cell edges do
not interact (or at least that any interaction does not affect the
solution at the cell edges)
|λa(u)| ≤ 1/2 ⇒ waves originating at one cell edge cannot interact
with those originating from any other cell edge
|λa(u)| ≤ 1 ⇒ they can, but the interactions cannot reach the cell
edges in one time-step
13 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 14 / 61
First-Order Upwind Reconstruction-Evolution Methods
Scalar Conservation Laws
waves at the left cell edge are right-running, counterparts at the right cell
edge are left-running
if the wave speeds are always positive, all waves originating from xi+1/2 are
right-running ⇒ fˆi+1/2
n = f uRiemann (xi+1/2 , t) = f (uin ) ⇒ FTBS
if the wave speeds are always negative, all waves originating from xi+1/2
are left-running ⇒ fˆi+1/2
n n ) ⇒ FTFS
= f uRiemann (xi+1/2 , t) = f (ui+1
the above is true for the exact Riemann solver or any reasonable
approximate Riemann solver ⇒ all first-order upwind methods based on
fˆi+1/2
n
= f uRiemann (xi+1/2 , t) are FTBS or FTFS except near sonic points
where the wave speeds change sign
1 Compressive sonic points typically occur inside stationary or slowly moving shocks.
15 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 16 / 61
First-Order Upwind Reconstruction-Evolution Methods
Euler Equations
Z t n+1
1
Fbxni+1/2 =
Fx WRiemann (xi+1/2 , t) dt
∆t tn
Again, equation (5) assumes that the waves from different cell edges
do not interact (or at least that any interaction does not affect the
solution at the cell edges)
If λρ(A) ≤ 1, waves travel at most one grid cell per time-step: They
can interact, but the interactions cannot reach the cell edges during
a single time-step
Unlike in the case of scalar conservation laws where a compressive
point inside the cell must be present for waves to interact when
|λa(u)| ≤ 1, waves in the subsonic Euler equations interact routinely
for 1/2 ≤ ρ(A) ≤ 1 (since there are always right- and left-running
waves in subsonic flows)
λρ(A) ≤ 1 is also the CFL condition for all first-order upwind
methods
17 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 18 / 61
First-Order Upwind Reconstruction-Evolution Methods
Euler Equations
Upwind methods based on Fbxni+1/2 = Fx WRiemann (xi+1/2 , t)
if the wave speeds are always positive (as in some supersonic flows),
all waves originating from xi+1/2 are right-running
⇒ Fbxn = Fx WRiemann (xi+1/2 , t) = Fx (Win ) ⇒ FTBS
i+1/2
if the wave speeds are always negative (as in some supersonic flows),
all waves originating from xi+1/2 are left-running
⇒ Fbxni+1/2 = Fx WRiemann (xi+1/2 , t) = Fx (Wi+1
n
) ⇒ FTFS
the above is true for the exact Riemann solver or any reasonable
approximate Riemann solver2 ⇒ all first-order upwind methods based
on Fbxni+1/2 = Fx WRiemann (xi+1/2 , t) are FTBS or FTFS for
supersonic flows
−
F
bx (W (0)) = Fx (WL ) + ARL (WR − WL )
+
F
bx (W (0)) = Fx (WR ) − ARL (WR − WL )
18 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 19 / 61
First-Order Upwind Reconstruction-Evolution Methods
Euler Equations
19 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 20 / 61
First-Order Upwind Reconstruction-Evolution Methods
Roe’s First-Order Upwind Method for the Euler Equations
1 1
Fbx (W (0)) = (Fx (WR ) + Fx (WL )) − |ARL |(WR − WL )
2 2
20 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 20 / 61
First-Order Upwind Reconstruction-Evolution Methods
Roe’s First-Order Upwind Method for the Euler Equations
1 1
Fbx (W (0)) = (Fx (WR ) + Fx (WL )) − |ARL |(WR − WL )
2 2
1 1
Fbxni+1/2 = Fx (Win ) + Fx (Wi+1
n n
) − |Ai+1/2 |(Wi+1 − Win )
2 2
20 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 21 / 61
First-Order Upwind Reconstruction-Evolution Methods
Roe’s First-Order Upwind Method for the Euler Equations
Recall also that the Roe-average matrix must satisfy
n n n n n
Fx (Wi+1 ) − Fx (Wi ) = Ai+1/2 (Wi+1 − Wi )
+ − + −
and that Ani+1/2 + Ani+1/2 = Ani+1/2 and Ani+1/2 − Ani+1/2 = |Ani+1/2 |
+ − + −
and that Ani+1/2 + Ani+1/2 = Ani+1/2 and Ani+1/2 − Ani+1/2 = |Ani+1/2 |
−
+
n
Fx (Wi+1 ) − Fx (Win ) = Ani+1/2 + Ani+1/2 (Wi+1
n
− Win )
=⇒
+ − + −
and that Ani+1/2 + Ani+1/2 = Ani+1/2 and Ani+1/2 − Ani+1/2 = |Ani+1/2 |
−
+
n
Fx (Wi+1 ) − Fx (Win ) = Ani+1/2 + Ani+1/2 (Wi+1
n
− Win )
1 1 n+ 1 n−
n n n n n n n
Fx Fx (Wi ) + Fx (Wi+1 ) − Ai+1/2 (Wi+1 − Wi ) + Ai+1/2 (Wi+1 − Wi )
b =
i+1/2 2 2 2
| {z } | {z }
n g −n
=⇒ i ∆fˆ
i+1/2
bn 1 n n 1 n+ n n 1 n− n n
Fxi−1/2 = Fx (Wi−1 ) + Fx (Wi ) − Ai−1/2 (Wi − Wi−1 i ) + Ai−1/2 (Wi − Wi−1 )
2 2 2
| {z } | {z }
gn n
ˆ−
i−1 ∆f
i−1/2
+ − + −
and that Ani+1/2 + Ani+1/2 = Ani+1/2 and Ani+1/2 − Ani+1/2 = |Ani+1/2 |
−
+
n
Fx (Wi+1 ) − Fx (Win ) = Ani+1/2 + Ani+1/2 (Wi+1
n
− Win )
1 1 n+ 1 n−
n n n n n n n
Fx Fx (Wi ) + Fx (Wi+1 ) − Ai+1/2 (Wi+1 − Wi ) + Ai+1/2 (Wi+1 − Wi )
b =
i+1/2 2 2 2
| {z } | {z }
n g n −
=⇒ i ∆fˆ
i+1/2
bn 1 n n 1 n+ n n 1 n− n n
Fxi−1/2 = Fx (Wi−1 ) + Fx (Wi ) − Ai−1/2 (Wi − Wi−1 i ) + Ai−1/2 (Wi − Wi−1 )
2 2 2
| {z } | {z }
gn n
ˆ−
i−1 ∆f
i−1/2
For this reason, Roe’s first-order upwind method is sometimes called a flux difference
splitting method 3
n n n+ n n n− n n
Fx (Wi+1 ) − Fx (Wi ) = Ai+1/2 (Wi+1 − Wi ) + Ai+1/2 (Wi+1 − Wi )
1
Z t n+1
bn
Fx ≈ Fx W (xi+1/2 , t) dt
i+1/2 ∆t tn
22 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 22 / 61
Introduction to Second- & Higher-Order Reconstruction-Evolution Methods
1
Z t n+1
bn
Fx ≈ Fx W (xi+1/2 , t) dt
i+1/2 ∆t tn
1
Z t n+1
n+1/2 2
Fx W (xi+1/2 , t) dt = Fx W (xi+1/2 , t ) + O(∆t )
∆t tn
1
Z t n+1 1
n+1
Fx W (xi+1/2 , t) dt = Fx W (xi+1/2 , t )
∆t tn 2
1 n 2
+ Fx W (xi+1/2 , t ) + O(∆t )
2
22 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 23 / 61
Introduction to Second- & Higher-Order Reconstruction-Evolution Methods
n ∂Fx n n
Fx W (xi+1/2 , t) = Fx W (xi+1/2 , t ) + W (xi+1/2 , t ) (t − t )
∂t
n 2
+ O (t − t )
23 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 23 / 61
Introduction to Second- & Higher-Order Reconstruction-Evolution Methods
n ∂Fx n n
Fx W (xi+1/2 , t) = Fx W (xi+1/2 , t ) + W (xi+1/2 , t ) (t − t )
∂t
n 2
+ O (t − t )
Step 3: Express time derivatives in the Taylor series in terms of space derivatives
(Cauchy-Kowalewski) – for example, the time derivative of the momentum flux can be
obtained from the conservation of momentum
∂ ∂vx ∂ ∂p
(ρvx ) = −ρvx − vx (ρvx ) −
∂t ∂x ∂x ∂x
23 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 24 / 61
Introduction to Second- & Higher-Order Reconstruction-Evolution Methods
∂ ∂vx ∂ ∂p
(ρvx ) = −ρvx − vx (ρvx ) −
∂t ∂x ∂x ∂x
Step 4: Differentiate the spatial reconstruction at time level n to approximate the spatial
derivative at (xi+1/2 , t n )
24 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 24 / 61
Introduction to Second- & Higher-Order Reconstruction-Evolution Methods
∂ ∂vx ∂ ∂p
(ρvx ) = −ρvx − vx (ρvx ) −
∂t ∂x ∂x ∂x
Step 4: Differentiate the spatial reconstruction at time level n to approximate the spatial
derivative at (xi+1/2 , t n )
note that in general, the reconstruction and/or its derivatives contain jump
discontinuities at the cell edges at xi+1/2
“average” the left and right limits, Wi+1/2,L (t) and Wi+1/2,R (t), of the
approximation of W (xi+1/2 , t)
the Riemann solver average is the only average that yields the exact solution in
the case of piecewise constant reconstruction
for this purpose, use Wi+1/2,L (t) and Wi+1/2,R (t) as the left and right states in
the exact solution of the Riemann problem
24 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 25 / 61
Introduction to Second- & Higher-Order Reconstruction-Evolution Methods
25 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 26 / 61
The MUSCL/TVD Method
26 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 27 / 61
The MUSCL/TVD Method
The Method of Lines
∂Fx F
bx
s,i+1/2
(t) − F
bx
s,i−1/2
(t)
(xi , t) ≈
∂x ∆x
the above equation is called the semi-discrete finite volume/difference
approximation
Fbx is called the semi-discrete conservative numerical flux
s
the semi-discrete approximation comprises a system of ordinary
differential equations
in many cases, it is needed only at discrete time levels, in which case
it can be written as
bn
F bn
dWin xs,i+1/2 − Fxs,i−1/2
≈− (6)
dt ∆x
where Win = Wi (t n ) and F
bn n
xs,i+1/2 = Fxs,i+1/2 (t )
b
27 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 28 / 61
The MUSCL/TVD Method
The Method of Lines
Temporal Discretization
any ordinary differential equation solver (time-integration algorithm)
can be used to solve Eq. (6)
in other words, space is frozen and time is discretized
the resulting approximation – for example using FT
bn
F bn
Win+1 − Win xi+1/2 − Fxi−1/2
=
∆t ∆x
is called the fully discrete finite difference approximation, and F
bx is
called the fully discrete conservative numerical flux
The two-stage approximation procedure described above is
sometimes called the method of lines, where the lines are the
coordinate lines x = cst and t = cst
28 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 29 / 61
The MUSCL/TVD Method
Flux Splitting
Fx (W ) = Fx+ (W ) + Fx− (W )
Leads to
Therefore, one needs to approximate Fx+ W (xi+1/2 , t n ) – or
n
equivalently, W (xi+1/2
, t ) – with a leftward bias, nand
− n
Fx W (xi+1/2 , t ) – or equivalently, W (xi+1/2 , t ) – with a
rightward bias
29 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 30 / 61
The MUSCL/TVD Method
Second-Order Approximation
30 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 30 / 61
The MUSCL/TVD Method
Second-Order Approximation
30 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 30 / 61
The MUSCL/TVD Method
Second-Order Approximation
n+ 1 n+ n
ui+1/2 = ūin + n
φ (ūi − ūi−1 )
2 i
and achieves second-order accurate reconstruction (φ ≈ 1) in the
smooth regions of the flow
30 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 31 / 61
The MUSCL/TVD Method
Second-Order Approximation
31 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 32 / 61
The MUSCL/TVD Method
Second-Order Approximation
u(xi+1/2 , t n ) ≈ ūi+1
n
n− n 1 n− n n
ui+1/2 = ūi+1 − φ (ūi+2 − ūi+1 )
2 i+1
+
n 1 n+ n n
−
n 1 n− n n
= Fx W ūi + φi (ūi − ūi−1 ) + Fx W ūi+1 − φ (ūi+2 − ūi+1 )
2 2 i+1
dWin 1 + n 1 n+ n n
−
n 1 n− n n
⇒ = − Fx W ūi + φi (ūi − ūi−1 ) + Fx W ūi+1 − φ (ūi+2 − ūi+1 )
dt ∆x 2 2 i+1
1 + n 1 n+ n n
−
n 1 n− n n
+ Fx W ūi−1 + φi−1 (ūi−1 − ūi−2 ) + Fx W ūi − φ (ūi+1 − ūi )
∆x 2 2 i
1
+
n 1 n+ n n
+
n 1 n+ n n
= − F x W ūi + φi (ūi − ūi−1 ) − Fx W ūi−1 + φi−1 (ūi−1 − ūi−2 )
∆x
2 2
| {z }
+ n
∆fˆ
i−1/2
1 − n 1 n− n 1
n − n n− n n
− F
x W ū i+1 − φ ( ūi+2 − ū i+1 ) − F x W ū i − φ (ū i+1 − ū i )
∆x 2 i+1 2 i
| {z }
− n
∆fˆ
i+1/2
33 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 34 / 61
The MUSCL/TVD Method
Second-Order Approximation
34 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 35 / 61
The MUSCL/TVD Method
Van Leer’s Slope Limiter
Note that
rin± ≥ 0 if the solution u is monotone increasing or monotone
decreasing
rin± ≤ 0 if the solution u has a maxium or a minimum
|rin+ | is large and |rin− | is small if the solution differences decrease
n
dramatically from left to right or if ui+1 ≈ uin
|rin+ | is small and |rin− | is large if the solution differences increase
n
dramatically from left to right or if ui−1 ≈ uin
35 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 36 / 61
The MUSCL/TVD Method
Van Leer’s Slope Limiter
Very large or very small ratios |rin± | sometimes signal shocks, but
not always
n
for example, if ui+1 − uin = 0 and uin − ui−1
n
6= 0, then |rin+ | = ∞
regardless of whether the solution is smooth or shocked
in general, because there is only limited information contained in
solution samples, no completely reliable way to distinguish shocks
from smooth regions exists
consequently, slope-limited methods do not even attempt to identify
shocks: Instead, they regulate maxima and minima – whether or not
they are associated with shocks – using the nonlinear stability
conditions (for example, TVD)
36 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 37 / 61
The MUSCL/TVD Method
Van Leer’s Slope Limiter
2r
for r ≥0 limits the slope
φ(r ) = 1+r
0 for r <0 reverses to constant (first-order) reconstruction
Note that φ(1) = 1 (no slope limiting if the solution behaves locally as a linear (affine)
function)
Note also that lim φ(r ) = 2
r →∞
Equipping the scheme described in the previous pages with
n± n−/+
φi = φ ri
n−/+
(explain why in this case it is φ(ri ) and not φ(rin± )) makes it:
TVD and therefore nonlinearly stable
second-order accurate in monotone regions of the flow (proof given in class)
in practice, between first-order and second-order accurate at extrema
37 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 38 / 61
Steger-Warming Flux Vector Splitting Method for the Euler Equations
Fx (W ) = Fx+ (W ) + Fx− (W )
dFx+ dFx−
≥ 0, ≤0
dW dW
Hence, the flux split form of the Euler equations is
∂W ∂Fx+ ∂Fx−
+ + =0
∂t ∂x ∂x
∂Fx+
Then, can be discretized conservatively using at least one
∂x
∂Fx−
point to the left – for example, using BS – and can be
∂x
discretized conservatively using at least one point to the right – for
example, using FS – thus obtaining conservation and satisfaction of
the CFL condition
38 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 39 / 61
Steger-Warming Flux Vector Splitting Method for the Euler Equations
A(W ) = A+ (W ) + A− (W )
A+ (W ) ≥ 0, A− (W ) ≤ 0
Then, the vector conservation law can be written in wave speed split
form as
∂W ∂W ∂W
+ A+ + A− =0
∂t ∂x ∂x
where the matrices A+ and A− are usually obtained by splitting the
eigenvalues of A into positive and negative parts
− −
λi = λ+
i + λi , λ+
i ≥ 0, λi ≤ 0
=⇒ Λ = Λ+ + Λ− , Λ+ ≥ 0, Λ− ≤ 0
39 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 40 / 61
Steger-Warming Flux Vector Splitting Method for the Euler Equations
QAQ −1 = Λ ⇒ A = Q −1 ΛQ
where λ1 = vx λ 2 = vx + c λ 3 = vx − c
and
ρ ρ
− 2c
1 2c
ρ ρ
Q −1 vx 2c (vx + c) − 2c (vx − c)
= 2
2 2
2
2
vx ρ vx c ρ vx c
2 2c 2 + γ−1 + cvx − 2c 2 + γ−1 − cv x
v2 2
ρ ρ
c − 2 + γ−1
x c
c vx − ρc
γ−1 vx2 cvx c
Q =
2 − γ−1 −vx + γ−1 1
ρc
v2 cvx c
− 2x − γ−1 vx + γ−1 −1
A = A+ + A− , A+ ≥ 0, A− ≤ 0
A+ = Q −1 Λ+ Q ≥ 0, A− = Q −1 Λ− Q ≤ 0
40 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 41 / 61
Steger-Warming Flux Vector Splitting Method for the Euler Equations
1
γ−1 ±
Fx± = ρλ1 vx
γ 1 2
v
2 x
1
ρ ± v +c
+ λ x
2γ 2 1 2 c2
v
2 x
+ γ−1
+ cvx
1
ρ ± vx − c
+ λ3
2γ 1 2 c2
v + γ−1
2 x
− cvx
4 Lerat (1983): dFx+ /dW ≥ 0 and dFx− /dW ≤ 0
41 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 42 / 61
Steger-Warming Flux Vector Splitting Method for the Euler Equations
Practical implementation
compute at each grid point (constant reconstruction) or each edge of
each computational cell (linear reconstruction)
1 1
λ+
i = max(0, λi ) = (λi + |λi |), λ− (λi − |λi |)
i = min(0, λi ) =
2 2
(8)
compute at each grid point (constant reconstruction) or each edge of
each computational cell (linear reconstruction) the Mach number
vx
M= ∈] − ∞, −1] ∪ [−1, 0] ∪ [0, 1] ∪ [1, ∞[
c
42 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 42 / 61
Steger-Warming Flux Vector Splitting Method for the Euler Equations
Practical implementation
compute at each grid point (constant reconstruction) or each edge of
each computational cell (linear reconstruction)
1 1
λ+
i = max(0, λi ) = (λi + |λi |), λ− (λi − |λi |)
i = min(0, λi ) =
2 2
(8)
compute at each grid point (constant reconstruction) or each edge of
each computational cell (linear reconstruction) the Mach number
vx
M= ∈] − ∞, −1] ∪ [−1, 0] ∪ [0, 1] ∪ [1, ∞[
c
if M ≤ −1
Fx+ = 0, Fx− = Fx
42 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 42 / 61
Steger-Warming Flux Vector Splitting Method for the Euler Equations
Practical implementation
compute at each grid point (constant reconstruction) or each edge of
each computational cell (linear reconstruction)
1 1
λ+
i = max(0, λi ) = (λi + |λi |), λ− (λi − |λi |)
i = min(0, λi ) =
2 2
(8)
compute at each grid point (constant reconstruction) or each edge of
each computational cell (linear reconstruction) the Mach number
vx
M= ∈] − ∞, −1] ∪ [−1, 0] ∪ [0, 1] ∪ [1, ∞[
c
if M ≤ −1
Fx+ = 0, Fx− = Fx
if −1 ≤ M ≤ 0
1
ρ vx + c
Fx+ = (vx + c)
2γ 1 2 c2
v + γ−1 + cvx
2 x
1
1
γ−1 ρ vx − c
Fx− = ρvx vx + (vx − c)
γ 1 2
v 2γ 1 2 c2
v + γ−1 − cvx
2 x 2 x
42 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 43 / 61
Steger-Warming Flux Vector Splitting Method for the Euler Equations
43 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 43 / 61
Steger-Warming Flux Vector Splitting Method for the Euler Equations
if M > 1
Fx+ = Fx , Fx− = 0
43 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 44 / 61
Steger-Warming Flux Vector Splitting Method for the Euler Equations
44 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 45 / 61
Multidimensional Extensions
∂W ∂Fx (W ) ∂Fy (W )
+ + =0 (9)
∂t ∂x ∂y
and on unstructured triangular meshes
45 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 46 / 61
Multidimensional Extensions
46 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 47 / 61
Multidimensional Extensions
2D cell-centered grid
47 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 48 / 61
Multidimensional Extensions
2D vertex-based grid
48 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 49 / 61
Multidimensional Extensions
49 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 50 / 61
Multidimensional Extensions
50 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 51 / 61
Multidimensional Extensions
the cell edge ∂Cij , which is attached to the edge ij, is itself the union
of two segments Mij Gijk and Mij Gijn
51 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 52 / 61
Multidimensional Extensions
X 1 Z t n+1
!
1 →
−
Z
= − F ·~
νi? dΓi dt (11)
?
∆t t n kCi k ∂Ci?
53 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 54 / 61
Multidimensional Extensions
which leads to
\n
∂W X ∆t
n
∆t =− Fbi? (12)
∂t i ?
kCi k
where
t n+1 Z
→
−
Z Z
n 1 n n 1
Wi ≈ Wi (x, y , t )dΩ, Fbi? ≈ F · ~νi? dΓi dt
kCi k Ci ∆t tn ∂Ci?
(13)
Eq. (12) is the 2D extension of Eq. (1), and definitions (13) are the
2D extensions of definitions (2)
54 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 55 / 61
Multidimensional Extensions
I
z }| !{
1
Z t n+1 Z
→
−
bn
Hence, F ≈ F (W ) · ~
νi? dΓi dt
i?
∆t tn ∂Ci?
55 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 55 / 61
Multidimensional Extensions
I
z }| !{
1
Z t n+1 Z
→
−
bn
Hence, F ≈ F (W ) · ~
νi? dΓi dt
i?
∆t tn ∂Ci?
→
−
Z
A popular approximation of I is I ≈ F (W (Mi? , t)) · ~
νi? dΓi (1 quadrature point)
∂Ci?
t n+1
!
bn ≈ 1 →
−
Z Z
=⇒ F i? F (W (Mi? , t)) · ~
νi? dΓi dt is constructed in 2D similarly
∆t tn ∂Ci?
1
Z t n+1
bn
to how Fx ≈ Fx W (xi+1/2 , t) dt in constructed in 1D
i+1/2 ∆t tn
55 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 56 / 61
Multidimensional Extensions
→
−
Z
bn (WRiemann (0))
F = F (WRiemann (Mi? , t)) · ~
νi? dΓi
i?
∂Ci?
→
−
(1) (1) (2) (2)
= F (WRiemann (Mi? , t)) · l ~ νi? + l ~ νi?
56 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 57 / 61
Multidimensional Extensions
~0 T
(τ · e~x ) T
(Rx (W ) Ry (W ) Rz (W )) =
(τ · e~y ) T
(τ · e~z ) T
(τ · ~v + κ∇T ) T
57 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 58 / 61
Multidimensional Extensions
the eigenvalues of A~
ν ˜ ◦ ± c, and v~
˜ ◦ are: v~
ν ˜ ◦ with multiplicity 3
ν
ij ij ij
58 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 59 / 61
Multidimensional Extensions
59 / 61
AA214: NUMERICAL METHODS FOR COMPRESSIBLE FLOWS 60 / 61
Multidimensional Extensions
Method #2 for computing F
b W
ij Riemann (0) using Roe’s flux
comp 1 2 T
along the edge ij, “compress” the conservative fluid state vector to obtain W = (ρ ρvn ρe + ρvn ) , where
| {z } 2
3×1
vn = ~v ·~˜◦, ~
ν ij v denotes the fluid velocity vector, and comp stands for “compressed”
comp comp
along the edge ij, formulate Roe’s 1D approximate Riemann problem using W and W , and solve this
i j
1 T
comp comp 2
problem to obtain W (M , t) = W = ρRiemann (ρvn )Riemann (ρe + ρvn )Riemann
Riemann ij Riemann 2
now, given that the fluid velocity vector ~
v can be decomposed as ~ v = vn ~˜◦
ν + v − vn ~
(~ ˜ ◦ ) , it follows
ν
ij ij
| {z } | {z }
normal direction tangential direction
that (Roe’s) 1D approximate Riemann problem along the edge ij acts only on vn and therefore modifies only the
component of ~ v along ~˜◦
ν ij
next, “expand” ~vRiemann as
~
v
exp ˜ ◦ + (~
= vRiemann ~
ν ˜ ◦ )average = v exp
v − vn ~
ν ~
e +v
exp
~
e +v
exp
~
e
Riemann n ij ij Riemannx x Riemanny y Riemannz z
Note that
→
−
(1) (2)
Fbijn = F (WRiemann (Mij , t)) · l (1)~νij + l (2)~νij
→
−
(1) (2)
Fbjin = F (WRiemann (Mij , t)) · l (1)~νji + l (2)~νji
Since ~νji = −~νij , it follows that
Fbjin = −Fbijn
=⇒ Fbijn + Fbjin = 0 =⇒ Fbij is a conservative numerical flux
61 / 61