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

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

DEXCS-OpenFOAMの有効活用:LIGGGHTSによるDEM解析(2)

2011年11月17日 22時06分08秒 | DEXCS情報
コンパイルにより作られたliggghtsを用いてDEM解析のサンプルを実行し、結果の可視化までを説明します。

■サンプルケースの用意
ダウンロードしたLIGGGHTSのパッケージには、/opt/LIGGGHTS/liggghts/examples/LIGGGHTSにたくさんのサンプルが用意されています。
コンベア上に粒子が移動する例題conveyorを試してみます。

ホームディレクトリに作業用ディレクトリを用意します。
$ mkdir ~/DEMwork
上記のサンプルをコピーします。
$ cp -r /opt/LIGGGHTS/liggghts/examples/LIGGGHTS/conveyor ~/DEMwork

■サンプルケースの実行
サンプルケースのディレクトリに移動します。
$ cd ~/DEMwork/conveyor
入力ファイルin.conveyorを確認したら、次のようにして単体実行できます。
$ liggghts < in.conveyor
計算結果は、postディレクトリのdump.conveyorに保存されます。
なお、実行環境が4coreCPUならば、MPIを用いて並列実行も以下のように可能です。
$ mpirun -np 4 /opt/LIGGGHTS/bin/liggghts < in.conveyor

■可視化データ変換ツールpizza.pyのインストール
このpizza.pyを用いて、liggghtsの計算結果dump.conveyorをVTKに変換して、ParaViewで可視化結果を確認します。

まずはpizza.pyをインストールします。以下のサイトよりPizza.py Toolkitにチェックを入れて、ダウンロードボタンを押して入手します。/opt/LIGGGHTSにおき、パッケージを展開します。
http://www.sandia.gov/~sjplimp/download.html
$ tar xvfz pizza.tar.gz
これでツールが/opt/LIGGGHTS/pizza-70ct11にインストールされました。
※ダウンロードした時期によってOctではなくDecになりますが、同様な手順で進めるので読み替えてください。

次にシステムのpythonを利用するために、環境に合わせてpizza.pyを変更するため、以下のディレクトリに移動します。
$ cd /opt/LIGGGHTS/pizza-7Oct11/src

pythonがインストールされている場所をwhereisで確認すると/usr/bin/pythonなので、pizza.pyの先頭を以下のようにエディタで変更します。
$ vi pizza.py
 #!/usr/bin/python -i

この場所/opt/LIGGGHTS/pizza-7Oct11/srcにコマンドパスを通しておきます。
$ vi ~/.bashrc
 export PATH=/opt/LIGGGHTS/pizza-7Oct11/src:$PATH
この.bashrcを有効にするために以下のsourceを実行します。
$ source ~/.bashrc

■pizza.pyの実行環境の追加
このpizza.pyでは解析データを可視化するために、いくつかの補足ライブラリが必要です。以下の項目をパッケージマネージャで追加します。

システム⇒システム管理⇒Synapticパッケージマネージャを起動します。各項目を検索して、適用しインストールします。
・Pmw: python-pmw, python-pmw-doc
・ImageTk: python-imaging-tk, python-imaging-tk-dbg
・OpenGL: python-opengl

ここでToglについては、liblablgl-ocaml, liblabgl-ocaml-devなどをインストールしたのですが、pythonからToglを正しく読み込めないようです。ただし今回はVTKへの変換だけを行い直接にOpenGLの可視化は行わないので、pizza.pyのパスを通した/opt/LIGGGHTS/pizza-7Oct11/srcより、gl.py,gl.pycの2つを上のディレクトリに移動しておきます。
※H231225の時点でダウンロードした場合は、pizza-8Dec11が作られますが、この場合には上記のエラーは出ないので、glの移動は不要でした。

■pizza.pyによる可視化データ作成
先に実行したサンプルconveyorのディレクトリ~/DEMwork/coveyorに移動します。
pizza.pyの動作を記述するPzzaScriptを、以下の内容を記述したファイルpizzascriptとして作成します。
$ vi pizzascript
 d=dump("post/dump.conveyor")
 v=vtk(d)
 v.many("post/dump")
 exit()

データ作成を以下の様に実行します。
$ pizza.py -f pizzascript
色々なメッセージが出力されますが、Ctrl-Dで抜けてから、サンプルの結果が保存されているpostディレクトリの中に、dump0000.vtk ... dump0199.vtkが作成されています。

ParaViewを利用して結果を確認します。
$ paraview
起動したら、ファイルメニューから上記のVTKファイルを選択して、Applyで表示して調整すると、赤い粒子が落ちてきてコンベアーの上を移動する様子が分かります。

以上で最も基本となる動作が確認できました。

最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。