Summary of explicit methods:
Euler ! ! ! upwind = central + ε·diffusion, first order accurate
Runge-Kutta !! recall RK is `stable for convectionʼ, time-stepping adds dissipation:
! ! ! variations (low storage, higher damping) are used in CFD.
Lax-Wendroff ! minimum dissipation (ε=C), 2nd order accurate in space and time
MacCormick! ! two-step method, similar to L-W
Generally CFL < 1, or CFLstab → time-step restriction ∆t < min[ CFLstab ∆x / a
NOTE: distinction is stencil, algorithm uses RHS * ∆t
Finite volume thinking: flux interpolation, vs. finite-difference. ∂tu = -∂xF.
A. Finite volume-like semi-discretization
● ╎ ● ╎ ●
∫∂tu dx ≈ ∂tuj ∆x = -[ Fj+1/2 - Fj-1/2 ] j-1 j-½ j j+ ½ j+1
Recall uj is cell average: ∂u/∂t Vj = -Fj+1/2 Aj+1/2 + Fj-1/2 Aj-1/2 . The focus of hyperbolic
numerics is the RHS -- e.g., flux interpolation, limiters, splitting, etc.
F! ? x
! ! |
! x
! | j-½ | |
x j-1 j j+1
What are the cell face fluxes? F= true flux; F̃ = numerical flux
Numerical ≠ True, e.g. upwinding
1
, AerE 546 % Lecture 20
B. Estimate of F̃ j-1/2 : Interpolation methods: F = a +b s + c s2 ....
Piecewise constant
! ! ! ! ! ! j-1 j j+1
Piecewise linear
% % % % % % j j+1/2 j+1
Fj−1 +O(∆x), u > 0
1st order upwind: F̃j−1/2 = Fj+1 +O(∆x), u < 0
1
2nd order central: F̃j−1/2 = (Fj + Fj−1 ) +O(∆x)2
2
1
(3Fj + 6Fj−1 − Fj−2 ), u > 0
8
QUICK: F̃j−1/2 = 1 +O(∆x)3
(3Fj−1 + 6Fj − Fj+1 ), u < 0
8
QUICK is quadratic: upwind biased. Lagrange interpolation at j+1/2:
(xj+1 − x)(xj − x) (xj+1 − x)(xj−1 − x) (xj − x)(xj−1 − x)
F = Fj−1 2
− Fj 2
+ Fj+1
2∆x ∆x 2∆x2
Fj−1 3Fj 3Fj+1
Fj+1/2 =− + +
8 4 8
Or fit a quadratic, F = a +b s + c s2
s=0,-1,-2: a= Fj ; Fj-1 = Fj - b+c ; Fj-2 = Fj - 2b+ 4c → Fj-1/2 = Fj - b/2+c/4
Fj-1/2 = Fj (1/2)(3/2)/2 + Fj-1 1/2(3/2) - Fj-2 1/2(1/2)/2 = 3/8Fj + 3/4Fj-1 - 1/8Fj-2
2