はじめに

せっかくdebパックで簡単自動インストールが可能になっているのに、敢えて0からのマニュアルインストールをしてみよう。ソースを触るのであれば、その方が絶対良いですよ。

インストールする環境

今からインストールする環境は、Ubuntu14.04LTS(64bit)です。

インストールに必要なパッケージのインストール

sudo apt-get install build-essential cmake flex bison zlib1g-dev qt4-dev-tools \
libqt4-dev gnuplot libreadline-dev libncurses-dev libxt-dev libopenmpi-dev \
openmpi-bin libboost-system-dev libboost-thread-dev libgmp-dev \
libmpfr-dev python-dev

OpenFOAMディレクトリの作成

ホームディレクトリにOpenFOAMというディレクトリを作成します。

cd ~
mkdir OpenFOAM
cd ~/OpenFOAM

ソースファイルのダウンロード

wget "http://downloads.sourceforge.net/foam/OpenFOAM-2.3.1.tgz?use_mirror=mesh" \
-O OpenFOAM-2.3.1.tgz
wget "http://downloads.sourceforge.net/foam/ThirdParty-2.3.1.tgz?use_mirror=mesh" \
-O ThirdParty-2.3.1.tgz

tgzファイルの展開

tgzファイルを展開します。

tar xvzf OpenFOAM-2.3.1.tgz
tar xvzf ThirdParty-2.3.1.tgz

MPIを使えるようにオマジマイ

ln -s /usr/bin/mpicc.openmpi OpenFOAM-2.3.0/bin/mpicc
ln -s /usr/bin/mpirun.openmpi OpenFOAM-2.3.0/bin/mpirun

対象マシンのアーキテクチャの確認

uname -m

この命令の返し値がi686かx86_64かで次のどちらかを実行する。以下の命令のM_COMPPROCS=の数字は自分のPCのコア数を入れる。

i686のとき

source $HOME/OpenFOAM/OpenFOAM-2.3.1/etc/bashrc M_NCOMPPROCS=4 \
WM_MPLIB=SYSTEMOPENMPI WM_ARCH_OPTION=32

x86_64のとき

source $HOME/OpenFOAM/OpenFOAM-2.3.1/etc/bashrc WM_NCOMPPROCS=4 \
WM_MPLIB=SYSTEMOPENMPI

ThirdPartyの中のビルド作業

cd $WM_THIRD_PARTY_DIR
./Allwmake > make.log 2>&1

でしばし待って、無事に終われば、次のコマンドを実行。

wmSET $FOAM_SETTINGS

次にparaviewのビルドを実行。デフォルトではpythonスクリプトがオフになっているので、必要な方は-pythonオプションと-python-libオプションをつけて次を実行。

./makeParaView4 -python -python-lib /usr/lib/x86_64-linux-gnu/libpython2.7.so.1 \
> log.makePV 2>&1

さらにしばらく待って、無事にビルドが終わったら

wmSET $FOAM_SETTINGS

を実行。

OpenFOAMのビルド

いよいよ本丸のビルドです。とりあえず、OpenFOAM本体のディレクトリに移動します。

cd $WM_PROJECT_DIR

続いて同じ命令を2回実行します。まず1回目。これはさすがにかなりの時間がかかります。コーヒーでも飲みながらマッタリと待ちましょう。

./Allwmake > make.log 2>&1

引き続きもう1回。こっちはそれほど時間はかかりません。

./Allwmake > make.log 2>&1

とりあえずのテスト

ひとまずはテストです。

icoFoam -help

と打ってみてください。

Usage: icoFoam [OPTIONS]
options:
  -case <dir>       specify alternate case directory, default is the cwd
  -noFunctionObjects
                    do not execute functionObjects
  -parallel         run in parallel
  -roots <(dir1 .. dirN)>
                    slave root directories for distributed running
  -srcDoc           display source code in browser
  -doc              display application documentation in browser
  -help             print the usage

Using: OpenFOAM-2.3.1 (see www.OpenFOAM.org)
Build: 2.3.1-262087cdf8db

のようなメッセージが出てくればとりあえずビルドは成功しています。

.bashrcの編集

ホームディレクトリに隠れている.bashrcの末尾に次の1行を加えましょう。

source $HOME/OpenFOAM/OpenFOAM-2.3.1/etc/bashrc

そうすれば、端末を開くのと同時にOpenFOAMが使える環境に設定されます。

一連の動作確認

とりあえず、実行環境を作成し、tutrialsをコピーしましょう。

mkdir -p $FOAM_RUN
cp -r $FOAM_TUTORIALS $FOAM_RUN/

さらに実行場所へ移動しましょう。ここでは、tutrialsに含まれているicoFoamのcavity流れの解析でテストします。

run
cd tutrials/incompressible/icoFoam/cavity

まずは、blockMeshを実行して、

blockMesh

ソルバーicoFoamを実行して、

icoFoam

最後にparaFoamを実行します。

paraFoam

ここまでエラーが出ないようであれば、ビルド自体は成功しています。それぞれの使い方については、とりあえずその他の情報を見てください。

謝辞

以下のURLを参考にさせていただきました。ここに記し、感謝の意を表します。

https://openfoamwiki.net/index.php/Installation/Linux/OpenFOAM-2.3.0/Ubuntu

お約束

ここに書かれた情報は私の環境でうまくいった例を紹介しており、その他の環境でうまくいくことを保証するものではありません。また、ここの情報に沿って試した結果生じた不利益に対して一切責任を追いません。

執筆者:M.Noda