h2integrate.converters.ammonia.ammonia_synloop

Contents

h2integrate.converters.ammonia.ammonia_synloop#

Classes

AmmoniaSynLoopCostConfig(*, cost_year, ...)

Configuration inputs for the ammonia synthesis loop cost model. *Starred inputs are from tech_config/ammonia/model_inputs/shared_parameters The other inputs are from tech_config/ammonia/model_inputs/cost_parameters.

AmmoniaSynLoopCostModel(**kwargs)

OpenMDAO component modeling the cost of an ammonia synthesis loop.

AmmoniaSynLoopPerformanceConfig(*[, ...])

Configuration inputs for the ammonia synthesis loop performance model. *Starred inputs are from tech_config/ammonia/model_inputs/shared_parameters The other inputs are from tech_config/ammonia/model_inputs/performance_parameters.

AmmoniaSynLoopPerformanceModel(**kwargs)

OpenMDAO component modeling the performance of an ammonia synthesis loop.

class h2integrate.converters.ammonia.ammonia_synloop.AmmoniaSynLoopPerformanceConfig(*, size_mode='normal', flow_used_for_sizing=None, max_feedstock_ratio=1.0, max_commodity_ratio=1.0, production_capacity, catalyst_consumption_rate, catalyst_replacement_interval, capacity_factor, energy_demand, heat_output, feed_gas_t, feed_gas_p, feed_gas_x_n2, feed_gas_x_h2, feed_gas_mass_ratio, purge_gas_t, purge_gas_p, purge_gas_x_n2, purge_gas_x_h2, purge_gas_x_ar, purge_gas_x_nh3, purge_gas_mass_ratio)#

Configuration inputs for the ammonia synthesis loop performance model. *Starred inputs are from tech_config/ammonia/model_inputs/shared_parameters The other inputs are from tech_config/ammonia/model_inputs/performance_parameters

Parameters:
  • size_mode (str)

  • flow_used_for_sizing (str | None)

  • max_feedstock_ratio (float)

  • max_commodity_ratio (float)

  • production_capacity (float)

  • catalyst_consumption_rate (float)

  • catalyst_replacement_interval (float)

  • capacity_factor (float)

  • energy_demand (float)

  • heat_output (float)

  • feed_gas_t (float)

  • feed_gas_p (float)

  • feed_gas_x_n2 (float)

  • feed_gas_x_h2 (float)

  • feed_gas_mass_ratio (float)

  • purge_gas_t (float)

  • purge_gas_p (float)

  • purge_gas_x_n2 (float)

  • purge_gas_x_h2 (float)

  • purge_gas_x_ar (float)

  • purge_gas_x_nh3 (float)

  • purge_gas_mass_ratio (float)

size_mode#

The mode in which the component is sized. Options: - "normal": The component size is taken from the tech_config. - "resize_by_max_feedstock": Resize based on maximum feedstock availability. - "resize_by_max_commodity": Resize based on maximum commodity demand.

Type:

str

flow_used_for_sizing#

The feedstock/commodity flow used for sizing. Required when size_mode is not "normal".

Type:

str | None

max_feedstock_ratio#

Ratio for sizing in "resize_by_max_feedstock" mode. Defaults to 1.0.

Type:

float

max_commodity_ratio#

Ratio for sizing in "resize_by_max_commodity" mode. Defaults to 1.0.

Type:

float

\*production_capacity

The total production capacity of the ammonia synthesis loop (in kg ammonia per hour)

Type:

float

\*catalyst_consumption_rate

The mass ratio of catalyst consumed by the reactor over its lifetime to ammonia produced (in kg catalyst / kg ammonia)

Type:

float

\*catalyst_replacement_interval

The interval in years when the catalyst is replaced

Type:

float

capacity_factor#

The ratio of ammonia produced over a year to maximum production capacity (as a decimal)

Type:

float

energy_demand#

The total energy demand of the ammonia synthesis loop (in kWh electricity per kg ammonia).

Type:

float

heat_output#

The total heat output of the ammonia synthesis loop (in kWh thermal per kg ammonia)

Type:

float

feed_gas_t#

The synloop makeup feed gas temperature (in Kelvin)

Type:

float

feed_gas_p#

The synloop makeup feed gas pressure (in bar)

Type:

float

feed_gas_x_n2#

The synloop makeup feed gas molar fraction of nitrogen (as a decimal)

Type:

float

feed_gas_x_h2#

The synloop makeup feed gas molar fraction of hydrogen (as a decimal)

Type:

float

feed_gas_mass_ratio#

The synloop makeup feed gas mass ratio to ammonia produced (as a decimal)

Type:

float

purge_gas_t#

The synloop purge gas temperature (in Kelvin)

Type:

float

purge_gas_p#

The synloop purge gas pressure (in bar)

Type:

float

purge_gas_x_n2#

The synloop purge gas molar fraction of nitrogen (as a decimal)

Type:

float

purge_gas_x_h2#

The synloop purge gas molar fraction of hydrogen (as a decimal)

Type:

float

purge_gas_x_ar#

The synloop purge gas molar fraction of argon (as a decimal)

Type:

float

purge_gas_x_nh3#

The synloop purge gas molar fraction of hydrogen (as a decimal)

Type:

float

purge_gas_mass_ratio#

The synloop purge gas mass ratio to ammonia produced (as a decimal)

Type:

float

production_capacity: float#
catalyst_consumption_rate: float#
catalyst_replacement_interval: float#
capacity_factor: float#
energy_demand: float#
heat_output: float#
feed_gas_t: float#
feed_gas_p: float#
feed_gas_x_n2: float#
feed_gas_x_h2: float#
feed_gas_mass_ratio: float#
purge_gas_t: float#
purge_gas_p: float#
purge_gas_x_n2: float#
purge_gas_x_h2: float#
purge_gas_x_ar: float#
purge_gas_x_nh3: float#
purge_gas_mass_ratio: float#
class h2integrate.converters.ammonia.ammonia_synloop.AmmoniaSynLoopPerformanceModel(**kwargs)#

OpenMDAO component modeling the performance of an ammonia synthesis loop.

This component calculates the hourly ammonia production based on the available hydrogen, nitrogen, and electricity inputs, considering the stoichiometric and energetic requirements of the synthesis process. It also computes the unused hydrogen, nitrogen, and electricity (as heat), as well as the total ammonia produced over the modeled period.

config#

Configuration object containing model parameters such as energy demand, nitrogen conversion rate, and hydrogen conversion rate.

Type:

AmmoniaSynLoopPerformanceConfig

Inputs#
------
hydrogen_in#

Hourly hydrogen feed to the synthesis loop.

Type:

array [kg/h]

nitrogen_in#

Hourly nitrogen feed to the synthesis loop.

Type:

array [kg/h]

electricity_in#

Hourly electricity supplied to the synthesis loop.

Type:

array [MW]

Outputs#
-------
ammonia_out#

Hourly ammonia produced by the synthesis loop.

Type:

array [kg/h]

nitrogen_out#

Hourly unused nitrogen after synthesis loop.

Type:

array [kg/h]

hydrogen_out#

Hourly unused hydrogen after synthesis loop.

Type:

array [kg/h]

electricity_out#

Hourly unused electricity after synthesis loop.

Type:

array [MW]

heat_out#

Hourly heat generated by synthesis loop.

Type:

array [MW]

catalyst_mass#

Total catalyst mass needed in synthesis loop.

Type:

float [kg]

total_ammonia_produced#

Total ammonia produced over the modeled period.

Type:

float [kg/year]

total_hydrogen_consumed#

Total hydrogen consumed over the modeled period.

Type:

float [kg/year]

total_nitrogen_consumed#

Total nitrogen consumed over the modeled period.

Type:

float [kg/year]

total_electricity_consumed#

Total electricity consumed over the modeled period.

Type:

float [kWh/year]

limiting_output#

0: nitrogen-limited, 1: hydrogen-limited, 2: electricity-limited 3: capacity-limited

Type:

array of ints [-]

max_hydrogen_capacity#

The maximum rate of hydrogen consumption.

Type:

float [kg/h]

ammonia_capacity_factor#

The ratio of ammonia produced to the maximum production capacity.

Type:

float [-]

Notes

The ammonia production is limited by the most constraining input (hydrogen, nitrogen, or electricity) at each timestep. The component assumes perfect conversion efficiency up to the limiting reagent or energy input.

setup()#

Declare inputs and outputs.

Available attributes:

name pathname comm options

compute(inputs, outputs, discrete_inputs, discrete_outputs)#

Computation for the OM component.

For a template class this is not implement and raises an error.

class h2integrate.converters.ammonia.ammonia_synloop.AmmoniaSynLoopCostConfig(*, cost_year, production_capacity, baseline_capacity, base_cost_year, capex_scaling_exponent, labor_scaling_exponent, asu_capex_base, synloop_capex_base, heat_capex_base, cool_capex_base, other_eqpt_capex_base, land_capex_base, deprec_noneq_capex_rate, labor_rate_base, num_workers_base, hours_yr, gen_admin, prop_tax_ins, maint_rep, oxygen_byproduct_rate, water_consumption_rate, catalyst_consumption_rate, catalyst_replacement_interval, rebuild_cost_base, cooling_water_cost_base, catalyst_cost_base, oxygen_price_base)#

Configuration inputs for the ammonia synthesis loop cost model. *Starred inputs are from tech_config/ammonia/model_inputs/shared_parameters The other inputs are from tech_config/ammonia/model_inputs/cost_parameters

Parameters:
  • cost_year (int)

  • production_capacity (float)

  • baseline_capacity (float)

  • base_cost_year (int)

  • capex_scaling_exponent (float)

  • labor_scaling_exponent (float)

  • asu_capex_base (float)

  • synloop_capex_base (float)

  • heat_capex_base (float)

  • cool_capex_base (float)

  • other_eqpt_capex_base (float)

  • land_capex_base (float)

  • deprec_noneq_capex_rate (float)

  • labor_rate_base (float)

  • num_workers_base (float)

  • hours_yr (float)

  • gen_admin (float)

  • prop_tax_ins (float)

  • maint_rep (float)

  • oxygen_byproduct_rate (float)

  • water_consumption_rate (float)

  • catalyst_consumption_rate (float)

  • catalyst_replacement_interval (float)

  • rebuild_cost_base (float)

  • cooling_water_cost_base (float)

  • catalyst_cost_base (float)

  • oxygen_price_base (float)

---Scaling---
\*production_capacity

The total production capacity of the ammonia synthesis loop (in kg ammonia per hour)

Type:

float

baseline_capacity#

The capacity of the baseline ammonia plant for cost simulations (in kg ammonia per hour)

Type:

float

base_cost_year#

Year in which base USD costs are derived - to be adjusted using CEPCI for capex and CPI for opex.

Type:

int

capex_scaling_exponent#

Power applied to ratio of capacities when calculating capex from a baseline value at a different capacity.

Type:

float

labor_scaling_exponent#

Power applied to ratio of capacities when calculating labor cost from a baseline value at a different capacity.

Type:

float

---CAPEX---
asu_capex_base#

Baseline capital expenditure for the air separation unit [$].

Type:

float

synloop_capex_base#

Baseline capital expenditure for the synthesis loop [$].

Type:

float

heat_capex_base#

Baseline capital expenditure for the boiler and steam turbine [$].

Type:

float

cool_capex_base#

Baseline capital expenditure for the cooling tower [$].

Type:

float

other_eqpt_capex_base#

Other baseline direct capital expenditures [$].

Type:

float

land_capex_base#

Baseline capital expenditure for land to construct the plant [$].

Type:

float

deprec_noneq_capex_rate#

Fract of equipment capex for depreciable nonequipment [$].

Type:

float

---OPEX---
labor_rate_base#

Baseline all-in labor rate [$/hr].

Type:

float

num_workers_base#

Baseline number of workers for the entire ammonia plant [-].

Type:

float

hours_yr#

Work hours per year per worker [hr/year].

Type:

float

gen_admin#

General and administrative expenses as a fraction of labor [-].

Type:

float

prop_tax_ins#

Property tax and insurance as a fraction of total capex [-].

Type:

float

maint_rep#

Maintenance and repair cost as a fraction of equipment capex [-].

Type:

float

oxygen_byproduct_rate#

Rate at which oxygen byproduct is generated [kg O2/kg NH3]

Type:

float

water_consumption_rate#

Ratio of cooling water consumed by the reactor [gal/kg NH3]

Type:

float

\*catalyst_consumption_rate

The mass ratio of catalyst consumed by the reactor over its lifetime to ammonia produced

Type:

float

\*catalyst_replacement_interval

The interval in years when the catalyst is replaced

Type:

float

rebuild_cost_base#

Cost to rebuild baseline reactor for catalyst replacement [USD].

Type:

float

---Feedstock Costs---
cooling_water_cost_base#

Cost of cooling water [$/gal H2O]

Type:

float

catalyst_cost_base#

Cost of iron-based catalyst [$/kg cat]

Type:

float

oxygen_price_base#

Sales price of oxygen co-product [$/kg O2]

Type:

float

production_capacity: float#
baseline_capacity: float#
base_cost_year: int#
capex_scaling_exponent: float#
labor_scaling_exponent: float#
asu_capex_base: float#
synloop_capex_base: float#
heat_capex_base: float#
cool_capex_base: float#
other_eqpt_capex_base: float#
land_capex_base: float#
deprec_noneq_capex_rate: float#
labor_rate_base: float#
num_workers_base: float#
hours_yr: float#
gen_admin: float#
prop_tax_ins: float#
maint_rep: float#
oxygen_byproduct_rate: float#
water_consumption_rate: float#
catalyst_consumption_rate: float#
catalyst_replacement_interval: float#
rebuild_cost_base: float#
cooling_water_cost_base: float#
catalyst_cost_base: float#
oxygen_price_base: float#
class h2integrate.converters.ammonia.ammonia_synloop.AmmoniaSynLoopCostModel(**kwargs)#

OpenMDAO component modeling the cost of an ammonia synthesis loop.

This component outputs the capital expenditure (CapEx) and annual operating expenditure (OpEx) associated with the synthesis loop, based on provided configuration values.

config#

Configuration object containing CapEx and annual rebuild cost.

Type:

AmmoniaSynLoopCostConfig

Inputs#
-------
total_ammonia_produced#

Total ammonia produced over the modeled period.

Type:

float [kg/year]

total_hydrogen_consumed#

Total hydrogen consumed over the modeled period.

Type:

float [kg/year]

total_nitrogen_consumed#

Total nitrogen consumed over the modeled period.

Type:

float [kg/year]

total_electricity_consumed#

Total electricity consumed over the modeled period.

Type:

float [kg/year]

Outputs#
-------
CapEx#

Capital expenditure for the synthesis loop.

Type:

float [$]

OpEx#

Annual operating expenditure (catalyst replacement/rebuild).

Type:

float [$ per year]

capex_asu#

Capital cost for air separation unit

Type:

float [$]

capex_synloop#

Capital cost for NH3 synthesis loop

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 [$]

setup()#

Declare inputs and outputs.

Available attributes:

name pathname comm options

compute(inputs, outputs, discrete_inputs, discrete_outputs)#

Computation for the OM component.

For a template class this is not implement and raises an error.