Risk Models

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

Thermal radiation hazard

Pool fires produce sustained thermal radiation capable of causing severe burns and fatalities. The hazard zone depends on pool size, fuel properties, wind conditions, and atmospheric humidity.

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:

  1. Pool diameter and geometry based on source type (continuous, massive, circularDike, rectangularDike)
  2. Burning rate using Burgess-Strasser, Mudan, or tabulated methods
  3. Flame height via Thomas or Pritchard-Binding correlations
  4. Surface Emissive Power (SEP) accounting for soot shielding in large hydrocarbon fires
  5. Thermal radiation at any distance — Point Source or Solid Plume (tilted cylinder) model
  6. Distance to a specified radiation threshold (inverse problem via Newton-Raphson)
  7. Thermal dose and probit-based probability of 1st/2nd degree burns and fatalities
  8. Domino effect time-to-failure for neighboring vessels (Cozzani correlations)
  9. Population fatalities using concentric annular ring integration

2. Calculation Sequence

Cargando diagrama...

Chemical Properties — Retrieve fuel properties from YAWS database at TambT_{amb}: heat of vaporization ΔHvap\Delta H_{vap}, liquid heat capacity cPc_P, and liquid density ρL\rho_L.

Burning Rate — Compute m˙\dot{m}'' [kg/(m²·s)] using Burgess-Strasser, Mudan, or tabulated value (gasoline).

Pool Diameter — Determine maximum pool diameter DD based on source type: continuous spill, massive release, circular dike, or rectangular dike.

Flame Geometry — Compute dimensionless wind speed uu^*, flame height HH (Thomas or Pritchard-Binding), tilt angle θ\theta, and Surface Emissive Power (SEP).

Thermal Radiation — Compute radiation q(x)q(x) [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 TambT_{amb} (Kelvin).

3.1 Heat of Vaporization at TambT_{amb}

ΔHvap(Tamb)=hva(1TambTc)hvnMw×103[kJ/kg]\Delta H_{vap}(T_{amb}) = \frac{h_{va} \cdot \left(1 - \dfrac{T_{amb}}{T_c}\right)^{h_{vn}}}{M_w} \times 10^3 \quad [\text{kJ/kg}]
SymbolDescriptionSource
hvah_{va}Vaporization coefficient AYAWS, p. 109
hvnh_{vn}Correlation exponentYAWS, p. 109
TcT_cCritical temperature (K)YAWS
MwM_wMolecular weight (g/mol)YAWS

Code: PoolFire.js, lines 81–85.


4. Burning Rate — burningRate()

The burning rate m˙\dot{m}'' [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:

m˙=0.055[kg/(m2\cdotps)]\dot{m}'' = 0.055 \quad [\text{kg/(m}^2\text{·s)}]

Code: PoolFire.js, lines 291–293.

Design note

The denominator in both Burgess-Strasser and Mudan methods includes cP(TbTamb)c_P \cdot (T_b - T_{amb}) to account for the sensible heat required to bring the liquid to its boiling point before evaporation.


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:

ymax=1.27×106ΔHcΔHvap(Tb)[m/s]y_{max} = 1.27 \times 10^{-6} \cdot \frac{\Delta H_c}{\Delta H_{vap}(T_b)} \quad [\text{m/s}]

The equilibrium maximum diameter:

D=2Qspillπymax[m]D = 2 \sqrt{\frac{Q_{spill}}{\pi \cdot y_{max}}} \quad [\text{m}]

where QspillQ_{spill} is the volumetric spill rate [m³/s].

Special cases

For GASOLINE: ymax=7×105y_{max} = 7 \times 10^{-5} m/s; for LP GAS: ymax=2×104y_{max} = 2 \times 10^{-4} m/s (tabulated values).

Reference: CCPS, p. 228. Code: PoolFire.js, lines 331–345.


6. Time Calculations

6.1 Continuous Spill — timeToReachPoolSize()

teq=0.564D(gvfD)1/3[s]t_{eq} = 0.564 \cdot \frac{D}{\left(g \cdot v_f \cdot D\right)^{1/3}} \quad [\text{s}]

Code: PoolFire.js, lines 377–379.

6.2 Massive Spill

teq=0.6743(Vgvf2)1/4[s]t_{eq} = 0.6743 \cdot \left(\frac{V}{g \cdot v_f^2}\right)^{1/4} \quad [\text{s}]

Code: PoolFire.js, lines 381–386.


7. Dimensionless Wind Speed — ux()

u=uw(gm˙Dρair)1/3,u1.0u^* = u_w \cdot \left(\frac{g \cdot \dot{m}'' \cdot D}{\rho_{air}}\right)^{-1/3}, \quad u^* \geq 1.0

The physical minimum u=1.0u^* = 1.0 corresponds to the no-wind condition. Dry air density uses ISA 1976 altitude correction:

P=101325(12.5577×105H)5.25588[Pa],ρair=P287.05TambP = 101\,325 \cdot \left(1 - 2.5577 \times 10^{-5} \cdot H\right)^{5.25588} \quad [\text{Pa}], \quad \rho_{air} = \frac{P}{287.05 \cdot T_{amb}}

Reference: ISA 1976. Code: PoolFire.js, lines 414–430.


8. Flame Height — alturaFlama()

8.1 Thomas Method — No Wind (uw=0u_w = 0)

H=42D(m˙ρairgD)0.61H = 42 \cdot D \cdot \left(\frac{\dot{m}''}{\rho_{air} \sqrt{g \cdot D}}\right)^{0.61}

Reference: Thomas, P.H., The size of flames from natural fires, 1963; Kakosimos p. 86. Code: PoolFire.js, lines 464–470.

Method comparison

Thomas slightly overestimates height for large pools (D > 50 m) with strong wind. Pritchard-Binding was developed specifically for hydrocarbons and yields somewhat lower heights; recommended for conservative analyses in industrial facilities at low uu^* values.


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:

SEP=140e0.12D+20(1e0.12D)[kW/m2]SEP = 140 \cdot e^{-0.12 D} + 20 \cdot (1 - e^{-0.12 D}) \quad [\text{kW/m}^2]

The first term represents radiation from the luminous core; the second, background radiation from the smoke column.

Hydrocarbon identification

The code identifies hydrocarbons by the presence of suffixes ANE, GAS, GASOLINE, DIESEL, or TURBO in the substance name.

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 θ\theta [rad] is computed from the Froude and Reynolds numbers:

Fr=uw2gD,Re=uwDν,c=0.666Fr0.333Re0.117Fr = \frac{u_w^2}{g \cdot D}, \quad Re = \frac{u_w \cdot D}{\nu}, \quad c = 0.666 \cdot Fr^{0.333} \cdot Re^{0.117} θ=arcsin ⁣(4c2+112c)[rad]\theta = \arcsin\!\left(\frac{\sqrt{4c^2 + 1} - 1}{2c}\right) \quad [\text{rad}]

For uw0u_w \leq 0, θ=0\theta = 0 (vertical flame). Kinematic viscosity ν\nu [m²/s] is obtained from an empirical polynomial in TambT_{amb} [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:

F=14πx2F = \frac{1}{4\pi x^2}

Near-field limitation

Valid for xDx \gg D. Underestimates radiation in the near field.

Code: PoolFire.js, line 610.


12. Atmospheric Transmissivity — ta(x)

Atmospheric humidity attenuates thermal radiation. Transmissivity τ\tau uses Wayne's correlation (cited in CCPS):

τ=2.02(Pwx)0.09\tau = 2.02 \cdot (P_w \cdot x)^{-0.09}

The partial pressure of water vapor PwP_w [Pa]:

Pw0=exp ⁣(77.345+0.0057T7235/T)T8.2,Pw=HR100Pw0P_w^0 = \frac{\exp\!\left(77.345 + 0.0057\,T - 7235/T\right)}{T^{8.2}}, \qquad P_w = \frac{HR}{100} \cdot P_w^0

where HRHR is relative humidity [%] and T=TambT = T_{amb} [K]. Code: PoolFire.js, lines 620–638.


13. Thermal Radiation — qTermAtX(x)

q(x)=τ(x)Fηm˙ΔHcFvista(x)Apool[kW/m2]q(x) = \tau(x) \cdot F_\eta \cdot \dot{m}'' \cdot \Delta H_c \cdot F_{vista}(x) \cdot A_{pool} \quad [\text{kW/m}^2]

where:

  • FηF_\eta — radiated energy fraction (0.15–0.35, user-configurable; CCPS p. 230–232, Table 2.27)
  • Apool=πD2/4A_{pool} = \pi D^2 / 4 — pool area [m²]

Code: PoolFire.js, lines 652–663.


14. Distance to a Given Radiation Level — xTerm(q_target)

Given a target radiation level qtargetq_{target} [kW/m²], the distance xx [m] is found via Newton-Raphson. For the Point Source model:

f(x)=ZPw0.094πx2.09qtarget=0,Z=2.02Fηm˙ΔHcApoolf(x) = \frac{Z \cdot P_w^{-0.09}}{4\pi} \cdot x^{-2.09} - q_{target} = 0, \qquad Z = 2.02 \cdot F_\eta \cdot \dot{m}'' \cdot \Delta H_c \cdot A_{pool} f(x)=2.09ZPw0.094πx3.09,xn+1=xnf(xn)f(xn)f'(x) = -\frac{2.09 \cdot Z \cdot P_w^{-0.09}}{4\pi} \cdot x^{-3.09}, \qquad x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)}

Convergence tolerance: 0.01 m. Code: PoolFire.js, lines 681–737.


15. Thermal Dose — dose(x)

Ddose=texp[q(x)×103]4/3[(W/m2)4/3s]D_{dose} = t_{exp} \cdot \left[q(x) \times 10^3\right]^{4/3} \quad \left[(\text{W/m}^2)^{4/3} \cdot \text{s}\right]

The factor 10310^3 converts qq 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:

Nfatal=riPdeath(ri)ρpopAring(ri)N_{fatal} = \sum_{r_i} P_{death}(r_i) \cdot \rho_{pop} \cdot A_{ring}(r_i)
SymbolDescriptionUnit
Pdeath(ri)P_{death}(r_i)Probability of death at distance rir_i (CCPS method)%
ρpop\rho_{pop}Population densitypersons/m²
Aring(ri)A_{ring}(r_i)Annular ring area

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.


19. Model Limitations


20. Bibliographic References

On this page