Radioss の FVM エアバッグ /FVMBAG2 を利用した一番簡単なエアバッグ設定方法
始めに
Radioss には、流体解析と連成するタイプの FVM エアバッグという機能があります。
https://community.altair.com/community/ja/?id=kb_article_view&sysparm_article=KB0121407
カードが2種類あるのですが、一番シンプルである /FVMBAG2 を用いて、簡単な設定方法を示します。
エアバッグに必要な3個の機能は、
- 気体の質量を一定に保つ袋としての機能
- インジェクタで、気体を送り込む機能
- ベントで、気体を抜く機能
があります。一度に全部を使おうとすると、フォーマットのルール等を理解するのがややこしくなるんで、本記事では、袋、インジェクタ、ベント、と順番に、もっとも基本的な設定について説明します。
/FVMBAG2 の説明
袋の設定
参考モデル: 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 です。例題モデルではここから吹き込むことにします。
今回は剛体も何も押さえが無い状態としたので、袋は吹き飛ばされます。
質量増加にともなう圧力上昇も見て取れます。
ベント
演習モデル: bag.7z
ベントは開く条件として、外気との圧力差で指定するパターンと、シミュレーション開始後の時刻で指定するパターンがあります。基本的には、圧力差で開く物だと思いますので、本記事では、圧力差で開くパターンを採用しています。
必須項目は、次の緑と黄の 5か所です。
まず黄色の Tstart 本来は時刻で開くときの時刻指定ですから、本モデルに関係なさそうなのですが、デフォルト値が 0.0 となっているため、何も入力しないと、計算開始と同時にベントが開いてしまいます。ですので、この時刻で開く機能をキャンセルするために Tstart には 1e30 と打ち込んでおきます。
(演習モデルには、本記事で示していないパラメータにも入力がありますが、HyperMesh で作成した際に、デフォルト値が入ったものですので、気にしなくて大丈夫です)
Nvent はベントの数です。まずは Nvent=1 でモデルを作成してみてください。
Surf_IDv はベントとするサーフェスです。演習モデルではここを指定しています。
ΔPdef は外気圧(袋を作った時の Pext) とバッグ内の気体の圧力差の閾値です。圧力差が ΔPdef を超えている状態を ΔtPdef の時間保ったらベントを開きます。演習モデルでは、圧力差が 0.002MPa を超えた状態を 0.01秒保つと、開きます。
流出条件はベルヌイの式で決まります。
演習モデルはこのように剛壁でつぶしています。外から見ても良く分かりませんが
グラフではこのように質量の抜け、圧力の低下が確認できます。
番外編、全部入り
袋、インジェクタ、ベントの設定ができるようになれば、あとは、組み合わせるだけです。とりあえず、袋、インジェクタ、ベントを全部入れたモデルも用意しました。ぜひ設定内容や計算結果を確認してみてください。