FDS软件的使用汪箭wangj@ustc.edu.cn中国科学技术大学火灾科学国家重点实验室第一部分FDS的简介FDS的简介FDS是由美国国家技术标准局NIST的建筑火灾研究室研究开发的场模拟软件。FDS程序是专门解决火灾动力学发展的大祸模拟通用程序,以独特的快速算法和适当的网格密度,可以较为快速准确地分析三维火灾问题。FDS程序可以借助其它三维造型软件和网格生成工具,处理较为复杂的几何场景。它除了可以解决火灾发生及烟气的发展和蔓延过程,还包含分析火灾探测器和水喷淋灭火系统的功能模块,可以研究相应的消防设施对于火灾发展的影响。同时,FDS具有开放的程序体系结构,良好的后处理能力,计算结果得到了较多实验的验证,并且在火灾安全工程领域得到广泛的应用。关于FDS和Smokeview的所有文件可以在以下地址获得:,在网页上可以找到关于新版本、缺陷修订等信息。(pyrosim)在此模型中,被模拟的房间或建筑被划分为若干小型三维矩形控制体积(Three-dimensionalRectangularControlVolumes)或计算元胞(ComputationalCell),其中计算的参数包括密度、速度、温度、压力和气体种类及浓度。根据质量守恒、能量守恒、动量守恒和物种平衡方程,FDS可用来模拟火灾气体和烟气的生成及运动。利用室内家具、地面材料、壁面材料及顶棚材料的热物理性质,FDS就可以计算火灾的发展和蔓延。FDS计算需要的输入值包括建筑结构的几何描述、计算元胞的尺寸、火源的位置、火源的热释放参数、室内地面/壁面/顶棚材料和家具的热性能参数、房室门窗的尺寸和位置以及开放状态和时间(对火灾发展和蔓延影响很大),其中室内材料的热性能参数又包括几何厚度(Thickness,m)、点燃温度(IgnitionTemperature,K)、单位面积的热释放速率(kW/m²)、热传导系数(ThermalConductivityCoefficient,W/m·K)和热发散系数(ThermalDiffusivity,m²/s),这些参数需要通过试验或者理论推导获得。利用FDS对建筑内火灾发生发展状况进行模拟的基本程序可归纳如下:FDS的特点到目前为止,模型约一半的应用用于烟气控制系统的设计和喷淋喷头或探测器启动的研究,另一半用于住宅和工厂火灾模拟。在整个的发展过程中,FDS的目的是在致力于解决防火工程中实际问题的同时为火灾动力学和燃烧学的基础研究提供一个工具。FDS的特点(一)流体动力模型FDS对于低速、热驱动流的定量计算使用那维尔-斯托克斯方程(粘性流体方程),其侧重于火灾产生的烟气和引起的热传导。核心运算是一个明确的预测校正方案,在时间和空间二阶上精确。湍流通过大涡流模拟(LES)的Smagorinsky来处理。如果基础的数值表足够清晰,则可进行直接数值模拟(DNS)。LES默认这种操作。FDS的特点(二)燃烧模型对大多数应用来说,FDS使用一个混合物百分数燃烧模型。混合物百分数是一个守恒量,其定义为起源于燃料的流动区给定点的气体百分数。模型假定燃烧是一种混合控制(mixing-controlled),且燃料与氧气的反应进行非常快。所有反应物和产物的质量百分数可通过使用“状态关系”――燃烧简化分析和测量得出的经验表达式由混合物百分数推导出。FDS的特点(三)辐射传输辐射传热通过模型中的非扩散灰色气体的辐射传输方程解决,在一些有限的情况下使用宽带模型。方程求解采用类似于对流传热的有限体积法,因而,命名为“有限体积法”(FVM)。选用约100个不连续的角度,由于辐射传热的复杂性,有限体积解算程序在一次计算中需占约15%的CPU处理时间。水滴能吸收热辐射,这在有细水雾喷头的场所起很大的作用,在其他设置喷淋喷头的场所也起到一定作用。这种吸收系数以Mie理论为基准。FDS的特点(四)几何结构FDS将控制方程近似为在直线的栅格(网格)上,因此用户在指定矩形障碍物时须与基础网格一致。多网格这是用来在一次计算过程中描述使用不止一个矩形的网格的一个术语。当使用单网格不易计算时,可采用多于一个的矩形网格。边界条件给定所有固体表面的热边界条件,以及材料的燃烧特性。通常,材料特性储存于一个数据库中并可用名称调用。固体表面的热量和质量转换通常可使用经验公式解决,但当执行直接数值模拟(DNS)时可直接进行估算。第二部分:FDS软件的使用一.FDS的运行FDS的运行需要用描述给定火灾场景的所有参数创建一个文本文件作为“输入”文件。后面的例子中数据文件为roomfire4.data,其中“roomfire4”代表可以确定模拟的任意特征,与计算相关的所有结果输出文件名都具备这一共有前缀。除了输入文件以外,还有一些包含模拟输入参数的外部文件。因为其包含描述一般材料和燃料的参数,每一个这样的文件被认为使“数据库”文件。通常数据库文件保存在一个独立的地址目录中。包含具体喷头信息的文件也随数据库文件一起保存,数据库和喷头文件可以进行修改或移动。创建FDS输入数据文件输入数据文件为程序提供描述火灾场景的参数。参数编进相关变量组中。例如:SURF组包含描述固体表面性质的参数。输入文件的每一行包含同组的参数,这些行用Fortran格式化语言写。每条记录以字符&开始,其后紧随名录组的名称(HEAD,GRID,VENT,等),接下来是该组的相关输入参数,最后以一个斜线结束。关于输入参数的细节在后面将详细介绍。启动FDS计算Windows操作系统下:进入dos运行界面,改变当前目录到FDS安装目录下,然后键入以下内容运行fds4jobname.datajobname为用户任意指定的算例名称,在输入文件中“jobname”字符串通常被指定为CHID。建议输入文件的命名和CHID相同,以便在一次运算中的相关文件名一致。FDS读取输入文件作为标准输入(用符号“”指明),并在屏幕上写出鉴别后的输出结果和计算进程。诊断信息自动写入一个CHID.out文件,屏幕输出信息将被写至这个文件。可以通过文本文档来查看CHID.out文件。Unix/Linux操作系统下:改变地址名录至当前例子的数据文件,然后键入以下内容运行:fds4job_name.data输入参数在标准输入中读取,错误陈述和其他诊断信息在屏幕中写出。在后台中运行:fds4job_name.datajob_name.err&注意,在以上的后一种情况中屏幕输出结果保存在输出文件jobname.err中,其详细的诊断信息自动在文件CHID.out中保存,其中CHID是一个字符串,通常在输入文件中名字是job_name。最好在后台运行以便不影响控制台进行其他工作。进展监控对于一个给定计算的诊断写入一个名为CHID.out的文件。这个文件将给出CPU使用和模拟时间,以便用户可以了解该程序的进展程度。在一次运算的任何时间都可以运行Smokeview直观地观测程序的进展。要在预定结束时间前停止运算,可以直接关闭程序,更好的方法是在同一个地址名录中创建一个CHID.stop文件。此文件的存在可以顺利的停止程序,并忽略Smokeview中为可视化存在的流动变量。因为计算可能会持续数小时或数天,FDS具备了重新起动功能。简单地说,即在计算运行的开始应指明重新起动文件的保存频率。如果发生意外打断计算,如停电,则计算将从最后一次保存的重新起动文件开始。错误陈述FDS计算可能会在用户预定地时限内结束,以下是常见错误陈述和诊断清单:输入文件错误:最常见的错误是输入误差,这些错误会导致程序即时中止并出现陈述如“ERROR:ProblemwiththeHEADline.”对于此类错误,检查错误陈述指明的输入文件中对应的行。确定参数名正确拼写;确定在记录句末有一斜线“/”;确定每个参数键入正确的信息;确定未使用非ASCII语言字符;确定省略号用于指定字符串;确定在Unix/Linux创建的文本文件不用于DOS环境,确定所有列出的参数都被使用――新版的FDS经常放弃或改变参数以强制用户对旧的输入文件检查。数值不稳定在FDS计算中,时间步长缩短引起的数值误差有可能引起某些位置流动速度的增加。其中,代码中的逻辑决定了结果的非物理性并且在CHID.out.文件中的一个错误就中止计算。在这种情况下,FDS将忽略最后的Plot3D文件中止,使用户可检查计算范围内的错误。通常,假定计算范围内的大速度向量起源于小区域时易得到不稳定的数值。这种不稳定性的通常原因是网格单元的长宽比大于2:1、高速流经过小开口、热释放速率的突变或者是流场内发生多个突变。依据不同的情况,解决的方法不同。应在报告之前尽量的诊断和修正问题,但这对于输入文件编写者以外的人员来说很难。计算机资源不足计算可能需要使用大于计算机RAM的空间,或者输出文件用完了所有的磁盘空间。在这种情况下计算机就不能保证产生有效的错误信息。有时计算机不能响应。用户应保证有足够的计算机资源运行计算。应注意,对于FDS计算没有多大和多长时间的限制,其取决于计算机的资源配置。对于开始任一新的模拟时都应尽量采用最合适的网格(grid),并在计算机允许范围内逐渐精炼,然后在规模上稍微缩小以便计算机可以顺利的运行。泊松初始化有时在运算的一开始就出现错误陈述“Poissoninitialization.”。在FDS中的压力方程是泊松方程,泊松解算包含一个在计算开始必须初始化的大的线性方程组,大多数情况初始化阶段的错误是因为控制格(grid)是少于四维的(2维计算的情况除外)。也有可能是在相关计算领域中的某些基础性错误。这种问题的解决,应检查输入文件的GRID和外形尺寸(PDIM)行。运行错误计算机操作系统或者FDS程序都有可能出错。计算机操作系统把错误信息在屏幕上打出或者写入诊断输出文件。大多数错误信息对于对于大多数人即使是程序员来说都是难以读懂的,但尽管如此,有时当涉及到一些具体细节还是可以获得一些启示,比如“stackoverflow,”“dividebyzero,”或“filewriteerror,unit=...”这些可能由于FDS得一些缺陷造成。例如,一个数字被0除、一个序列在分配之前使用或者其他得一些问题。在错误报告之前,应尽量简化输入文件消除错误。这一过程经常可明确计算特征并有利于故障排除。二.FDS的输入文本计算阶段的第一步是要形成一个输入文本,它提供了要考虑到的能描述情景的所有必要信息。最重要的输入文本限定了所有的长方形领域的物理尺度,限定了格子以及添加了几何学特征。第二步,火灾和其他边界条件必须详细说明。最后,有大量的参数,它限定了输入文本以致能获得许多重要的数量。输入的数据被写出的文本和被设计好的记录参数所限定。每行的开始是字符&紧接着参数群(开头、表格、开口等等),接着是一个空格或逗号,用来划分那个群组中正确的输入参数列,每一列用一个分隔符(/)终止。注意那些被列出的参数,它们仅仅需要在预设时被更改,输入文本的结构以下给出:&HEADCHID=’sample’,TITLE=’ASampleInputFile’/算例标题&GRIDIBAR=24,JBAR=24,KBAR=48/网格划分&PDIMXBAT0=-.30,XBAR=0.30,YBAR0=-.30,YBAR=0.30,ZBAR=1.2/给定计算区域&TIMETWFIN=10./计算时间&MISCRADIATION=.FALSE./&SURFID=’burner’,HRRPUA=1000./设定火源表面属性&OBSTXB=-.20,0.20,-.20,0.20,0.00,0.05,SURF_IDS=’burner’,’INERT’,’INERT’/建立障碍物,设定火源&VENTCB=’CBAT’,SURF_ID=’OPEN’/建立通风口&VENTCB=’ZBAR’,SURF_ID=’OPEN’/建立通风