粒子法オープンソース実装 OpenMPSプロジェクトの開発

青子守歌 (aokomoriuta)

オープンCAEシンポジウム2016

こんな計算ができます

概要

  • 射影法型粒子法は、自由表面の大変形を伴う非圧縮性流れにおいて有用である
  • OpenMPSは、稀有な、射影法型粒子法であるMPS法のFLOSS実装である
  • C++14で開発され高精度粒子法を取り入れるなど、最新の手法を積極的に採用する方針
  • ParaViewでの可視化が標準で付属
  • 分散並列やGPGPU版、剛体連成なども近日公開予定である

OpenMPSプロジェクトの発展が 今後のオープンCAE界の発展につながるものと考え 引き続き開発を続けていきます

OpenMPS前史

TOC

  1. OpenMPS前史
  2. OpenMPSの現在
  3. 課題と今後の展望
  4. まとめ

計算手法の分類

オイラー形式ラグランジュ形式
格子法FEM, VOFなど格子変形法など
粒子法なし
陽解法(半)陰解法
SPH法(1)(2) E-MPS法(3) などISPH(4) MPS法(5) など

射影法型?

従来、半陰解法の別呼称

Gotoh H, Khayyer A (2016)(6)による分類(projection-based)

射影法

NS式にヘルムホルツ・ホッジ分解を適用

\[ \underbrace{\mathbf{u}_{k+1}}_{発散なし} = \underbrace{\mathbf{u}_{k} + \Delta t \left( \mathbf{f} + \nu \nabla^2 \mathbf{u} \right)}_{任意ベクトル} - \underbrace{\frac {\Delta t }{\rho} \nabla p}_{回転なし} \]

詳細はウィキペディア[[射影法]]などを参照

射影法型粒子法の長所

  • 自由表面の大変形への追従が容易
  • 移流項に起因する誤差拡大が抑制できる
  • 非圧縮性流れの計算安定性(時間刻みを大きくできる)

射影法型粒子法の短所

  • 他の手法に比べて研究例・応用例が少ない
  • 公開された実装がない(試してみるには自分で書くしかない)

OpenMPSへ

計算力学の発展には 多くの応用・比較例が必要だ

オープンソース実装を!

OpenMPSの現在

TOC

  1. OpenMPS前史
  2. OpenMPSの現在
  3. 課題と今後の展望
  4. まとめ

OpenMPSとは

MPS法のオープンソース実装

詳しくはopenmps.bitbucket.io参照

なぜMPS法?

  • 射影法型粒子法だから
  • ISPHより先発であり、研究実績などが豊富だから

※MPSとSPHは もはや空間離散化手法の違いでしかない(7)

MPS法の流れ

  1. 重力粘性により移動
  2. (粒子数)密度を保つような圧力を計算
  3. 圧力勾配により移動

詳しくは参考文献(8)(9)参照

MPS法の粒子間相互作用モデル

移流項
粒子の移動によって計算
圧力勾配項
勾配モデル \(\displaystyle \left[ \boldsymbol{\nabla} p \right]_i = \frac{D}{n_0} \sum_{j \neq i} \frac{p_j - p_i}{r_{ij}} \frac{\boldsymbol{r_{ij}}}{r_{ij}} w \left( r_ij \right) \)
粘性項
ラプラシアンモデル \(\displaystyle \left[ \boldsymbol{\nabla}^2 \phi \right]_i = \frac{2 D}{n_0 \lambda} \sum_{j \neq i} \left( \phi_j - \phi_i \right) w \left( r_ij \right) \)
pi pj re i j
勾配モデル
re i j
ラプラシアンモデル

OpenMPSのライセンス

マルチライセンス

商用利用:コピーレフト
  • GPL 3.0以降
  • CC-BY-SA 3.0 Unported
非商用利用:帰属表示のみ
  • CC-BY-NC 3.0 Unporetd

OpenMPS最新版

現時点での最新版はv2.1

  • 最新の多くの高精度粒子法(後述)の導入
  • C++14で開発
  • Visual Studio/Windowsが主体(Linux, Makefileも付属)
  • OpenMPによるスレッド並列
  • ParaViewでの可視化(.pvsmファイルの提供)
  • (実験機能)3次元計算

導入された高精度粒子法

オリジナルMPS法(4)かなり改善

  • HS法(高精度生成項), Khayyer and Gotoh (2009)
  • HL法(高精度ラプラシアン), Khayyer and Gotoh (2010)
  • GC法(勾配修正行列), Khayyer and Gotoh (2011)
  • ECS法(誤差修正項), Khayyer and Gotoh (2011)
  • DS法(動的人工斥力), Tsuruta et al. (2013)

詳しくはGotoh and Khayyer (2016)を参照

※概要集では誤ってSPPも導入済みとなっていますが、SPPは導入予定です

計算例1

20cm四方の水槽でのダムブレーク(空間解像度:1mm)

計算例2

8cm四方の水槽でのスロッシング?(空間解像度:0.2mm)

計算例2の流速ベクトル図

課題と今後の展望

TOC

  1. OpenMPS前史
  2. OpenMPSの現在
  3. 課題と今後の展望
  4. まとめ

直近の開発予定

BitbucketのIssuesより(優先度順)

  1. Tsuruta et al. (2015)のSPPを導入
  2. V&V
  3. 分散並列(MPI)化 (おそらくFDPSの導入)
  4. SIMD化 (AVX2 or AVX-512)
  5. 剛体連成
  6. GPGPU版の公開(コード自体は既に非公開レポジトリにある)

対外発表(予定)

  1. オープンCAE勉強会@関東(流体など)
  2. 計算工学講演会?

募集

機能要望・バグ報告
Bitbucket Issueまでお気軽に!
サポート・共同研究
「動かない」「なんか遅い」「結果が合わない」なども遠慮なくご相談ください(Issue, Twitter reply/DM等へ)。できる限り最大限の範囲で協力します。
開発者
プルリクもお待ちしています。

TOC

  1. OpenMPS前史
  2. OpenMPSの現在
  3. 課題と今後の展望
  4. まとめ

まとめ

  • 射影法型粒子法は、自由表面の大変形を伴う非圧縮性流れにおいて有用である
  • OpenMPSは、稀有な、射影法型粒子法であるMPS法のFLOSS実装である
  • C++14で開発され高精度粒子法を取り入れるなど、最新の手法を積極的に採用する方針
  • ParaViewでの可視化が標準で付属
  • 分散並列やGPGPU版、剛体連成なども近日公開予定である

OpenMPSプロジェクトの発展が 今後のオープンCAE界の発展につながるものと考え 引き続き開発を続けていきます

参考文献

  1. R.A. Gingold and J.J. Monaghan (1977) : “Smoothed particle hydrodynamics: theory and application to non-spherical stars” Mon. Not. R. Astron. Soc., Vol 181, pp. 375–89.
  2. L.B. Lucy (1977) : “A numerical approach to the testing of the fission hypothesis”, Astron. J., Vol 82, pp. 1013–1024.
  3. Oochi M, Koshizuka S, Sakai M (2010): "Explicit MPS Algorithm for Free Surface Flow Analysis", Trans. JSCES, No. 20100013. (in Japanese)
  4. Koshizuka S, Oka Y (1996): "Moving particle semi-implicit method for fragmentation of incompressible fluid", Nucl Sci Eng, 123:421–434.
  5. Shao S, Lo EYM (2003) :”Incompressible SPH method for simulating Newtonian and non-Newtonian flows with a free surface”, Adv Water Resour, Vol. 26, 787–800.
  6. Gotoh H, Khayyer A (2016): "Current achievements and future perspectives for projection-based particle methods with applications in ocean engineering", J Ocean Eng Mar. Energy, 2:251.
  7. 土木学会編 (2012): 『数値波動水槽 -砕波波浪計算の深化と耐波設計の革新を目指して-』、丸善出版、p.73。
  8. 越塚誠一 (2005) : 『粒子法』、計算力学レクチャーシリーズ、丸善出版。
  9. 越塚誠一、柴田和也、室谷 浩平 (2014) : 『粒子法入門」、丸善出版。
  10. Khayyer A, Gotoh H (2009): "Modified moving particle semi-implicit methods for the prediction of 2D wave impact pressure" Coast Eng, 56:419–440.
  11. Khayyer A, Gotoh H (2010): "A higher order laplacian model for enhancement and stabilization of pressure calculation by the MPS method", Appl Ocean Res, 32(1):124–131.
  12. Khayyer A, Gotoh H (2011): "Enhancement of stability and accuracy of the moving particle semi-implicit method", J Comput Phys, 230:3093–3118.
  13. Tsuruta N, Khayyer A, Gotoh H (2013): "A short note on dynamic stabilization of moving particle semi-implicit method", Comput Fluids, 82:158–164.
  14. Tsuruta N, Khayyer A, Gotoh H (2015): "Space potential particles to enhance the stability of projection-based particle methods", Int J Comput Fluid Dyn, 29(1):100–119

関連リンク

return 0;