f

アーカイブ

2014-07-22

Install OpenFOAM on Ubuntu14.04 by APT

フリーのCFDソフトOpenFOAMは近年いろいろな分野で活用され業績がめざましい。今後のために使えるようになりたい。手始めにOpenFOAM 2.3.0Ubuntu14.04上にインストールする。
OpenFOAMはパッケージマネージャーであるAPTのパッケージが用意されておりそれを利用することでかなり簡単にインストールできる。しかし,Ubuntu14.04はまだ新しく出たばかりなので公式には未対応である。そのため,当初はソースコードからのインストールを試みていた。連休を利用して2日かけて挑戦したが,結局エラーによりうまくいかなかった。ソースコードからのインストールを諦め,どうにかAPTでインストールできないか調査していた。その結果APTを使ってUbuntu14.04OpenFOAM 2.3.0Paraview 4.1.0をインストールできた。この手順について掲載していく。
まず,公式のAPTによるインストール方法は以下のサイトで説明されている。
Ubuntu Deb Pack Installation http://www.openfoam.org/download/ubuntu.php


以下の記載の通りUbuntu 14.04は未対応となっている。


Ubuntu Versions
OpenFOAM and Paraview are currently available for the following versions of Ubuntu:


12.04 LTS, codename precise
12.10, codename quantal
13.04, codename raring
13.10, codename saucy

しかし,以下のサイトでwouterが解決方法を示している。
Installing 2.3.0 on Ubuntu 14.04 LTS -- CFD Online Discussion Forums http://www.cfd-online.com/Forums/openfoam-installation/138097-installing-2-3-0-ubuntu-14-04-lts.html


これによると,以下のように変数にUbuntu13.10のコードネームsaucyを入れてやればよいとのこと。
VERS=saucy


以下のコマンドを実行するとうまくAPTのリポジトリにOpenFOAMのパッケージが登録される。
VERS=saucy
sudo sh -c "echo deb http://www.openfoam.org/download/ubuntu $VERS main > /etc/apt/sources.list.d/openfoam.list"
sudo apt-get update


ここまではOK。しかし次が厄介だ。公式のガイドに従うと,後は以下のようにapt-get installするだけとなっている。
sudo apt-get install openfoam230
sudo apt-get install paraviewopenfoam410


paraviewのインストールはうまくいく。しかし,openfoamの方はうまくいかない。実行すると以下のように古いバージョンのlibboost-threadlibopenmpiに依存している注意が表示される。
openfoam230 : Depends: libboost-thread1.53.0 which is a virtual package.
Depends: libopenmpi1.3 which is a virtual package.


これらのパッケージはUbuntu 14.04ではサポートされていない。そのため,過去のリポジトリをAPTに登録してインストール可能にする。
例えば,以下のサイトでUbuntuの過去のバージョンのパッケージのリポジトリのURLが掲載されている。
Ubuntu – パッケージのダウンロードに関する選択 -- libopenmpi1.3_1.4.3-2.1ubuntu3_amd64.deb http://packages.ubuntu.com/ja/precise/amd64/libopenmpi1.3/download


このサイトからlibopenmpi1.3libboost-thread1.53.0の存在するリポジトリを探す。そして,以下のコマンドにより /etc/apt/sources.listの末尾リポジトリを追加して有効にする。
sudo sh -c "echo '
# old repository for OpenFOAM
deb http://cz.archive.ubuntu.com/ubuntu precise main universe
deb http://cz.archive.ubuntu.com/ubuntu saucy main universe
' >> /etc/apt/sources.list"
sudo apt-get update

これで準備が完了した。以下のコマンドでインストールを始める。
sudo aptitude install openfoam230 paraviewopenfoam410

apt-getではなくaptitudeを使うことに注意する。aptitudeだと自動的に依存関係をうまく解消するようにインストールプランを立ててくれる。apt-getだとうまくいかない。

openfoam230のインストール時に依存関係を確認してくるのでnを何回か押して以下のような依存関係が表示されたらyを入力してインストールした。ここの選択はいまいちよくわかっていない。
Install the following packages:
1) blcr-util [0.8.2-15ubuntu2 (precise)]
2) libopenmpi-dev [1.4.3-2.1ubuntu3 (precise)]
3) libopenmpi1.3 [1.4.3-2.1ubuntu3 (precise)]
4) libptscotch-5.1 [5.1.12b.dfsg-2 (saucy)]
5) libptscotch-dev [5.1.12b.dfsg-2 (saucy)]
6) libscotch-5.1 [5.1.12b.dfsg-2 (saucy)]
7) libscotch-dev [5.1.12b.dfsg-2 (saucy)]
8) openmpi-bin [1.4.3-2.1ubuntu3 (precise)]
9) openmpi-checkpoint [1.4.3-2.1ubuntu3 (precise)]
10) openmpi-common [1.4.3-2.1ubuntu3 (precise)]

Keep the following packages at their current version:
11) libopenmpi1.6 [Not Installed]

Leave the following dependencies unresolved:
  1. blcr-util recommends blcr-dkms


これで以下のように/optディレクトリにOpenFOAM2.3.0Paraview 4.1.0がインストールされた。
ls /opt
openfoam230/ paraviewopenfoam410/


後は公式のガイドにあるように以下を.bashrc記入にしてOpenFOAMの変数設定を行っておく。
## OpenFOAM
export FOAM_INST_DIR=/opt/
source $FOAM_INST_DIR/openfoam230/etc/bashrc


なお私の環境ではターミナルを再起動すると以下のエラーが表示された。
gcc: error: unrecognized command line option ‘--showme:link’


これはmpiccが原因。ローカル環境にMPICHmpiccが入っていたのが原因の模様。OpenMPIMPICHmpiccという名前が競合していたようだ。MPICHmpiccをパスから除外したら解決した。
参考:--showme errors -- CFD Online Discussion Forums http://www.cfd-online.com/Forums/openfoam-installation/97581-showme-errors.html


最後に以下のようにしてチュートリアルを実行して動作を確認する。
mkdir -p ~/run/OpenFOAM/
cp -r $FOAM_TUTORIALS !$
cd ~/run/OpenFOAM/tutorials/incompressible/icoFoam/cavity
blockMesh
icoFoam
paraFoam


これでOpenFOAM2.3.0Paraview4.1.0がインストールできた。ここからOpenFOAMの入出力などを勉強していこう。

0 件のコメント:

コメントを投稿