ここでは、Ubuntu 22.04LTS版の環境へ、OpenFOAM-11をソースからインストールします。情報が古いので,最新の情報が必要な方は,OpenFOAM配布元の情報を参考にしましょう。
[ENTER]とか[ESC]とか書いてあるのは、ENTERキーを押す、ESCキーを押すの意味です。それでは、端末をひとつ開いてください。
1.インストールディレクトリの作成
インストール先は、$HOME/OpenFOAMとします。はじめに、インストール先のディレクトリを作り、その中に移動します。
$ mkdir ~/OpenFOAM「ENTER]
$ cd ~/OpenFOAM[ENTER]
2.ビルド環境の構築
続いて、ビルドするのに必要となるUbuntuのパッケージをインストールします。OpenFOAMのビルドに必要なパッケージからインストールしましょう。
$ sudo apt-get install build-essential cmake git ca-certificates flex libfl-dev bison zlib1g-dev libboost-system-dev libboost-thread-dev libopenmpi-dev openmpi-bin gnuplot libreadline-dev libncurses-dev libxt-dev [ENTER]
このコマンドを実行すると、ユーザーのパスワードを聞かれるので間違えないように入力しましょう。その後で[Y/n]と入力を促してきますので、気持よく[ENTER]を押して、Ubuntuパッケージのダウンロード・インストールが終わるのは待ってあげましょう。
※Ubuntu 22.03LTSでは、qt関連のパッケージが従来と異なっており、配布元サイトの情報のままだとうまくいきませんでした。
$ sudo apt-get install libgl1-mesa-dev libqt5x11extras5-dev libqt5help5 qttools5-dev qtxmlpatterns5-dev-tools libqt5svg5-dev python3-dev python3-numpy libopenmpi-dev libtbb-dev ninja-build qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools libglvnd-dev python2-dev python-is-python3 curl [ENTER]
上の作業に続いて実行すると、パスワードは聞かれません。[Y/n]の問い合わせに、これまた気持よく[ENTER]で答えてあげてください。
3.ソースファイルのダウンロード
配布元からソースファイルをダウンロードします。
$ git clone https://github.com/OpenFOAM/OpenFOAM-11.git [ENTER]
$ git clone https://github.com/OpenFOAM/ThirdParty-11.git [ENTER]
これを実行すると、本家のopenfoam.orgから、OpenFOAM-11本体のソースパッケージと、OpenFOAMを使うのに必要となるプログラム群(サードパーティパッケージ)のソースがダウンロードされ、展開されます。
4.ディレクトリ名の変更
$HOME/OpenFOAMの中がどうなっているのか、確認してみましょう。
$ ls [ENTER]
OpenFOAM-11 ThirdParty-11
$
という2つのディレクトリができています。
5.ビルド・実行用環境変数の読み込み
さて、ようやくビルドに必要なパッケージが揃いましたので、いよいよビルドを開始します。がその前に、ビルドを実行するのに必要な環境変数を読み込まなければなりません。
$ source $HOME/OpenFOAM/OpenFOAM-11/etc/bashrc
$
何も言わずに終わってしまいました。それでも裏ではしっかり仕事をしてくれています。envで確かめてみましょう。
$ env [ENTER]
すると、FOAMの文字がいろいろと入った情報が出てくると思います。これで、いよいよビルドが始めれます。
6.サードパーティパッケージのビルド
サードパッケージのビルドをするために、サードパーティパッケージのソースディレクトリに入りましょう。
$ cd ThirdParty-11 [ENTER]
$
いよいよビルド開始です。たぶんそこそこ時間がかかります。覚悟は良いですか?
$ ./Allwmake [ENTER]
続いて、ポスト処理用ソフトウェアのParaViewをビルドします。これは結構時間がかかります。
$ ./makeParaView -python -python-lib /usr/lib/x86_64-linux-gnu/libpython2.7.so.1 [ENTER]
さて、お茶でもしに行きましょうか。このビルドでありがたいのは、進捗状況を%表示してくれることでしょうか。まあ、とにかくしばらく待ちましょう。終わったら次のコマンドを打ってこの作業は終了です。
$ wmRefresh [ENTER]
$
7.OpenFOAM本体のビルド
ようやく本丸の登場です。OpenFOAM本体のビルドをやりましょう。
$ cd ../OpenFOAM-11 [ENTER]
$ ./Allwmake [ENTER]
これまたとっても時間がかかります。こちらは進行状況が見えないので,そのうちに終わることを期待して,他の作業をしていた方が良いです。
8.とりあえずのテスト
ビルドが正常に終わったかどうかは,ビルドのメッセージの最後にエラーが出ていないかどうかで判断しましょう。特にエラーが出ていないようでしたら,とりあえず次のように打ってみてください。
$ icoFoam -help [ENTER]
Usage: icoFoam [OPTIONS]
options:
-case <dir> specify alternate case directory. default is the cwd
-noFunctionObjects
do not excute functionObjects
-parallel run in parallel
-roots <(dir1 .. dirN)>
slave root directories for distributed running
-srcDoc display source code in browser
-doc display application documentation in browser
-help print the usage
using: OpenFOAM-9 (see www.OpenFOAM.org)
Build: 9
$
このように表示されれば,とりあえずビルドは成功しています。
9.実行テスト
最後に,実際の計算をさせて,問題ないかを確認しましょう。まず,計算用のディレクトリを作成します。
$ mkdir -p $FOAM_RUN [ENTER]
$
これで,計算用のディレクトリが作成されました。計算用のディレクトリは,「$HOME/OpenFOAM/<ログイン名>-11/run」です。次に,チュートリアルのデータを実行用ディレクトリにコピーします。
$ cd $FOAM_RUN [ENTER]
$ cp -r $FOAM_TUTORIALS/incompressibleFluid/cavity . [ENTER]
$ cd cavity [ENTER]
$ blockMesh [ENTER]
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 9 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
【中略】
patch 0 (start: 24170 size: 30) name: inlet
patch 1 (start: 24200 size: 57) name: outlet
patch 2 (start: 24257 size: 223) name: upperWall
patch 3 (start: 24480 size: 250) name: lowerWall
patch 4 (start: 24730 size: 24450) name: frontAndBack
End
$ pisoFoam [ENTER]
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 11 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
Build : 11
Exec : pisoFoam
【中略】
SIMPLE solution converged in 298 iterations
streamLine streamlines write:
seeded 10 particles
Tracks:10
Total samples:10809
Writing data to "/home/tornado/OpenFOAM/tornado-4.1/run/pitzDaily/postProcessing/sets/streamlines/298"
End
$ paraFoam [ENTER]
paraFoamの使い方については,また別の機会に…。とりあえず,最初に左側の「Apply」を押せば,データを読み込みます。そして,"vtkBlockColors"となっているところを"U"でも選び,"▶|"ボタンを押せば,なんか綺麗な絵が出るはずです。終わり方は,[CTRL]+[Q]です。
10.よく使う環境用の設定
OpenFOAMを実行する際には,
$ source $HOME/OpenFOAM/OpenFOAM-11/etc/bashrc [ENTER]
$
と実行する必要があります。ただ,頻繁にOpenFOAMを使う場合,この作業は鬱陶しい限りです。なので,端末が開く最初に上の命令を実行させると幸せになれます。以下のコマンドを実行してください。
$ gedit $HOME/.bashrc & [ENTER]
$
そして,開いたエディターで,最後の行に,
source $HOME/OpenFOAM/OpenFOAM-11/etc/bashrc
を追加すれば,次から端末を開くと自動的にOpenFOAMの実行環境が設定されるようになります。