Nodal Pressure Network Analysis
The Mathematical Engine Behind SootSafe
Abstract
Fire-safety ventilation systems must maintain precise pressure differentials across compartment boundaries during a fire event. Verifying that a designed system meets those requirements requires solving a system of non-linear equations that couples fluid resistance, air density, and fan performance across the full building network. This paper describes the mathematical model and numerical method used by SootSafe to perform that calculation.
1. The Physical System
A ventilated building can be modelled as a directed graph. Rooms, shafts, and outdoor reference points become nodes (junctions). Ducts, leakage paths, fans, and dampers become edges (branches). At steady state, the pressure at every junction is uniquely determined by two physical laws operating simultaneously:
- Mass conservation at each junction — mass flow in equals mass flow out.
- Resistance law on each branch — the pressure difference across a component drives a flow through it.
Because air density varies with temperature (a 600 °C fire room and a 20 °C corridor have air that is roughly 3× different in density), and because most resistance laws are quadratic in flow, the resulting system is non-linear. Simple matrix inversion is insufficient; an iterative method is required.
2. Mathematical Formulation
2.1 Nodes as Conservation Laws
Let the network contain junctions with unknown gauge pressures . A subset of nodes may have fixed (boundary) pressures — typically the outdoor reference at .
At every variable junction , mass must balance:
where
- — neighbours connected to junction ,
- — air density at the upstream end of branch (determined by flow direction),
- — volumetric flow on branch (m³/s, positive toward ),
- — externally imposed mass flow, e.g. a mechanical supply or exhaust (kg/s).
The full system is , a vector of non-linear equations.
2.2 Air Density and the Ideal Gas Law
Air density at each junction is pre-computed once from the ideal gas law:
| Symbol | Value | Unit |
|---|---|---|
| 101 325 | Pa | |
| 287.05 | J / (kg·K) | |
| node temperature | K |
Reference: ISO 10294-3.
Using upstream density on each branch (rather than an average or fixed value) ensures that mass is conserved exactly even when adjacent compartments are at very different temperatures. Without this correction, a single branch connecting a 20 °C corridor to a 600 °C fire room would violate by a factor proportional to the density ratio.
3. Branch Resistance Laws
3.1 The Orifice Flow Equation
For all passive components — leakage gaps, passive vents, orifice plates — the governing relationship is:
where is the component's hydraulic resistance and is the pressure difference driving flow from junction to junction . Equivalently:
For a passive vent with flow coefficient (m³/s per Pa, per EN 13141 / ISO 10294-3):
3.2 Circular Ducts — Darcy–Weisbach
For a circular duct of length , diameter , and roughness :
This follows directly from the Darcy–Weisbach pressure-loss formula after substituting with .
The Darcy friction factor is evaluated at the current Reynolds number , using for air at 20 °C.
3.3 The Haaland Friction Factor
Rather than iterating the implicit Colebrook–White equation, SootSafe uses the Haaland (1983) explicit formula for turbulent flow ():
Reference: Haaland, S. E. (1983). Simple and Explicit Formulas for the Friction Factor in Turbulent Pipe Flow. Journal of Fluids Engineering, 105(1), 89–90.
For laminar flow (), the Hagen–Poiseuille result applies:
In the transition zone (), is linearly interpolated between the laminar and turbulent values. This smooth blending is essential: a discontinuous friction factor produces a discontinuous Jacobian, which causes the Newton–Raphson solver to oscillate rather than converge.
3.4 Other Passive Components
| Component | Resistance formula |
|---|---|
| Passive vent (flow coeff. ) | |
| Local loss (loss coeff. , diameter ) | |
| Damper (open fraction ) | |
| Check valve | from underlying component; clamped if flow is reversed |
3.5 Fans — Active Pressure Sources
A fan adds pressure rather than consuming it. Its characteristic curve is a quadratic polynomial (IEC 60050-415):
where (the curve droops at high flow), and are coefficients fitted to manufacturer data. For reverse flow () the fan contribution is set to zero (stall model). The net branch resistance for a branch containing both a duct and a fan is:
Series components within a branch are summed: total resistance and total fan boost .
4. Numerical Solution — Newton–Raphson
4.1 Why Newton–Raphson?
The quadratic resistance law makes non-linear. Newton–Raphson (NR) is the standard choice: it achieves quadratic convergence near the solution, meaning the number of correct digits roughly doubles each iteration, typically reaching machine precision in 3–8 steps.
The iteration is:
where solves the linear system
and is the Jacobian matrix, and is a step-size chosen by a line search.
4.2 Jacobian by Finite Differences
The Jacobian is computed column-by-column via forward differences:
with an adaptive step size:
The absolute floor of Pa prevents underflow at low-pressure nodes; the relative component keeps accuracy at high pressures (e.g. 1 500 Pa in a pressurised stairwell).
4.3 The "Linear Bridge" — Regularisation at Zero Pressure Difference
The orifice flow equation has an infinite slope at . If the solver ever proposes equal pressures on both sides of a branch, the Jacobian entry diverges and the iteration collapses.
The fix is a linear approximation for small pressure differences:
with . In the linear regime the slope is , which is twice the slope of the orifice tangent at — a modest over-estimate, but one that keeps the Jacobian bounded and well-conditioned everywhere.
At the operating pressures relevant to fire safety (), the regularisation zone is negligible.
4.4 Convergence Criterion
At each iteration the infinity-norm of the residual is tested:
The absolute floor prevents declaring convergence on a trivially empty network; the relative term scales naturally with large forced flows.
4.5 Backtracking Line Search
A full Newton step () can overshoot the solution, especially at the first few iterations when the linearisation is coarse. A simple backtracking scheme halves until the residual norm decreases:
This guarantees descent at every step and provides robustness for networks with strongly non-linear components (check valves, near-stall fans).
4.6 Jacobian Recycling
The dominant cost in each iteration is building and factorising the Jacobian. When the residual norm is contracting rapidly (ratio ), the current Jacobian is still a good local approximation and can be reused for the next solve without rebuilding. The factorisation is discarded only when:
- the norm ratio exceeds 1.0 (the solution moved to a different regime), or
- the line search accepted a reduced step (the operating point shifted substantially), or
- two consecutive iterations showed slow contraction.
In practice this reduces Jacobian builds from to 2–3 per solve, cutting run time by 50–70 % on large networks.
5. Assumptions and Limitations
| Assumption | Consequence | Direction |
|---|---|---|
| Steady state | Transient effects (door opening, fan spin-up) are not modelled | Neutral — the pseudo-transient simulation (see Pseudo-Transient Fire Simulation) calls this solver once per second to reconstruct time dependence |
| Incompressible flow | Valid when duct velocities are well below the speed of sound, as in all building HVAC applications | Neutral — accurate to within < 0.1 % at typical HVAC velocities |
| Single-phase, dry air | Moisture and smoke particle transport are not included | Mildly non-conservative — smoke aerosols slightly increase effective viscosity and duct resistance; ignoring them marginally over-predicts airflow |
| Adiabatic compartments | Heat transfer between rooms is neglected; temperatures are inputs, not outputs | Conservative if input temperatures come from an adiabatic fire model — adiabatic models over-predict room temperature, which lowers air density and amplifies expansion-driven pressure rise |
| Scalar density per node | Vertical temperature stratification within a compartment is not resolved | Mildly non-conservative — in a real fire room the hot buoyant layer near the ceiling is substantially hotter than the volume-average temperature; using the average under-predicts the density difference that drives pressure build-up |
| No flow momentum | Inertial effects (e.g. bends with dynamic pressure recovery) are captured only through loss coefficients, not the full momentum equation | Mildly non-conservative — loss coefficients approximate local pressure losses but do not recover dynamic pressure at expansions; actual resistance may be slightly higher than modelled |
The conservatism of the overall calculation depends primarily on the temperature boundary conditions supplied to the solver. The solver's own numerical assumptions are accurate or, at worst, mildly non-conservative; the principal conservative margin in fire-safety applications is introduced by the thermal model upstream (see Pseudo-Transient Fire Simulation, §4.1).
6. Standards Referenced
| Standard | Scope |
|---|---|
| ISO 10294-3 | Air leakage measurement; ideal gas air density reference conditions |
| EN 13141 | Orifice flow coefficient convention for ventilation components |
| IEC 60050-415 | Fan characteristic curve conventions |
| Haaland (1983) | Explicit friction factor formula for turbulent pipe flow |
7. Summary
SootSafe models a ventilated building as a pressure-driven flow network and solves for the equilibrium pressure field using Newton–Raphson iteration. The key technical contributions are:
- Upstream density propagation — correctly carries temperature-dependent air density from source to sink, ensuring mass conservation in multi-temperature networks.
- Haaland friction — an explicit friction model that eliminates the iterative inner loop of Colebrook–White, covering laminar, transition, and fully turbulent regimes in a single continuous formula.
- Linear bridge regularisation — prevents solver collapse when branch pressure differences pass through zero, without introducing artificial resistance.
- Jacobian recycling with backtracking — achieves robust convergence in 3–8 iterations for typical building networks.
These properties together allow the engine to handle fire scenarios — where a single building simultaneously contains ambient, hot-smoke, and pressurised-stairwell zones — with the same reliability as a routine HVAC calculation.