こんにちは(@t_kun_kamakiri)
Altairのサイトにこれまで商用利用としていたRadiossを2022年9月からオープンソース化するという内容の記事が投稿されていました。RadiossといえばLS-DYNAやPAM-Crashなどと並ぶAltairの衝突系(衝撃解析)の解析ソフトのイメージが強いですが、それが無償で使えるようになったというのはなかなかの衝撃でした。
リリースから2年くらい経ち、少しずつ使いやすくなっています。
今回はOpenRadiossでの計算実行ためのGUIの紹介をします。
- OpenRadiossの計算実行の便利なGUIの紹介
- さらにGUIを使いやすくするためのカスタマイズの紹介
OpenRadiossをインストールしていないという方は下記の記事を参考にインストールしてみてください。
OpenRadiossの設定方法についての解説記事を書いています。
Pythonスクリプトダウンロード
リリース当初は計算実行も結構面倒で、おまけにParaViewで読み込むための出力ファイルも自作のスクリプトを組んでいたのですが、便利なGUIを作ってくれました。
WindowsかLinuxを選べます。
自分はWSL2なのでLinuxをダウンロードします。
ダウンロードしたファイルの構成がこちらです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
. ├── __pycache__ │ ├── button_with_highlight.cpython-310.pyc │ ├── entry_with_placeholder.cpython-310.pyc │ ├── job_holder.cpython-310.pyc │ └── job_window.cpython-310.pyc ├── button_with_highlight.py ├── config │ ├── anim_vtk │ ├── sp │ ├── starter │ └── th_csv ├── entry_with_placeholder.py ├── icon │ ├── from_google_fonts │ ├── icon_folder.png │ └── ross.png ├── job_holder.py ├── job_window.py ├── openradioss_run_script_for_linux_mpi_ps.py └── openradioss_run_script_ps.sh |
ここからいくつか自身の環境に合わせていきます。
スクリプトの編集
まずはopenradioss_run_script_ps.shを編集します。
openradioss_run_script_ps.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#!/bin/bash set -e pushd "$(dirname "$0")" >/dev/null REL_PATH="../" pushd "$REL_PATH" >/dev/null ABS_PATH="/opt/OpenRadioss" #$PWD popd >/dev/null export OPENRADIOSS_PATH=$ABS_PATH export RAD_CFG_PATH=$OPENRADIOSS_PATH/hm_cfg_files export RAD_H3D_PATH=$OPENRADIOSS_PATH/extlib/h3d/lib/linux64 export LD_LIBRARY_PATH=$OPENRADIOSS_PATH/extlib/h3d/lib/linux64:$OPENRADIOSS_PATH/extlib/hm_reader/linux64 export OMP_STACKSIZE=400m export PATH=$OPENRADIOSS_PATH/extlib/hm_reader/linux64:$PATH export PATH=$OPENRADIOSS_PATH/extlib/intelOneAPI_runtime/linux64:$PATH ...(省略)... |
編集するのは以下の部分です。
1 |
ABS_PATH="/opt/OpenRadioss" #$PWD |
ここがOpenRadiossをインストールしたパスを指定する部分です。
ここのパスがあっていないと計算が実行されませんのでご注意を。
計算実行
計算実行はlinux_scripts_mk3のフォルダ内で実行します。
1 |
python3 openradioss_run_script_for_linux_mpi_ps.py |
実行すると計算実行のGUIが立ち上がります。
デフォルトだと少し使いにくくて、サイズが合っていないのかフォルダのアイコンが隠れていますので、手動で広げます。
次に、計算の設定ファイルを選択してします。
今回はこちらの設定ファイルを使っています。
ミッフィーちゃんのエアバッグ保護の解析なので楽しいと思います。
ジョブを投入したら以下のような計算ログが出てきます。
topコマンドで確認すると8コア動いているのが確認できます。計算が終了したら、以下も実行してくれます。
- fileA001,fileA002,・・・などをParaViewで読み込めるvtkファイルに変換
- 500_mainT01を500_mainT01.csvファイルに変換
スクリプトを編集する(より使いやすく)
デフォルトのままだといくつか使いにくい点があります。
- GUIのサイズがあっていないのでフォルダのアイコンが隠れている
- 計算フォルダでGUIを起動したい
こちらの2点を解消します。
GUIのサイズがあっていないのでフォルダのアイコンが隠れている
GUIのサイズはopenradioss_run_script_for_linux_mpi_ps.pyの以下の部分で変更することができます。
1 |
root.geometry('1000x105') |
サイズを1000ピクセル×105ピクセルに変更します。
これでフォルダのアイコンがみえるようになりました。
計算フォルダでGUIを起動したい
デフォルトだと計算実行はlinux_scripts_mk3のフォルダ内で実行し、GUIを立ち上げてから計算ファイルのパスまで移動するということをしなくてはいけないため、面倒です。
そこでエイリアス設定をしておきます。
1 2 |
echo "alias radioss='python3 /mnt/c/work/001_CAE/openradioss/linux_scripts_mk3/openradioss_run_script_for_linux_mpi_ps.py'" >> $HOME/.bashrc source $HOME/.bashrc |
これにより、どこからでradiossというコマンでopenradioss_run_script_for_linux_mpi_ps.pyのファイルを実行することができます。
しかし、これだけではPythonを実行したフォルダのパスをPythonスクリプト内で認識するようになっており、Pythonファイルが存在するパスに変更する必要があります
以下の3つのファイルを編集します。
- openradioss_run_script_for_linux_mpi_ps.py
- job_holder.py
- job_window.py
1 |
sh_folder = os.path.dirname(__file__) |
os.path.dirname(__file__)がファイルが存在するパスです。
これでファイルが存在するパスに置き換わりました。
以上の編集により、計算フォルダに移動して、radiossとコマンドを打つと計算フォルダからでも計算実行用のGUIが立ち上がります。
1 |
radioss |
フォルダアイコンをクリックするとすぐに設定ファイルを選択できるようになっています。
アニメーションファイル(Aファイル)をvtkファイルに変換してくれているので、ParaViewでvtkファイルを読みこんで結果表示ができます。
まとめ
今回は便利なGUIを作ってくれた人のスクリプトを自分が使いやすいように、少しカスタマイズしました。
その他にも、便利なGUIを作ってくれている人はいますので、要チェックです。