工程师火灾模拟/FDS/运行 FDS
本章解释如何获取、安装和运行 FDS 和 Smokeview。解释涵盖了 Fedora Linux、Ubuntu Linux 和 Windows XP。
有关如何下载可执行文件、手册、源代码和相关实用程序的详细说明的主要资源是 FDS-SMV 网站
• http://firemodels.github.io/fds-smv/
FDS 有两个独立的 手册
• FDS5 技术参考
• FDS5 用户指南。
FDS5 技术参考指南分为三个卷
• 数学模型;
• 验证;
• 实验验证。
Smokeview 有自己的 手册
• Smokeview 用户指南。
FDS 和 Smokeview 用户指南仅描述使用计算机程序的机制。技术参考指南提供了理论、算法细节以及验证和验证工作。
除了 FDS 手册外,互联网上还有可用的资源。这些包括一个问题跟踪器,允许您报告错误、功能请求并提出具体的澄清问题,以及小组讨论,它支持比仅解决特定问题更广泛的主题。
在使用这些在线资源之前,重要的是首先尝试通过执行简单的测试计算或调试输入文件来解决您自己的问题。
FDS 拥有一个独立开发的图形用户界面,名为 BlenderFDS
有关更多信息,请参阅特定章节 [cha:BlenderFDS]。
FDS 和 Smokeview 的每个版本都由版本号标识,例如 FDS_5.0.1 或 SMV_5.0.1,其中第一个数字是主要版本 (5),第二个数字 (0) 是次要版本,第三个 (1) 表示维护版本号。
作为一般模式,主要版本大约每年发布一次。顾名思义,它们会极大地改变模型的功能或能力。次要版本每隔几个月发布一次,可能会导致功能发生细微变化。维护版本发布更为频繁,只是错误修复或小幅改进,不应影响代码功能。发行说明可以帮助您决定更改是否应影响您通常执行的应用程序类型。
FDS 需要一个或多个快速 CPU 和大量的随机存取存储器 (RAM) 才能有效运行。对于最低规格,系统应至少具有 1 GHz CPU 和 1 GB RAM。CPU 速度将决定计算完成所需的时间,而 RAM 容量将决定内存中可以容纳多少个网格单元。
1 GB RAM 可以容纳大约 106 个单元。为了理解物理意义,当用 10 厘米边的立方单元离散化时,一个 20 米 x 10 米 x 5 米 的计算域包含 106 个单元。
需要一个大型硬盘来存储计算的输出结果。单个计算的输出结果通常会占用数千兆字节的存储空间。
Smokeview 需要一个 OpenGL 显卡。查找专门列出您打算使用的操作系统对 OpenGL 支持的显卡。
FDS 可以执行串行和并行计算
串行计算在一个仅使用当前多核 CPU 中的一个内核的单个进程中执行。
并行计算将计算负担分配给许多进程,这些进程可以分配给许多不同的内核或 CPU。这些 CPU 可以驻留在单个工作站上,也可以驻留在网络计算机集群中。
设置计算机集群是一项复杂的任务,超出了本手册的范围。
这些说明需要您具备 Fedora Linux 的基本知识。
Fedora 有几种不同的版本,这里假设使用的是 64 位工作站版本。
64 位版本能够访问比 32 位版本(超过 4 GB)更多的 RAM 内存。32 位版本限制为 4 GB RAM 内存。
要在 Fedora Linux 系统上安装 FDS 和 Smokeview,首先,您可以从 网站 的下载页面下载最新版本的 Linux 预编译 FDS 和 Smokeview,或者通过克隆 存储库 自己进行编译。如果使用预编译版本,请按照 [1] 中的说明进行操作。如果自行编译,请确保您拥有 Fortran 编译器,然后如果您想启用多处理器支持,请安装 [2](如果您希望使用其他 MPI 库,则需要更改源代码中的安装脚本)。最后,编译您从 存储库 克隆的代码。预编译版本会自动修改您的路径,以确保启动火灾动力学模拟器变得容易,而如果您自己编译代码,则需要自己执行此操作。
这些说明需要您具备 Ubuntu Linux 计算机的基本知识。
Ubuntu Linux 操作系统有两种基本版本
Ubuntu Linux 32 位,可以在任何类型的计算机上安装。
Ubuntu Linux 64 位,可以在所有具有 AMD64 扩展的 AMD 64 位 CPU 和所有具有 EM64T 扩展的 Intel CPU 上安装。
64 位版本能够访问比 32 位版本(超过 4 GB)更多的 RAM 内存。32 位版本限制为 4 GB RAM 内存。
请注意,Smokeview 在配备良好专用显卡的系统上运行效果更佳。一些廉价的显卡可能会阻止你在 Linux 上使用它。
首次安装
[edit | edit source]要在 Ubuntu Linux 系统上安装 FDS 和 Smokeview,首先,从官方网站的下载页面下载最新版本的预编译 FDS 和 Smokeview for Linux。根据你的 Ubuntu 版本,下载 FDS 发行版的 32 位或 64 位压缩存档。
下载到你的电脑后,通过右键点击其图标并选择上下文菜单中的“在此处提取”来提取存档。
然后,将提取的 FDS 文件夹移动到你的首选位置,例如你的主目录。在我的情况下,FDS 文件夹的最终路径将是 /home/egissi/FDS,因为 /home/egissi 是我的主文件夹。
之后,通过在 Nautilus 文件浏览器中选择“查看”->“显示隐藏文件”菜单,查看你的主文件夹的隐藏文件。在你的主目录中找到 .bashrc 文件,并通过双击其图标打开它进行编辑。
将以下文本追加到编辑器窗口中的 .bashrc 文件中
### FDS and Smokeview environment # Actual path to FDS folder FDS=/home/egissi \leftarrow set your actual path here echo "FDS setup ($FDS)" # Setting limits ulimit -s unlimited ulimit -v unlimited # Setting executable and library paths export PATH=$PATH:$FDS/FDS5/FDS/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$FDS/FDS/FDS5/bin/lib32 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$FDS/FDS/FDS5/bin/lib64
编辑强调的行,并设置你实际的 FDS 文件夹路径。之后,保存 .bashrc 文件并关闭文本编辑器。
通过选择“系统”->“管理”->“Synaptic 包管理器”菜单打开 Synaptic 包管理器,并安装
在 Ubuntu Linux 32 位上:lam-runtime 软件包;
在 Ubuntu Linux 64 位上:lam-runtime 和 ia32-libs 软件包。
Ubuntu Linux 会为你处理所有必要的软件依赖项。
关闭你的会话并重新登录,以使环境修改生效。你的 Ubuntu Linux 系统现在已准备好执行多核或多 CPU 工作站上的串行和并行模拟。
安装新版本
[edit | edit source]安装新版本的 FDS 和 Smokeview 时,只需删除旧的 FDS 文件夹即可。下载新版本后,提取新的 FDS 文件夹并将其拖放到与之前相同的位置。
你的 Ubuntu Linux 系统现在已准备好使用新版本执行串行和并行模拟。
编译优化后的二进制文件
[edit | edit source]由于 FDS 是开源软件,用户始终可以下载最新版本的 FDS 源代码,并使用 Fortran 90 和 C 编译器自行编译。直接编译通常用于获取针对特定硬件和平台优化的 FDS 二进制文件,并充分利用其速度。
编译是一项复杂的任务,不在本手册的范围内。
执行计算
[edit | edit source]使用 FDS 和 Smokeview 的典型流程是
1. 设置 FDS 输入文件,例如 mycase.fds,并将其放在文件夹中,例如 mycase 文件夹。请参阅以下章节以了解如何操作。
2. 在输入文件上运行 FDS。FDS 启动并在 mycase 文件夹中创建许多输出文件。
3. 在 FDS 运行时,监视计算的进展。
4. 使用 Smokeview 分析生成的输出文件。
在 Windows XP 上安装
[edit | edit source]要在 Windows XP 系统上安装或重新安装 FDS 和 Smokeview,请从官方网站下载 Windows 安装包。
Windows 文件是一个自解压压缩存档,它将在 Program Files/FDS 文件夹中安装 FDS、Smokeview 和所有相关文件。
通过双击下载的文件启动安装。
在安装过程结束时,你的 Windows XP 系统已准备好执行串行计算。
在 Fedora Linux 上运行串行 FDS
[edit | edit source]在 Fedora Linux 计算机上,打开一个终端窗口。然后,如果使用预编译版本,执行以下命令之一
fds mycase.fds
如果不能确定,只需查看 FDS/FDS6/bin 文件夹以发现 FDS 二进制文件的正确名称。
然后模拟开始,其进度由写入屏幕的诊断输出指示。
在 Ubuntu Linux 上运行串行 FDS
[edit | edit source]在 Ubuntu Linux 计算机上,选择“应用程序”->“附件”->“终端”菜单以打开命令提示符。使用 cd 命令移动到 mycase 文件夹,该文件夹是案例的输入文件所在的文件夹。
然后执行以下命令之一
在 Ubuntu Linux 32 位上:fds5_intel_linux_32 mycase.fds
在 Ubuntu Linux 64 位上:fds5_intel_linux_64 mycase.fds
如果不能确定,只需查看 FDS/FDS5/bin 文件夹以发现 FDS 二进制文件的正确名称。
然后模拟开始,其进度由写入屏幕的诊断输出指示。
在 Windows XP 上运行串行 FDS
[edit | edit source]设置好输入文件后,打开一个命令提示符窗口:选择“开始”->“运行”菜单,然后输入 cmd。使用 cd 命令移动到 mycase 文件夹,该文件夹是案例的输入文件所在的文件夹。
然后通过输入以下命令运行代码
fds5 mycase.fds
其中 fds5 是 FDS 二进制文件的名称,mycase.fds 是输入文件名。
串行计算开始,其进度由写入屏幕的诊断输出指示。
在 Fedora Linux 上运行并行 FDS
[edit | edit source]并行计算机的配置方式可能大相径庭,因此很难提供适用于所有配置的指南。
在 Fedora Linux 计算机上使用已安装的 OpenMPI,执行并行计算的典型命令是
mpirun -np 4 fds6_mpi_gnu_linux_64 mycase.fds
二进制文件的具体名称将取决于编译选项。在许多情况下,MPI 仍然可以有效地加快多核笔记本电脑/台式机/工作站上的计算速度。因此,在串行模拟正常运行后,用户应该尝试使用此模型。有关在集群上运行的更多说明,请访问 [3]。
在 Ubuntu Linux 上运行并行 FDS
[edit | edit source]FDS 使用消息传递库 (MPI) 进行并行计算。
MPI 是一种与语言无关的通信协议,用于对并行计算机进行编程。它支持点对点通信和集体通信。MPI 的目标是高性能、可扩展性和可移植性。MPI 是当今高性能计算中使用的主流模型。
FDS 的单版本和并行版本的输入文件相同。事实上,建议在进行并行处理之前,你应该以串行模式运行你的输入文件,以确保它设置正确。
要以并行模式运行 FDS,你必须将计算域分解为多个网格,以便将工作负载分配到可用处理器之间。
为了使并行版本正常工作,每个网格中的单元数必须相当,否则大多数计算机将闲置等待拥有最大网格的计算机完成每次时间步长的处理。
在配置好的 Ubuntu Linux 计算机上,输入以下命令执行并行计算
在 Ubuntu Linux 32 位上
lamboot -v mpirun -np 4 fds5_mpi_intel_linux_32 mycase.fds lamhalt -v
在 Ubuntu Linux 64 位上
lamboot -v mpirun -np 4 fds5_mpi_intel_linux_64 mycase.fds lamhalt -v
lamboot 命令启动 MPI 环境。
mpirun 命令启动 MPI 应用程序,在本例中为 fds5_mpi_intel_linux_32 或 fds5_mpi_intel_linux_64,其中 -np 4 是启动的进程数。进程数必须与跨越输入案例的计算域的网格数相匹配。
计算结束后,MPI 服务器将使用 lamhalt 命令安全停止。
监视进度
[edit | edit source]给定计算的诊断信息会写入一个名为 mycase.out 的文本文件,该文件位于 mycase 文件夹中。此文件中包含 CPU 使用率和模拟时间,您可以通过它来监控程序的进度。
应用程序 System->Administration->Gnome System Monitor 是一个进程查看器,它可以动态实时地显示正在运行的系统。
停止计算
[edit | edit source]要在计划时间之前停止计算,请在 mycase 文件夹中创建一个名为 mycase.stop 的空文件。此文件的单纯存在会优雅地停止程序,使其将最新的流变量转储出来以便在 Smokeview 中查看。
由于计算可能需要数小时甚至数天的时间,因此可以通过在 fds 文件中添加
&MISC RESTART=.TRUE.
来重新启动 FDS。有关更详细的信息,请参见 FDS 用户指南。
可视化结果
[edit | edit source]Smokeview 在模型运行之前、期间和之后都会使用
• 在运行之前,检查输入数据;
• 在运行期间,监控模拟的进度;
• 在后处理步骤中,在计算完成后可视化 FDS 数据。
在 Windows XP 上,可以通过双击 case 文件夹中名为 mycase.smv 的文件来启动 Smokeview。
在 Ubuntu Linux 上,通过在命令提示符中键入以下命令来运行 Smokeview
在 Ubuntu Linux 32 位系统上:smv5_linux_32 mycase.smv
在 Ubuntu Linux 64 位系统上:smv5_linux_64 mycase.smv
如果不确定,只需查看 FDS/FDS5/bin 文件夹即可找到 Smokeview 二进制文件的正确名称。
在 Smokeview 中,可以通过右键单击图形窗口来访问菜单。可以使用 Load/Unload 菜单读取要可视化的数据文件。可以使用 Show/Hide 菜单更改可视化的显示方式。
大多数情况下,菜单选项都是不言自明的。如有需要,有关使用 Smokeview 的帮助,请参见[Smokeview 用户指南]。
输出文件
[edit | edit source]FDS 在 mycase 文件夹中写入许多输出文件
诊断输出:mycase.out 文件包含输入参数列表和各种重要数量的统计信息,包括 CPU 使用率。
热释放率及相关数量
火灾的 HRR(热释放率)以及其他全局能量相关数量会自动写入名为 mycase_hrr.csv 的文本文件中。
设备输出数据:与特定设备(连接温度、烟雾遮挡、热电偶等)相关的数据以逗号分隔格式输出到名为 mycase_devc.csv 的文件中,以及许多其他类型的文件,这些文件由 Smokeview 用于可视化。
以逗号分隔格式的文件可以轻松导入 Openoffice.org Calc 或 Microsoft Excel 以进行进一步分析。