Pump#

class Pump(ID='', ins=None, outs=(), thermo=None, **kwargs)[source]#

Create a pump that sets the pressure of the outlet.

Parameters:
  • ins (Stream], optional) – Inlet.

  • outs (Stream], optional) – Outlet.

  • P=101325 (float, optional) – Pressure of output stream (Pa). If the pressure of the outlet is the same as the inlet, pump is designed to increase of pressure to dP_design.

  • pump_type='Default' (str) – If ‘Default’, a pump type is selected based on heuristics.

  • material (str, optional) – Contruction material of pump. Defaults to ‘Cast iron’.

  • dP_design=101325 (float) – Design pressure change for pump.

  • ignore_NPSH=True (bool) – Whether to take into consideration NPSH in the selection of a pump type.

Notes

Default pump selection and design and cost algorithms are based on [1].

Examples

Simulate Pump for pressure increase:

>>> from biosteam import Stream, settings
>>> from biosteam.units import Pump
>>> settings.set_thermo(['Water', 'Ethanol'], cache=True)
>>> feed = Stream('feed', Water=200, T=350)
>>> P1 = Pump('P1', ins=feed, outs='out', P=2e5)
>>> P1.simulate()
>>> P1.show()
Pump: P1
ins...
[0] feed
    phase: 'l', T: 350 K, P: 101325 Pa
    flow (kmol/hr): Water  200
outs...
[0] out
    phase: 'l', T: 350 K, P: 200000 Pa
    flow (kmol/hr): Water  200
>>> P1.results()
Pump                              Units           P1
Electricity         Power            kW        0.288
                    Cost         USD/hr       0.0225
Design              Type                 Centrifugal
                    Ideal power      hp        0.136
                    Flow rate       gpm         16.3
                    Efficiency                 0.352
                    Power            hp        0.386
                    Head             ft         96.3
                    Motor size       hp          0.5
Purchase cost       Pump            USD     4.37e+03
                    Motor           USD          273
Total purchase cost                 USD     4.64e+03
Utility cost                     USD/hr       0.0225

References

property pump_type#

Pump type

property material#

Pump material

line: str = 'Pump'#

class-attribute Name denoting the type of Unit class. Defaults to the class name of the first child class

heat_utilities: list[HeatUtility, ...]#

All heat utilities associated to unit. Cooling and heating requirements are stored here (including auxiliary requirements).

power_utility: PowerUtility#

Electric utility associated to unit (including auxiliary requirements).

F_BM: dict[str, float]#

All bare-module factors for each purchase cost. Defaults to values in the class attribute _F_BM_default.

F_D: dict[str, float]#

All design factors for each purchase cost item in baseline_purchase_costs.

F_P: dict[str, float]#

All pressure factors for each purchase cost item in baseline_purchase_costs.

F_M: dict[str, float]#

All material factors for each purchase cost item in baseline_purchase_costs.

design_results: dict[str, object]#

All design requirements excluding utility requirements and detailed auxiliary unit requirements.

baseline_purchase_costs: dict[str, float]#

All baseline purchase costs without accounting for design, pressure, and material factors.

purchase_costs: dict[str, float]#

Itemized purchase costs (including auxiliary units) accounting for design, pressure, and material factors (i.e., F_D, F_P, F_M). Items here are automatically updated at the end of unit simulation.

installed_costs: dict[str, float]#

All installed costs accounting for bare module, design, pressure, and material factors. Items here are automatically updated at the end of unit simulation.

equipment_lifetime: int | dict[str, int]#

Lifetime of equipment. Defaults to values in the class attribute _default_equipment_lifetime. Use an integer to specify the lifetime for all items in the unit purchase costs. Use a dictionary to specify the lifetime of each purchase cost item.

run_after_specifications: bool#

Whether to run mass and energy balance after calling specification functions

prioritize: bool#

Whether to prioritize unit operation specification within recycle loop (if any).

parallel: dict[str, int]#

Name-number pairs of baseline purchase costs and auxiliary unit operations in parallel. Use ‘self’ to refer to the main unit. Capital and heat and power utilities in parallel will become proportional to this value.

responses: set[GenericResponse]#

Unit design decisions that must be solved to satisfy specifications. While adding responses is optional, simulations benefit from responses by being able to predict better guesses.