通常来说,在建立一个火灾模型时,首先要确定全局参数,即火灾蔓延的时间和空间。即仿真时间、计算域的大小和范围
一、HEAD
CHID和TITLE。
参考以下示例代码:
&HEAD CHID='WTC_05', TITLE='WTCPhase1,Test5'/
CHID:它是一个不超过50个字符的字符串,用于标记输出文件,在chid中不允许使用句号或空格。若未指定CHID,则将其命名为第一个句点处之前的内容。
TITLE:长度不超过256个字符。它只是一个传递到各种输出文件的描述性文本。
二、TIME
2.1 设置工况持续时间
TIME定义了模拟的时间持续时间和用于推进离散方程求解的初始时间步长。
T_END来进行设置。例如,下述代码将持续时间设置为5400s。
&TIME T_END=5400. /
T_END设置为0s,用来查看工况的几何结构。
T_BEGIN设置,设置方法同上。
2.2控制时间步长
DT指定,该参数通常是通过将网格单元的大小除以流动的特征速度自动设置的。默认时间步长以公式2.1计算。
(2.1)
其中:
δxδyδz:最小网格单元的尺寸
g:重力加速度
H:计算域高度
RESTRICT_TIME_STEP=F,可以进行更改。
一般来说,我们不需要更改时间步长。
三、MESH
所有的FDS计算必须在一个由称为网格的直线体组成的域内执行。每个网格被划分为矩形单元,其数量取决于所需的流动动力学分辨率。
3.1基础
网格是一个单一的右平行六面体,也就是一个盒子。网格内的坐标系统符合右手法则。
&MESH IJK=10,20,30, XB=0.0,1.0,0.0,2.0,0.0,3.0 /
XB定义了网格的大小,参数IJK将XB分配的长度均匀分配。在这个例子中,网格被分成10厘米的立方体。如果网格单元类似立方体,则效果最好;也就是说,单元格的长、宽、高应该大致相同。建议将网格划分为正方体,也就是XB分配的长度和IJK划分大致相当。可以在PyroSim自动配置比例。
图3.1 MESH设置的示意图
IJK之积也就是划分的网格数。本例中,10*20*30=6000.
在设置工况模型时,应该保证在划分的网格之内,也就是在XB设置的范围之内。因为任何超出网格边界的障碍物或通风口都在边界处被切断。
JK)可以被分解成低质数,比如2、3和5,那么该算法的工作效率最高。建议划分网格时均采用2、3、5的倍数。
3.2二维坐标、轴对称坐标及多网格
1.将参数IJK中的J设置为1,即可以采用二维坐标系。
2. 轴对称坐标需要在MESH中添加CYLINDRICAL=T,这样设置后x就表示r。
3. 二维、三维、xyz坐标系和轴对称坐标系不可以混合使用,仅能使用单一一种。
4. “多个网格”指的是计算域由多个计算网格组成。如果使用了多个网格,每个网格都应该有一个网格线。这些行在输入文件中的输入顺序很重要。一般来说,网格应该从最细到最粗。网格可以重叠、邻接或完全不接触。在最后一种情况下,实际上执行了两个独立的计算。
3.3网格对齐
网格对齐最重要的原则是:相邻单元的截面面积应相同,即相邻网格设置要成整数比。参考图3.2-3.6.
图3.2 这是一种理想的网格对齐方式
图3.3 这是允许的,只要成整数比
图3.4 这是允许的,但其价值值得怀疑
图3.5 这是不允许的,因为小单元格设置必须是大单元格的整数倍
图3.6 这是不允许的
一般来说,重叠网格没有什么好处,因为信息只在外部边界交换。从本质上讲,较大的、通常较粗的网格是在对场景进行自己的模拟,而不受嵌入其中的较小的、通常较细的网格的影响。细网格内的细节,特别是与火的增长和蔓延有关的细节,可能不会被粗网格所捕捉到。在这种情况下,最好将详细的火灾行为隔离在一个网格内,并将较粗的网格置于细网格的外部边界。
3.4网格拉伸
默认情况下,填充计算域的网格单元格大小是一致的。然而,可以指定单元格在三个坐标方向中的一个或两个是不均匀的。对于给定的坐标方向,x,y或是z,可以指定一个函数,将均匀间隔网格转换为非均匀间隔网格。
当一个或两个坐标方向被转换时,3D网格中网格单元的纵横比将发生变化。为了安全起见,应该避免改变单元格长宽比超过2或3的转换。
下面是一个如何做网格变换的例子。假设你的网格如下所示:
&MESH IJK=15,10,20, XB=0.0,1.5,1.2,2.2,3.2,5.2 /
你想改变方向上的均匀间距。你需要定义一个函数x=f(ξ),(具体定义见下文)它将等间距计算坐标(CC)0≤ξ≤1.5映射到物理坐标(PC)上
这个函数有三个强制性约束:
1)它必须是单调的(总是递增的)
2)ξ=0 必须对应x=0
3)ξ=1.5 必须对应x=1.5。
对于均匀网格,默认的变换函数是f(ξ) =ξ,但在这种情况下你不需要做任何操作.
允许两种类型的转换函数。
第一个,也是最简单的,是一个分段线性函数。图3.7给出了一个分段线性变换的例子。图中显示了沿水平轴15个均匀间隔的网格单元如何转化为沿垂直轴15个非均匀间隔的网格单元。定义语句如下:
&MESH ..., TRNX_ID='mytrnx'/
&TRNX ID='mytrnx', CC=0.30, PC=0.50 /
&TRNX ID='mytrnx', CC=1.20, PC=1.00 /
ID可以将变换应用到同一组中。
图3.7 分段线性网格转换
第二种类型的变换是一个多项式函数,它的约束是这样的形式
图3. 8给出了一个多项式变换的例子,其参数如下:
&MESH ..., TRNX_ID='mytrnx'/
&TRNX ID='mytrnx', IDERIV=0, CC=0.75, PC=0.75 /
&TRNX ID='mytrnx', IDERIV=1, CC=0.75, PC=0.50 /
它对应于约束条件:f(0.75) =0.75,并且
。或者,换句话数,函数将0.75映射到0.75并且函数在ξ=0.75处的斜率是0.5,如图3.8所示。
图3.8 多项式网格转换
变换函数还必须经过点(0,0)和(1.5,1.5),这意味着FDS必须计算三次多项式f(ξ)=c0+c1ξ+c2ξ2+c3ξ3的系数。函数上的约束越多,就会产生更高阶的多项式函数,所以要注意约束太多会导致非单调函数。
3.5网格分辨率
新FDS用户常问的一个问题是,“我的网格间距应该是多少?”答案并不简单,因为它在很大程度上取决于你想要完成什么。通常,您应该使用相对粗糙的网格构建FDS输入文件,然后逐步细化网格,直到您在结果中看不到明显的差异。