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

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.eq18.gif 592件 [詳細] fileupwind.eq17.gif 495件 [詳細] fileupwind.eq16.gif 547件 [詳細] fileupwind.eq15.gif 513件 [詳細] fileupwind.eq14.gif 537件 [詳細] fileupwind.eq13.gif 512件 [詳細] fileupwind.eq12.gif 529件 [詳細] fileupwind.eq11.gif 485件 [詳細] fileupwind.eq10.gif 447件 [詳細] fileupwind.eq9.gif 522件 [詳細] fileupwind.eq8.gif 458件 [詳細] fileupwind.eq7.gif 455件 [詳細] fileupwind.eq6.gif 473件 [詳細] fileupwind.eq5.gif 468件 [詳細] fileupwind.eq4.gif 524件 [詳細] fileupwind.eq3.gif 472件 [詳細] fileupwind.eq2.gif 502件 [詳細] fileupwind.eq1.gif 487件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-10-28 (金) 17:57:40 (3258d)