Use Riemann Solver for Fine Scale Model Hann-Ming Henry Juang RSM workshop 2011
Jan 08, 2016
Use Riemann Solver for Fine Scale Model
Hann-Ming Henry Juang
RSM workshop 2011
Contents• Introducing Riemann Solver
– Simple 1D for easy illustration
• Possible 2D– In shallow water equation– In nonhydrostatic system
• How about 3D?– With splitting, 2D then 1D in vertical
• Discussion– advantage– Future work
€
∂u
∂t+ u
∂u
∂x+ g
∂h
∂x= 0
On dimensional shallow water equation
can be written as
€
∂∂t
h
u
⎛
⎝ ⎜
⎞
⎠ ⎟+
u h
g u
⎛
⎝ ⎜
⎞
⎠ ⎟∂
∂x
h
u
⎛
⎝ ⎜
⎞
⎠ ⎟= 0
And we can have a matrix L and it inverse matrix L-1 for the above matrix be diagonal matrix with eigenvector as
€
∂h
∂t+
∂(uh)
∂x= 0
€
L−1 u h
g u
⎛
⎝ ⎜
⎞
⎠ ⎟L =
C1 0
0 C2
⎛
⎝ ⎜
⎞
⎠ ⎟
€
LL−1 =1
&
&
then the shallow water equation can be written as
€
∂∂t
R1
R2
⎛
⎝ ⎜
⎞
⎠ ⎟+
C1 0
0 C2
⎛
⎝ ⎜
⎞
⎠ ⎟∂
∂x
R1
R2
⎛
⎝ ⎜
⎞
⎠ ⎟= 0
so
where
€
R1 = gh + u /2
R2 = gh − u /2
C1 = u + gh
C2 = u − gh
€
L−1 ∂
∂t
h
u
⎛
⎝ ⎜
⎞
⎠ ⎟+ L−1 u h
g u
⎛
⎝ ⎜
⎞
⎠ ⎟LL−1 ∂
∂x
h
u
⎛
⎝ ⎜
⎞
⎠ ⎟= 0
€
L−1 u h
g u
⎛
⎝ ⎜
⎞
⎠ ⎟L =
C1 0
0 C2
⎛
⎝ ⎜
⎞
⎠ ⎟ & LL−1 =
1 0
0 1
⎛
⎝ ⎜
⎞
⎠ ⎟
we can find L to be
€
∂Ri
∂t+ Ci
∂Ri
∂x= 0
∂R2
∂t+ C2
∂R2
∂x= 0
or
So the procedure to solve the 1D SWE by
1) Obtain R and C from u and h at any model grid as
€
R1(t) = gh(t) + u(t) /2
R2(t) = gh(t) − u(t) /2
€
C1(t) = u(t) + gh(t)
C2(t) = u(t) − gh(t)&
2) Use advection eq to solve next time step of R by
€
∂Ri
∂t+ Ci
∂Ri
∂x= 0
3) Obtain next time step u and h and C by
€
u(t + Δt) = R1(t + Δt) − R2(t + Δt)
h(t + Δt) =1
g
R1(t + Δt) + R2(t + Δt)
2
⎛
⎝ ⎜
⎞
⎠ ⎟2
4) Back to 2) for the next time
to get
€
R1(t + Δt) and R2(t + Δt)
&
€
C1(t + Δt) = u(t + Δt) + gh(t + Δt)
C2(t + Δt) = u(t + Δt) − gh(t + Δt)
Nonhydrostatic system
€
∂u
∂t= −u
∂u
∂x− RT
∂Q
∂x∂Q
∂t= −u
∂Q
∂x− γ
∂u
∂x
⎛
⎝ ⎜
⎞
⎠ ⎟
For Riemann solver, we let the above be
€
∂∂t
Q
u
⎛
⎝ ⎜
⎞
⎠ ⎟+
u γ
RT u
⎛
⎝ ⎜
⎞
⎠ ⎟∂
∂x
Q
u
⎛
⎝ ⎜
⎞
⎠ ⎟= 0
€
∂R1
∂t= −c1
∂R1
∂x∂R2
∂t= −c2
∂R2
∂x
where
€
R1 = RT /γ Q + u
R2 = RT /γ Q − u
c1 = u + γRT
c2 = u − γRT
or
€
dR1
dt= 0
dR2
dt= 0
The initial acoustic spread
After 800s with different CFL
2D nonhydrostatic tests in x-z with isotherm
€
∂u
∂t= −u
∂u
∂x− w
∂u
∂z− RT
∂ ′ Q
∂x∂w
∂t= −u
∂w
∂x− w
∂w
∂z− RT
∂ ′ Q
∂z
∂ ′ Q
∂t= −u
∂ ′ Q
∂x− w
∂ ′ Q
∂z− γ
∂u
∂x+
∂w
∂z
⎛
⎝ ⎜
⎞
⎠ ⎟+
gw
RT
where
€
∂Q
∂z= −
g
RT
Q = Q + ′ Q
2D tests in x-z (non-forcing) – Q’(t=30s)
2D tests in x-z (non-forcing) – Q’(t=60s)
€
∂u
∂t+ u
1
acosφ
∂u
∂λ+ v
1
a
∂u
∂φ+
g
acosφ
∂H
∂λ− f +
u tanφ
a
⎛
⎝ ⎜
⎞
⎠ ⎟v = 0
∂v
∂t+ u
1
acosφ
∂v
∂λ+ v
1
a
∂v
∂φ+
g
a
∂H
∂φ+ f +
u tanφ
a
⎛
⎝ ⎜
⎞
⎠ ⎟u = 0
∂h
∂t+ u
1
acosφ
∂h
∂λ+ v
1
a
∂h
∂φ+
h
acosφ
∂u
∂λ+
∂v cosφ
∂φ
⎛
⎝ ⎜
⎞
⎠ ⎟= 0
€
u = acosφdλ
dt
where
€
H = h + hs
SWE on spherical coordinates can be written as
€
v = adφ
dt
€
1
acosφ
∂
∂λ=
∂
∂ ′ λ
1
a
∂
∂φ=
∂
∂ ′ φ
let
rewrite the previous SWE into
€
∂∂t
h
u
v
⎛
⎝
⎜ ⎜ ⎜
⎞
⎠
⎟ ⎟ ⎟+
u h 0
g u 0
0 0 u
⎛
⎝
⎜ ⎜ ⎜
⎞
⎠
⎟ ⎟ ⎟
∂
∂ ′ λ
h
u
v
⎛
⎝
⎜ ⎜ ⎜
⎞
⎠
⎟ ⎟ ⎟+
v 0 h
0 v 0
g 0 v
⎛
⎝
⎜ ⎜ ⎜
⎞
⎠
⎟ ⎟ ⎟
∂
∂ ′ φ
h
u
v
⎛
⎝
⎜ ⎜ ⎜
⎞
⎠
⎟ ⎟ ⎟+
−tanφ
ahv
− fv −tanφ
auv + g
∂hs
∂ ′ λ
fu +tanφ
auu + g
∂hs
∂ ′ φ
⎛
⎝
⎜ ⎜ ⎜ ⎜ ⎜ ⎜
⎞
⎠
⎟ ⎟ ⎟ ⎟ ⎟ ⎟
= 0
Then dimensional split into
€
∂∂t
h
u
v
⎛
⎝
⎜ ⎜ ⎜
⎞
⎠
⎟ ⎟ ⎟+
u h 0
g u 0
0 0 u
⎛
⎝
⎜ ⎜ ⎜
⎞
⎠
⎟ ⎟ ⎟
∂
∂ ′ λ
h
u
v
⎛
⎝
⎜ ⎜ ⎜
⎞
⎠
⎟ ⎟ ⎟+
1
2
0
− fv −tanφ
auv + g
∂hs
∂ ′ λ
fu +tanφ
auu + g
∂hs
∂ ′ φ
⎛
⎝
⎜ ⎜ ⎜ ⎜ ⎜ ⎜
⎞
⎠
⎟ ⎟ ⎟ ⎟ ⎟ ⎟
= 0
€
∂∂t
h
u
v
⎛
⎝
⎜ ⎜ ⎜
⎞
⎠
⎟ ⎟ ⎟+
v 0 h
0 v 0
g 0 v
⎛
⎝
⎜ ⎜ ⎜
⎞
⎠
⎟ ⎟ ⎟
∂
∂ ′ φ
h
u
v
⎛
⎝
⎜ ⎜ ⎜
⎞
⎠
⎟ ⎟ ⎟+
1
2
−2tanφ
ahv
− fv −tanφ
auv + g
∂hs
∂ ′ λ
fu +tanφ
auu + g
∂hs
∂ ′ φ
⎛
⎝
⎜ ⎜ ⎜ ⎜ ⎜ ⎜
⎞
⎠
⎟ ⎟ ⎟ ⎟ ⎟ ⎟
= 0
Discussion• 2D system should be evaluated carefully.• 3D system can apply splitting method, do 2D
first then 1D vertical, so it is no problem if 2D isno probelm.
• Since it becomes an advection equation, semi-Lagrangian with splitting can be used to solve it with stable integration.
• The solution becomes non isotropic while CFL is larger then 1 or 2, more to examine and resolve with additional method.