OpenFOAM 開発環境の設定

2018年7月25日

はじめに

OpenFOAM でソルバーやライブラリを開発するときに、同時に計算も実行していると、計算環境を変更してしまって (ソルバーやライブラリが置き換わったりして) ややこしいことになることがある。そういう事態を避けるには、以下の方法が考えられる。

  • アカウントを分ける。
  • 開発用の OpenFOAM 環境を作る。

アカウントを分けると作業しにくくなることがある。開発用の OpenFOAM 環境を作るには、OpenFOAM のコピーを作って名前を変えればよいのだが、オリジナルのコードを変更するつもりがないのなら、大げさな気がする。また、シェルの設定をひと工夫しないと計算作業と開発作業を並行しにくい。

ということで、OpenFOAM 開発環境の設定方法を考えてみた。

バージョン

OpenFOAM v1712

開発環境の設定

方針としては、オリジナルのコードのコピーは最小限にすること、計算作業と開発作業の切り替えを簡単に行えるようにすることである。ここでは、OpenFOAM v1712 が $HOME/OpenFOAM/OpenFOAM-v1712 にインストールされているものとする。開発用の環境を "OpenFOAM-v1712-dev" とする。簡単な方法は、OpenFOAM-v1712 を丸ごとコピーすることだが、ここでは etc だけコピーする。

$ mkdir ~/OpenFOAM/OpenFOAM-v1712-dev
$ cd ~/OpenFOAM/OpenFOAM-v1712-dev
$ cp -r ../OpenFOAM-v1712/etc .

~/OpenFOAM/OpenFOAM-v1712-dev/etc/bashrc を編集して、バージョン名を変える。

export WM_PROJECT_VERSION=v1712-dev

etc 以外はリンクを作る。

$ ln -s ../OpenFOAM-v1712/applications
$ ln -s ../OpenFOAM-v1712/bin
$ ln -s ../OpenFOAM-v1712/build
$ ln -s ../OpenFOAM-v1712/doc
$ ln -s ../OpenFOAM-v1712/modules
$ ln -s ../OpenFOAM-v1712/platforms
$ ln -s ../OpenFOAM-v1712/src
$ ln -s ../OpenFOAM-v1712/tutorials
$ ln -s ../OpenFOAM-v1712/wmake

~/.bashrc には以下のように設定する。

alias of1712dev='. ~/OpenFOAM/OpenFOAM-v1712-dev/etc/bashrc'

この設定で、"of1712dev" を実行すると開発環境に切り替わることになる。※.bashrc の設定によってはパスの設定に影響があるかもしれない。そのときはどうにかする。

$ . ~/.bashrc
$ of1712dev
$ echo $WM_PROJECT_VERSION
v1712-dev

おためし。

$ cp -r $FOAM_SOLVERS/incompressible/icoFoam .
$ cd icoFoam

Make/files を編集。

EXE = $(FOAM_USER_APPBIN)/icoFoam

コンパイル。

$ wmake
$ which icoFoam
/home/xxx/OpenFOAM/OpenFOAM-v1712-dev/platforms/linux64GccDPInt32Opt/bin/icoFoam

ソルバーは開発環境 (OpenFOAM-v1712-dev) のほうにできており、計算環境 (OpenFOAM-v1712) には影響しない。