FDS tools
Fire Dynamics Simulator (FDS) modeling helpers — mesh resolution sizing from the characteristic fire diameter D*, and a t-squared fire growth ramp generator with an exportable time-HRR table.
Each tool includes a Voici11Voici compiles a notebook to a static, serverless dashboard — mocked here as a static page, since this pipeline has no Jupyter kernel to run against. dashboard: a matplotlib-styled chart with the live input marked as a red point.
Grid size (mesh resolution) calculator
$$D^* = \left(\frac{\dot{Q}}{\rho_\infty c_p T_\infty \sqrt{g}}\right)^{2/5}$$
Cell size $\delta x = D^*/(D^*/\delta x)$ for the target resolution index. Cell counts are then rounded to the nearest 5-smooth number (factors of 2, 3, 5 only) per axis — the FFT-based Poisson solver in FDS runs fastest on mesh divisions of that form. Coarse/medium/fine correspond to $D^*/\delta x=4,10,16$. Source: NIST FDS User's Guide ("Mesh Resolution"); methodology after Kris Overholt's FDS mesh size calculator (fdstutorial.com).
| Coarse (D*/δx=4) | — | |
| Medium (D*/δx=10) | — | |
| Fine (D*/δx=16) | — |
HRR curve generator
$$\dot{Q}(t) = \begin{cases} \alpha t^2 & \text{growth} \\ \dot{Q}_{peak} & \text{steady} \\ \alpha (t_{end}-t)^2 & \text{decay} \end{cases}$$
The t-squared fire growth model ($\dot{Q}=\alpha t^2$, $\alpha$ in kW/s²) optionally extended with a steady phase at $\dot{Q}_{peak}$ and/or a decay phase. Decay mirrors growth at the same rate $\alpha$ — it is the growth parabola run backwards, so decay takes exactly as long as growth did. Pure growth can target either a specified HRR ($t=\sqrt{\dot{Q}_{peak}/\alpha}$) or a specified time. Source: NFPA 204 / NFPA 72 Annex B; growth methodology after Kris Overholt's t-squared Fire Ramp Calculator (tools.utfireresearch.com), based on a Matlab script by Randall McDermott.
import numpy as np, matplotlib.pyplot as plt t = np.linspace(0, t_final, 300) Q = np.where(t<tg, alpha*t**2, np.where(t<tg+ts, Qpeak, Qpeak*np.exp(-3*(t-tg-ts)/td))) plt.plot(t, Q); plt.scatter([t_mark],[Q_mark], color='red', zorder=3)
11.8 · Radiant heat flux (configuration factor)
$$\dot{q}''=\phi\cdot E$$
Solid-flame radiation model: the emitter is a finite rectangular radiating panel (a fire-involved window or facade), the receiver is a point at an arbitrary lateral offset (X,Y) and standoff distance Z. View factor φ found by decomposing the panel into four corner-aligned sub-rectangles from the receiver's foot-point (the point directly below/beside the receiver on the panel's plane) and summing signed corner-to-rectangle view factors — the standard superposition trick that works whether the receiver sits directly in front of the panel or off to one side. Each corner term uses the closed-form parallel differential-element-to-rectangle view factor (Hottel/Modest radiation view factor catalog). Source: firecalculators.com (Fire Engineering); solid flame/configuration-factor radiation model.
| Configuration (view) factor φ | — | |
| Incident radiant heat flux | — |
import numpy as np, matplotlib.pyplot as plt Z = np.linspace(0.2, 15, 200) phi = configuration_factor(Wp, Hp, X, Y, Z) # 4-corner superposition, closed-form plt.plot(Z, phi*E); plt.scatter([Z_input],[phi_input*E], color='red', zorder=3)