Pool Fire
Technical documentation for the Pool Fire consequence model — burning rate, flame geometry, thermal radiation, probit analysis, domino effects, and fatality estimation
1. Introduction and Physical Phenomenon#
1.1 Pool Fire#
The Pool Fire model simulates the steady-state combustion of a flammable liquid that has spilled onto a flat surface and ignited. The model computes:
- Maximum pool diameter based on spill type
- Mass burning rate per unit area (burning rate)
- Flame geometry (height, wind-induced tilt angle)
- Thermal radiation intensity at any given distance
- Human effects (1st/2nd degree burns, fatalities) via Probit functions
- Domino effects on neighboring vessels using Cozzani correlations
- Expected fatalities by integrating thermal radiation with population density
1.2 Industrial Context#
Continuous Spill
Steady-state release; pool diameter grows until equilibrium between inflow and combustion rate
Massive (Instantaneous)
Entire volume released at once; maximum diameter depends on total volume released
Circular Dike
Fixed diameter defined by the user (inner dike diameter)
Rectangular Dike
Equivalent diameter computed from length × width of the containment dike
1.3 Scope of This Model#
This model calculates:
- Pool diameter and geometry based on source type (
continuous,massive,circularDike,rectangularDike) - Burning rate using Burgess-Strasser, Mudan, or tabulated methods
- Flame height via Thomas or Pritchard-Binding correlations
- Surface Emissive Power (SEP) accounting for soot shielding in large hydrocarbon fires
- Thermal radiation at any distance — Point Source or Solid Plume (tilted cylinder) model
- Distance to a specified radiation threshold (inverse problem via Newton-Raphson)
- Thermal dose and probit-based probability of 1st/2nd degree burns and fatalities
- Domino effect time-to-failure for neighboring vessels (Cozzani correlations)
- Population fatalities using concentric annular ring integration
2. Calculation Sequence#
flowchart TD A["Input Data<br/>(fuel, source type, weather)"] --> B["Chemical Properties<br/>YAWS: ΔHvap, cP, ρL at Tamb & Tb"] B --> C["Burning Rate<br/>ṁ'' = f(ΔHc, ΔHvap, cP, ρL)"] C --> D["Pool Diameter<br/>D = f(sourceType, Q or V)"] D --> E["Flame Geometry<br/>u*, H(Thomas|Pritchard), θ, SEP"] E --> F["For each distance x:<br/>F_view, τ_atm, q(x)"] F --> G["Forward problem<br/>q(x)"] F --> H["Inverse problem<br/>x(q_target) — Newton-Raphson"] G --> I["Thermal Dose<br/>D_dose = t_exp · (q×10³)^(4/3)"] H --> I I --> J["Probit Analysis<br/>(Burns 1°/2°, Fatalities TNO/CCPS, Domino)"] J --> K["Fatality Calculation<br/>(Concentric Rings + FatalityUtils)"] style A fill:#e1f5fe style K fill:#c8e6c9 style F fill:#fff3e0
Chemical Properties — Retrieve fuel properties from YAWS database at : heat of vaporization , liquid heat capacity , and liquid density .
Burning Rate — Compute [kg/(m²·s)] using Burgess-Strasser, Mudan, or tabulated value (gasoline).
Pool Diameter — Determine maximum pool diameter based on source type: continuous spill, massive release, circular dike, or rectangular dike.
Flame Geometry — Compute dimensionless wind speed , flame height (Thomas or Pritchard-Binding), tilt angle , and Surface Emissive Power (SEP).
Thermal Radiation — Compute radiation [kW/m²] at target distances using Point Source or Solid Plume (tilted cylinder) view factor model.
Probit Analysis — Convert thermal dose into probability of 1st/2nd degree burns, fatalities (TNO or CCPS), and domino effects (Cozzani).
Fatality Estimation — Integrate fatality probability over concentric annular rings to estimate total casualties.
3. Chemical Properties (YAWS Correlations)#
All fuel properties are retrieved from the YAWS chemical database evaluated at ambient temperature (Kelvin).
3.1 Heat of Vaporization at #
| Symbol | Description | Source |
|---|---|---|
| Vaporization coefficient A | YAWS, p. 109 | |
| Correlation exponent | YAWS, p. 109 | |
| Critical temperature (K) | YAWS | |
| Molecular weight (g/mol) | YAWS |
Code: PoolFire.js, lines 81–85.
4. Burning Rate — burningRate()#
The burning rate [kg/(m²·s)] is the mass of fuel consumed per unit area per unit time. It governs fire intensity and pool diameter.
4.1 Special Case: Gasoline#
For gasoline (GASOLINE-s), a tabulated experimental value is used directly:
Code: PoolFire.js, lines 291–293.
5. Pool Diameter — poolDiameter()#
5.1 Continuous Spill (CCPS p. 228)#
The maximum diameter is reached when the horizontal spreading rate equals the combustion rate. The vertical burning rate is:
The equilibrium maximum diameter:
where is the volumetric spill rate [m³/s].
Reference: CCPS, p. 228. Code: PoolFire.js, lines 331–345.
6. Time Calculations#
7. Dimensionless Wind Speed — ux()#
The physical minimum corresponds to the no-wind condition. Dry air density uses ISA 1976 altitude correction:
Reference: ISA 1976. Code: PoolFire.js, lines 414–430.
8. Flame Height — alturaFlama()#
8.1 Thomas Method — No Wind ()#
Reference: Thomas, P.H., The size of flames from natural fires, 1963; Kakosimos p. 86.
Code: PoolFire.js, lines 464–470.
9. Surface Emissive Power (SEP) — SEP()#
The SEP [kW/m²] is the radiant power emitted per unit area of the flame surface.
For large hydrocarbon pools (alkanes, gasoline, diesel, jet fuel), soot significantly reduces effective radiation. The bi-exponential correlation models the shielding effect:
The first term represents radiation from the luminous core; the second, background radiation from the smoke column.
Reference: Mudan & Croce, SFPE Handbook, 1995; Kakosimos p. 88. Code: PoolFire.js, lines 505–508.
10. Flame Tilt Angle — anguloFlama()#
Wind tilts the flame from the vertical. The angle [rad] is computed from the Froude and Reynolds numbers:
For , (vertical flame). Kinematic viscosity [m²/s] is obtained from an empirical polynomial in [K].
Code: PoolFire.js, lines 523–542.
11. View Factor — viewFactor(x)#
11.1 Point Source Model#
Assumes all energy radiates from a geometric point at the flame center:
Code: PoolFire.js, line 610.
12. Atmospheric Transmissivity — ta(x)#
Atmospheric humidity attenuates thermal radiation. Transmissivity uses Wayne's correlation (cited in CCPS):
The partial pressure of water vapor [Pa]:
where is relative humidity [%] and [K]. Code: PoolFire.js, lines 620–638.
13. Thermal Radiation — qTermAtX(x)#
where:
- — radiated energy fraction (0.15–0.35, user-configurable; CCPS p. 230–232, Table 2.27)
- — pool area [m²]
Code: PoolFire.js, lines 652–663.
14. Distance to a Given Radiation Level — xTerm(q_target)#
Given a target radiation level [kW/m²], the distance [m] is found via Newton-Raphson. For the Point Source model:
Convergence tolerance: 0.01 m. Code: PoolFire.js, lines 681–737.
15. Thermal Dose — dose(x)#
The factor converts from kW/m² to W/m². Code: PoolFire.js, line 758.
16. Effects — Probit Functions#
Probit functions transform the thermal dose into damage probability via the standard normal distribution.
17. Time to Failure for Vessels (Domino Effect) — Cozzani Correlations#
18. Fatality Calculation — fatalidades()#
The method numerically integrates the probability of death over concentric annular rings:
| Symbol | Description | Unit |
|---|---|---|
| Probability of death at distance (CCPS method) | % | |
| Population density | persons/m² | |
| Annular ring area | m² |
For polygon receivers (zones with known population), FatalityUtils.js uses a 10 m grid to distribute the population within the polygon and excludes that area from the uniform density calculation.
Code: PoolFire.js, lines 818–860; delegated to FatalityUtils.js.