OpenRadioss

inpファイルからRadioss形式へ変換

こんにちは(@t_kun_kamakiri

Altairのサイトにこれまで商用利用としていたRadiossを2022年9月からオープンソース化するという内容の記事が投稿されていました。RadiossといえばLS-DYNAやPAM-Crashなどと並ぶAltairの衝突系(衝撃解析)の解析ソフトのイメージが強いですが、それが無償で使えるようになったというのはなかなかの衝撃でした。

リリースから2年経って、OpenRadiossを使いやすくするためのツールが出てきました。

ツールや解析設定の例題集を下記の記事にまとめています。
ぜひどうぞ。

本記事は、inpファイルからradioss形式への変換プログラムの紹介です。

本記事の内容

inpファイルからradioss形式への変換プログラムを試したらできたので紹介します

定期的にgithubを確認していますがToolsフォルダにinp2radというのができていました(2024年12月時点)

フォルダで一目でわかるようにinpファイルをradiossフォーマットに変換するプログラムであることがわかりますね。

ご覧の通りradiossフォーマットに変換はできましたが、計算は上手く行きませんでした。
これはOpenRadiossの設定の問題なので後で確認するとして、本記事ではinpファイルからradiossファイルへの変換の環境構築だけを紹介します。

環境:WSL2のUbuntu 22.04.5 LTS(※Windows環境もできますのでgithubを参照ください)

githubの日本語訳

ChatGPTに要約してもらいました。

inp2rad (INP to Radioss Converter)

このスクリプトは、AbaqusのINPファイルをRadiossの入力デッキに変換するためのPythonスクリプトです。INP形式のデータをRadioss形式に変換することで、シミュレーションデータの互換性を確保し、移行プロセスを容易にします。

主な機能

  • 材料特性の変換: INPファイルの材料特性をRadioss形式に変換します。
  • メッシュデータの対応: ノードと要素のメッシュデータを対応付け、適切に出力します。
  • 境界条件の処理: 境界条件や荷重条件を読み込み、Radioss形式で表現します。

全てのキーワードがサポートされているわけではないですが、今後サポート対象のキーワードは増えていくことでしょう。

環境構築

githubコードのクローン

githubのコードをクローンします。

必要になるのはToolsフォルダだけです。

install.shの実行

フォルダ移動します。

このフォルダの中に「install.sh」ファイルがありますが、中身はいたって簡単なプログラムです。

./install.shを実行しても良いですが、失敗する可能性があるので、上記一つずつ実行していくのが良いでしょう。

※失敗しなければ以下の流れは特に理解しておく必要はないです。

pyinstallerを使って実行ファイルの作成

pyinstaller を使用すると、inp2rad/inp2rad.py を実行可能ファイルに変換できます。これにより、Python環境がインストールされていないシステムでも、直接コマンドとして inp2rad を実行できるようになり、非常に便利です。

このpyinstallerまわりで失敗する可能性があります。
例えば、pyinstaller が出力したエラーメッセージの一部を示すと、

The ‘typing’ package is an obsolete backport of a standard library package and is incompatible with PyInstaller.

これは「typing パッケージは標準ライブラリのバックポート版であり、PyInstallerとは非互換である」という意味で、古い typing パッケージを削除すれば問題が解消することを示しています。

なので、以下コマンドでtyping パッケージを削除します。

必要に応じて再度pyinstaller をインストールします。

インストールできていることは以下のコマンド確認します。

pyinstaller を実行すると…

以下のログが出てきます。

特にエラーらしきものが見当たらなかったら無事実行ファイルができています。
実行ファイルはbuild/dist/inp2radです。

inp2radのインストール

次は install.shpython install.pyの部分ですがプログラムの中身は以下です。

いろいろと書いておりますが中身は、やっていることはpipコマンドの場所/usr/binを調べて、そこにpyinstallerで作成したdist/inp2radをコピーしているだけです。

つまり、以下をしていることになります。

これくらいなら手動でもいい気がしますね。

以上でinp2radコマンドがPythonがインストールされていない環境でも、かつどのフォルダからでも使うことができます。

何をしたのかを念のため整理しておきますとと、

1. システム全体でのアクセス

  • /usr/bin/ は、Linuxシステムで共通の実行可能ファイルを配置するディレクトリの1つで、デフォルトで PATH 環境変数に含まれています。
  • inp2rad/usr/bin/ に配置することで、どのディレクトリにいても単純に以下のようにコマンドを実行できます。

2. 利便性の向上

  • ユーザーがスクリプトの場所を意識する必要がなくなり、ディレクトリを移動したりフルパスを入力する手間が省けます。
    例えば、python /path/to/inp2rad/inp2rad.py といった長いコマンドを書く必要がなくなります。
  • 他のユーザーも同じコマンドで使えるため、統一された使い方が可能になります。

inpファイルからRadiiossフォーマットへ変換

では、ここからは適当に用意したinpファイルからradiossフォーマットへ変換できるか試していきます。

失敗

まずはこちらのYoutubeにあるようなPrePoMaxで作成した熱構造解析の例を試してみます。おそらく対応していないキーワードがありそうなので変換に失敗するでしょう。

PrePoMaxで事前にinpファイルに変換しておきます。
適当な場所にinpファイルを出力しておきます。
solve.inpファイル名で出力しています。

inpファイルはこんな感じです。

以下のコマンドで変換用のGUIを立ち上げます。

GUIが起動したら先ほど出力したinpファイルを選択します。
するとログが出力されて何やらサポートされていない旨のエラーが見られます。

失敗する場合はこんな感じになるということです。

成功

次は単純な平板の引張りの解析にしてみます。

先ほど同様inpファイルを出力します。
solve.inpファイル名で出力しています。

inp2radのコマンドでinpファイルを選択すると以下のログが出力されます。

変換成功しているっぽいですね。

solve.inpファイルと同じフォルダにsolve0000.radsolve0001.radが出力されていればOKです。

solve0000.rad

中身を見る限り上手く変換されていそうです。

計算実行

計算実行方法は以下の記事でもまとめています。

計算実行も問題なく行えています。
しかし、時間刻みがえらく小さく、計算の進みが遅いです。
確認するとメッシュが爆発している感じでした・・・・

とりあえずinpファイルからradiossフォーマットへの変換は上手くいっているのでひとまず良しとしましょう!

まとめ

今回はinpファイルからradiossフォーマットへの変換の手順を示しました。
変換できるキーワードは現時点では限られていますが、今後増えていくだろうと思います。

AbaqusやPrePoMax(Calculix)でできていたことをわざわざOpenRadiossに変換して使う意味はあまりないかもしれないですが、OpeRadiossには無償で使える専用のGUIがないためモデル作成のたたき台を作るのには便利かもしれないです。

関連記事もどうぞ

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です