bonsai_ipcc.ppf.methanol package

Submodules

bonsai_ipcc.ppf.methanol.elementary module

Methanol production pathways: Chemical reactions and utilities for sequences of reactions.

References

[1] Levi, P. G., & Cullen, J. M. (2018). Mapping Global Flows of Chemicals: From Fossil Fuel Feedstocks to Chemical Products. Environmental Science & Technology, 52(4), 1725-1734. https://doi.org/10.1021/acs.est.7b04573

[2] Kajaste, R., Hurme, M., & Oinas, P. (2018). Methanol-Managing greenhouse gas emissions in the production chain by optimizing the resource base. AIMS Energy, 6(6), 1074-1102. https://doi.org/10.3934/energy.2018.6.1074

[3] Behr, A. (2014). Methanol: The Basic Chemical and Energy Feedstock of the Future. Asinger’s Vision Today. Edited by Martin Bertau, Heribert Offermanns, Ludolf Plass, Friedrich Schmidt and Hans-Jürgen Wernicke. Angewandte Chemie International Edition, 53(47), 12674. https://doi.org/10.1002/anie.201409583

[4] Bertau, M., Offermanns, H., Plass, L., Schmidt, F., & Wernicke, H.-J. (2013). Methanol: The Basic Chemical and Energy Feedstock of the Future. Springer. https://doi.org/10.1007/978-3-642-39709-7

[5] Stephan, D. W. (2013). Beyond Oil and Gas: The Methanol Economy. Second Updated and Enlarged Edition.

By George A. Olah, Alain Goeppert, G. K. Surya Prakash. Energy Technology, 1(12), 777. https://doi.org/10.1002/ente.201305018

Created: 2024-06-13 Description: Methanol parameterised production function equations. Scope: KR Project WP5.2 Data Collection for disaggregated production functions Author: Albert K. Osei-Owusu Institution: Department of Sustainability and Planning, Aalborg University Email: ako@plan.aau.dk

bonsai_ipcc.ppf.methanol.elementary.adjusted_reverse_csr_with_TCs(CH4O_tonnes: float, n: float, sg_efficiency: float = 81, ms_efficiency: float = 93) -> (<class 'float'>, <class 'float'>, <class 'float'>, <class 'float'>, <class 'str'>, <class 'float'>, <class 'dict'>)[source]

Adjusted ‘reverse CSR’ function to calculate the required reactants and the by‐product water for the reaction:

CH_n + H₂O + ((n-3)/3) CO₂ → ((n)/3) CH₄O + ((n-3)/3) H₂O

The ideal stoichiometric ratios (per 1 mole CH₄O produced) are:
  • CH_n (input): 3/n moles

  • H₂O (input): 3/n moles

  • CO₂ (input): (n-3)/n moles

  • H₂O (by‐product): (n-3)/n moles

Because the process is not 100% efficient, extra reactants must be fed. The overall efficiency is sg_efficiency × ms_efficiency and the ideal (100% efficient) feed is scaled by the usage multiplier = 1 / (sg_efficiency * 0.01) × (ms_efficiency * 0.01)

Transfer Coefficients – defined on the basis of the reacted (ideal) feed:
  • For CH_n and CO₂: All the carbon in the reacted feed is incorporated into methanol.
    • TC_meoh = 100% (i.e. 100% of the reacted CH_n and CO₂ goes to CH₄O)

    • TC_water = 0%

  • For H₂O: The ideal stoichiometric split is:
    • Water input per mole CH₄O = 3/n moles

    • Water by‐product per mole CH₄O = (n-3)/n moles

    Thus, the fraction of water input that becomes by‐product is:

    ideal_water_fraction = (n-3)/3.

    Hence,
    • TC_H2O_water = (n-3)/3 × 100%

    • TC_H2O_meoh = 100% - TC_H2O_water

Parameters:
  • CH4O_tonnes (float) – Tonnes of methanol (CH₄O) to be produced.

  • n (float) – Number of hydrogen atoms in the feedstock hydrocarbon (CH_n). For natural gas, n = 4. Must be >= 3.

  • sg_efficiency (float, optional) – Synthesis gas preparation efficiency (%, default 81).

  • ms_efficiency (float, optional) – Methanol synthesis efficiency (%, default 93).

Returns:

  • CHn_tonnes_required (float) – Tonnes of hydrocarbon (CH_n) required.

  • H2O_tonnes_input_required (float) – Tonnes of water (H₂O) required as input.

  • H2O_tonnes_output (float) – Tonnes of water (H₂O) produced as by‐product.

  • CO2_tonnes_consumed (float) – Tonnes of carbon dioxide (CO₂) consumed.

  • limiting_reagent_name (str) – The reagent that becomes limiting (smallest in moles).

  • excess_tonnes (float) – Tonnes of excess reagent remaining after the reaction.

  • transfer_coeffs (dict) –

    A dictionary with six keys:

    ”CHn_meoh”: % of CH_n feed (by mass) transferred to methanol. “CHn_water”: % of CH_n feed not transferred to methanol. “H2O_meoh”: % of H₂O feed contributing to methanol. “H2O_water”: % of H₂O feed appearing as by‐product water. “CO2_meoh”: % of CO₂ feed transferred to methanol. “CO2_water”: % of CO₂ feed not transferred to methanol.

bonsai_ipcc.ppf.methanol.elementary.adjusted_reverse_pox_with_TCs(CH4O_tonnes: float, n: float, sg_efficiency: float = 81, ms_efficiency: float = 93) -> (<class 'float'>, <class 'float'>, <class 'float'>, <class 'float'>, <class 'str'>, <class 'float'>, <class 'dict'>)[source]

Adjusted partial oxidation (POX) function for methanol production. Computes stoichiometric amounts, applies inefficiency scaling, identifies limiting reagent, and calculates Transfer Coefficients (TCs) for CH_n, O₂, and H₂O among methanol (CH₄O), CO₂, and unreacted feed.

Reaction (for n < 4, e.g. n=2):

2 CH_n + O₂ + (4 - n)/3 H₂O → (n + 2)/3 CH₄O + (4 - n)/3 CO₂

We define usage_multiplier = 1/((sg_efficiency × 0.01) (ms_efficiency× 0.01)) The fraction 1/usage_multiplier is the “reacted fraction.” The remainder is unreacted.

Each input’s Transfer Coefficients (TC) are given as the percentage that ends up in methanol, in CO₂, or is unreacted. Summation = 100 %.

Returns:

  • CHn_tonnes_required (float) – Actual feed of hydrocarbon (CH_n).

  • O2_tonnes_required (float) – Actual feed of oxygen (O₂).

  • H2O_tonnes_required (float) – Actual feed of water (H₂O).

  • CO2_tonnes_produced (float) – Tonnes of CO₂ formed stoichiometrically (i.e., for the reacted portion).

  • limiting_reagent (str) – Which feed is limiting after the inefficiency scaling.

  • excess_tonnes (float) – Tonnage of leftover feed from the other reagents.

  • transfer_coeffs (dict) –

    9 keys: For each input (CHn, O2, H2O):
    • ”<input>_meoh” – fraction (in %) going to methanol

    • ”<input>_co2” – fraction (in %) going to CO₂

    • ”<input>_unreacted” – leftover fraction (in %)

    Summation = 100 % per input.

bonsai_ipcc.ppf.methanol.elementary.autothermal_reforming_general(CmHn_tonnes: float, H2O_tonnes: float, O2_tonnes: float, m: int, n: int) -> (<class 'float'>, <class 'float'>, <class 'str'>, <class 'str'>, <class 'float'>)[source]

General autothermal reforming reaction for hydrocarbons to carbon monoxide and hydrogen, with inputs in tonnes and outputs in tonnes (Equation 4.9 in [1]). Also identifies the limiting reagent, excess reagent, and the excess amount.

The reaction is as follows, with all quantities in tonnes: CmHn + m/2H2O + m/4O2 -> mCO + (m/2 + n/2)H2

Parameters: - CmHn_tonnes: float, tonnes of hydrocarbon (CmHn). - H2O_tonnes: float, tonnes of water. - O2_tonnes: float, tonnes of oxygen. - m: int, number of carbon atoms in the hydrocarbon. - n: int, number of hydrogen atoms in the hydrocarbon.

Returns: - float, tonnes of carbon monoxide produced. - float, tonnes of hydrogen produced. - str, the limiting reagent. - str, the excess reagent. - float, tonnes of the excess reagent remaining after the reaction.

bonsai_ipcc.ppf.methanol.elementary.autothermal_reforming_of_methane(CH4_tonnes: float, H2O_tonnes: float, O2_tonnes: float) -> (<class 'float'>, <class 'float'>, <class 'str'>, <class 'str'>, <class 'float'>)[source]

Autothermal reforming of methane to carbon monoxide and hydrogen, Also identifies the limiting reagent, excess reagent, and the excess amount (Equation 4.8 in [1])..

The reaction is as follows, with all quantities in tonnes: CH4 + 1/2H2O + 1/4O2 -> CO + 2.5H2 Parameters - CH4_tonnes: float, tonnes of methane. - H2O_tonnes: float, tonnes of water. - O2_tonnes: float, tonnes of oxygen.

Returns - float, tonnes of carbon monoxide produced. - float, tonnes of hydrogen produced. - str, the limiting reagent. - str, the excess reagent. - float, tonnes of the excess reagent remaining after the reaction.

bonsai_ipcc.ppf.methanol.elementary.autothermal_reforming_of_methanol(CH4O_tonnes: float, H2O_tonnes: float, O2_tonnes: float) -> (<class 'float'>, <class 'float'>, <class 'str'>, <class 'str'>, <class 'float'>)[source]

Autothermal reforming of methanol to carbon dioxide and hydrogen, Also identifies the limiting reagent, excess reagent, and the excess amount (Equation 4.10 in [1]).

The reaction is as follows, with all quantities in tonnes: CH4O + 1/2H2O + 1/4O2 -> CO2 + 2.5H2 DELTA_H = -44 kJ/mol

Parameters: - CH4O_tonnes: float, tonnes of methanol. - H2O_tonnes: float, tonnes of water. - O2_tonnes: float, tonnes of oxygen.

Returns: - float, tonnes of carbon dioxide produced. - float, tonnes of hydrogen produced. - str, the limiting reagent. - str, the excess reagent. - float, tonnes of the excess reagent remaining after the reaction.

bonsai_ipcc.ppf.methanol.elementary.bio_combustion(biomass_type: Literal['dry', 'wet_biomass', 'rice_straw', 'lipid_rich_biomass', 'agric_waste', 'isw', 'carbonaceous_biomass'], biomass_tonnes: float) Tuple[float, float, float][source]

Return the tonnes of products and oxidant consumed during complete combustion of a given biomass type.

── Stoichiometric equations used ───────────────────────────────────────

Dry biomass : C₆H₉O₄ + 6.25 O₂ → 6 CO₂ + 4.5 H₂O Wet biomass : C₆H₉O₄·2H₂O + 6.25 O₂ → 6 CO₂ + 6.5 H₂O Straw / Food / Carb.-rich : C₆H₁₀O₅ + 6 O₂ → 6 CO₂ + 5 H₂O Lipid-rich biomass : C₅₇H₁₀₄O₆ + 78 O₂ → 57 CO₂ + 52 H₂O Agric. waste (high-H) : C₆H₁₂O₆ + 6 O₂ → 6 CO₂ + 6 H₂O

Parameters:
  • biomass_type (str) – Key identifying the feedstock category.

  • biomass_tonnes (float) – Mass of dry biomass to combust (t).

Returns:

(CO2_tonnes, H2O_tonnes, O2_tonnes_consumed)

Return type:

Tuple[float, float, float]

Raises:

ValueError – If an unknown biomass_type is supplied.

bonsai_ipcc.ppf.methanol.elementary.boudouard_reaction(C_tonnes: float, CO2_tonnes: float) -> (<class 'float'>, <class 'str'>, <class 'str'>, <class 'float'>)[source]

Boudouard reaction of carbon with carbon dioxide to produce carbon monoxide, Also identifies the limiting reagent, excess reagent, and the excess amount (Equation 4.14 in [1]).

Stoichiometry: C + CO2 -> 2CO (DELTA_H = +172 kJ/mol)

Parameters - C_tonnes: float, tonnes of carbon. - CO2_tonnes: float, tonnes of carbon dioxide.

Returns - float, tonnes of carbon monoxide produced. - str, the limiting reagent. - str, the excess reagent. - float, tonnes of the excess reagent remaining after the reaction.

bonsai_ipcc.ppf.methanol.elementary.by_product_supply(pp_i: float, lci_coefficient: float) float[source]

Calculate the amount of by-products produced during methanol production.

Parameters:
  • pp_i (float) – Amount of produced methanol (t/yr)

  • lci_coefficient (float) – Ratio factor for by-product production (t/t)

Returns:

Amount of by-product produced by the activity (t/yr)

Return type:

float

bonsai_ipcc.ppf.methanol.elementary.calculate_feedstock_requirements(pp_meoh: float, lci_coefficients: Dict[str, float]) Dict[str, float][source]

Calculate feedstock requirements for multiple resources, handling None or NaN values.

Parameters:

pp_meohfloat

The total volume of methanol produced in tonnes.

lci_coefficientsdict

A dictionary where the key is the name of the resource and the value is the corresponding LCI coefficient.

Returns:

dict

A dictionary where the key is the name of the resource and the value is the calculated feedstock requirement. If the coefficient is None or NaN, the value will be NaN.

bonsai_ipcc.ppf.methanol.elementary.carbon_formation_from_hydrocarbons(CmHn_tonnes: float, x: float, m: int, n: int) -> (<class 'float'>, <class 'float'>, <class 'str'>, <class 'str'>, <class 'float'>)[source]

Carbon formation from general hydrocarbons, with inputs in tonnes and outputs in tonnes(Equation 4.16 in [1]). Stoichiometry: CmHn -> xC + Cm-xHn-2x + xH2

Parameters: - CmHn_tonnes: float, tonnes of hydrocarbon (CmHn). - x: float, moles of carbon that reacts to form carbon monoxide and remaining hydrocarbon. - m: int, number of carbon atoms in the hydrocarbon. - n: int, number of hydrogen atoms in the hydrocarbon.

Returns: - float, tonnes of carbon produced. - float, tonnes of hydrogen produced. - str, the limiting reagent. - str, the excess reagent. - float, tonnes of the excess reagent.

bonsai_ipcc.ppf.methanol.elementary.carbon_formation_from_methane(CH4_tonnes: float) -> (<class 'float'>, <class 'float'>, <class 'str'>, <class 'float'>)[source]

Carbon formation from methane, with inputs in tonnes and outputs in tonnes(Equation 4.15 in [1]). Stoichiometry: CH4 -> C + 2H2

Parameters: - CH4_tonnes: float, tonnes of methane.

Returns: - float, tonnes of carbon produced. - float, tonnes of hydrogen produced. - str, indicating the reactant ‘CH4’ as it’s directly converted. - float, the amount of reactant used (tonnes), equal to the input as all is converted.

bonsai_ipcc.ppf.methanol.elementary.co_hydrogenation(CO_tonnes: float, H2_tonnes: float) -> (<class 'float'>, <class 'str'>, <class 'str'>, <class 'float'>)[source]

Carbon monoxide hydrogenation reaction to produce methanol (CH4O), with inputs in tonnes and outputs in tonnes. The molecular weights for CO, H2, and CH4O are constants defined outside the function.

The reaction is as follows: CO + 2H2 <-> CH4O DELTA_H = -90.7 kJ/mol (Equation 12 in [2])

Parameters: - CO_tonnes: float, tonnes of carbon monoxide. - H2_tonnes: float, tonnes of hydrogen.

Returns: - float, tonnes of methanol produced. - str, the limiting reagent. - str, the excess reagent. - float, tonnes of the excess reagent remaining after the reaction.

bonsai_ipcc.ppf.methanol.elementary.co_oxidation(CO_tonnes: float, O2_tonnes: float) -> (<class 'float'>, <class 'str'>, <class 'str'>, <class 'float'>)[source]

Selective CO oxidation to produce carbon dioxide (Equation 4.21 in [1]). Stoichiometry: CO + O2 -> CO2

Parameters: - CO_tonnes: float, tonnes of carbon monoxide. - O2_tonnes: float, tonnes of oxygen.

Returns: - float, tonnes of carbon dioxide produced. - str, the limiting reagent. - str, the excess reagent. - float, tonnes of the excess reagent remaining after the reaction.

bonsai_ipcc.ppf.methanol.elementary.coal_requirements(tons_CH4: float, carbon_fraction_coal: float) float[source]

Calculate the mass of coal required, given the tonnes of methane obtained from coal-based CSR and the carbon fraction of coal in weight percent (expressed as a decimal).

Parameters:
  • tons_CH4 (float) – Tonnes of methane (CH4) derived from coal for CSR.

  • carbon_fraction_coal (float) – Fraction of coal mass that is carbon (e.g. 0.65 for 65 wt% carbon).

Returns:

The mass of coal required in tonnes.

Return type:

float

bonsai_ipcc.ppf.methanol.elementary.combined_reforming(CH4_tonnes: float, O2_tonnes: float) -> (<class 'float'>, <class 'float'>, <class 'float'>, <class 'str'>, <class 'float'>)[source]

Implements the combined reforming process for methanol synthesis from methane.

Based on the stoichiometry of the reactions: CH4 + 1/2 O2 -> CO + 2 H2 Followed by: CO + 2 H2 -> CH4O DELTA_H = -98 kJ mol-1

Parameters: - CH4_tonnes: tonnes of methane. - O2_tonnes: tonnes of oxygen.

Returns: - tonnes of methanol produced. - tonnes of carbon monoxide produced. - tonnes of hydrogen produced. - The limiting reactant. - float, tonnes of the excess reagent remaining after the reaction.

bonsai_ipcc.ppf.methanol.elementary.combustion_carbon_to_co2(C_tonnes: float, O2_tonnes: float) -> (<class 'float'>, <class 'str'>, <class 'str'>, <class 'float'>)[source]

Combustion of carbon to produce carbon dioxide, Also identifies the limiting reagent, excess reagent, and the excess amount (Equation 4.12 in [1]).

Parameters: - C_tonnes: float, tonnes of carbon. - O2_tonnes: float, tonnes of oxygen.

Returns: - float, tonnes of carbon dioxide produced. - str, the limiting reagent. - str, the excess reagent. - float, tonnes of the excess reagent remaining after the reaction.

Notes: The reaction is as follows, with all quantities in tonnes: C + O2 -> CO2

bonsai_ipcc.ppf.methanol.elementary.csr_combined(CHn_tonnes: float, H2O_tonnes: float, CO2_tonnes: float, n: float) -> (<class 'float'>, <class 'float'>, <class 'float'>, <class 'str'>, <class 'str'>, <class 'float'>)[source]

Steam methane reforming/Conventional steam reforming process for syngas production used in methanol synthesis for n > 3, with inputs in tonnes and outputs in tonnes. CHn + H2O + (n - 3)/3 CO2 -> (n/3) CO + (2n/3) H2 + (n-3)/3 H2O

Parameters: - CHn_tonnes: float, tonnes of hydrocarbon (CHn). - H2O_tonnes: float, tonnes of water. - CO2_tonnes: float, tonnes of carbon dioxide. - n: float, Number of hydrogen atoms in the hydrocarbon.

Returns: - float, tonnes of carbon monoxide (CO) produced. - float, tonnes of hydrogen (H2) produced. - float, tonnes of water (H2O) produced or consumed net. - str, the limiting reagent. - str, the excess reagent. - float, tonnes of the excess reagent remaining after the reaction.

bonsai_ipcc.ppf.methanol.elementary.csr_input_requirements(CO_tonnes: float, H2_tonnes: float) -> (<class 'float'>, <class 'float'>, <class 'str'>, <class 'float'>)[source]

Calculate the input requirements for steam methane reforming based on the desired syngas output.

The reaction is as follows (for the reverse process): CO + 3H2 -> CH4 + H2O DELTA_H = -203/-206 kJ/mol

Parameters: - CO_tonnes: float, tonnes of carbon monoxide. - H2_tonnes: float, tonnes of hydrogen.

Returns: - float, tonnes of methane required. - float, tonnes of water required. - str, the reagent that is in excess. - float, tonnes of the excess reagent remaining after the reaction.

bonsai_ipcc.ppf.methanol.elementary.direct_partial_oxidation_of_methanol(CH4O_tonnes: float) -> (<class 'float'>, <class 'float'>, <class 'str'>, <class 'float'>)[source]

Direct partial oxidation of methanol to carbon monoxide and hydrogen, with inputs in tonnes and outputs in tonnes (Equation 4.7 in [1]).

Parameters: - CH4O_tonnes: float, tonnes of methanol.

Returns: - float, tonnes of carbon monoxide produced. - float, tonnes of hydrogen produced. - str, indicating the reactant ‘CH4O’ as it’s directly converted. - float, the amount of reactant used (tonnes), equal to the input as all is converted.

Notes: The reaction is as follows, with all quantities in tonnes: CH4O -> CO + 2H2 DELTA_H = -44 kJ/mol

bonsai_ipcc.ppf.methanol.elementary.gas_requirements(tons_CH4: float, density_gas: float, CH4_vol_percent: float) -> (<class 'float'>, <class 'float'>)[source]

Calculate the required quantity of gas from the mass of methane (CH4) in tonnes.

Parameters:
  • tons_CH4 (float) – The mass of methane (CH4) in tonnes intended for methanol production.

  • density_gas (float) – The density of gas in kg/m³ under specific conditions.

  • CH4_vol_percent (float) – The volume percentage of methane (CH4) in the gas mixture.

Returns:

  • float – The quantity of gas required in tonnes.

  • float – The volume of gas required in cubic meters.

bonsai_ipcc.ppf.methanol.elementary.gasification(C_tonnes: float, O2_tonnes: float, H2O_tonnes: float) -> (<class 'float'>, <class 'float'>, <class 'str'>, <class 'float'>)[source]

Implements the coal and biomass gasification process.

Stoichiometry: 3C + O2 + H2O -> 3CO + H2 (DELTA_H = -142.22 kJ/mol)

Parameters: - C_tonnes: Tonnes of carbon. - O2_tonnes: Tonnes of oxygen. - H2O_tonnes: Tonnes of water.

Returns: - Tonnes of carbon monoxide produced. - Tonnes of hydrogen produced. - The limiting reactant. - Tonnes of the excess reactant remaining after the reaction.

bonsai_ipcc.ppf.methanol.elementary.gasification_of_carbon_with_steam(C_tonnes: float, H2O_tonnes: float) -> (<class 'float'>, <class 'float'>, <class 'str'>, <class 'str'>, <class 'float'>)[source]

Gasification of carbon with water to produce carbon monoxide and hydrogen, Also identifies the limiting reagent, excess reagent, and the excess amount (Equation 4.11 in [1]).

Parameters: - C_tonnes: float, tonnes of carbon. - H2O_tonnes: float, tonnes of water.

Returns: - float, tonnes of carbon monoxide produced. - float, tonnes of hydrogen produced. - str, the limiting reagent. - str, the excess reagent. - float, tonnes of the excess reagent remaining after the reaction.

Notes: The reaction is as follows, with all quantities in tonnes: C + H2O -> CO + H2

bonsai_ipcc.ppf.methanol.elementary.h2_oxidation(H2_tonnes: float, O2_tonnes: float) -> (<class 'float'>, <class 'str'>, <class 'str'>, <class 'float'>)[source]

Oxidation of hydrogen to produce water (Equation 4.22 in [1]), Stoichiometry: H2 + 0.5O2 -> H2O

Parameters: - H2_tonnes: float, tonnes of hydrogen. - O2_tonnes: float, tonnes of oxygen.

Returns: - float, tonnes of water produced. - str, the limiting reagent. - str, the excess reagent. - float, tonnes of the excess reagent remaining after the reaction.

bonsai_ipcc.ppf.methanol.elementary.methane_extraction_from_biomass(biomass_type: Literal['dry_biomass', 'wet_biomass', 'rice_straw', 'lipid_rich_biomass', 'agric_waste', 'isw', 'carbonaceous_biomass'], biomass_tonnes: float) Tuple[float, float, float][source]

Compute the methane-pathway products (t CH₄, t CO₂, t H₂O) for a given mass of biomass.

── Stoichiometric equations used ───────────────────────────────────────

Dry biomass (C₆H₉O₄) : C₆H₉O₄ → 3 CH₄ + 3 CO₂ Wet biomass (C₆H₉O₄·2H₂O) : C₆H₉O₄·2H₂O → 3 CH₄ + 3 CO₂ + 2 H₂O Straw (C₆H₁₀O₅) : C₆H₁₀O₅ → 3 CH₄ + 3 CO₂ + 0.5 H₂O Lipid-rich biomass (C₅₇H₁₀₄O₆) : C₅₇H₁₀₄O₆ → 26 CH₄ + 31 CO₂ Agricultural waste, high-H (C₆H₁₂O₆): C₆H₁₂O₆ → 3 CH₄ + 3 CO₂ + 1.5 H₂O Food-processing residues (= (appr.)C₆H₁₀O₅) : C₆H₁₀O₅ → 3 CH₄ + 3 CO₂ + 0.5 H₂O Carbohydrate-rich biomass (C₆H₁₀O₅) : C₆H₁₀O₅ → 3 CH₄ + 3 CO₂ + 0.5 H₂O

Parameters:
  • biomass_type (str) – Key for the feedstock class listed above.

  • biomass_tonnes (float) – Mass of dry biomass fed, in tonnes.

Returns:

(CH4_tonnes, CO2_tonnes, H2O_tonnes) H₂O_tonnes is 0.0 when no water is generated by the equation.

Return type:

Tuple[float, float, float]

Raises:

ValueError – If biomass_type is not recognised.

bonsai_ipcc.ppf.methanol.elementary.methanol_synthesis_w_co2(CO2_tonnes: float, H2_tonnes: float) -> (<class 'float'>, <class 'float'>, <class 'str'>, <class 'float'>)[source]

Methanol and water production from carbon dioxide and hydrogen, with outputs in tonnes.

The reaction is as follows: CO2 + 3H2 -> CH4O + H2O DELTA_H = +90.7 kJ/mol / DELTA_H = -58 kJ mol-1 (Equation 13 in [2])

Parameters: - CO2_tonnes: float, tonnes of carbon dioxide. - H2_tonnes: float, tonnes of hydrogen.

Returns: - float, tonnes of methanol produced. - float, tonnes of water produced. - str, the limiting reagent. - float, tonnes of the excess reagent remaining after the reaction.

bonsai_ipcc.ppf.methanol.elementary.partial_oxidation_carbon_to_CO(C_tonnes: float, O2_tonnes: float) -> (<class 'float'>, <class 'str'>, <class 'str'>, <class 'float'>)[source]

Partial oxidation of carbon to produce carbon monoxide, Also identifies the limiting reagent, excess reagent, and the excess amount (Equation 4.13 in [1]). Stoichiometry: C + 0.5O2 -> CO

Parameters: - C_tonnes: float, tonnes of carbon. - O2_tonnes: float, tonnes of oxygen.

Returns: - float, tonnes of carbon monoxide produced. - str, the limiting reagent. - str, the excess reagent. - float, tonnes of the excess reagent remaining after the reaction.

bonsai_ipcc.ppf.methanol.elementary.partial_oxidation_combined(CHn_tonnes: float, O2_tonnes: float, H2O_tonnes: float, n: float) -> (<class 'float'>, <class 'float'>, <class 'float'>, <class 'str'>, <class 'float'>)[source]

Methanol production from oil or coal using the partial oxidation process, with all quantities in tonnes. The reaction is as follows: 2CHn + O2 + (4-n)/3 H2O -> (n+2)/3 CH4O + (4-n)/3 CO2

Parameters: - CHn_tonnes: float, Tonnes of hydrocarbon (CHn). - O2_tonnes: float, Tonnes of oxygen. - H2O_tonnes: float, Tonnes of water. - n: float, Number of hydrogen atoms in the hydrocarbon.

Returns: - float, Tonnes of methanol (CH4O) produced. - float, Tonnes of carbon dioxide (CO2) produced. - float, Tonnes of water (H2O) consumed. - str, The limiting reactant in the reaction. - float, tonnes of the excess reagent remaining after the reaction.

bonsai_ipcc.ppf.methanol.elementary.partial_oxidation_general(CmHn_tonnes: float, O2_tonnes: float, m: int, n: int) -> (<class 'float'>, <class 'float'>, <class 'str'>, <class 'str'>, <class 'float'>)[source]

General partial oxidation reaction for hydrocarbons to carbon monoxide and hydrogen, also identifies the limiting and excess reagents and the excess amount.

The reaction is as follows: CmHn + (m/2)O2 -> mCO + (n/2)H2 DELTA_H = -41 kJ/mol

Parameters: - CmHn_tonnes: float, tonnes of hydrocarbon (CmHn). - O2_tonnes: float, tonnes of oxygen. - m: int, number of carbon atoms in the hydrocarbon. - n: int, number of hydrogen atoms in the hydrocarbon.

Returns: - float, tonnes of carbon monoxide produced. - float, tonnes of hydrogen produced. - str, the limiting reagent. - str, the excess reagent. - float, tonnes of the excess reagent remaining after the reaction.

bonsai_ipcc.ppf.methanol.elementary.partial_oxidation_of_methane(CH4_tonnes: float, O2_tonnes: float) -> (<class 'float'>, <class 'float'>, <class 'str'>, <class 'str'>, <class 'float'>)[source]

Partial oxidation of methane to carbon monoxide and hydrogen, Also identifies the limiting reagent, excess reagent, and the excess amount.

The reaction is as follows (Equation 4.4 in [1]): CH4 + 1/2O2 -> CO + 2H2 DELTA_H = -41 kJ/mol

Parameters: - CH4_tonnes: float, tonnes of methane. - O2_tonnes: float, tonnes of oxygen.

Returns: - float, tonnes of carbon monoxide produced. - float, tonnes of hydrogen produced. - str, the limiting reagent. - str, the excess reagent. - float, tonnes of the excess reagent remaining after the reaction.

bonsai_ipcc.ppf.methanol.elementary.partial_oxidation_of_methanol(CH4O_tonnes: float, O2_tonnes: float) -> (<class 'float'>, <class 'float'>, <class 'str'>, <class 'str'>, <class 'float'>)[source]

Partial oxidation of methanol to carbon dioxide and hydrogen (Equation 4.6 in [1]), Also identifies the limiting reagent, excess reagent, and the excess amount.

Parameters: - CH4O_tonnes: float, tonnes of methanol. - O2_tonnes: float, tonnes of oxygen.

Returns: - float, tonnes of carbon dioxide produced. - float, tonnes of hydrogen produced. - str, the limiting reagent. - str, the excess reagent. - float, tonnes of the excess reagent remaining after the reaction.

Notes: The reaction is as follows, with all quantities in moles: CH4O + 1/2O2 -> CO2 + 2H2

bonsai_ipcc.ppf.methanol.elementary.required_inputs_for_gasification(CO_tonnes: float, H2_tonnes: float) -> (<class 'float'>, <class 'float'>, <class 'float'>)[source]

Calculates the required inputs of carbon, oxygen, and water to produce a given amount of carbon monoxide and hydrogen via biomass/coal gasification.

Stoichiometry: 3C + O2 + H2O -> 3CO + H2

Parameters: - CO_tonnes: Tonnes of carbon monoxide desired. - H2_tonnes: Tonnes of hydrogen desired.

Returns: - Tonnes of carbon required. - Tonnes of oxygen required. - Tonnes of water required.

bonsai_ipcc.ppf.methanol.elementary.reverse_boudouard_reaction(CO_tonnes: float) -> (<class 'float'>, <class 'float'>, <class 'str'>, <class 'float'>)[source]

Reverse Boudouard reaction of carbon monoxide to produce carbon and carbon dioxide, with inputs in tonnes and outputs in tonnes (Equation 4.17 in [1]). Stoichiometry: 2CO -> C + CO2 (DELTA_H = -172 kJ/mol)

Parameters: - CO_tonnes: float, tonnes of carbon monoxide.

Returns: - float, tonnes of carbon produced. - float, tonnes of carbon dioxide produced. - str, indicating the reactant ‘CO’ as it’s directly converted. - float, the amount of reactant used (tonnes), equal to half the input as CO reacts in a 2:1 ratio.

bonsai_ipcc.ppf.methanol.elementary.reverse_co2_hydrogenation(CH4O_tonnes: float) -> (<class 'float'>, <class 'float'>)[source]

Calculates the tonnes of carbon dioxide (CO₂) and hydrogen (H₂) required to produce a given amount of methanol (CH₄O) via the reverse CO₂ hydrogenation reaction.

The reaction is:

CO₂ + 3H₂ → CH₄O + H₂O

Parameters:

CH4O_tonnes (float) – Tonnes of methanol (CH₄O) to be produced.

Returns:

  • CO2_tonnes (float) – Tonnes of carbon dioxide (CO₂) required.

  • H2_tonnes (float) – Tonnes of hydrogen (H₂) required.

  • H2O_tonnes_required (float) – Tonnes of water (H₂O) produced as by-product.

bonsai_ipcc.ppf.methanol.elementary.reverse_co2_hydrogenation_alt_a(CH4O_tonnes: float, H2O_tonnes: float) -> (<class 'float'>, <class 'float'>, <class 'str'>, <class 'str'>, <class 'float'>)[source]

Reverse carbon dioxide hydrogenation reaction to produce carbon dioxide and hydrogen, with inputs in tonnes and outputs in tonnes. Also identifies the limiting reagent, excess reagent, and the excess amount.

The reaction is as follows (Equation 4.3 in [1]): CH4O + H2O -> CO2 + 3H2 DELTA_H = +49.5 kJ/mol

Parameters: - CH4O_tonnes: float, tonnes of methanol. - H2O_tonnes: float, tonnes of water.

Returns: - float, tonnes of carbon dioxide produced. - float, tonnes of hydrogen produced. - str, the limiting reagent. - str, the excess reagent. - float, tonnes of the excess reagent remaining after the reaction.

bonsai_ipcc.ppf.methanol.elementary.reverse_co_hydrogenation(CH4O_tonnes: float) -> (<class 'float'>, <class 'float'>)[source]

Estimates the tonnes of carbon monoxide (CO) and hydrogen (H2) needed to produce a given amount of methanol (CH4O). The reaction is as follows: CO + 2H2 <-> CH4O DELTA_H = +90.7 kJ/mol (Equation 12 in [2])

Parameters: - CH4O_tonnes: float, tonnes of methanol to be produced.

Returns: - float, tonnes of carbon monoxide (CO) required. - float, tonnes of hydrogen (H2) required.

bonsai_ipcc.ppf.methanol.elementary.reverse_combined_reforming(CH4O_tonnes: float) -> (<class 'float'>, <class 'float'>, <class 'float'>, <class 'float'>)[source]

Estimates the required methane (CH4) and oxygen (O2) to produce a given amount of methanol (CH4O) and calculates the amounts of carbon monoxide (CO) and hydrogen (H2) produced for the Combined Reforming Process.

Based on the stoichiometry of the reactions: Methanol Steam Reforming Reaction: CO + 2 H2 -> CH4O Followed by: CH4 + 1/2 O2 -> CO + 2 H2

Parameters: - CH4O_tonnes: float, tonnes of methanol (CH4O) to be produced.

Returns: - float, tonnes of methane (CH4) required. - float, tonnes of oxygen (O2) required. - float, tonnes of carbon monoxide (CO) produced. - float, tonnes of hydrogen (H2) produced.

bonsai_ipcc.ppf.methanol.elementary.reverse_csr_combined_with_TCs(CH4O_tonnes: float, n: float) -> (<class 'float'>, <class 'float'>, <class 'float'>, <class 'float'>, <class 'str'>, <class 'float'>, <class 'dict'>)[source]

Generalised ‘reverse CSR’ function to calculate reactants and products for the equation:

CH_n + H₂O + ((n-3)/3) CO₂ -> ((n)/3) CH₄O + ((n-3)/3) H₂O

This function calculates the ideal (100% efficient) stoichiometric amounts required to produce the target methanol, with all units in tonnes. It also identifies the limiting reagent and computes any excess.

Additionally, it returns transfer coefficients for each input. The dictionary has six keys:

  • “CHn_meoh”: % of CH_n feed (by mass, based on carbon) transferred to methanol.

  • “CHn_water”: % of CH_n feed not transferred to methanol.

  • “H2O_meoh”: % of H₂O feed contributing to methanol (by difference).

  • “H2O_water”: % of H₂O feed appearing as by-product.

  • “CO2_meoh”: % of CO₂ feed (by mass, based on carbon) transferred to methanol.

  • “CO2_water”: % of CO₂ feed not transferred to methanol.

Parameters:
  • CH4O_tonnes (float) – Tonnes of methanol (CH₄O) to be produced.

  • n (float) – Number of hydrogen atoms in the feedstock hydrocarbon (CH_n). For natural gas (methane), n = 4. Must be >= 3.

Returns:

  • CHn_tonnes_required (float) – Tonnes of hydrocarbon (CH_n) required.

  • H2O_tonnes_input_required (float) – Tonnes of water (H₂O) required as input.

  • H2O_tonnes_output (float) – Tonnes of water (H₂O) produced as by-product.

  • CO2_tonnes_consumed (float) – Tonnes of carbon dioxide (CO₂) consumed.

  • limiting_reagent_name (str) – The reagent that is limiting (smallest in moles).

  • excess_tonnes (float) – Tonnes of excess reagent remaining after the reaction.

  • transfer_coeffs (dict) – A dictionary with six keys (see above).

bonsai_ipcc.ppf.methanol.elementary.reverse_pox_combined(CH4O_tonnes: float, n: float) -> (<class 'float'>, <class 'float'>, <class 'float'>, <class 'float'>, <class 'str'>, <class 'float'>, <class 'dict'>)[source]

Reverse process of partial oxidation for methanol production, calculating the required reactants in tonnes, plus transfer coefficients for each input (CH_n, O₂, and H₂O) to methanol (CH₄O) vs CO₂.

The reaction is:

2 CH_n + O₂ + (4 - n)/3 H₂O -> (n + 2)/3 CH₄O + (4 - n)/3 CO₂

For n < 4 (e.g. n = 2 for a ‘CH2’ style hydrocarbon), after dividing by (n+2)/3 we get:

CH_n: 6/(n+2) O₂: 3/(n+2) H₂O: (4-n)/(n+2) CO₂: (4-n)/(n+2) (product)

Parameters:
  • CH4O_tonnes (float) – Tonnes of methanol (CH₄O) to be produced.

  • n (float) – Number of hydrogen atoms in the original hydrocarbon (CH_n), must be < 4 for this reverse POX process.

Returns:

  • CHn_tonnes_required (float) – Tonnes of hydrocarbon (CH_n) required to produce the given amount of methanol.

  • O2_tonnes_required (float) – Tonnes of oxygen (O₂) required to produce the given amount of methanol.

  • H2O_tonnes_required (float) – Tonnes of water (H₂O) required for the reverse reaction.

  • CO2_tonnes_produced (float) – Tonnes of carbon dioxide (CO₂) produced in the reaction.

  • limiting_reagent (str) – The limiting reagent based on stoichiometry.

  • excess_tonnes (float) – Tonnes of any excess reagent after the reaction.

  • transfer_coeffs (dict) –

    Dictionary with 6 keys, e.g.:

    ”CHn_meoh”: fraction (in %) of CH_n feed that appears in methanol, “CHn_co2”: fraction (in %) of CH_n feed that appears in CO₂, “O2_meoh”: fraction (in %) of O₂ feed used in methanol, “O2_co2”: fraction (in %) of O₂ feed used in CO₂, “H2O_meoh”: fraction (in %) of water feed that ends up in methanol, “H2O_co2”: fraction (in %) of water feed that ends up in CO₂.

bonsai_ipcc.ppf.methanol.elementary.reverse_water_gas_shift(CO2_tonnes: float, H2_tonnes: float) -> (<class 'float'>, <class 'float'>, <class 'str'>, <class 'str'>, <class 'float'>)[source]

Reverse water-gas shift reaction to produce carbon monoxide and water, Also identifies the limiting reagent, excess reagent, and the excess amount(Equation 4.20 in [1]).

The reaction is as follows, with all quantities in tonnes: CO2 + H2 -> CO + H2O DELTA_H = +41.2 kJ/mol

Parameters - CO2_tonnes: float, tonnes of carbon dioxide. - H2_tonnes: float, tonnes of hydrogen.

Returns - float, tonnes of carbon monoxide produced. - float, tonnes of water produced. - str, the limiting reagent. - str, the excess reagent. - float, tonnes of the excess reagent remaining after the reaction.

bonsai_ipcc.ppf.methanol.elementary.steam_reforming_general(CmHn: float, H2O: float, m: int, n: int) -> (<class 'float'>, <class 'float'>, <class 'str'>, <class 'str'>, <class 'float'>)[source]

General steam reforming reaction for hydrocarbons, Also identifies the limiting reagent, excess reagent, and the excess amount.

The reaction is as follows: CmHn + mH2O -> mCO + (m + n/2)H2 DELTA_H = +203/+206 kJ/mol

Parameters: - CmHn: float, tonnes of hydrocarbon. - H2O: float, tonnes of water. - m: int, number of carbon atoms in the hydrocarbon. - n: int, number of hydrogen atoms in the hydrocarbon.

Returns: - float, tonnes of carbon monoxide produced. - float, tonnes of hydrogen produced. - str, the limiting reagent. - str, the excess reagent. - float, tonnes of the excess reagent remaining after the reaction.

bonsai_ipcc.ppf.methanol.elementary.steam_reforming_methane(CH4_tonnes: float, H2O_tonnes: float) -> (<class 'float'>, <class 'float'>, <class 'str'>, <class 'str'>, <class 'float'>)[source]

Steam reforming of methane, Also identifies the limiting reagent, excess reagent, and the excess amount.

The reaction is as follows: CH4 + H2O -> CO + 3H2 DELTA_H = +203/+206 kJ/mol

Parameters: - CH4_tonnes: float, tonnes of methane. - H2O_tonnes: float, tonnes of water.

Returns: - float, tonnes of carbon monoxide produced. - float, tonnes of hydrogen produced. - str, the limiting reagent. - str, the excess reagent. - float, tonnes of the excess reagent remaining after the reaction.

bonsai_ipcc.ppf.methanol.elementary.syngas_from_csr(CHn_tonnes: float, H2O_tonnes: float, n: int) -> (<class 'float'>, <class 'float'>, <class 'str'>, <class 'str'>, <class 'float'>)[source]

Conventional steam methane reforming (CSR) process to produce syngas (carbon monoxide and hydrogen). The reaction is as follows, with all quantities in moles: CHn + H2O -> CO + (n-1)H2

Parameters:
  • CHn (float) – Moles of hydrocarbon (CHn).

  • H2O (float) – Moles of water.

  • n (int) – Number of hydrogen atoms in the hydrocarbon.

Returns:

  • float – Moles of carbon monoxide produced.

  • float – Moles of hydrogen produced.

bonsai_ipcc.ppf.methanol.elementary.syngas_from_pox(CHn_tonnes: float, O2_tonnes: float, n: int) -> (<class 'float'>, <class 'float'>, <class 'str'>, <class 'str'>, <class 'float'>)[source]

Partial Oxidation (POX) process to produce syngas (carbon monoxide and hydrogen), with inputs in tonnes and outputs in tonnes.

Parameters: - CHn_tonnes: float, tonnes of hydrocarbon (CHn). - O2_tonnes: float, tonnes of oxygen. - n: int, number of hydrogen atoms in the hydrocarbon.

Returns: - float, tonnes of carbon monoxide produced. - float, tonnes of hydrogen produced. - str, the limiting reagent. - str, the excess reagent. - float, tonnes of the excess reagent remaining after the reaction.

Notes: The reaction is as follows, with all quantities in tonnes: 2CHn + O2 -> 2CO + nH2

bonsai_ipcc.ppf.methanol.elementary.syngas_production_from_atr(CO_tonnes: float, H2_tonnes: float) -> (<class 'float'>, <class 'float'>, <class 'float'>)[source]

Autothermal reforming (ATR) for syngas production is represented by the reaction:

CH₄ + ½ H₂O + ½ O₂ → CO + 5⁄2 H₂

This function performs a backward calculation: given the produced syngas amounts of CO and H₂ (in tonnes), it calculates the required inputs in tonnes:

  • Methane (CH₄),

  • Water (H₂O), and

  • Oxygen (O₂).

Parameters:
  • CO_tonnes (float) – Tonnes of carbon monoxide (CO) produced.

  • H2_tonnes (float) – Tonnes of hydrogen (H₂) produced.

Returns:

  • CH4_tonnes_req (float) – Tonnes of methane (CH₄) required.

  • H2O_tonnes_req (float) – Tonnes of water (H₂O) required.

  • O2_tonnes_req (float) – Tonnes of oxygen (O₂) required.

bonsai_ipcc.ppf.methanol.elementary.water_gas_shift(CO_tonnes: float, H2O_tonnes: float) -> (<class 'float'>, <class 'float'>, <class 'str'>, <class 'str'>, <class 'float'>)[source]

Water-gas shift reaction to produce carbon dioxide and hydrogen, Also identifies the limiting reagent, excess reagent, and the excess amount.

The reaction is as follows, with all quantities in tonnes: CO + H2O -> CO2 + H2 DELTA_H = -41.2 kJ/mol

Parameters - CO_tonnes: float, tonnes of carbon monoxide. - H2O_tonnes: float, tonnes of water.

Returns - float, tonnes of carbon dioxide produced. - float, tonnes of hydrogen produced. - str, the limiting reagent. - str, the excess reagent. - float, tonnes of the excess reagent remaining after the reaction.

bonsai_ipcc.ppf.methanol.elementary.water_gas_shift_from_CO_H2(CO_tonnes: float, H2_tonnes: float) -> (<class 'float'>, <class 'float'>, <class 'str'>, <class 'str'>, <class 'float'>)[source]

Calculates the missing water input and the amount of CO₂ produced for the water-gas shift reaction:

CO + H₂O -> CO₂ + H₂

The known inputs are the masses of CO and H₂ (in tonnes). Using the stoichiometric ratios, the function calculates:

  • The tonnes of water (H₂O) required (since the reaction is 1:1 between CO and H₂O),

  • The tonnes of CO₂ produced (1:1 with CO),

  • The limiting reagent (based on a 1:1 ratio between CO and H₂O),

  • The excess reagent, and

  • The tonnes of the excess reagent remaining.

All units are in tonnes. (Remember: 1 tonne = 1,000,000 g.)

Parameters:
  • CO_tonnes (float) – Tonnes of carbon monoxide (CO) available.

  • H2_tonnes (float) – Tonnes of hydrogen (H₂) produced (or available).

Returns:

  • H2O_tonnes_required (float) – Tonnes of water (H₂O) required for the reaction.

  • CO2_tonnes_produced (float) – Tonnes of carbon dioxide (CO₂) produced.

  • limiting_reagent (str) – The reagent that is limiting (“CO” or “H₂”).

  • excess_reagent (str) – The reagent that is in excess.

  • excess_tonnes (float) – Tonnes of the excess reagent remaining.

bonsai_ipcc.ppf.methanol.sequence module

bonsai_ipcc.ppf.methanol.sequence.methanol_recipe_emissions_tier1(year=2006, region='World', activity='csr_a_natural_gas', product='methanol', uncertainty='def')[source]

Estimate the inputs and outputs of annual methanol production by year, region, activity, and product for specific production pathways and feedstock requirements.

Parameters:
  • year (int, optional) – Year under study (default is 2006).

  • region (str, optional) – Region under study (default is “World”).

  • activity (str, optional) – Production activity under study (default is “csr_a_natural_gas”).

  • product (str, optional) – Product under study (default is “methanol”).

  • uncertainty (str, optional) – Uncertainty type, e.g., ‘def’, ‘min’, ‘max’, or ‘sample’ (default is “def”).

Returns:

Includes the results of each step of the sequence.

Return type:

Sequence

Module contents