h2integrate.converters.nitrogen.simple_ASU#

Functions

make_cost_unit_multiplier(unit_str)

Returns a conversion multiplier and a unit type based on the provided unit string.

Classes

SimpleASUCostConfig(*, cost_year, ...[, ...])

SimpleASUCostModel(**kwargs)

SimpleASUPerformanceConfig(*, ...[, ...])

Configuration for ASU model.

SimpleASUPerformanceModel(**kwargs)

Simple linear converter to model nitrogen production from an Air Separation Unit.

class h2integrate.converters.nitrogen.simple_ASU.SimpleASUPerformanceConfig(*, size_from_N2_demand, rated_N2_kg_pr_hr=None, ASU_rated_power_kW=None, N2_fraction_in_air=0.7811, O2_fraction_in_air=0.2096, Ar_fraction_in_air=0.0093, efficiency_kWh_pr_kg_N2=0.29)#

Configuration for ASU model. To represent a cryogenic ASU, it is recommended to set the parameter efficiency_kWh_pr_kg_N2 to 0.119. To represent a pressure swing absorption ASU, it is recommended to set the parameter efficiency_kWh_pr_kg_N2 to 0.29.

Parameters:
  • size_from_N2_demand (bool)

  • rated_N2_kg_pr_hr (float | None)

  • ASU_rated_power_kW (float | None)

  • N2_fraction_in_air (float)

  • O2_fraction_in_air (float)

  • Ar_fraction_in_air (float)

  • efficiency_kWh_pr_kg_N2 (float)

size_from_N2_demand#

if True, size the system based on some input demand. If False, size the system from user input (rated_N2_kg_pr_hr or ASU_rated_power_kW).

Type:

bool

rated_N2_kg_pr_hr#

Rated capacity of ASU in kg-N2/hour. Only required if size_from_N2_demand is False and ASU_rated_power_kW is not input.

Type:

float | None

ASU_rated_power_kW#

Rated capacity of ASU in kg-N2/hour. Only required if size_from_N2_demand is False and rated_N2_kg_pr_hr is not input.

Type:

float | None

efficiency_kWh_pr_kg_N2#

efficiency of the ASU in kWh/kg-N2, defaults to 0.29. Should be between 0.1 and 0.5. Some reference efficiencies are:

- 0.29 for pressure swing absorption
- 0.119 for cryogenic
Type:

float

N2_fraction_in_air#

nitrogen content of input air stream as mole fraction. Defaults to 0.7811.

Type:

float, optional

O2_fraction_in_air#

oxygen content of input air stream as mole fraction. Defaults to 0.2096.

Type:

float, optional

Ar_fraction_in_air#

argon content of input air stream as mole fraction. Defaults to 0.0093.

Type:

float, optional

size_from_N2_demand: bool#
rated_N2_kg_pr_hr: float | None#
ASU_rated_power_kW: float | None#
N2_fraction_in_air: float#
O2_fraction_in_air: float#
Ar_fraction_in_air: float#
efficiency_kWh_pr_kg_N2: float#
class h2integrate.converters.nitrogen.simple_ASU.SimpleASUPerformanceModel(**kwargs)#

Simple linear converter to model nitrogen production from an Air Separation Unit.

initialize()#

Perform any one-time initialization run at instantiation.

setup()#

Declare inputs and outputs.

Available attributes:

name pathname comm options

compute(inputs, outputs)#

Calculate the amount of N2 that can be produced and the amount of feedstocks required given the input parameters and values.

Parameters:
  • inputs (dict) -- input variables/parameters

  • (dict (outputs) -- output variables/parameters

Raises:

ValueError -- if user provided ASU capacities in kg-N2/hour and kW and these values do not result in the same efficiency as efficiency_kWh_pr_kg_N2.

h2integrate.converters.nitrogen.simple_ASU.make_cost_unit_multiplier(unit_str)#

Returns a conversion multiplier and a unit type based on the provided unit string. The conversion multiplier converts the given unit to the base unit used in the model (kW for power, kg/hour for mass).

Parameters:

unit_str (str) -- The unit string, e.g., "kw", "mw", "kg/hour", "tonne/day", etc.

Returns:

tuple --

(conversion_multiplier, unit_type)
conversion_multiplier (float): Multiplier to convert the input unit to

the model's base unit.

unit_type (str): "power" if the unit is power-based, "mass" if mass-based.

Notes

  • For "mw", the multiplier converts MW to kW.

  • For daily units, the multiplier converts per day to per hour.

  • For "tonne" units, the multiplier converts tonnes to kg.

  • If unit_str is "none", returns (0.0, "power").

class h2integrate.converters.nitrogen.simple_ASU.SimpleASUCostConfig(*, cost_year, capex_usd_per_unit, capex_unit, opex_usd_per_unit_per_year=0.0, opex_unit='none')#
Parameters:
  • cost_year (int)

  • capex_usd_per_unit (float)

  • capex_unit (str)

  • opex_usd_per_unit_per_year (float)

  • opex_unit (str)

capex_usd_per_unit: float#
capex_unit: str#
opex_usd_per_unit_per_year: float#
opex_unit: str#
class h2integrate.converters.nitrogen.simple_ASU.SimpleASUCostModel(**kwargs)#
initialize()#

Perform any one-time initialization run at instantiation.

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.