線形移流方程式の数値解法のスキーム別比較(課題D-1)


一次元風上差分及びLax-Wendroffによる正弦波の移流

図1:線形移流方程式に従う正弦波の時間発展。一次元風上差分及びLax-Wendroffスキームで計算している。境界条件は周期境界。

一次元風上差分では数値拡散により波のピーク高さが減少していることがわかる。

一次元風上差分及びLax-Wendroffによる矩形波の移流

図2:線形移流方程式に従う矩形波の時間発展。一次元風上差分及びLax-Wendroffスキームで計算している。境界条件は周期境界。

図2をみると、一次元風上差分では数値拡散により波が平坦化てしまっていることがわかる。また、FTCSの逆拡散をちょうど打ち消すような数値拡散を入れたLax-Wendroffでは拡散が起きず、波の強さが維持できているが、同時に数値振動が現れてしまっている。

おまけ1:FTCSスキーム

図3:FTCSスキーム

無条件不安定となっていることがわかる。

おまけ2:Kawahara-Kuwaharaスキーム

図4:Kawamura-Kuwaharaスキーム

(工学部の災害シミューレションの授業で出てきたので。)左はFTCSと同じ条件で計算した場合。FTCSよりかは逆拡散を抑えられていることがわかる。右はスキームが十分安定となるようにクーラン数を小さくした場合。逆拡散を抑えつつ、数値振動も抑えることができている。参考にしたサイト:https://pbcg…

おまけ3:QUICKESTスキーム

図5:QUICKESTスキーム
(名前がかっこいいので。)数値拡散を抑えながら、数値振動も良く抑えることができていることがわかる。参考にしたサイト: https://hy...

まとめ

図6:ここまでで出てきたスキームの比較
全スキームの比較。Kawahara-KuwaharaスキームやQUICKESTスキームが圧倒的に優秀であることがわかる。

粘性なしBurgers方程式における一次元風上差分及び二段階Lax-Wendroffの比較(課題D-2)


一次元風上差分

図7:1次元風上差分(保存形)を用いた粘性なしBurgers方程式の数値解

 左から、2<x<2-2\lt x\lt2 における格子数が 5050 , 100100 , 200200 の場合。格子サイズ Δx\Delta x が小さくなるほど数値拡散が小さくなり精度が良くなっていることがわかる。

2段階Lax-Wendroff

図8:二段階Lax-Wendroffを用いた粘性なしBurgers方程式の数値解
 勾配が強い箇所で粘性が強くなるような人工粘性を設計している。すなわち γ=ϵu/x\gamma = \epsilon |\partial u/\partial x|

としている。図は左から ϵ=0.05,0.2,0.4\epsilon = 0.05,0.2,0.4 とした場合。( 2<x<2 -2<x<2 における格子数は 100100 としている。)すなわち、右に行くほど人工粘性が強くなっている。
 動画を見ると、人工粘性が弱いと(つまり左の動画ほど)数値振動が強くなってしまい、人工粘性が強いと(すなわち右の動画ほど)数値拡散が強くなってしまっている。トレードオフ!

スキームの比較

図9:1次元風上差分と2段階Lax-Wendroffの比較

二つのスキームの比較。1次元風上差分では数値拡散が生じる影響で衝撃波面の立ち上がりが鈍くなってしまっているが、Lax-Wendroffでは衝撃波面がより解析解に近くなっている。(ただし衝撃波の後ろで数値振動が生じてしまっていることに注意。)

図10:1次元風上差分と2段階Lax-Wendroffの比較その2

 ちなみに、格子数を 200200 として Δx\Delta x を十分小さくすれば、いずれのスキームでも良い精度で衝撃波を再現できる。