PalabosのTutorial解読(1) (ブログから記事移動)
(前回までのおさらい)***************************
・幹事は以前よりミルククラウンの再現を目指しています
****************************************
さて、使ってみた次はTutorialを解読して中身の把握です。
TutorialもC++のソースコードの書き方ということになっています。 もちろん英語ですが、ここで少しずつ理解しながら解読を試みます。
/palabos-v1.4r1/examples/tutorial/tutorial_1/tutorial_1_1.cpp
宣言とか部分
code:/palabos-v1.4r1/examples/tutorial/tutorial_1/tutorial_1_1.cpp
<span style="color: #007020;">#define DESCRIPTOR plb::descriptors::D2Q9Descriptor</span> palabos2D.hとpalabos2D.hh
おまじない。Palabosのコードを書く上で必要なライブラリのようです。(正確には原文を参照してください)
この例題は2次元解析なので”2D”ですが、3次元問題の時は”3D”に置き換えられてます。 <iostream>と<iomanip>
iostreamはstd::coutやstd::cinを使うためのライブラリ。「using namespace std;」とセット。
iomanipは入出力操作(マニピュレータ)に引数を伴う場合に必要なライブラリ。
using namespace plb;
(Palabos]開発者用ドキュメント。名前空間リスト) typedef double T;
シミュレーションは、倍精度浮動小数点数で実行されます。#define DESCRIPTOR plb::descriptors::D2Q9Descriptor
2次元の”D2Q9格子”を使用します。
格子ボルツマン法は、同じ2次元でも「格子」に種類があるので、それを指定しているのかな? たぶん自由度というか計算精度的なものが変わってくると思う(予想)。
D2Q9<D2Q9格子図>