CentOSにOpenFOAMをインストールしてみました。

OpenFOAM公式
http://www.openfoam.com/

OpenFOAM日本 wiki
http://www.ofwikija.org/index.php/メインページ

使用OS
CentOS 5.5 64bit

Ubuntu/Debianでは、OpenFOAMはapt-getでインストール可能ですが、その他のLinux/Unixでは、再コンパイルが必要です。(パッケージが用意されていません)

それで、CentOSで再コンパイルをしていたのですが、うまくコンパイルが出来ず、エラーの原因となる必要なパッケージ(zlib-devel、binutils-devel以外)がよくわからず試行錯誤していたところ、「CentOS – OpenFOAM build project」なるものを発見しました!

CentOS -OpenFOAM build project
http://sourceforge.net/projects/centfoam/

このプロジェクトが公開している「CentFOAMInstall」シェルスクリプトを使うと簡単にインストールできてしまいました。

そのインストール備忘録です。

①CentFOAMInstallスクリプトをダウンロードする。

[root@test ~]# wget http://sourceforge.net/projects/centfoam/files/centFOAMInstall/download

②ダウンロードしたCentFOAMInstallスクリプトに実行権限を与える。
[root@test ~]# chmod +x centFOAMInstall

③CentFOAMInstallスクリプトを実行する。
[root@test ~]# ./centFOAMInstall all
OpenFOAM-1.7.1
netgen-4.9.13
engrid-1.2.0
gmsh-2.4.2
paraview-3.8.0
Press enter to continue
エンターを押す
Where do you want it to be installed? /opt, /usr/local, /root, etc?
/usr/local/ ← インストール先を指定してエンターを押す
・
・
・
Delete temp files, yes/no
yes ← ダウンロードしてきたファイルを削除

④~/.bashrcの編集、設定反映
[root@test ~]# vi .bashrc
# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi
alias OF17=". /usr/local/OpenFOAM/OpenFOAM/OpenFOAM-1.7.1/etc/bashrc"
export LD_LIBRARY_PATH=/usr/local/OpenFOAM/paraview-3.8.0/lib/paraview-3.8:$LD_LIBRARY_PATH
export PATH=/usr/local/OpenFOAM/paraview-3.8.0/bin:$PATH
export NETGENDIR=/usr/local/OpenFOAM/netgen-4.9.13/bin
export PATH=/usr/local/OpenFOAM/netgen-4.9.13/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/OpenFOAM/netgen-4.9.13/lib:$LD_LIBRARY_PATH
export PATH=/usr/local/OpenFOAM/engrid-1.2.0:$PATH
export PATH=/usr/local/OpenFOAM/gmsh-2.4.2/bin:$PATH
. /usr/local/OpenFOAM/OpenFOAM-1.7.1/etc/bashrc ← 追加
[root@test ~]# . .bashrc

⑤実行テスト。
[root@test ~]# cd OpenFOAM/root-1.7.1/run/tutorials/incompressible/icoFoam/cavity
[root@test cavity]# blockMesh
/*-----------------------------------------------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  1.7.1                                 |
|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
|    \\/     M anipulation  |                                                 |
\*-----------------------------------------------------------------------*/
Build  : 1.7.1-03e7e056c215
Exec   : blockMesh
Date   : Sep 23 2010
Time   : 17:21:35
Host   : test.local
PID    : 9551
Case   : /root/OpenFOAM/root-1.7.1/run/tutorials/incompressible/icoFoam/cavity
nProcs : 1
SigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time


Creating block mesh from
    "/root/OpenFOAM/root-1.7.1/run/tutorials/incompressible/icoFoam/cavity/constant/polyMesh/blockMeshDict"


Creating blockCorners

Creating curved edges

Creating blocks

Creating patches

Creating block mesh topology

Default patch type set to empty

Check block mesh topology

        Basic statistics
                Number of internal faces : 0
                Number of boundary faces : 6
                Number of defined boundary faces : 6
                Number of undefined boundary faces : 0

        Checking patch -> block consistency

Creating block offsets

Creating merge list .

Creating points with scale 0.1

Creating cells

Creating patches

Creating mesh from block mesh

Default patch type set to empty

Writing polyMesh

End

[root@test cavity]# icoFoam
/*-----------------------------------------------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  1.7.1                                 |
|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
|    \\/     M anipulation  |                                                 |
\*----------------------------------------------------------------------*/
Build  : 1.7.1-03e7e056c215
Exec   : icoFoam
Date   : Sep 23 2010
Time   : 17:21:53
Host   : test.local
PID    : 9567
Case   : /root/OpenFOAM/root-1.7.1/run/tutorials/incompressible/icoFoam/cavity
nProcs : 1
SigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time

Create mesh for time = 0

Reading transportProperties

Reading field p

Reading field U

Reading/calculating face flux field phi


Starting time loop

Time = 0.005

Courant Number mean: 0 max: 0
DILUPBiCG:  Solving for Ux, Initial residual = 1, Final residual = 2.96338e-06, No Iterations 8
DILUPBiCG:  Solving for Uy, Initial residual = 0, Final residual = 0, No Iterations 0
DICPCG:  Solving for p, Initial residual = 1, Final residual = 7.55402e-07, No Iterations 35
time step continuity errors : sum local = 5.03809e-09, global = 4.40722e-19, cumulative = 4.40722e-19
DICPCG:  Solving for p, Initial residual = 0.523591, Final residual = 9.72352e-07, No Iterations 34
time step continuity errors : sum local = 1.07766e-08, global = 2.93897e-19, cumulative = 7.34619e-19
ExecutionTime = 0 s  ClockTime = 0 s
・
・
・
・
・

[root@test cavity]# paraFoam




このように可視化ソフト(ParaView)が立ち上がれば問題なくインストールできているはず!

ちなみに、MPICHも一緒にインストールされるので並列計算が可能です。

OpenFOAMのリゾルバはかなり充実しています。

次は、使い方を学ばないとな・・・。

その他参考文献
http://groups.google.com/group/openfoambeginner/browse_thread/thread/c9529eaf8107b7f7


9月 23, 2010 at 5:35 pm by 黒ぶちメガネ
Category: Linux