Flare radiation

In asset after asset I keep seeing structural steel corrode at a rate far higher than they are presumed to, especially when they are in the vicinity of a flare. A common rule of thumb is that corrosion rate can roughly double for every 10°C increase in temperature, though this can vary depending on the specific environment and type of steel.

Arrhenius equation puts this phenomenon plainly — that there is non-linear relationship between chemical reaction and temperature. Interestingly, Process / Mechanical Engineers do often correctly assess the radiated field and even map the sphere of influence. So, there is a need to suitably protect structures from exposure, for it can be a costly and messy affair to rectify later.

If radiated energy is available, then temperature can be calculated as follows:

$$ T = \left(\frac{E}{\sigma}\right)^\frac{1}{4} $$

where,

Temperature versus radiation
Temperature versus radiation.

It should be noted that surface temperatures are usually 20–30°C higher than the above. The elevated temperatures should be instructive enough to consider suitable thermal shielding (e.g. coatings) to prevent rapid and premature deterioration of steel.

Plot code
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# 2025 C Kunte

import numpy as np
import matplotlib.pyplot as plt

# Constants
sigma = 5.670e-8  # Stefan-Boltzmann constant in W/m²K⁴
E0 = (
    100 * 1000
)  # Initial energy in W/m² (100 kW/m² converted to W/m²)

# Temperature range
E_min = 0.5  # in kW/m² (converted to W/m²)
E_max = 2.0  # in kW/m² (converted to W/m²)
num_points = 500  # Number of points for the plot

# Energy range (in W/m²)
E = np.linspace(E_min * 1000, E_max * 1000, num_points)

# Calculate the corresponding temperature using the Stefan-Boltzmann
# equation
T = (E / sigma) ** (1 / 4)

# Convert temperature from Kelvin to Celsius
T_Celsius = T - 273.15

plt.plot(
    E / 1000,
    T_Celsius,
    label=r"$T = \left(\frac{E}{\sigma}\right)^{1/4}$",
    color="blue",
)
plt.title("Temperature vs Energy")
plt.xlabel("Energy (kW/m²)")
plt.ylabel("Temperature (°C)")
plt.grid(True)
plt.legend()
plt.savefig("rad-temp.svg")
plt.show()