OpenFOAMのインストール

提供: Akionux-wiki
Share/Save/Bookmark
移動先: 案内検索

概要

オープンソースな混相流シミュレーションソフトを探していて、OpenFOAMというのを見つけた。 OpenFOAMはOpen source Field Operation And Manipulationの略で、幅広い用途で使えるCFD(Computational Fluid Dynamics)のC++のツールボックスだそうだ[1]

ここではLinux Mint 17 Qiana(Ubuntu Linux 14.04相当)の環境でOpenFOAM-2.3.xをgitリポジトリからダウンロード・インストールした手順を記す。

なお、OpenFOAM公式のマニュアル[2]のUbuntu用の手順をかいつまんでいるだけなので、詳細は元記事を参照されたい。OpenSuSEとRed Hat Enterprise Linuxに関しては元記事に解説がある。

テスト環境

Ubuntu 14.04 LTS 64bit

gitリポジトリからのインストール

UbuntuのOpenFOAMのパッケージをインストールしてもよいが、後々ソースの詳細を確認したりいじってみたりしたいのでgitリポジトリから落としてきてインストールする。

ダウンロード

デフォルトではホームディレクトリ直下の"OpenFOAM"フォルダへOpenFOAM関連のすべてのファイルを配置するようになっている。

ホームディレクトリへOpenFOAMフォルダを作ってそこにgit cloneする:

cd ~
mkdir OpenFOAM
cd OpenFOAM
git clone https://github.com/OpenFOAM/OpenFOAM-2.3.x.git

依存パッケージ

依存パッケージは次のコマンドでインストールする:

apt-get install build-essential flex bison cmake zlib1g-dev qt4-dev-tools libqt4-dev gnuplot libreadline-dev libncurses-dev libxt-dev libscotch-dev libopenmpi-dev libcgal-dev

環境変数の設定

bash/kshを使っている場合は、$HOME/.bashrcの最後に次の行を追加する:

source $HOME/OpenFOAM/OpenFOAM-2.3.x/etc/bashrc

追加し終わったら、

source $HOME/.bashrc

を実行する。

システムのチェック

OpenFOAM-2.3.x/bin/foamSystemCheckを実行すると、システムのチェックを行ってくれる。成功すると、以下のようにSystem check: PASSが表示される:

$ cd ~/OpenFOAM/OpenFOAM-2.3.x
$ ./bin/foamSystemCheck 

Checking basic system...
-----------------------------------------------------------------------
Shell:           /bin/bash
Host:            YourHost
OS:              Linux version 3.13.0-27-generic
User:            hoge


System check: PASS
==================
Continue OpenFOAM installation.

ここで、OpenFOAM 2.3.xではcsh, tcsh, ksh及びbashしか準拠していないらしく、例えばzshを使っていると、

Checking basic setup...
-------------------------------------------------------------------------------
Shell:              zsh
FATAL ERROR: Cannot identify the shell you are running.
             OpenFOAM 2.3.x is compatible with 
             csh, tcsh, ksh and bash.

というようにFATAL ERRORが出てしまう。 私の環境ではzshのままでビルド作業を行ったが、特に問題はなかった。

ソースのビルド

$WM_PROJECT_DIR($HOME/OpenFOAM/OpenFOAM-2.3.x)へ移動して、./Allwmakeを実行するとビルドが始まる:

cd $WM_PROJECT_DIR
./Allwmake

ParaviewとParaview Reader Moduleのコンパイル

ParaviewはOpenFOAMのグラフィック処理を行うサードパーティソフトウェアである。 git cloneでThirdParty-2.3.xを落とす:

cd ~/OpenFOAM
git clone https://github.com/OpenFOAM/ThirdParty-2.3.x.git

cmakeのバージョンは2.8.8以降である必要がある。次のコマンドで確認できる:

cmake --version

cmakeのバージョンが2.8.8以降でない場合、サードパーティ提供のcmakeを以下のようにビルドする:

cd $WM_THIRD_PARTY_DIR 
wget http://www.cmake.org/files/v2.8/cmake-2.8.12.1.tar.gz
tar zxvf cmake-2.8.12.1.tar.gz
./makeCmake

必要なソースコードをダウンロードする:

cd $WM_THIRD_PARTY_DIR
wget http://www.paraview.org/files/v4.1/ParaView-v4.1.0-source.tar.gz

展開する:

tar zxvf ParaView-v4.1.0-source.tar.gz

スクリプトが探すParaViewのフォルダが微妙に名前が違ってそのままだとエラーになるので名前を変えておく:

mv ParaView-v4.1.0 ParaView-4.1.0

gcc, gmp, mpfr, mpc, openmpi, scotch, CGALは先に述べたようにubuntuのパッケージを利用するのでスキップする。 makeParaViewを実行するにはqmakeが必要で、qmakeのバージョンは4.8.6だとうまくいくようだ。

qmake --version

ここでは、システムのqmake(/usr/bin/qmake)のバージョンが4.8.6で、システムのqmakeを用いてmakeParaViewを実行することとする。

./makeParaView4で/usr/lib/x86_64-linux-gnu/qt4/bin/qhelpgeneratorが必要なのでqttools5-dev-toolsをインストールしておく。

sudo apt-get install qttools5-dev-tools


次のようにスクリプトを実行:

./makeParaView4 -qmake /usr/bin/qmake

./makeParaView4の最後に環境変数を設定しろと出る:

    ---
    Installation complete for paraview-4.1.0
    Set environment variables:

        export ParaView_DIR=/home/akio/OpenFOAM/ThirdParty-2.3.x/platforms/linux64Gcc/ParaView-4.1.0
        export PATH=$ParaView_DIR/bin:$PATH
        export PV_PLUGIN_PATH=$FOAM_LIBBIN/paraview-4.1
    ---

が、環境変数を確認したところすでに設定されているようなので、#環境変数の設定で.bashrcに追記したのでokなのだと思われる。

最後に、ParaViewのreader module librariesをビルドする必要がある:

cd $FOAM_UTILITIES/postProcessing/graphics/PV4Readers
./Allwclean
./Allwmake

インストールのチェック

foamInstallationTestスクリプトでインストールのチェックが行える:

cd $WM_PROJECT_DIR
./bin/foamInstallationTest

ドキュメントを生成する

必要ならば、OpenFOAMのドキュメントを生成する。

ドキュメントを生成するのにDoxygenGraphvizが必要なのでインストールしておく:

sudo apt-get install doxygen graphviz

$WM_PROJECT_DIR/doc/Allwmakeスクリプトを実行する:

cd $WM_PROJECT_DIR/doc
./Allwmake

これで$WM_PROJECT_DIR/doc/Doxygen/html/index.htmlへドキュメントが生成される。

動かしてみる

$HOME/OpenFOAM以下へ<ユーザー名>-2.3.xというユーザーの作業ディレクトリを作成する:

mkdir -p $FOAM_RUN

チュートリアルをユーザーの作業ディレクトリへコピーする:

cp -r $FOAM_TUTORIALS $FOAM_RUN

キャビティ内の非圧縮性層流のサンプルを動かしてみる:

cd $FOAM_RUN/tutorials/incompressible/icoFoam/cavity
blockMesh
icoFoam
paraFoam

うまくインストールできていれば、paraFoamでParaViewのGUIが起動する:

起動したParaView。

References