この文書では、Windows11とUbuntu24.04上でLBM(格子ボルツマン法)流体解析ツールFluidX3Dの、付属例題を設定して実行する手順を紹介します。
この記事は、以下の記事の続きになっていて、これらを用いてFLuidX3Dの実行環境が準備できている状態を前提とします。
FluidX3D公式サイト
https://github.com/ProjectPhysX/FluidX3D
この手順は、以下の公式ドキュメント「FluidX3D Documentation - How to get started?」において、「3. Go through Sample Setups」を参考にしています。
https://github.com/ProjectPhysX/FluidX3D/blob/master/DOCUMENTATION.md#3-go-through-sample-setups
WindowsのFluidX3Dでの手順
まず、「Visual Studio 2022」を起動して、「プロジェクトや「ソリューションを開く」より、フォルダ「C:\OpenCAE\FluidX3D-master」にあるソリューションファイル「FluidX3D.sln」を選択して開きます。
右側のソリューションのファイル一覧から、「setup.cpp」を選択して開きます。
benchmarkの無効化
このファイルの最初は「benchmark」が動作する状態なので、これをコメントアウトして無効にします。以下の手順で行います。
・7行目の「void main_setup()」の行頭に「/*」を挿入する(自動的に「/**/」となるが後ろを削除して、main_setup()の全体がコメントアウト(緑色)にする)
・5行目「#ifdef BENCHMARK」36行目「#endif // BENCHMARK」の行頭に、「//」を挿入する(これで1行分コメントアウトにする)
例題riverの有効化と実行
ここでは例題「river」を有効にして、ビルドして実行したいと思います。「Ctrl+f」ファイル内の検索で「river」を探すと、簡単に見つかります。
・1109行の「/void main_setup()】の行頭「/」を削除して、コメントを外す(関数全体の有効化され変数などに色がつきます)
・1109行の「required extensions in defines.hpp: FP16S, VOLUME_FORCE, SURFACE, INTERACTIVE_GRAPHICS」を確認する(例題riverではこれらの拡張機能が必要です)
・ファイル一覧から、「defines.hpp」を選択して開く(この設定ファイルをコメントで有効無効を切り替えます)
・16行の不要な「#define BENCHMARK」を、「//」でコメントアウトする(緑色の表示になります。)
・13行の「FP16S」は、既に有効
・18行の「VOLUME_FORCE」を、コメントを外し有効化する
・22行の「SURFACE」を、コメントを外し有効化する
・27行の「INTERACTIVE_GRAPHICS」を、コメントを外し有効化する
以上で例題riverを有効化できたので、メニューバーの「ファイル → すべて保存」で、修正を保存します。
できたらビルドするので「▶ローカルWindowsデバッガー」を押して完了すると、以下のような画面表示が出るので、キーボードの「p」で動作と停止を切り替え、「Esc」で終了します。
詳しい操作方法は、公式ドキュメントの、「4. Keyboard/Mouse Controls for INTERACTIVE_GRAPHICS/_ASCII」にまとめされています。
https://github.com/ProjectPhysX/FluidX3D/blob/master/DOCUMENTATION.md#4-keyboardmouse-controls-for-interactive_graphics_ascii
実行形式の対応
以上の手順では、実行形式を保存するフォルダ「C:\OpenCAE\FluidX3D-master\bin」の中に、「FluidX3D.exe・FluidX3D.pdb」として、保存されています。これはbenchmarkの時と同じファイル名で、現在の設定では同じファイル名で保存されてしまいます。
そこで後から実行できるようにするために、ファイル名を「FluidX3D-river.exe・FluidX3D-river.pdb」に変更しておくと、ビルドしなくても「FluidX3D-river.exe」から実行できます。ただし現在の設定では、このフォルダに入れておく必要があるようです。
UbuntuのFluidX3Dでの手順
基本的には同じ手順で、Ubuntuでも例題riverが実行できます。異なる部分のみを、以下で説明します。
ソースコードの編集なので、geditやviなどの、慣れたエディタを利用してください。
benchmarkの無効化と例題riverの有効化と実行
FluidX3Dのソースコードがあるディレクトリ「~/FluidX3D-Files/FluidX3D/src」に移動します。
エディタでファイル「setup.cpp」を開いて、以下を変更して保存する。
・7行の「void main_setup()」の行頭に「/*」を挿入する
・5行の「#ifdef BENCHMARK」36行目「#endif // BENCHMARK」の行頭に、「//」を挿入する
・1109行の 先頭の // を削除して有効にする
エディタでファイル「defines.hpp」を開いて、以下を変更して保存する。
・16行の不要な「#define BENCHMARK」を、「//」でコメントアウトする
・13行の「FP16S」は、既に有効
・18行の「VOLUME_FORCE」を、コメントを外し有効化する
・22行の「SURFACE」を、コメントを外し有効化する
・27行の「INTERACTIVE_GRAPHICS」を、コメントを外し有効化する
FluidX3Dのインストールディレクトリ「~/FluidX3D-Files/FluidX3D」に移動して、コマンド「./make.sh」でビルドして実行する。
実行形式の対応
このビルドで、実行形式がディレクトリ「~/FluidX3D-Files/FluidX3D/bin」の中に、ファイル名「FluidX3D」として作られます。これはbenchmarkの時と同じファイル名で、現在の設定では同じファイル名で保存されてしまいます。
そこで、ファイル名を「FluidX3D-river」変更しておくと、ビルドしなくても「FluidX3D-river」から実行できます。ただし現在の設定では、このフォルダに入れておく必要があるようです。
