FDS学习笔记(二)设置时间空间条件,fds中网格(MESH)的设置
通常来说,在建立一个火灾模型时,首先要确定全局参数,即火灾蔓延的时间和空间。即仿真时间、计算域的大小和范围
一、HEAD
设置输入文件时要做的第一件事是给模拟起一个名字,HEAD就是用来设置改项内容的,HEAD包括两个参数CHID和TITLE。
参考以下示例代码:
&HEAD CHID='WTC_05', TITLE='WTCPhase1,Test5'/
CHID:它是一个不超过50个字符的字符串,用于标记输出文件,在chid中不允许使用句号或空格。若未指定CHID,则将其命名为第一个句点处之前的内容。
TITLE:长度不超过256个字符。它只是一个传递到各种输出文件的描述性文本。
二、TIME
2.1 设置工况持续时间
TIME定义了模拟的时间持续时间和用于推进离散方程求解的初始时间步长。
通常来说,这一行只需要模拟的持续时间,默认为1s。通过参数T_END来进行设置。例如,下述代码将持续时间设置为5400s。
&TIME T_END=5400. /
可以将T_END设置为0s,用来查看工况的几何结构。
默认开始时间是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 /
上述案例中,定义一个网格,从原点开始跨越体积,并在x方向扩展1米,y方向扩展2米,z方向扩展3米。通过参数ijk将网格细分为均匀的单元格,参见图3.1。参数XB定义了网格的大小,参数IJK将XB分配的长度均匀分配。在这个例子中,网格被分成10厘米的立方体。如果网格单元类似立方体,则效果最好;也就是说,单元格的长、宽、高应该大致相同。建议将网格划分为正方体,也就是XB分配的长度和IJK划分大致相当。可以在PyroSim自动配置比例。
图3.1 MESH设置的示意图
IJK之积也就是划分的网格数。本例中,10*20*30=6000.
在设置工况模型时,应该保证在划分的网格之内,也就是在XB设置的范围之内。因为任何超出网格边界的障碍物或通风口都在边界处被切断。
FDS中的压力求解器在它们和z方向上使用快速傅里叶变换(FFTs),如果这些方向上的单元数(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 /
可见图3.7是由三段直线构成的,因此在定义的时候只需要定义拐点的坐标对应即可。如上述2,3行所示。设置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输入文件,然后逐步细化网格,直到您在结果中看不到明显的差异。
FDS学习笔记(二)设置时间空间条件,fds中网格(MESH)的设置相关推荐
- wxpython应用程序对象与顶级窗口_wxPython学习笔记(二)
如何创建和使用一个应用程序对象? 任何wxPython应用程序都需要一个应用程序对象.这个应用程序对象必须是类wx.App或其定制的子类的一个实例.应用程序对象的主要目的是管理幕后的主事件循环. 父类 ...
- Vue学习笔记:Element时间控件设置某一个日期禁止选择
Vue学习笔记:Element时间控件添加一段时间禁止选择 需求:时间控件,当天之前禁止选择,某一个日期的之前时间禁止选择 文档: 代码实现:在时间控件上添加 :picker-options=&quo ...
- Netty学习笔记二网络编程
Netty学习笔记二 二. 网络编程 1. 阻塞模式 阻塞主要表现为: 连接时阻塞 读取数据时阻塞 缺点: 阻塞单线程在没有连接时会阻塞等待连接的到达,连接到了以后,要进行读取数据,如果没有数据,还要 ...
- LabView学习笔记(十):条件结构
Labview学习笔记: LabView学习笔记(一):基础介绍 LabView学习笔记(二):滤波器实验 LabView学习笔记(三):基本控件 LabView学习笔记(四):动态数据类型 LabV ...
- Mysql学习笔记(二)——表格及数据的插入
Mysql学习笔记(二)--表格及数据的插入 文章目录 Mysql学习笔记(二)--表格及数据的插入 1.Mysql常用指令 2.创建表格 A.数据类型 B.完整性约束条件 3.查看表格 4.修改表格 ...
- [转载]dorado学习笔记(二)
原文地址:dorado学习笔记(二)作者:傻掛 ·isFirst, isLast在什么情况下使用?在遍历dataset的时候会用到 ·dorado执行的顺序,首先由jsp发送请求,调用相关的ViewM ...
- Ethernet/IP 学习笔记二
Ethernet/IP 学习笔记二 原文链接:http://wiki.mbalib.com/wiki/Ethernet/IP 1.通信模式 不同于源/目的通信模式,EtherNet/IP 采用生产/消 ...
- Mongodb使用学习笔记(二)
文章目录 Mongodb使用学习笔记(二)之查询篇 1. MongoDB命令学习 (1) MongoDB 查询文档 1.1 全部查询 1.2 单条件查询 1.3 多条件查询 1.3.1 AND拼接多条 ...
- StackExchange.Redis学习笔记(二) Redis查询 五种数据类型的应用
StackExchange.Redis学习笔记(二) Redis查询 五种数据类型的应用 原文: StackExchange.Redis学习笔记(二) Redis查询 五种数据类型的应用 Connec ...
最新文章
- qt 表格表头嵌入全选全不选_6个word表格基础操作,看了再说会不会
- 如何给localStorage设置一个过期时间?
- express get和post数据
- Scrapy爬虫(6)爬取银行理财产品并存入MongoDB(共12w+数据)
- windows启动管理器_win7系统任务管理器的五种打开方式,很实用,学习一下
- iOS 中strong,weak,copy,assign区别
- 全程软件测试之测试需求分析与计划(2)
- leetcode509. 斐波那契数
- cups共享linux打印机_linux入门-映射网络驱动器
- 不同的载体 不同的商业模式
- oracle技术之浅述当前模式读与一致性读
- 2022-2028年中国位置大数据行业市场专项调查及投资前景分析报告
- PC微信多开,超简单
- java uninstall tool_java卸载工具|java卸载工具(JavaUninstallTool)下载v1.1.0.0 - 欧普软件下载...
- MQ100门座起重机 双螺旋输送机总装图 减速机图纸 自动圆式焊机总装图 VF6-7空气压缩机曲轴加工工艺及夹具设计 组合机床工艺设计 RV蜗轮蜗杆减速机 90度皮带机运载机器人设计……
- Mysql第四天笔记01——常用函数
- ORACLE等待事件:read by other session
- [python] 基于matplotlib实现树形图的绘制
- 新能源汽车高压配电管理(PDU/BDU)
- python中try和expect