格子ボルツマン法オープンソース Palabosについて その1
今回は格子ボルツマン法のソルバが作成できるオープンソースライブラリPalabosの概要と使用感を書きました。
・格子ボルツマン法ソルバについて
・格子ボルツマン法の考え方
・Palabosについて
・PalabosのVer2.0について
・チュートリアルケース
・今後の予定
格子ボルツマン法ソルバについて
ここ数年、格子ボルツマン法ソルバがよくCAEベンダーのプロダクトに取り込まれています。ダッソーのXFlow、NUMECAのOMNIS/LBそしてANSYSのANSYS Discovery Liveです。
格子ボルツマン法は有限体積法などの格子法に比べてメッシュ作成に対する依存度が低い特徴があります。また、計算ロジックから大規模計算向きな一面もあります。
格子ボルツマン法のオープンソースはいくつかありますが、代表的なので言うと次の二つになるかと思います。
・Palabos
・OpenLB
・walBeria
今回はPalabosを見ていきます。
格子ボルツマン法の考え方
まだ、自分の言葉で語れないので引用させていただきました。
格子ボルツマン法(こうしボルツマンほう)とは、流体を多数の仮想粒子の集合体(格子気体モデル)で近似し、各粒子の衝突と並進とを粒子の速度分布関数を用いて逐次発展させることにより、そのモーメントを計算することによって、流体の熱流動場を求めるシミュレーション法のことである。(https://ja.wikipedia.org/wiki/%E6%A0%BC%E5%AD%90%E3%83%9C%E3%83%AB%E3%83%84%E3%83%9E%E3%83%B3%E6%B3%95 Wikipediaより)
構造は実にシンプルです。空間を格子で区切り、それぞれに圧力(気圧)情報を持たせて高い圧力の部分から隣接する低い圧力の部分へ流れ込むように流れが変化するという格子気体モデルという考え方です。圧力を均一に保とうとする自然界の物理現象をシミュレートします。「流れ込む分子量」と「押し出される分子量」の合計でその領域の速度を決定するというアルゴリズムです。(https://hexadrive.jp/lab/demo/622/ HEXA DRIVE社ホームページより)
Palabosについて
PalabosはFlowKit Ltd.,が開発する格子ボルツマン法のオープンソースのライブラリです。OpenFOAMなどと同じで、ソルバを構築するためのライブラリやソースコードのサンプルを提供しています。
OpenFOAMと異なるのは標準ソルバに相当するものがないという点です。汎用的なソルバを提供しているわけではないので、例題のサンプルコードを元に自分で計算する内容に合わせてソルバを作る必要があります。
Palabos自体はGPL V3で配布されています。
Palabosの計算例はhttp://www.palabos.org/gallery/overviewで見れます。
NUMECAさんのOMNIS/LBにはPalabosが統合されています。
PalabosのVer2.0について
2015年の更新を最後にしばらく更新がありませんでしたが、2017年9月にVer2.0が公開されました。この更新はNUMECAさんのOMNIS/LBの発表と関連があるように見えます。
Ver2.0では大幅に改良が加えられました。
Most important Changes
・Plenty of bug fixes. Thanks for the hints on the forum!
・Implemented a new octree-based 3D grid refinement.
・Added an exterior flow code, which uses the new grid refinement features “examples/showCases/gridRefinement3d/”
・Added an example: “examples/showCases/heatedObjectInChannel/”.
・Added couplings between Advection-Diffusion-Reaction and Free-Surface flows
・Added models for fluid dynamics with external body forces.
・Added data analysis and initialization utilities for forced flows.
・Implemented Coriolis and centripetal force computation for rotating reference frames.
チュートリアルケース
Palabosも使用にあたり、チュートリアルケースが用意されています。チュートリアルケースはMakeFileとC++のコードで提供されており、自分でコンパイルして実行ファイルを作成します。
今後の予定
チュートリアルケースは2次元でなおかつ結果は画像ファイルで出力されます。あらかじめ決められた結果を出力するにはそれでいいですが、3Dモデルなどではマウスで回転させたりもしたいところです。
そこで今後は次の2点を目標に調査を行っていきます。
・任意形状に対する計算
・画像ファイルではなくVTKファイル出力してParaviewでポスト処理
バクっと見た感じでは例題aneurysmが参考になりそうです。↓
それではまた次回。
この記事が気に入ったらサポートをしてみませんか?