combustion

All data and methods related to chemical combustion.

thermosteam.properties.combustion.get_combustion_stoichiometry(atoms: dict, MW: float = None) → dict[source]

Return a dictionary of the combustion stoichiometry of a chemical.

Parameters
  • atoms (dict) – Dictionary of atoms and their counts.

  • MW (float, optional) – Molecular weight of chemical.

Notes

The stoichiometry is given by:

\[ \begin{align}\begin{aligned}C_c H_h O_o N_n S_s Br_b I_i Cl_x F_f P_p + kO_2 -> cCO_2 + \frac{b}{2}Br_2 + \frac{i}{2}I + xHCl + fHF + sSO_2 + \frac{n}{2}N_2 + \frac{p}{4}P_4O_{10} +\frac{h + x + f}{2}H_2O\\k = c + s + \frac{h}{4} + \frac{5P}{4} - \frac{x + f}{4} - \frac{o}{2}\end{aligned}\end{align} \]
thermosteam.properties.combustion.estimate_HHV_modified_Dulong(atoms: dict, MW: float = None, check_oxygen_content: bool = False)[source]

Return higher heating value [HHV; in J/mol] based on the modified Dulong’s equation.

Parameters
  • atoms (dict) – Dictionary of atoms and their counts.

  • MW (float, optional) – Molecular weight of chemical.

Notes

The heat of combustion in J/mol is given by Dulong’s equation 1:

\[Hc (J/mol) = MW \cdot (338C + 1428(H - O/8)+ 95S)\]

This equation is only good for <10 wt. % Oxygen content. Variables C, H, O, and S are atom weight fractions.

References

1(1,2)

Brown et al., Energy Fuels 2010, 24 (6), 3639–3646.

class thermosteam.properties.combustion.CombustionData(stoichiometry, LHV, HHV, Hf, MW)[source]

Create a CombustionData object that contains the stoichiometry coefficients of the reactants and products and the lower and higher heating values of a chemical [LHV, HHV; in J/mol].

Parameters
  • stoichiometry (dict[str: float]) – Stoichiometry coefficients of the reactants and products.

  • LHV (float) – Lower heating value [J/mol].

  • HHV (float) – Higher heating value [J/mol].

  • Hf (float) – Heat of formation [J/mol].

stoichiometry

float] Stoichiometry coefficients of the reactants and products

Type

dict[str

LHV

[float] Lower heating value [J/mol]

HHV

[float] Higher heating value [J/mol]

Hf

[float] Heat of formation [J/mol]

MW

[float] Molecular weight [g/mol]

classmethod from_chemical_data(atoms, CAS=None, MW=None, Hf=None, method='Stoichiometry')[source]

Return a CombustionData object that contains the stoichiometry coefficients of the reactants and products and the lower and higher heating values [LHV, HHV; in J/mol].

Parameters
  • atoms (dict) – Dictionary of atoms and their counts.

  • CAS (str, optional) – CAS of chemical.

  • MW (float, optional) – Molecular weight of chemical [g/mol].

  • Hf (float, optional) – Heat of formation of given chemical [J/mol]. Required if method is “Stoichiometry”.

  • method ("Stoichiometry" or "Dulong") – Method to estimate LHV and HHV.

Notes

Default heats of formation for chemicals are at 298 K, 1 atm. The combustion reaction is based on the following equation:

\[ \begin{align}\begin{aligned}C_c H_h O_o N_n S_s Br_b I_i Cl_x F_f P_p + kO_2 -> cCO_2 + \frac{b}{2}Br_2 + \frac{i}{2}I + xHCl + fHF + sSO_2 + \frac{n}{2}N_2 + \frac{p}{4}P_4O_{10} +\frac{h + x + f}{2}H_2O\\k = c + s + \frac{h}{4} + \frac{5P}{4} - \frac{x + f}{4} - \frac{o}{2}\end{aligned}\end{align} \]

If the method is “Stoichiometry”, the HHV is found using through an energy balance on the reaction (i.e. heat of reaction). If the method is “Dulong”, Dulong’s equation is used 1:

\[Hc (J/mol) = MW \cdot (338C + 1428(H - O/8)+ 95S)\]

The LHV is calculated as follows:

\[ \begin{align}\begin{aligned}LHV = HHV + H_{vap} \cdot H_2O\\H_{vap} = 44011.496 \frac{J}{mol H_2O}\\H_2O = \frac{mol H_2O}{mol}\end{aligned}\end{align} \]

Examples

Liquid methanol burning:

>>> from thermosteam.functors.combustion import CombustionData
>>> CombustionData.from_chemical_data({'H': 4, 'C': 1, 'O': 1}, Hf=-239100)
CombustionData(stoichiometry={'O2': -1.5, 'CO2': 1, 'H2O': 2.0}, LHV=-6.38e+05, HHV=-7.26e+05, Hf=-2.39e+05)