標準の OpenFOAM 4.1 と ESI 社による拡張である OpenFOAM+ v1706 を同じマシンにインストールし、使用時に切り替える方法を考えます。なお使用 OS は Ubuntu 16.04 LTS であるとします。
標準ではそれぞれのファイル群は次のパスにインストールされます。
この時、それぞれのパスの下の etc/bashrc ファイルを使用中の Bash 上に source コマンドで読み込むことで、その Bash から参照される OpenFOAM が切り替わります。
従って基本的にはコマンド「source /opt/openfoam4/etc/bashrc」、「source /opt/OpenFOAM/OpenFOAM-v1706/etc/bashrc」を実行すればそれぞれのバージョンを切り替えられますが、その場合には複数のパスを憶えておく必要があり煩雑で、ミスを招きやすくなります。
そこで次のようなシェルスクリプト「switchFoamVersion」を作成し、パスの通っている場所(例 /usr/local/bin など)に配置して実行権限を設定しておくと切り替えが楽になります。
このスクリプトをファイル名「switchFoamVersion」として保存し、以下の様なコマンドでインストールします。
$sudo cp switchFoamVersion /usr/local/bin $sudo chmod +x /usr/local/bin/switchFoamVersion
例えばコマンド「. switchFoamVersion v1706」(直前の「.」を忘れないように注意)を実行すると参照される OpenFOAM が「OpenFOAM+ v1706」に切り替わります。
また「-help」オプションをつけると切り替え可能なバージョンの一覧を確認できます。バージョンを指定しないで実行するとデフォルトのバージョン(上記スクリプトでは「4.1」)へ切り替わります。
$. switchFoamVersion -help Usage: . switchFoam VERSION [OPTIONS] Options: -help Shows this help -versionSwitches to the version explicitly Available versions: 4.1 v1706 $. switchFoamVersion v1706 OpenFOAM version is switched to v1706. $. switchFoamVersion OpenFOAM version is switched to 4.1. $. switchFoamVersion 4.1 OpenFOAM version is alredy 4.1.
以上でコマンド「switchFoamVersion」だけでバージョン切り替えが可能になりました。