How long does an FDS simulation take, and why
fdsrun editorial team · · 5 min read
Cell count, time step, T_END and the split into processes: what drives FDS run time and how to estimate it before you start.
FDS run time breaks down into two factors: the number of time steps needed to reach T_END, and the duration of one step. The first depends on cell size and flow velocity, the second on how many cells sit on the busiest process. Once you understand both, it is easy to tell whether a model will finish in an hour or in three days.
1. How many time steps: the CFL condition
FDS uses an explicit scheme, so the time step must be small enough that the fluid does not cross more than one cell per step. This is the Courant–Friedrichs–Lewy (CFL) condition: CFL = δt·|u|/δx < 1. By default FDS keeps CFL between 0.8 and 1.0 and adjusts the step during the run; the initial step comes from the smallest cell size and the characteristic plume velocity (FDS User Guide, sections 6.2.2 and 19.3.1).
In practice:
- smaller cells = smaller step. A 10 cm cell with velocities around 5 m/s gives a step of about 0.02 s, so 600 s of simulation is about 30,000 steps;
- fast jets shorten the step for the whole model — mechanical ventilation with high supply velocities or a very large fire can cut the step several times;
- T_END is linear — twice the simulated time means twice the steps.
2. How long one step takes: cells on the slowest process
Every step FDS updates every cell. When the model is split into several meshes and MPI processes, they compute in parallel, but at the end of each step they wait for the slowest one. So the pace is set not by the total cell count but by the cells on the busiest process (more in the guide on multiple meshes and MPI).
In our measurements (FDS 6.10.1, cloud servers in the EU) one time step took on average about 3–4 µs per cell of the busiest process. That is a good reference for a quick estimate.
3. Example: an estimate in one minute
Model: 1,000,000 cells of 10 cm, 10 meshes of 100,000 cells, 10 MPI processes, T_END=600.
- step: about 0.02 s → 600 s / 0.02 s = 30,000 steps;
- one step: 100,000 cells × 3.5 µs ≈ 0.35 s;
- total: 30,000 × 0.35 s ≈ 10,500 s ≈ 2.9 h.
The same model on one mesh and one process: 1,000,000 × 3.5 µs = 3.5 s per step, about 29 h.
4. Why halving the cell size costs so much
Halving the cell size means 8 times more cells (three dimensions) and roughly a 2 times smaller step. Together that is about 16 times longer on the same number of processes. That is why resolution deserves a deliberate choice — see cell size and D*/δx — with fine meshes only where they are needed (around the fire) and the rest of the domain on coarser meshes at a 2:1 ratio.
5. How to shorten the run without losing quality
- Split the model into meshes with similar cell counts and run as many processes as meshes (or group small meshes on one process).
- Do not simulate longer than the scenario needs — set
T_ENDto what the assessment requires (for example the evacuation time with a margin), not "just in case". - Avoid very small cells at fast supply vents — they most often dictate the time step in car parks and tunnels.
- Add
DT_RESTARTto&DUMP— after a machine failure you resume from the last save instead of from zero. - Check the file before the run — an error found after 10 hours of computing is the most expensive one.
Estimate versus reality
Every forecast has a spread: the time step changes during the simulation (fire growth, ventilation start-up), and on shared servers the pace can vary by tens of percent. The most reliable figure comes from the first minutes of the run — CHID.out reports the time step and simulated time, and fdsrun recalculates the forecast from it while the job runs.
More guides
Sources: FDS User Guide (NIST SP 1019), sections 3.3.1, 6.2.2, 19.3.1; fdsrun measurements. FDS and Smokeview are software of the National Institute of Standards and Technology; NIST is not affiliated with fdsrun.