Combustion Calculations (chemicals.combustion)¶
This module contains a series of functions for modeling combustion reactions.
For reporting bugs, adding feature requests, or submitting pull requests, please use the GitHub issue tracker.
Combustion Stoichiometry¶
- chemicals.combustion.combustion_stoichiometry(atoms, MW=None, missing_handling='elemental')[source]¶
Return a dictionary of stoichiometric coefficients of chemical combustion, given a dictionary of a molecule’s constituent atoms and their counts.
This function is based on the combustion of hydrocarbons; the products for some inorganics can be hard to predict, and no special handling is included here for them. This reaction is the standard one at standard pressure with an excess of oxygen; it does not account for partial combustion or nitrous oxides.
- Parameters
- atoms
dict
[str
,int
] Dictionary of atoms and their counts, [-]
- MW
float
,optional
Molecular weight of chemical, used only if missing_handling is ‘Ash’, [g/mol]
- missing_handling
str
,optional
How to handle compounds which do not appear in the stoichiometric reaction below. If ‘elemental’, return those atoms in the monatomic state; if ‘ash’, converts all missing attoms to ‘Ash’ in the output at a MW of 1 g/mol, [-]
- atoms
- Returns
- stoichiometry
dict
[str
,float
] Stoichiometric coefficients of combustion. May inlcude the following keys for complete combustion: ‘H2O’, ‘CO2’, ‘SO2’, ‘Br2’, ‘I2’, ‘HCl’, ‘HF’ ‘P4O10’; if missing_handling is ‘elemental’ can include the other elements; if missing_handling is ‘ash’, Ash will be present in the output if the compounds whose reactions are not included here. ‘O2’ is always present, with negative values indicating oxygen is required. [-]
- stoichiometry
Notes
The stoichiometry is given by:
Also included in the results is the moles of O2 required per mole of the mixture of the molecule.
HF and HCl are gaseous products in their standard state. P4O10 is a solid in its standard state. Bromine is a liquid as is iodine. Water depends on the chosen definition of heating value. The other products are gases.
Atoms not in [‘C’, ‘H’, ‘N’, ‘O’, ‘S’, ‘Br’, ‘I’, ‘Cl’, ‘F’, ‘P’] are returned as pure species; i.e. sodium hydroxide produces water and pure Na.
Examples
Methane gas burning:
>>> combustion_stoichiometry({'C': 1, 'H':4}) {'CO2': 1, 'O2': -2.0, 'H2O': 2.0}
- chemicals.combustion.combustion_products_mixture(atoms_list, zs, reactivities=None, CASs=None, missing_handling='elemental', combustion_stoichiometries=None)[source]¶
Calculates the combustion products of a mixture of molecules and their, mole fractions; requires a list of dictionaries of each molecule’s constituent atoms and their counts. Products for non-hydrocarbons may not be correct, but are still calculated.
- Parameters
- atoms_list
list
[dict
] List of dictionaries of atoms and their counts, [-]
- zs
list
[float
] Mole fractions of each molecule in the mixture, [-]
- reactivities
list
[bool] Indicators as to whether to combust each molecule, [-]
- CASs
list
[str
] CAS numbers of all compounds; non-reacted products will appear in the products indexed by their CAS number, [-]
- missing_handling
str
,optional
How to handle compounds which do not appear in the stoichiometric reaction below. If ‘elemental’, return those atoms in the monatomic state; if ‘Ash’, converts all missing attoms to ‘Ash’ in the output at a MW of 1 g/mol, [-]
- combustion_stoichiometries
list
[dict
[str
,float
]] List of return values from combustion_stoichiometry, can be provided if precomputed [-]
- atoms_list
- Returns
- combustion_producucts
dict
Dictionary of combustion products and their counts, [-]
- combustion_producucts
Notes
Also included in the results is the moles of O2 required per mole of the mixture to be burnt.
Note that if O2 is in the feed, this will be subtracted from the required O2 amount.
HF and HCl are gaseous products in their standard state. P4O10 is a solid in its standard state. Bromine is a liquid as is iodine. Water depends on the chosen definition of heating value. The other products are gases.
Note that if instead of mole fractions, mole flows are given - the results are in terms of mole flows as well!
Examples
Mixture of methane and ethane.
>>> combustion_products_mixture([{'H': 4, 'C': 1}, {'H': 6, 'C': 2}, {'Ar': 1}, {'C': 15, 'H': 32}], ... [.9, .05, .04, .01], reactivities=[True, True, True, False], ... CASs=['74-82-8', '74-84-0', '7440-37-1', '629-62-9']) {'CO2': 1.0, 'O2': -1.975, 'H2O': 1.9500000000000002, 'Ar': 0.04, '629-62-9': 0.01}
Heat of Combustion¶
- chemicals.combustion.HHV_stoichiometry(stoichiometry, Hf, Hf_chemicals=None)[source]¶
Return the higher heating value [HHV; in J/mol] based on the theoretical combustion stoichiometry and the heat of formation of the chemical.
- Parameters
- Returns
- HHV
float
Higher heating value [J/mol].
- HHV
Notes
The combustion reaction is based on the following equation:
The HHV is calculated as the heat of reaction.
Examples
Burning methane gas:
>>> HHV_stoichiometry({'O2': -2.0, 'CO2': 1, 'H2O': 2.0}, -74520.0) -890604.0
- chemicals.combustion.HHV_modified_Dulong(mass_fractions)[source]¶
Return higher heating value [HHV; in J/g] based on the modified Dulong’s equation [1].
- Parameters
- Returns
- HHV
float
Higher heating value [J/mol].
- HHV
Notes
The heat of combustion in J/mol is given by Dulong’s equation [1]:
This equation is only good for <10 wt. % Oxygen content. Variables C, H, O, and S are atom weight fractions.
References
- 1(1,2)
Green, D. W. Waste management. In Perry`s Chemical Engineers` Handbook, 9 ed.; McGraw-Hill Education, 2018
Examples
Dry bituminous coal:
>>> HHV_modified_Dulong({'C': 0.716, 'H': 0.054, 'S': 0.016, 'N': 0.016, 'O': 0.093, 'Ash': 0.105}) -304.0395
- chemicals.combustion.LHV_from_HHV(HHV, N_H2O)[source]¶
Return the lower heating value [LHV; in J/mol] of a chemical given the higher heating value [HHV; in J/mol] and the number of water molecules formed per molecule burned.
- Parameters
- Returns
- LHV
float
Lower heating value [J/mol].
- LHV
Notes
The LHV is calculated as follows:
Examples
Methanol lower heat of combustion:
>>> LHV_from_HHV(-726024.0, 2) -638001.008
Heat of Combustion and Stiochiometry¶
- chemicals.combustion.combustion_data(formula=None, stoichiometry=None, Hf=None, MW=None, method=None, missing_handling='ash')[source]¶
Return a CombustionData object (a named tuple) that contains the stoichiometry coefficients of the reactants and products, the lower and higher heating values [LHV, HHV; in J/mol], the heat of formation [Hf; in J/mol], and the molecular weight [MW; in g/mol].
- Parameters
- formula
str
,or
dict
[str
,float
],optional
Chemical formula as a string or a dictionary of atoms and their counts.
- stoichiometry
dict
[str
,float
],optional
Stoichiometry of combustion reaction.
- Hf
float
,optional
Heat of formation of given chemical [J/mol]. Required if method is “Stoichiometry”.
- MW
float
,optional
Molecular weight of chemical [g/mol].
- method“Stoichiometry” or “Dulong”,
optional
Method to estimate LHV and HHV.
- missing_handling
str
,optional
How to handle compounds which do not appear in the stoichiometric reaction below. If ‘elemental’, return those atoms in the monatomic state; if ‘Ash’, converts all missing attoms to ‘Ash’ in the output at a MW of 1 g/mol, [-]
- formula
- Returns
- combustion_data
CombustionData
A combustion data object with the stoichiometric coefficients of combustion, higher heating value, heat of formation, and molecular weight as attributes named stoichiomery, HHV, Hf, and MW, respectively.
- combustion_data
Notes
The combustion reaction is based on the following equation:
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]:
The LHV is calculated as follows:
References
- 1
Green, D. W. Waste management. In Perry`s Chemical Engineers` Handbook, 9 ed.; McGraw-Hill Education, 2018
Examples
Liquid methanol burning:
>>> combustion_data({'H': 4, 'C': 1, 'O': 1}, Hf=-239100) CombustionData(stoichiometry={'CO2': 1, 'O2': -1.5, 'H2O': 2.0}, HHV=-726024.0, Hf=-239100, MW=32.04186)
- class chemicals.combustion.CombustionData(stoichiometry, HHV, Hf, MW)[source]¶
Return a CombustionData object (a named tuple) that contains the stoichiometry coefficients of the reactants and products, the lower and higher heating values [LHV, HHV; in J/mol], the heat of formation [Hf; in J/mol], and the molecular weight [MW; in g/mol].
Basic Combustion Spec Solvers¶
- chemicals.combustion.fuel_air_spec_solver(zs_air, zs_fuel, CASs, atomss, n_fuel=None, n_air=None, n_out=None, O2_excess=None, frac_out_O2=None, frac_out_O2_dry=None, ratio=None, Vm_air=None, Vm_fuel=None, MW_air=None, MW_fuel=None, ratio_basis='mass', reactivities=None, combustion_stoichiometries=None)[source]¶
Solves the system of equations describing a flow of air mixing with a flow of combustibles and burning completely. All calculated variables are returned as a dictionary.
Supports solving with any 2 of the extensive variables, or one extensive and one intensive variable:
Extensive variables:
n_air
n_fuel
n_out
Intensive variables:
O2_excess
frac_out_O2
frac_out_O2_dry
ratio
The variables Vm_air, Vm_fuel, MW_air, and MW_fuel are only required when an air-fuel ratio is given. Howver, the ratios cannot be calculated for the other solve options without them.
- Parameters
- zs_air
list
[float
] Mole fractions of the air; most not contain any combustibles, [-]
- zs_fuel
list
[float
] Mole fractions of the fuel; can contain inerts and/or oxygen as well, [-]
- CASs
list
[str
] CAS numbers of all compounds, [-]
- atomss
list
[dict
[float
]] List of dictionaries of elements and their counts for all molecules in the mixtures, [-]
- n_fuel
float
,optional
Flow rate of fuel, [mol/s]
- n_air
float
,optional
Flow rate of air, [mol/s]
- n_out
float
,optional
Flow rate of combustion products, remaining oxygen, and inerts, [mol/s]
- O2_excess
float
,optional
The excess oxygen coming out; (O2 in)/(O2 required) - 1, [-]
- frac_out_O2
float
,optional
The mole fraction of oxygen out, [-]
- frac_out_O2_dry
float
,optional
The mole fraction of oxygen out on a dry basis, [-]
- ratio
float
,optional
Air-fuel ratio, in the specified basis, [-]
- Vm_air
float
,optional
Molar volume of air, [m^3/mol]
- Vm_fuel
float
,optional
Molar volume of fuel, [m^3/mol]
- MW_air
float
,optional
Molecular weight of air, [g/mol]
- MW_fuel
float
,optional
Molecular weight of fuel, [g/mol]
- ratio_basis
str
,optional
One of ‘mass’, ‘mole’, or ‘volume’, [-]
- reactivities
list
[bool],optional
Optional list which can be used to mark otherwise combustible compounds as incombustible and which will leave unreacted, [-]
- combustion_stoichiometries
list
[dict
[str
,float
]] List of return values from combustion_stoichiometry, can be provided if precomputed [-]
- zs_air
- Returns
- results
dict
n_fuel : Flow rate of fuel, [mol/s]
n_air : Flow rate of air, [mol/s]
n_out : Flow rate of combustion products, remaining oxygen, and inerts, [mol/s]
O2_excess : The excess oxygen coming out; (O2 in)/(O2 required) - 1, [-]
frac_out_O2 : The mole fraction of oxygen out, [-]
frac_out_O2_dry : The mole fraction of oxygen out on a dry basis, [-]
mole_ratio : Air-fuel mole ratio, [-]
mass_ratio : Air-fuel mass ratio, [-]
volume_ratio : Air-fuel volume ratio, [-]
ns_out : Mole flow rates out, [mol/s]
zs_out : Mole fractions out, [-]
- results
Notes
Combustion products themselves cannot be set as unreactive.
The function works so long as the flow rates, molar volumes, and molecular weights are in a consistent basis.
The function may also be used to obtain the other ratios, even if both flow rates are known.
Be careful to use standard volumes if the ratio known is at standard conditions!
Examples
>>> zs_air = [0.79, 0.205, 0, 0, 0, 0.0045, 0.0005] >>> zs_fuel = [0.025, 0.025, 0.85, 0.07, 0.029, 0.0005, 0.0005] >>> CASs = ['7727-37-9', '7782-44-7', '74-82-8', '74-84-0', '74-98-6', '7732-18-5', '124-38-9'] >>> atomss = [{'N': 2}, {'O': 2}, {'H': 4, 'C': 1}, {'H': 6, 'C': 2}, {'H': 8, 'C': 3}, {'H': 2, 'O': 1}, {'C': 1, 'O': 2}] >>> ans = fuel_air_spec_solver(zs_air=zs_air, zs_fuel=zs_fuel, CASs=CASs, atomss=atomss, n_fuel=5.0, O2_excess=0.3, Vm_air=0.02493, Vm_fuel=0.02488, MW_air=28.79341351, MW_fuel=18.55158039) >>> [round(i, 5) for i in ans['ns_out']] [51.99524, 3.135, 0.0, 0.0, 0.0, 10.42796, 5.42033] >>> [round(i, 5) for i in ans['zs_out']] [0.73255, 0.04417, 0.0, 0.0, 0.0, 0.14692, 0.07637] >>> ans['frac_out_O2'], ans['frac_out_O2_dry'] (0.04416828172034148, 0.051774902132807) >>> ans['mole_ratio'], ans['mass_ratio'], ans['volume_ratio'] (13.131707317073175, 20.381372957130615, 13.15809740412517) >>> ans['n_air'] 65.65853658536588
- chemicals.combustion.combustion_spec_solver(zs_air, zs_fuel, zs_third, CASs, atomss, n_third, n_fuel=None, n_air=None, n_out=None, O2_excess=None, frac_out_O2=None, frac_out_O2_dry=None, ratio=None, Vm_air=None, Vm_fuel=None, Vm_third=None, MW_air=None, MW_fuel=None, MW_third=None, ratio_basis='mass', reactivities=None, combustion_stoichiometries=None)[source]¶
Solves the system of equations describing a flow of air mixing with two flow of combustibles, one fixed and one potentially variable, and burning completely. All calculated variables are returned as a dictionary.
The variables Vm_air, Vm_fuel, Vm_third, MW_air, MW_fuel and MW_third are only required when an air-fuel ratio is given. Howver, the ratios cannot be calculated for the other solve options without them.
- Parameters
- zs_air
list
[float
] Mole fractions of the air; most not contain any combustibles, [-]
- zs_fuel
list
[float
] Mole fractions of the fuel; can contain inerts and/or oxygen as well, [-]
- zs_third
list
[float
] - Mole fractions of the fixed fuel flow; can contain inerts and/or oxygen
as well, [-]
- CASs
list
[str
] CAS numbers of all compounds, [-]
- atomss
list
[dict
[float
]] List of dictionaries of elements and their counts for all molecules in the mixtures, [-]
- n_third
float
,optional
Flow rate of third stream, (fixed) fuel flow rate, [mol/s]
- n_fuel
float
,optional
Flow rate of fuel, [mol/s]
- n_air
float
,optional
Flow rate of air, [mol/s]
- n_out
float
,optional
Flow rate of combustion products, remaining oxygen, and inerts, [mol/s]
- O2_excess
float
,optional
The excess oxygen coming out; (O2 in)/(O2 required) - 1, [-]
- frac_out_O2
float
,optional
The mole fraction of oxygen out, [-]
- frac_out_O2_dry
float
,optional
The mole fraction of oxygen out on a dry basis, [-]
- ratio
float
,optional
Air-fuel ratio, in the specified basis, [-]
- Vm_air
float
,optional
Molar volume of air, [m^3/mol]
- Vm_fuel
float
,optional
Molar volume of fuel, [m^3/mol]
- Vm_third
float
,optional
Molar volume of second fuel stream, [m^3/mol]
- MW_air
float
,optional
Molecular weight of air, [g/mol]
- MW_fuel
float
,optional
Molecular weight of fuel, [g/mol]
- MW_third
float
,optional
Molecular weight of second fuel stream, [g/mol]
- ratio_basis
str
,optional
One of ‘mass’, ‘mole’, or ‘volume’, [-]
- reactivities
list
[bool],optional
Optional list which can be used to mark otherwise combustible compounds as incombustible and which will leave unreacted, [-]
- combustion_stoichiometries
list
[dict
[str
,float
]] List of return values from combustion_stoichiometry, can be provided if precomputed [-]
- zs_air
- Returns
- results
dict
n_fuel : Flow rate of fuel, [mol/s]
n_air : Flow rate of air, [mol/s]
n_out : Flow rate of combustion products, remaining oxygen, and inerts, [mol/s]
O2_excess : The excess oxygen coming out; (O2 in)/(O2 required) - 1, [-]
frac_out_O2 : The mole fraction of oxygen out, [-]
frac_out_O2_dry : The mole fraction of oxygen out on a dry basis, [-]
mole_ratio : Air-fuel mole ratio, [-]
mass_ratio : Air-fuel mass ratio, [-]
volume_ratio : Air-fuel volume ratio, [-]
ns_out : Mole flow rates out, [mol/s]
zs_out : Mole fractions out, [-]
- results
Notes
Combustion products themselves cannot be set as unreactive.
The function works so long as the flow rates, molar volumes, and molecular weights are in a consistent basis.
Handling the case of the air feed containing combustibles is not implemented.
Examples
>>> zs_air = [0.79, 0.205, 0, 0, 0, 0.0045, 0.0005] >>> zs_fuel = [0.025, 0.025, 0.85, 0.07, 0.029, 0.0005, 0.0005] >>> zs_third = [0.1, 0.005, 0.5, 0.39, 0, 0.005, 0] >>> CASs = ['7727-37-9', '7782-44-7', '74-82-8', '74-84-0', '74-98-6', '7732-18-5', '124-38-9'] >>> atomss = [{'N': 2}, {'O': 2}, {'H': 4, 'C': 1}, {'H': 6, 'C': 2}, {'H': 8, 'C': 3}, {'H': 2, 'O': 1}, {'C': 1, 'O': 2}] >>> combustion_stoichiometries = [combustion_stoichiometry(atoms) for atoms in atomss] >>> ans = combustion_spec_solver(zs_air=zs_air, zs_fuel=zs_fuel, zs_third=zs_third, CASs=CASs, atomss=atomss, n_third=1.0, n_fuel=5.0, O2_excess=0.3, Vm_air=0.02493, Vm_fuel=0.02488, Vm_third=.024, MW_air=28.79341351, MW_fuel=18.55158039, MW_third=22.0) >>> ans['n_air'] 80.6317073170732
- chemicals.combustion.air_fuel_ratio_solver(ratio, Vm_air, Vm_fuel, MW_air, MW_fuel, n_air=None, n_fuel=None, basis='mass')[source]¶
Calculates molar flow rate of air or fuel from the other, using a specified air-fuel ratio. Supports ‘mole’, ‘mass’, and ‘volume’.
bases for the ratio variable. The ratio must be of the same units - i.e. kg/kg instead of lb/kg.
The mole, mass, and volume air-fuel ratios are calculated in the process and returned as well.
- Parameters
- ratio
float
Air-fuel ratio, in the specified basis, [-]
- Vm_air
float
Molar volume of air, [m^3/mol]
- Vm_fuel
float
Molar volume of fuel, [m^3/mol]
- MW_air
float
Molecular weight of air, [g/mol]
- MW_fuel
float
Molecular weight of fuel, [g/mol]
- n_air
float
,optional
Molar flow rate of air, [mol/s]
- n_fuel
float
,optional
Molar flow rate of fuel, [mol/s]
- basis
str
,optional
One of ‘mass’, ‘mole’, or ‘volume’, [-]
- ratio
- Returns
Notes
The function works so long as the flow rates, molar volumes, and molecular weights are in a consistent basis.
The function may also be used to obtain the other ratios, even if both flow rates are known.
Be careful to use standard volumes if the ratio known is at standard conditions!
This function has no provision for mixed units like mass/mole or volume/mass.
Examples
>>> Vm_air = 0.024936627188566596 >>> Vm_fuel = 0.024880983160354486 >>> MW_air = 28.850334 >>> MW_fuel = 17.86651 >>> n_fuel = 5.0 >>> n_air = 25.0 >>> air_fuel_ratio_solver(ratio=5.0, Vm_air=Vm_air, Vm_fuel=Vm_fuel, ... MW_air=MW_air, MW_fuel=MW_fuel, n_air=n_air, ... n_fuel=n_fuel, basis='mole') (25.0, 5.0, 5.0, 8.073858296891782, 5.011182039683378)
Engine Combustion¶
- chemicals.combustion.Perez_Boehman_RON_from_ignition_delay(ignition_delay)[source]¶
Esimates the research octane number (RON) from a known ignition delay, as shown in [1].
In the above equation, ignition delay is in ms.
Notes
The correlation was developed using 20 components, for a range of approximately 3.6 ms to 67 ms.
References
- 1
Perez, Peter L., and André L. Boehman. “Experimental Investigation of the Autoignition Behavior of Surrogate Gasoline Fuels in a Constant-Volume Combustion Bomb Apparatus and Its Relevance to HCCI Combustion.” Energy & Fuels 26, no. 10 (October 18, 2012): 6106-17. https://doi.org/10.1021/ef300503b.
Examples
>>> Perez_Boehman_RON_from_ignition_delay(1/150) 56.948
- chemicals.combustion.Perez_Boehman_MON_from_ignition_delay(ignition_delay)[source]¶
Esimates the motor octane number (MON) from a known ignition delay, as shown in [1].
In the above equation, ignition delay is in ms.
Notes
The correlation was developed using 20 components, for a range of approximately 3.6 ms to 67 ms.
References
- 1
Perez, Peter L., and André L. Boehman. “Experimental Investigation of the Autoignition Behavior of Surrogate Gasoline Fuels in a Constant-Volume Combustion Bomb Apparatus and Its Relevance to HCCI Combustion.” Energy & Fuels 26, no. 10 (October 18, 2012): 6106-17. https://doi.org/10.1021/ef300503b.
Examples
>>> Perez_Boehman_MON_from_ignition_delay(1/150) 53.7205
- chemicals.combustion.octane_sensitivity(RON, MON)[source]¶
This function calculates the octane sensitivity of a fuel [1].
- Parameters
- Returns
- OS
float
Octane sensitivity, [-]
- OS
References
- 1
Lehn, Florian vom, Liming Cai, Rupali Tripathi, Rafal Broda, and Heinz Pitsch. “A Property Database of Fuel Compounds with Emphasis on Spark-Ignition Engine Applications.” Applications in Energy and Combustion Science 5 (March 1, 2021): 100018. https://doi.org/10.1016/j.jaecs.2020.100018.
Examples
>>> octane_sensitivity(RON=90, MON=74) 16
- chemicals.combustion.AKI(RON, MON)[source]¶
This function calculates the anti knock index (AKI) of a fuel, also known as (R+M)/2 and by DON [1].
- Parameters
- Returns
- AKI
float
Average of RON and MON, [-]
- AKI
Notes
This is the number displayed at the gas pumps in North America; in Europe and Asia the RON is displayed.
References
- 1
McKinsey. “Octane.” Accessed April 18, 2022. http://www.mckinseyenergyinsights.com/resources/refinery-reference-desk/octane/.
Examples
>>> AKI(RON=90, MON=74) 82.0
- chemicals.combustion.IDT_to_DCN(IDT)[source]¶
This function converts the ignition delay time [1] into a derived cetane number.
If the ignition delay time is between 3.1 and 6.5 ms:
Otherwise:
Notes
This conversion is described in D6890-168.
References
- 1
Al Ibrahim, Emad, and Aamir Farooq. “Prediction of the Derived Cetane Number and Carbon/Hydrogen Ratio from Infrared Spectroscopic Data.” Energy & Fuels 35, no. 9 (May 6, 2021): 8141-52. https://doi.org/10.1021/acs.energyfuels.0c03899.
- 2
Dahmen, Manuel, and Wolfgang Marquardt. “A Novel Group Contribution Method for the Prediction of the Derived Cetane Number of Oxygenated Hydrocarbons.” Energy & Fuels 29, no. 9 (September 17, 2015): 5781-5801. https://doi.org/10.1021/acs.energyfuels.5b01032.
Examples
>>> IDT_to_DCN(4e-3) 51.11
Lookup Functions¶
- chemicals.combustion.RON(CASRN, method=None)[source]¶
This function handles the retrieval of a chemical’s research octane number (RON). Lookup is based on CASRNs. Will automatically select a data source to use if no method is provided; returns None if the data is not available.
Function has data for approximately 1400 chemicals.
- Parameters
- CASRN
str
CASRN [-]
- CASRN
- Returns
- RON
float
Research octane number, [-]
- RON
- Other Parameters
- method
str
,optional
A string for the method name to use, as defined by constants in RON_methods
- method
Notes
The available sources are as follows:
‘FLORIAN_LIMING’, the experimental values compiled in [1].
‘FLORIAN_LIMING_ANN’, a set of predicted values using a QSPR-ANN model developed in the author’s earlier publication [3], from 260 comonents.
‘COMBUSTDB’, a compilation of values from various sources [2].
‘COMBUSTDB_PREDICTIONS’, a set of predicted values developed by the author of CombustDB (Travis Kessler) using the tool [4].
References
- 1
Lehn, Florian vom, Liming Cai, Rupali Tripathi, Rafal Broda, and Heinz Pitsch. “A Property Database of Fuel Compounds with Emphasis on Spark-Ignition Engine Applications.” Applications in Energy and Combustion Science 5 (March 1, 2021): 100018. https://doi.org/10.1016/j.jaecs.2020.100018.
- 2
Kessler, Travis. CombustDB. Python. 2019. UMass Lowell Energy and Combustion Research Laboratory, 2021. https://github.com/ecrl/combustdb.
- 3
Lehn, Florian vom, Benedict Brosius, Rafal Broda, Liming Cai, and Heinz Pitsch. “Using Machine Learning with Target-Specific Feature Sets for Structure-Property Relationship Modeling of Octane Numbers and Octane Sensitivity.” Fuel 281 (December 1, 2020): 118772. https://doi.org/10.1016/j.fuel.2020.118772.
- 4
Kessler, Travis, and John Hunter Mack. “ECNet: Large Scale Machine Learning Projects for Fuel Property Prediction.” Journal of Open Source Software 2, no. 17 (2017): 401.
Examples
>>> RON(CASRN='64-17-5') 108.6
- chemicals.combustion.RON_methods(CASRN)[source]¶
Return all methods available to obtain the research octane number (RON) for the desired chemical.
- Parameters
- CASRN
str
CASRN, [-]
- CASRN
- Returns
See also
- chemicals.combustion.RON_all_methods = ('FLORIAN_LIMING', 'COMBUSTDB', 'FLORIAN_LIMING_ANN', 'COMBUSTDB_PREDICTIONS')¶
Tuple of method name keys. See the RON for the actual references
- chemicals.combustion.MON(CASRN, method=None)[source]¶
This function handles the retrieval of a chemical’s motor octane number (MON). Lookup is based on CASRNs. Will automatically select a data source to use if no method is provided; returns None if the data is not available.
Function has data for approximately 1400 chemicals.
- Parameters
- CASRN
str
CASRN [-]
- CASRN
- Returns
- MON
float
Research octane number, [-]
- MON
- Other Parameters
- method
str
,optional
A string for the method name to use, as defined by constants in MON_methods
- method
Notes
The available sources are as follows:
‘FLORIAN_LIMING’, the experimental values compiled in [1].
‘FLORIAN_LIMING_ANN’, a set of predicted values using a QSPR-ANN model developed in the author’s earlier publication [3], from 260 comonents.
‘COMBUSTDB’, a compilation of values from various sources [2].
‘COMBUSTDB_PREDICTIONS’, a set of predicted values developed by the author of CombustDB (Travis Kessler) using the tool [4].
References
- 1
Lehn, Florian vom, Liming Cai, Rupali Tripathi, Rafal Broda, and Heinz Pitsch. “A Property Database of Fuel Compounds with Emphasis on Spark-Ignition Engine Applications.” Applications in Energy and Combustion Science 5 (March 1, 2021): 100018. https://doi.org/10.1016/j.jaecs.2020.100018.
- 2
Kessler, Travis. CombustDB. Python. 2019. UMass Lowell Energy and Combustion Research Laboratory, 2021. https://github.com/ecrl/combustdb.
- 3
Lehn, Florian vom, Benedict Brosius, Rafal Broda, Liming Cai, and Heinz Pitsch. “Using Machine Learning with Target-Specific Feature Sets for Structure-Property Relationship Modeling of Octane Numbers and Octane Sensitivity.” Fuel 281 (December 1, 2020): 118772. https://doi.org/10.1016/j.fuel.2020.118772.
- 4
Kessler, Travis, and John Hunter Mack. “ECNet: Large Scale Machine Learning Projects for Fuel Property Prediction.” Journal of Open Source Software 2, no. 17 (2017): 401.
Examples
>>> MON(CASRN='64-17-5') 89.7
- chemicals.combustion.MON_methods(CASRN)[source]¶
Return all methods available to obtain the motor octane number (MON) for the desired chemical.
- Parameters
- CASRN
str
CASRN, [-]
- CASRN
- Returns
See also
- chemicals.combustion.MON_all_methods = ('FLORIAN_LIMING', 'COMBUSTDB', 'FLORIAN_LIMING_ANN', 'COMBUSTDB_PREDICTIONS')¶
Tuple of method name keys. See the MON for the actual references
- chemicals.combustion.ignition_delay(CASRN, method=None)[source]¶
This function handles the retrieval of a chemical’s ignition delay time (IDT). Lookup is based on CASRNs. Will automatically select a data source to use if no method is provided; returns None if the data is not available.
Function has data for approximately 60 chemicals.
- Parameters
- CASRN
str
CASRN [-]
- CASRN
- Returns
- ignition_delay
float
Ignition delay time, [s]
- ignition_delay
- Other Parameters
- method
str
,optional
A string for the method name to use, as defined by constants in ignition_delay_all_methods
- method
Notes
The available sources are as follows:
‘DAHMEN_MARQUARDT’, the experimental values compiled in [1]; all timings come from the IQT tester device
Note that different measurement devices can give different results.
References
- 1
Dahmen, Manuel, and Wolfgang Marquardt. “A Novel Group Contribution Method for the Prediction of the Derived Cetane Number of Oxygenated Hydrocarbons.” Energy & Fuels 29, no. 9 (September 17, 2015): 5781-5801. https://doi.org/10.1021/acs.energyfuels.5b01032.
Examples
>>> ignition_delay(CASRN='110-54-3') 0.0043
- chemicals.combustion.ignition_delay_methods(CASRN)[source]¶
Return all methods available to obtain the ignition delay time (IDT) for the desired chemical.
- Parameters
- CASRN
str
CASRN, [-]
- CASRN
- Returns
See also
- chemicals.combustion.ignition_delay_all_methods = ('DAHMEN_MARQUARDT',)¶
Tuple of method name keys. See the ignition_delay for the actual references