Source code for proteuslib.unit_models.pump_isothermal

###############################################################################
# ProteusLib Copyright (c) 2021, The Regents of the University of California,
# through Lawrence Berkeley National Laboratory, Oak Ridge National
# Laboratory, National Renewable Energy Laboratory, and National Energy
# Technology Laboratory (subject to receipt of any required approvals from
# the U.S. Dept. of Energy). All rights reserved.
#
# Please see the files COPYRIGHT.md and LICENSE.md for full copyright and license
# information, respectively. These files are also available online at the URL
# "https://github.com/nawi-hub/proteuslib/"
#
###############################################################################

from pyomo.environ import Constraint
# Import IDAES cores
from idaes.generic_models.unit_models.pressure_changer import PumpData
from idaes.core import declare_process_block_class
import idaes.core.util.scaling as iscale

import idaes.logger as idaeslog

_log = idaeslog.getLogger(__name__)

[docs]@declare_process_block_class("Pump") class PumpIsothermalData(PumpData): """ Standard Isothermal Pump Unit Model Class """
[docs] def build(self): super().build() self.control_volume.del_component(self.control_volume.enthalpy_balances) @self.control_volume.Constraint( self.flowsheet().config.time, doc="Isothermal constraint") def isothermal_balance(b, t): return b.properties_in[t].temperature == b.properties_out[t].temperature
def calculate_scaling_factors(self): super().calculate_scaling_factors() for ind, c in self.control_volume.isothermal_balance.items(): sf = iscale.get_scaling_factor(self.control_volume.properties_in[0].temperature) iscale.constraint_scaling_transform(c, sf)