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

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

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に導入する:バイナリインストール(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 にインストールされました。

平成23年度のブログ

2011年04月04日 05時16分13秒 | DEXCS情報
オープンCAEの活動が展開して、いろいろなサイトで情報発信するようになってきた。その成果、ブログはどちらかと言うと業務日誌みたいになり、毎日の記録ばかりになってしまった。
日々の研究活動の中で、いろいろと実現したこと確認できたことで公開できるものについては、自分のための備忘録としても記録する場所として、このブログも使って行きたいと思っている。
もちろんまとまった情報については、対応する公式サイトで公開するのことを考えています。中には公開の意味はなくて、単なる備忘録としての情報もありますので、ご容赦ください。

FLUSHを公開しました。

2010年06月05日 05時43分47秒 | DEXCS情報
システムを組み込んだUSBメモリで起動するだけで、並列処理クラスタを構築するFLUSHシステムを公開しました。これは昨年度の共同開発の成果で、MPIによる様々な並列アプリケーションの、基盤システムとして利用できます。
オープンCAEのアプリケーションに対応したDEXCS-FLUSHも公開していますので、追って利用方法なども整備してゆきます。まずは基盤システムの活用方法を、このブログでも紹介してゆきます。こうご期待!

DEXCS2010-Adventure公開

2010年06月05日 05時38分40秒 | DEXCS情報
2010年となり、DEXCS2010-Adventureを公開しました。これまでのDEXCSでは弾性解析のみで、教育研修が主用途でしたが、今回のDEXCS2010では、弾塑性解析や大変形解析を実現しました。またFLUSHを活用して並列処理も可能です。
これより研究開発の構造解析にも利用できるDEXCS-Adventureとなっていますので、是非お試しください。操作方法は、これまでのDEXCSとほぼ同じですので、ランチャーを用いて簡単に利用することが出来ます。

DEXCS+FLUSH近日公開

2009年12月25日 07時08分20秒 | DEXCS情報
昨日は色々な作業ばかりで、報告する程の技術的な話題がないので、現在準備しているDEXCS+FLUSHについて、ご紹介することにします。
DEXCSは、オープンCAEとして開発し公開しているもので、オープンソースのみを用いて、プリ:モデリング+ソルバ:構造解析・流体解析+ポスト:可視化に対応したオールインワンのCAEシステムです。
FLUSHは、ポータブルグリッドとして開発し公開しているもので、オープンソースの身を用いて、並列処理+ジョブ管理+ノード管理などに対応しUSBで起動するだけで構築できるグリッドシステムです。
当然、CAEなどの大規模数値解析を効率的に処理するためには、並列処理が不可欠でありグリッドの利用が必要となります。それに対応するべくこれらを統合して利用できるDEXCS+FLUSHを開発しています。
構造解析と流体解析において、並列処理を手軽に利用できるものとして、来年度に向けての研究開発の中心課題になると思います。新年には公開を考えていますので、その時にはご紹介したいと思います。

VMwareESXiでのクラウド対応DEXCS

2009年12月19日 05時22分09秒 | DEXCS情報
世間ではクラウド流行りであり、日経1面に記事が載ることもある。クラスタの流行りの時に取り掛かり、グリッド協議会で仕事をしながらアプリケーションに進んでいった自分としては隔世の感があります。独り言はこのぐらいにして。
オールインワンでオープンソースのCAEツールを統合した"DEXCS"ですが、来年度に向けて新たな段階に向かっています。と言うのはCAEの利用が進むと、解析が複雑高度になり計算量が増加し、並列処理が不可欠になります。
これに対応して、USB起動するだけでグリッドが構築できる"FLUSH"を作っているのですが、これはあくまで個人利用を前提としたシステムです。そこで大規模グリッドを利用できるクラウド対応CAEを色々と考えていました。
そこで問題となるのが、計算のbackendは遠隔地の大規模グリッドとして、frontnedは手元にDEXCSを利用するのですが、これを手元のPCで動作させると、両者のデータ共有で特に解析結果の可視化において相当無理があると思ったのです。
考えを変えて、forntnedもグリッド側においてそれをクラウド的にサービスだけ受けられるようにしようと思い、hypervisor型の効率的なVMware ESXiを利用して仮想マシン上でのDEXCSの動作を検証してみました。
これまでもVMware PlayerでDEXCSは利用しているので期待していたのですが、LANの接続であれば全く問題なく利用できることが確かめられました。CAEの最後には可視化で応力分布などを確認するのですが、自由な操作が可能でした。
今後はこれをWAN接続のVPN上で、どこまで自由に操作が出来るかを検討して、将来のクラウド対応DEXCSの実現を目指してゆきたいと思っています。ESXiはお勧めです。ハードさえ揃えば30分でできますよ。

はじめてのParaView

2009年11月22日 10時22分17秒 | DEXCS情報
共同研究で開発しているオープンCAE「DEXCS」では、解析結果の可視化にParaViewを使っています。非常に有用なソフトウエアで、オープンソースで、Windows/Linux/MacOSなどで動作する非常に優れモノのソフトですが、唯一の欠点がドキュメントが英語書籍しかないと言うことでした。
誰か和文の解説書を出してくれないかと期待していたのですが、ついに出ました。工学社の「はじめてのParaView」です。これは、単なる利用方法だけではなく、並列可視化の構築方法まで説明されていると言う、まさに皆が望んでいる資料です。
こちらも24日は入手できるので、早速取り組んでみたいと思います。

DEXCS:起動方法を試してみる

2007年10月27日 10時00分19秒 | DEXCS情報
DEXCSは、CD起動を基本に開発が進められました。ですので名前の最後のCSは、CD System でした。しかし、様々な拡張を考えてゆく中で、Computing Systemと変化し、色々な起動方法を検討しています。現在注目しているのは、仮想マシン上での起動です。と言うのも、CDでUbuntuを起動すると、安定したOpenCAE環境を構築できるのですが、どうしても閉じた環境になってしまいます。
多くの方が普段はWindowsを利用していると思いますし、様々なソフトウエアもWindowsの方が多いと思います。例えば、Google Sketchupという3次元モデリングソフトがありますが、これはWindowsとMacintosh版しかありませんが、とても有用なソフトウエアです。これとDEXCSを連携させると、モデリングがとても効率的になると考えています。しかし、Ubuntu上でGoogle Sketchupを動かすのはとても難しそうです。
そこで、ベースをWindowsにして、OpenCAEのコアの部分を仮想マシン上のDEXCSで動かせば良いわけです。現在は、仮想マシンの構築と動作をフリーで出来るVirtual Boxに注目しています。また、画面サイズの変更やネットワークの活用で、うまく設定できないところもあるのですが、基本的には十分な機能を実現できると思います。