跳轉到內容

工程師的火災模擬/FDS/實體幾何

來自華夏公益教科書,開放的書籍,為開放的世界

實體幾何

[編輯 | 編輯原始碼]

第四,實體幾何透過 OBST、VENT、HOLE 名字列表組輸入。

設定計算的很大一部分工作在於指定要建模的空間的幾何形狀,並將邊界條件應用於這些物件。幾何形狀用氣相流動的障礙物來描述。需要為氣相域的每個邊界表面分配一個邊界條件,描述其熱特性。固體障礙物表面和計算域的外部邊界都需要分配邊界條件。火災只是邊界條件的一種型別。

定義實體障礙物,OBST

[編輯 | 編輯原始碼]

名字列表組 OBST 包含用於定義障礙物的引數。每個 OBST 行定義計算域內的實體體積。

障礙物整個表面的邊界條件可以透過指定以下三個引數之一來輕鬆指定:SURF_ID、SURF_IDS 或 SURF_ID6。

引數 SURF_ID 指定一個 SURF 邊界條件,應用於障礙物的所有表面。例如

 &OBST XB=2.3,4.5,1.3,4.8,0.0,9.2, SURF_ID='brick wall' /

構建一個實體障礙物,並將磚牆表面型別應用於其所有六個表面。

如果障礙物頂部、側面和底部的屬性不同,則使用引數 SURF_IDS,這是一個包含三個字串的陣列,分別指定障礙物頂部、側面和底部的邊界條件。例如

 &OBST XB=2.3,4.5,1.3,4.8,0.0,9.2,
     SURF_IDS='burner','brick wall','INERT' /

構建一個實體障礙物,並將燃燒器表面型別應用於頂部表面(+z 方向)、磚牆表面型別應用於側面,並將惰性表面型別應用於底部表面(-z 方向)。

如果障礙物所有表面的屬性都不同,則使用引數 SURF_ID6,這是一個包含六個字串的陣列,分別指定每個表面的邊界條件。例如

 &OBST XB=2.3,4.5,1.3,4.8,0.0,9.2,
     SURF_ID6='bc-x','bc+x','bc-y','bc+y','bc-z','bc+z' /

構建一個實體障礙物,並應用

• bc-x 表面型別應用於 x=2.3 表面(-x 方向的表面),

• bc+x 表面型別應用於 x=4.5 表面(+x 方向的表面),

• bc-y 表面型別應用於 y=1.3 表面(-y 方向的表面),

• bc+y 表面型別應用於 y=4.8 表面(+y 方向的表面),

• bc-z 表面型別應用於 z=0.0 表面(-z 方向的表面),

• bc+z 表面型別應用於 z=9.2 表面(+z 方向的表面)。

實體表面

請注意,SURF_ID6 符合與 XB 引數相同的約定。

下表總結了一些 OBST 引數

引數 型別 描述 單位 預設值
XB(6) 實數 體積 m
SAWTOOTH 邏輯 鋸齒形 .TRUE.
THICKEN 邏輯 強制至少一個單元格厚 .FALSE.
SURF_ID 字串 設定邊界條件(所有表面) 'INERT'
SURF_IDS(3) 字串 設定邊界條件(頂部、側面、底部表面) 'INERT'
SURF_IDS(6) 字串 設定邊界條件(六個表面中的每一個) 'INERT
ALLOW_VENT 邏輯 允許 OBST 上的 VENT .TRUE.
PERMIT_HOLE 邏輯 允許 OBST 被 HOLE 切割 .TRUE.
COLOR 字串 顏色
RGB(3) 整數 顏色 255,204,102
TRANSPARENCY 實數 透明度 1
OUTLINE 邏輯 在 Smokeview 中繪製為輪廓 .TRUE.
DEVC_ID 字串 控制 OBST 存在狀態的 DEVC 的 ID
CTRL_ID 字串 控制 OBST 存在狀態的 CTRL 的 ID

在障礙物內部建立空隙,HOLE

[編輯 | 編輯原始碼]

HOLE 名字列表組用於從現有障礙物或一組障礙物中切割出一個孔。為此,新增以下形式的行

 &HOLE XB=2.0,4.5,1.9,4.8,0.0,9.2 /

將 2.0<x<4.5、1.9<y<4.8、0.0<z<9.2 體積內的任何實體網格單元移除。與該體積相交的障礙物將分解成更小的塊。

如果該孔表示一個門或窗,一個好的經驗法則是打穿足夠多的孔以建立該孔。這確保了孔穿透了整個障礙物。例如

 &OBST XB=1.0,1.1,0.0,5.0,0.0,3.0 /
 &HOLE XB=0.99,1.11,2.0,3.0,0.0,2.0 /

OBST 行表示一個 0.1  m 厚的牆;HOLE 行建立一個門。在孔的 x 座標中新增的額外釐米使得很清楚該孔將穿透整個障礙物。

如果一個障礙物不應該被 HOLE 穿透,請在 OBST 行中新增引數 PERMIT_HOLE=.FALSE. 。

請注意,HOLE 對 VENT 或網格邊界沒有影響。它只適用於障礙物。

障礙物、孔和通風口

下表總結了一些 HOLE 引數

引數 型別 描述 單位 預設值
XB(6) 實數 體積,切口 m
COLOR 字串 由此產生的障礙物的顏色
RGB(3) 整數 由此產生的障礙物的顏色
TRANSPARENCY 實數 由此產生的障礙物的透明度
DEVC_ID 字串 控制 HOLE 存在狀態的 DEVC 的 ID
CTRL_ID 字串 控制 HOLE 存在狀態的 CTRL 的 ID

指定不同的邊界條件,VENT

[編輯 | 編輯原始碼]

OBST 名字列表組可以輕鬆指定障礙物整個表面的邊界條件。但很多時候,您需要將特定的邊界條件應用於整個表面的矩形區域,或應用於計算域的外部邊界。

VENT 名字列表組用於指定這些特定的邊界條件

• 在與障礙物相鄰的平面上,

• 或計算域的外部邊界。

例如,以下行

 &VENT XB=1.0,2.0,2.0,2.0,1.0,3.0, SURF_ID='burner' / 
 &OBST XB=0.0,5.0,2.0,3.0,0.0,4.0, SURF_ID='brick wall' /

構建一個由磚牆製成的實體障礙物,並在 -y 方向的實體表面的矩形區域上應用燃燒器邊界條件。

要將邊界條件設定為計算域的外部邊界,請按照以下示例進行操作

 !!! Computational domain
 &MESH IJK=32,32,16, XB=0.0,1.6,0.0,1.6,0.0,0.8 / 
 &MESH IJK=32,32,16, XB=0.0,1.6,0.0,1.6,0.8,1.6 / 
 !!! Properties 
 &SURF ID='brick wall', COLOR='BROWN' / 
 &SURF ID='floor', COLOR='SILVER' / 
 &SURF ID='ceiling', COLOR='SLATE GRAY' / 
 !!! Solid geometry 
 &VENT XB=0.0,0.0,0.0,1.6,0.0,1.4, SURF_ID='brick wall' /
     lower part of -x exterior boundary 
 &VENT XB=0.0,0.0,0.0,1.6,1.4,1.6, SURF_ID='OPEN' /
     upper part of -x exterior boundary 
 &VENT XB=1.6,1.6,0.0,1.6,0.0,1.6, SURF_ID='OPEN' /
     +x exterior boundary
 &VENT XB=0.0,1.6,0.0,0.0,0.0,1.6, SURF_ID='brick wall' /
     -y exterior boundary
 &VENT XB=0.0,1.6,1.6,1.6,0.0,1.6, SURF_ID='OPEN' /
     +y exterior boundary
 &VENT XB=0.0,1.6,0.0,1.6,0.0,0.0, SURF_ID='floor' /
     -z exterior boundary
 &VENT XB=0.0,1.6,0.0,1.6,1.6,1.6, SURF_ID='ceiling' /
     +z exterior boundary

結果如圖 [fig:Setting-exterior-boundaries] 所示。

表面和邊界

存在一個用於選擇網格邊界的快捷方式:MB 引數。本手冊不會介紹它,因為它在與多個網格一起使用時會導致錯誤和混淆。

請注意

• 任何給定的牆單元格只能指定一個 VENT。如果為給定的牆單元格指定了額外的 VENT 行,FDS 將輸出警告訊息並忽略後續行。將應用第一個定義的 VENT:先來先得。

• VENT 會覆蓋基礎障礙物定義的邊界條件:VENT 邊界條件優於 OBST 邊界條件。

• VENT 必須始終連線到實體障礙物或計算域的外部邊界:不允許懸浮的 VENT。

• 如果 FDS 輸出錯誤訊息,要求指定 VENT 的方向,請檢查以確保 VENT 是一個平面,並且沒有埋在實體障礙物內。

下表總結了一些 VENT 引數

引數 型別 描述 單位 預設值
XB(6) 實數 表面 m
PBX、PBY、PBZ 實數 平面 m
IOR 整數 方向索引
SURF_ID 字串 設定邊界條件 'INERT'
DEVC_ID 字串 控制 VENT 存在狀態的 DEVC 的 ID
CTRL_ID 字串 控制 VENT 存在狀態的 CTRL 的 ID

預設邊界條件

[編輯 | 編輯原始碼]

如果未另行指定,INERT 是所有實體表面的預設 SURF 邊界條件,也是計算域的外部邊界。

如果要更改預設邊界條件,請在 MISC 行上設定 SURF_DEFAULT 引數。例如

 &MISC SURF_DEFAULT='steel' /

如果需要障礙物表面的預設邊界條件,則不需要設定 SURF_ID*。例如

 &OBST XB=2.3,4.5,1.3,4.8,0.0,9.2 /

構建一個實體障礙物,並將預設表面型別應用於其所有表面。

VENT 也是如此

 &VENT XB=2.3,4.5,1.3,4.8,0.0,0,0 /

牆有多厚?

[編輯 | 編輯原始碼]

這些行

 &MATL ID='brick', CONDUCTIVITY=0.69, SPECIFIC_HEAT=0.84,
     DENSITY=1600. / material
 &SURF ID='brick wall', MATL_ID(1,1)= 'brick', THICKNESS= 0.1 /
     boundary condition
 &OBST XB=0.,10.,0.,.2,0.0,2.7, SURF_ID='brick wall' /
     solid obstruction

首先定義一種磚材質並描述一種磚牆邊界條件,然後構建一個實體障礙物,將磚牆表面型別應用於其所有面。

如果你仔細檢查處方

• OBST 物件長 10 米,高 2.7 米,在 y 方向上厚 0.2 米。

• 磚牆邊界條件 (SURF 行) 為同一牆壁規定了 0.1 米的厚度。

乍一看,這兩個引數似乎相互矛盾。

但是,如果你還記得在第 [sec:Each-model-its-data] 節中預期的內容,SURF 行指示的 THICKNESS 引數不需要與 OBST 規定的實體障礙物的 XB 尺寸匹配。

事實上,這兩個引數是相互獨立的

• OBST 行描述了阻礙氣相流動的實體的整體幾何結構:它為流體動力學模型提供資料。

• SURF 行描述了實體表面的特性,用於為氣相計算提供合理的邊界表面溫度:它為實體傳熱模型提供資料。

當 SURF 邊界條件應用於實體障礙物的表面時,FDS 會使用 THICKNESS 引數在實體的每個表面執行單獨的一維傳熱計算。各個面之間沒有通訊。

顯然,這不是執行實體相傳熱的理想方法,但這目前超出了 FDS 的範圍!

薄片障礙物

[編輯 | 編輯原始碼]

障礙物可以是平的。通常,薄片,如窗戶,會形成一個屏障,但是如果數值網格相對於屏障的厚度很粗糙,那麼如果假定屏障只有一層網格單元厚,則障礙物可能過大。

障礙物的所有面都移到最接近的網格單元。如果障礙物非常薄,則這兩個面可以在同一個單元面上近似。

FDS 和 Smokeview 將此障礙物呈現為薄片,但允許它具有熱厚邊界條件,換句話說,應用的 SURF 的 THICKNESS 不為零。

薄片障礙物在其面上只能有一個速度向量,因此無法從薄片障礙物可靠地注入氣體,因為從一側推出的任何東西必然會從另一側拉出。為了實現完全功能,障礙物應指定為至少一個網格單元厚。

薄片障礙物作為流動屏障效果很好,但其他功能脆弱,應謹慎使用。

為了防止 FDS 允許薄片障礙物,在 MISC 行上設定 THICKEN_OBSTRUCTIONS=.TRUE.,或在每個 OBST 行上設定 THICKEN=.TRUE.,其中不允許薄片假設。

啟用和停用物件

[編輯 | 編輯原始碼]

預設情況下,物件及其規定的邊界條件在計算開始時被啟用並出現,然後在計算結束時被停用並消失。

如果需要,單個 OBST、VENT 和 HOLE 的啟用和停用時間可以由控制邏輯規定,如第 [cha:Devices-and-control-logic] 章所述。

階梯式複雜幾何體

[編輯 | 編輯原始碼]

FDS 的效率歸功於其數值網格的簡單性。但是,在某些情況下,某些幾何特徵不符合矩形網格,例如傾斜的天花板或屋頂。在這些情況下,使用矩形障礙物構建彎曲的幾何體,這種過程有時稱為階梯式。

一個問題是階梯式會改變靠近牆壁的流動模式。為了減少階梯式對靠近牆壁的流場的影響,在構成階梯式障礙物的每個 OBST 行上規定引數 SAWTOOTHSAWTOOTH=.FALSE.。此引數的作用是防止在銳角處產生渦量,實際上使構成障礙物的鋸齒狀臺階平滑。

例如,以下行

 &OBST XB=0.00, 0.05,-0.01, 0.01, 0.00, 0.05,
     SAWTOOTH=.FALSE., COLOR='GREEN' / 
 &OBST XB=0.05, 0.10,-0.01, 0.01, 0.00, 0.10,
     SAWTOOTH=.FALSE., COLOR='GREEN' / 
 &OBST XB= 0.10, 0.15,-0.01, 0.01, 0.05, 0.15,
     SAWTOOTH=.FALSE., COLOR='GREEN' / 
 ...
 &OBST XB=0.00, 0.05,-0.01, 0.01, 0.05, 0.10,
     SAWTOOTH=.TRUE., COLOR='TEAL' / 
 &OBST XB=0.05, 0.10,-0.01, 0.01, 0.10, 0.15,
     SAWTOOTH=.TRUE., COLOR='TEAL' / 
 &OBST XB=0.10, 0.15,-0.01, 0.01, 0.15, 0.20,
     SAWTOOTH=.TRUE., COLOR='TEAL' /
 ...

建立雙面斜壁。生成的流動如圖 [fig:SAWTOOTH] 所示。

鋸齒圖案

這不是問題的完整解決方案,但它確實提供了一種簡單的方法來確保非矩形障礙物周圍的流場不會因在銳角處產生的額外阻力而受到抑制。

為單個物件著色

[編輯 | 編輯原始碼]

物件可以透過在相應的 OBST 或 VENT 行上指定 COLOR 或 RGB 值來單獨著色,從而覆蓋 SURF 處方。

 &OBST XB=..., SURF_ID='carpet', COLOR='INDIGO' /

不建議這樣做。如第 [sec:Coloring-boundary-conditions] 節所述,最好為每個邊界條件分配一種顏色。

使燃燒固體消失

[編輯 | 編輯原始碼]

如果一個燃燒物體在被消耗後要從計算中消失,則在相應的 SURF 行上設定 BURN_AWAYBURN_AWAY=.TRUE.。當每個網格單元所包含的質量被熱解反應或規定的 HRR 消耗時,實體物件從計算單元中逐個單元地消失。每個網格單元的質量是單元面的面積乘以 SURF 型別的表面密度。

一個例子

 &SURF ID='stuff', MATL_ID(1:2,1)='fabric','foam',
     THICKNESS(1:2)=0.01,0.1, BURN_AWAY=.TRUE. /

請牢記以下問題

• 對於反應表面,表面密度計算為層密度之和乘以層厚度。此值可以透過在 SURF 行上設定 SURFACE_DENSITY 來覆蓋。

• 對於具有規定 HRRPUA 的表面,新增 SURFACE_DENSITY 引數,因為這是定義物體質量的唯一方法。

• 謹慎使用 BURN_AWAY 引數。如果一個物體有可能被燒掉,則必須分配大量的額外記憶體來儲存額外的表面資訊,因為矩形塊被吃掉了。

• 如果規定了 BURN_AWAY,則 SURF 應應用於整個物體,而不僅僅是物體的表面,因為對於具有不同表面 ID 的不同表面的實體障礙物的邊緣如何處理將不清楚。

有關此主題的更廣泛討論,請參見 [FDS5 使用者指南]。

華夏公益教科書