Method

Three things make a leak real in FDS, and it warns you about none of them

We had a building that sealed itself and reached 0.6 bar. The cause was leakage that never reached outside air, so we added it: envelope paths on every storey, sized from façade area, declared in the model and present in the emitted deck.

Then we re-ran the identical model with that one change.

Peak pressure · same building, envelope leakage added
t = 10 s1,507 Pa
t = 20 s12,638 Pa
t = 40 s60,275 Pa
Identical to the sealed run. To five significant figures. The leakage we had just added did nothing whatsoever.

What FDS actually requires

A leak in FDS is not one thing you declare. It is three things that have to agree, and the solver will accept any two of them without comment:

  1. A LEAK_AREA on the pressure zone. How much crack there is, and which zone it connects to. Zone 0 is ambient — a leak to outside air is LEAK_AREA(0).
  2. A &SURF carrying LEAK_PATH. The surface definition that says "flow may pass between these two zones here".
  3. That surface applied to an obstruction. An &OBST that names it in SURF_ID. Without this the surface is defined and used by nothing.

We had the first two. The deck declared LEAK_AREA(0) on all four zones and defined the leak-path surfaces correctly. Three of those surfaces were applied to nothing at all.

FDS does not warn about this. There is no error, no note in the output, no line in the .out file. The leak simply does not exist.

Why the emitter skipped them

The code that attaches leak surfaces looks for the closed opening a leak passes through — which is exactly right for the internal case. A door leaf between a lobby and a stair is a real obstruction, and the leak belongs on it.

An envelope leak has no such thing. A façade is not an opening. There was no door to hang it on, so the emitter skipped the path and wrote the reason into a comment in the deck:

From the emitted deck
commentleakage NOT emitted for lk_env_L01: no closed opening exists between these spaces to carry the LEAK_PATH surface; FDS ignores a leak path that is not applied to an obstruction, silently
The code knew. It said so, precisely, in the one place nothing reads.

A comment is not a finding. If the only record of a skipped requirement is a line in a file nobody opens, the requirement was not skipped — it was lost.

The fix was to build the carrier: a plate on the space's own external face, so the leak surface has something to live on. The area still comes from the &ZONE, not from the size of the plate — the obstruction exists purely to give the surface somewhere to be.

Our own check said this was fine

The worst part is that we had written something specifically to catch this class of problem: a reconciliation comparing what the model declared against what the deck contained. It examined the run and reported conforms.

It counted LEAK_AREA(0) entries on the zones. Those were present. It never tested whether any leak surface was applied to anything — and its verdict actually keyed on whether the model declared envelope paths, which meant it could not fail on the deck side at all.

A check that cannot fail is not a check. It is a green light with a plausible name.

It now reads what the solver reads: every surface carrying LEAK_PATH, cross-referenced against every SURF_ID actually used by geometry. Anything declared and applied to nothing is reported DEAD, by name, for internal paths as well as envelope ones.

What the corrected reconciliation says
before2 applied, 3 DEAD: LEAK_0_1, LEAK_0_3, LEAK_0_4
after22 applied, 0 dead
Peak pressure with the leakage actually connected: 60,275 Pa to 4,289 Pa. Same model, same solver, same declared leakage — the difference is entirely whether the surfaces had somewhere to live.

The other way leakage goes wrong quietly

Even when the plumbing is right, the number can be. Two things worth checking on any study, yours or a consultant's:

Which free area is it? An area means nothing without its convention. Geometric free area is the hole; aerodynamic free area is the hole times a discharge coefficient, because a real orifice does not pass the flow its dimensions suggest. For a doorway that coefficient is around 0.65. Quote one where the other is meant and the flow is out by roughly a third, in the optimistic direction. The benchmark study we rebuilt lists both, side by side, in its own scenario table — which is the correct way to do it.

Is the building allowed to breathe at all? Door leakage alone is a sealed box. Every internal path in that first run was defensible under BS EN 12101-6, individually correct, and collectively described a building with no connection to the atmosphere. The defect was in what was absent, and absence is the hardest thing to review.

What to ask

You will not see a deck in a report. But leakage assumptions do appear in the basis of design, and these questions are answerable from it:

  • Does any declared leakage path reach outside air? If every path is room-to-room, ask what the enclosure vents into.
  • Geometric or aerodynamic free area? If the document does not say, it does not know.
  • What was the peak pressure in the model? A smoke-control study is argued in tens of pascals. Anything in the thousands needs explaining, and anything above about 5 kPa should have broken the glazing.

That last one is the cheapest sanity check available and almost nobody asks it, because pressure is not what a tenability report is about. Which is precisely why it goes unnoticed.

Declared, emitted, and applied — all three, checked every run

The reconciliation now reads what FDS reads. A leak surface applied to nothing is reported by name, and a promise the deck does not keep blocks the report rather than footnoting it.

Arrange a demonstration →