OpenFOAM 2.2.2 を Ubuntu 14.04 LTS にインストールメモ

2017年5月30日

インストール対象マシン

Ubuntu Desktop 14.04 LTS (x86_64)。

OpenFOAM のインストール

OpenFOAM 用 apt リポジトリ /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

PGP 鍵 を設定。

$ sudo sh -c "wget -O - http://dl.openfoam.org/gpg.key | apt-key add -"

アップデート。

$ sudo apt-get update

OpenFOAM のパッケージが認識されているか確認する。

$ apt-cache search openfoam
openfoam231 - OpenFOAM
openfoam240 - OpenFOAM
openfoam30 - OpenFOAM
paraviewopenfoam410 - Paraview visualisation application
paraviewopenfoam44 - Paraview visualisation application
openfoam221 - OpenFOAM
openfoam222 - OpenFOAM
openfoam230 - OpenFOAM
paraviewopenfoam3120 - Paraview visualisation application
openfoam211 - OpenFOAM
openfoam220 - OpenFOAM
openfoam170 - OpenFOAM
openfoam171 - OpenFOAM
openfoam200 - OpenFOAM
openfoam201 - OpenFOAM
openfoam210 - OpenFOAM
paraviewopenfoam3101 - Paraview visualisation application
paraviewopenfoam380 - Paraview visualisation application
paraviewopenfoam381 - Paraview visualisation application

OpenFOAM のインストール。

$ sudo apt-get install openfoam222

openfoam222 が依存している libopenmpi1.3 をインストールできないため、エラーとなる。このパッケージが古いためである (代わりに libopenmpi1.6 がある)。

とりあえずダウンロードする。

$ sudo apt-get download openfoam222 --allow-unauthenticated

依存関係無視してインストールすることもできるが、依存関係を解決できていないため、それ以降 apt-get が使えなくなって困る。そこで、パッケージを編集して依存関係をはずす。

作業ディレクトリを用意して、パッケージをコピー。

$ mkdir tmp
$ cp openfoam222_0-1_amd64.deb tmp
$ cd tmp

パッケージを展開する。

$ ar x openfoam222_0-1_amd64.deb
$ ls
control.tar.gz  data.tar.gz  debian-binary  openfoam222_0-1_amd64.deb

さらにディレクトリを作って control.tar.gz を展開する。

$ mkdir tmp
$ tar xvzf control.tar.gz -C tmp
./
./postinst
./md5sums
./control

control の以下の部分の "libopenmpi1.3" を "libopenmpi1.6" に書き換える。

Depends: csh, g++, libreadline-dev, libc6 (>= 2.14), libgcc1 (>= 1:4.1.1), libopenmpi1.3, libptscotch-5.1, libreadline6 (>= 6.0), libscotch-5.1, libstdc++6 (>= 4.6), zlib1g (>= 1:1.1.4), binutils-dev, flex, libscotch-dev, libopenmpi-dev, libxt-dev, openmpi-bin

control.tar.gz を作り直す。

$ cd tmp
$ tar cvzf ../control.tar.gz *
$ cd ..

パッケージの control.tar.gz を入れ替える。

$ ar r openfoam222_0-1_amd64.deb control.tar.gz

他のバージョンの OpenFOAM を入れていなければ、まず libscotch、libptscotch を入れる。

$ sudo apt-get install libscotch-dev libptscotch-5.1

作り直したパッケージをインストールする。

$ sudo dpkg -i openfoam222_0-1_amd64.deb

ParaView をインストール。

$ sudo apt-get install paraviewopenfoam3120

~/.bashrc に以下を追加。

. /opt/openfoam222/etc/bashrc

端末を再起動する。

icoFoam を実行してみると、エラーが出る。

$ icoFoam
icoFoam: error while loading shared libraries: libmpi.so.0: cannot open shared object file: No such file or directory

libmpi 関係のシンボリックリンクを次のように作る。

$ sudo ln -s /usr/lib/libmpi.so.1 /usr/lib/libmpi.so.0
$ sudo ln -s /usr/lib/libopen-rte.so.4 /usr/lib/libopen-rte.so.0
$ sudo ln -s /usr/lib/libopen-pal.so.4 /usr/lib/libopen-pal.so.0

参考