OpenFOAM 2.2.1 を Red Hat Enterprise Linux 5.6 にインストールメモ

2013年7月17日

インストール対象マシン

Red Hat Enterprise Linux Server release 5.6, x86_64

OpenFOAM 2.2.0 インストール済み

コンパイル

OpenFOAM 2.2.1 のインストール

OpenFOAM 2.2.1 のパッケージを展開。

$ tar xvzf OpenFOAM-2.2.1.tgz -C ~/OpenFOAM
$ tar xvzf ThirdParty-2.2.1.tgz -C ~/OpenFOAM

~/.bashrc を編集。

#. ~/OpenFOAM/OpenFOAM-2.2.0/etc/bashrc
. ~/OpenFOAM/OpenFOAM-2.2.1/etc/bashrc

GCC 4.3.3 のコンパイル

OpenFOAM 1.6 に付属の GCC 4.3.3 を使用する。セットアップ手順は こちら を参照。コンパイル済みのものをコピーしてもよい。

ここでは OpenFOAM 2.2.0 で使ったものをコピー。

$ mkdir ~/OpenFOAM/ThirdParty-2.2.1/platforms
$ cp -r ~/OpenFOAM/ThirdParty-2.2.0/platforms/linux64 ~/OpenFOAM/ThirdParty-2.2.1/platforms

OpenFOAM のコンパイル

~/OpenFOAM/OpenFOAM-2.2.1/etc/bashrc の

foamCompiler=system
と書かれた行を以下のように修正。

#foamCompiler=system
foamCompiler=ThirdParty

また

export WM_COMPILER=Gcc
と書かれた行を以下のように修正。
#export WM_COMPILER=Gcc
export WM_COMPILER=Gcc43

システムにインストール済みの Open MPI を使うために以下のように修正。

#export WM_MPLIB=OPENMPI
export WM_MPLIB=SYSTEMOPENMPI

Open MPI のパスを通しておく。

~/OpenFOAM/OpenFOAM-2.2.1/etc/config/settings.sh から Gcc43 の項目がなくなっているので、OpenFOAM 2.2.0 のものからコピーする。

~/.bashrc を読み込む。

$ . ~/.bashrc

OpenFOAM のコンパイルの実行。

$ cd ~/OpenFOAM/OpenFOAM-2.2.1/
$ ./Allwmake

途中でエラーが出た。

$ cd $FOAM_SRC/OpenFOAM
$ wmake
...
primitives/triad/triad.C:36: error: expected initializer before ‘<’ token
primitives/triad/triad.C:39: error: expected initializer before ‘<’ token

おそらく gcc のバージョンのせい。コードを修正。

$FOAM_SRC/OpenFOAM/primitives/triad/triad.C

 32 namespace Foam
 33 {
 34
 35 template<>
 36 //const char* const triad::Vector<vector>::typeName = "triad";
 37 const char* const triad::VectorVector::typeName = "triad";
 38
 39 template<>
 40 //const char* triad::Vector<vector>::componentNames[] = {"x", "y", "z"};
 41 const char* triad::VectorVector::componentNames[] = {"x", "y", "z"};

$FOAM_SRC/OpenFOAM/primitives/triad/triad.H

 66 class triad
 67 :
 68     public Vector<vector>
 69 {
 70
 71 public:
 72
 73         typedef Vector<vector> VectorVector; // 追加

ParaView のコンパイル

OpenFOAM 2.1.0 のコンパイルのときに ParaView 3.12.0 のコンパイルに失敗したので、OpenFOAM 2.1.0, 2.1.1, 2.2.0 と同様に OpenFOAM 2.0.1 の ParaView 3.10.1 を使うことにする。

$ cp -r ~/OpenFOAM/ThirdParty-2.2.0/platforms/linux64Gcc43/paraview-3.10.1 ~/OpenFOAM/ThirdParty-2.2.1/platforms/linux64Gcc43

$WM_PROJECT_DIR/etc/config/paraview.sh で ParaView のバージョンを変更。

#export ParaView_VERSION=3.12.0
export ParaView_VERSION=3.10.1

~/.bashrc を読み込みなおす。

ParaView プラグインのコンパイル。

$ cd $FOAM_UTILITIES/postProcessing/graphics/PV3Readers/
$ ./Allwmake

paraFoam を起動しようとしたら落ちた。ParaView を起動して OpenFOAM のプラグインをすべて Remove すれば OK。

共有の場所に設置

他のユーザーも使えるように共有の場所 (たとえば /opt) に設置。

$ cd ~/OpenFOAM
$ su
...
# mkdir /opt/OpenFOAM
# cp -r OpenFOAM-2.2.1 /opt/OpenFOAM
# cp -r ThirdParty-2.2.1 /opt/OpenFOAM

/opt/OpenFOAM/OpenFOAM-2.2.1/etc/bashrc を以下のように修正。

#foamInstall=$HOME/$WM_PROJECT
foamInstall=/opt/$WM_PROJECT

各ユーザーには ~/.bashrc に以下を追加してもらう。

. /opt/OpenFOAM/OpenFOAM-2.2.1/etc/bashrc