h2integrate.converters.ammonia.ammonia_synloop#
Classes
|
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. |
|
OpenMDAO component modeling the cost of an ammonia synthesis loop. |
|
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. |
|
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.
- 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:
- 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.