MultiEffectEvaporator#
- class MultiEffectEvaporator(ID='', ins=None, outs=(), thermo=None, **kwargs)[source]#
Creates evaporatorators with pressures given by P (a list of pressures). Adjusts first evaporator vapor fraction to satisfy an overall fraction evaporated. All evaporators after the first have zero duty. Condenses the vapor coming out of the last evaporator. Pumps all liquid streams to prevent back flow in later parts. All liquid evaporated is ultimately recondensed. Cost is based on required heat transfer area. Vacuum system is based on air leakage. Air leakage is based on volume, as given by residence time tau and flow rate to each evaporator.
- Parameters:
ins (
Stream
], optional) – Inlet.outs (
Stream
], optional) –[0] Solid-rich stream.
[1] Condensate stream.
P (tuple[float]) – Pressures describing each evaporator (Pa).
V (float) – Molar fraction evaporated as specified in V_definition (either overall or in the first effect).
V_definition (str, optional) –
‘Overall’ - V is the overall molar fraction evaporated.
’First-effect’ - V is the molar fraction evaporated in the first effect.
Examples
Concentrate sugar setting vapor fraction at the first effect:
>>> import biosteam as bst >>> bst.process_tools.default() >>> from biorefineries.cellulosic import create_cellulosic_ethanol_chemicals >>> bst.settings.set_thermo(create_cellulosic_ethanol_chemicals()) >>> feed = bst.Stream('feed', Water=1000, Glucose=100, ... AceticAcid=0.5, HMF=0.1, Furfural=0.1, ... units='kg/hr') >>> E1 = bst.MultiEffectEvaporator('E1', ins=feed, outs=('solids', 'liquid'), ... V=0.1, V_definition='First-effect', ... P=(101325, 73581, 50892, 32777, 20000)) >>> E1.simulate() >>> E1.show() MultiEffectEvaporator: E1 ins... [0] feed phase: 'l', T: 298.15 K, P: 101325 Pa flow (kmol/hr): Water 55.5 AceticAcid 0.00833 Furfural 0.00104 HMF 0.000793 Glucose 0.555 outs... [0] solids phase: 'l', T: 333.21 K, P: 20000 Pa flow (kmol/hr): Water 20.5 AceticAcid 0.00181 Furfural 5.29e-05 HMF 0.000793 Glucose 0.555 [1] liquid phase: 'l', T: 352.11 K, P: 20000 Pa flow (kmol/hr): Water 35 AceticAcid 0.00651 Furfural 0.000988
>>> E1.results() Multi-effect evaporator Units E1 Electricity Power kW 5.72 Cost USD/hr 0.447 Low pressure steam Duty kJ/hr 5.83e+05 Flow kmol/hr 15.1 Cost USD/hr 3.58 Cooling water Duty kJ/hr -3.5e+05 Flow kmol/hr 239 Cost USD/hr 0.117 Design Area m^2 11 Volume m^3 3.51 Purchase cost Evaporators (x5) USD 9.56e+03 Condenser - Double pipe USD 5.36e+03 Vacuum system - Liquid-ring pump... USD 1.07e+04 Total purchase cost USD 2.56e+04 Utility cost USD/hr 4.15
Concentrate sugar setting overall vapor fraction:
>>> import biosteam as bst >>> from biorefineries.cellulosic import create_cellulosic_ethanol_chemicals >>> bst.settings.set_thermo(create_cellulosic_ethanol_chemicals()) >>> feed = bst.Stream('feed', Water=1000, Glucose=100, ... AceticAcid=0.5, HMF=0.1, Furfural=0.1, ... units='kg/hr') >>> E1 = bst.MultiEffectEvaporator('E1', ins=feed, outs=('solids', 'liquid'), ... V=0.1, V_definition='Overall', ... P=(101325, 73581, 50892, 32777, 20000)) >>> E1.simulate() >>> E1.show() MultiEffectEvaporator: E1 ins... [0] feed phase: 'l', T: 298.15 K, P: 101325 Pa flow (kmol/hr): Water 55.5 AceticAcid 0.00833 Furfural 0.00104 HMF 0.000793 Glucose 0.555 outs... [0] solids phase: 'l', T: 354.91 K, P: 50892 Pa flow (kmol/hr): Water 50 AceticAcid 0.0069 Furfural 0.000577 HMF 0.000793 Glucose 0.555 [1] liquid phase: 'l', T: 361.12 K, P: 50892 Pa flow (kmol/hr): Water 5.55 AceticAcid 0.00143 Furfural 0.000464
>>> E1.results() Multi-effect evaporator Units E1 Electricity Power kW 5.72 Cost USD/hr 0.447 Low pressure steam Duty kJ/hr 3.84e+05 Flow kmol/hr 9.94 Cost USD/hr 2.36 Cooling water Duty kJ/hr -1.15e+05 Flow kmol/hr 78.8 Cost USD/hr 0.0384 Design Area m^2 1.62 Volume m^3 3.07 Purchase cost Evaporators (x3) USD 2.74e+03 Condenser - Double pipe USD 3.9e+03 Vacuum system - Liquid-ring pump... USD 1.08e+04 Total purchase cost USD 1.74e+04 Utility cost USD/hr 2.85
Concentrate sugar setting overall vapor fraction:
>>> import biosteam as bst >>> from biorefineries.cellulosic import create_cellulosic_ethanol_chemicals >>> bst.settings.set_thermo(create_cellulosic_ethanol_chemicals()) >>> feed = bst.Stream('feed', Water=1000, Glucose=100, ... AceticAcid=0.5, HMF=0.1, Furfural=0.1, ... units='kg/hr') >>> E1 = bst.MultiEffectEvaporator('E1', ins=feed, outs=('solids', 'liquid'), ... V=0.1, V_definition='Overall', ... P=(101325, 73581, 50892, 32777, 20000)) >>> E1.simulate() >>> E1.show() MultiEffectEvaporator: E1 ins... [0] feed phase: 'l', T: 298.15 K, P: 101325 Pa flow (kmol/hr): Water 55.5 AceticAcid 0.00833 Furfural 0.00104 HMF 0.000793 Glucose 0.555 outs... [0] solids phase: 'l', T: 354.91 K, P: 50892 Pa flow (kmol/hr): Water 50 AceticAcid 0.0069 Furfural 0.000577 HMF 0.000793 Glucose 0.555 [1] liquid phase: 'l', T: 361.12 K, P: 50892 Pa flow (kmol/hr): Water 5.55 AceticAcid 0.00143 Furfural 0.000464
>>> E1.results() Multi-effect evaporator Units E1 Electricity Power kW 5.72 Cost USD/hr 0.447 Low pressure steam Duty kJ/hr 3.84e+05 Flow kmol/hr 9.94 Cost USD/hr 2.36 Cooling water Duty kJ/hr -1.15e+05 Flow kmol/hr 78.8 Cost USD/hr 0.0384 Design Area m^2 1.62 Volume m^3 3.07 Purchase cost Evaporators (x3) USD 2.74e+03 Condenser - Double pipe USD 3.9e+03 Vacuum system - Liquid-ring pump... USD 1.08e+04 Total purchase cost USD 1.74e+04 Utility cost USD/hr 2.85
-
line:
str
= 'Multi-effect evaporator'# class-attribute Name denoting the type of Unit class. Defaults to the class name of the first child class
-
auxiliary_unit_names:
tuple
[str
, ...] = ('condenser', 'mixer', 'vacuum_system', 'evaporators')# Auxiliary unit operation names.
- property Type#
Evaporation type.
- property V_definition#
[str] Must be one of the following: * ‘Overall’ - Defines attribute V as the overall molar fraction evaporated. * ‘First-effect’ - Defines attribute V as the molar fraction evaporated in the first effect. * ‘First-effect duty’ - Defines attribute V as the supplied duty over the total duty required to achived a vapor fraction of 1 at the first effect .
- run()#
Run mass and energy balance. This method also runs specifications user defined specifications unless it is being run within a specification (to avoid infinite loops).
See also
_run
,specifications
,add_specification
,add_bounded_numerical_specification