こんにちは(@t_kun_kamakiri)
Altairのサイトにこれまで商用利用としていたRadiossを2022年9月からオープンソース化するという内容の記事が投稿されていました。RadiossといえばLS-DYNAやPAM-Crashなどと並ぶAltairの衝突系(衝撃解析)の解析ソフトのイメージが強いですが、それが無償で使えるようになったというのはなかなかの衝撃でした。
今回解説するのはこちらのシンプル(おもちゃみたいな)車のポール衝突解析です。
設定としては適当で「とりあえず計算できればいいや!」くらいの感覚ですので実現象を再現しうる精度にはなっていないでしょうが、設定方法は参考になると思います。
Altair社のマニュアルにエアバッグの解析の例題があり、そちらを参考にしています。
RD-T: 3050 Simplified Car Pole Impact
Altairの例題集は大変参考になります。
しかし、モデル作成からRadiossは調べてキーワードというカードで設定を記述する必要があります。
そのため、GUI操作で順番にボタンをポチポチ押して行って設定するという感じではなく、適切な解析条件を自分で選択して解析設定を行う必要があります。
無償のOpenRadiossにはAltair社のHyper WorksのようなGUIが無いため、設定に苦労します。本記事では、できるだけテキスト編集をメインにOpenRadiossの基本的な設定を解説します。
WSL2
解析設定の手順
解析設定にはStarterファイルとEngineファイルの作成が必要です。
今回は以下のファイル名で設定ファイルを作成します。
-
002_full_car0000_0000.rad:Starter ファイル(解析設定ファイル)
-
002_full_car0000_0001.rad:Engine ファイル(解析制御と出力設定ファイル)
単位系
物理量の値の大きさには単位系を意識する必要があります。
今回はmm-ton-secの単位系で解析設定を行います。
モデルのNastranからRadioss形式への変換
モデルは公式例題集からNastranとして入手することができます。
これをRadioss形式へ変換します。
NastranからRadioss形式への変換はGmshを使います。
変換の仕方は簡単でGmshを起動して、full_car.nasを読み込んで、Radioss形式としてエクスポートするだけです。
full_car.inc
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#RADIOSS STARTER #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| # Created by Gmsh, Radioss Mesh Interface by PaulAltair sharp@altair.com #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /BEGIN C:\work\001_CAE\openradioss\work\20240611_simpleCar\004_simpleCar\full_car\ 2022 0 Mg mm s Mg mm s /NODE 1 -1275 537.5 266.5 2 -1275 1275 314 3 -1275 1862.5 266.5 ...(省略)... /SHELL/2000001 #SET_ELEMENT=PhysicalSurface11 646 61 64 65 62 647 62 65 66 63 648 61 62 68 67 649 67 68 71 70 ...(省略)... |
Node(節点)とShell(シェル要素)にIDが与えられています。
構成要素は以下のようになっています。
作成したモデルfull_car.incをメインのファイル002_full_car0000_0000.radでインクルードします。
002_full_car0000_0000.rad
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# RADIOSS #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /BEGIN 002_full_car0000 # Invers Irun 2021 0 # Input_mass_unit Input_length_unit Input_time_unit Mg mm s # Work_mass_unit Work_length_unit Work_time_unit Mg mm s #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| #- 1. TITLE #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /TITLE 004_simpleCar #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| #- 2. INCLUDE #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| #include full_car.inc #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| ここにキーワードを書いていきます #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /END #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| |
PARTの確認
GmshでPARTの確認をしようとしましたが、どこにPART IDの記載があるのか全く分からなかったので、今回はNastran形式でも読み込めるLS-PrePostを使います。
しかし、GmshからRadioss形式にしたファイルを見るとPART IDが2000001から始まっているので、対応関係には注意が必要です。
(勝手にリナンバーされたんでしょうか)
LS-Dynaのキーワードを確認するとすでに、SECTION(シェル要素のプロパティ)とMAT(材料定義)がされていました・・・
こちらを参考にOpenRadioosの形に修正していきます。
Partが30個あるので面倒な作業ですが・・・
まずはWINDSHIELDから設定します。
WINDSHIELD
WINDSHIELDは以下の部分です。
パートの設定
PARTは以下のようにプロパティと材料のIDを指定します。
1 2 3 4 5 6 7 8 9 10 |
#- 5. PARTS: #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /PART/2000003<br>WINDSHIELD # prop_ID mat_ID Thick 1 31 0 #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /PART/2000016 windows 1 31 0 #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| |
プロパティと材料はIDでPARTに紐づけるようにします。
プロパティの設定
シェル要素に対して要素の定義と厚みの設定を行います。
1 2 3 4 5 6 7 8 9 10 |
#---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /PROP/SHELL/1 Pshell # Ishell Ismstr Ish3n Idrill P_thick_fail 0 0 0 0 0 # hm hf hr dm dn 0 0 0 0 0 # N Istrain Thick Ashear Ithick Iplas 0 0 5.0 0 0 0 #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| |
厚みは5mmにします。
このキーワードは、/PROP/TYPE1(SHELL)から引用すると、
ほとんどがデフォルト設定でよく、すべて設定しなければならないというわけではありません。
大事なところは以下です。
- Ishell = 0の場合:4節点シェル要素定式化フラグ
- Thick = 0.3:厚み設定
その他の設定は必要に応じてマニュアルを見て設定します。
材料特性の設定
Elasto-plastic Material /MAT/PLAS_JOHNS (WINDSHIELD)
- [Rho_Initial] Initial Density = 2.5×10-9ton/mm3
- [E] Young’s Modulus = 76000 MPa
- [nu] Poisson’s Ratio = 0.3
- [0] Yield Stress = 192 MPa
- [K] Hardening Parameter = 220 MPa
- [n] Hardening Exponent = 0.32
OpenRadiossには多くの材料特性の設定が用意されており、こちらの材料一覧から確認することができます。
今回使うのは以下の材料設定です。
則名 | グループ | タイプ | モデル概要 | 適用分野 | 粘性 | 直交異方性 | 組み込み熱オプション** | ひずみ速度 | 定式化 |
---|---|---|---|---|---|---|---|---|---|
/MAT/LAW2 (PLAS_JOHNS)* | 弾塑性材料 | 金属 | Johnson-Cook材料モデルを使用した等方性弾塑性材料 | 金属、弾塑性材料、軟鋼、ひずみ速度依存、温度依存、等方および移動硬化、熱硬化性、低合金鋼、ST52、およびDP600 | × | × | ○ | ○ | Lagrange |
この材料則は、Johnson-Cook材料モデルを使用して等方性弾塑性材料を表します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /MAT/PLAS_JOHNS/31 WINDSHIELD # RHO_I 2.5E-9 0 # E Nu Iflag 76000 .3 0 # a b n EPS_p_max SIG_max0 192 220 .32 0 0 # c EPS_DOT_0 ICC Fsmooth F_cut Chard 0 0 0 0 0 0 # m T_melt rhoC_p T_r 0 0 0 0 #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| |
以下、こちらからの引用です。
今回は以下のように設定しています。
- RHO_I = 2.5E-9:密度
- E = 76000:ヤング率
- a= 192:応力の式の定数
- b =220:応力の式の定数
- n = 0.32:塑性硬化指数
- SIG_max0 = 0:最大応力
- ICC(設定なし) :デフォルト0なのでひずみ速度効果なし
さらに詳しく知りたい方はマニュアルを参照ください。
タイヤの設定
タイヤはご存じこちらです。
パートの設定
パートにプロパティと材料を紐づけます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /PART/2000020 RFtire # prop_ID mat_ID Thick 2 23 0 #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /PART/2000021 LFtire # prop_ID mat_ID Thick 2 23 0 #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /PART/2000022 RBtire # prop_ID mat_ID Thick 2 23 0 #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /PART/2000023 LBtire 2 23 0 |
プロパティの設定
プロパティはWINDSHIELDと同じシェル要素です。
1 2 3 4 5 6 7 8 9 10 |
#---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /PROP/SHELL/2 Pshell0.49 # Ishell Ismstr Ish3n Idrill P_thick_fail 0 0 0 0 0 # hm hf hr dm dn 0 0 0 0 0 # N Istrain Thick Ashear Ithick Iplas 0 0 10.0 0 0 0 #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| |
厚みは10mmにします。
材料特性の設定
Elasto-plastic Material /MAT/PLAS_JOHNS (RUBBER)
- [Rho_Initial] Initial Density = 2×10-9ton/mm3
- [E] Young’s Modulus = 200 MPa
- [nu] Poisson’s Ratio = 0.49
- [0] Yield Stress = 1e30MPa
- [n] Hardening Exponent = 1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| #- 3. MATERIALS: #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /MAT/PLAS_JOHNS/23 RUBBER # RHO_I 2E-9 0 # E Nu Iflag 200 .49 0 # a b n EPS_p_max SIG_max0 1E30 0 1 0 0 # c EPS_DOT_0 ICC Fsmooth F_cut Chard 0 0 0 0 0 0 # m T_melt rhoC_p T_r 0 0 0 0 #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| |
今回は以下のように設定しています。
- RHO_I = 2.0E-9:密度
- E = 200:ヤング率
- a= 1e30:応力の式の定数
- b =0:応力の式の定数
- n = 1:塑性硬化指数
- SIG_max0 = 0:最大応力
- ICC(設定なし) :デフォルト0なのでひずみ速度効果なし
さらに詳しく知りたい方はマニュアルを参照ください。
それ以外
それ以外のパートを設定します。
それ以外というのは、WINDSHIELDとRUBBER以外のことです。
中にはSOLID要素も含まれます。
/BRICKの引用はこちら。
パートの設定
パートにプロパティと材料を紐づけます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
#---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| #- 5. PARTS: #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /PART/2000001 SHELL # prop_ID mat_ID Thick 1 24 0 #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| # SHELL elements of /PART/2000001/SHELL: #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /PART/2000002 SHELL # prop_ID mat_ID Thick 1 24 0 #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /PART/2000004 SHELL # prop_ID mat_ID Thick 1 24 0 #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| # SHELL elements of /PART/2000004/SHELL: #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /PART/2000005 SHELL # prop_ID mat_ID Thick 1 24 0 #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /PART/2000006 SHELL # prop_ID mat_ID Thick 1 24 0 #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| # SHELL elements of /PART/2000006/SHELL: #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /PART/2000007 SHELL # prop_ID mat_ID Thick 1 24 0 #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /PART/2000015 SHELL # prop_ID mat_ID Thick 1 24 0 #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /PART/2000017 SHELL # prop_ID mat_ID Thick 1 24 0 /PART/2000018 SHELL # prop_ID mat_ID Thick 1 24 0 #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /PART/2000019 SHELL # prop_ID mat_ID Thick 1 24 0 #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /PART/2000028 SHELL # prop_ID mat_ID Thick 1 24 0 #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /PART/2000030 SHELL # prop_ID mat_ID Thick 1 24 0 #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /PART/3000024 BRICK # prop_ID mat_ID Thick 3 24 0 #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /PART/3000025 BRICK # prop_ID mat_ID Thick 3 24 0 #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /PART/3000026 # prop_ID mat_ID Thick BRICK 3 24 0 #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| |
シェル要素のプロパティはID = 1を使用します。
ソリッド要素のBRICKとなっているパートはプロパティ ID = 3にしています。
プロパティの設定
シェル要素に対するプロパティはWINDSHIELDと同じにします。
厚みはわからないので、妥協してすべて0.3mmにします。
1 2 3 4 5 6 7 8 9 10 |
#---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /PROP/SHELL/1 Pshell # Ishell Ismstr Ish3n Idrill P_thick_fail 0 0 0 0 0 # hm hf hr dm dn 0 0 0 0 0 # N Istrain Thick Ashear Ithick Iplas 0 0 .3 0 0 0 #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| |
ソリッド要素に対するプロパティは以下とします。
1 2 3 4 5 6 7 8 9 10 |
#---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /PROP/TYPE20/3 solid # Isolid Ismstr Icstr Inpts Iint dn 14 0 0 0 0 0 # q_a q_b h 0 0 0 # dt_min 0 #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| |
//PROP/TYPE20 (TSHELL)の引用はこちら。
Isolid = 14:HA8、8節点厚肉シェル要素、完全積分、さまざまな数のGauss点、共回転系定式化、せん断ロックフリー
他の例題でも使われているので確認してみしょう。
材料特性の設定
Elasto-plastic Material /MAT/PLAS_JOHNS (STEEL)
- [Rho_Initial] Initial Density = 7.9×10-9ton/mm3
- [E] Young’s Modulus = 210000 MPa
- [nu] Poisson’s Ratio = 0.3
- [0] Yield Stress = 200 MPa
- [K] Hardening Parameter = 450 MPa
- [n] Hardening Exponent = 0.5
- [SIG_max] Maximum Stress = 425 MPa
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /MAT/PLAS_JOHNS/24 STEEL # RHO_I 7.9E-9 0 # E Nu Iflag 210000 .3 0 # a b n EPS_p_max SIG_max0 200 450 .5 0 425 # c EPS_DOT_0 ICC Fsmooth F_cut Chard 0 0 0 0 0 0 # m T_melt rhoC_p T_r 0 0 0 0 #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| |
今回は以下のように設定しています。
- RHO_I = 2.0E-9:密度
- E = 200:ヤング率
- a= 200:応力の式の定数
- b =450:応力の式の定数
- n = 0.5:塑性硬化指数
- SIG_max0 = 425:最大応力
- ICC(設定なし) :デフォルト0なのでひずみ速度効果なし
さらに詳しく知りたい方はマニュアルを参照ください。
ポールの設定
ポールの設定は3Dモデルを作成するではなく、キーワードで作ることができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| #- 9. RIGID WALLS: #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /RWALL/CYL/1 Pole # node_ID Slide grnod_ID1 grnod_ID2 0 0 0 # D_search fric Diameter ffac ifq 1500 0 500 0 0 # XM YM ZM -320 1250 0 # X_M1 Y_M1 Z_M1 -320 1250 1000 #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| |
このキーワードは、/RWALLから引用すると、
セカンダリ検索の距離はポールとの接触する距離のこと1500mm = 1.5mは大きすぎるのでいったい何のことだろう・・・・
イメージを書くとこんな感じですかね。
ポールが車の真ん中までくることはないので、接触する距離を少し広めにしています。
その他の例題にも使われているので、確認してみましょう。
接触定義
接触定義はラジエータとエンジンの接触定義を行います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
/INTER/TYPE7/1 ENGINE_RADIATOR # Secon_id Main_id Istf Ithe Igap Ibag Idel Icurv Iadm 3 2 2 0 0 0 0 0 0 # Fscalegap Gap_max Fpenmax Itied 0 0 0 0 # Stmin Stmax %mesh_size dtmin Irem_gap Irem_i2 0 0 0 0 0 0 # Stfac Fric Gapmin Tstart Tstop 0 0.2 0.7 0 0 # IBC Inacti VisS VisF Bumult 000 0 0 0 0 # Ifric Ifiltr Xfreq Iform sens_ID fct_IDf AscaleF fric_ID 0 0 0 2 0 0 0 0 /GRNOD/PART/3 INTER_group_3_of_SURF 3 /SURF/PART/EXT/3 INTER_group_2_of_PART 2000028 /SURF/PART/EXT/2 INTER_group_2_of_PART 2000030 |
このキーワードは、/INTER/TYPE7から引用すると、
- Istr = 2:インターフェース剛性は、メインおよびセカンダリ剛性の平均($K_{n}=\frac{K_{m}+K_{s}}{2}$)です。
ここで、メインセグメント剛性$K_{m}$、セカンダリト剛性$K_{s}$ - Fric = 0.2:Coulomb摩擦
- Gapmin = 0.7 mm:最小ギャップ
- Secon_idに節点グループでエンジンの表面の節点を指定します。
- /GRNOD/SURFでサーフェスグループを指定しています。
さらにサーフェスグループはパートサーフェース/SURF/PART/EXTから指定しています。 - Main_idにはサーフェスグループでラジエータの表面を指定します。パートの外部パートサーフェスの指定は/SURF/PART/EXTで行います。
しかし、上記のようにパートから節点やサーフェスグループを指定することができますので、そちらの方法を使います。
初速
車の全体節点に初速を与えます。
単位系がmm-ton-secなので速度の単位はmm/secになります。
値だけで見ると速度m/sの単位の1000倍を設定する必要があるので注意しましょう。
35mph = 56.327km/h = 35*1000/60/60 = 15.64 m/s ≒ 156000 mm/sec
※35mphは35マイルという意味です。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| #- 7. INITIAL VELOCITIES: #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /INIVEL/TRA/1 35MPH # Vx Vy Vz Gnod_id Skew_id 15600 0 0 4 0 /GRNOD/PART/4 INIVEL_group_4_of_PART 2000001 2000002 2000003 2000004 2000005 2000006 2000007 2000015 2000016 2000017 2000018 2000019 2000020 2000021 2000022 2000023 2000028 2000030 3000024 3000025 3000026 #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| |
このキーワードは、/INIVELから引用すると、
ここでも全ての節点を選択してグループを作成するのではなく、/GRNOD/PARTでパートを指定して全節点グループを作成しています。
フィールド | 内容 | SI 単位の例 |
---|---|---|
type | 初速度のタイプ。
|
節点のヒストリー
節点の時刻歴変化などの情報を出力するために節点を設定しておきます。
節点はLS-PrePostやGmshなど適当なGUIなどを使って
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /TH/NODE/3 #thgroup_name outputblock1 # var_ID1 var_ID2 var_ID3 var_ID4 var_ID5 var_ID6 var_ID7 var_ID8 var_ID9 var_ID10 DEF # node_ID skew_ID node_name 4278 0 4588 0 4534 0 3662 0 4363 0 4595 0 #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| |
このキーワードは、/TH/NODEから引用すると、
DEFを指定していると「DX, DY, DZ, VX, VY, VZ」が出力されるようです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| #- 10. TIME HISTORIES: #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /TH/INTER/1 TH INTER # var1 var2 var3 var4 var5 var6 var7 var8 var9 var10 DEF # Obj1 Obj2 Obj3 Obj4 Obj5 Obj6 Obj7 Obj8 Obj9 Obj10 1 #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /TH/RWALL/2 TH RWALL # var1 var2 var3 var4 var5 var6 var7 var8 var9 var10 DEF # Obj1 Obj2 Obj3 Obj4 Obj5 Obj6 Obj7 Obj8 Obj9 Obj10 1 2 #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| |
必要に応じて設定を追加すれば良いでしょう。
以上までの設定を002_full_car0000_0000.radに保存します。
これがRadiossのstarter inputファイルになります。
Engine設定
以上まではRadiossのstarter inputファイルの設定でしたが、Radioss Engineファイルはシミュレーションの解析制御と出力を記述するファイルです。
ここでは最低限の設定だけを記述します。
- /RUN:計算実行に関するキーワード。60ms (0.06秒)までの解析
- /DT/NODA/CST:モデルの時間ステップを増やすためのマススケーリング
- /TFILE:時刻歴ファイルであるT-ファイルの書き出し時間間隔
- /ANIM/DT:アニメーションファイル(A-ファイル)を出力する開始時間と出力間隔(3ms)
002_full_car0000_0001.rad
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# RADIOSS #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /RUN/002_full_car0000/1/ 0.0601 /ANIM/DT # TSTART TFREQ 0.000000 0.003000 /PRINT/-1000/55 /TFILE/4 # dT_HIS 0.000090 /ANIM/ELEM/EPSP /ANIM/ELEM/VONM /ANIM/ELEM/ENER /ANIM/ELEM/HOURG /ANIM/VECT/VEL /ANIM/VECT/DISP /ANIM/VECT/FOPT /ANIM/VECT/CONT /ANIM/NODA/DMAS /END/ENGINE |
さらに詳しく知りたい方はマニュアルを参考にしましょう。
今回は歪みや応力もアニメーションにしたかったので以下を追加しました。
- /ANIM/ELEM/EPSP:塑性歪み
- /ANIM/ELEM/VONM:フォン・ミーゼス応力
- /ANIM/ELEM/ENER:比エネルギー密度
- /ANIM/ELEM/HOURG:アワーグラスエネルギー
- /ANIM/VECT/DISP:変位
- /ANIM/VECT/FOPT:剛体、剛壁、および断面の力とモーメント
- /ANIM/VECT/CONT:接触力
- /ANIM/NODA/DMAS:ダンピング
解析実行
以上により解析の設定が終わりました。
解析に必要なファイルは以下の2つです。
- 002_full_car0000_0001.rad:Starter ファイル(解析設定ファイル)
- 002_full_car0000_0001.rad:Engine ファイル(解析制御と出力設定ファイル)
OpenRadiossの計算実行は、こちらで公開されているPythonで作られたGUIを使うと簡単に行えます。
WSLを使っているのでLinux環境での実行方法を参考にします。
結果の確認
節点の時刻歴
/TH/NODEで設定した節点の時刻歴が002_full_car0000T01.csvに出力されています。
追々グラフにまとめます。
ParaViewで確認
vtkファイルが出力されているのでParaViewで読み込んでアニメーションにするとこんな感じになります。
設定はところどころ適当にしたけど、簡単な衝突はできた。#OpenRadiosshttps://t.co/CtZiBZXaA4 https://t.co/D3Zu9jYNlv pic.twitter.com/AZ079U5BIe
— カマキリ🐲CAE頑張る (@t_kun_kamakiri) October 19, 2023
LS-PrePostで確認
d3plotに変換してアニメーションにするとこんな感じ。
ParaViewより断然きれいなのがいい。
タイヤが変だが pic.twitter.com/VbvZ2TkK7X— カマキリ🐲CAE頑張る (@t_kun_kamakiri) June 11, 2024
まとめ
本記事ではOpenRadiossの設定をできるだけマニュアルを見ながら、テキストのみで解析実行できるように解説を行いました。
途中、節点グループの作成には困りましたが無理やりLS-PrePostなどを使ったりしましたので、そのあたりの良い方法は要検討です。
また、解析途中にモデルの確認ができないというのはかなり解析設定を困難にしているので、せめてメッシュ状態などを確認できる標準的な方法が今後の課題です。
とはいえOpenRadioss自体は機能も豊富なので、今後の発展に期待大です。