工程师用火灾模拟/FDS/边界条件
第三,一些属性被设置,作为边界条件的类型(SURF)。
这是设置模拟中最具挑战性的部分:首先,对于真实和模拟的火灾,火灾的增长对周围材料的热特性非常敏感。其次,即使所有材料特性在某种程度上都是已知的,由于模型算法的局限性或数值网格的分辨率,感兴趣的物理现象可能无法得到正确模拟。
您有责任提供材料的热特性,然后评估模型的性能以确保正在捕获感兴趣的现象。
本章还涵盖 RAMP(时间相关)名称列表组。
本章描述如何指定流动域边界表面的属性。定义边界条件类型的名称列表组为 SURF。例如,
&SURF ID='warm_surface', TMP_FRONT=25. /
定义一个名为 warm_surface 的表面。其温度固定为 25 °C。
在构建实体几何体时,边界条件类型将应用于流动域的每个边界表面:实体障碍物的表面和计算域的外部边界。
下表总结了一些 SURF 参数
FDS 包含一些预定义的边界条件,这些条件不需要在 SURF 名称列表组中设置:INERT、OPEN 和 MIRROR。
INERT 边界条件表示一个等温壁,其温度固定在环境温度。INERT 允许热量损失,与绝热表面不同。INERT 固体是永远不会升温的东西,就像一块钢,其背面不断流过冷水。
一般来说,不应使用此边界条件,因为最好将实际材料属性分配给所有物体。
OPEN 边界条件假设环境条件存在于该 VENT 之外。OPEN 只能在计算域的外部边界处指定。
如果您担心通过特定通风口的流动,请不要使用 OPEN 边界,因为恒定压力假设只是一个近似值。您应该将计算域扩展到通风口之外,并将其建造成障碍物,如图 [fig:Extending-the-domain] 所示。然后,进出流动将自然地被视为控制方程解的一部分。
MIRROR 边界条件表示一个对称平面。MIRROR 应该跨越计算域的整个面,本质上使域的大小翻倍。MIRROR 对面的流动完全相反。从数值的角度来看,MIRROR 是一个无通量、自由滑移边界。
MIRROR 只能在计算域的外部边界处指定。
如 [sec:Prescribing-colors] 部分所述
&SURF ID='upholstery', RGB=0,255,0 / &SURF ID='carpet', COLOR='VIOLET RED' /
将导致边界条件类型为 upholstery 的物体呈绿色,类型为 carpet 的物体呈紫红色。
强烈建议通过 SURF 行为实体障碍物分配颜色,因为随着 FDS 模拟的几何图形变得更加复杂,使用颜色作为点检来确定是否已在研究的房间或建筑物中分配了所需的表面属性非常有用。
另一个例子
&SURF ID='glass', RGB=0,255,0, TRANSPARENCY=.3 /
将导致边界条件类型为 glass 的物体呈绿色并部分透明。
在以下部分中,列出了简单的边界条件。更复杂的示例可以在 [cha:Real-world-examples] 章中找到。
对于某些特殊应用,通常希望实体表面是绝热的,也就是说,从气体到实体没有净热传递(辐射和对流)。行
&SURF ID='adiabatic_surface', ADIABATIC=.TRUE. /
定义一个名为 adiabatic_surface 的绝热表面。FDS 将计算壁温,使对流和辐射通量之和为零。
行
&SURF ID='warm_surface', TMP_FRONT=25. /
将表面温度固定为 25 °C。
以下行以 kW/m^{2} 为单位指定 NET_HEAT_FLUX
&SURF ID='warm_surface', NET_HEAT_FLUX=25. /
FDS 将计算所需的表面温度,以确保从表面传出的辐射和对流热通量之和等于规定通量。
以下行分别指定 CONVECTIVE_HEAT_FLUX,以 kW/m2 为单位,并使用 TMP_FRONT 温度(以 °C 为单位)和 EMISSIVITY 指定辐射热通量
&SURF ID='warm_surface', CONVECTIVE_HEAT_FLUX=25., TMP_FRONT=150., EMISSIVITY=.9 /
符号约定是,从表面的正热通量使气体升温。
对于大多数应用,建筑物的通风系统在 FDS 中使用速度边界条件来描述。例如,可以通过在垂直于实体表面的方向上指定速度,将新鲜空气吹入隔间,并将烟雾从隔间中抽出。但是,速度边界条件的各个方面将在下面描述。
例如,行
&SURF ID='supply', VEL=-1.2, TMP_FRONT=50. /
定义一个向域内提供热气的表面,速度为 1.2 m/s,温度为 50 °C。体积流量取决于规定的面积及其与计算网格的对齐方式。
行
&SURF ID='supply', VOLUME_FLUX=1.2 /
定义一个从域内抽取空气的表面,体积流量为 1.2 m3/s。速度取决于规定的面积及其与计算网格的对齐方式。
这行
&SURF ID='supply', MASS_FLUX_TOTAL=-1.2 /
以 1.2 kg/s 的质量流量向域内提供空气。MASS_FLUX_TOTAL 在内部转换为速度边界条件,其对于流出的值会根据局部密度进行调整。
行
&SURF ID='louver', VEL=-1.2, VEL_T=0.5,-0.3 /
代表一个百叶窗通风口的边界条件,该通风口以 1.2 m/s 的法向速度和 0.5 m/s 的切向速度将空气推入空间,切向速度在 x 或 y 方向上为 0.5 m/s,在 y 或 z 方向上为 -0.3 m/s,具体取决于法向方向。
在网格分辨率有限的情况下,可能无法使用 VEL_T 来描述百叶窗通风口或狭缝扩散器,因为可能没有足够的网格单元跨越开口。在这些情况下,可以考虑在 VENT 前面简单地指定一块平板障碍物,偏移一个网格单元。平板将简单地将气流重新导向所有横向方向。
请注意,应规定 VEL、VOLUME_FLUX 或 MASS_FLUX_TOTAL 中的任何一个,而不是同时规定多个。选择取决于是否需要在给定通风口处获得精确的速度,或者是否需要给定的体积流量或质量流量。
符号约定是,正的体积或质量流量是从域中抽出的。
可以指定两种物质边界条件:MASS_FLUX(n) 和 MASS_FRACTION(n),其中 n 指的是给定的物质 SPEC,通过其在输入文件中的位置表示。
如果第 n 种物质的质量分数要在强制流动边界(VEL 或 MASS_FLUX_TOTAL)处达到某个值,则将 MASS_FRACTION(n) 设置为相应 SURF 行上所需的质量分数。
如果需要第 n 种物质的质量流量,则设置 MASS_FLUX(n) 而不是 MASS_FRACTION(n)。如果设置了 MASS_FLUX(n),则不应设置 VEL。它会根据质量流量自动计算。
输入 MASS_FLUX(n) 和 MASS_FRACTION(n) 仅应用于流入边界条件。MASS_FLUX(n) 应始终为正,单位为 kg/m2/s。
例如,以下几行
&SPEC ID='ARGON', MASS_FRACTION_0=0.1 / &SPEC ID='HELIUM' / &SURF ID='inlet', MASS_FRACTION(2)=0.2, VEL=-0.3 /
指定除了未列出的默认空气外,还应在计算中包括氩气和氦气。在入口处,氦气(质量分数 20%)、氩气(质量分数 10%,因为没有指定不同的值)和空气(质量分数 70%,占剩余部分)的混合气体以 0.3 m/s 的速度流入流动域。
在某些情况下,在边界处指定动压而不是速度更为方便。
假设正在对隧道内部进行建模,并且在其中一个入口处吹着风,这会影响隧道内的总体流动。如果(且仅当)入口使用 OPEN 通风口定义,则可以像这样指定边界处的动压
&VENT XB=0.,0.,0.,4.,0.,3., SURF_ID='OPEN', DYNAMIC_PRESSURE=2.4 /
将 2.4 Pa 的动压施加到指定的表面。有关 VENT 命名列表组的说明,请参见第 [sec:VENT] 节。
可以通过 MATL 命名列表组指定固体和液体燃料的相关特性。但是,如果只是想指定一个具有特定热释放率 (HRR) 的火灾,则无需指定任何材料特性。指定的火灾基本上被建模为从固体表面或通风口喷射出气体燃料。这本质上是一个燃烧器,其单位面积的热释放率 (HRRPUA) 为 kW/m2。例如,以下这行
&SURF ID='burner', HRRPUA=500. /
定义一个表面,该表面注入一股燃料气流,当与周围空气充分混合时,该气流会燃烧并产生每平方米发射表面 500 kW 的热量。
HRRPUA 的另一种功能相同但用法不同的参数是 MLRPUA,但该参数指定的是单位面积的燃料气体质量损失率,单位为 kg/m2/s。不要在同一 SURF 行上同时指定 HRRPUA 和 MLRPUA。
例如
&SURF ID='burner', MRLPUA=5. /
指定单位面积的燃料气体质量损失率为 5 kg/m2/s。
通过指定 HRRPUA 或 MRLPUA,可以控制燃烧速度,而不是让材料根据周围环境的条件进行热解。
请注意,每当几何对象转换为与底层网格一致时,它们的表面积都会发生变化。FDS 会调整 HRRPUA、MRLPUA 和其他质量流量的值,以确保用户规定的速率。
每种材料的热和燃烧特性通过 MATL 命名列表组指定。然后,通过 SURF 命名列表组调用材料来定义固体的边界条件。
FDS 会在固体的每个表面执行一维热传递计算,为气相计算提供合理的边界表面温度。
固体边界可以由一层或多层不同材料组成,每层可以包含多个材料成分。
这些层和材料成分的组合在 SURF 行上通过称为 MATL_ID(i,j) 的数组参数指定。参数 i 是一个整数,表示层索引,从 1 开始,即外部边界处的层。参数 j 是一个整数,表示成分索引。MATL_ID(2,3)='brick' 表示第二层的第三个材料成分是砖。
固体混合物的成分被视为纯物质,没有空隙。
以下是一个多层、多成分表面的示例
&MATL ID='water', CONDUCTIVITY=0.60, SPECIFIC_HEAT=4.19, DENSITY=1000. / material &MATL ID='brick', CONDUCTIVITY=0.69, SPECIFIC_HEAT=0.84, DENSITY=1600. / material &MATL ID='insulator', CONDUCTIVITY=0.041, SPECIFIC_HEAT=2.09, DENSITY=229. / material &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', THICKNESS(1:2)=0.1,0.2 / boundary condition
首先,定义材料,然后规定砖墙边界条件。
在砖墙表面(参见图 [fig:brick-wall]),第一层由砖和水的混合物组成。这是通过 MATL_ID 数组指定的,该数组指定第一层的成分 1 为砖材料,第一层的成分 2 为水材料。每种材料的质量分数通过 MATL_MASS_FRACTION 指定:砖为 95% 质量分数,水为 5% 质量分数。第一层厚度为 0.1 m。
最内层由一个成分组成,即绝缘材料,厚度为 0.2 m。
墙体的最内层的热传递条件使用 BACKING 参数设置。此参数可以设置为 VOID、INSULATED 或 EXPOSED。
对于 VOID 示例
&SURF ID='double_layer', MATL_ID(1:2,1)='plastic','steel', THICKNESS(1:2)=0.1,0.2, BACKING='VOID', TMP_BACK=30. /
定义了一个两层表面。外层由一个成分组成,即塑料,厚度为 0.1 m。最内层由一个成分组成,即钢,厚度为 0.2 m。最内层背衬到气隙。气隙的 TMP_BACK 温度为 30 °C。如果未设置 TMP_BACK,则气隙默认为环境温度。BACKING='VOID' 可以安全地省略,因为它默认值。
第二个 INSULATED 示例
&SURF ID='double_layer', MATL_ID(1:2,1)='plastic','steel', THICKNESS(1:2)=0.1,0.2, BACKING='INSULATED' /
定义了相同的两层表面。在这种情况下,最内层背衬到绝缘(绝热)材料,因此不会有热量损失到背衬材料。
作为 EXPOSED 的最后一个示例
&SURF ID='double_layer', MATL_ID(1:2,1)='plastic','steel', THICKNESS(1:2)=0.1,0.2, BACKING='EXPOSED' /
定义了相同的两层表面。在这种情况下,最内层背衬到墙壁另一侧的房间。EXPOSED 仅在墙壁厚度小于或等于一个网格单元,并且墙壁另一侧存在非零体积的计算域时才有效。FDS 会计算整个 THICKNESS 的热传导,并使用前后两侧的气相温度和热通量作为边界条件。
在障碍物另一侧会执行冗余计算,因此请谨慎指定多层:如果分层是对称的,则可以在两侧应用相同的 SURF 行;但是,如果分层不对称,则必须创建两个单独的 SURF 行,并分别应用到每侧。
例如,由钢制成、外侧覆盖着一层绝缘材料和一层塑料(位于绝缘材料之上)的不对称分层空心箱柱,必须用以下两个 SURF 行来描述
&SURF ID='column exterior', BACKING='EXPOSED', MATL_ID(1:3,1)='plastic','insulation','steel', THICKNESS(1:3)=0.002,0.036,0.0063 /
&SURF ID='column interior', BACKING='EXPOSED', MATL_ID(1:3,1)='steel','insulation','plastic', THICKNESS(1:3)=0.0063,0.036,0.002 /
可以通过 SURF 行上的 TMP_INNER 参数为固体障碍物指定初始温度
&SURF ID='stuff', MATL_ID='steel', THICKNESS=.1, TMP_INNER=30. /
初始温度应在相关面内为 30 °C,而不是环境温度。
当激活固体障碍物时(参见第 [sec:Activating-and-deactivating-objs] 节),它们面部的规定边界条件开始生效。
激活后,温度、速度、燃烧速度等会从初始值大致在 1 秒内逐渐增加到规定值,因为任何事情都不会立即发生。
此默认 1 秒斜坡可由用户修改:许多 SURF 参数可以随时间变化,并在激活瞬间后遵循不同的趋势。
参数 TAU_Q、TAU_T、TAU_V、TAU_MF(n) 指示在 SURF 激活后,热释放率 (HRRPUA)、表面温度 (TMP_FRONT)、法向速度 (VEL、VOLUME_FLUX) 或 MASS_FLUX_TOTAL、物质分数或物质通量 n 将在 TAU_* 秒内升至其规定值,并在该值上保持。
如果 TAU_* 为正,则相关量会像 tanh(t/τ) 一样上升。如果为负,则它像 (t/τ2) 一样上升。如前所述,所有 TAU_* 的默认值为 1 秒。
例如,以下这行代码
&SURF ID='burner', HRRPUA=4000., TAU_Q=-120 /
指定了燃烧器边界条件,该燃烧器在计算开始时 (t=0 秒) 激活,像 HRRPUA=4000~(t/120)2 一样上升(t<120 秒),并在 120 秒后保持在 4000 kW/m2,如图 [fig:HRRPUA-as-function] 所示。
如果需要使用 tanh 或 t2 以外的上升斜坡,则必须输入用户定义的函数。为此,将 RAMP_Q、RAMP_T、RAMP_V 或 RAMP_MF(n) 设置为表示要用于该特定表面类型的斜坡函数的字符字符串,然后在输入文件的某个位置生成以下形式的行代码
&RAMP ID='rampname1', T= 0.0, F=0.0 / &RAMP ID='rampname1', T= 5.0, F=0.5 / &RAMP ID='rampname1', T=10.0, F=0.7 /
对于这种类型的斜坡,T 是从激活开始经过的时间,F 表示热释放率、壁温、速度、物质分数等的应用比例。使用线性插值来填充中间时间点。
请注意,每组 RAMP 行都必须以单调递增的 T 列出。
例如,可以使用以下代码行控制一个简单的吹风机
&SURF ID='blower', VEL=-2., TMP_FRONT=50., RAMP_V='blower_v', RAMP_T='blower_t' / &RAMP ID='blower_v', T=20.0, F=1.0 / &RAMP ID='blower_v', T=30.0, F=0.5 / &RAMP ID='blower_v', T=60.0, F=0. / &RAMP ID='blower_t', T=40.0, F=1.0 / &RAMP ID='blower_t', T=50.0, F=1.5 / &RAMP ID='blower_t', T=60.0, F=0.5 /
为 SURF 参数生成图 [fig:VEL-and-TMP_FRONT] 中所示的时间趋势。
下表总结了一些 RAMP(时间)参数
参数 | 类型 | 描述 | 单位 | 默认值 |
---|---|---|---|---|
ID | 字符串 | 标识符 | ||
T | 实数 | 时间 | 秒 | |
F | 实数 | 函数值 |
可以通过边界条件从固体表面将拉格朗日粒子引入流体流中。
例如,以下代码行定义了一种类型的拉格朗日粒子
&PART ID='my tracer', MASSLESS=.TRUE. /
然后,这些拉格朗日粒子从具有以下边界条件的固体表面引入流体流中
&SURF PART_ID='my tracer' /
请注意,指定粒子的表面必须具有一个非零法向速度,该速度指向计算域。如果表面正在燃烧,因此将燃料气体注入流域,则会自动发生这种情况,但如果表面没有燃烧,则必须指定该速度。