FDS fdsformat - eiichiromomma/CVMLAB GitHub Wiki

(FDS) .fds format

.fdsファイルの作成

FDS Users Guide 5からざっくり抽出。(自分の勉強用) ここではtest01.fdsなる名前で作る

フォーマット

  • テキスト形式
  • &で始まると命令、それ以外はコメント
  • 命令は&と/の間に書く、/の後ろはコメント
  • &HEADで始まり&TAILがケツ

設定(6)

HEAD(6.1)

&HEAD CHID='test01',TITLE='TEST'/

CHID

  • 大文字小文字に注意
  • CHID.fdsというファイルになるのでスペース禁止、アンダースコア推奨
  • 30字以内

TITLE

  • 60字以内
  • どんな実験か書く

TIME(6.2)

&TIME TWFIN=0./ For Preview
TIME TWFIN=3600./

TWFIN

  • 終了時刻
  • 単位は秒
  • デフォルトは1s

DT

  • ステップ時間だがデフォルトは問題の複雑さに応じてフレキシブルに変化

MESH(6.3)

計算する領域の設定。後で定義するOBSTはこの中に配置する。但しはみ出しても特にエラーは生じない。

&MESH IJK=10,20,30, XB=0.0,1.0,0.0,2.0,0.0,3.0/

XB

実空間上の位置指定。例では(0.0,0.0,0.0)-(1.0,2.0,3.0)を対角とする直方体となる

IJK

  • XBで定義した空間のx,y,z方向のメッシュ分割数。例ではx,y,z方向に10,20,30分割となる。(10cm刻み)
  • メッシュの大きさはx,y,z方向の大きさが等しいのが理想
  • FFTを使うので分割数は2^l、3^m、5^nの公倍数が望ましい。(l,m,nは0も含む整数)

TRNX(6.3.3)

メッシュの分割を折れ線あるいは非線形に設定

MISC(6.4)

諸々のパラメータ設定

RESTART(6.4.1)

FDS RESTART参照

ひとまず実行

test01.fdsの中身

&HEAD CHID='test01',TITLE='TEST'/
&TIME TWFIN=0./
&MESH IJK=10,20,30, XB=0.0,1.0,0.0,2.0,0.0,3.0/
&VENT MB='XMIN', SURF_ID='OPEN' /
&VENT MB='XMAX', SURF_ID='OPEN' /
&TAIL/

FDSでの実行

VENTは後で説明するが、密閉空間だとエラーが出る。

fds5のバイナリ test01.fds

で実行。Ver.4までのような<を使ったリダイレクトは不要になった。

TWFINを0.にしているので、モデルを作成するだけで終わる。 Stop FDS, Set-up only と表示されれば成功。エラーが出たらスペルミスや全角文字が紛れてないかをチェック。

Smokeviewでの表示

smokeviewのバイナリ test01.smv

とする。

Smokeviewでは手前の面とオープンとした面は透けて表示される。

モデルの作成(7)

SURFはIDを持ち、OBSTはSURF_IDを指定することで、表層を定義できる

&SURF ID='FIRE',HRRPUA=1000.0/
&OBST XB=0.5,0.6,1.0,1.1,0.0,0.3,SURF_IDS='FIRE','INERT','INERT'/

OBST (Obstruction) (7.1)

  • モデル中の物体は基本的にOBSTで記載
  • SURF_IDを指定しない場合はINERTがデフォルトとなっている。別のにしたい場合はSURF_IDかSURF_IDSのどちらかを指定する。

SURF_ID

  • 表層の指定

SURF_IDS

  • 3あるいは6個
  • 3個の場合は上、側面、底のSURF_ID
  • 6個の場合は後で確認

XB

  • 物体の対角点
  • 厚さ0も指定可能(薄いシーツとか)

SURF (Surface)

詳細は後で

  • IDで参照名の指定
  • 表層の定義

とりあえず実行

test01.fdsの中身

&HEAD CHID='test01',TITLE='TEST'/
&TIME TWFIN=0./
&MESH IJK=10,20,30, XB=0.0,1.0,0.0,2.0,0.0,3.0/
&VENT MB='XMIN', SURF_ID='OPEN' /
&VENT MB='XMAX', SURF_ID='OPEN' /

&SURF ID='FIRE',HRRPUA=1000.0/
&OBST XB=0.5,0.6,1.0,1.1,0.0,0.3,SURF_IDS='FIRE','INERT','INERT'/

&TAIL/

SURFとOBSTが加わっている。10cmx10cmx30cmの火源を置く。SURFのFIREはHRRPUA(Heat Release Rate Per Unit Area)で発熱量を定義しているので、上面から火が生じるイメージ。

TWFIN=0.なので火源が置かれただけ。

TWFIN=20.と変えて燃やしてみる。

境界条件も何も決めていないのでフリースペースで焚き火状態

HOLE(7.2)

XB

  • 穴を空ける空間の対角点

VENT(7.3)

  • 外壁やOBSTの面について定める
  • XBで定める
  • 換気を示すが、穴を開ける必要はない
  • もっと単純にある物体の1面の境界条件を定める場合にも使われる(SURF_IDを使用)
  • OBSTでSURF_IDが指定されていてもVENTで指定したSURF_IDが優先される

&OBST XB=0.0,5.0,2.0,3.0,0.0,4.0, SURF_ID=’big block’ /
&VENT XB=1.0,2.0,2.0,2.0,1.0,3.0, SURF_ID=’hot patch’ /

OBSTでは5m x 1m x 4mの'big block'を表面とする壁を設置しているが、次のVENTはその一部に1m x 2mの'hot patch'を設置している。この場合、該当部は'hot patch'が適用される。

MB

  • XBの代わりにMB(Mesh Boundary)を使うと簡単に外壁(MESHの端)を設定できる
  • 値はXMIN,XMAX,YMIN,YMAX,ZMIN,ZMAXが指定可能

特記事項

  • エラーが出たらVENTが平面であるかをチェックし、その場合は面の向きを注意する
  • IORパラメータを1とするとx軸について正の方向、-1とすると負の方向、y,zは2,3を使う

境界条件の設定(8)

  • シミュレーションの成否を握るポイントなので最も意欲的に取り組む必要がある

  • 特にSURFで指定しない限り外気温がOBSTやMESHの境界条件となる

  • FDS5から固体はMATLで物質の定義が行なえるようになった

  • MATLによりどれだけ速く加熱するか、発火するかを定められる

  • MATLは必ずIDを設定する必要があり、SURFでMATL_IDとして参照される

    &MATL ID = 'BRICK' CONDUCTIVITY = 0.69 SPECIFIC_HEAT = 0.84 DENSITY = 1600. /

    &SURF ID = 'BRICK WALL' MATL_ID = 'BRICK' COLOR = 'RED' BACKING = 'EXPOSED' THICKNESS = 0.20 /

    &OBST XB=0.1, 5.0, 1.0, 1.2, 0.0, 1.0, SURF_ID='BRICK WALL' /

4.9m x 0.2m x 1mの'BRICK WALL'を作る例。ここでは'BRICK WALL'のTHICKNESSとOBSTでの厚さを一致させている。

このOBSTでの定義とTHICKNESSは独立したもので、OBSTでの厚みは構造上の特性を示し、THICKNESSは表層の特性を示すので、OBSTの厚さの中に含まれると考えて良い。

SURF(8.2)

  • 固体、開放部、流体の区分の境界条件を定めるパラメータ
  • OBSTやVENTで境界条件を定めるには、事前にSURFで定めておき各々のIDをSURF_IDで参照する手段をとる
  • 全ての固体のSURFの初期値は'INERT'(不活発、応答がトロい)でcold(冷たい)な条件となっている(余計な影響が生じないので外部の条件には良いがシミュレーションの対象にしたければ必ずSURFを設定する必要がある)
  • その.fdsファイルでデフォルトの境界条件を定めたい場合はMISCの行でSURF_DEFAULTを定義すれば良い &MISC SURF_DEFAULT='CONCRETE' この例は'CONCLRETE'をデフォルトの境界条件(要するに宣言無しで定義された物(OBST)は全部'CONCRETE'で造られた物になる)。

ちなみに'INERT'は熱損失が起きるので、断熱性(ADIABATIC)境界として使えない。SURFにADIABATIC=.TRUE.を含める必要がある。

既知のHeat Release Rate(HRR)による火源の設定(8.2.1)

  • HRRPUAで定める

  • 本来火源は固体液体に関わらずMATLで特性を記述する必要があるが、HRRを定めた場合は不要となる(簡易的な火源になる)

  • HRRで定められた場合、OBSTのSURFあるいはVENTから吹き出すガス状の燃料の燃焼として扱われる

    &SURF ID='FIRE',HRRPUA=500. /

これはIDが'FIRE'で500kW/m2の火源を意味する。HRRの時間制御については後述。

  • MLRPUA(Mass Loss Rate of fuel gas Per Unit Area :kg/m2/s)で定めても結果としては同じだが、同一SURF上でHRRPUAとMLRPUAを並べてはいけない
  • HRRPUAでもMLRPUAでもガスの挙動を定める化学量はREACで定める。宣言しなければ勝手に決められる
  • その量は燃焼プロセスと関連付けられているが、必ずしも定めなければいけない訳ではない?
  • スプリンクラーや消化器などへの応答は例外として扱われる?

簡易的な熱の境界条件(8.2.2)

  • 通常はMATLで定め、SURFでMATL_IDを指定する必要がある
  • TMP_FRONTを使うと一定温度(セルシウス)に設定できる
  • convective heat flux(熱流の対流?:kW/m2)を固定したい場合はHEAT_FLUXを使う
  • ある壁のHEAT_FLUXが正ならば壁周辺のガスを加熱させ、負ならば冷却する
  • TMP_FRONTやHEAT_FLUXは便利ではあるが、現実の構造物は何層も物質が重なっている点に注意する必要がある
  • デフォルトではこの層の最下層は環境温度の空気の層との重なりと考えられ、断熱性素材をwall liner(日本語で何て言うんだ?)との間に挟む場合SURFの中でBACKING='INSULATED'とする事で、背後のMATLによる熱のロスを防げる
  • 厚さが1グリッドセル(MESHで分割したサイズ)より小さいか等しい場合にのみ働く特徴としてBACKING='EXPOSED'があり、これは熱をそのまま背後に伝える

流速の境界条件(8.2.3)

  • この境界条件は法線、接線方向に影響する

*法線方向

  • 法線方向はVELで制御

  • VELが負だと領域に入ってくる方向

  • VELが正だと出ていく方向

  • Volume fluxを使いたい時はVOLUME_FLUX(m3/s)をVELの代わりに使う。向きに関してのルールはVELと同じ

  • SURFとVOLUME_FLUXの組合せはVENTにのみ適用可

  • HRRPUAを使っている場合は使えない

    &SURF ID='BLOWER',VEL=-1.2,TMP_FRONT=50. /

は1.2m/sで50℃の空気が吹き込んでくるIDがBLOWERのSURFを定めている。もしVELが正でMESH外部に出すような状況の場合はTMP_FRONTは不要になる。

  • MASS_FLUX_TOTALを使う手もある

*接線方向

流体同士の境界条件(8.2.4)

  • MASS_FLUX(N)
  • MASSFRACTION(N)

屋外での火災(8.2.5)

放射状に広がる火炎(8.2.6)

円柱状のOBSTの記述(8.2.7)

ケーブル、パイプ、ダクトのような四角でない円柱状のOBSTの記述法

&OBST XB=0.0,5.0,1.1,1.2,3.4,3.5, SURF_ID='CABLE'/
&SURF ID='CABLE',COLOR='BLACK',MATL_ID='STEEL',GEOMETRY='CYLINDRICAL',THICKNESS=0.01/

上記は長さ5m、直径2cmの電線の記述例。

  • 熱の伝搬については1次元のみ(長手方向)
  • より詳細な伝搬を検討するには3次元で検討すべきだが、現状でもリーズナブルな解が得られる
  • そのような細い円筒の3次元の熱の伝搬はFDSに含まれていない

ZONE(8.3)

  • 圧力の漏洩の記述
  • FDS1~4では密閉空間の演算を可能としていたが、FDS5では漏洩を記述する必要がある
  • 漏洩は"cracks"により起きるが、そんな細かいメッシュは切れないので特別な記述が必要
  • 圧力の空間はZONEで定義され、定義した順に自動的にサフィックスが1から割り当てられる(0は外部)

漏洩(8.3.1)

&ZONE XB=0.3,1.2,0.4,2.9,0.3,4.5, LEAK_AREA(0)=0.0001 /
&ZONE XB=2.3,5.8,1.4,2.9,6.8,9.7, LEAK_AREA(1)=0.0002 /

1行目はZONE1を定義し、0.0001m2(1cm x 1cm)の"cracks"による、LEAK_AREA(0)つまり外部への漏洩を記述している。 2行目はZONE2を定義し、0.0002m2(1cm x 2cm)のLEAK_AREA(1)つまりZONE1への漏洩を記述している。

  • ZONE1を囲うOBSTの少なくとも1つのLEAK_PATH=1,0を設定したSURFが必要
  • ZONE2についてもLEAK_PATH=2,1のSURFが1つは必要 &SURF ID='whatever',..., LEAK_PATH=1,0 /
  • 均一な漏洩となり、あまり重要な意味を為さない

Fans(8.3.2)

MATL(8.4)

  • 固体の境界は材質の異なる多層構造として定義可能

  • MATL_ID(IL,IC)の形式で多層を記述

  • -ILは1から始まる層のインデックス

  • -ICは構成要素のインデックス

  • MATL_ID(2,3)='BRICK' と記述した場合、第2層の3番目の構成要素がBRICKになる

    &MATL ID = 'INSULATOR' CONDUCTIVITY = 0.041 SPECIFIC_HEAT = 2.09 DENSITY = 229. / &SURF ID = 'BRICK WALL' MATL_ID = 'BRICK','INSULATOR' COLOR = 'RED’ BACKING = 'EXPOSED' THICKNESS = 0.20,0.10 /

多層の材質についてはしばしば上記のように記述される。SURFにおいてMATL_IDを省略した場合は単一の素材として扱われる。

上記の場合BRICK WALLは非対称となる。SURFでEXPOSEDとした場合は前面と背面で異なる素材となるため注意する。

  • ILおよびICの最大値は20

吸湿(混合の例)

  • MATL_MASS_FRACTIONを使うと同一の層で材質を混ぜられる

    &MATL ID = 'WATER' CONDUCTIVITY = 0.60 SPECIFIC_HEAT = 4.19 DENSITY = 1000. / &SURF ID = 'BRICK WALL' MATL_ID(1,1:2) = 'BRICK','WATER' MATL_MASS_FRACTION(1,1:2) = 0.95,0.05 MATL_ID(2,1) = 'INSULATOR' COLOR = 'RED' BACKING = 'EXPOSED' THICKNESS = 0.20,0.10 / <--- for layers 1 and 2

  • 混合した場合でも空隙は存在しない

  • 密度は比の和の逆数(式(8.3))で定まる

  • 例の場合の密度は1553kg/m3となる

熱の特性

  • CONDUCTIVITY(W/mK), DENSITY(kg/m3), SPECIFIC_HEAT(kJ/kg/K), EMISSIVITY(デフォルト0.9)の4値

  • CONDUCTIVITYとSPECIFIC_HEATは温度に機能する

  • 温度依存はRAMPにより決める

  • 例では高温に対応するMARINITE(という材料)について示す

    &MATL ID = 'MARINITE' EMISSIVITY = 0.8 DENSITY = 737. SPECIFIC_HEAT_RAMP = 'c_ramp' CONDUCTIVITY_RAMP = 'k_ramp' / &RAMP ID='k_ramp', T= 24., F=0.13 / &RAMP ID='k_ramp', T=149., F=0.12 / &RAMP ID='k_ramp', T=538., F=0.12 / &RAMP ID='c_ramp', T= 93., F=1.172 / &RAMP ID='c_ramp', T=205., F=1.255 / &RAMP ID='c_ramp', T=316., F=1.339 / &RAMP ID='c_ramp', T=425., F=1.423 /

この_RAMPを付けたSPECIFIC_HEAT,CONDUCTIVITYが参照するIDが、温度Tにおける各値が変化する特性を示すよう設定できる。

  • FDS5ではABSORPTION_COEFFIENT(1/m)で放射を吸収する量を定められる
  • 放射はこれと対応して、内部の温度によって決まる

固体燃料の熱分解(8.4.2)

  • MATLは水蒸気、燃料ガスなどのRESIDUEによって定められる反応を経る

  • MATLの反応数はN_REACTIONSで定まり、j番目の反応RESIDUE(j)での熱はHEAT_OF_REACTION(j),水蒸気や燃料ガスの反応はそれぞれNU_WATER(j),NU_FUEL(j)となる?

  • 各MATLで設定できる反応数は10、連鎖は20まで

  • 反応率は式(8.4)で示される

    &MATL ID = 'Whatever' FYI = 'Properties completely fabricated' SPECIFIC_HEAT = 1.0 CONDUCTIVITY = 0.1 DENSITY = 100.0 N_REACTIONS = 1 NU_FUEL = 1. REFERENCE_TEMPERATURE = 350. HEAT_OF_REACTION = 3000. HEAT_OF_COMBUSTION = 15000. /

下記の例では350℃付近で燃焼した物体が燃料ガスに変わる。HEAT_OF_COMBUSTION(j)(kJ/kg)は応答におけるエネルギー量を定める。

固体燃料が特定のレートで燃える場合

液体燃料