Sign inSign up

satcomx00/fds

By satcomx00

•Updated 5 months ago

MPI and Security focused repo for FDS versions. (the fire thing)

Image
Integration & delivery
Data science
2

4.6K

satcomx00/fds repository overview

⁠Fire Dynamics Simulator (FDS) Dockerfiles

Fire Dynamics Simulator (FDS) is a large-eddy simulation (LES) code for low-speed flows. This repository contains Dockerfiles for the Fire Dynamics Simulator (FDS) by NIST, aimed at providing a convenient and consistent FDS simulation environment across various operating systems.

Note: This image is maintained independently and is not officially provided by NIST.

⁠Docker Repository

All versions of the FDS Docker image can be found at satcomx00/fds on Docker Hub⁠.

⁠Supported Tags

The Docker image supports several tags, each corresponding to different versions of FDS. You can pull the latest version using the latest tag, or specify a version directly (e.g., 5.5.3, 6.5.3, etc.).

FDS-Version (Tag)LinuxWSL 2 (Windows) / Hyperkit (Mac OS) *1
6.8.0, latest✅✅
6.7.9✅✅
6.7.8✅✅
6.7.7✅✅
6.7.6✅✅
6.7.5✅✅
6.7.4✅✅
6.7.3✅✅
6.7.1☑️ *2☑️ *2
6.7.0✅❌
6.6.0✅❌
6.5.3☑️ *2☑️ *2
6.3.0☑️ *2☑️ *2
6.2.0☑️ *2☑️ *2
5.5.3✅✅

*1 Running with Docker Desktop based on Hyperkit (Mac OS) or WSL 2 (Windows) which are lightweight virtualization solutions for Linux Docker containers.

*2 Running with warning⁠. This should not affect the functionality of FDS.

⁠Prerequisites

  • Docker installed on your system
  • Basic knowledge of Docker command-line tools
  • Understanding of FDS simulations if running specific simulation tasks

⁠Installation

Pull the Docker image from Docker Hub:

docker pull satcomx00/fds:latest

⁠Usage

⁠Basic Testing

To test if FDS is working properly (without running a simulation):

docker run --rm satcomx00/fds fds

To test a specific version:

docker run --rm satcomx00/fds:6.7.3 fds
⁠Running Simulations

To run an FDS simulation, you'll need to provide several environment variables and mount your working directory:

docker run --rm \
  -e FDS_FILE_PATH="/workdir/simulation.fds" \
  -e MPI_PROCESSES=4 \
  -e OMP_NUM_THREADS=2 \
  -e INPUT_ARCHIVE_DIR="/workdir/output" \
  -v $(pwd):/workdir \
  satcomx00/fds:latest fds /workdir/simulation.fds
⁠Required Environment Variables
VariableDescription
FDS_FILE_PATHPath to your FDS input file
MPI_PROCESSESNumber of MPI processes to use
OMP_NUM_THREADSNumber of OpenMP threads per MPI process
INPUT_ARCHIVE_DIRDirectory to be archived after simulation
⁠OpenMP Configuration

The container automatically configures OpenMP with the following settings:

  • OMP_PROC_BIND="close" - Binds threads close to the master thread
  • OMP_PLACES="cores" - Places threads on physical cores
  • OMP_DYNAMIC="FALSE" - Disables dynamic adjustment of threads
  • OMP_SCHEDULE="static" - Uses static scheduling policy
⁠Output

After simulation completion, the container will create a zip archive containing the simulation results. The archive will be named <simulation_name>-output.zip and will be located in your mounted working directory.

⁠Container Specifications

  • Unlimited stack size for MPI optimization
  • Unlimited virtual memory for MPI optimization
  • Automatic zipping of output folder

⁠Notes

  • The FDS input file must contain a &HEAD CHID= parameter
  • The container uses hybrid parallelization with MPI and OpenMP
  • Total cores used = MPI_PROCESSES × OMP_NUM_THREADS
  • All paths in environment variables should be relative to the container's /workdir directory

⁠Support

For issues and feature requests, please visit the GitHub repository⁠.

Tag summary

Content type

Image

Digest

sha256:bb3ea8616…

Size

276.6 MB

Last updated

5 months ago

docker pull satcomx00/fds:6.7.7