watertap.costing.units package

Submodules

watertap.costing.units.crystallizer module

class watertap.costing.units.crystallizer.CrystallizerCostType(value)[source]

Bases: StrEnum

An enumeration.

watertap.costing.units.crystallizer.cost_crystallizer(blk, cost_type=CrystallizerCostType.default)[source]

Function for costing the FC crystallizer by the mass flow of produced crystals. The operating cost model assumes that heat is supplied via condensation of saturated steam (see Dutta et al.)

Parameters

basis (cost_type - Option for crystallizer cost function type - volume or mass) –

watertap.costing.units.crystallizer.cost_crystallizer_by_crystal_mass(blk)[source]

Mass-based capital cost for FC crystallizer

watertap.costing.units.crystallizer.cost_crystallizer_by_volume(blk)[source]

Volume-based capital cost for FC crystallizer

watertap.costing.units.electrodialysis module

watertap.costing.units.electrodialysis.cost_electrodialysis(blk, cost_electricity_flow=True)[source]

Function for costing the Electrodialysis unit

Parameters

electricity (cost_electricity_flow - Option for including the costing of) –

watertap.costing.units.electrodialysis.cost_electrodialysis_stack(blk, membrane_cost, spacer_cost, membrane_replacement_factor, electrode_cost, electrode_replacement_factor)[source]

Generic function for costing the stack in an electrodialysis unit. Assumes the unit_model has a cell_pair_num, cell_width, and cell_length set of variables used to size the total membrane area.

Parameters
  • area (electrode_cost - The total cost of electrodes in a given stack in currency per) –

  • area

  • spacers (membrane_replacement_factor - Replacement factor for membranes and) – [fraction of membranes/spacers replaced/year]

  • area

  • electrodes (electrode_replacement_factor - Replacement factor for) – [fraction of electrodes replaced/year]

watertap.costing.units.energy_recovery_device module

class watertap.costing.units.energy_recovery_device.EnergyRecoveryDeviceType(value)[source]

Bases: StrEnum

An enumeration.

watertap.costing.units.energy_recovery_device.cost_energy_recovery_device(blk, energy_recovery_device_type=EnergyRecoveryDeviceType.pressure_exchanger, cost_electricity_flow=True)[source]

Energy recovery device costing method

TODO: describe equations

Parameters
  • energy_recovery_device_type – EnergyRecoveryDeviceType Enum indicating ERD type, default = EnergyRecoveryDeviceType.pressure_exchanger.

  • cost_electricity_flow – bool, if True, the ERD’s work_mechanical will be converted to kW and costed as an electricity default = True

watertap.costing.units.energy_recovery_device.cost_pressure_exchanger_erd(blk, cost_electricity_flow=True)[source]

ERD pressure exchanger costing method

TODO: describe equations

Parameters
  • bool (cost_electricity_flow -) – be converted to kW and costed as an electricity default = True

  • True (if) – be converted to kW and costed as an electricity default = True

  • will (the ERD's work_mechanical) – be converted to kW and costed as an electricity default = True

watertap.costing.units.gac module

watertap.costing.units.gac.cost_gac(blk)[source]

3 equation capital cost estimation for GAC systems with: (i), contactor/pressure vessel cost by polynomial as a function of individual contactor volume; (ii), initial charge of GAC adsorbent cost by exponential as a function of required mass of GAC adsorbent; and (iii), other process costs (vessels, pipes, instrumentation, and controls) calculated by power law as a function of total contactor(s) volume. Operating costs calculated as the required makeup and regeneration of GAC adsorbent. Energy for backwash and booster pumps considered negligible compared to regeneration costs

watertap.costing.units.ion_exchange module

watertap.costing.units.ion_exchange.cost_ion_exchange(blk)[source]

Volume-based capital cost for Ion Exchange

watertap.costing.units.mixer module

class watertap.costing.units.mixer.MixerType(value)[source]

Bases: StrEnum

An enumeration.

watertap.costing.units.mixer.cost_caoh2_mixer(blk, dosing_rate)[source]

CaOH2 mixer costing method

TODO: describe equations

Parameters

dosing_rate – An expression in [mass/time] for CaOH2 dosage

watertap.costing.units.mixer.cost_default_mixer(blk)[source]

Default mixer costing method

TODO: describe equations

watertap.costing.units.mixer.cost_mixer(blk, mixer_type=MixerType.default, **kwargs)[source]

Mixer costing method

Parameters
  • mixer_type – MixerType Enum indicating mixer type, default = MixerType.default

  • **kwargs – Additional keywords for the MixerType, e.g., NaOCl and CaOH2 mixers expect the dosing_rate keyword argument.

watertap.costing.units.mixer.cost_naocl_mixer(blk, dosing_rate)[source]

NaOCl mixer costing method

TODO: describe equations

Parameters

dosing_rate – An expression in [mass/time] for NaOCl dosage

watertap.costing.units.nanofiltration module

watertap.costing.units.nanofiltration.cost_nanofiltration(blk)[source]

Nanofiltration costing method

TODO: describe equations

watertap.costing.units.pressure_exchanger module

watertap.costing.units.pressure_exchanger.cost_pressure_exchanger(blk)[source]

Pressure exchanger costing method

TODO: describe equations

watertap.costing.units.pump module

class watertap.costing.units.pump.PumpType(value)[source]

Bases: StrEnum

An enumeration.

watertap.costing.units.pump.cost_high_pressure_pump(blk, cost_electricity_flow=True)[source]

High pressure pump costing method

TODO: describe equations

Parameters
  • bool (cost_electricity_flow -) – be converted to kW and costed as an electricity default = True

  • True (if) – be converted to kW and costed as an electricity default = True

  • will (the Pump's work_mechanical) – be converted to kW and costed as an electricity default = True

watertap.costing.units.pump.cost_low_pressure_pump(blk, cost_electricity_flow=True)[source]

Low pressure pump costing method

TODO: describe equations

Parameters
  • bool (cost_electricity_flow -) – be converted to kW and costed as an electricity default = True

  • True (if) – be converted to kW and costed as an electricity default = True

  • will (the Pump's work_mechanical) – be converted to kW and costed as an electricity default = True

watertap.costing.units.pump.cost_pump(blk, pump_type=PumpType.high_pressure, cost_electricity_flow=True)[source]

Pump costing method

TODO: describe equations

Parameters
  • pump_type – PumpType Enum indicating pump type, default = PumpType.high_pressure

  • cost_electricity_flow – bool, if True, the Pump’s work_mechanical will be converted to kW and costed as an electricity, default = True

watertap.costing.units.reverse_osmosis module

class watertap.costing.units.reverse_osmosis.ROType(value)[source]

Bases: StrEnum

An enumeration.

watertap.costing.units.reverse_osmosis.cost_reverse_osmosis(blk, ro_type=ROType.standard)[source]

Reverse osmosis costing method

TODO: describe equations

Parameters

ro_type – ROType Enum indicating reverse osmosis type, default = ROType.standard

watertap.costing.units.uv_aop module

watertap.costing.units.uv_aop.cost_uv_aop(blk, cost_electricity_flow=True)[source]

UV-AOP costing method

watertap.costing.units.uv_aop.cost_uv_aop_bundle(blk, reactor_cost, lamp_cost, factor_lamp_replacement)[source]

Generic function for costing a UV system.

Parameters
  • [currency]/[volume] (reactor_cost - The cost of UV reactor in) –

  • lamps (lamp_cost - The costs of the) –

  • sleeves

  • [currency]/[kW] (ballasts and sensors in) –

Module contents