流体解析のあれこれ

流体解析をこよなく愛する有限体積法の信者によるブログ

連立方程式(行列式あるいは線形システム)の解法(1)

非圧縮性流体解析では,圧力を陰的に取り扱うため,圧力の解法がMAC (Marker And Cell)系解法あるいはSIMPLE (Semi-Implicit Method for Pressure-Linked Equations)アルゴリズムによらず,圧力あるいはその補正値を求めるためには連立方程式(あるいは行列式や線形システム)を解く必要がある.流体解析に要する計算時間の大部分(一般に,80%以上)は行列式の解法となる.そのため,高速な行列式の解法を用いることで,計算時間を大幅に削減することが可能となる.ここで,行列式の解法は,

  • 直接法
  • 間接法

に大別される.有限体積法における解くべき行列式中の行列は疎行列であるため,有限体積法では行列式の解法には一般に間接法が用いられる.そのため,安定で収束性が良く,その結果,計算時間が短い解法を用いたい.著者の経験から安定化双共役勾配法(Bi-Conjugate Gradient STABilized method, Bi-CGSTAB法)が最も安定で収束性が良い解法である.東京大学が開発した有限体積法に基づく流体解析コードであるFrontFlow/RedではBi-CGSTABに加えて不完全コレスキー分解付き共役勾配法(Incomplete Cholesky Conjugate Gradient method, ICCG法)も採用されている.しかしながら,場合によっては行列式の解法を1から自分で書くのは困難である.「行列計算ソフトウェア」にはBi-CGSTABとICCGを含む多くの行列式の解法のソースコードが提供されているので,これらを活用すると良いと思われる.

 「コンピュータによる連立一次方程式の解法」にも多くの行列式の解法がソースコード付きで掲載されている.