DALAB情報発信用ブログ:OpenCAE+GPGPU+Peridynamics編

DALABで行っている研究活動の中で、OpenCAEやGPGPUや破壊解析の取り組みについてまとめてゆきます。

OpenFOAM-2.0.0をDEXCSに導入する:ソースコンパイル(2)

2011年06月30日 05時33分29秒 | OpenCAE活用
それでは、ソースコンパイルを進めます。

■ OpenFOAMのソースコンパイル
まず、コンパイルするディレクトリに移動します。正しく環境変数が設定されていれば、/home/dexcs/OpenFOAM/OpenFOAM-2.0.x になります。
$ cd $WM_PROJECT_DIR
ここで、ソース全体をコンパイルするために、以下のコマンドを実行します。なにやら色々な作業が進みますが、取り敢えず待っていられないぐらい随分と時間がかかるので、他の事をして、しばらく待ちます。
$ ./Allwmake

エラーの表示がなく、プロンプトに戻ってきたら、一応成功でしょう。後で動作確認をします。

次に、ParaView のコンパイルに進むために、ディレクトリを移動します。正しく環境変数が設定されていれば、/home/dexcs/OpenFOAM/ThirdParty-2.0.x になります。
$ cd $WM_THIRD_PARTY_DIR

コンパイルするために、以下のコマンドを実行します。なにやら色々な作業が進みますが、取り敢えず待っていられないぐらい随分と時間がかかるので、他の事をして、しばらく待ちます。
$ ./makeParaView

エラーの表示がなく、プロンプトに戻ってきたら、一応成功でしょう。パスを設定するように指示があるので、以下の記述を ~/.bashrc に追加しておきます。
export ParaView_DIR=/home/dexcs/OpenFOAM/ThirdParty-2.0.x/platforms/linux64Gcc/paraview-3.10.1
export PATH=$ParaView_DIR/bin:$PATH
export PV_PLUGIN_PATH=$FOAM_LIBBIN/paraview-3.10

さらに ParaView の追加のインストールを以下の手順で進めます。この作業は比較的短時間で終わります。
$ cd $FOAM_UTILITIES/postProcessing/graphics/PV3Readers
$ wmSET
$ ./Allwclean
$ ./Allwmake

■ インストールのテスト
以上のコンパイルとインストールのテストを、以下のコマンドで行います。
$ foamInstallationTest
色々な表示の後で、Summary として、以下の表示が出たら成功です。
Base configuration ok.
Critical systems ok.

■ 利用方法
チュートリアル実行の準備をします。先の環境変数が設定された端末において、以下のコマンドを実行します。この $FOAM_RUN は利用者とバージョンを特定する文字列として、/home/dexcs/OpenFOAM/dexcs-2.0.x/run となっています。
$ mkdir -p $FOAM_RUN

なお、DEXCS では dexcs ユーザーの OpenFOAM は、~/OpenFOAM へインストールするので、この中に dexcs-2.0.x/run を作ることになります。ここでチュートリアルのファイルをコピーするために、以下のコマンドを実行します。
$ cp -r $FOAM_TUTORIALS $FOAM_RUN

しばらく待ってコピーが終わります。ちなみに $FOAM_TUTORIALS は、~/OpenFOAM/OpenFOAM-2.0.x/tutorials を示しています。動作確認をするために、最初の例題のディレクトリに移動します。
$ cd $FOAM_RUN/tutorials/incompressible/icoFoam/cavity

後は、以下のコマンドを順に実行してください。最後に ParaViewで解析結果が確認できたら、インストール成功です。
blockMesh → icoFoam → paraFoam

OpenFOAM-2.0.0でDEM解析を試す:同梱チュートリアル

2011年06月29日 13時28分50秒 | DEXCS情報
今回 OpenFOAM-2.0.0 に取り組む目的は、DEM:個別要素法を試したかったからなのですが、チュートリアルをやってみましたので報告します。これはバイナリインストールで構築された OpenFOAM の環境で、提供されたチュートリアルをそのまま実行しています。

なお以下の手順は、下記の PENGUINITIS さんのウエブを参考にしました。
http://www.geocities.jp/penguinitis2002/study/OpenFOAM/dem/dem.html

まずユーザーのチュートリアルのディレクトリに移動します。ここでは、dexcs ユーザーなので、/opt/OpenFOAM/dexcs-2.0.0/run/tutorials になります。まず、$FOAM_RUN に移動します。
$ cd $FOAM_RUN
さらに、tutorials に移動してから、チュートリアルの lagrangian / icoUncoupledKinematicParcelFoam / hopper へ移動します。

ここで、チュートリアルを実行します。以下のコマンドを実行します。これで終わりなのですが、実は非常に計算時間が長いです。Opteron 2214 x2 の4コアを使う4並列計算になるのですが、5秒の現象を解析するのに6時間ぐらいかかりました。
$ ./Allrun

とにかく計算が終わったら…実は5秒では、容器の粒子が半分しか流れ出ないので、調子に乗って10秒計算してみたら、12時間ぐらいかかりました。ふー!

可視化のための VTK データを作るために、容器が空になるシミュレーションを見るために、ディレクトリを に移動してから、以下のコマンドを実行します。
$ cd hopperEmptying
$ foamToVTK

これで VTK ディレクトリができて、ここに可視化用データが作られます。それでは、結果を見るために ParaView を起動します。DEXCS2010 では、「アプリケーション」→「DEXCS」→「paraview」で起動できます。

メニューの「File」→「Open」で、OpenFOAM - dexcs-2.0.0 - run - tutorials - lagrangian - icoUncoupledKinematicParcelFoam - hopper - hopperEmptying - VTK - lagrangian - kinematicCloud にある kinematicCloud_..vtk を選択して OK で開きます。

ここからの ParaView の設定は試行錯誤が必要なので、ヒントだけまとめて起きます。
表示形式:Glyph 表示内容:d Glyph Type:Sphere Scale Mode:scaler Radius:0.1
などの設定で Apply して、アニメーションを再生してください。どうですか?結構それらしく見えると思います。

しかしこれでも全部は流れないので、15秒計算に挑戦します。(乞うご期待)
ちなみに計算時間を延長するには、/home/dexcs/OpenFOAM/dexcs-2.0.0/run/tutorials/lagrangian/icoUncoupledKinematicParcelFoam/hopper/hopperEmptying/system にある、controlDict ファイルを開いて、endTime を15秒にします。

相当に時間がかかりましたが、全部の粒子が流れましたので、成功です。次に、この結果をアニメーションの動画にします。ParaView の Save Animation を用いて、JPEG 画像として各ステップの状態を出力しておきます。

あとは、Windows などにファイルを移動して、この連続した JPEG 画像を連結して動画に変換して完成です。

これが、こうなるわけです。


OpenFOAM-2.0.0をDEXCSに導入する:ソースコンパイル(1)

2011年06月28日 23時03分54秒 | OpenCAE活用
ここでは、OpenFOAM-2.0.x をソースコードからコンパイルするために、Git Repository を用いた方法を説明します。若干の手間がかかりますが、最新の状態で OpenFOAM が利用できます。説明は、最低限必要な部分のみとします。なお用いる環境は、DEXCS2010 for OpenFOAM 64bit です
なお Git は、Linux の開発で用いられたバージョン管理ツールで、最新のソースコードを入手するために利用しています。

■ Git Software の入手
まずは Git を入手します。管理者権限でインストールするので、sudo を用いて、以下のコマンドを実行します。
$ sudo apt-get install git-core
また下記の git のダウンロードで、インストールする /home/dexcs/OpenFOAM は、/opt/OpenFOAM にリンクがありこの権限を変更するために、以下のコマンドを実行します。
$ sudo chmod 777 /opt/OpenFOAM

■ ソースコードのダウンロード
ソースコードを保存するディレクトリを決めます。ここでは通常ユーザーの dexcs の権限で、/home/dexcs/OpenFOAM に保存します。なお、DEXCS2010 の OpenFOAM-1.7.x もここに保存されています。コマンド git によるダウンロードをしばらく待ちます。
$ cd /home/dexcs/OpenFOAM
$ git clone git://github.com/OpenCFD/OpenFOAM-2.0.x.git
新しく /home/dexcs/OpenFOAM に OpenFOAM-2.0.x が作られています。この中で作業を継続します。なおここでは git pull しても、既に完了したメッセージが出るだけでした。
$ cd OpenFOAM-2.0.x
$ git pull
次に ThirdParty-2.0.0.gtgz をダウンロードしますが、これは直接にウエブ http://www.openfoam.com/download/source.php から入手します。ホームディレクトリに保存されていたら、/home/dexcs/OpenFOAM に移動して、以下のコマンドで、展開してからディレクトリ名を変更しておきます。パッケージのファイルは削除しても構いません。
$ tar xzf ThirdParty-2.0.0.gtgz
$ mv ThirdParty-2.0.0 ThirdParty-2.0.x

■ 構築に必要な条件
ここで用いる OpenFOAM-2.0.x と ThirdParty-2.0.x は Ubuntu 10.04 で動作しますので、DEXCS2010 は利用できます。
構築に必要なツールをインストールするために、以下のコマンドを実行します。確認には y で進めます。
$ sudo apt-get install build-essential flex cmake zlib1g-dev qt4-dev-tools libqt4-dev gnuplot libreadline-dev libxt-dev
さらに OpenMPI などに関連して、以下のコマンドを実行します。
$ sudo apt-get install libscotch-dev libopenmpi-dev

■ 環境変数の設定
ここでは、構築に必要な環境変数の設定を、自分の .bashrc に設定します。エディタで ~/.bashrc を開いて、以下の記述を追加します。
source /opt/OpenFOAM/OpenFOAM-2.0.x/etc/bashrc
これを有効にするために、以下のコマンドを実行します。
$ source $HOME/.bashrc

■ 構築システムの確認
OpenFOAM をコンパイルするための確認を行います。以下のコマンドを実行します。
$ foamSystemCheck
結果として、System check: PASS と表示されれば、先に進められます。
$ gcc --version
バージョンが 4.4.3 と表示され、4.4.? ならば良いです。
$ flex --version
バージョンが表示されたら、インストールされているので良いです。

さて、次は実際にコンパイルをします。お楽しみに!

OpenFOAM-2.0.0をDEXCSに導入する:バイナリインストール(2)

2011年06月27日 21時01分06秒 | DEXCS情報
ここではインストールした OpenFOAM-2.0.0 を、コマンドラインで利用するための設定を進めます。DEXCS2010 for OpenFOAM では、OpenFOAM-1.7.x をコマンドラインで利用するために、ランチャーから専用端末が起動できます。ランチャーの「ツール」→「端末(OF-1.7.x)」にあります。

以下の設定では、上記とは別に通常の端末を起動したときに、OpenFOAM-2.0.0 を利用するための設定です。使い慣れたエディタで、ホームにある .bashrc に設定を追加します。よく分からない場合は、以下のようにコマンドを実行してください。
$ gedit ~/.bashrc

最下行まで移動して、以下の記述を追加してください。これは、OpenFOAM-2.0.0 を利用するための環境変数の設定などを行います。追加したら、保存して終了です。端末を閉じて、再び起動しておきます。
source /opt/openfoam200/etc/bashrc

なおこの設定によって追加された OpenFOAM-2.0.0 関連の設定を確認するには、以下のコマンドを実行すると確認できます。
$ printenv | grep FOAM

以上の準備が正しくできたか確認するために、以下のコマンドを実行します。Usage としてオプションなどの説明が表示されますが、最後の Build に 2.0.0 とあるのを確認したら成功です。
$ icoFoam -help

次に、チュートリアル実行の準備をします。先の環境変数が設定された端末において、以下のコマンドを実行します。この $FOAM_RUN は利用者とバージョンを特定する文字列として、/home/dexcs/OpenFOAM/dexcs-2.0.0/run となっています。
$ mkdir -p $FOAM_RUN

なお、DEXCS では dexcs ユーザーの OpenFOAM は、~/OpenFOAM へインストールするので、この中に dexcs-2.0.0/run を作ることになります。ここでチュートリアルのファイルをコピーするために、以下のコマンドを実行します。
$ cp -r $FOAM_TUTORIALS $FOAM_RUN

しばらく待ってコピーが終わります。ちなみに $FOAM_TUTORIALS は、/opt/openfoam200/tutorials を示しています。動作確認をするために、最初の例題のディレクトリに移動します。
$ cd $FOAM_RUN/tutorials/incompressible/icoFoam/cavity

後は、以下のコマンドを順に実行してください。最後に ParaViewで解析結果が確認できたら、インストール成功です。
blockMesh → icoFoam → paraFoam

OpenFOAM-2.0.0をDEXCSに導入する:バイナリインストール(1)

2011年06月27日 03時37分21秒 | DEXCS情報
6月の16日に、OpenFOAM2.0.0がリリースされ、色々な新しい機能もあるということで話題になっています。自分はDEM(個別要素法)解析に興味があり、早速試してみようと思います。ここでは、DEXCS2010 for OpenFOAMをベースに用いて、インストールを試してみます。

ここで用いる DEXCS2010 for OpenFOAMの仕様は、Ubuntu 10.04LTS (64bit) と OpenFOAM 1.7 です。この環境では、Ubuntu 用のバイナリインストールが簡単にできるようです。以下のサイトに説明があり、この記事はそれを試した結果を和文解説したものです。
http://www.openfoam.com/download/ubuntu.php

インストールできるバージョンは、Ubuntu の 10.04LTS と 10.10 です。DEXCS2010 は上記のとおり大丈夫です。もし調べたいときは、「システム」→「システム管理」→「システム・モニタ」の「システム」タブを見ると分かります。なお、11.04 でも若干の違いで動作するようです。

インストールはコマンドラインで行うので、「アプリケーション」→「アクセサリ」→「端末」で起動します。まず使っている Ubuntu のバージョンを確認するために、以下のコマンドを端末で実行します。
$ VERS=`lsb_release -cs`

この結果を用いて、ダウンロードするサイトをシステムに登録します。このとき sudo を使うので、ログインしたパスワードを入力する必要があります。
$ sudo sh -c "echo deb http://www.openfoam.com/download/ubuntu $VERS main >> /etc/apt/sources.list"

ダウンロードで用いる apt-get のソフトウエアリストを更新するために、以下のコマンドを実行します。これも sudo を用いますが、先にパスワードを入力していれば、それが有効になります。パッケージリストを読み込みます。
$ sudo apt-get update

この update ではネットワークが必要ですので、確認してください。またアップデート・マネージャが起動する場合がありますが、この時点では「閉じる」で止めておきます。あとで「システム」→「システム管理」から再度アップデートすることができます。

では、OpenFOAM2.0.0をインストールします。以下のコマンドで自動的にインストールが進みます。続行するかなどの確認では y で進めてください。ネットワークで必要なパッケージをダウンロードしてゆきます。しばらく待ちます。なお 200 は、バージョン 2.0.0 を意味しています。
$ sudo apt-get install openfoam200

全てを正しくダウンロードできずに失敗した時は、上記の update install のコマンドを再度実行してみます。それでもだめなら、ネットワークの状態を確認してください。自分の場合は無線LANの問題があり、有線LANにしてみました。バイナリインストールでも少し待ちます。

インストールが成功すると、自分の ~/.bashrc に以下の記述を追加するように指示されます。これは、後から環境設定でまとめて行うことにします。
. /opt/openfoam200/etc/bashrc

次に ParaView をインストールします。以下のコマンドで自動的にインストールが進みます。続行するかなどの確認では y で進めてください。ネットワークで必要なパッケージをダウンロードしてゆきます。しばらく待ちます。なお 3101 は、バージョン 3.10.1 を意味しています。
$ sudo apt-get install paraviewopenfoam3101

以上の手順で、OpenFOAM-2.0.0 が /opt/openfoam200、Paraview-3.10.1 が /opt/paraviewopenfoam3101 にインストールされました。