fdspp
is a pre-processor for FDS.
One of the primary purposes is to automatically distribute meshes to MPI process depending on their size. For example, do distribute meshes amongst 4 MPI process run the following:
$ fdspp input.fds new-input.fds --n-mpi-4 # Allocate the meshes
MPI Mesh Allocation
MPI_PROCESS 0: TOTAL: 1476096 [1476096]
MPI_PROCESS 1: TOTAL: 1476096 [1476096]
MPI_PROCESS 2: TOTAL: 1127744 [403200, 201600, 162944, 134400, 128000, 44000, 32000, 21600]
MPI_PROCESS 3: TOTAL: 1139552 [352000, 246400, 172800, 131200, 81472, 59904, 33600, 30800, 16400, 14976]
MPI Cell Count Variation: +/- 13.38
$ mpiexec -np 4 fds new-input.fds # Run the modified input file
RPM binaries for Linux and MSI for Windows are provided on the releases page. Alternatively, fdspp
can be built from scratch using cargo. Checkout the repository and install as follows:
cargo install --locked --path .