Document 13575431

advertisement
18.336 spring 2009
lecture 20
04/23/09
Operator Splitting
IVP: ut = Au + Bu
where A, B differential operators.
Most accurate: Discretize Au + Bu, and time step with high order.
But: Sometimes not possible, or too costly.
Alternative: fractional steps
⎧
⎨ Time step t → t + Δt :
(1) Solve ut = Au
⎩
(2) Solve ut = Bu
Special case: A,B linear
Solution operators:
etA u0 :
solution of ut = Au, u(0) = u0
tB
e u0 :
solution of ut = Bu, u(0) = u0
et(A+B) u0 : solution of ut = Au + Bu, u(0) = u0
True solution:
Lie splitting:
Strang splitting:
SWSS splitting:
u(t + Δt) = eΔt(A+B) u(t)
uL (t + Δt) = eΔtA eΔtB u(t)
1
1
uS (t + Δt) = e 2 ΔtA eΔtB e 2 ΔtA u(t)
uSW (t + Δt) = 12 (eΔtA eΔtB + eΔtB eΔtA )u(t)
Local Truncation Errors:
2
Lie:
uL (t + Δt) − u(t + Δt) = Δt2 [A, B]u(t) + O(Δt3 )
1
1
Strang: us (t + Δt) − u(t + Δt) = Δt3 · ( 12
[B, [B, A]] − 24
[A, [A, B]])u(t) + O(Δt4 )
SWSS: usw (t + Δt) − u(t + Δt) = O(Δt3 )
Commutator: [A, B] = AB − BA
If operators A and B commute, then all splittings are exact;
Otherwise:
• Lie (globally) first order accurate,
• Strang and SWSS (globally) second order accurate.
Ex.: Convection-Diffusion equation
ut + cux = duxx
Solution: u(x, t) = h(x − ct, t), where h solves ht = dhxx
Au = −cux and Bu = duxx
ABu = −c(duxx )x = −cduxxx = BAu ⇒ [A, B] = 0
⇒ splitting exact ⇒ use Lie splitting
1
Ex.: Convection-Reaction equation
ut + cux = a − bu
Au = −cux and Bu = a − bu
ABu = −c(a − bu)x = bcux
BAu = a − b(−cux ) = a + bcux
[A, B] �= 0 ⇒ use Strang splitting to be second order accurate
Ex.: Dimensional splitting
2D Advection
ut + aux + buy = 0
(1) ut + aux = 0 for Δt
(2) ut + buy = 0 for Δt
Au = −aux , Bu = −buy , [A, B] = 0
Remark: No error due to splitting, if
ut = Au and ut = Bu solved exactly.
If discretized in time, results will in general differ.
n
Uijn+1 − Uijn
Uijn − Uin−1,j
Uijn − Ui,j−1
= −a
−b
Δt
Δx
Δy
∗
n
n
n
Uij − Uij
Uij − Ui−1,j
Lie-splitting: (1)
= −a
Δt
Δx
n+1
∗
∗
∗
Uij − Uij
Uij − Ui,j−1
(2)
= −b
Δt
Δy
Hence:
Ex.: FE unsplit:
[a, b > 0]
aΔt n
bΔt n
n
n
(Uij − Ui−1,j
)−
(U − Ui,j−1
)
Δx
Δy ij
ab(Δt)2 n
n
+
(U − Uin−1,j − Ui,j−1
+ Uij )
ΔxΔy ij
Uijn+1 =Uijn −
2
MIT OpenCourseWare
http://ocw.mit.edu
18.336 Numerical Methods for Partial Differential Equations
Spring 2009
For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms.
Download