幹事です。

今回も引き続き格子ボルツマン法のPalabosについて。

(前回までのおさらい)***************************
・ひょんなことからオープンソースで格子ボルツマン法を扱うPalabosを知る
・格子ボルツマン法は混相流、特に液滴が飛び散る場合とか得意らしい
・幹事は以前よりミルククラウンの再現を目指しています
****************************************

さて、使ってみた次はTutorialを解読して中身の把握です。
以前の記事でも書いたように、Palabosはどうやらケースごとに
C++のコードをmakeして実行するようなので、
TutorialもC++のソースコードの書き方ということになっています。

PalabosのTutorialページ
http://www.palabos.org/documentation/tutorial/first-steps.html
もちろん英語ですが、ここで少しずつ理解しながら解読を試みます。

/palabos-v1.4r1/examples/tutorial/tutorial_1/tutorial_1_1.cpp
宣言とか部分

palabos2D.hとpalabos2D.hh

おまじない。Palabosのコードを書く上で必要なライブラリのようです。(正確には原文を参照してください)
この例題は2次元解析なので”2D”ですが、3次元問題の時は”3D”に置き換えられてます。

<iostream>と<iomanip>
C++の標準ライブラリ。
iostreamはstd::coutやstd::cinを使うためのライブラリ。「using namespace std;」とセット。
iomanipは入出力操作(マニピュレータ)に引数を伴う場合に必要なライブラリ。

using namespace plb;
Palabosのライブラリの名前空間。
(Palabos開発者用ドキュメント。名前空間リスト)
http://www.palabos.org/documentation/develguide/namespaces.html

typedef double T;
シミュレーションは、倍精度浮動小数点数で実行されます。#define DESCRIPTOR plb::descriptors::D2Q9Descriptor
2次元の”D2Q9格子”を使用します。
格子ボルツマン法は、同じ2次元でも「格子」に種類があるので、それを指定しているのかな?
たぶん自由度というか計算精度的なものが変わってくると思う(予想)。

D2Q9<D2Q9格子図>

今日はここまで。