OpenFOAM のインストール

2016年7月2日

はじめに

OpenFOAM のインストールについて。

パッケージの取得

最新のパッケージは OpenFOAM のページ からダウンロードできる。古いバージョンが必要な場合は SourceForge のプロジェクト から入手する。

バージョンの違い

OpenFOAM のバージョン番号は、4.0 からは x.z、それ以前は x.y.z という形で表される。ケースやソルバーが対応するバージョンの x がインストールされたものと異なる場合、まず動かないと思ってよい。y が異なる場合も何かしらの修正が必要なことがある。z の違いは問題ないことが多い。

以上のことから、既存のケースやソルバーを用いる場合は、対応するバージョンに注意する必要がある。Web 上で公開されているケースやソルバーは 2.x 系が多い (場合によっては 1.7.1 もある) ようなので、既存のものを利用するつもりなら、最新版だけでなく古いバージョンもインストールしておいたほうがよいかもしれない。

これまで Ubuntu など向けのバイナリパッケージは、x.y.z の番号が異なれば異なるパッケージとして扱われてきたが、3.0 からは 3.0.1 のパッケージ名は 3.0 のままになっており、新規インストールではなくアップグレードで対応するようになっている。4.0 からは 2 つ目の数字を廃止したようである。

OpenFOAM+?

これまで公式パッケージを配布していた "http://www.openfoam.com" (OpenCFD 社) から、"OpenFOAM+" なるものが配布されているが、"http://www.openfoam.org" (OpenCFD Foundation) のほうがオリジナルなので、あまり気にしなくてよい。登場当時は OpenFOAM 3.0 に対して "OpenFOAM 3.0+" という形だったが、今は OpenFOAM 4.0 に対して "OpenFOAM v1606+" となっているので、完全に "fork" (要するに別物) と思ったほうがよいかもしれない。

どうしてもインストールしてみたい場合は、オリジナルを入れた上でソースからコンパイルしたほうがよいかもしれない。バイナリ版は Docker という仮想化環境が用いられていて、少しややこしい。

Linux ディストリビューションの選択

Linux ディストリビューションは、ソースからコンパイルするなら基本的にどれでも動くはずだが、当然、新しいバージョンは比較的新しい開発用パッケージを要求してくる。

バイナリパッケージは、現在は Ubuntu 用のみが提供されている。インストールで悩みたくなければ Ubuntu 系のディストリビューションを選択するのが無難である。

公式版が対応していない環境については、Rheologic 社が RheologicRemix としてバイナリを公開している。

バイナリ版のインストール

注意

バイナリパッケージ用のリポジトリが Vre. 3.0.0〜3.0.1 あたりで "http://www.openfoam.com" から "http://www.openfoam.org" に変更されている。ただし、公式のインストール手順も律儀に修正されているので、手順通りでよい。

Ubuntu 版について、Ubuntu のバージョンに対して提供されている OpenFOAM のバージョンの範囲が限定されている。といっても、古い Ubuntu のバージョンのパッケージも動くようなので、古いバージョンの OpenFOAM が必要な場合は、リポジトリに古い Ubuntu のパスも入れておけばよい。/etc/apt/sources.list にたとえば次のように書いておく。

deb http://www.openfoam.org/download/ubuntu trusty main
deb http://www.openfoam.org/download/ubuntu raring main
deb http://www.openfoam.org/download/ubuntu precise main
deb http://www.openfoam.org/download/ubuntu lucid main

ただし、古いバージョンは依存パッケージが古くてインストールできない場合もある。その場合、強引な方法を取る必要がある (たとえばこんな感じ)。

本ページ下のほうにインストールメモを置いているので、そちらも参考にしてほしい。

OpenFOAM 4.0

Ubuntu 用にバイナリ版が用意されている。インストールの手順については こちら を参照。

注意: Ubuntu 14.04 LTS 版では foamyHexMesh が使えない。

OpenFOAM 3.0.1

Ubuntu 用にバイナリ版が用意されている。インストールの手順については こちら を参照。

注意: Ubuntu 14.04 LTS 版では foamyHexMesh が使えない。

CentOS などに対応した非公式なバイナリもある: RheologicRemix Downloads

OpenFOAM 2.4.0

Ubuntu 用にバイナリ版が用意されている。インストールの手順については こちら を参照。

OpenFOAM 2.3.1

Ubuntu 用にバイナリ版が用意されている。インストールの手順については こちら を参照。

SUSE、Red Hat 用のバイナリ版が必要であれば、2.3.0 を利用する。

OpenFOAM 2.3.0

Ubuntu, SUSE, Red Hat (RHEL) 用にバイナリ版が用意されている。インストールの手順については こちら を参照。

2.3.x であれば非公式な CentOS 用バイナリもある (ただし RHEL 6.x 向け): CentOS - OpenFOAM build project

OpenFOAM 2.2.2

Ubuntu, SUSE, Fedora 用にバイナリ版が用意されている。インストールの手順については こちら を参照。

2.2.x であれば非公式な CentOS 用バイナリもある: CentOS - OpenFOAM build project

OpenFOAM 2.1.1

Ubuntu, SUSE, Fedora 用にバイナリ版が用意されている。インストールの手順については こちら を参照。

非公式な CentOS 用バイナリもある: CentOS - OpenFOAM build project

OpenFOAM 2.0.1

Ubuntu と SUSE 用にバイナリ版が用意されている。インストールの手順については こちら を参照。

OpenFOAM 1.7.1

Ubuntu と SUSE 用にバイナリ版が用意されている。インストールの手順については こちら を参照。

OpenFOAM 1.6

インストールの手順については こちら を参照。

ソースからコンパイル

OpenFOAM 2.0.0 以降

コンパイラの用意

コンパイルにはそれなりのバージョンの GCC が必要。GCC のコンパイル手順については こちら を参照。

ソースパッケージの取得

OpenFOAM のページ から以下を取得する。

ソースパッケージ

  • OpenFOAM-2.3.1.tgz
  • ThirdParty-2.3.1.tgz

OpenFOAM のコンパイル

パッケージを展開

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

環境設定として、シェルが bash の場合、~/.bashrc に以下を追加する。

. ~/OpenFOAM/OpenFOAM-2.3.1/etc/bashrc

~/.bashrc を読み込む。

$ . ~/.bashrc

OpenFOAM のコンパイル。

$ cd $WM_PROJECT_DIR
$ ./Allwmake

ParaView のコンパイル

ParaView のコンパイルには、それなりのバージョンの CMake と Qt の開発環境が必要。必要に応じて CMake のコンパイルを実施する。

(ParaView 4 の場合)

$ cd $WM_THIRD_PARTY_DIR
$ ./makeParaView4

(ParaView 3 の場合)

$ cd $WM_THIRD_PARTY_DIR
$ ./makeParaView

ParaView で Python を有効にするには、次のようにオプションを指定する。

$ ./makeParaView4 -python -python-lib /usr/lib/libpython2.7.so.1.0

"-python-lib" の後ろは、環境に合わせて修正する。

また、MPI に対応させるには、"-mpi" オプションを指定する。

$ ./makeParaView4 -mpi

ParaView がコンパイルできたら、OpenFOAM 用プラグインのコンパイルを行う。

(ParaView 4 の場合)

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

(ParaView 3 の場合)

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

実行確認

$ cp -r $FOAM_TUTORIALS/incompressible/icoFoam/cavity .
$ cd cavity
$ blockMesh
$ icoFoam
$ paraFoam

ソルバーのコンパイルのテスト

$ cp -r $FOAM_SOLVERS/incompressible/icoFoam .
$ cd icoFoam
$ vi Make/files

ここで、"EXE = ..." の行を以下のように書き換える。

EXE = myIcoFoam

コンパイル。

$ wmake

実行。

$ cp -r $FOAM_TUTORIALS/incompressible/icoFoam/cavity .
$ blockMesh -case cavity
$ ./myIcoFoam -case cavity

上手くいかない場合

  • エラーメッセージから必要なプログラムやライブラリを推測し、インストールする。

OpenFOAM 1.7.1

コンパイラの用意

コンパイルには GCC 4.3 以上が必要。OpenFOAM 1.6 に付属する GCC 4.3.3 を使えないことはないが、少々めんどくさい (詳細については こちら を参照)。

ソースパッケージの取得

SourceForge のプロジェクト から以下を取得。

ソースパッケージ

  • OpenFOAM-1.7.1.gtgz
  • ThirdParty-1.7.1.gtgz

手順は上記と同様。ParaView のコンパイルには Qt 4.5 以上が必要。

ParaView プラグインのビルドは以下のとおり (ちょっとパスが違う)。

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

OpenFOAM 1.6

SourceForge のプロジェクト から以下を取得。

ソースパッケージ

  • OpenFOAM-1.6.General.gtgz
  • ThirdParty-1.6.General.gtgz

手順は上記と同様。

どうしてもインストールが上手くいかない場合

あきらめよ。深追いは禁物。Linux のディストリビューションを変えるとあっさり上手くいくことがある。OpenFOAM インストール済みの Linux (DEXCS for OpenFOAM、CAELinux など) の導入を考える。

任意の場所へのインストール

初期設定では OpenFOAM は "$HOME/OpenFOAM" にインストールされると想定されている。任意の場所にインストールする場合は $WM_PROJECT_DIR/etc/bashrc の foamInstall の値を変更する。

export WM_PROJECT=OpenFOAM

...

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

システムの Open MPI を使う

システムにインストールされている Open MPI を使う場合、$WM_PROJECT_DIR/etc/bashrc の WM_MPLIB に "SYSTEMOPENMPI" を指定する。

#export WM_MPLIB=OPENMPI
export WM_MPLIB=SYSTEMOPENMPI

複数のバージョンの混在

OpenFOAM は、もし必要であれば、複数のバージョンの混在が可能である (たぶん)。

たとえば 1.6 と 1.7.1 を混在させたい場合、同じディレクトリ (~/OpenFOAM など) に 2 つをインストールし、環境設定のために 1.7.1 のスクリプトを読み込むようにする。

バージョンを切り替えるには、ソルバー実行の際 foamExec あるいは foamJob を使う。

$ icoFoam (1.7.1 版が起動)
$ foamExec icoFoam (1.7.1 版が起動)
$ foamExec -v 1.6 icoFoam (1.6 版が起動)
$ mpirun -np 4 foamExec -v 1.6 icoFoam -parallel (1.6 版が起動)

あるいは、各バージョンの設定ファイルを読み込むエイリアスを作っておけばよいかもしれない。

~/.bashrc

alias openfoam222='. ~/OpenFOAM/OpenFOAM-2.2.2/etc/bashrc ; . ~/.bashrc'
alias openfoam230='. ~/OpenFOAM/OpenFOAM-2.3.0/etc/bashrc ; . ~/.bashrc'

~/.bashrc を読み込みなおしているのは、~/.bashrc で設定されている PATH の設定を有効にするため。

インストールメモ

※Ubuntu 用リポジトリが OpenFOAM 3.0.0〜3.0.1 あたりで "http://www.openfoam.com" から "http://www.openfoam.org" に変更されている。古いバージョンのメモを参照する場合は注意。

OpenFOAM 4.0

OpenFOAM 3.0+

OpenFOAM 3.0.1

OpenFOAM 3.0.0

OpenFOAM 2.4.0

OpenFOAM 2.3.1

OpenFOAM 2.3.0

OpenFOAM 2.2.2

OpenFOAM 2.2.1

OpenFOAM 2.2.0

OpenFOAM 2.1.1

OpenFOAM 2.1.0

OpenFOAM 2.0.1

OpenFOAM 2.0.0

OpenFOAM 1.7.1

OpenFOAM 1.7.0

OpenFOAM 1.6

OpenFOAM 1.5

OpenFOAM 1.4.1

OpenFOAM 1.3