Radioss の FVM エアバッグ /FVMBAG2 を利用した一番簡単なエアバッグ設定方法

altair_fukuoka
altair_fukuoka
Altair Employee

始めに

Radioss には、流体解析と連成するタイプの FVM エアバッグという機能があります。

https://community.altair.com/community/ja/?id=kb_article_view&sysparm_article=KB0121407

 

カードが2種類あるのですが、一番シンプルである /FVMBAG2 を用いて、簡単な設定方法を示します。

 

エアバッグに必要な3個の機能は、

  • 気体の質量を一定に保つ袋としての機能
  • インジェクタで、気体を送り込む機能
  • ベントで、気体を抜く機能

があります。一度に全部を使おうとすると、フォーマットのルール等を理解するのがややこしくなるんで、本記事では、袋、インジェクタ、ベント、と順番に、もっとも基本的な設定について説明します。

 

/FVMBAG2 の説明

https://2024.help.altair.com/2024/hwsolvers/ja_jp/rad/topics/solvers/rad/monvol_fvmbag2_starter_r.htm

 

袋の設定

参考モデル: bag.7z

 

袋モデルに必要なのは、以下の緑の 3項目です。黄色の T0 はデフォルト値 295[K] が入るので、入力しなくても良いのですが、なんとなく気持ちが悪いので、私は入れることにしています。

 

surf_IDex はバッグを作るサーフェス ID です。空間のある閉じた面であることと同時に、法線の向きにも指定があります。

 

 

HyperMesh で必ず法線の向きの確認と修正を行っておきましょう。

 

mat_ID は袋の中の気体の材料です。難しそうですが、実は簡単です。/MAT/GAS/PREDEF という材料カードで、気体の種類を指定するだけです。例題モデルでは窒素 N2 としています。

 

https://2024.help.altair.com/2024/hwsolvers/ja_jp/rad/topics/solvers/rad/mat_gas_starter_r.htm

 

 

Pext は外気圧です。演習モデルでは、一般的な 1気圧 = 0.1MPa を入力しています。

 

T0 は初期温度 [K] です。デフォルトでも 295K が入ります。

 

袋としての設定は以上で終わりです。圧力、温度、質量の変化を確認できるように /TH/MONVEL で出力要求もしておきましょう。なおドキュメントでは /TH/MONVEL ですが、HyperMesh 2024.1 で作業したら /TH/MONV となりました。/TH/MONV のままで動いていたので、演習モデルは /TH/MONV のままにしてあります。

https://2024.help.altair.com/2024/hwsolvers/ja_jp/rad/topics/solvers/rad/th_monvol_starter_r.htm

 

 

また FVMBAG 用のアニメーション出力要求もあります。なんとなくわかると思いますが、上から順にエアバッグの気体の、密度、圧力、温度、速度となります。

 

/ANIM/NODA/DENS /ANIM/NODA/P /ANIM/NODA/TEMP /ANIM/VECT/FVEL

 

丸い袋を、剛壁で押しつぶしてみました。

 

質量はちゃんと一定ですが、つぶされることで、圧力は上昇していきます。

 

ちなみにこの袋の設定は、インジェクタ、ベントを利用する際にも必要です。エアバッグを使うときは、まず、この袋の設定を目指してください。

 

インジェクタ

例題モデル: injector.7z

 

基本の袋に追加する形になります。設定が必要なのは、次の緑の 3項目です。

Njet はインジェクタの数です。最初は Njet=1 から初めて見てください。

 

inject_ID は /PROP/INJECT1 の ID を指定します。/PROP/INJECT1 は、吹き出すガスの種類、累計吹き出し質量、吹き出し温度を指定するものです。よく似たカードに /PROP/INJECT2 があります。こちらは質量ではなく、モルで指定します。構造系 CAE の方は質量の方が得意だと思いますので INJECT1 を本記事では採用しています。

https://2024.help.altair.com/2024/hwsolvers/ja_jp/rad/topics/solvers/rad/prop_inject1_starter_r.htm

 

必須項目は、次の緑の 4か所です。

 

Ngases はガスの種類の数を指定します。まずは Ngases=1 でガス1種類で試してください。

 

mat_ID は袋の設定でも使った /MAT/GAS/PREDEF の ID を指定します。演習モデルでは O2 と指定してみました。

 

fct_IDM は吹き出し質量総量 - 時刻のカーブ /FUNCT です。カーブの傾きが、吹き出し質量流速ということになります。演習モデルでは、一定の質量流速で吹き出してみました。

 

fct_IDT は吹き出す気体の温度[K]-時刻カーブです。常時 295K としてみました。

 

surf_IDinj はインジェクタとなるサーフェスの ID です。例題モデルではここから吹き込むことにします。

11_inject_surf.png

 

今回は剛体も何も押さえが無い状態としたので、袋は吹き飛ばされます。

 

質量増加にともなう圧力上昇も見て取れます。

 

ベント

演習モデル: bag.7z

 

ベントは開く条件として、外気との圧力差で指定するパターンと、シミュレーション開始後の時刻で指定するパターンがあります。基本的には、圧力差で開く物だと思いますので、本記事では、圧力差で開くパターンを採用しています。

 

必須項目は、次の緑と黄の 5か所です。

 

まず黄色の Tstart 本来は時刻で開くときの時刻指定ですから、本モデルに関係なさそうなのですが、デフォルト値が 0.0 となっているため、何も入力しないと、計算開始と同時にベントが開いてしまいます。ですので、この時刻で開く機能をキャンセルするために Tstart には 1e30 と打ち込んでおきます。

(演習モデルには、本記事で示していないパラメータにも入力がありますが、HyperMesh で作成した際に、デフォルト値が入ったものですので、気にしなくて大丈夫です)

 

Nvent はベントの数です。まずは Nvent=1 でモデルを作成してみてください。

 

Surf_IDv はベントとするサーフェスです。演習モデルではここを指定しています。

 

ΔPdef は外気圧(袋を作った時の Pext) とバッグ内の気体の圧力差の閾値です。圧力差が ΔPdef を超えている状態を ΔtPdef の時間保ったらベントを開きます。演習モデルでは、圧力差が 0.002MPa を超えた状態を 0.01秒保つと、開きます。

 

流出条件はベルヌイの式で決まります。

 

演習モデルはこのように剛壁でつぶしています。外から見ても良く分かりませんが

 

グラフではこのように質量の抜け、圧力の低下が確認できます。

 

番外編、全部入り

袋、インジェクタ、ベントの設定ができるようになれば、あとは、組み合わせるだけです。とりあえず、袋、インジェクタ、ベントを全部入れたモデルも用意しました。ぜひ設定内容や計算結果を確認してみてください。

bag_injctor_vent.7z