粒子法を用いた流体解析(CFD)の解説を行っています。第4回は、粒子法の代表的な手法であるSPH法とMPS法について解説します。
前回は粒子法のメリットについて解説しました。まだ見てないかたは下記からどうぞ。ざっくり説明すると、飛沫の計算ができることと並列計算に向いていることが利点でした。
粒子法の種類
粒子を模擬した解析手法はたくさんありますが、今回主に紹介するのはCFDに使用するSPH法とMPS法です。
SPH法(Smoothed Particle Hydrodynamics)
SPH法は天文物理学のために開発された手法です。細かい部分を抜きにすれば、SPH法もMPS法も基本的な部分はほとんど変わりません。
大きく違うとすれば、圧縮性をどう扱うかです。
SPH法では圧縮性流体を扱います。ほぼ非圧縮性流体であるはずの液体を解析するのに対して圧縮を許容するため、必然的に精度が落ちます。また、人工粘性という計算都合の値を入れる必要があります。
ただ、非圧縮性を維持させるのには計算コストがかかることを考えると、圧縮性として考えるのもデメリットだけではありません。
CGやゲーム等の高速化が重要視される分野では、必ずと言っていいほどSPH法やSPH法を基とした手法が使われます。乱暴に言うと、雑だが速いのがSPH法です。
MPS法(Moving Particle Semi-Implicit method)
MPS法は非圧縮流体を解析するための手法です。粒子数密度という値を用いて非圧縮性を維持するようにしています。非圧縮を計算することで、流体の本来の特徴が捉えやすくなり、理論上は精度が上がります。
また、MPS法の大きな特徴はその名の通り半陰解法であることです。陰解法とは、未来の値をを使用して未来の値を予想するという計算方法で、必ずループ計算が必要になります。
計算量が増えるデメリットの代わりに計算の安定性が増すので、非圧縮という厳しい条件でも安定性を維持できるようになります。
ただし、MPS法は勾配やラプラシアンなどの微分演算子において妥協があります。ここで誤差が発生するので、MPS法がSPH法に比べて精度で優れているかというと疑問が残ります。
また、非圧縮性を維持しようとすると圧力計算が重要になります。実際の流体と同じように圧力を与えるというと聞こえはいいですが、計算するのは粒子なのでそう上手く行かない部分もあります。
実際、この圧力計算がネックとなって、粒子数が大きすぎるとMPS法では圧力振動が起こることがあります。
SPH法とMPS法の課題と修正
SPH法は圧縮性流体を扱うという課題、MPS法は圧力振動が現れやすいという課題があることがわかりました。ただ、研究は進んでいるので対応もたくさん考えられて修正が進んでいます。
結果として、SPH法はISPH(非圧縮SPH)やWCSPH(弱圧縮SPH)といった非圧縮に近い手法が提案されています。また、MPS法も多少圧縮性を許容することで安定性を維持できるような取り組みも進んでいます。
つまり、結局はどちらも安定的で非圧縮な方法を探しており、同じ方向に向かっていることがわかります。
高精度で安定した手法
安定的に解けるとなれば、高精度が求められます。ここでは詳細の説明を省きますが、運動量の保存性を確保したCSPH法やCMPS法なども開発されています。
(頭文字のCは、修正を意味するCorrectedです。)
また、SPH法に非圧縮性を追加したISPH法などでは計算が不安定になります。その対応としてδ-SPH法という人工粘性を工夫して安定させた手法もあります。
おわりに
今回はMPS法とSPH法の特徴について解説しました。
大きな特徴としては、SPH法は圧縮流体でMPS法は非圧縮流体を使用しているという違いがあります。
細かな話でいうと、SPH法では安定化のために人工粘性を使用しており、また非圧縮性を気にする必要がない上に陽解法を使用するので計算が速いです。
一方でMPS法では非圧縮性を扱うために粒子数密度という値を使用します。安定化のために半陰解法という収束計算を必要とする手法を用いることで非圧縮性流体を解析することができていますが、計算時間はどうしても長くなります。また、微分演算における妥協もあります。
そしてどちらも最終的には非圧縮性で安定的かつ高速な計算を目指しており、同じところに向かっていることを説明しました。
どちらも同じ方向に進んでいるので、手法による判断は難しいです。高速化だけを求めるのであればSPH法を選ぶべきですが、もし高精度な手法を求めている場合は分けて考えずに個々のソフトウェアの性能で判断する必要があるということです。
次回以降はそれぞれの手法について具体的な計算を解説していきます。まずは日本で利用者の多いMPS法から解説します。下記からどうぞ。
youtubeでも動画出してます。そちらもどうぞ。