Professional Documents
Culture Documents
MFC 2022 Exercises Block 2 v1
MFC 2022 Exercises Block 2 v1
Exercises - Block 2
by
José C. F. Pereira / José M. Chaves Pereira / Duarte M. S. Albuquerque
Mech. Eng. Dept. / LASEF / Pav. Mecânica I
jcfpereira@tecnico.ulisboa.pt / jose.chaves@tecnico.ulisboa.pt / duartealbuquerque@tecnico.ulisboa.pt
𝜙𝑗𝑛+1 − 𝜙𝑗𝑛 𝑛
𝜙𝑗+1 − 2𝜙𝑗𝑛 + 𝜙𝑗−1
𝑛
For space we will use index 𝑗,
=𝑣 𝑖 𝑜𝑟 𝐼 will be the imaginary complex
∆𝑡 ∆𝑥 2
Consider at the central grid point a periodic perturbation with a wavenumber of 2∆𝑥
lowest
𝜙𝑗𝑛 = 𝑎𝑛 𝑒 𝑖𝜃𝑗 𝜙𝑗𝑛+1 = 𝑎𝑛+1 𝑒 𝑖𝜃𝑗 𝑘𝑚𝑖𝑛 = 𝜋/∆𝑥
wavenumber
𝑛+1
𝑛+1
𝜙𝑗+1 = 𝑎𝑛 𝑒 𝑖𝜃(𝑗−1) = 𝑎𝑛 𝑒 𝑖𝜃𝑗 𝑒 −𝑖𝜃 𝜙𝑗+1 = 𝑎𝑛 𝑒 𝑖𝜃(𝑗+1) = 𝑎 𝑛 𝑒 𝑖𝜃𝑗 𝑒 +𝑖𝜃
𝑣∆𝑡 𝑖𝜃
𝑎𝑛+1 𝑒 𝑖𝜃𝑗 = 𝑎𝑛 𝑒 𝑖𝜃𝑗 + 𝑎𝑛 𝑒 𝑖𝜃𝑗 2 (𝑒 − 2 + 𝑒 −𝑖𝜃 )
∆𝑥
d𝐢𝐯𝐢𝐝𝐢𝐧𝐠 𝐛𝐲 𝒆𝒊𝜽𝒋 diffusive criterion 𝛾
𝒂𝒏+𝟏
Amplification Factor 𝑮 = 𝒏 = 1 + 𝛾(𝑒 𝑖𝜃 − 2 + 𝑒 −𝑖𝜃 ) 𝒆𝒊𝜽 + 𝒆−𝒊𝜽 = 𝟐𝒄𝒐𝒔[𝜽]
𝒂
𝑎𝑛+1
𝐺= = 1 + 𝛾 𝑒 +𝑖𝜃 − 2 + 𝑒 −𝑖𝜃 = 1 + 𝛾( −2 + 2𝑐𝑜𝑠 𝜃 )
𝑎𝑛
−1 ≤ 1 + 𝛾( − 2 + 2𝑐𝑜𝑠 𝜃 )
| 1 + 𝛾( −2 + 2𝑐𝑜𝑠 𝜃 ) | ≤ 1 ⟺
1 + 𝛾( − 2 + 2𝑐𝑜𝑠 𝜃 ) ≤ 1
−2 ≤ 𝛾( − 2 + 2𝑐𝑜𝑠 𝜃 )
𝛾( − 2 + 2𝑐𝑜𝑠 𝜃 ) ≤ 0
1 ∆𝑡 1
4𝛾 ≤ 2 ⟺ 𝛾 ≤ ⟺ 𝑣 2 ≤ Diffusive Criterion for stability
2 ∆𝑥 2
𝑎𝑛+1
𝐺= = 1 + 𝛾( −2 + 2𝑐𝑜𝑠 𝜃 ) = 1 + 𝛾(−4 𝑠𝑖𝑛2 𝜃/2 )
𝑎𝑛
−1 ≤ 1 − 4 𝛾 𝑠𝑖𝑛2 𝜃/2
| 1 − 4 𝛾 𝑠𝑖𝑛2 𝜃/2 | ≤ 1 ⟺
1 − 4 𝛾 𝑠𝑖𝑛2 𝜃/2 ≤ 1
4 𝛾 𝑠𝑖𝑛2 𝜃/2 ≤ 2
−4 𝛾 𝑠𝑖𝑛2 𝜃/2 ≤ 0
1
4 𝛾 𝑠𝑖𝑛2 𝜃/2 ≤ 2 ⟺ 𝛾 𝑠𝑖𝑛2 𝜃/2 ≤ Worst scenario 𝑠𝑖𝑛2 𝜃/2 = 1
2
∆𝑥
Volume 𝜕𝜑
𝑑𝑉 = 𝛻 ∙ 𝜗𝛻𝜑 𝑑𝑉
integration 𝑉 𝜕𝑡 𝑉
𝜑𝑖,𝑗+1
∆𝑦
𝜕𝜑
Gauss theorem 𝑑𝑉 = 𝜗𝛻𝜑 ∙ 𝑛𝑑𝑆
𝑉 𝜕𝑡 𝑆
𝜑𝑖−1,𝑗 𝜑𝑖,𝑗 𝜑𝑖+1,𝑗
𝜑𝑛+1 − 𝜑𝑛
Second Order ∆𝑉 = 𝜗𝛻𝜑𝑓𝑛 ∙ 𝑛𝑓 𝐴𝑓
∆𝑡
𝑓∈𝑓𝑎𝑐𝑒𝑠
𝑛+1 𝑛 𝑛 𝑛 𝑛 𝑛
𝜑𝑖,𝑗 − 𝜑𝑖,𝑗 𝜑𝑖+1,𝑗 − 𝜑𝑖,𝑗 𝜑𝑖,𝑗 − 𝜑𝑖−1,𝑗
∆𝒙∆𝒚/𝝑 = ∆𝑦 − ∆𝑦 +
∆𝑡 ∆𝑥 ∆𝑥
𝜑𝑖,𝑗−1
𝑛 𝑛 𝑛 𝑛
𝜑𝑖,𝑗+1 − 𝜑𝑖,𝑗 𝜑𝑖,𝑗 − 𝜑𝑖,𝑗−1
+ ∆𝑥 − ∆𝑥
∆𝒙 ≠ ∆𝒚 ∆𝑦 ∆𝑦
∆𝑥
Volume 𝜕𝜑
𝑑𝑉 = 𝛻 ∙ 𝜗𝛻𝜑 𝑑𝑉
integration 𝑉 𝜕𝑡 𝑉
𝜑𝑖,𝑗+1
∆𝑦
𝜕𝜑
Gauss theorem 𝑑𝑉 = 𝜗𝛻𝜑 ∙ 𝑛𝑑𝑆
𝑉 𝜕𝑡 𝑆
𝜑𝑖−1,𝑗 𝜑𝑖,𝑗 𝜑𝑖+1,𝑗
𝜑𝑛+1 − 𝜑𝑛
Second Order ∆𝑉 = 𝜗𝛻𝜑𝑓𝑛 ∙ 𝑛𝑓 𝐴𝑓
∆𝑡
𝑓∈𝑓𝑎𝑐𝑒𝑠
𝑛+1 𝑛 𝑛 𝑛 𝑛 𝑛
𝜑𝑖,𝑗 − 𝜑𝑖,𝑗 𝜑𝑖+1,𝑗 − 𝜑𝑖,𝑗 𝜑𝑖,𝑗 − 𝜑𝑖−1,𝑗
∆𝒙∆𝒚/𝝑 = ∆𝑦 − ∆𝑦 +
∆𝑡 ∆𝑥 ∆𝑥
𝜑𝑖,𝑗−1
𝑛 𝑛 𝑛 𝑛
𝜑𝑖,𝑗+1 − 𝜑𝑖,𝑗 𝜑𝑖,𝑗 − 𝜑𝑖,𝑗−1
+ ∆𝑥 − ∆𝑥
∆𝒙 ≠ ∆𝒚 ∆𝑦 ∆𝑦
∆𝒙 ≠ ∆𝒚 𝑛+1
𝜑𝑖,𝑗 𝑛
= 𝜑𝑖,𝑗 𝑛
+ 𝛾𝑥 𝜑𝑖+1,𝑗 𝑛
− 2𝜑𝑖,𝑗 𝑛
+ 𝜑𝑖−1,𝑗 𝑛
+ 𝛾𝑦 𝜑𝑖,𝑗+1 𝑛
− 2𝜑𝑖,𝑗 𝑛
+ 𝜑𝑖,𝑗−1
𝑛
𝑛
𝜑𝑖,𝑗 = 𝑎𝑛 𝑒 𝑖𝜃𝑖𝐼 𝑒 𝑗𝜃𝑗 𝐼 𝜑𝑖+1,𝑗 = 𝑎𝑛 𝑒 (𝑖+1)𝜃𝑖𝐼 𝑒 𝑗𝜃𝑗𝐼 𝑛+1
𝜑𝑖,𝑗−1 = 𝑎𝑛+1 𝑒 𝑖𝜃𝑖𝐼 𝑒 (𝑗+1)𝜃𝑗𝐼
𝑛
𝑛
𝜑𝑖,𝑗 = 𝑎𝑛 𝑒 𝑖𝜃𝑖𝐼 𝑒 𝑗𝜃𝑗 𝐼 𝜑𝑖+1,𝑗 = 𝑎𝑛 𝑒 (𝑖+1)𝜃𝑖𝐼 𝑒 𝑗𝜃𝑗𝐼 𝑛+1
𝜑𝑖,𝑗−1 = 𝑎𝑛+1 𝑒 𝑖𝜃𝑖𝐼 𝑒 (𝑗+1)𝜃𝑗𝐼
𝑎𝑛+1
𝐺 = 𝑛 = 1 + 𝛾𝑥 𝑒 𝜃𝑖𝐼 − 2 + 𝑒 −𝜃𝑖𝐼 + 𝛾𝑦 𝑒 𝜃𝑗 𝐼 − 2 + 𝑒 −𝜃𝑗 𝐼 𝑒 𝑖𝜃 = cos 𝜃 + 𝑖 sin(𝜃)
𝑎
𝑎𝑛+1
𝐺 = 𝑛 = 1 + 𝛾𝑥 𝑐𝑜𝑠 𝜃𝑖 + 𝐼𝑠𝑖𝑛 𝜃𝑖 − 2 + 𝑐𝑜𝑠 𝜃𝑖 − 𝐼𝑠𝑖𝑛 𝜃𝑖 +
𝑎
Amplification
Factor +𝛾𝑦 𝑐𝑜𝑠 𝜃𝑗 + 𝐼𝑠𝑖𝑛 𝜃𝑗 − 2 + 𝑐𝑜𝑠 𝜃𝑗 − 𝐼𝑠𝑖𝑛 𝜃𝑗
𝑎𝑛+1
𝐺 = 𝑛 = 1 + 𝛾𝑥 𝑐𝑜𝑠 𝜃𝑖 − 2 + 𝑐𝑜𝑠 𝜃𝑖 + 𝛾𝑦 𝑐𝑜𝑠 𝜃𝑗 − 2 + 𝑐𝑜𝑠 𝜃𝑗
𝑎
𝑎𝑛+1
𝐺 = 𝑛 = 1 + 2𝛾𝑥 𝑐𝑜𝑠 𝜃𝑖 − 1 + 2𝛾𝑦 𝑐𝑜𝑠 𝜃𝑗 − 1 A real number
𝑎
1
𝜋 𝐺 = 1 − 4𝛾 ≥ −1 𝛾≤
𝜃= 2
2 𝐺 = 1 − 4𝛾 ≤ 1 𝛾≥0
1 Most restricted
𝐺 = 1 − 8𝛾 ≥ −1 𝛾≤ condition
𝜃=𝜋 4
𝐺 = 1 − 8𝛾 ≤ 1 𝛾≥0
𝑎𝑛+1
𝐺 = 𝑛 = 1 + 4𝛾 𝑐𝑜𝑠 𝜃 − 1
𝑎
𝛾 = 0.5
𝐼𝑚𝑎𝑔 (𝐺)
𝑎𝑛+1
𝐺 = 𝑛 = 1 + 2𝛾𝑥 𝑐𝑜𝑠 𝜃𝑖 − 1 + 2𝛾𝑦 𝑐𝑜𝑠 𝜃𝑗 − 1 ≤ 1
𝑎
𝛾𝑥 𝑐𝑜𝑠 𝜃𝑖 − 1 + 𝛾𝑦 𝑐𝑜𝑠 𝜃𝑗 − 1 ≤ 0
𝜙𝑗𝑛+1 − 𝜙𝑗𝑛 𝑛
𝜙𝑗+1 𝑛
− 𝜙𝑗−1 here we use an index j because
+𝑢 =0 i will be the complex imaginary
∆𝑡 2∆𝑥
To perform the stability analysis one has to replace the numerical variables by a correspondent
'generic' Fourier mode:
𝜙𝑗𝑛+1 = 𝑎𝑛+1 𝑒 𝑖𝜃𝑗 𝜙𝑗𝑛 = 𝑎𝑛 𝑒 𝑖𝜃𝑗 𝑛
𝜙𝑗+1 = 𝑎𝑛 𝑒 𝑖𝜃(𝑗+1)
Thus, substituting:
𝑐 𝑛 𝑖𝜃
𝑎𝑛+1 − 𝑎𝑛 + 𝑎 𝑒 − 𝑒 −𝑖𝜃 = 0
2
𝑐 𝑛 𝑖𝜃 𝑐 𝑖𝜃
𝑎𝑛+1 = 𝑎𝑛 − 𝑎 𝑒 − 𝑒 −𝑖𝜃 𝑎𝑛+1 = 𝑎𝑛 1 − 𝑒 − 𝑒 −𝑖𝜃
2 2
𝑎𝑛+1 𝑐 𝑖𝜃
𝐺 = 𝑛 = 1 − 𝑒 − 𝑒 −𝑖𝜃 𝑒 𝑖𝜃 = cos 𝜃 + 𝑖 sin(𝜃)
𝑎 2
Changing the complex form, from exponential to 𝑥 + 𝑖𝑦: 𝑒 −𝑖𝜃 = cos −𝜃 + 𝑖 sin −𝜃 =
= cos 𝜃 − 𝑖 sin(𝜃)
𝑐
𝐺 = 1 − cos 𝜃 + 𝑖𝑠𝑖𝑛[𝜃] − cos 𝜃 − 𝑖𝑠𝑖𝑛[𝜃]
2
𝑐
𝐺 =1− cos 𝜃 + 𝑖𝑠𝑖𝑛 𝜃 − cos 𝜃 + 𝑖𝑠𝑖𝑛[𝜃]
2
𝐺 = 1 − 𝑖 𝑐 𝑠𝑖𝑛 𝜃
−𝑎 − 𝑏𝑖 = (−𝑎)2 + −𝑏 2 = 𝑎2 + 𝑏 2 = 𝑎 + 𝑏𝑖
𝐺 = 12 + 𝑐 2 𝑠𝑖𝑛 𝜃 2 → 𝐺 2 = 12 + 𝑐 2 𝑠𝑖𝑛 𝜃 2 ≥1
𝑐 = 0.5 𝑐 = 1.5
Blue circle represents
the stability condition
limit 𝐺 ≤ 1
Level 𝑛 − 1
𝑛−1
𝜙1𝑛−1 𝜙2𝑛−1 𝑛−1
𝜙𝑖−1 𝜙𝑖𝑛−1 𝜙𝑖+1
𝑛−1 𝑛−1
𝜙𝑁−1 𝜙𝑁
Level 𝑛 𝐹(𝜙 𝑛 )
𝜙1𝑛 𝜙2𝑛 𝑛
𝜙𝑖−1 𝜙𝑖𝑛 𝑛
𝜙𝑖+1 𝑛
𝜙𝑁−1 𝑛
𝜙𝑁
Level 𝑛 + 1
𝜙1𝑛+1 𝜙2𝑛+1 𝑛+1
𝜙𝑖−1 𝜙𝑖𝑛+1 𝜙𝑖+1
𝑛+1 𝑛+1
𝜙𝑁−1 𝑛+1
𝜙𝑁
Level 𝑛 − 1
𝑛−1
𝜙1𝑛−1 𝜙2𝑛−1 𝑛−1
𝜙𝑖−1 𝜙𝑖𝑛−1 𝜙𝑖+1
𝑛−1 𝑛−1
𝜙𝑁−1 𝜙𝑁
Level 𝑛 𝐹(𝜙 𝑛 )
𝜙1𝑛 𝜙2𝑛 𝑛
𝜙𝑖−1 𝜙𝑖𝑛 𝑛
𝜙𝑖+1 𝑛
𝜙𝑁−1 𝑛
𝜙𝑁
Level 𝑛 +2
𝜙1𝑛+2 𝜙2𝑛+2 𝑛+2
𝜙𝑖−1 𝜙𝑖𝑛+2 𝜙𝑖+1
𝑛+2 𝑛+2 𝑛+2
𝜙𝑁−1 𝜙𝑁
𝜙𝑗𝑛+1 − 𝝓𝒏−𝟏
𝒋 𝑛
= 𝐹(𝑡 𝑛 , 𝝓𝒏 )
𝑛
𝜙𝑗+1 = 𝑎𝑛 𝑒 𝑖𝜃(𝑗+1) = 𝑎𝑛 𝑒 𝑖𝜃𝑗 𝑒 +𝑖𝜃 𝜙𝑗−1 = 𝑎𝑛 𝑒 𝑖𝜃(𝑗−1) = 𝑎𝑛 𝑒 𝑖𝜃𝑗 𝑒 −𝑖𝜃
𝟐∆𝑡
Using Leap-Frog for time and following the same procedure as before:
𝜙𝑗𝑛+1 − 𝜙𝑗𝑛−1 𝑛
𝜙𝑗+1 𝑛
− 𝜙𝑗−1
+𝑢 =0 𝑎𝑛+1 𝑒 𝑖𝜃𝑗 = 𝑎𝑛−1 𝑒 𝑖𝜃𝑗 − 𝑐 𝑎𝑛 𝑒 𝑖𝜃(𝑗+1) − 𝑎𝑛 𝑒 𝑖𝜃(𝑗−1)
2∆𝑡 2∆𝑥
𝑎𝑛+1
To compute 𝐺 = we can 𝑎𝑛+1 = 𝑎𝑛−1 − 𝑐𝑎𝑛 𝑒 𝑖𝜃 − 𝑒 −𝑖𝜃
𝑎𝑛
use two distinct approaches
Now we will divide by 𝑎𝑛−1 in order to obtain positive powers of the amplification factor
𝑎 𝑛+1 𝑎𝑛−1 𝑎𝑛
= − 𝑐 𝑛−1 2𝑖 sin(𝜃) 𝐺 2 = 1 − 𝑐𝐺2𝑖 sin(𝜃)
𝑎 𝑛−1 𝑎𝑛−1 𝑎
𝐺 2 + 𝐺2𝑐𝑖 sin 𝜃 − 1 = 0
Then we have an algebraic equation for the quadratic polynomial of G whose solutions are:
Amplification Matrix 𝐺
𝐴−𝜆 1
Compute the eigenvalues = 𝜆2 − 𝐴𝜆 − 1 = 0 = 𝜆2 + 𝜆(2𝑐𝑖 sin 𝜃 ) − 1 = 0
of the matrix 1 −𝜆
same equation
−2𝑐𝑖 sin 𝜃 ± −4𝑐 2 sin 𝜃 2 +4
𝜆1,2 = from first approach
2
In this kind of situations we have to ensure the more restrictive of the solutions.
Looking to the solutions we clearly have an imaginary part (𝑐𝑖 sin 𝜃 ) and a term that can be real
or imaginary ( −𝑐 2 sin 𝜃 2 + 1). This second term can create two or three branches:
If c>1 then the square root can give an imaginary value which, in the second solution makes G>1
and then the scheme is unstable
If c=1 (a special case), both solutions are in the boundary of a circle with radius G=1 and a stable
scheme is obtained. It would give −𝑖𝑠𝑖𝑛(𝜃) ± cos(𝜃)
In this kind of situations we have to ensure the more restrictive of the solutions.
Looking to the solutions we clearly have an imaginary part (𝑐𝑖 sin 𝜃 ) and a term that can be real
or imaginary ( −𝑐 2 sin 𝜃 2 + 1). This second term can create three branches:
𝑐𝑜𝑠 𝜃 2 + sin 𝜃 2 =1
−𝑐𝑖 𝑠𝑖𝑛 𝜃 + 𝑐𝑜𝑠 𝜃
𝐺= 𝐺 =1
−𝑐𝑖 𝑠𝑖𝑛 𝜃 − 𝑐𝑜𝑠 𝜃
Stable for 𝒄 = 𝟏
𝐼𝑚𝑎𝑔 (𝐺)
𝑅𝑒𝑎𝑙 (𝐺)
𝑛
𝜑𝑗𝑛 = 𝑎𝑛 𝑒 𝑖𝜃𝑗 𝜑𝑗−1 = 𝑎 𝑛 𝑒 𝑖𝜃(𝑗−1) Courant number 𝑐 (or CFL number)
𝑎𝑛+1 𝑒 𝑖𝜃𝑗 = 𝑎𝑛 𝑒 𝑖𝜃𝑗 − 𝑐 𝑎𝑛+1 𝑒 𝑖𝜃𝑗 − 𝑎𝑛+1 𝑒 𝑖𝜃(𝑗−1) 𝑎𝑛+1 = 𝑎𝑛 − 𝑐 𝑎𝑛+1 − 𝑎𝑛+1 𝑒 −𝑖𝜃
1 1 + 𝑐 − 𝑐 𝑐𝑜𝑠 𝜃 − 𝑐 𝑖 𝑠𝑖𝑛 𝜃
𝐺= ∗
1 + 𝑐 − 𝑐 𝑐𝑜𝑠 𝜃 + 𝑐 𝑖 𝑠𝑖𝑛 𝜃 1 + 𝑐 − 𝑐 𝑐𝑜𝑠 𝜃 − 𝑐 𝑖 𝑠𝑖𝑛 𝜃
𝑐 = 0.5 𝑐 = 1.5 𝑐 = 50
2 2
2
1 + 𝑐 − 𝑐 𝑐𝑜𝑠 𝜃 + 𝑐 𝑠𝑖𝑛 𝜃
𝐺 = 2 ≤1 |𝐺|2 ≤ 1
2 2
1 + 𝑐 − 𝑐 𝑐𝑜𝑠 𝜃 + 𝑐 𝑠𝑖𝑛 𝜃
2
1 2 2
𝐺 = 2 2 ≤1 ⇔ 1 + 𝑐 − 𝑐 𝑐𝑜𝑠 𝜃 + 𝑐 𝑠𝑖𝑛 𝜃 ≥1
1 + 𝑐 − 𝑐 𝑐𝑜𝑠 𝜃 + 𝑐 𝑠𝑖𝑛 𝜃
2 2 2
1+𝑐 − 2 1 + 𝑐 𝑐 𝑐𝑜𝑠 𝜃 + 𝑐 𝑐𝑜𝑠 𝜃 + 𝑐 𝑠𝑖𝑛 𝜃 ≥1
2
1+𝑐 − 2 1 + 𝑐 𝑐 𝑐𝑜𝑠 𝜃 + 𝑐 2 ≥ 1
1 + 𝑐 2 + 2𝑐 − 2𝑐 𝑐𝑜𝑠 𝜃 − 2𝑐 2 𝑐𝑜𝑠 𝜃 + 𝑐 2 ≥ 1
2𝑐 2 + 2𝑐 − 2𝑐 𝑐𝑜𝑠 𝜃 − 2𝑐 2 𝑐𝑜𝑠 𝜃 ≥ 0
𝑐 2 + 𝑐 − 𝑐 𝑐𝑜𝑠 𝜃 − 𝑐 2 𝑐𝑜𝑠 𝜃 ≥ 0
𝑐 2 1 − 𝑐𝑜𝑠 𝜃 + 𝑐 1 − 𝑐𝑜𝑠 𝜃 ≥0
1 − 𝑐𝑜𝑠 𝜃 𝑐2 + 𝑐 ≥ 0
𝑐≠0
1 − 𝑐𝑜𝑠 𝜃 ≥ 0 ⟺ 1 ≥ 𝑐𝑜𝑠 𝜃
𝑐𝑜𝑠 𝜃 ≤ 1 ∀ 𝜃 TRUE
𝜙𝑖𝑛 = 𝑎𝑛 𝑒 𝑖𝜃𝑗
𝑣∆𝑡 𝑛 𝑖𝜃(𝑗)
𝑎𝑛+1 𝑒 𝑖𝜃𝑗 − 𝑎𝑛 𝑒 𝑖𝜃𝑗 + 𝑎 𝑒 − 𝑎𝑛 𝑒 𝑖𝜃(𝑗−1) = 0
∆𝑥
dividing by 𝑒 𝑖𝜃𝑗
𝑎𝑛+1 = 𝑎𝑛 1 − 𝑐 1 − 𝑒 −𝑖𝜃
𝑎𝑛+1
𝐺 = 𝑛 = 1 − 𝑐 1 − 𝑒 −𝑖𝜃
𝑎
𝐺 = 1 − 𝑐 1 − cos 𝜃 − 𝑖 𝑠𝑖𝑛[𝜃]
𝐺 = 1 − 𝑐 1 − cos 𝜃 + 𝑖 𝑠𝑖𝑛[𝜃]
𝐺 = 1 − 𝑐 + 𝑐 cos 𝜃 − 𝑐 𝑖 𝑠𝑖𝑛[𝜃]
𝑎𝑛+1
Θ𝑒𝑥 = −𝑐𝜃 𝐺𝑒𝑥 = 𝑛 =1 From Hirish Book
𝑎
𝜀𝐷 = 𝐺 = 1 − 2𝑐 + 2𝑐 2 + 2 1 − 𝑐 𝑐 cos 𝜃
−𝑐 sin 𝜃
𝐴𝑟𝑔 𝐺 = 𝐴𝑟𝑐𝑇𝑎𝑛
1 − 𝑐 + 𝑐 cos 𝜃
−𝑐 sin 𝜃
𝜀𝜙 = 𝐴𝑟𝑔 𝐺 /(−𝑐𝜃) = 𝐴𝑟𝑐𝑇𝑎𝑛 /(−𝑐𝜃)
1−𝑐+𝑐 cos 𝜃
−𝑐 sin 𝜃
𝜀𝐷 = 𝐺 = 1 − 2𝑐 + 2𝑐 2 + 2 1 − 𝑐 𝑐 cos 𝜃 𝜀𝜙 = 𝐴𝑟𝑐𝑇𝑎𝑛 /(−𝑐𝜃)
1 − 𝑐 + 𝑐 cos 𝜃
0≤𝜃≤𝜋
−𝑐 sin 𝜃
𝜀𝐷 = 𝐺 = 1 − 2𝑐 + 2𝑐 2 + 2 1 − 𝑐 𝑐 cos 𝜃 𝜀𝜙 = 𝐴𝑟𝑐𝑇𝑎𝑛 /(−𝑐𝜃)
1 − 𝑐 + 𝑐 cos 𝜃
0≤𝜃≤𝜋
−𝑐 sin 𝜃
𝜀𝐷 = 𝐺 = 1 − 2𝑐 + 2𝑐 2 + 2 1 − 𝑐 𝑐 cos 𝜃 𝜀𝜙 = 𝐴𝑟𝑐𝑇𝑎𝑛 /(−𝑐𝜃)
1 − 𝑐 + 𝑐 cos 𝜃
0≤𝜃≤𝜋
−𝑐 sin 𝜃
𝜀𝐷 = 𝐺 = 1 − 2𝑐 + 2𝑐 2 + 2 1 − 𝑐 𝑐 cos 𝜃 𝜀𝜙 = 𝐴𝑟𝑐𝑇𝑎𝑛 /(−𝑐𝜃)
1 − 𝑐 + 𝑐 cos 𝜃
0≤𝜃≤𝜋
−𝑐 sin 𝜃
𝜀𝐷 = 𝐺 = 1 − 2𝑐 + 2𝑐 2 + 2 1 − 𝑐 𝑐 cos 𝜃 𝜀𝜙 = 𝐴𝑟𝑐𝑇𝑎𝑛 /(−𝑐𝜃)
1 − 𝑐 + 𝑐 cos 𝜃
0≤𝜃≤𝜋
𝑢
𝑓 𝜑𝑖𝑛 = − 𝜑𝑖𝑛 − 𝜑𝑖−1
𝑛
∆𝑥
∆𝑡 𝑢
𝜑𝑖𝑛+1 = 𝜑𝑖𝑛 + − 𝜑𝑖𝑛 − 𝜑𝑖−1
𝑛
1 ∆𝑥
∆𝑡 𝑢 𝑢
𝜑𝑖𝑛+1 = 𝜑𝑖𝑛 + − 𝑛 𝑛
𝜑𝑖 − 𝜑𝑖−1 − 𝜑𝑖𝑛+1 − 𝜑𝑖−1
𝑛+1
2 ∆𝑥 ∆𝑥
∆𝑡 𝑢 𝑢
𝜑𝑖𝑛+1 = 𝜑𝑖𝑛 + − 𝜑𝑖𝑛 − 𝜑𝑖−1
𝑛
− 𝝋𝒏𝒊 + 𝒄 −𝝋𝒏𝒊 + 𝝋𝒏𝒊−𝟏 − 𝝋𝒏𝒊−𝟏 + 𝒄 −𝝋𝒏𝒊−𝟏 + 𝝋𝒏𝒊−𝟐
2 ∆𝑥 ∆𝑥
𝑐 𝑐 𝒏 𝑐2 𝑐 𝒏 𝑐2
𝜑𝑖𝑛+1 = 𝜑𝑖𝑛 − 𝜑𝑖𝑛 − 𝜑𝑖−1
𝑛
− 𝝋𝒊 + −𝝋𝒏𝒊 + 𝝋𝒏𝒊−𝟏 − 𝝋𝒊−𝟏 + −𝝋𝒏𝒊−𝟏 + 𝝋𝒏𝒊−𝟐
2 2 2 2 2
𝑐2
𝜑𝑖𝑛+1 = 𝜑𝑖𝑛 +𝑐 𝑛
𝜑𝑖−1 − 𝜑𝑖𝑛 + 𝑛
−2𝜑𝑖−1 + 𝜑𝑖𝑛 + 𝜑𝑖−2
𝑛
2
Do this as homework to confirm the result from previous year!
𝑐2 𝑐2 𝑐2
𝐺 = 1 + 𝑐 𝐶𝑜𝑠 𝜃 − 𝑐 + − 𝐶𝑜𝑠 𝜃 + 𝐶𝑜𝑠 2𝜃 +
2 1 2
𝑐2 𝑐2
𝑗 −𝑐 𝑆𝑖𝑛 𝜃 + 𝑆𝑖𝑛 𝜃 − 𝑆𝑖𝑛 2𝜃
1 2
𝜀𝐷 = 𝐺 𝜀𝜙 = 𝐴𝑟𝑔 𝐺 /(−𝑐𝜃)
𝜀𝐷 = 𝐺 𝜀𝜙 = 𝐴𝑟𝑔 𝐺 /(−𝑐𝜃)
𝜀𝐷 = 𝐺 𝜀𝜙 = 𝐴𝑟𝑔 𝐺 /(−𝑐𝜃)
𝜀𝐷 = 𝐺 𝜀𝜙 = 𝐴𝑟𝑔 𝐺 /(−𝑐𝜃)
Let
𝜕𝜑 𝜕𝜑 𝜕2 𝜑
+𝑢 =𝜗 2
𝜕𝑡 𝜕𝑥 𝜕𝑥
be discretized with upwind differences for convection, central differences for diffusion and first
order Euler explicit in time.
Find the amplitude and phase errors as a function of the frequency and Courant number.
𝐺 = 1 − 𝑐 1 − 𝑒 −𝑗𝜃 + 𝛾 𝑒 𝑗𝜃 − 2 + 𝑒 −𝑗𝜃
𝜃 = 𝑘∆𝑥
𝛿 = 𝑘 2 𝜗∆𝑡
𝜗∆𝑡
𝛾= 2
∆𝑥
𝛿 = 𝛾𝜃 2 𝜃
𝑤 = 𝑘𝑣∆𝑡 = 𝑣∆𝑡 = 𝑐𝜃
∆𝑥
IST, MFC, 2022 Exercises 67
Exercise 5.3: Convection Diffusion Euler
Amplification Factor
Phase error
Amplification Factor
Exact amplitude
Amplitude error Amplification factor in the previous slide
Phase error
Some more...
Some more...
Wavenumber 2𝜋 𝜋 2𝜋 2𝜋
𝑘𝑚𝑎𝑥 = = 𝑘𝑚𝑖𝑛 = =
𝜆𝑚𝑖𝑛 ∆𝑥 𝜆𝑚𝑎𝑥 𝐿
central differences:
𝑖𝑘 ∗ ∆𝑥 = 𝑖𝑠𝑖𝑛(𝑘∆𝑥) 𝐸𝑟𝑟𝑜 = 0
upwind differences:
𝑖𝑘 ∗ ∆𝑥 = 1 − cos 𝑘∆𝑥 + 𝑖𝑠𝑖𝑛(𝑘∆𝑥) 𝐸𝑟𝑟𝑜~1 − cos 𝑘∆𝑥
forward differences:
𝑖𝑘 ∗ ∆𝑥 = cos 𝑘∆𝑥 + 𝑖𝑠𝑖𝑛 𝑘∆𝑥 − 1 𝐸𝑟𝑟𝑜~ cos 𝑘∆𝑥 − 1
Level 𝑛 + 1 0 1
𝜑1𝑛+1 𝜑2𝑛+1 𝑛+1
𝜑𝑖−1 𝜑𝑖𝑛+1 𝜑𝑖+1
𝑛+1 𝑛+1
𝜑𝑁−1 𝑛+1
𝜑𝑁
Level 𝑛 + 1 0 1
𝜑1𝑛+1 𝜑2𝑛+1 𝑛+1
𝜑𝑖−1 𝜑𝑖𝑛+1 𝜑𝑖+1
𝑛+1 𝑛+1
𝜑𝑁−1 𝑛+1
𝜑𝑁
Level 𝑛 + 1 0 1
𝜑1𝑛+1 𝜑2𝑛+1 𝑛+1
𝜑𝑖−1 𝜑𝑖𝑛+1 𝜑𝑖+1
𝑛+1 𝑛+1
𝜑𝑁−1 𝑛+1
𝜑𝑁
Level 𝑛 + 1 0 1
𝜑1𝑛+1 𝜑2𝑛+1 𝑛+1
𝜑𝑖−1 𝜑𝑖𝑛+1 𝜑𝑖+1
𝑛+1 𝑛+1
𝜑𝑁−1 𝑛+1
𝜑𝑁
Consider the transient convection-diffusion equation with constant coefficients in a uniform grid.
Use upwind differences for the first derivative and central differences for the second derivative.
Obtain the discrete equations for 2 grid points using both Euler explicit and implicit methods for
temporal discretization.
𝜕𝜑 𝜕𝜑 𝜕2 𝜑 𝜑 𝑥, 𝑡 : 𝜑 0, 𝑡 = 𝜑𝐷 , 𝜑 1, 𝑡 = 1, 𝜑 𝑥, 0 = 𝜑𝐷
+𝑢 =𝜗 2 +𝑓
𝜕𝑡 𝜕𝑥 𝜕𝑥
𝑢>0 𝑓=0
𝑛
In terms of discrete points we have 𝜑1𝑛 = 0 𝜑𝑁 =1
u
0 1
𝜑1𝑛 𝜑2𝑛 𝑛
𝜑𝑖−1 𝜑𝑖𝑛 𝑛
𝜑𝑖+1 𝑛
𝜑𝑁−1 𝑛
𝜑𝑁
𝑢∆𝑡 𝜗∆𝑡
𝜑𝑖𝑛+1 = 𝜑𝑖𝑛 + −𝜑𝑖𝑛 + 𝜑𝑖−1
𝑛
+ 𝜑 𝑛
𝑖−1 − 2𝜑 𝑛
𝑖 + 𝜑 𝑛
𝑖+1
∆𝑥 ∆𝑥 2
𝑐 𝛾
Where Courant number and Diffusive Criterion are highlighted.
Level 𝑛 + 1 0 1
𝜑1𝑛+1 𝜑2𝑛+1 𝑛+1
𝜑𝑖−1 𝜑𝑖𝑛+1 𝜑𝑖+1
𝑛+1 𝑛+1
𝜑𝑁−1 𝑛+1
𝜑𝑁
For n=1 with Explicit Euler time scheme and computational time =∆𝑡
𝜑11 = 𝜑𝐷 𝑢∆𝑡
𝑐=
𝜑21 = 1 − 𝑐 − 2𝛾 𝜑20 + 𝜑𝐷 𝑐 + 𝛾 + 𝛾𝜑30 ∆𝑥
Level 𝑛 + 1 0 1
𝜑1𝑛+1 𝜑2𝑛+1 𝑛+1
𝜑𝑖−1 𝜑𝑖𝑛+1 𝜑𝑖+1
𝑛+1 𝑛+1
𝜑𝑁−1 𝑛+1
𝜑𝑁
𝑨𝝋𝑛+1 = 𝝋𝑛 + 𝒃
𝜑𝑖0 = 𝜑 𝑥𝑖 , 0 = 𝑥𝑖
−𝑐 − 𝛾 1 + 𝑐 + 2𝛾 0
𝜑𝑁−1 +𝛾𝜑𝐷 0
𝜑𝑁−1
𝜕𝜑 𝜕𝜑
+ 𝛻 ∙ 𝑢𝜑 = 𝛻 ∙ 𝜗𝛻𝜑 𝑑𝑉 + 𝛻 ∙ 𝑢𝜑 𝑑𝑉 = 𝛻 ∙ 𝜗𝛻𝜑 𝑑𝑉
𝜕𝑡 𝜕𝑡
𝑉 𝑉 𝑉
integrating
𝝏𝝋
𝒅𝑽 + 𝒖𝝋 ∙ 𝒏𝒅𝑺 = 𝜗𝛻𝜑 ∙ 𝑛𝑑𝑆
Gauss theorem 𝑽 𝝏𝒕 𝑺 𝑆
𝜕𝜑 𝜕𝜑
𝑑𝑉 + 𝑢𝜑 ∙ 𝑛𝑑𝑆 = 𝜗𝛻𝜑 ∙ 𝑛𝑑𝑆 𝜑𝑢 ∙ 𝑛𝑑𝑠 = 𝜗 ∙ 𝑛𝑑𝑠
𝑉 𝜕𝑡 𝑆 𝑆 𝑆 𝑆 𝜕𝑥
Back to 1D steady
𝜕𝜑 𝜕 2𝜑
Starting with the steady version of the equation: 𝑢 =𝜗 2
𝜕𝑥 𝜕𝑥
𝜕𝜑
𝜑𝑢 ∙ 𝑛𝑑𝑠 = 𝜗 ∙ 𝑛𝑑𝑠 −𝐹𝐶𝑤 + 𝐹𝐶𝑒 = −𝐹𝐷𝑤 + 𝐹𝐷𝑒
𝑆 𝑆 𝜕𝑥
fluxes
𝜕𝜑 𝜕𝜑
−𝑢𝜑𝑤 + 𝑢𝜑𝑒 = −𝜗 +𝜗 𝑓𝑜𝑟 𝑖 = 1, ⋯
𝜕𝑥 𝑤
𝜕𝑥 𝑒
𝜗 𝜗
−𝑢𝜑𝑖−1 + 𝑢𝜑𝑖 = − 𝜑𝑖 − 𝜑𝑖−1 + 𝜑 − 𝜑𝑖
∆𝑥 ∆𝑥 𝑖+1
𝜗 2𝜗 𝜗
−𝑢 − 𝜑𝑖−1 + 𝑢 + 𝜑𝑖 + − 𝜑 =0
∆𝑥 ∆𝑥 ∆𝑥 𝑖+1
𝜕𝜑 𝜕𝜑
For cell i=1 lets recover the fluxes: −𝑢𝜑𝑤 + 𝑢𝜑𝑒 = −𝜗 +𝜗 𝑓𝑜𝑟 𝑖 = 1, ⋯
𝜕𝑥 𝑤
𝜕𝑥 𝑒
Progressive difference
Hence,
𝜑1 − 𝜑𝐷 𝜑2 − 𝜑1
−𝑢𝜑𝐷 + 𝑢𝜑1 = −𝜗 ∆𝑥
+𝜗
∆𝑥
2
3𝜗 𝜗 2𝜑𝐷
𝑢+ 𝜑1 − 𝜑2 = 𝜗 + 𝜑𝐷 𝑢
∆𝑥 ∆𝑥 ∆𝑥
a'
b’ c' d'
𝑛
but 𝜑𝑖𝑛 𝑑𝑉 is ‘naturally’ replaced by 𝜑𝑖 ∆𝑉 under spatial discretizations with order up to 2
𝑉
Recovering the numerical equation for the interior points, adding the temporal contribution and
identifying the time index, the Euler implicit discrete equations is following:
Remark 1D: ∆𝑉 = ∆𝑥
1 + 𝑐 + 3𝛾 −𝛾 0 0 ⋯ 𝜑11 1
𝑐 + 2𝛾 𝜑𝐷 𝜑10
−𝑐 − 𝛾 1 + 𝑐 + 2𝛾 −𝛾 0 ⋯ 𝜑21 0 𝜑20
= +
⋱ ⋮ ⋮ ⋮
1 1 0
−𝑐 − 𝛾 1 + 𝑐 + 3𝛾 𝜑𝑁 +2𝛾𝜑𝐷 𝜑𝑁
1 + 𝑐 + 3𝛾 −𝛾 0 0 ⋯ 𝜑11 1
𝑐 + 2𝛾 𝜑𝐷 𝜑10
−𝑐 − 𝛾 1 + 𝑐 + 2𝛾 −𝛾 0 ⋯ 𝜑21 0 𝜑20
= +
⋱ ⋮ ⋮ ⋮
1 1 0
−𝑐 − 𝛾 1 + 𝑐 + 3𝛾 𝜑𝑁 +2𝛾𝜑𝐷 𝜑𝑁
1 + 𝑐 + 2𝛾 −𝛾 0 0 ⋯ −𝑐 − 𝛾 𝜑11 0 𝜑10
−𝑐 − 𝛾 1 + 𝑐 + 2𝛾 −𝛾 0 ⋯ 𝜑21 0 𝜑20
= +
⋱ ⋮ ⋮ ⋮
−𝛾 −𝑐 − 𝛾 1 + 𝑐 + 2𝛾 1 0
𝜑𝑁 0 𝜑𝑁
𝑨𝝋𝑛+1 = 𝝋𝑛 + 𝒃
𝛻 ∙ 𝑢𝜑 𝑑𝑉 = 𝜑𝑓 (𝑢)𝑓 ∙ 𝑛𝑑𝑠
𝑉 𝑆
𝜑𝑒 = 𝜑𝑃 𝑖𝑓 𝑢 > 0 𝜑𝑒 = 0.5(𝜑𝐸 + 𝜑𝑃 ) 𝜕𝜑
𝜑𝑒 = 𝜑𝑃 + ∆𝑥/2
𝜕𝑥 𝑃
𝜑𝑒 = 𝜑𝐸 𝑖𝑓 𝑢 < 0
Linear Interpolation 𝜑𝑃 − 𝜑𝑊
Or Central Differences 𝜑𝑒 = 𝜑𝑃 +
2
Upwind
3𝜑𝑃 𝜑𝑊
𝜑𝑒 = −
2 2
Linear Upwind
if 𝑢 > 0
𝛻 ∙ 𝑢𝜑 𝑑𝑉 = 𝜑𝑓 (𝑢)𝑓 ∙ 𝑛𝑑𝑠
𝑉 𝑆
𝜑𝑒 = 𝜑𝑃 𝑖𝑓 𝑢 > 0 𝜑𝑒 = 0.5(𝜑𝐸 + 𝜑𝑃 ) 𝜕𝜑
𝜑𝑒 = 𝜑𝑃 + ∆𝑥/2
𝜕𝑥 𝑃
𝜑𝑒 = 𝜑𝐸 𝑖𝑓 𝑢 < 0
Linear Interpolation 𝜑𝑃 − 𝜑𝑊
Or Central Differences 𝜑𝑒 = 𝜑𝑃 +
2
Upwind
3𝜑𝑃 𝜑𝑊
𝜑𝑒 = −
2 2
Linear Upwind
if 𝑢 > 0
Upwind
Scheme
Linear
Interpolation
𝜑𝑃 − 𝜑𝑊
𝜑𝑒 = 𝜑𝑃 + 0.5𝜓 (𝑟𝑒 )[𝜑𝐸 − 𝜑𝑃 ] 𝑟𝑒 = if 𝒖 > 𝟎 𝑟𝑒 < 1
𝜑𝐸 − 𝜑𝑃
𝜓=0 Upwind
Linear Interpolation
𝜓=1
Or Central Differences
𝜑𝑃 − 𝜑𝑊 𝑟 + 𝑟2
𝑟𝑒 = 𝜓=
𝜑𝐸 − 𝜑𝑃 1 + 𝑟2
u ∆𝑥
w e 𝑛(𝑖)𝑒
0 1
𝜑1𝑛 𝜑2𝑛 𝑛
𝜑𝑖−1 𝜑𝑖𝑛 𝜑𝑖+1
𝑛 𝑛
𝜑𝑁−1 𝑛
𝜑𝑁
𝑟 + 𝑟2 0, 𝑟<0
𝜑𝑒 = 𝜑𝑃 + 0.5𝜓 (𝑟𝑒 )[𝜑𝐸 − 𝜑𝑃 ] 𝜓(𝑟) = 𝜓(𝑟) = 𝑟, 0<𝑟<1
1 + 𝑟2
1, 𝑟>1
𝜑𝑃 − 𝜑𝑊
𝑟𝑒 = Van Albada FL Min-Mod FL
𝜑𝐸 − 𝜑𝑃
Remembering the
Convective Term 𝜑𝑢 ∙ 𝑛𝑑𝑠 = −𝑢𝜑𝑤 + 𝑢𝜑𝑒
From Exercise 6.2 𝑆
u ∆𝑥
w e 𝑛(𝑖)𝑒
0 1
𝜑1𝑛 𝜑2𝑛 𝑛
𝜑𝑖−1 𝜑𝑖𝑛 𝜑𝑖+1
𝑛 𝑛
𝜑𝑁−1 𝑛
𝜑𝑁
u ∆𝑥
w e 𝑛(𝑖)𝑒
0 1
𝜑1𝑛 𝜑2𝑛 𝑛
𝜑𝑖−1 𝜑𝑖𝑛 𝜑𝑖+1
𝑛 𝑛
𝜑𝑁−1 𝑛
𝜑𝑁
𝑟 + 𝑟2
Let’s apply now the Van Albada Flux Limiter 𝜓(𝑟) =
1 + 𝑟2
u ∆𝑥
w e 𝑛(𝑖)𝑒
0 1
𝜑1𝑛 𝜑2𝑛 𝑛
𝜑𝑖−1 𝜑𝑖𝑛 𝜑𝑖+1
𝑛 𝑛
𝜑𝑁−1 𝑛
𝜑𝑁
𝑟𝑒 + 𝑟𝑒 2 𝑟𝑤 + (𝑟𝑤 )2
−𝑢𝜑𝑤 + 𝑢𝜑𝑒 = 𝑢(𝜑𝑃 + 0.5 [𝜑𝐸 − 𝜑𝑃 ] − 𝜑𝑊 − 0.5 [𝜑 − 𝜑𝑊 ])
1 + 𝑟𝑒 2 1 + (𝑟𝑤 )2 𝑃
𝜑𝑃 − 𝜑𝑊 𝜑𝑊 − 𝜑𝑊𝑊
𝑟𝑒 = 𝑟𝑤 =
𝜑𝐸 − 𝜑𝑃 𝜑𝑃 − 𝜑𝑊
−𝑐 − 𝛾 1 + 𝑐 + 3𝛾 1
𝜑𝑁 +𝛾𝜑𝐷0 0
𝜑𝑁 (−𝑐)𝐹𝐿𝑘𝑁
2
𝑟𝑖+1/2 + 𝑟𝑖+1/2 𝑟𝑖−1 + (𝑟𝑖−1 )2
𝐹𝐿𝑘𝑖 = 0.5 2 [𝜑𝑖+1 − 𝜑𝑖 ] − 0.5 2 [𝜑𝑖 − 𝜑𝑖−1 ]) This vector is
1 + 𝑟𝑖+1/2 1 + (𝑟𝑖−1 ) iterated with last
computed 𝜑𝑛+1
𝑟𝑒 + 𝑟𝑒 2 𝑟𝑤 + (𝑟𝑤 )2
−𝑢𝜑𝑤 + 𝑢𝜑𝑒 = 𝑢(𝜑𝑃 + 0.5 [𝜑𝐸 − 𝜑𝑃 ] − 𝜑𝑊 − 0.5 [𝜑 − 𝜑𝑊 ])
1 + 𝑟𝑒 2 1 + (𝑟𝑤 )2 𝑃
u ∆𝑥
w e 𝑛(𝑖)𝑒
0 1
𝜑1𝑛 𝜑2𝑛 𝑛
𝜑𝑖−1 𝜑𝑖𝑛 𝜑𝑖+1
𝑛 𝑛
𝜑𝑁−1 𝑛
𝜑𝑁
0, 𝑟<0 0, 𝑟𝑒 < 0
𝑈𝐷𝑆 , 𝑟 < 0 𝜑𝑖 −𝜑𝑖−1
𝜓(𝑟) = 𝐿𝑈𝐷𝑆 , 0 < 𝑟 < 1 𝜓(𝑟) = 𝑟, 0<𝑟<1 𝜎(𝑟𝑒 ) = , 0 < 𝑟𝑒 < 1
2
𝐿𝐼𝑁 , 𝑟 > 1 1, 𝑟>1 𝜑𝑖+1 −𝜑𝑖
, 𝑟𝑒 > 1
2
a) Discretize the equation with the finite differences method for a generic point i and time instance
n+1. Use an explicit euler for time and central discretization scheme for the space derivatives. Assume
and r as positive constants.
b) Analyze with the Von Neumann stability theorem the finite difference equation obtained in a).
c) Obtain the comple finite diference formula using the MinMod flux limiter for the derivative:
d) Discretize the equation using the Crank-Nicolson for the time derivative and a forth order compact
Padé for the spatial derivatives. (This type of schemes will not be covered during this course!)
𝜕𝜙 𝜎 2 2 𝜕 2 𝜙 𝜕𝜙
+ 𝑥 + 𝑟𝑥 − 𝑟𝜙 = 0
𝜕𝑡 2 𝜕𝑥 2 𝜕𝑥
r𝑥 ℎ
𝜙𝑜𝑛 𝜙1𝑛 𝑛
𝜙𝑖−1 𝜙𝑖𝑛 𝑛
𝜙𝑖+1 𝑛
𝜙𝑁−1 𝑛
𝜙𝑁
𝜕𝜙 𝜎 2 2 𝜕 2 𝜙 𝜕𝜙
+ 𝑥 + 𝑟𝑥 − 𝑟𝜙 = 0
𝜕𝑡 2 𝜕𝑥 2 𝜕𝑥
r𝑥 ℎ
𝜙𝑜𝑛 𝜙1𝑛 𝑛
𝜙𝑖−1 𝜙𝑖𝑛 𝑛
𝜙𝑖+1 𝑛
𝜙𝑁−1 𝑛
𝜙𝑁
𝑎𝑛+1𝑒 𝐼𝜃 𝑖
− 𝑎𝑛 𝑒 𝐼𝜃 𝑖
𝜎 2 2 𝑎𝑛 𝑒 𝐼𝜃 𝑖−1
− 2𝑎𝑛 𝑒 𝐼𝜃 𝑖
+ 𝑎𝑛 𝑒 𝐼𝜃 𝑖+1
𝑎𝑛 𝑒 𝐼𝜃 𝑖+1
− 𝑎𝑛 𝑒 𝐼𝜃 𝑖−1
+ 𝑥 + 𝑟𝑥𝑖 − 𝑟𝑎𝑛 𝑒 𝐼𝜃 𝑖 =0
∆𝑡 2 𝑖 ℎ2 2ℎ
𝒂𝒏+𝟏
Dividing by 𝑎𝑛 𝑒 𝐼𝜃 𝑖 The amplification factor is thus
𝒂𝒏
𝑎𝑛+1
− 1 𝜎2 𝑒 𝐼𝜃 −1 − 2 + 𝑒 𝐼𝜃 1 𝑒 𝐼𝜃 1 − 𝑒 𝐼𝜃 −1
𝑎𝑛 + 𝑥𝑖 2 + 𝑟𝑥𝑖 −𝑟 =0
∆𝑡 2 ℎ2 2ℎ
𝑎𝑛+1 𝜎 2 ∆𝑡 2 𝐼𝜃 −1
𝑟𝑥𝑖 ∆𝑡 𝐼𝜃
−1+ 𝑥 𝑒 −2+ 𝑒 𝐼𝜃 1 + 𝑒 1 − 𝑒 𝐼𝜃 −1 − 𝑟∆𝑡 = 0
𝑎𝑛 2ℎ2 𝑖 2ℎ
Remember that the fourier terms can be simplified in the following form:
𝑎𝑛+1 𝜎 2 ∆𝑡 2 𝑟𝑥𝑖 ∆𝑡
= 1 + 𝑟∆𝑡 − 𝑥 𝐶𝑜𝑠 𝜃 − 1 − 𝐼𝑆𝑖𝑛 𝜃
𝑎𝑛 ℎ2 𝑖 ℎ
𝜙𝑛 1 − 𝜙𝑛 1
𝜕𝜙 𝑛 𝑖+
2
𝑖−
2
=
𝜕𝑥 𝑖
ℎ
r𝑥 ℎ
𝜙𝑜𝑛 𝜙1𝑛 𝑛
𝜙𝑖−2 𝑛
𝜙𝑖−1 𝜙𝑖𝑛 𝑛
𝜙𝑖+1 𝑛
𝜙𝑁−1 𝑛
𝜙𝑁
𝜙𝑛 1 𝜙𝑛 1
𝑖− 𝑖+
2 2
𝜙𝑜𝑛 𝜙1𝑛 𝑛
𝜙𝑖−2 𝑛
𝜙𝑖−1 𝜙𝑖𝑛 𝑛
𝜙𝑖+1 𝑛
𝜙𝑁−1 𝑛
𝜙𝑁
𝜙𝑛 1 𝜙𝑛 1
𝑖− 𝑖+
2 2
𝜙𝑛 1 − 𝜙𝑛 1 𝜎𝑟 𝑛
𝜙𝑖𝑛 +
𝜙𝑖+1 − 𝜙𝑖𝑛 − 𝜙𝑖−1
𝑛 𝜎
− 𝑙 𝜙𝑖𝑛 − 𝜙𝑖−1
𝑛
So: 𝜕𝜙 𝑛 𝑖+
2
𝑖−
2 2 2
= =
𝜕𝑥 𝑖
ℎ ℎ
𝜎𝑟 𝑛 𝜎
𝜙𝑖𝑛 − 𝜙𝑖−1
𝑛 𝜙𝑖+1 − 𝜙𝑖𝑛 − 𝑙 𝜙𝑖𝑛 − 𝜙𝑖−1
𝑛
= + 2 2
ℎ ℎ
𝜎𝑟 𝑛 𝜎
𝜕𝜙 𝑛 𝜙𝑖𝑛 − 𝑛
𝜙𝑖−1 𝜙𝑖+1 − 𝜙𝑖𝑛 − 𝑙 𝜙𝑖𝑛 − 𝜙𝑖−1
𝑛
= + 2 2
𝜕𝑥 𝑖
ℎ ℎ
Since the “convective velocity” 𝑟𝑥𝑖 is always positive, each auxiliary face has three branches which
results in nine combinations:
𝜃𝑙 < 0 → 𝜎𝑙 𝜃𝑙 = 0 𝑛
𝜕𝜙 𝑛 −3𝜙𝑖−1 + 3𝜙𝑖𝑛 Left: Upwind
= Right: LUD
0 < 𝜃𝑟 < 1 → 𝜎𝑟 𝜃𝑟 = 𝜃𝑟 𝜕𝑥 𝑖
2ℎ
𝜙𝑜𝑛 𝜙1𝑛 𝑛
𝜙𝑖−2 𝑛
𝜙𝑖−1 𝜙𝑖𝑛 𝑛
𝜙𝑖+1 𝑛
𝜙𝑁−1 𝑛
𝜙𝑁
𝜙𝑛 1 𝜙𝑛 1
𝑖− 𝑖+
2 2
𝜙𝑜𝑛 𝜙1𝑛 𝑛
𝜙𝑖−2 𝑛
𝜙𝑖−1 𝜙𝑖𝑛 𝑛
𝜙𝑖+1 𝑛
𝜙𝑁−1 𝑛
𝜙𝑁
𝜙𝑛 1 𝜙𝑛 1
𝑖− 𝑖+
2 2
𝜙𝑜𝑛 𝜙1𝑛 𝑛
𝜙𝑖−2 𝑛
𝜙𝑖−1 𝜙𝑖𝑛 𝑛
𝜙𝑖+1 𝑛
𝜙𝑁−1 𝑛
𝜙𝑁
𝜙𝑛 1 𝜙𝑛 1
𝑖− 𝑖+
2 2
𝜕𝜙 𝑛 𝜙𝑖𝑛 − 𝜙𝑖−1
𝑛 𝑛
𝜙𝑖+1 𝑛
− 𝜙𝑖−1 𝑛 𝑛
= + 𝜙𝑖−1 − 𝜙𝑖−2 𝜙𝑖𝑛 − 𝜙𝑖−1
𝑛
𝜕𝑥 2ℎ 2ℎ 𝜃𝑙 = 𝑛 𝑛 𝜃𝑟 = 𝑛
𝑖 𝜙𝑖 − 𝜙𝑖−1 𝜙𝑖+1 − 𝜙𝑖𝑛
𝜙𝑜𝑛 𝜙1𝑛 𝑛
𝜙𝑖−2 𝑛
𝜙𝑖−1 𝜙𝑖𝑛 𝑛
𝜙𝑖+1 𝑛
𝜙𝑁−1 𝑛
𝜙𝑁
𝜙𝑛 1 𝜙𝑛 1
𝑖− 𝑖+
2 2
𝜕𝜙 𝑛 𝜙𝑖𝑛 − 𝜙𝑖−1
𝑛 𝑛
𝜙𝑖+1 𝑛
− 𝜙𝑖−1 𝑛 𝑛
= + 𝜙𝑖−1 − 𝜙𝑖−2 𝜙𝑖𝑛 − 𝜙𝑖−1
𝑛
𝜕𝑥 2ℎ 2ℎ 𝜃𝑙 = 𝑛 𝑛 𝜃𝑟 = 𝑛
𝑖 𝜙𝑖 − 𝜙𝑖−1 𝜙𝑖+1 − 𝜙𝑖𝑛
𝜙𝑜𝑛 𝜙1𝑛 𝑛
𝜙𝑖−2 𝑛
𝜙𝑖−1 𝜙𝑖𝑛 𝑛
𝜙𝑖+1 𝑛
𝜙𝑁−1 𝑛
𝜙𝑁
𝜙𝑛 1 𝜙𝑛 1
𝑖− 𝑖+
2 2
𝜙𝑜𝑛 𝜙1𝑛 𝑛
𝜙𝑖−2 𝑛
𝜙𝑖−1 𝜙𝑖𝑛 𝑛
𝜙𝑖+1 𝑛
𝜙𝑁−1 𝑛
𝜙𝑁
𝜙𝑛 1 𝜙𝑛 1
𝑖− 𝑖+
2 2
𝑛 𝑛
𝜃𝑙 > 1 → 𝜎𝑙 𝜃𝑙 = 1 𝜕𝜙 𝑛 −𝜙𝑖−1 + 𝜙𝑖+1 Left: CDS
= Right: CDS
𝜃𝑟 > 1 → 𝜎𝑟 𝜃𝑟 = 1 𝜕𝑥 𝑖
2ℎ
𝜙𝑜𝑛 𝜙1𝑛 𝑛
𝜙𝑖−2 𝑛
𝜙𝑖−1 𝜙𝑖𝑛 𝑛
𝜙𝑖+1 𝑛
𝜙𝑁−1 𝑛
𝜙𝑁
𝜙𝑛 1 𝜙𝑛 1
𝑖− 𝑖+
2 2
𝜙𝑜𝑛 𝜙1𝑛 𝑛
𝜙𝑖−2 𝑛
𝜙𝑖−1 𝜙𝑖𝑛 𝑛
𝜙𝑖+1 𝑛
𝜙𝑁−1 𝑛
𝜙𝑁
𝜙𝑛 1 𝜙𝑛 1
𝑖− 𝑖+
2 2
𝜙𝑜𝑛 𝜙1𝑛 𝑛
𝜙𝑖−2 𝑛
𝜙𝑖−1 𝜙𝑖𝑛 𝑛
𝜙𝑖+1 𝑛
𝜙𝑁−1 𝑛
𝜙𝑁
𝜙𝑛 1 𝜙𝑛 1
𝑖− 𝑖+
2 2
𝜙𝑜𝑛 𝜙1𝑛 𝑛
𝜙𝑖−2 𝑛
𝜙𝑖−1 𝜙𝑖𝑛 𝑛
𝜙𝑖+1 𝑛
𝜙𝑁−1 𝑛
𝜙𝑁
𝜙𝑛 1 𝜙𝑛 1
𝑖− 𝑖+
2 2
𝜙𝑜𝑛 𝜙1𝑛 𝑛
𝜙𝑖−2 𝑛
𝜙𝑖−1 𝜙𝑖𝑛 𝑛
𝜙𝑖+1 𝑛
𝜙𝑁−1 𝑛
𝜙𝑁
𝜙𝑛 1 𝜙𝑛 1
𝑖− 𝑖+
2 2
𝜙𝑜𝑛 𝜙1𝑛 𝑛
𝜙𝑖−2 𝑛
𝜙𝑖−1 𝜙𝑖𝑛 𝑛
𝜙𝑖+1 𝑛
𝜙𝑁−1 𝑛
𝜙𝑁
𝜙𝑛 1 𝜙𝑛 1
𝑖− 𝑖+
2 2
𝜙𝑜𝑛 𝜙1𝑛 𝑛
𝜙𝑖−2 𝑛
𝜙𝑖−1 𝜙𝑖𝑛 𝑛
𝜙𝑖+1 𝑛
𝜙𝑁−1 𝑛
𝜙𝑁
𝜙𝑛 1 𝜙𝑛 1
𝑖− 𝑖+
2 2
𝜙𝑜𝑛 𝜙1𝑛 𝑛
𝜙𝑖−2 𝑛
𝜙𝑖−1 𝜙𝑖𝑛 𝑛
𝜙𝑖+1 𝑛
𝜙𝑁−1 𝑛
𝜙𝑁
𝜙𝑛 1 𝜙𝑛 1
𝑖− 𝑖+
2 2
𝜙𝑜𝑛 𝜙1𝑛 𝑛
𝜙𝑖−2 𝑛
𝜙𝑖−1 𝜙𝑖𝑛 𝑛
𝜙𝑖+1 𝑛
𝜙𝑁−1 𝑛
𝜙𝑁
𝜙𝑛 1 𝜙𝑛 1
𝑖− 𝑖+
2 2
𝜙𝑜𝑛 𝜙1𝑛 𝑛
𝜙𝑖−2 𝑛
𝜙𝑖−1 𝜙𝑖𝑛 𝑛
𝜙𝑖+1 𝑛
𝜙𝑁−1 𝑛
𝜙𝑁
𝜙𝑛 1 𝜙𝑛 1
𝑖− 𝑖+
2 2
𝜙𝑜𝑛 𝜙1𝑛 𝑛
𝜙𝑖−2 𝑛
𝜙𝑖−1 𝜙𝑖𝑛 𝑛
𝜙𝑖+1 𝑛
𝜙𝑁−1 𝑛
𝜙𝑁
𝜙𝑛 1 𝜙𝑛 1
𝑖− 𝑖+
2 2
𝜙𝑜𝑛 𝜙1𝑛 𝑛
𝜙𝑖−2 𝑛
𝜙𝑖−1 𝜙𝑖𝑛 𝑛
𝜙𝑖+1 𝑛
𝜙𝑁−1 𝑛
𝜙𝑁
𝜙𝑛 1 𝜙𝑛 1
𝑖− 𝑖+
2 2
𝜓 𝑟
𝜙𝑤 = 𝜙𝐶 + (𝜙𝑊 − 𝜙𝐶 ) Formula for negative velocity
2
1 3 1
0 < 𝑟𝑤 < 1 ⟹ 𝜓 = 𝑟𝑤 ⟹ 𝜙𝑤 = 𝜙𝐶 + (𝜙𝐶 − 𝜙𝐸 ) = 𝜙𝐶 − 𝜙𝐸
2 2 2
1 1
𝑟𝑤 > 1 ⟹ 𝜓 = 1 ⟹ 𝜙𝑤 = 𝜙𝐶 + (𝜙𝑊 − 𝜙𝐶 ) = (𝜙𝐶 + 𝜙𝑊 )
2 2
𝝓𝒘 − 𝜙𝐸
𝜙𝑓 = ⟹ 𝝓𝒘 = 𝜙𝑓 𝜙𝑊 − 𝜙𝐸 + 𝜙𝐸
𝜙𝑊 − 𝜙𝐸
𝜙𝐶 − 𝜙𝐸
This one is Upwind 𝜙𝐶 =
𝜙𝑊 − 𝜙𝐸
𝝓𝒘 − 𝜙𝐸
𝜙𝑓 = ⟹ 𝝓𝒘 = 𝜙𝑓 𝜙𝑊 − 𝜙𝐸 + 𝜙𝐸 Main Equation
𝜙𝑊 − 𝜙𝐸
𝜙𝐶 − 𝜙𝐸
This one is Upwind 𝜙𝐶 =
𝜙𝑊 − 𝜙𝐸
𝝓𝒘 − 𝜙𝐸
𝜙𝑓 = ⟹ 𝝓𝒘 = 𝜙𝑓 𝜙𝑊 − 𝜙𝐸 + 𝜙𝐸 Main Equation
𝜙𝑊 − 𝜙𝐸
𝜙𝐶 −𝜙𝐸
𝝓𝑪 < 𝟎 𝒐𝒓 𝝓𝑪 > 𝟏 ⇒ 𝜙𝑓 = 𝜙𝐶 ⇒ 𝝓𝒘 = 𝜙𝑊 − 𝜙𝐸 + 𝜙𝐸 = 𝜙𝐶
𝜙𝑊 −𝜙𝐸
𝜙𝐶 − 𝜙𝐸
This one is Upwind 𝜙𝐶 =
𝜙𝑊 − 𝜙𝐸
𝝓𝒘 − 𝜙𝐸
𝜙𝑓 = ⟹ 𝝓𝒘 = 𝜙𝑓 𝜙𝑊 − 𝜙𝐸 + 𝜙𝐸 Main Equation
𝜙𝑊 − 𝜙𝐸
𝟑
< 𝝓𝑪 < 𝟏 ⇒ 𝜙𝑓 = 1 ⇒ 𝝓𝒘 = 1 𝜙𝑊 − 𝜙𝐸 + 𝜙𝐸 = 𝜙𝑊
𝟒
𝜙𝐶 −𝜙𝐸
𝝓𝑪 < 𝟎 𝒐𝒓 𝝓𝑪 > 𝟏 ⇒ 𝜙𝑓 = 𝜙𝐶 ⇒ 𝝓𝒘 = 𝜙𝑊 − 𝜙𝐸 + 𝜙𝐸 = 𝜙𝐶
𝜙𝑊 −𝜙𝐸
𝜙𝐶 − 𝜙𝐸
This one is Upwind 𝜙𝐶 =
𝜙𝑊 − 𝜙𝐸
𝝓𝒘 − 𝜙𝐸
𝜙𝑓 = ⟹ 𝝓𝒘 = 𝜙𝑓 𝜙𝑊 − 𝜙𝐸 + 𝜙𝐸 Main Equation
𝜙𝑊 − 𝜙𝐸
𝟏 𝜙𝐶 −𝜙𝐸
𝟎 < 𝝓𝑪 < ⇒ 𝜙𝑓 = 2𝜙𝐶 ⇒ 𝝓𝒘 = 2 𝜙𝑊 − 𝜙𝐸 + 𝜙𝐸 = 2𝜙𝐶 − 𝜙𝐸
𝟒 𝜙𝑊 −𝜙𝐸
𝟑
< 𝝓𝑪 < 𝟏 ⇒ 𝜙𝑓 = 1 ⇒ 𝝓𝒘 = 1 𝜙𝑊 − 𝜙𝐸 + 𝜙𝐸 = 𝜙𝑊
𝟒
𝜙𝐶 −𝜙𝐸
𝝓𝑪 < 𝟎 𝒐𝒓 𝝓𝑪 > 𝟏 ⇒ 𝜙𝑓 = 𝜙𝐶 ⇒ 𝝓𝒘 = 𝜙𝑊 − 𝜙𝐸 + 𝜙𝐸 = 𝜙𝐶
𝜙𝑊 −𝜙𝐸
𝜙𝐶 − 𝜙𝐸
This one is Upwind 𝜙𝐶 =
𝜙𝑊 − 𝜙𝐸
𝝓𝒘 − 𝜙𝐸
𝜙𝑓 = ⟹ 𝝓𝒘 = 𝜙𝑓 𝜙𝑊 − 𝜙𝐸 + 𝜙𝐸 Main Equation
𝜙𝑊 − 𝜙𝐸
𝟏 𝜙𝐶 −𝜙𝐸
𝟎 < 𝝓𝑪 < ⇒ 𝜙𝑓 = 2𝜙𝐶 ⇒ 𝝓𝒘 = 2 𝜙𝑊 − 𝜙𝐸 + 𝜙𝐸 = 2𝜙𝐶 − 𝜙𝐸
𝟒 𝜙𝑊 −𝜙𝐸
𝟏 𝟑 1 𝜙𝐶 −𝜙𝐸 1
< 𝝓𝑪 < ⇒ 𝜙𝑓 = 𝜙𝐶 + ⇒ 𝝓𝒘 = [ + ] 𝜙𝑊 − 𝜙𝐸 + 𝜙𝐸
𝟒 𝟒 4 𝜙𝑊 −𝜙𝐸 4
1 1 1
𝝓𝒘 = (𝜙𝐶 −𝜙𝐸 ) + (𝜙𝑊 − 𝜙𝐸 ) + 𝜙𝐸 = 𝜙𝑊 + 𝜙𝐶 − 𝜙𝐸
4 4 4
𝟑
< 𝝓𝑪 < 𝟏 ⇒ 𝜙𝑓 = 1 ⇒ 𝝓𝒘 = 1 𝜙𝑊 − 𝜙𝐸 + 𝜙𝐸 = 𝜙𝑊
𝟒
𝜙𝐶 −𝜙𝐸
𝝓𝑪 < 𝟎 𝒐𝒓 𝝓𝑪 > 𝟏 ⇒ 𝜙𝑓 = 𝜙𝐶 ⇒ 𝝓𝒘 = 𝜙𝑊 − 𝜙𝐸 + 𝜙𝐸 = 𝜙𝐶
𝜙𝑊 −𝜙𝐸