Fire Dynamics Simulator (FDS) 是一款由美国国家标准与技术研究院(NIST, National Institute of Technology)开发的开源计算流体动力学(CFD)软件,专门用于模拟火灾中的烟气流动、热传递和燃烧过程。它广泛应用于建筑防火工程、消防研究、疏散设计、风险评估等领域。


一、FDS 简介

1.1 基本信息

  • 全称:Fire Dynamics Simulator
  • 开发者:美国国家标准与技术研究院(NIST)
  • 开源协议:Public Domain(免费、开源)
  • 编程语言:Fortran(核心),支持 Python 等脚本辅助
  • 平台支持:Windows, Linux, macOS
  • 最新版本:截至2024年,FDS 7.x 是主流版本(建议使用 FDS 7.8+)

1.2 核心功能

FDS 采用大涡模拟(LES, Large Eddy Simulation)方法,专注于低速、热驱动流场,特别适合模拟火灾场景:

  • 烟气流动与分层
  • 温度场与热辐射传播
  • 可燃物燃烧与热释放速率(HRR)
  • 喷淋系统、排烟系统、挡烟垂壁等消防设施效果
  • 人员疏散路径的烟气能见度与毒性分析(需配合 Smokeview 和 Pathfinder)

1.3 配套工具

  • Smokeview (SMV):FDS 的可视化后处理工具,用于查看模拟结果(烟雾、温度、速度矢量等)。
  • PyroSim(商业软件):提供图形化界面,简化 FDS 模型构建。
  • fds2ascii / fds2matlab:数据导出工具,用于后处理分析。
  • fds+evac:FDS 的扩展模块,支持人员疏散模拟(与 Pathfinder 功能类似)。

二、FDS 输入文件结构(.fds 文件)

FDS 使用纯文本输入文件(扩展名为 .fds),通过关键字(&HEAD, &MESH, &VENT, &OBST, &SURF, &DEVC 等)定义模拟场景。

2.1 基本结构示例

&HEAD CHID='room_fire', TITLE='Simple Room Fire Simulation' /

&MESH IJK=20,15,10, XB=0.0,4.0,0.0,3.0,0.0,2.0 /

&TIME T_END=300.0 /

&MATL ID='GYPSUM'
      SPECIFIC_HEAT=1.0,
      CONDUCTIVITY=0.17,
      DENSITY=700.0 /

&SURF ID='WALL',
      COLOR='GRAY 80',
      MATL_ID='GYPSUM',
      THICKNESS=0.015 /

&OBST XB=0.0,4.0,0.0,0.1,0.0,2.0, SURF_ID='WALL' / 墙壁

&VENT XB=1.5,2.5,0.0,0.0,0.0,0.5, SURF_ID='BURNER' / 火源

&SURF ID='BURNER',
      COLOR='RED',
      HRRPUA=1000.0 /  热释放率 1000 kW/m²

&DEVC XB=2.0,2.0,1.5,1.5,1.0,1.0, QUANTITY='TEMPERATURE', ID='Thermocouple' /

&TAIL /

2.2 常用关键字说明

关键字 说明
&HEAD 定义案例名称和标题
&MESH 定义计算网格(最重要!需合理划分)
&TIME 设置模拟时长
&OBST 定义障碍物(墙体、家具等)
&VENT 定义通风口或火源(通过 SURF_ID 关联)
&SURF 定义表面属性(材料、燃烧特性、边界条件)
&DEVC 定义测量设备(温度、速度、能见度等)
&SLCF 输出切片数据(Slice File),用于 Smokeview 可视化
&BNDF 输出边界数据

三、FDS 使用步骤

步骤1:安装软件

  • 下载地址:https://pages.nist.gov/fds-smv/downloads.html
  • 包含 FDS + Smokeview + 文档 + 示例
  • Windows 用户可直接安装;Linux/macOS 需编译或使用预编译包

步骤2:构建模型

  • 方法1:手动编写 .fds 文件(适合学习和小模型)
  • 方法2:使用 PyroSim(商业软件,图形化建模,适合工程应用)
  • 方法3:使用 BlenderFDS 插件(开源,基于 Blender)

步骤3:运行模拟

在命令行中执行:

fds room_fire.fds

或使用 PyroSim 的“Run FDS”按钮。

注意:首次运行建议使用小网格测试,避免计算时间过长。

步骤4:结果可视化(Smokeview)

smokeview room_fire

Smokeview 支持播放动画、查看切片、探针数据、粒子轨迹等。


四、关键技巧与注意事项

4.1 网格划分(最重要!)

  • FDS 对网格分辨率敏感,尤其是火源附近
  • 建议火源区域网格 ≤ 0.1m,其他区域可适当放宽
  • 使用多个 &MESH 可实现局部加密(Multi-mesh)

示例:

&MESH IJK=40,30,20, XB=0.0,4.0,0.0,3.0,0.0,2.0, MPI_PROCESS=0 /
&MESH IJK=20,20,20, XB=1.5,2.5,0.5,1.5,0.0,1.0, MPI_PROCESS=1 /

4.2 火源建模

  • 使用 HRRPUA(热释放率密度)或 RAMP_Q(随时间变化的热释放率)
  • 可导入真实 HRR 曲线(如锥形量热仪数据)
&RAMP ID='fire_ramp', T=0.0, F=0.0 /
&RAMP ID='fire_ramp', T=60.0, F=1.0 /
&RAMP ID='fire_ramp', T=300.0, F=0.0 /

&SURF ID='fire_surf', HRRPUA=2000., RAMP_Q='fire_ramp' /

4.3 边界条件

  • 默认为 OPEN(开放边界)
  • 可设置为 PERIODIC, MIRROR, HVAC
  • 外墙建议设为 INERT 或指定热属性

4.4 输出控制

  • 使用 &DEVC 记录点数据
  • 使用 &SLCF 输出平面切片(温度、速度、能见度等)
  • 使用 DT_DEVC, DT_SLCF 控制输出频率,避免文件过大

五、典型应用场景

  1. 建筑中庭火灾烟气蔓延模拟
  2. 地铁隧道排烟系统效能评估
  3. 仓库高架存储火灾风险分析
  4. 住宅火灾发展与探测器响应时间
  5. 高层建筑外立面火灾竖向蔓延(如幕墙火灾)
  6. 喷淋系统灭火效果模拟(需启用 sprinkler 模型)

六、学习资源推荐

  • 官方手册(必读!):

    • FDS Technical Reference Guide(理论)
    • FDS User’s Guide(操作)
    • Smokeview User’s Guide
    • 下载地址:https://github.com/firemodels/fds/tree/master/Manuals
  • 示例案例库

    • 安装包自带 Examples 文件夹(涵盖各种场景)
    • GitHub: https://github.com/firemodels/fds
  • 在线教程

    • NIST 官方培训视频(YouTube)
    • PyroSim 官网教程(https://www.thunderheadeng.com/pyrosim/learning/)
    • B站/YouTube 搜索 “FDS 教程” 有很多中文视频
  • 论坛与社区

    • FDS Google Group(活跃):https://groups.google.com/g/fds-smv
    • CSDN、知乎、ResearchGate 也有大量讨论

七、常见问题(FAQ)

Q1:模拟运行太慢怎么办?

  • 降低网格分辨率(尤其远离火源区域)
  • 减少输出频率(DT_SLCF=10 而非 1)
  • 使用 MPI 并行计算(多核/多机)

Q2:Smokeview 显示空白或报错?

  • 检查 .smv 文件是否生成
  • 确保路径无中文或特殊字符
  • 更新 Smokeview 到最新版

Q3:如何模拟真实材料燃烧?

  • 定义 MATLSURF,设置热解参数(需查阅文献或实验数据)
  • 使用 MLRPUA(质量损失率)或耦合热解模型(如 PYRO3D

八、总结

FDS 是目前全球最权威、应用最广泛的火灾数值模拟工具,具有物理模型严谨、开源免费、社区活跃等优势。虽然学习曲线较陡(需掌握 CFD 基础、Fortran 风格输入语法),但一旦掌握,可极大提升火灾风险评估和消防工程设计的科学性。

建议学习路径:官方手册 → 简单示例 → PyroSim 建模 → 复杂案例 → 参与社区讨论


如需具体案例建模指导或错误排查,可提供 .fds 文件内容或错误日志,我可以进一步协助分析。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐