Flash#
- class Flash(ID='', ins=None, outs=(), thermo=None, **kwargs)[source]#
Create an equlibrium based flash drum with the option of having light non-keys and heavy non-keys completly separate into their respective phases. Design procedure is based on heuristics by Wayne D. Monnery & William Y. Svrcek [1]. Purchase costs are based on correlations by Mulet et al. [2] [3] as compiled by Warren et. al. [4].
- Parameters:
ins (
Stream
], optional) – Inlet fluid.outs (
Stream
], optional) –[0] Vapor product
[1] Liquid product
P=None (float) – Operating pressure [Pa].
Q=None (float) – Duty [kJ/hr].
T=None (float) – Operating temperature [K].
V=None (float) – Molar vapor fraction.
x=None (float) – Molar composition of liquid (for binary mixtures).
y=None (float) – Molar composition of vapor (for binary mixtures).
vessel_material (str, optional) – Vessel construction material. Defaults to ‘Carbon steel’.
vacuum_system_preference ('Liquid-ring pump', 'Steam-jet ejector', or 'Dry-vacuum pump') – If a vacuum system is needed, it will choose one according to this preference. Defaults to ‘Liquid-ring pump’.
has_glycol_groups=False (bool) – True if glycol groups are present in the mixture.
has_amine_groups=False (bool) – True if amine groups are present in the mixture.
vessel_type=None ('Horizontal' or 'Vertical', optional) – Vessel separation type. If not specified, the vessel type will be chosen according to heuristics.
holdup_time=15.0 (float) – Time it takes to raise liquid to half full [min].
surge_time=7.5 (float) – Time it takes to reach from normal to maximum liquied level [min].
has_mist_eliminator (bool) – True if using a mist eliminator pad.
Notes
You may only specify two of the following parameters: P, Q, T, V, x, and y. Additionally, If x or y is specified, the other parameter must be either P or T (e.g., x and V is invalid).
Examples
>>> from biosteam.units import Flash >>> from biosteam import Stream, settings >>> settings.set_thermo(['Water', 'Glycerol'], cache=True) >>> feed = Stream('feed', Glycerol=300, Water=1000) >>> bp = feed.bubble_point_at_P() # Feed at bubble point T >>> feed.T = bp.T >>> F1 = Flash('F1', ... ins=feed, ... outs=('vapor', 'crude_glycerin'), ... P=101325, # Pa ... T=410.15) # K >>> F1.simulate() >>> F1.show(T='degC', P='atm') Flash: F1 ins... [0] feed phase: 'l', T: 100.67 degC, P: 1 atm flow (kmol/hr): Water 1e+03 Glycerol 300 outs... [0] vapor phase: 'g', T: 137 degC, P: 1 atm flow (kmol/hr): Water 958 Glycerol 2.32 [1] crude_glycerin phase: 'l', T: 137 degC, P: 1 atm flow (kmol/hr): Water 42.4 Glycerol 298 >>> F1.results() Flash Units F1 Medium pressure steam Duty kJ/hr 4.81e+07 Flow kmol/hr 1.33e+03 Cost USD/hr 366 Design Vessel type Horizontal Length ft 8.46 Diameter ft 5.5 Weight lb 2.51e+03 Wall thickness in 0.312 Vessel material Carbon steel Purchase cost Horizontal pressure vessel USD 1.47e+04 Platform and ladders USD 3.22e+03 Heat exchanger - Floating head USD 4.48e+04 Total purchase cost USD 6.26e+04 Utility cost USD/hr 366
References
-
auxiliary_unit_names:
tuple
[str
, ...] = ('heat_exchanger', 'vacuum_system', 'vapor_condenser')# Auxiliary unit operation names.
- property P#
Operating pressure (Pa).
- property vapor#
Outlet vapor stream (equivalent to outs[0]).
- property liquid#
Outlet liquid stream (equivalent to outs[1]).