移流方程式の時間微分を前進オイラー法で離散化すると,

upwind.eq1.gif

1次元の場合を考える.グリッドupwind.eq2.gif(座標upwind.eq3.gif)について,

upwind.eq4.gif

ここで,upwind.eq5.gif.このupwind.eq6.gifを差分を使って求める.

風上差分ではその名の通り,風上側の値を使って差分を行う1次精度の離散化法である. 1次元の場合,upwind.eq7.gifでは座標軸上の右から左に風が吹いているので,風上はi+1, upwind.eq8.gifでは左から右に風が吹いているので,風上はi-1となる.

upwind.eq9.gif

風上差分はCFL(Courant-Friedreichs-Lewy)条件を満たしていれば安定である. CFL条件によるタイムステップ幅の制限は,

upwind.eq10.gif

タイムステップ幅は通常これよりもさらに小さい数を用いた方がよい. 係数:CFL数(CFL number)をupwind.eq11.gifとすると,

upwind.eq12.gif

ここで,upwind.eq13.gif.よく使われるのはupwind.eq14.gifである.

振動と数値拡散

風上差分の離散式(upwind.eq8.gifの場合)を位置upwind.eq3.gifでテーラー展開してみる.

upwind.eq15.gif

upwind.eq16.gifは空間2階微分であり,これは拡散を表している. 拡散に関する項は,例えば,流体のナビエ・ストークス方程式にもある(upwind.eq17.gif). しかし,これはそれらの項とは異なり,離散化によって生まれた拡散であり,これを数値拡散(numerical diffusion)と呼ぶ. 下の矩形波の移流を見ると風上差分において数値拡散が発生しているのがよく分かる.

さて,上式の微分を下で述べる中心差分で離散化してみる.

upwind.eq18.gif

風上差分は中心差分に拡散項を加えたものであることが分かる. 中心差分では非常に大きな振動が発生する. その振動を拡散項により抑えているのが風上差分である. この振動を抑えるという考え方は重要である. より高次の関数を使って補間することで振動を抑えるのが,Lax-WendroffやQUICK,QUICKEST,河村・桑原スキームなどで, 2階,3階の微分を使って抑えるのがENOやWENOである. これらに対して,元の形状を保持するという考え方に基づき,異なるアプローチをとるのがCIP法,RCIP法などである. ちなみにRCIP法では数値拡散が発生してしまうので,これを抑えるためのSTAA手法では逆に数値拡散項を引くことで拡散を抑えている.


添付ファイル: fileupwind.eq7.gif 645件 [詳細] fileupwind.eq8.gif 683件 [詳細] fileupwind.eq9.gif 752件 [詳細] fileupwind.eq1.gif 710件 [詳細] fileupwind.eq10.gif 669件 [詳細] fileupwind.eq11.gif 705件 [詳細] fileupwind.eq12.gif 762件 [詳細] fileupwind.eq13.gif 773件 [詳細] fileupwind.eq14.gif 860件 [詳細] fileupwind.eq15.gif 907件 [詳細] fileupwind.eq16.gif 874件 [詳細] fileupwind.eq17.gif 812件 [詳細] fileupwind.eq18.gif 912件 [詳細] fileupwind.eq2.gif 745件 [詳細] fileupwind.eq3.gif 670件 [詳細] fileupwind.eq4.gif 740件 [詳細] fileupwind.eq5.gif 707件 [詳細] fileupwind.eq6.gif 710件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2024-03-08 (金) 18:06:11