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

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

DEXCS2012-Salomeの有効活用:衝突解析Impactの導入手順(1)

2013年07月04日 05時22分37秒 | OpenCAE活用
構造解析では基本となる弾性解析から発展し、実践的な目標として衝突解析を目指される方が多いです。本開発に活用しているSalome-Mecaも接触解析は可能ですが、衝突解析となると未確認です。
やはり衝突解析の専用システムが必要になりますが、商用システムは高度な機能を有するだけあって、それなりに高価です。そこでオープンCAEで何とかならないか検討しました。

今回は、以下の公式サイトで公開されているオープンCAEの衝突解析システムImpactを検証してみようと思います。まだバージョンが0.7ですから、未完成かと思いきや解説文書や検証例題なども充実しています。また並列処理も可能なようです。
さらにシステムがJavaで作られているので、様々なシステムで動作することも特徴です。なのですが、予備解析を簡単にWindowsで進めようとしたらJavaがすぐに落ちてしまい、先に進めませんでした。何か工夫が必要なのかもです。
http://www.impact-fem.org/

ベースはDEXCS2012-Salome-D1-B1-64を用います。先の述べたようにWindowsでは不安定だったので、Ubuntu12.04-64でやってみたら、正常に動作確認が出来ました。基本的には、Java SDK, Java3D が動作する環境ならどこでも動くようです。
DEXCS-Salomeを準備したら、ネットワークを有効にして、システムのアップデートを済ませておきます。なおImpaceはJava環境で動作するので、他のシステムとの影響は無いので、既存の環境へのImpactの追加は問題ないです。

ところで、JavaはVMと言う仮想マシンで動作するので、計算速度が心配です。厳密な比較はしてないですが、感覚的にはそれなりです。ただしマルチコアCPUを活用して並列処理するので、ベースの仮想マシンでは複数CPUコアを利用可能にします。

■ 解析実行環境の準備

まずは、Impactの衝突解析の実行環境を準備します。以下のページを参照して進めます。ここでは、Ubuntuのパッケージ管理ツールSynapticを用いて準備します。以下のウエブの最初の段落に「Installation Prerequisites」にUbuntuに対する補足説明もありますので、その通りに進めます。
http://www.impact-fem.org/intro_install_en

アプリケーション→システムツール→システム管理→Synapticパッケージマネージャを起動します。最初に利用者のパスワードが確認されることがあります。起動したら、左上の再読込を押してパッケージの最新情報に更新します。

・Java engine:これはJavaの実行仮想マシンなどのツールです。
「openjdk」で検索 バージョン6が推奨になっているのですが、最新版7を導入します。以下の9個をインストール指定します。最小限ならばopenjdk-jreだけで良いかもしれませんが、まあ念のため。
openjdk-7の後に、-demo -dgb -doc -jdk -jre -jre-headless -jre-lib -jre-zero -source
適用を押すと、23個の新規パッケージがインストールされます

・Java3D:これはGUIでJavaが3次元表示するためのツールです。
「java3ds」で検索 該当は1つです。以下の1個をインストール指定します。
java3ds-fileloader
適用を押すと、4個の新規パッケージがインストールされます

Synapticを閉じて準備は完了です。Javaなので簡単に出来ますね。

■ ソフトウエアパッケージの入手

先のウエブの2番目の段落に「Impact Installation」の通りに進めます。1のDownloadを押して移動します。以下のダウンロードサイト「Impact Finite Element Program」に行きます。
http://sourceforge.net/projects/impact/

上の方の緑色のダウンロードボタンを押して、暫く待ちます。最新版Impact-0.7.06.039.zipが~/Downloadsに保存されています。

このファイルをホームディレクトリに展開します。以下の様に実行します。(これはDEXCS-Salomeの状態です)ファイルの操作などは端末で行うので、アプリケーション→アクセサリー→端末で起動します。
$ cd ~
$ unzip ~/Downloads/Impact-0.7.06.039.zip
$ mv ~/Download/Impact ~

これでホームディレクトリにImpactディレクトリが出来ました。これで準備は完了です。Javaですからコンパイルも不要で手軽です。

ではImpactディレクトリの中身を確認します。この中でImpactGUI_OGL~.shがUnixシステムでのGUIツール起動スクリプトです。(ImpactGUI_JOGL_OGL~とは別です)
$ cd ~/Impact; ls

色々あって迷いますが、linux用で64bitなのでamd64にします。ちなみにi586は32bit用です。以下の様に起動します。
$ bash ./ImpactGUI_OGL_linux_amd64.sh

少し待つと、Impact Version 0.7.06.039のGUIツールが起動します。スプラッシュまで表示されて高い完成度です。期待できます。確認できたので、左上の×ボタンで終了しておきます。

■ 衝突解析の例題の検証

このInpactには様々な例題が用意してあり、以下のウエブにも紹介され、入力ファイルがダウンロードできます。
http://www.impact-fem.org/sup_example_en
また、ダウンロードしたファイル~/Impactのexamplesにも、その中の一部がありますので、それを使ってみます。

作業用ディレクトリ~/ImpactWorkを作り、そこに例題入力ファイルtracker.inをコピーします。ちなみに、Impactの入力ファイルは、拡張子inの1つだけです。非常に単純で分かりやすいです。
$ cd ~
$ mkdir ~/ImpactWork
$ cd ~/ImpactWork
$ cp ~/Impact/examples/tracker.in .

この入力ファイルを眺めてみると、授業の演習でやるような単純な形式で、節点情報、要素情報、材料情報、解析情報、などが並んで居て、マニュアルも完備されているので、その内容はすぐに理解できます。
http://www.impact-fem.org/doc_fembic_en

た~だ、どこまで実践的な課題に対応できるのか?大規模形状とか複雑な接触条件とか、でもJavaでソース見られるようですし、更新は継続していますし基礎理論のベースもあるようですから、まあ研究開発教育用ツールとしてみれば、十分以上なツールだと思いました。
http://www.impact-fem.org/intro_theory_en

また、以下には開発者用のDevelopment/Programmers Manualもあるので、その気になれば高度な衝突問題も対応できるかも?Javaの計算速度について不安はありますが、先ほど見た起動スクリプトの並びに、ImpactCluserのツールがあって、クラスタの並列処理も可能みたいです。期待は出来ますね。
http://www.impact-fem.org/dev_programmer_en

ウエブの情報だけでなく、インストールしたディレクトリ~/Impactの中にdocディレクトリがあって、そこに大量のウエブドキュメントがあります。DEXCSの上部のツールバーの場所→ホームフォルダーを開き、Impact / doc / index_us.htmlをダブルクリックしてブラウザで開くと、整備された解説文書の全てが確認できます。
良く調べたら、ImpactGUIツールの右端のHelpタブからも閲覧できました。

さて目的に戻って、例題を検証してみます。環境設定などをしない場合は、ImpactGUIはインストールしたディレクトリから起動します。
$ cd ~/Impact
$ bash ./ImpactGUI_OGL_linux_amd64.sh

起動したGUIツールを眺めてみます。詳しい利用法は解説文書を参考にしてください。活用が分かったらまたご報告します。
※なお、DEXCSはVNCなどでリモートデスクトップとして使っていると、GUIの3次元表示が出来ないことがあります。この時は、DEXCS起動時のパネルのGNOMEの足跡マークで、GNOME Classic (No effects)を選択してログインしてください。それでも、Java3Dが正しく表示できないことがあります。

最上段のタブに「Pre Processor」「Processor」「Post Processor」の3つが並んでいます。本来はPre Processorでモデルや条件を設定するのですが、今回は出来上がった例題の入力ファイルを読み込んでみます。Pre Processorタブを選択して進めます。

2段目の左から2つのファイルオープンを選択して、先に用意した~/ImpactWork/tracker.inを開きます。なぜかエラーで読み込めません?まあ気にせずOKで終わらせます。
実はファイルを開くボックスで、ファイルをタイプを選択すると、以下の6つがあります。
 すべてのファイル
 Add STL surface (.stl) 
 Add impact model (.in) to current model
 Add nastran model (.nas, .nastran, .bdf) to current model
 Add Gmsh model (.mesh) to current model
 Add UNV model (.unv) to current model
これらを見るとお馴染みの形状データやメッシュデータなどが読み込めそうです。実践的利用にも適用できそうです。

それでは解析を実行するので、Processorタブを選択します。画面が3つに分かれ、上部はメッセージが表示されて、現在の利用できるCPUコア数が表示されます。

下左のボタンから入力ファイルを読み込みます。作業用ディレクトリ~/ImpactWorkに移動します。ここでファイルのタイプでは、以下の選択肢があります。先に用意したtracker.inを読み込みます。今度は正しく読めたようです。
 すべてのファイル
 Open solver model (.in)

検証と言うことで、取り敢えず、緑色の三角ボタンで実行します。上のメッセージには、予想残時間Remaining timeが表示されています。しばらく待ちます。なおシステムモニターで見ると、確かに利用できる全てのCPUコアを用いて並列処理しています。
最後にSolving took 332167 msなどと表示されたら、解析終了です。この場合、約5分かかりました。

端末から先の作業ディレクトリを見ると、以下の2つのファイルを作られています。いずれもテキストファイルなので、頑張れば変換して他のツールでも使えそうです。
tracker.in.flavia.msh 27KB:形状のメッシュファイル
tracker.in.flavia.res 8.6MB:解析結果のファイル

結果を可視化するので、Post Processorタブを選択して進めます。左端のファイル選択ボタンから作業用ディレクトリ~/ImpactWorkに移動します。ここでファイルのタイプでは、以下の選択肢があります。resultファイルを読み込む選択をして、tracker.in.flavia.resを開きます。読み込むのに少し待ちます。
 すべてのファイル
 Open solver result (.res)

画面に青いメッシュが表示されたら成功です。マウスの操作は以下の通りです。
 左:回転 中:遠近 右:移動

左の欄にTime stepがあり、最初は0.0ですが、形状を良く見ると座屈を誘導する初期不整が確認できます。この時間刻みを選択して、キーボードカーソルで移動させると、アニメーションの様に見えます。

以上で例題の検証は終わりです。相当に可能性を持ったツールだと思いました。




最新の画像もっと見る

コメントを投稿

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