OpenFOAM 3.0.1 を Red Hat Enterprise Linux 6.9 にインストールメモ

2017年11月22日

インストール対象マシン

  • Red Hat Enterprise Linux 6.9
  • GCC 4.4.7

開発環境のインストール

開発環境が入っていなかったので、インストールする。

# LANG=en yum grouplist
# yum groupinstall "Development tools"
# yum install openmpi-devel
# yum install zlib-devel
# yum install boost-devel

コンパイル

パッケージを展開。

$ mkdir ~/OpenFOAM
$ tar xvzf OpenFOAM-3.0.1.tgz -C ~/OpenFOAM
$ tar xvzf ThirdParty-3.0.1.tgz -C ~/OpenFOAM

~/.bashrc を編集。

. ~/OpenFOAM/OpenFOAM-3.0.1/etc/bashrc

設定を読み込み。

$ . ~/.bashrc

コンパイル。

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

エラーが出た。

primitives/triad/triad.C:36: error: expected initializer before ‘<’ token
primitives/triad/triad.C:39: error: expected initializer before ‘<’ token

ソースコードを修正。

p>$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; // 追加

再度コンパイルを実行。別のエラー。

cannot find -lboost_thread

リンクを張る。

# ln -s /usr/lib64/libboost_thread-mt.so /usr/lib64/libboost_thread.so

再度コンパイルを実行。