bloc.chem.thermo#

Gas-phase composition helpers (solid carbon removal).

Functions#

get_gas_phase_composition(gas[, solid_sp, n_C_min])

Return the gas phase composition by removing solid species and renormalising the mole/mass fractions.

get_gas_species(gas[, solid_sp, n_C_min])

Return a list of gaseous species from the gas object.

get_gas_phase_density(gas[, solid_sp, n_C_min])

Return the corrected density of the gas object, removing the solid species.

get_STP_properties_IUPAC(g)

Get density and enthalpy under Standard Temperature & Pressure (STP).

get_NTP_properties_NIST(g)

Get density and enthalpy under Normal Temperature & Pressure (NTP).

get_DIN1343_properties(g)

Get density and enthalpy under Normal conditions according to DIN 1343.

heating_values(fuel[, mechanism, return_unit, verbose])

Return the Lower & Higher heating values (LHV, HHV) for the specified fuel, in J/kg.

Module Contents#

bloc.chem.thermo.get_gas_phase_composition(gas, solid_sp=['C(s)', 'C(soot)', 'CSOLID'], n_C_min=300)#

Return the gas phase composition by removing solid species and renormalising the mole/mass fractions.

Parameters:
  • gas (cantera.Solution) – The gas phase object from Cantera.

  • solid_sp (list of str, optional) – List of solid species to remove from the gas phase composition. Default is [“C(s)”, “C(soot)”, “CSOLID”].

  • n_C_min (int, optional) – Minimum number of carbon atoms to consider a species as solid. Default is 300.

Returns:

The gas phase composition by removing solid species and renormalising the mole/mass fractions.

Return type:

cantera.Solution

bloc.chem.thermo.get_gas_species(gas, solid_sp=['C(s)', 'C(soot)', 'CSOLID'], n_C_min=300)#

Return a list of gaseous species from the gas object.

Parameters:
  • gas (cantera.Solution) – The gas object containing gaseous species and soot.

  • solid_sp (list of str, optional) – List of solid species to consider. Default is [“C(s)”, “C(soot)”, “CSOLID”].

  • n_C_min (int, optional) – Minimum number of carbon atoms to consider a species as solid. Default is 300. This is used as a second filter to identify solid carbon species. A specie is considered solid if it satisfies one criterium (s in solid_sp) OR the other (n_C >= n_C_min).

Returns:

A list of gaseous species names (i.e., not solid carbon species).

Return type:

list of str

bloc.chem.thermo.get_gas_phase_density(gas, solid_sp=['C(s)', 'C(soot)', 'CSOLID'], n_C_min=300)#

Return the corrected density of the gas object, removing the solid species.

Parameters:
  • gas (cantera.Solution) – The gas object containing gaseous species and soot. Works with states[i].

  • solid_sp (list of str, optional) – List of solid species to consider. Default is [“C(s)”, “C(soot)”, “CSOLID”].

  • n_C_min (int, optional) – Minimum number of carbon atoms to consider a species as solid. Default is 300. This is used as a second filter to identify solid carbon species. A specie is considered solid if it satisfies one criterium (s in solid_sp) OR the other (n_C >= n_C_min).

Returns:

The corrected density of the gas object, removing the solid species.

Return type:

float

bloc.chem.thermo.get_STP_properties_IUPAC(g)#

Get density and enthalpy under Standard Temperature & Pressure (STP).

Here STP is defined as :

  • 0°C (273.15 K), 1 bar (100 kPa), according to STP by IUPAC (>=1982)

It should not be confused with :

  • 0°C (273.15 K), 1 atm (101.325 kPa): as in STP by IUPAC (before 1982) and as in

    DIN 1343, used as the base value for defining the standard cubic meter.

  • 15°C (288.15 K), 1 atm (101.325 kPa): as in ISO 2533 conditions

  • 20°C (293.15 K), 1 atm (101.325 kPa), as in Normal (NTP) conditions by NIST

References

https://en.wikipedia.org/wiki/Standard_temperature_and_pressure.

bloc.chem.thermo.get_NTP_properties_NIST(g)#

Get density and enthalpy under Normal Temperature & Pressure (NTP).

Here NTP is defined as :

  • 20°C (293.15 K), 1 atm (101.325 kPa), according to NTP by NIST

It should not be confused with :

  • 0°C (273.15 K), 1 bar (100 kPa), according to STP by IUPAC (>=1982)

  • 0°C (273.15 K), 1 atm (101.325 kPa): as in STP by IUPAC (before 1982) and as in

    DIN 1343, used as the base value for defining the standard cubic meter.

  • 15°C (288.15 K), 1 atm (101.325 kPa): as in ISO 2533 conditions

References

https://en.wikipedia.org/wiki/Standard_temperature_and_pressure.

bloc.chem.thermo.get_DIN1343_properties(g)#

Get density and enthalpy under Normal conditions according to DIN 1343.

DIN1343 is the base value for the normal cubic meter (Nm3) and is defined as :

  • 0°C (273.15 K), 1 atm (101.325 kPa), according to NTP by NIST

It should not be confused with :

  • 0°C (273.15 K), 1 bar (100 kPa), according to STP by IUPAC (>=1982)

  • 15°C (288.15 K), 1 atm (101.325 kPa): as in ISO 2533 conditions

References

https://en.wikipedia.org/wiki/Standard_temperature_and_pressure.

bloc.chem.thermo.heating_values(fuel, mechanism=None, return_unit='J/kg', verbose=False)#

Return the Lower & Higher heating values (LHV, HHV) for the specified fuel, in J/kg.

The heating values are calculated by comparing initial enthalpy and final enthalpy after oxidation. The final product composition is determined in the case of a complete combustion, where all Carbon elements are oxydized to CO2, all Hydrogen elements are oxydized to H2O, and all Nitrogen elements become N2.

References: https://cantera.org/examples/jupyter/thermo/heating_value.ipynb.html

Parameters:
  • fuel (cantera.Solution or cantera.Species) – Cantera Solution or Species object representing the fuel.

  • mechanism (str, optional) – kinetic mechanism including the thermodynamic data used to do the calculations. If not given (default), uses the mechanism of the fuel object.

  • return_unit (str, optional) – unit of the returned values, default is “J/kg”. Other units are not implemented yet.

  • verbose (bool, optional) – If True, print verbose output.

Returns:

  • tuple of float – (LHV, HHV) in the specified unit (default is J/kg). LHV is the lower heating value, HHV is the higher heating value.

  • If O2 is not defined in mechanism, returns nan.

Examples

::

import cantera import as ct from bloc.chem import heating_values

g = ct.Solution(“gri30.yaml”) g.TPX = 273.15, 1e5, “CH4:1” # °C, Pa, mole fraction lhv, hhv = heating_values(g) # J/kg

Notes

@Jean: Warning, according to Wikipedia, there are several definition of LHV. Here, we assume that water condensation energy is not recovered, but heat is recovered down to 25°C. Another widespread defintion considers that the products are cooled to 150°C –> no water condensation, nor heat recovery below 150°C.