見出し画像

OpenRadiossのキーワードのヘルパーの機能を使ってみよう

オープンCAEのアドベントカレンダー2023の投稿記事です。

OpenRadiossは解析設定にGUIがないためインプットファイル作成には少々(いや、だいぶ)難があります。

オープンCAE@関西の勉強会幹事の@mmer547さんがOpenRadiossのインプットファイルのヘルパー機能を作ってくれました。

で、こちら・・・

OpenRadiossの設定は数が多いため、全てをサポートしていくには少々時間がかかるでしょうが、取っ掛かりを作ってくれたのは大変ありがたいことです。

このような恩恵にあずかりまして、ちょっと使ってみようと思います。

※既にVS Codeはインストール済みとします。

VS Codeから拡張機能を追加

使い方は非常に簡単です。
まずはVS Codeを起動して拡張機能から「openradioss」と検索すればすぐに見つかるでしょう。

インストールをするとすぐにOpenRadiossのヘルパーが使えるようになります。

解析対象

少しOpenRadiossのヘルパー機能を使ってみようと思います。
解析設定はこちらを参考にします。

以前に作成をしたモデルをOpenRadiossで計算させるとこちらのようになります。

Buckling of a Tube Using Half Tube Mesh

OpenRadiossのヘルパー機能

解析設定の全てはここでは行いません。
試しにPART, PROP(シェルなどのプロパティ),MAT(材料特性)をヘルパー機能を使って設定してみます。

  • BEGIN

  • PART

  • PROP

  • MAT

「/BEGIN」はOpenRadiossのファイルの一番上に書く「ランネーム、入力マニュアルのバージョン、Starterランおよび入力の数、そして作業単位系を設定します。」の部分です。
OpenRadiossヘルパー機能を使うと登録されているスニペットコードから自動で適切なフォーマットで記述してくれます。

とっても便利です。

次は、PARTもやってみましょう。

PARTもこの通り。

しかし、以下のキーワードは未登録のようでヘルパー機能では出てきませんでした。

  • /PROP/SHELL

  • /MAT/PLAS_JOHNS

追加機能:ユーザースニペットで登録する

OpenRadiossのヘルパー機能では未登録のものはユーザースニペットでひとまず登録することで対応します。
このあたりは、まずユーザースニペットで自身だけが使えるようにしておい
てgithubのissueとかに上げながらディスカッションするのが良いのでしょう・・・

では、足りない機能は自身のユーザースニペットに追加します。
こちらから引用させてもらっています。

{
  "[スニペット1]": {
    "prefix": "[呼び出すためのショートカット]",
    "body": [
      "[出力コードの1行目]",
      "[出力コードの2行目]",
      "[...]"
    ],
    "description": "[スニペットの説明文]" //任意
  }, //カンマを追加
  "[スニペット2]": {
    "prefix": "[呼び出すためのショートカット]",
    "body": [
      "[出力コードの1行目]",
      "[出力コードの2行目]",
      "[...]"
    ],
    "description": "[スニペットの説明文]" //任意
  } //最後のカンマは要らない
}

ここでrad.jsonという適当なファイルを作成して以下のように登録していきます。

rad.json

    // シェルプロパティ
    "/PROP/TYPE1(SHELL)":{
        "prefix":"/PROP/TYPE1(SHELL)",
        "body":[
                "#https://2022.help.altair.com/2022/hwsolvers/ja_jp/rad/topics/solvers/rad/prop_type1_shell_starter_r.htm"
				"#mm-kg-ms"
                "/PROP/SHELL/${1:prop_ID}/${2:unit_ID}",
                "${3:Pshell_title}",
				"#   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                .914                   0                   0         0",
				"#---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----|"
        ],
        "description":"3節点または4節点のシェル要素で使用されるシェルプロパティセットを記述します。Belytschko、QBAT、またはQEPHのシェル定式化が利用可能です。"
    },


    // MATG 等方性弾塑性材料
    "/MAT/LAW2 (PLAS_JOHNS)":{
        "prefix":"/MAT/LAW2 (PLAS_JOHNS)",
        "body":[
                "#https://2022.help.altair.com/2022/hwsolvers/ja_jp/rad/topics/solvers/rad/mat_law2_plas_johns_starter_r.htm"
				"#mm-kg-ms"
                "/MAT/PLAS_JOHNS/${1:mat_ID}/${2:unit_ID}",
                "${3:MAT_title}",
				"#              RHO_I",
				"             7.85E-6                   0",
				"#                  E                  Nu     Iflag",
				"                 210                  .3         0",
				"#                  a                   b                   n          EPS_p_max            SIG_max0",
				"                .206                 .45                  .5                  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----|"
        ],
        "description":"この材料則は、Johnson-Cook材料モデルを使用して、等方性弾塑性材料を表します。
		このモデルは、材料の応力をひずみ、ひずみ速度、および温度の関数で表します。最大塑性ひずみに基づくビルトインの破壊基準が用意されています。"
    },

このように記述しておくと、ユーザースニペットによりOpenRadiossのヘルパー機能が出来上がります。

以下の点に留意しました。

  • URLの記載

  • デフォルト値の単位系の記載

  • 設定値の上に「#からはじまるコメント」を記載

  • IDとタイトルは$を使い、その他はコメントとデフォルト値を設定しておく
    こうすることでデフォルト値のままで計算ができる

  • キーワードから付属するキーワードも記載(必ず必要になるキーワードに絞る)

追加機能:/PROP/SHELL

では、登録したものを使ってみます。

いい感じ。
はじめからデフォルトの値を入れておくと、解析設定がデフォルト値になってエラーが出にくいです。

追加機能:/MAT/PLAS_JOHNS

材料特性も同様。

拡張機能では難しそうなキーワード

このヘルパー機能だけでは難しそうなキーワードもあります。

  • 節点グループ

  • Rigid Bodyの設定

節点グループは例えば拘束条件を与えるときに使います。

これをキーワードで書くと節点をひとずつ指定する必要があります。

#---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----|
/BCS/2
symmetry
#  Tra rot   skew_ID  grnod_ID
   100 011         0         3
/GRNOD/NODE/3
BCS_group_3_of_NODE
         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
       685       686       687       688       689       690       691       692       693       694
       695       696       697       698       699       700       701       702       703       704
       705       706       707       708       709       710       711       712       713       714
       715       716       717       718       719       720       721       722       723       724
       725       726       727       728       729       730       731       732       733       734
       735       736       737       738       739       740       741       742       743       744
       745       746       747       748       749       750       751       752       753       754
       755       756       757       758       759       760       761       762       763       764
       766       768       770       802
#---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----|

PART内の全ての節点グループを指定する場合は、以下のように設定する手もあります。

/GRNOD/PART/3
BCS_group_3_of_NODE
         1
#---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----|

しかし、特定の節点をグループ化するとなるとちょっとしたGUIが必要なのですが、どういう手があるのか模索中です。

例えば、こちらの記事に書いたように「Gmsh」→「Nastran形式」→「LS-PrePostで節点グループ作成」→「Radiossフォーマットにコピペ」などができます。

正直だいぶ面倒なんで何かいい手はないかなーって考えています。

Rigid Bodyの設定も難しいです。
以下のように節点グループに対して重心のNODE ID(座標など)を指定する必要があります。

#---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----|
/RBODY/1
New RBODY 1
#     RBID     ISENS     NSKEW    ISPHER                MASS   Gnod_id     IKREM      ICOG   Surf_id
       803         0         0         0                   0         1         0         0         0
#                Jxx                 Jyy                 Jzz
                   0                   0                   0
#                Jxy                 Jyz                 Jxz
                   0                   0                   0
#  Ioptoff               Ifail
         0         0         0
/GRNOD/NODE/1
RBODY_group_1_of_NODE
       765       767       769       771       773       775       777       779       781       783
       785       787       789       791       793       795       797       799       801

重心のNODE IDは803です。
モデルの節点とは別にNODEとして加える必要があります。

#---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----|
/NODE
(省略)
       803    -17.156124210526    19.0499985789474                   0
#---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----|

NODEをまとめて剛体設定にしておくと便利なことが多いので、Rigid Bodyのキーワードが楽に設定できるといいなと思っています。

EasyIstrにOpenRadiosの変換アドオンが追加?

オープンCAE@岐阜の勉強会に参加されている方がEasyIstrにOpenRadiossの変換アドインを追加しているという情報がありました。
こちら

時間があれば使てみたいですね。

OpenRadiossの例題集の記事

Altairのチュートリアル例題集を参考に解析設定の詳しい解説記事を書いています。

解析設定の際にはご参考ください。

X➡@t_kun_kamakiri
ブログ➡宇宙に入ったカマキリ(物理ブログ)
Youtube➡カマキリ理系ブログ

いいなと思ったら応援しよう!