Verif.2.8: Horizontal counter-flows in rooms
PASS blocking documented (see note)
1. Definition
Two 10 m by 10 m rooms are joined by a 10 m long, 2 m wide corridor. 100 occupants with no response time fill room 1 from the left at the highest possible density and move to room 2; the time the last of them enters room 2 is recorded. The run is repeated with 10, 50 and 100 additional occupants in room 2 who move to room 1 at the same time and have the same characteristics.
Source: NIST TN 1822, Verif.2.8, pp. 26-27, Fig. 5. This is a paraphrase, not the text of the standard.
Reference: Ronchi, E., Kuligowski, E. D., Reneke, P. A., Peacock, R. D., Nilsson, D. (2013). The Process of Verification and Validation of Building Fire Evacuation Models. NIST Technical Note 1822. National Institute of Standards and Technology. 10.6028/NIST.TN.1822 (Page numbers are the printed page numbers of TN 1822.)
2. Scenario

Scenario figure from the executed notebook.
3. What to expect
The recorded time increases with the number of people in counter-flow. The tester discusses qualitatively how large the increase is.
Our criterion: Last room-1 occupant’s room-2 entry time increases strictly with counterflow; blocked levels are documented and count as later than any finite level
Seed 42: 0 -> 46.6 s, 10 -> 70.0 s; counterflow 50 and 100 block (not all room-1 occupants enter room 2), blocking documented per the protocol.
4. Our result
Status: PASS
Test cases of this row
| Case | Status | Result | Run |
|---|---|---|---|
test_ | PASS | last_room2_entry_time_by_counterflow (s) counterflow_0: 45.6 counterflow_10: 73.3 counterflow_50: — (not reached) counterflow_100: — (not reached) | n = 100 · seed 42 |
— (not reached) means the run recorded no value for that entry, for example because agents blocked before the end of the time budget.
test_: bound: level 0 completes (not null); comparison: finite times strictly increase with the counterflow count and no finite level follows a blocked (null) levellast_ room2_ entry_ increases_ with_ counterflow

Result figure from the executed notebook.
5. Our implementation
Deviations from the standard:
- Decision D10: a level at which room-1 occupants block and do not all reach room 2 within the time budget is reported as ‘blocking documented’, as ISO 20414 asks for the same scenario, and counts as later than any level that completes. In the result table such a level shows as “— (not reached)”.
- Desired speed is a constant 1.2 m/s instead of a building-population distribution.
Model: CollisionFreeSpeedModel
- Test function: tests/vv/test_nist.py::test_last_room2_entry_increases_with_counterflow
- Scenario file: Nist-2-8-counterflow-0.zip
- Scenario file: Nist-2-8-counterflow-10.zip
- Scenario file: Nist-2-8-counterflow-50.zip
- Scenario file: Nist-2-8-counterflow-100.zip