オイラーやルンゲクッタなどでは,求めたいステップでの値(例えばfull-implicit.eq1.gif)のために それ以前の値(full-implicit.eq2.gifなど)だけを空間微分項に用いていた. このため,前のステップでの値が既知であれば,単に式にその値を代入するだけで計算が可能であった. これに対し,full-implicit.eq1.gifを時間微分項以外に用いる方法を陰解法と呼ぶ.

full-implicit.eq3.gif

時間微分以外にfull-implicit.eq2.gifがない場合を完全陰解法と呼ぶ. 移流方程式の完全陰解法による差分式(前進オイラー+風上差分)は,

full-implicit.eq4.gif

一つの式に未知数が2つ(full-implicit.eq5.gif)含まれており,陽解法のように単純に代入だけでは解けない. そのため,すべてのfull-implicit.eq6.gifに関する式を連立させて解く(連立方程式). 流体シミュレーションではほとんどの場合,線形連立方程式(線形システム)となる. つまり,上記の式をすべてのfull-implicit.eq6.gifに関して立てることで,

full-implicit.eq7.gif

という行列方程式を得る.そしてこれを逆行列計算により解く.

full-implicit.eq8.gif

数値流体解析ではこの行列full-implicit.eq9.gifが巨大になってしまい,計算コストが大きくなる. 例えば,3次元空間をfull-implicit.eq10.gifのグリッドで分割した場合,full-implicit.eq11.gifの行列となってしまう. ただし,full-implicit.eq9.gifは正定対称疎行列であることが多く,前処理付共役勾配法など効率的な解法を使うことができる. それでも,やはり陽解法に比べると圧倒的に計算時間が必要である. 一方で陰解法は数値的に安定しており,大きなタイムステップでも発散することなしに解ける(CFL条件にも左右されない)ため,CG用アプリケーションなどではよく用いられている.


添付ファイル: filefull-implicit.eq1.gif 1431件 [詳細] filefull-implicit.eq10.gif 710件 [詳細] filefull-implicit.eq11.gif 701件 [詳細] filefull-implicit.eq2.gif 616件 [詳細] filefull-implicit.eq3.gif 680件 [詳細] filefull-implicit.eq4.gif 667件 [詳細] filefull-implicit.eq5.gif 695件 [詳細] filefull-implicit.eq6.gif 617件 [詳細] filefull-implicit.eq7.gif 699件 [詳細] filefull-implicit.eq8.gif 660件 [詳細] filefull-implicit.eq9.gif 627件 [詳細]

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