Fire Dynamics Simulator (FDS)

repository·master·Indexed 21 days ago

https://github.com/firemodels/fds

A large-eddy simulation (LES) code for modeling low-speed flows, smoke, and heat transport, accompanied by Smokeview (SMV) for visualization. The repository includes build configurations for various MPI versions and Fortran compilers, utilities like fds2ascii for output conversion, and Python tools for input file generation, mesh stretching, and simple chemistry calculations.

Tokens
12.5K
Snippets
40
Records
69
Agent score
75%

What's inside FDS

  1. Overview of PRISME FDS Input Files

    master

    This directory provides FDS input files used for simulating various fire scenarios within the PRISME project. PRISME (Fire Propagation in Elementary Multi-Room Scenarios) is an OECD/NEA joint international research project focused on fire propagation validation.

    The simulations in this directory address three primary research areas:

    1. Heat and smoke propagation: Moving from the fire room to adjacent rooms.
    2. Safety critical systems: Assessing the impact of heat and smoke on these systems.
    3. Ventilation networks: Evaluating how ventilation impacts the limitation of heat and smoke propagation.
  2. Overview of Fire Dynamics Simulator (FDS) and Smokeview (SMV)

    master

    The repository contains tools for fire and smoke simulation and visualization:

    • Fire Dynamics Simulator (FDS): A large-eddy simulation (LES) code designed for low-speed flows, specifically focusing on smoke and heat transport from fires.
    • Smokeview (SMV): A visualization program used to display simulation output from FDS and CFAST.

    For official documentation, downloads, and community support, refer to the FDS-SMV website or the specific release pages.

  3. Overview of fds2ascii

    master

    fds2ascii

    fds2ascii is a Fortran-based conversion tool designed to process Fire Dynamics Simulator (FDS) output files. It is used to read and convert the following file types:

    • Slice files (.sf)
    • Boundary files (.bf)
    • Plot3D files (.q)

    The tool is distributed with a makefile and organized directory structures to facilitate building the program across different operating systems.

  4. Access FDS input files for training classes

    master

    The Utilities/Training/ directory contains FDS input files specifically designed for use in training classes.

    Note on usage: These files are intended for educational purposes and produce qualitative results. They are not part of the formal Verification and Validation (V&V) suites, so they should not be used for high-fidelity validation or regulatory compliance tasks.

  5. Access FDS input files for NRC training simulations

    master
    The FDS_Input_Files directory contains Fire Dynamics Simulator (FDS) input files specifically designed for training simulations. These files correspond to the guidance provided in the U.S. Nuclear Regulatory Commission (NRC) document: "Nuclear Power Plant Fire Modeling Analysis Guidelines (NPP FIRE MAG) — Final Report", NUREG-1934.
  6. Understand MPI Scaling Test types in FDS

    master

    The FDS_Input_Files directory contains two types of MPI scaling tests used to evaluate how FDS performance scales with multiple MPI processes:

    1. Strong Scaling Tests (strong_scaling_test_N.fds):

      • These tests use a constant total number of grid cells divided into N meshes.
      • N represents the number of meshes and, typically, the number of MPI processes used.
      • Goal: As N increases, the total runtime should decrease. For example, N=001 uses 1 mesh/1 MPI process, while N=432 uses 432 meshes/432 MPI processes. Ideally, the 432-mesh case would run 432 times faster than the 1-mesh case, though real-world overhead prevents perfect linear scaling.
    2. Weak Scaling Tests (weak_scaling_test_N.fds):

      • These tests consist of N meshes, where each mesh is a 50x50x50 cell block, connected in a line along the x-direction.
      • Each case is run with N MPI processes.
      • Goal: As N increases (and the total problem size increases proportionally), the wall clock time per job should ideally remain constant.
  7. Customize the FDS Summary Web Page content

    master

    The FDS_Summary directory uses index_template.html as a template to generate the final index.html.

    firebot automatically copies PNG images to the following subdirectories:

    • images/user
    • images/verification

    Note: The template index_template.html only references a subset of these images. If you want to display additional images in the summary, you must manually add the desired links to index_template.html and then rerun firebot.

    firebot will not modify index_template.html directly; it copies the template to index.html and injects the current date and FDS/SMV repository revisions during the process.

  8. Understand FDS build configuration naming conventions

    master

    Build folders are organized using specific suffixes and attributes to define the executable's capabilities. When selecting a build, use the following naming logic:

    MPI Versions

    • impi: Intel MPI
    • ompi: Open MPI

    Fortran Compilers

    • intel: Intel Fortran
    • gnu: GNU Fortran

    Operating Systems

    • windows, linux, mac_os_x

    Optimization/Build Modes

    • (no suffix): Release version
    • db: Debug mode
    • dv: Low level of optimization

    Parallelism

    • openmp: Indicates the executable was built with OpenMP directives.
      • Note: All builds using the gnu compiler include OpenMP by default.
      • Note: Using OpenMP with the intel compiler may incur an overhead tax of approximately 20%.
  9. Generate FDS input files for High Energy Arc Fault simulations

    master

    The High Energy Arc Fault (HEAF) simulations use a template-based approach to generate multiple FDS input files. Each subdirectory contains a single FDS input file that acts as a template. To generate the full set of input files for a specific simulation case, you must use the swaps.py script located in Utilities/Input_File_Tools.

    Process:

    1. Navigate (cd) into the target subdirectory containing the template.
    2. Run the swaps.py script using the relative path to the utility.
    3. The script reads paramfile.csv within that directory. The first row and column of this CSV file specifies the name of the template file. The script then replaces dummy arguments in the template with the parameter values defined in paramfile.csv to create the complete set of input files.

    Warning: These simulations are prone to numerical instability due to the rapid energy release from concentrated sources.

    python ../../../Input_File_Tools/swaps.py
  10. Generate USFS/Catchpole experiment input files

    master

    To reproduce the 354 USFS/Catchpole experiments described in Catchpole et al. (1998), use the generate_files.py Python script. This script automates the creation of individual FDS input files by applying parameter replacements from Test_Matrix.csv to a base template file named template.txt.

    Workflow:

    1. Ensure template.txt (the generic base input file) and Test_Matrix.csv (containing the experiment parameters) are present in the directory.
    2. Run the generate_files.py script to generate the 354 individual input files.
    # Note: The specific command to run the script is not provided in the source, but the workflow is:
    python generate_files.py