OpenFOAM 1.3 インストールメモ

2008年3月17日

OpenFOAM ってなに?

オープンソースの汎用偏微分方程式解法ライブラリ/ツール群。流体解析プログラムなどが含まれている。

インストール対象マシン

Vine Linux 4.2 (x86)。

ダウンロード

OpenCFD のサイトからパッケージをダウンロードする。

  • OpenFOAM-1.3.General.gtgz
  • OpenFOAM-1.3.linuxGcc4DPOpt.gtgz
  • gcc-4.1.0.linux.gz
  • paraview-2.4.2.linux.gz
  • j2sdk.1.4.2_05.linux.gz

インストール

ディレクトリ $HOME/OpenFOAM を作成し、その中に *.gtgz を展開する。

$ mkdir $HOME/OpenFOAM
$ tar xvzf OpenFOAM-1.3.General.gtgz -C $HOME/OpenFOAM
$ tar xvzf OpenFOAM-1.3.linuxGcc4DPOpt.gtgz -C $HOME/OpenFOAM

ディレクトリ $HOME/OpenFOAM/linux を作成し、その中に *.linux.gz を展開する。

$ mkdir $HOME/OpenFOAM/linux
$ tar xvzf gcc-4.1.0.linux.gz -C $HOME/OpenFOAM/linux
$ tar xvzf paraview-2.4.2.linux.gz -C $HOME/OpenFOAM/linux
$ tar xvzf j2sdk.1.4.2_05.linux.gz -C $HOME/OpenFOAM/linux

セットアップ

使用しているシェルが bash の場合

$HOME/.bashrc の最後に

. $HOME/OpenFOAM/OpenFOAM-1.3/.OpenFOAM-1.3/bashrc > /dev/null
を追加し
$ . $HOME/.bashrc
と実行して設定を有効にする。

使用しているシェルが csh の場合

$HOME/.cshrc の最後に

source $HOME/OpenFOAM/OpenFOAM-1.3/.OpenFOAM-1.3/cshrc > /dev/null
を追加し
$ source $HOME/.cshrc
と実行して設定を有効にする。

ソルバーの動作確認

セットアップ終了後、$HOME/OpenFOAM に <UserName>-1.3 というディレクトリができているので、 そこで動作確認を行う。

$ cd $HOME/OpenFOAM/adelie-1.3
$ mkdir run
$ cd run
$ cp -r $HOME/OpenFOAM/OpenFOAM-1.3/tutorials/icoFoam/cavity .
$ blockMesh . cavity
$ icoFoam . cavity

blockMesh を実行したところで、以下のメッセージが出た。

blockMesh: error while loading shared libraries: libstdc++.so.6: cannot handle TLS data

linux/gcc-4.1.0 の libstdc++.so.6 が使えないようなので、パッケージ libstdc++34-4.0.2 をインストールし、 それに含まれる libstdc++.so.6 と置き換えた。

$ cd $HOME/OpenFOAM/linux/gcc-4.1.0/lib
$ rm libstdc++.so.6 libstdc++.so
$ ln -s /usr/lib/libstdc++.so.6
$ ln -s /usr/lib/libstdc++.so.6 libstdc++.so

改めて

$ blockMesh . cavity
$ icoFoam . cavity

動けば OK。ちなみに icoFoam は非圧縮性流体解析プログラム。cavity は解析ケース。

FoamX の動作確認

"ソルバーの動作確認" を行ったあとの状態で、$HOME/OpenFOAM/<username>-1.3/run において FoamX (解析条件設定用プログラム) を実行する。

$ FoamX
Starting NameServer with inet:penguin:1234 ...
nsd: error while loading shared libraries: libelf.so.0: cannot open shared object file: No such file
 or directory

上のようにエラーで止まったので、パッケージ libelf をインストールして再実行した。

FoamX が起動して、"Case Browser" で cavity の設定内容を表示できれば OK。

paraFoam の動作確認

"ソルバーの動作確認" を行ったあとの状態で、$HOME/OpenFOAM/<username>-1.3/run において paraFoam (解析結果確認用プログラム) を実行する。

$ paraFoam . cavity

"Time" の 0.5 (最終結果) をチェックして Accept ボタンを押して、分布図が表示されれば OK。

ソルバーのコンパイルの確認

ユーザーディレクトリ $HOME/OpenFOAM/<username>-1.3 の applications ディレクトリに solvers ディレクトリを作成する。

$ mkdir $HOME/OpenFOAM/applications/solvers

$HOME/OpenFOAM/OpanFOAM-1.3/applications/solvers/incompressible/icoFoam (icoFoam のソースコード) を solvers にコピーする。

$ cp -r $HOME/OpenFOAM/OpanFOAM-1.3/applications/solvers/incompressible/icoFoam $HOME/OpenFOAM/appli
cations/solvers

icoFoam/Make/files の中の "$(FOAM_APPBIN)" を "$(FOAM_USER_APPBIN)" に書き換える。 icoFoam ディレクトリで wmake を実行する。

$ cd $HOME/OpenFOAM/applications/solvers/icoFoam
$ vi Make/files
  ...
$ wmake

コンパイルが成功して、$HOME/OpenFOAM/applications/bin/linuxGcc4DPOpt に icoFome ができていれば OK。