h2integrate.simulation.technologies.ammonia.ammonia

Contents

h2integrate.simulation.technologies.ammonia.ammonia#

Functions

run_ammonia_cost_model(config)

Calculates the various costs associated with ammonia production, including capital expenditures (CapEx), operating expenditures (OpEx), and credits from byproducts, based on the provided configuration settings.

run_ammonia_finance_model(config)

Executes the financial analysis for an ammonia production plant based on the provided configuration settings.

run_ammonia_full_model(h2integrate_config[, ...])

Runs the full ammonia production model, including capacity sizing, cost calculation,

run_ammonia_model(plant_capacity_kgpy, ...)

Calculates the annual ammonia production in kilograms based on the plant's capacity and its capacity factor.

run_size_ammonia_plant_capacity(config)

Calculates either the annual ammonia production in kilograms based on plant capacity and available hydrogen or the amount of required hydrogen based on a desired ammonia production.

Classes

AmmoniaCapacityModelConfig(...[, ...])

Configuration inputs for the ammonia capacity sizing model, including plant capacity and feedstock details.

AmmoniaCapacityModelOutputs(...)

Outputs from the ammonia plant capacity size model.

AmmoniaCostModelConfig(plant_capacity_kgpy, ...)

Configuration inputs for the ammonia cost model, including plant capacity and feedstock details.

AmmoniaCostModelOutputs(...)

Outputs from the ammonia cost model, extending AmmoniaCosts with total capital expenditure calculations.

AmmoniaCosts(capex_air_separation_crygenic, ...)

Base dataclass for calculated costs related to ammonia production, including capital expenditures (CapEx) and operating expenditures (OpEx).

AmmoniaFinanceModelConfig(plant_life, ...[, ...])

Configuration for the financial model of an ammonia production plant, including operational parameters, cost inputs, and financial assumptions.

AmmoniaFinanceModelOutputs(sol, summary, ...)

Outputs from the financial model of an ammonia production plant, providing detailed financial analysis and projections.

Feedstocks(electricity_cost, hydrogen_cost, ...)

Represents the costs and consumption rates of various feedstocks and resources used in ammonia production.

class h2integrate.simulation.technologies.ammonia.ammonia.Feedstocks(electricity_cost, hydrogen_cost, cooling_water_cost, iron_based_catalyst_cost, oxygen_cost, electricity_consumption=0.0001207)#

Represents the costs and consumption rates of various feedstocks and resources used in ammonia production.

Parameters:
  • electricity_cost (float)

  • hydrogen_cost (float)

  • cooling_water_cost (float)

  • iron_based_catalyst_cost (float)

  • oxygen_cost (float)

  • electricity_consumption (float)

electricity_cost#

Cost per MWh of electricity.

Type:

float

hydrogen_cost#

Cost per kg of hydrogen.

Type:

float

cooling_water_cost#

Cost per gallon of cooling water.

Type:

float

iron_based_catalyst_cost#

Cost per kg of iron-based catalyst.

Type:

float

oxygen_cost#

Cost per kg of oxygen.

Type:

float

electricity_consumption#

Electricity consumption in MWh per kg of ammonia production, default is 0.1207 / 1000.

Type:

float

hydrogen_consumption#

Hydrogen consumption in kg per kg of ammonia production, default is 0.197284403.

Type:

float

cooling_water_consumption#

Cooling water consumption in gallons per kg of ammonia production, default is 0.049236824.

Type:

float

iron_based_catalyst_consumption#

Iron-based catalyst consumption in kg per kg of ammonia production, default is 0.000091295354067341.

Type:

float

oxygen_byproduct#

Oxygen byproduct in kg per kg of ammonia production, default is 0.29405077250145.

Type:

float

electricity_cost: float#
hydrogen_cost: float#
cooling_water_cost: float#
iron_based_catalyst_cost: float#
oxygen_cost: float#
electricity_consumption: float#
hydrogen_consumption = 0.197284403#
cooling_water_consumption = 0.049236824#
iron_based_catalyst_consumption = 9.1295354067341e-05#
oxygen_byproduct = 0.29405077250145#
class h2integrate.simulation.technologies.ammonia.ammonia.AmmoniaCostModelConfig(plant_capacity_kgpy, plant_capacity_factor, feedstocks)#

Configuration inputs for the ammonia cost model, including plant capacity and feedstock details.

Parameters:
  • plant_capacity_kgpy (float)

  • plant_capacity_factor (float)

  • feedstocks (Feedstocks)

plant_capacity_kgpy#

Annual production capacity of the plant in kg.

Type:

float

plant_capacity_factor#

The ratio of actual production to maximum possible production over a year.

Type:

float

feedstocks#

An instance of the Feedstocks class detailing the costs and consumption rates of resources used in production.

Type:

Feedstocks

plant_capacity_kgpy: float#
plant_capacity_factor: float#
feedstocks: Feedstocks#
class h2integrate.simulation.technologies.ammonia.ammonia.AmmoniaCosts(capex_air_separation_crygenic, capex_haber_bosch, capex_boiler, capex_cooling_tower, capex_direct, capex_depreciable_nonequipment, land_cost, labor_cost, general_administration_cost, property_tax_insurance, maintenance_cost, total_fixed_operating_cost, H2_cost_in_startup_year, energy_cost_in_startup_year, non_energy_cost_in_startup_year, variable_cost_in_startup_year, credits_byproduct)#

Base dataclass for calculated costs related to ammonia production, including capital expenditures (CapEx) and operating expenditures (OpEx).

Parameters:
  • capex_air_separation_crygenic (float)

  • capex_haber_bosch (float)

  • capex_boiler (float)

  • capex_cooling_tower (float)

  • capex_direct (float)

  • capex_depreciable_nonequipment (float)

  • land_cost (float)

  • labor_cost (float)

  • general_administration_cost (float)

  • property_tax_insurance (float)

  • maintenance_cost (float)

  • total_fixed_operating_cost (float)

  • H2_cost_in_startup_year (float)

  • energy_cost_in_startup_year (float)

  • non_energy_cost_in_startup_year (float)

  • variable_cost_in_startup_year (float)

  • credits_byproduct (float)

capex_air_separation_crygenic#

Capital cost for air separation.

Type:

float

capex_haber_bosch#

Capital cost for the Haber-Bosch process.

Type:

float

capex_boiler#

Capital cost for boilers.

Type:

float

capex_cooling_tower#

Capital cost for cooling towers.

Type:

float

capex_direct#

Direct capital costs.

Type:

float

capex_depreciable_nonequipment#

Depreciable non-equipment capital costs.

Type:

float

land_cost#

Cost of land.

Type:

float

labor_cost#

Annual labor cost.

Type:

float

general_administration_cost#

Annual general and administrative cost.

Type:

float

property_tax_insurance#

Annual property tax and insurance cost.

Type:

float

maintenance_cost#

Annual maintenance cost.

Type:

float

total_fixed_operating_cost#

Total annual fixed operating cost.

Type:

float

H2_cost_in_startup_year#

Hydrogen cost in the startup year.

Type:

float

energy_cost_in_startup_year#

Energy cost in the startup year.

Type:

float

non_energy_cost_in_startup_year#

Non-energy cost in the startup year.

Type:

float

variable_cost_in_startup_year#

Variable cost in the startup year.

Type:

float

credits_byproduct#

Credits from byproducts.

Type:

float

capex_air_separation_crygenic: float#
capex_haber_bosch: float#
capex_boiler: float#
capex_cooling_tower: float#
capex_direct: float#
capex_depreciable_nonequipment: float#
land_cost: float#
labor_cost: float#
general_administration_cost: float#
property_tax_insurance: float#
maintenance_cost: float#
total_fixed_operating_cost: float#
H2_cost_in_startup_year: float#
energy_cost_in_startup_year: float#
non_energy_cost_in_startup_year: float#
variable_cost_in_startup_year: float#
credits_byproduct: float#
class h2integrate.simulation.technologies.ammonia.ammonia.AmmoniaCostModelOutputs(capex_air_separation_crygenic, capex_haber_bosch, capex_boiler, capex_cooling_tower, capex_direct, capex_depreciable_nonequipment, land_cost, labor_cost, general_administration_cost, property_tax_insurance, maintenance_cost, total_fixed_operating_cost, H2_cost_in_startup_year, energy_cost_in_startup_year, non_energy_cost_in_startup_year, variable_cost_in_startup_year, credits_byproduct, capex_total)#

Outputs from the ammonia cost model, extending AmmoniaCosts with total capital expenditure calculations.

Parameters:
  • capex_air_separation_crygenic (float)

  • capex_haber_bosch (float)

  • capex_boiler (float)

  • capex_cooling_tower (float)

  • capex_direct (float)

  • capex_depreciable_nonequipment (float)

  • land_cost (float)

  • labor_cost (float)

  • general_administration_cost (float)

  • property_tax_insurance (float)

  • maintenance_cost (float)

  • total_fixed_operating_cost (float)

  • H2_cost_in_startup_year (float)

  • energy_cost_in_startup_year (float)

  • non_energy_cost_in_startup_year (float)

  • variable_cost_in_startup_year (float)

  • credits_byproduct (float)

  • capex_total (float)

capex_total#

The total capital expenditure for the ammonia plant.

Type:

float

capex_total: float#
h2integrate.simulation.technologies.ammonia.ammonia.run_ammonia_model(plant_capacity_kgpy, plant_capacity_factor)#

Calculates the annual ammonia production in kilograms based on the plant's capacity and its capacity factor.

Parameters:
  • plant_capacity_kgpy (float) -- The plant's annual capacity in kilograms per year.

  • plant_capacity_factor (float) -- The capacity factor of the plant, a ratio of its actual output over a period of time to its potential output if it were possible for it to operate at full capacity continuously over the same period.

Returns:

float -- The calculated annual ammonia production in kilograms per year.

Return type:

float

class h2integrate.simulation.technologies.ammonia.ammonia.AmmoniaCapacityModelConfig(input_capacity_factor_estimate, feedstocks, hydrogen_amount_kgpy=None, desired_ammonia_kgpy=None)#

Configuration inputs for the ammonia capacity sizing model, including plant capacity and feedstock details.

Parameters:
  • input_capacity_factor_estimate (float)

  • feedstocks (Feedstocks)

  • hydrogen_amount_kgpy (float | None)

  • desired_ammonia_kgpy (float | None)

hydrogen_amount_kgpy Optional

The amount of hydrogen available in kilograms per year to make ammonia.

Type:

float

desired_ammonia_kgpy Optional

The amount of desired ammonia production in kilograms per year.

Type:

float

input_capacity_factor_estimate#

The estimated ammonia plant capacity factor.

Type:

float

feedstocks#

An instance of the Feedstocks class detailing the costs and consumption rates of resources used in production.

Type:

Feedstocks

input_capacity_factor_estimate: float#
feedstocks: Feedstocks#
hydrogen_amount_kgpy: float | None#
desired_ammonia_kgpy: float | None#
class h2integrate.simulation.technologies.ammonia.ammonia.AmmoniaCapacityModelOutputs(ammonia_plant_capacity_kgpy, hydrogen_amount_kgpy)#

Outputs from the ammonia plant capacity size model.

Parameters:
  • ammonia_plant_capacity_kgpy (float)

  • hydrogen_amount_kgpy (float)

ammonia_plant_capacity_kgpy#

If amount of hydrogen in kilograms per year is input, the size of the ammonia plant in kilograms per year is output.

Type:

float

hydrogen_amount_kgpy#

If amount of ammonia production in kilograms per year is input, the amount of necessary hydrogen feedstock in kilograms per year is output.

Type:

float

ammonia_plant_capacity_kgpy: float#
hydrogen_amount_kgpy: float#
h2integrate.simulation.technologies.ammonia.ammonia.run_size_ammonia_plant_capacity(config)#

Calculates either the annual ammonia production in kilograms based on plant capacity and available hydrogen or the amount of required hydrogen based on a desired ammonia production.

Parameters:

config (AmmoniaCapacityModelConfig) -- Configuration object containing all necessary parameters for the capacity sizing, including capacity factor estimate and feedstock costs.

Returns:

AmmoniaCapacityModelOutputs -- An object containing ammonia plant capacity in kilograms per year and amount of hydrogen required in kilograms per year.

Return type:

AmmoniaCapacityModelOutputs

h2integrate.simulation.technologies.ammonia.ammonia.run_ammonia_cost_model(config)#

Calculates the various costs associated with ammonia production, including capital expenditures (CapEx), operating expenditures (OpEx), and credits from byproducts, based on the provided configuration settings.

Parameters:

config (AmmoniaCostModelConfig) -- Configuration object containing all necessary parameters for the cost calculation, including plant capacity, capacity factor, and feedstock costs.

Returns:

AmmoniaCostModelOutputs --

Object containing detailed breakdowns of calculated

costs, including total capital expenditure, operating costs, and credits from byproducts.

Return type:

AmmoniaCostModelOutputs

class h2integrate.simulation.technologies.ammonia.ammonia.AmmoniaFinanceModelConfig(plant_life, plant_capacity_kgpy, plant_capacity_factor, grid_prices, feedstocks, costs, financial_assumptions=NOTHING, install_years=3, gen_inflation=0.0, save_plots=False, show_plots=False, output_dir='./output/', design_scenario_id=0)#

Configuration for the financial model of an ammonia production plant, including operational parameters, cost inputs, and financial assumptions.

Parameters:
  • plant_life (int)

  • plant_capacity_kgpy (float)

  • plant_capacity_factor (float)

  • grid_prices (dict[str, float])

  • feedstocks (Feedstocks)

  • costs (AmmoniaCosts | AmmoniaCostModelOutputs)

  • financial_assumptions (dict[str, float])

  • install_years (int)

  • gen_inflation (float)

  • save_plots (bool)

  • show_plots (bool)

  • output_dir (str)

  • design_scenario_id (int)

plant_life#

Expected operational life of the plant in years.

Type:

int

plant_capacity_kgpy#

Annual production capacity of the plant in kilograms.

Type:

float

plant_capacity_factor#

The fraction of the year that the plant operates at full capacity.

Type:

float

grid_prices#

Electricity prices per kWh, indexed by year.

Type:

Dict[str, float]

feedstocks#

Instance of Feedstocks detailing costs and consumption rates of inputs.

Type:

Feedstocks

costs#

Pre-calculated capital and operating costs for the plant.

Type:

Union[AmmoniaCosts, AmmoniaCostModelOutputs]

financial_assumptions#

Key financial metrics and assumptions for the model, such as discount rate and inflation rate. Default is an empty dict but should be populated with relevant values.

Type:

Dict[str, float]

install_years#

Number of years over which the plant is installed and ramped up to full production, default is 3 years.

Type:

int

gen_inflation#

General inflation rate, default is 0.0.

Type:

float

save_plots#

select whether or not to save output plots

Type:

bool

show_plots#

select whether or not to show output plots during run

Type:

bool

output_dir#

where to store any saved plots or data

Type:

str

design_scenario_id#

what design scenario the plots correspond to

Type:

int

plant_life: int#
plant_capacity_kgpy: float#
plant_capacity_factor: float#
grid_prices: dict[str, float]#
feedstocks: Feedstocks#
costs: AmmoniaCosts | AmmoniaCostModelOutputs#
financial_assumptions: dict[str, float]#
install_years: int#
gen_inflation: float#
save_plots: bool#
show_plots: bool#
output_dir: str#
design_scenario_id: int#
class h2integrate.simulation.technologies.ammonia.ammonia.AmmoniaFinanceModelOutputs(sol, summary, price_breakdown)#

Outputs from the financial model of an ammonia production plant, providing detailed financial analysis and projections.

Parameters:
  • sol (dict)

  • summary (dict)

  • price_breakdown (DataFrame)

sol#

Solution to the financial model, containing key performance indicators like Net Present Value (NPV), Internal Rate of Return (IRR), and payback period.

Type:

dict

summary#

Summary of the financial analysis, providing a high-level overview of the plant's financial viability.

Type:

dict

price_breakdown#

Detailed breakdown of costs contributing to the production price of ammonia.

Type:

pd.DataFrame

ammonia_price_breakdown#

Breakdown of the ammonia production cost into component costs, showing the contribution of each cost element to the overall production cost.

Type:

dict

sol: dict#
summary: dict#
price_breakdown: DataFrame#
h2integrate.simulation.technologies.ammonia.ammonia.run_ammonia_finance_model(config)#

Executes the financial analysis for an ammonia production plant based on the provided configuration settings. This analysis includes calculating the Net Present Value (NPV), Internal Rate of Return (IRR), payback period, and providing a detailed cost breakdown for producing ammonia.

This function leverages the configuration specified in AmmoniaFinanceModelConfig, including plant operational parameters, grid prices, feedstock costs, pre-calculated CapEx and OpEx, and financial assumptions to evaluate the financial performance of the ammonia production facility.

Parameters:

config (AmmoniaFinanceModelConfig) -- Configuration object containing all the necessary parameters for the financial analysis, including assumptions and pre-calculated cost inputs.

Returns:

AmmoniaFinanceModelOutputs --

An object containing the results of the financial

analysis. This includes a solution dictionary with key financial metrics, a summary of the financial viability, a price breakdown of ammonia production costs, and a detailed breakdown of how each cost component contributes to the overall cost of ammonia.

Return type:

AmmoniaFinanceModelOutputs

h2integrate.simulation.technologies.ammonia.ammonia.run_ammonia_full_model(h2integrate_config, save_plots=False, show_plots=False, output_dir='./output/', design_scenario_id=0)#

Runs the full ammonia production model, including capacity sizing, cost calculation,

Parameters:

h2integrate_config (dict) -- Configuration settings for the ammonia production model, including capacity, costs, and financial assumptions.

Returns:

Tuple[AmmoniaCapacityModelOutputs, AmmoniaCostModelOutputs, AmmoniaFinanceModelOutputs] -- A tuple containing the outputs of the ammonia capacity model, ammonia cost model, and ammonia finance model.

Return type:

tuple[AmmoniaCapacityModelOutputs, AmmoniaCostModelOutputs, AmmoniaFinanceModelOutputs]