OpenFOAM のインストール

2017年8月1日

はじめに

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

動作環境

OpenFOAM の動作環境は以下の通り。

  • OpenFOAM Foundation 版 : Linux、macOS (Docker)
  • OpenCFD 版 (Docker) : Linux、Windows、macOS
  • 非公式 : Windows、macOS

VirtualBox などの仮想環境上の Linux を使えば、Windows、macOS でも Linux 版を 利用可能。

パッケージの取得

OpenFOAM Foundation 版

OpenCFD 版

非公式 Linux 版パッケージ

Windows 版パッケージ

OpenFOAM Foundation 版と OpenCFD 版

現在、OpenFOAM Foundation 版がオリジナルで、OpenCFD 版がそれの修正・機能拡張版となっている。OpenCFD 版は当初 "OpenFOAM+" ("OpenFOAM v1606+" など) という名前だったが、v1704 から単に "OpenFOAM v1704" となった (OpenFOAM v1704 は OpenFOAM-dev ベース)。

OpenCFD 版のほうが検証をきちんとやっているようなので、OpenCFD 版を使った方がよいだろう。ただ、OpenCFD 版は Docker イメージで提供されていて使いにくい。Foundation 版のバイナリを入れてから OpenCFD 版をソースからコンパイルするとよい。

バージョンの違い

OpenFOAM Foundation 版の 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-dev" というものもある。

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

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

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

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

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

注意

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

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

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

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

本ページ下のほうにインストールメモを置いているので、そちらも参考にしてほしい。ただし、古いリポジトリバスは更新していないので注意。

OpenFOAM 5.0

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

OpenFOAM 4.1

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

ただし、環境によってはうまくいかないことがある。$WM_PROJECT_DIR/etc/bashrc を読み込んだ時、次のようなエラーが出ることがある。

gcc: error: unrecognized command line option '--showme:link'

これは mpicc のエラーである。この場合、OpenFOAM の並列計算がうまくいかないかもしれない。Anaconda の MPICH のせいで (Anaconda の mpicc が呼び出されてしまって) このエラーが出て、並列計算がうまくいかなかったことがある。Anaconda のパスを一時的に外したら大丈夫だった。

複数のバージョンの混在

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 用リポジトリが Ver. 3.0.0〜3.0.1 あたりで "http://www.openfoam.com" が "http://www.openfoam.org" に変更され、Ver. 4.1 あたりで "http://www.openfoam.org/download" が "http://download.openfoam.org"、さらに "http://dl.openfoam.org" に変更されていている。古いバージョンのメモを参照する場合は注意。

OpenFOAM 5.0

OpenFOAM v1706

OpenFOAM 1612+

OpenFOAM 4.1

OpenFOAM 1606+

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