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.