diff --git a/.github/workflows/core.yml b/.github/workflows/core.yml index 72140e5e..61c6ebf1 100644 --- a/.github/workflows/core.yml +++ b/.github/workflows/core.yml @@ -34,7 +34,7 @@ concurrency: env: # default Python version to use for checks that do not require multiple versions - DEFAULT_PYTHON_VERSION: '3.8' + DEFAULT_PYTHON_VERSION: '3.10' IDAES_CONDA_ENV_NAME_DEV: idaes-examples-dev PYTEST_ADDOPTS: "--color=yes" @@ -62,9 +62,10 @@ jobs: fail-fast: false matrix: python-version: - - '3.8' - '3.9' - '3.10' + - '3.11' + - '3.12' os: - linux - win64 diff --git a/.readthedocs.yml b/.readthedocs.yml index db0be9c9..017e3d60 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -3,7 +3,7 @@ version: 2 build: os: ubuntu-20.04 tools: - python: "3.8" + python: "3.10" jobs: pre_build: # Set conf vars and update the Sphinx configuration (conf.py) diff --git a/idaes_examples/browse.py b/idaes_examples/browse.py index 2a779efb..c49dfd8c 100644 --- a/idaes_examples/browse.py +++ b/idaes_examples/browse.py @@ -4,9 +4,6 @@ # stdlib from importlib import resources -if not hasattr(resources, "files"): - # importlib.resources.files() added in Python 3.9 - import importlib_resources as resources import json import logging from logging.handlers import RotatingFileHandler diff --git a/idaes_examples/mod/hda/hda_ideal_VLE.py b/idaes_examples/mod/hda/hda_ideal_VLE.py index 9498ec7c..b6c3207e 100644 --- a/idaes_examples/mod/hda/hda_ideal_VLE.py +++ b/idaes_examples/mod/hda/hda_ideal_VLE.py @@ -15,33 +15,41 @@ Benzene-Toluene-o-Xylene system. """ -# Import Python libraries -import logging # Import Pyomo libraries -from pyomo.environ import Constraint, Expression, log, NonNegativeReals,\ - Var, Set, Param, sqrt, log10, units as pyunits -from pyomo.opt import TerminationCondition +from pyomo.environ import ( + Constraint, + Expression, + log, + NonNegativeReals, + Var, + Set, + Param, + sqrt, + log10, + units as pyunits, +) from pyomo.util.calc_var_value import calculate_variable_from_constraint +from pyomo.common.config import ConfigValue # Import IDAES cores -from idaes.core import (declare_process_block_class, - MaterialFlowBasis, - PhysicalParameterBlock, - StateBlockData, - StateBlock, - MaterialBalanceType, - EnergyBalanceType, - Component, - LiquidPhase, - VaporPhase) +from idaes.core import ( + declare_process_block_class, + MaterialFlowBasis, + PhysicalParameterBlock, + StateBlockData, + StateBlock, + MaterialBalanceType, + EnergyBalanceType, + Component, + LiquidPhase, + VaporPhase, +) from idaes.core.util.constants import Constants as const -from idaes.core.util.initialization import (fix_state_vars, - revert_state_vars, - solve_indexed_blocks) +from idaes.core.util.initialization import fix_state_vars, solve_indexed_blocks +from idaes.core.initialization import InitializerBase from idaes.core.util.misc import add_object_reference -from idaes.core.util.model_statistics import degrees_of_freedom, \ - number_unfixed_variables +from idaes.core.util.model_statistics import number_unfixed_variables from idaes.core.util.misc import extract_data from idaes.core.solvers import get_solver import idaes.core.util.scaling as iscale @@ -51,14 +59,90 @@ _log = idaeslog.getLogger(__name__) +class HDAInitializer(InitializerBase): + """ + Initializer for HDA Property package. + + """ + + CONFIG = InitializerBase.CONFIG() + CONFIG.declare( + "solver", + ConfigValue(default=None, domain=str, description="Initialization solver"), + ) + CONFIG.declare( + "solver_options", + ConfigValue(default=None, description="Initialization solver options"), + ) + + def initialization_routine(self, blk): + init_log = idaeslog.getInitLogger( + blk.name, self.config.output_level, tag="properties" + ) + solve_log = idaeslog.getSolveLogger( + blk.name, self.config.output_level, tag="properties" + ) + + # Set solver + solver = get_solver(self.config.solver, self.config.solver_options) + + # --------------------------------------------------------------------- + # If present, initialize bubble and dew point calculations + for k in blk.keys(): + if hasattr(blk[k], "eq_temperature_dew"): + calculate_variable_from_constraint( + blk[k].temperature_dew, blk[k].eq_temperature_dew + ) + + if hasattr(blk[k], "eq_pressure_dew"): + calculate_variable_from_constraint( + blk[k].pressure_dew, blk[k].eq_pressure_dew + ) + + init_log.info_high( + "Initialization Step 1 - Dew and bubble points " "calculation completed." + ) + + # --------------------------------------------------------------------- + # If flash, initialize T1 and Teq + for k in blk.keys(): + if blk[k].config.has_phase_equilibrium and not blk[k].config.defined_state: + blk[k]._t1.value = max( + blk[k].temperature.value, blk[k].temperature_bubble.value + ) + blk[k]._teq.value = min(blk[k]._t1.value, blk[k].temperature_dew.value) + + init_log.info_high( + "Initialization Step 2 - Equilibrium temperature " " calculation completed." + ) + + # --------------------------------------------------------------------- + # Initialize flow rates and compositions + free_vars = 0 + for k in blk.keys(): + free_vars += number_unfixed_variables(blk[k]) + if free_vars > 0: + try: + with idaeslog.solver_log(solve_log, idaeslog.DEBUG) as slc: + res = solve_indexed_blocks(solver, [blk], tee=slc.tee) + except: + res = None + else: + res = None + + init_log.info("Initialization Complete") + + return res + + @declare_process_block_class("HDAParameterBlock") class HDAParameterData(PhysicalParameterBlock): CONFIG = PhysicalParameterBlock.CONFIG() def build(self): - ''' + """ Callable method for Block construction. - ''' + """ super(HDAParameterData, self).build() self._state_block_class = IdealStateBlock @@ -72,284 +156,304 @@ def build(self): self.Vap = VaporPhase() # List of components in each phase (optional) - self.phase_comp = {"Liq": self.component_list, - "Vap": self.component_list} + self.phase_comp = {"Liq": self.component_list, "Vap": self.component_list} # List of phase equilibrium index self.phase_equilibrium_idx = Set(initialize=[1, 2, 3, 4]) - self.phase_equilibrium_list = \ - {1: ["benzene", ("Vap", "Liq")], - 2: ["toluene", ("Vap", "Liq")], - 3: ["hydrogen", ("Vap", "Liq")], - 4: ["methane", ("Vap", "Liq")]} + self.phase_equilibrium_list = { + 1: ["benzene", ("Vap", "Liq")], + 2: ["toluene", ("Vap", "Liq")], + 3: ["hydrogen", ("Vap", "Liq")], + 4: ["methane", ("Vap", "Liq")], + } # Thermodynamic reference state - self.pressure_ref = Param(mutable=True, - default=101325, - units=pyunits.Pa, - doc='Reference pressure') - self.temperature_ref = Param(mutable=True, - default=298.15, - units=pyunits.K, - doc='Reference temperature') + self.pressure_ref = Param( + mutable=True, default=101325, units=pyunits.Pa, doc="Reference pressure" + ) + self.temperature_ref = Param( + mutable=True, default=298.15, units=pyunits.K, doc="Reference temperature" + ) # Source: The Properties of Gases and Liquids (1987) # 4th edition, Chemical Engineering Series - Robert C. Reid - pressure_crit_data = {'benzene': 48.9e5, - 'toluene': 41e5, - 'hydrogen': 12.9e5, - 'methane': 46e5 - } + pressure_crit_data = { + "benzene": 48.9e5, + "toluene": 41e5, + "hydrogen": 12.9e5, + "methane": 46e5, + } self.pressure_crit = Param( self.component_list, within=NonNegativeReals, - mutable=False, + mutable=True, units=pyunits.Pa, initialize=extract_data(pressure_crit_data), - doc='Critical pressure') + doc="Critical pressure", + ) # Source: The Properties of Gases and Liquids (1987) # 4th edition, Chemical Engineering Series - Robert C. Reid - temperature_crit_data = {'benzene': 562.2, - 'toluene': 591.8, - 'hydrogen': 33.0, - 'methane': 190.4 - } + temperature_crit_data = { + "benzene": 562.2, + "toluene": 591.8, + "hydrogen": 33.0, + "methane": 190.4, + } self.temperature_crit = Param( self.component_list, within=NonNegativeReals, - mutable=False, + mutable=True, units=pyunits.K, initialize=extract_data(temperature_crit_data), - doc='Critical temperature') + doc="Critical temperature", + ) # Source: The Properties of Gases and Liquids (1987) # 4th edition, Chemical Engineering Series - Robert C. Reid - mw_comp_data = {'benzene': 78.1136E-3, - 'toluene': 92.1405E-3, - 'hydrogen': 2.016e-3, - 'methane': 16.043e-3} - - self.mw_comp = Param(self.component_list, - mutable=False, - units=pyunits.kg/pyunits.mol, - initialize=extract_data(mw_comp_data), - doc="molecular weight") + mw_comp_data = { + "benzene": 78.1136e-3, + "toluene": 92.1405e-3, + "hydrogen": 2.016e-3, + "methane": 16.043e-3, + } + + self.mw_comp = Param( + self.component_list, + mutable=True, + units=pyunits.kg / pyunits.mol, + initialize=extract_data(mw_comp_data), + doc="molecular weight", + ) # Constants for liquid densities # Source: Perry's Chemical Engineers Handbook # - Robert H. Perry (Cp_liq) - dens_liq_data = {('benzene', '1'): 1.0162, - ('benzene', '2'): 0.2655, - ('benzene', '3'): 562.16, - ('benzene', '4'): 0.28212, - ('toluene', '1'): 0.8488, - ('toluene', '2'): 0.26655, - ('toluene', '3'): 591.8, - ('toluene', '4'): 0.2878, - ('hydrogen', '1'): 5.414, - ('hydrogen', '2'): 0.34893, - ('hydrogen', '3'): 33.19, - ('hydrogen', '4'): 0.2706, - ('methane', '1'): 2.9214, - ('methane', '2'): 0.28976, - ('methane', '3'): 190.56, - ('methane', '4'): 0.28881} + dens_liq_data = { + ("benzene", "1"): 1.0162, + ("benzene", "2"): 0.2655, + ("benzene", "3"): 562.16, + ("benzene", "4"): 0.28212, + ("toluene", "1"): 0.8488, + ("toluene", "2"): 0.26655, + ("toluene", "3"): 591.8, + ("toluene", "4"): 0.2878, + ("hydrogen", "1"): 5.414, + ("hydrogen", "2"): 0.34893, + ("hydrogen", "3"): 33.19, + ("hydrogen", "4"): 0.2706, + ("methane", "1"): 2.9214, + ("methane", "2"): 0.28976, + ("methane", "3"): 190.56, + ("methane", "4"): 0.28881, + } self.dens_liq_param_1 = Param( self.component_list, - mutable=False, - initialize={c: v for (c, j), v in dens_liq_data.items() if j == '1'}, + mutable=True, + initialize={c: v for (c, j), v in dens_liq_data.items() if j == "1"}, doc="Parameter 1 to compute liquid densities", - units=pyunits.kmol*pyunits.m**-3 + units=pyunits.kmol * pyunits.m**-3, ) self.dens_liq_param_2 = Param( self.component_list, - mutable=False, - initialize={c: v for (c, j), v in dens_liq_data.items() if j == '2'}, + mutable=True, + initialize={c: v for (c, j), v in dens_liq_data.items() if j == "2"}, doc="Parameter 2 to compute liquid densities", - units=pyunits.dimensionless + units=pyunits.dimensionless, ) self.dens_liq_param_3 = Param( self.component_list, - mutable=False, - initialize={c: v for (c, j), v in dens_liq_data.items() if j == '3'}, + mutable=True, + initialize={c: v for (c, j), v in dens_liq_data.items() if j == "3"}, doc="Parameter 3 to compute liquid densities", - units=pyunits.K + units=pyunits.K, ) self.dens_liq_param_4 = Param( self.component_list, - mutable=False, - initialize={c: v for (c, j), v in dens_liq_data.items() if j == '4'}, + mutable=True, + initialize={c: v for (c, j), v in dens_liq_data.items() if j == "4"}, doc="Parameter 4 to compute liquid densities", - units=pyunits.dimensionless + units=pyunits.dimensionless, ) # Boiling point at standard pressure # Source: Perry's Chemical Engineers Handbook # - Robert H. Perry (Cp_liq) - bp_data = {('benzene'): 353.25, - ('toluene'): 383.95, - ('hydrogen'): 20.45, - ('methane'): 111.75} + bp_data = { + ("benzene"): 353.25, + ("toluene"): 383.95, + ("hydrogen"): 20.45, + ("methane"): 111.75, + } self.temperature_boil = Param( - self.component_list, - mutable=False, - units=pyunits.K, - initialize=extract_data(bp_data), - doc="Pure component boiling points at standard pressure") + self.component_list, + mutable=True, + units=pyunits.K, + initialize=extract_data(bp_data), + doc="Pure component boiling points at standard pressure", + ) # Constants for specific heat capacity, enthalpy # Sources: The Properties of Gases and Liquids (1987) # 4th edition, Chemical Engineering Series - Robert C. Reid # Perry's Chemical Engineers Handbook # - Robert H. Perry (Cp_liq) - cp_ig_data = {('Liq', 'benzene', '1'): 1.29E5, - ('Liq', 'benzene', '2'): -1.7E2, - ('Liq', 'benzene', '3'): 6.48E-1, - ('Liq', 'benzene', '4'): 0, - ('Liq', 'benzene', '5'): 0, - ('Vap', 'benzene', '1'): -3.392E1, - ('Vap', 'benzene', '2'): 4.739E-1, - ('Vap', 'benzene', '3'): -3.017E-4, - ('Vap', 'benzene', '4'): 7.130E-8, - ('Vap', 'benzene', '5'): 0, - ('Liq', 'toluene', '1'): 1.40E5, - ('Liq', 'toluene', '2'): -1.52E2, - ('Liq', 'toluene', '3'): 6.95E-1, - ('Liq', 'toluene', '4'): 0, - ('Liq', 'toluene', '5'): 0, - ('Vap', 'toluene', '1'): -2.435E1, - ('Vap', 'toluene', '2'): 5.125E-1, - ('Vap', 'toluene', '3'): -2.765E-4, - ('Vap', 'toluene', '4'): 4.911E-8, - ('Vap', 'toluene', '5'): 0, - ('Liq', 'hydrogen', '1'): 0, # 6.6653e1, - ('Liq', 'hydrogen', '2'): 0, # 6.7659e3, - ('Liq', 'hydrogen', '3'): 0, # -1.2363e2, - ('Liq', 'hydrogen', '4'): 0, # 4.7827e2, # Eqn 2 - ('Liq', 'hydrogen', '5'): 0, - ('Vap', 'hydrogen', '1'): 2.714e1, - ('Vap', 'hydrogen', '2'): 9.274e-3, - ('Vap', 'hydrogen', '3'): -1.381e-5, - ('Vap', 'hydrogen', '4'): 7.645e-9, - ('Vap', 'hydrogen', '5'): 0, - ('Liq', 'methane', '1'): 0, # 6.5708e1, - ('Liq', 'methane', '2'): 0, # 3.8883e4, - ('Liq', 'methane', '3'): 0, # -2.5795e2, - ('Liq', 'methane', '4'): 0, # 6.1407e2, # Eqn 2 - ('Liq', 'methane', '5'): 0, - ('Vap', 'methane', '1'): 1.925e1, - ('Vap', 'methane', '2'): 5.213e-2, - ('Vap', 'methane', '3'): 1.197e-5, - ('Vap', 'methane', '4'): -1.132e-8, - ('Vap', 'methane', '5'): 0} + cp_ig_data = { + ("Liq", "benzene", "1"): 1.29e5, + ("Liq", "benzene", "2"): -1.7e2, + ("Liq", "benzene", "3"): 6.48e-1, + ("Liq", "benzene", "4"): 0, + ("Liq", "benzene", "5"): 0, + ("Vap", "benzene", "1"): -3.392e1, + ("Vap", "benzene", "2"): 4.739e-1, + ("Vap", "benzene", "3"): -3.017e-4, + ("Vap", "benzene", "4"): 7.130e-8, + ("Vap", "benzene", "5"): 0, + ("Liq", "toluene", "1"): 1.40e5, + ("Liq", "toluene", "2"): -1.52e2, + ("Liq", "toluene", "3"): 6.95e-1, + ("Liq", "toluene", "4"): 0, + ("Liq", "toluene", "5"): 0, + ("Vap", "toluene", "1"): -2.435e1, + ("Vap", "toluene", "2"): 5.125e-1, + ("Vap", "toluene", "3"): -2.765e-4, + ("Vap", "toluene", "4"): 4.911e-8, + ("Vap", "toluene", "5"): 0, + ("Liq", "hydrogen", "1"): 0, # 6.6653e1, + ("Liq", "hydrogen", "2"): 0, # 6.7659e3, + ("Liq", "hydrogen", "3"): 0, # -1.2363e2, + ("Liq", "hydrogen", "4"): 0, # 4.7827e2, # Eqn 2 + ("Liq", "hydrogen", "5"): 0, + ("Vap", "hydrogen", "1"): 2.714e1, + ("Vap", "hydrogen", "2"): 9.274e-3, + ("Vap", "hydrogen", "3"): -1.381e-5, + ("Vap", "hydrogen", "4"): 7.645e-9, + ("Vap", "hydrogen", "5"): 0, + ("Liq", "methane", "1"): 0, # 6.5708e1, + ("Liq", "methane", "2"): 0, # 3.8883e4, + ("Liq", "methane", "3"): 0, # -2.5795e2, + ("Liq", "methane", "4"): 0, # 6.1407e2, # Eqn 2 + ("Liq", "methane", "5"): 0, + ("Vap", "methane", "1"): 1.925e1, + ("Vap", "methane", "2"): 5.213e-2, + ("Vap", "methane", "3"): 1.197e-5, + ("Vap", "methane", "4"): -1.132e-8, + ("Vap", "methane", "5"): 0, + } self.cp_ig_1 = Param( self.phase_list, self.component_list, - mutable=False, - initialize={(p, c): v for (p, c, j), v in cp_ig_data.items() if j == '1'}, + mutable=True, + initialize={(p, c): v for (p, c, j), v in cp_ig_data.items() if j == "1"}, doc="Parameter 1 to compute Cp_comp", - units=pyunits.J/pyunits.mol/pyunits.K + units=pyunits.J / pyunits.mol / pyunits.K, ) self.cp_ig_2 = Param( self.phase_list, self.component_list, - mutable=False, - initialize={(p, c): v for (p, c, j), v in cp_ig_data.items() if j == '2'}, + mutable=True, + initialize={(p, c): v for (p, c, j), v in cp_ig_data.items() if j == "2"}, doc="Parameter 2 to compute Cp_comp", - units=pyunits.J/pyunits.mol/pyunits.K**2 + units=pyunits.J / pyunits.mol / pyunits.K**2, ) self.cp_ig_3 = Param( self.phase_list, self.component_list, - mutable=False, - initialize={(p, c): v for (p, c, j), v in cp_ig_data.items() if j == '3'}, + mutable=True, + initialize={(p, c): v for (p, c, j), v in cp_ig_data.items() if j == "3"}, doc="Parameter 3 to compute Cp_comp", - units=pyunits.J/pyunits.mol/pyunits.K**3 + units=pyunits.J / pyunits.mol / pyunits.K**3, ) self.cp_ig_4 = Param( self.phase_list, self.component_list, - mutable=False, - initialize={(p, c): v for (p, c, j), v in cp_ig_data.items() if j == '4'}, + mutable=True, + initialize={(p, c): v for (p, c, j), v in cp_ig_data.items() if j == "4"}, doc="Parameter 4 to compute Cp_comp", - units=pyunits.J/pyunits.mol/pyunits.K**4 + units=pyunits.J / pyunits.mol / pyunits.K**4, ) self.cp_ig_5 = Param( self.phase_list, self.component_list, - mutable=False, - initialize={(p, c): v for (p, c, j), v in cp_ig_data.items() if j == '5'}, + mutable=True, + initialize={(p, c): v for (p, c, j), v in cp_ig_data.items() if j == "5"}, doc="Parameter 5 to compute Cp_comp", - units=pyunits.J/pyunits.mol/pyunits.K**5 + units=pyunits.J / pyunits.mol / pyunits.K**5, ) # Source: The Properties of Gases and Liquids (1987) # 4th edition, Chemical Engineering Series - Robert C. Reid # fitted to Antoine form # H2, Methane from NIST webbook - pressure_sat_coeff_data = {('benzene', 'A'): 4.202, - ('benzene', 'B'): 1322, - ('benzene', 'C'): -38.56, - ('toluene', 'A'): 4.216, - ('toluene', 'B'): 1435, - ('toluene', 'C'): -43.33, - ('hydrogen', 'A'): 3.543, - ('hydrogen', 'B'): 99.40, - ('hydrogen', 'C'): 7.726, - ('methane', 'A'): 3.990, - ('methane', 'B'): 443.0, - ('methane', 'C'): -0.49} + pressure_sat_coeff_data = { + ("benzene", "A"): 4.202, + ("benzene", "B"): 1322, + ("benzene", "C"): -38.56, + ("toluene", "A"): 4.216, + ("toluene", "B"): 1435, + ("toluene", "C"): -43.33, + ("hydrogen", "A"): 3.543, + ("hydrogen", "B"): 99.40, + ("hydrogen", "C"): 7.726, + ("methane", "A"): 3.990, + ("methane", "B"): 443.0, + ("methane", "C"): -0.49, + } self.pressure_sat_coeff_A = Param( self.component_list, - mutable=False, - initialize={c: v for (c, j), v in pressure_sat_coeff_data.items() if j == 'A'}, + mutable=True, + initialize={ + c: v for (c, j), v in pressure_sat_coeff_data.items() if j == "A" + }, doc="Parameter A to compute saturated pressure", - units=pyunits.dimensionless + units=pyunits.dimensionless, ) self.pressure_sat_coeff_B = Param( self.component_list, - mutable=False, - initialize={c: v for (c, j), v in pressure_sat_coeff_data.items() if j == 'B'}, + mutable=True, + initialize={ + c: v for (c, j), v in pressure_sat_coeff_data.items() if j == "B" + }, doc="Parameter B to compute saturated pressure", - units=pyunits.K + units=pyunits.K, ) self.pressure_sat_coeff_C = Param( self.component_list, - mutable=False, - initialize={c: v for (c, j), v in pressure_sat_coeff_data.items() if j == 'C'}, + mutable=True, + initialize={ + c: v for (c, j), v in pressure_sat_coeff_data.items() if j == "C" + }, doc="Parameter C to compute saturated pressure", - units=pyunits.K + units=pyunits.K, ) # Source: The Properties of Gases and Liquids (1987) # 4th edition, Chemical Engineering Series - Robert C. Reid - dh_vap = {'benzene': 3.387e4, - 'toluene': 3.8262e4, - 'hydrogen': 0, - 'methane': 0} + dh_vap = {"benzene": 3.387e4, "toluene": 3.8262e4, "hydrogen": 0, "methane": 0} - self.dh_vap = Param(self.component_list, - mutable=False, - units=pyunits.J/pyunits.mol, - initialize=extract_data(dh_vap), - doc="heat of vaporization") + self.dh_vap = Param( + self.component_list, + mutable=True, + units=pyunits.J / pyunits.mol, + initialize=extract_data(dh_vap), + doc="heat of vaporization", + ) # Set default scaling factors self.set_default_scaling("flow_mol", 1e3) @@ -377,45 +481,52 @@ def define_metadata(cls, obj): """Define properties supported and units.""" obj.add_properties( { - 'flow_mol': {'method': None}, - 'flow_mol_phase_comp': {'method': None}, - 'mole_frac_comp': {'method': None}, - 'temperature': {'method': None}, - 'pressure': {'method': None}, - 'flow_mol_phase': {'method': None}, - 'dens_mol_phase': {'method': '_dens_mol_phase'}, - 'pressure_sat': {'method': '_pressure_sat'}, - 'mole_frac_phase_comp': {'method': '_mole_frac_phase'}, - 'energy_internal_mol_phase_comp': { - 'method': '_energy_internal_mol_phase_comp'}, - 'energy_internal_mol_phase': { - 'method': '_energy_internal_mol_phase'}, - 'enth_mol_phase_comp': {'method': '_enth_mol_phase_comp'}, - 'enth_mol_phase': {'method': '_enth_mol_phase'}, - 'entr_mol_phase_comp': {'method': '_entr_mol_phase_comp'}, - 'entr_mol_phase': {'method': '_entr_mol_phase'}, - 'temperature_bubble': {'method': '_temperature_bubble'}, - 'temperature_dew': {'method': '_temperature_dew'}, - 'pressure_bubble': {'method': '_pressure_bubble'}, - 'pressure_dew': {'method': '_pressure_dew'}, - 'fug_phase_comp': {'method': '_fug_phase_comp'}, - } + "flow_mol": {"method": None}, + "flow_mol_phase_comp": {"method": None}, + "mole_frac_comp": {"method": None}, + "temperature": {"method": None}, + "pressure": {"method": None}, + "flow_mol_phase": {"method": None}, + "dens_mol_phase": {"method": "_dens_mol_phase"}, + "pressure_sat": {"method": "_pressure_sat"}, + "mole_frac_phase_comp": {"method": "_mole_frac_phase"}, + "energy_internal_mol_phase_comp": { + "method": "_energy_internal_mol_phase_comp" + }, + "energy_internal_mol_phase": {"method": "_energy_internal_mol_phase"}, + "enth_mol_phase_comp": {"method": "_enth_mol_phase_comp"}, + "enth_mol_phase": {"method": "_enth_mol_phase"}, + "entr_mol_phase_comp": {"method": "_entr_mol_phase_comp"}, + "entr_mol_phase": {"method": "_entr_mol_phase"}, + "temperature_bubble": {"method": "_temperature_bubble"}, + "temperature_dew": {"method": "_temperature_dew"}, + "pressure_bubble": {"method": "_pressure_bubble"}, + "pressure_dew": {"method": "_pressure_dew"}, + "fug_phase_comp": {"method": "_fug_phase_comp"}, + } ) obj.define_custom_properties( { # Enthalpy of vaporization - 'dh_vap': {'method': '_dh_vap', "units": obj.derived_units.ENERGY_MOLE}, + "dh_vap": {"method": "_dh_vap", "units": obj.derived_units.ENERGY_MOLE}, # Entropy of vaporization - 'ds_vap': {'method': '_ds_vap', "units": obj.derived_units.ENTROPY_MOLE}, + "ds_vap": { + "method": "_ds_vap", + "units": obj.derived_units.ENTROPY_MOLE, + }, + } + ) + + obj.add_default_units( + { + "time": pyunits.s, + "length": pyunits.m, + "mass": pyunits.kg, + "amount": pyunits.mol, + "temperature": pyunits.K, } ) - - obj.add_default_units({'time': pyunits.s, - 'length': pyunits.m, - 'mass': pyunits.kg, - 'amount': pyunits.mol, - 'temperature': pyunits.K}) class _IdealStateBlock(StateBlock): @@ -424,394 +535,317 @@ class _IdealStateBlock(StateBlock): whole, rather than individual elements of indexed Property Blocks. """ - def initialize(blk, state_args={}, state_vars_fixed=False, - hold_state=False, outlvl=idaeslog.NOTSET, - solver=None, optarg=None): + default_initializer = HDAInitializer + + def fix_initialization_states(blk): """ - Initialization routine for property package. - Keyword Arguments: - state_args : Dictionary with initial guesses for the state vars - chosen. Note that if this method is triggered - through the control volume, and if initial guesses - were not provided at the unit model level, the - control volume passes the inlet values as initial - guess.The keys for the state_args dictionary are: - - flow_mol_phase_comp : value at which to initialize - phase component flows - pressure : value at which to initialize pressure - temperature : value at which to initialize temperature - outlvl : sets output level of initialization routine - * 0 = no output (default) - * 1 = return solver state for each step in routine - * 2 = include solver output information (tee=True) - optarg : solver options dictionary object (default=None) - state_vars_fixed: Flag to denote if state vars have already been - fixed. - - True - states have already been fixed by the - control volume 1D. Control volume 0D - does not fix the state vars, so will - be False if this state block is used - with 0D blocks. - - False - states have not been fixed. The state - block will deal with fixing/unfixing. - solver : str indicating which solver to use during - initialization (default = 'ipopt') - hold_state : flag indicating whether the initialization routine - should unfix any state variables fixed during - initialization (default=False). - - True - states variables are not unfixed, and - a dict of returned containing flags for - which states were fixed during - initialization. - - False - state variables are unfixed after - initialization by calling the - release_state method + Fixes state variables for state blocks. + Returns: - If hold_states is True, returns a dict containing flags for - which states were fixed during initialization. + None """ - init_log = idaeslog.getInitLogger(blk.name, outlvl, tag="properties") - solve_log = idaeslog.getSolveLogger(blk.name, outlvl, tag="properties") - - # Fix state variables if not already fixed - if state_vars_fixed is False: - flags = fix_state_vars(blk, state_args) - - else: - # Check when the state vars are fixed already result in dof 0 - for k in blk.keys(): - if degrees_of_freedom(blk[k]) != 0: - raise Exception("State vars fixed but degrees of freedom " - "for state block is not zero during " - "initialization.") - # Set solver - opt = get_solver(solver, optarg) - - # --------------------------------------------------------------------- - # If present, initialize bubble and dew point calculations - for k in blk.keys(): - if hasattr(blk[k], "eq_temperature_dew"): - calculate_variable_from_constraint(blk[k].temperature_dew, - blk[k].eq_temperature_dew) - - if hasattr(blk[k], "eq_pressure_dew"): - calculate_variable_from_constraint(blk[k].pressure_dew, - blk[k].eq_pressure_dew) - - init_log.info_high("Initialization Step 1 - Dew and bubble points " - "calculation completed.") - - # --------------------------------------------------------------------- - # If flash, initialize T1 and Teq - for k in blk.keys(): - if (blk[k].config.has_phase_equilibrium and - not blk[k].config.defined_state): - blk[k]._t1.value = max(blk[k].temperature.value, - blk[k].temperature_bubble.value) - blk[k]._teq.value = min(blk[k]._t1.value, - blk[k].temperature_dew.value) - - init_log.info_high("Initialization Step 2 - Equilibrium temperature " - " calculation completed.") - - # --------------------------------------------------------------------- - # Initialize flow rates and compositions - # TODO : This will need to be generalised more when we move to a - # modular implementation - for k in blk.keys(): - # Deactivate equilibrium constraints, as state is fixed - if hasattr(blk[k], 'equilibrium_constraint'): - blk[k].equilibrium_constraint.deactivate() - - free_vars = 0 - for k in blk.keys(): - free_vars += number_unfixed_variables(blk[k]) - if free_vars > 0: - try: - with idaeslog.solver_log(solve_log, idaeslog.DEBUG) as slc: - res = solve_indexed_blocks(opt, [blk], tee=slc.tee) - except: - res = None - else: - res = None - - for k in blk.keys(): - # Reactivate equilibrium constraints - if hasattr(blk[k], 'equilibrium_constraint'): - blk[k].equilibrium_constraint.activate() + # Fix state variables + fix_state_vars(blk) - # --------------------------------------------------------------------- - # Return state to initial conditions - if state_vars_fixed is False: - if hold_state is True: - return flags - else: - blk.release_state(flags) + # Also need to deactivate sum of mole fraction constraint + for k in blk.values(): + if not k.config.defined_state: + k.equilibrium_constraint.deactivate() - init_log.info("Initialization Complete") - def release_state(blk, flags, outlvl=0): - ''' - Method to release state variables fixed during initialization. - Keyword Arguments: - flags : dict containing information of which state variables - were fixed during initialization, and should now be - unfixed. This dict is returned by initialize if - hold_state=True. - outlvl : sets output level of of logging - ''' - init_log = idaeslog.getInitLogger(blk.name, outlvl, tag="properties") - if flags is None: - init_log.debug("No flags passed to release_state().") - return - - # Unfix state variables - revert_state_vars(blk, flags) - - init_log.info_high("State Released.") - - -@declare_process_block_class("IdealStateBlock", - block_class=_IdealStateBlock) +@declare_process_block_class("IdealStateBlock", block_class=_IdealStateBlock) class IdealStateBlockData(StateBlockData): """An example property package for ideal VLE.""" def build(self): """Callable method for Block construction.""" - super(IdealStateBlockData, self).build() + super().build() # Add state variables self.flow_mol_phase_comp = Var( - self._params.phase_list, - self._params.component_list, - initialize=0.5, - units=pyunits.mol/pyunits.s, - bounds=(1e-12, 100), - doc='Phase-component molar flow rates') - - self.pressure = Var(initialize=101325, - bounds=(100000, 1000000), - units=pyunits.Pa, - domain=NonNegativeReals, - doc='State pressure') - self.temperature = Var(initialize=298.15, - units=pyunits.K, - bounds=(298, 1000), - domain=NonNegativeReals, - doc='State temperature') + self._params.phase_list, + self._params.component_list, + initialize=0.5, + units=pyunits.mol / pyunits.s, + bounds=(1e-12, 100), + doc="Phase-component molar flow rates", + ) + + self.pressure = Var( + initialize=101325, + bounds=(100000, 1000000), + units=pyunits.Pa, + domain=NonNegativeReals, + doc="State pressure", + ) + self.temperature = Var( + initialize=298.15, + units=pyunits.K, + bounds=(298, 1000), + domain=NonNegativeReals, + doc="State temperature", + ) # Add supporting variables def flow_mol_phase(b, p): - return sum(b.flow_mol_phase_comp[p, j] - for j in b._params.component_list) - self.flow_mol_phase = Expression(self._params.phase_list, - rule=flow_mol_phase, - doc='Phase molar flow rates') + return sum(b.flow_mol_phase_comp[p, j] for j in b._params.component_list) + + self.flow_mol_phase = Expression( + self._params.phase_list, rule=flow_mol_phase, doc="Phase molar flow rates" + ) def flow_mol(b): - return sum(b.flow_mol_phase_comp[p, j] - for j in b._params.component_list - for p in b._params.phase_list) - self.flow_mol = Expression(rule=flow_mol, - doc='Total molar flowrate') + return sum( + b.flow_mol_phase_comp[p, j] + for j in b._params.component_list + for p in b._params.phase_list + ) + + self.flow_mol = Expression(rule=flow_mol, doc="Total molar flowrate") def mole_frac_phase_comp(b, p, j): - return b.flow_mol_phase_comp[p, j]/b.flow_mol_phase[p] + return b.flow_mol_phase_comp[p, j] / b.flow_mol_phase[p] + self.mole_frac_phase_comp = Expression( - self._params.phase_list, - self._params.component_list, - rule=mole_frac_phase_comp, - doc='Phase mole fractions') + self._params.phase_list, + self._params.component_list, + rule=mole_frac_phase_comp, + doc="Phase mole fractions", + ) def mole_frac_comp(b, j): - return (sum(b.flow_mol_phase_comp[p, j] - for p in b._params.phase_list) / b.flow_mol) - self.mole_frac_comp = Expression(self._params.component_list, - rule=mole_frac_comp, - doc='Mixture mole fractions') + return ( + sum(b.flow_mol_phase_comp[p, j] for p in b._params.phase_list) + / b.flow_mol + ) + + self.mole_frac_comp = Expression( + self._params.component_list, + rule=mole_frac_comp, + doc="Mixture mole fractions", + ) # Reaction Stoichiometry - add_object_reference(self, "phase_equilibrium_list_ref", - self._params.phase_equilibrium_list) + add_object_reference( + self, "phase_equilibrium_list_ref", self._params.phase_equilibrium_list + ) - if (self.config.has_phase_equilibrium and - self.config.defined_state is False): + if self.config.has_phase_equilibrium and self.config.defined_state is False: # Definition of equilibrium temperature for smooth VLE self._teq = Var( - initialize=self.temperature.value, - units=pyunits.K, - doc='Temperature for calculating phase equilibrium') - self._t1 = Var(initialize=self.temperature.value, - units=pyunits.K, - doc='Intermediate temperature for calculating Teq') - - self.eps_1 = Param(default=0.01, - units=pyunits.K, - mutable=True, - doc='Smoothing parameter for Teq') - self.eps_2 = Param(default=0.0005, - units=pyunits.K, - mutable=True, - doc='Smoothing parameter for Teq') + initialize=self.temperature.value, + units=pyunits.K, + doc="Temperature for calculating phase equilibrium", + ) + self._t1 = Var( + initialize=self.temperature.value, + units=pyunits.K, + doc="Intermediate temperature for calculating Teq", + ) + + self.eps_1 = Param( + default=0.01, + units=pyunits.K, + mutable=True, + doc="Smoothing parameter for Teq", + ) + self.eps_2 = Param( + default=0.0005, + units=pyunits.K, + mutable=True, + doc="Smoothing parameter for Teq", + ) # PSE paper Eqn 13 def rule_t1(b): - return b._t1 == 0.5*( - b.temperature + b.temperature_bubble + - sqrt((b.temperature-b.temperature_bubble)**2 + - b.eps_1**2)) + return b._t1 == 0.5 * ( + b.temperature + + b.temperature_bubble + + sqrt((b.temperature - b.temperature_bubble) ** 2 + b.eps_1**2) + ) + self._t1_constraint = Constraint(rule=rule_t1) # PSE paper Eqn 14 # TODO : Add option for supercritical extension def rule_teq(b): - return b._teq == 0.5*(b._t1 + b.temperature_dew - - sqrt((b._t1-b.temperature_dew)**2 + - b.eps_2**2)) + return b._teq == 0.5 * ( + b._t1 + + b.temperature_dew + - sqrt((b._t1 - b.temperature_dew) ** 2 + b.eps_2**2) + ) + self._teq_constraint = Constraint(rule=rule_teq) def rule_tr_eq(b, i): return b._teq / b._params.temperature_crit[i] + self._tr_eq = Expression( - self._params.component_list, - rule=rule_tr_eq, - doc='Component reduced temperatures') + self._params.component_list, + rule=rule_tr_eq, + doc="Component reduced temperatures", + ) def rule_equilibrium(b, i): return b.fug_phase_comp["Liq", i] == b.fug_phase_comp["Vap", i] + self.equilibrium_constraint = Constraint( - self._params.component_list, rule=rule_equilibrium) + self._params.component_list, rule=rule_equilibrium + ) -# ----------------------------------------------------------------------------- -# Property Methods + # ----------------------------------------------------------------------------- + # Property Methods def _dens_mol_phase(self): - self.dens_mol_phase = Var(self._params.phase_list, - initialize=1.0, - units=pyunits.mol*pyunits.m**-3, - doc="Molar density") + self.dens_mol_phase = Var( + self._params.phase_list, + initialize=1.0, + units=pyunits.mol * pyunits.m**-3, + doc="Molar density", + ) def rule_dens_mol_phase(b, p): - if p == 'Vap': + if p == "Vap": return b._dens_mol_vap() else: return b._dens_mol_liq() - self.eq_dens_mol_phase = Constraint(self._params.phase_list, - rule=rule_dens_mol_phase) + + self.eq_dens_mol_phase = Constraint( + self._params.phase_list, rule=rule_dens_mol_phase + ) def _energy_internal_mol_phase_comp(self): self.energy_internal_mol_phase_comp = Var( - self._params.phase_list, - self._params.component_list, - units=pyunits.J/pyunits.mol, - doc="Phase-component molar specific internal energies") + self._params.phase_list, + self._params.component_list, + units=pyunits.J / pyunits.mol, + doc="Phase-component molar specific internal energies", + ) def rule_energy_internal_mol_phase_comp(b, p, j): - if p == 'Vap': - return b.energy_internal_mol_phase_comp[p, j] == \ - b.enth_mol_phase_comp[p, j] - \ - const.gas_constant*(b.temperature - - b._params.temperature_ref) + if p == "Vap": + return b.energy_internal_mol_phase_comp[p, j] == b.enth_mol_phase_comp[ + p, j + ] - const.gas_constant * (b.temperature - b._params.temperature_ref) else: - return b.energy_internal_mol_phase_comp[p, j] == \ - b.enth_mol_phase_comp[p, j] + return ( + b.energy_internal_mol_phase_comp[p, j] + == b.enth_mol_phase_comp[p, j] + ) + self.eq_energy_internal_mol_phase_comp = Constraint( self._params.phase_list, self._params.component_list, - rule=rule_energy_internal_mol_phase_comp) + rule=rule_energy_internal_mol_phase_comp, + ) def _energy_internal_mol_phase(self): self.energy_internal_mol_phase = Var( self._params.phase_list, - units=pyunits.J/pyunits.mol, - doc='Phase molar specific internal energies') + units=pyunits.J / pyunits.mol, + doc="Phase molar specific internal energies", + ) def rule_energy_internal_mol_phase(b, p): return b.energy_internal_mol_phase[p] == sum( - b.energy_internal_mol_phase_comp[p, i] * - b.mole_frac_phase_comp[p, i] - for i in b._params.component_list) + b.energy_internal_mol_phase_comp[p, i] * b.mole_frac_phase_comp[p, i] + for i in b._params.component_list + ) + self.eq_energy_internal_mol_phase = Constraint( - self._params.phase_list, - rule=rule_energy_internal_mol_phase) + self._params.phase_list, rule=rule_energy_internal_mol_phase + ) def _enth_mol_phase_comp(self): self.enth_mol_phase_comp = Var( - self._params.phase_list, - self._params.component_list, - initialize=7e5, - units=pyunits.J/pyunits.mol, - doc='Phase-component molar specific enthalpies') + self._params.phase_list, + self._params.component_list, + initialize=7e5, + units=pyunits.J / pyunits.mol, + doc="Phase-component molar specific enthalpies", + ) def rule_enth_mol_phase_comp(b, p, j): - if p == 'Vap': + if p == "Vap": return b._enth_mol_comp_vap(j) else: return b._enth_mol_comp_liq(j) + self.eq_enth_mol_phase_comp = Constraint( - self._params.phase_list, - self._params.component_list, - rule=rule_enth_mol_phase_comp) + self._params.phase_list, + self._params.component_list, + rule=rule_enth_mol_phase_comp, + ) def _enth_mol_phase(self): self.enth_mol_phase = Var( - self._params.phase_list, - initialize=7e5, - units=pyunits.J/pyunits.mol, - doc='Phase molar specific enthalpies') + self._params.phase_list, + initialize=7e5, + units=pyunits.J / pyunits.mol, + doc="Phase molar specific enthalpies", + ) def rule_enth_mol_phase(b, p): return b.enth_mol_phase[p] == sum( - b.enth_mol_phase_comp[p, i] * - b.mole_frac_phase_comp[p, i] - for i in b._params.component_list) - self.eq_enth_mol_phase = Constraint(self._params.phase_list, - rule=rule_enth_mol_phase) + b.enth_mol_phase_comp[p, i] * b.mole_frac_phase_comp[p, i] + for i in b._params.component_list + ) + + self.eq_enth_mol_phase = Constraint( + self._params.phase_list, rule=rule_enth_mol_phase + ) def _entr_mol_phase_comp(self): self.entr_mol_phase_comp = Var( - self._params.phase_list, - self._params.component_list, - units=pyunits.J/pyunits.mol/pyunits.K, - doc='Phase-component molar specific entropies') + self._params.phase_list, + self._params.component_list, + units=pyunits.J / pyunits.mol / pyunits.K, + doc="Phase-component molar specific entropies", + ) def rule_entr_mol_phase_comp(b, p, j): - if p == 'Vap': + if p == "Vap": return b._entr_mol_comp_vap(j) else: return b._entr_mol_comp_liq(j) + self.eq_entr_mol_phase_comp = Constraint( - self._params.phase_list, - self._params.component_list, - rule=rule_entr_mol_phase_comp) + self._params.phase_list, + self._params.component_list, + rule=rule_entr_mol_phase_comp, + ) def _entr_mol_phase(self): self.entr_mol_phase = Var( - self._params.phase_list, - units=pyunits.J/pyunits.mol/pyunits.K, - doc='Phase molar specific enthropies') + self._params.phase_list, + units=pyunits.J / pyunits.mol / pyunits.K, + doc="Phase molar specific enthropies", + ) def rule_entr_mol_phase(b, p): return b.entr_mol_phase[p] == sum( - b.entr_mol_phase_comp[p, i] * - b.mole_frac_phase_comp[p, i] - for i in b._params.component_list) - self.eq_entr_mol_phase = Constraint(self._params.phase_list, - rule=rule_entr_mol_phase) - -# ----------------------------------------------------------------------------- -# General Methods + b.entr_mol_phase_comp[p, i] * b.mole_frac_phase_comp[p, i] + for i in b._params.component_list + ) + + self.eq_entr_mol_phase = Constraint( + self._params.phase_list, rule=rule_entr_mol_phase + ) + + # ----------------------------------------------------------------------------- + # General Methods def get_material_flow_terms(self, p, j): """Create material flow terms for control volume.""" if not self.is_property_constructed("material_flow_terms"): try: + def rule_material_flow_terms(blk, p, j): return blk.flow_mol_phase_comp[p, j] + self.material_flow_terms = Expression( self.params.phase_list, self.params.component_list, - rule=rule_material_flow_terms + rule=rule_material_flow_terms, ) except AttributeError: self.del_component(self.material_flow_terms) @@ -825,11 +859,12 @@ def get_enthalpy_flow_terms(self, p): """Create enthalpy flow terms.""" if not self.is_property_constructed("enthalpy_flow_terms"): try: + def rule_enthalpy_flow_terms(blk, p): return blk.flow_mol_phase[p] * blk.enth_mol_phase[p] + self.enthalpy_flow_terms = Expression( - self.params.phase_list, - rule=rule_enthalpy_flow_terms + self.params.phase_list, rule=rule_enthalpy_flow_terms ) except AttributeError: self.del_component(self.enthalpy_flow_terms) @@ -839,13 +874,14 @@ def get_material_density_terms(self, p, j): """Create material density terms.""" if not self.is_property_constructed("material_density_terms"): try: + def rule_material_density_terms(b, p, j): - return self.dens_mol_phase[p] * \ - self.mole_frac_phase_comp[p, j] + return self.dens_mol_phase[p] * self.mole_frac_phase_comp[p, j] + self.material_density_terms = Expression( self.params.phase_list, self.params.component_list, - rule=rule_material_density_terms + rule=rule_material_density_terms, ) except AttributeError: self.del_component(self.material_density_terms) @@ -859,12 +895,12 @@ def get_enthalpy_density_terms(self, p): """Create energy density terms.""" if not self.is_property_constructed("enthalpy_density_terms"): try: + def rule_energy_density_terms(b, p): - return (self.dens_mol_phase[p] * - self.energy_internal_mol_phase[p]) + return self.dens_mol_phase[p] * self.energy_internal_mol_phase[p] + self.energy_density_terms = Expression( - self.params.phase_list, - rule=rule_energy_density_terms + self.params.phase_list, rule=rule_energy_density_terms ) except AttributeError: self.del_component(self.energy_density_terms) @@ -881,20 +917,23 @@ def get_material_flow_basis(b): def define_state_vars(self): """Define state vars.""" - return {"flow_mol_phase_comp": self.flow_mol_phase_comp, - "temperature": self.temperature, - "pressure": self.pressure} + return { + "flow_mol_phase_comp": self.flow_mol_phase_comp, + "temperature": self.temperature, + "pressure": self.pressure, + } # Property package utility functions def calculate_bubble_point_temperature(self, clear_components=True): - """"To compute the bubble point temperature of the mixture.""" + """ "To compute the bubble point temperature of the mixture.""" if hasattr(self, "eq_temperature_bubble"): # Do not delete components if the block already has the components clear_components = False - calculate_variable_from_constraint(self.temperature_bubble, - self.eq_temperature_bubble) + calculate_variable_from_constraint( + self.temperature_bubble, self.eq_temperature_bubble + ) return self.temperature_bubble.value @@ -904,14 +943,15 @@ def calculate_bubble_point_temperature(self, clear_components=True): self.del_component(self.temperature_bubble) def calculate_dew_point_temperature(self, clear_components=True): - """"To compute the dew point temperature of the mixture.""" + """ "To compute the dew point temperature of the mixture.""" if hasattr(self, "eq_temperature_dew"): # Do not delete components if the block already has the components clear_components = False - calculate_variable_from_constraint(self.temperature_dew, - self.eq_temperature_dew) + calculate_variable_from_constraint( + self.temperature_dew, self.eq_temperature_dew + ) return self.temperature_dew.value @@ -923,14 +963,15 @@ def calculate_dew_point_temperature(self, clear_components=True): self.del_component(self.temperature_dew) def calculate_bubble_point_pressure(self, clear_components=True): - """"To compute the bubble point pressure of the mixture.""" + """ "To compute the bubble point pressure of the mixture.""" if hasattr(self, "eq_pressure_bubble"): # Do not delete components if the block already has the components clear_components = False - calculate_variable_from_constraint(self.pressure_bubble, - self.eq_pressure_bubble) + calculate_variable_from_constraint( + self.pressure_bubble, self.eq_pressure_bubble + ) return self.pressure_bubble.value @@ -942,14 +983,13 @@ def calculate_bubble_point_pressure(self, clear_components=True): self.del_component(self.pressure_bubble) def calculate_dew_point_pressure(self, clear_components=True): - """"To compute the dew point pressure of the mixture.""" + """ "To compute the dew point pressure of the mixture.""" if hasattr(self, "eq_pressure_dew"): # Do not delete components if the block already has the components clear_components = False - calculate_variable_from_constraint(self.pressure_dew, - self.eq_pressure_dew) + calculate_variable_from_constraint(self.pressure_dew, self.eq_pressure_dew) return self.pressure_dew.value @@ -960,42 +1000,55 @@ def calculate_dew_point_pressure(self, clear_components=True): self.del_component(self._p_sat_dewP) self.del_component(self.pressure_dew) -# ----------------------------------------------------------------------------- -# Bubble and Dew Points -# Ideal-Ideal properties allow for the simplifications below -# Other methods require more complex equations with shadow compositions + # ----------------------------------------------------------------------------- + # Bubble and Dew Points + # Ideal-Ideal properties allow for the simplifications below + # Other methods require more complex equations with shadow compositions -# For future work, propose the following: -# Core class writes a set of constraints Phi_L_i == Phi_V_i -# Phi_L_i and Phi_V_i make calls to submethods which add shadow compositions -# as needed + # For future work, propose the following: + # Core class writes a set of constraints Phi_L_i == Phi_V_i + # Phi_L_i and Phi_V_i make calls to submethods which add shadow compositions + # as needed def _temperature_bubble(self): - self.temperature_bubble = Param(initialize=33.0, - units=pyunits.K, - doc="Bubble point temperature") + self.temperature_bubble = Param( + initialize=33.0, units=pyunits.K, doc="Bubble point temperature" + ) def _temperature_dew(self): - self.temperature_dew = Var(initialize=298.15, - units=pyunits.K, - doc="Dew point temperature") + self.temperature_dew = Var( + initialize=298.15, units=pyunits.K, doc="Dew point temperature" + ) def rule_psat_dew(b, j): - return 1e5*pyunits.Pa*10**(b._params.pressure_sat_coeff_A[j] - - b._params.pressure_sat_coeff_B[j] / - (b.temperature_dew + - b._params.pressure_sat_coeff_C[j])) + return ( + 1e5 + * pyunits.Pa + * 10 + ** ( + b._params.pressure_sat_coeff_A[j] + - b._params.pressure_sat_coeff_B[j] + / (b.temperature_dew + b._params.pressure_sat_coeff_C[j]) + ) + ) try: # Try to build expression - self._p_sat_dewT = Expression(self._params.component_list, - rule=rule_psat_dew) + self._p_sat_dewT = Expression( + self._params.component_list, rule=rule_psat_dew + ) def rule_temp_dew(b): - return b.pressure * sum(b.mole_frac_comp[i] / - b._p_sat_dewT[i] - for i in ['toluene', 'benzene']) \ - - 1 == 0 + return ( + b.pressure + * sum( + b.mole_frac_comp[i] / b._p_sat_dewT[i] + for i in ["toluene", "benzene"] + ) + - 1 + == 0 + ) + self.eq_temperature_dew = Constraint(rule=rule_temp_dew) except AttributeError: # If expression fails, clean up so that DAE can try again later @@ -1005,31 +1058,44 @@ def rule_temp_dew(b): self.del_component(self._p_sat_dewT) def _pressure_bubble(self): - self.pressure_bubble = Param(initialize=1e8, - units=pyunits.Pa, - doc="Bubble point pressure") + self.pressure_bubble = Param( + initialize=1e8, units=pyunits.Pa, doc="Bubble point pressure" + ) def _pressure_dew(self): - self.pressure_dew = Var(initialize=298.15, - units=pyunits.Pa, - doc="Dew point pressure") + self.pressure_dew = Var( + initialize=298.15, units=pyunits.Pa, doc="Dew point pressure" + ) def rule_psat_dew(b, j): - return 1e5*pyunits.Pa*10**(b._params.pressure_sat_coeff_A[j] - - b._params.pressure_sat_coeff_B[j] / - (b.temperature + - b._params.pressure_sat_coeff_C[j])) + return ( + 1e5 + * pyunits.Pa + * 10 + ** ( + b._params.pressure_sat_coeff_A[j] + - b._params.pressure_sat_coeff_B[j] + / (b.temperature + b._params.pressure_sat_coeff_C[j]) + ) + ) try: # Try to build expression - self._p_sat_dewP = Expression(self._params.component_list, - rule=rule_psat_dew) + self._p_sat_dewP = Expression( + self._params.component_list, rule=rule_psat_dew + ) def rule_pressure_dew(b): - return b.pressure_dew * \ - sum(b.mole_frac_comp[i] / b._p_sat_dewP[i] - for i in ['toluene', 'benzene']) \ - - 1 == 0 + return ( + b.pressure_dew + * sum( + b.mole_frac_comp[i] / b._p_sat_dewP[i] + for i in ["toluene", "benzene"] + ) + - 1 + == 0 + ) + self.eq_pressure_dew = Constraint(rule=rule_pressure_dew) except AttributeError: # If expression fails, clean up so that DAE can try again later @@ -1038,179 +1104,198 @@ def rule_pressure_dew(b): self.del_component(self.pressure_dew) self.del_component(self._p_sat_dewP) -# ----------------------------------------------------------------------------- -# Liquid phase properties + # ----------------------------------------------------------------------------- + # Liquid phase properties def _dens_mol_liq(b): - return b.dens_mol_phase['Liq'] == 1e3*sum( - b.mole_frac_phase_comp['Liq', j] * - b._params.dens_liq_param_1[j] / - b._params.dens_liq_param_2[j] ** - (1 + (1-b.temperature / - b._params.dens_liq_param_3[j]) ** - b._params.dens_liq_param_4[j]) - for j in ['benzene', 'toluene']) + return b.dens_mol_phase["Liq"] == 1e3 * sum( + b.mole_frac_phase_comp["Liq", j] + * b._params.dens_liq_param_1[j] + / b._params.dens_liq_param_2[j] + ** ( + 1 + + (1 - b.temperature / b._params.dens_liq_param_3[j]) + ** b._params.dens_liq_param_4[j] + ) + for j in ["benzene", "toluene"] + ) def _fug_phase_comp(self): def fug_phase_comp_rule(b, p, i): if p == "Liq": - if i in ['hydrogen', 'methane']: - return b.mole_frac_phase_comp['Liq', i] + if i in ["hydrogen", "methane"]: + return b.mole_frac_phase_comp["Liq", i] else: - return b.pressure_sat[i] * b.mole_frac_phase_comp['Liq', i] + return b.pressure_sat[i] * b.mole_frac_phase_comp["Liq", i] else: - if i in ['hydrogen', 'methane']: + if i in ["hydrogen", "methane"]: return 1e-6 else: - return b.mole_frac_phase_comp['Vap', i] * b.pressure - + return b.mole_frac_phase_comp["Vap", i] * b.pressure + self.fug_phase_comp = Expression( self._params.phase_list, self._params.component_list, - rule=fug_phase_comp_rule + rule=fug_phase_comp_rule, ) def _pressure_sat(self): - self.pressure_sat = Var(self._params.component_list, - initialize=101325, - units=pyunits.Pa, - doc="Vapor pressure") + self.pressure_sat = Var( + self._params.component_list, + initialize=101325, + units=pyunits.Pa, + doc="Vapor pressure", + ) def rule_P_sat(b, j): - return ((log10(b.pressure_sat[j]/pyunits.Pa*1e-5) - - b._params.pressure_sat_coeff_A[j]) * - (b._teq + b._params.pressure_sat_coeff_C[j])) == \ - -b._params.pressure_sat_coeff_B[j] - self.eq_pressure_sat = Constraint(self._params.component_list, - rule=rule_P_sat) + return ( + ( + log10(b.pressure_sat[j] / pyunits.Pa * 1e-5) + - b._params.pressure_sat_coeff_A[j] + ) + * (b._teq + b._params.pressure_sat_coeff_C[j]) + ) == -b._params.pressure_sat_coeff_B[j] + + self.eq_pressure_sat = Constraint(self._params.component_list, rule=rule_P_sat) def _enth_mol_comp_liq(b, j): - return b.enth_mol_phase_comp['Liq', j] * 1E3 == \ - ((b._params.cp_ig_5['Liq', j] / 5) * - (b.temperature**5 - b._params.temperature_ref**5) - + (b._params.cp_ig_4['Liq', j] / 4) * - (b.temperature**4 - b._params.temperature_ref**4) - + (b._params.cp_ig_3['Liq', j] / 3) * - (b.temperature**3 - b._params.temperature_ref**3) - + (b._params.cp_ig_2['Liq', j] / 2) * - (b.temperature**2 - b._params.temperature_ref**2) - + b._params.cp_ig_1['Liq', j] * - (b.temperature - b._params.temperature_ref)) + return b.enth_mol_phase_comp["Liq", j] * 1e3 == ( + (b._params.cp_ig_5["Liq", j] / 5) + * (b.temperature**5 - b._params.temperature_ref**5) + + (b._params.cp_ig_4["Liq", j] / 4) + * (b.temperature**4 - b._params.temperature_ref**4) + + (b._params.cp_ig_3["Liq", j] / 3) + * (b.temperature**3 - b._params.temperature_ref**3) + + (b._params.cp_ig_2["Liq", j] / 2) + * (b.temperature**2 - b._params.temperature_ref**2) + + b._params.cp_ig_1["Liq", j] * (b.temperature - b._params.temperature_ref) + ) def _entr_mol_comp_liq(b, j): - return b.entr_mol_phase_comp['Liq', j] * 1E3 == ( - ((b._params.cp_ig_5['Liq', j] / 4) * - (b.temperature**4 - b._params.temperature_ref**4) - + (b._params.cp_ig_4['Liq', j] / 3) * - (b.temperature**3 - b._params.temperature_ref**3) - + (b._params.cp_ig_3['Liq', j] / 2) * - (b.temperature**2 - b._params.temperature_ref**2) - + b._params.cp_ig_2['Liq', j] * - (b.temperature - b._params.temperature_ref) - + b._params.cp_ig_1['Liq', j] * - log(b.temperature / b._params.temperature_ref)) - - const.gas_constant * - log(b.mole_frac_phase_comp['Liq', j]*b.pressure / - b._params.pressure_ref)) - -# ----------------------------------------------------------------------------- -# Vapour phase properties + return b.entr_mol_phase_comp["Liq", j] * 1e3 == ( + ( + (b._params.cp_ig_5["Liq", j] / 4) + * (b.temperature**4 - b._params.temperature_ref**4) + + (b._params.cp_ig_4["Liq", j] / 3) + * (b.temperature**3 - b._params.temperature_ref**3) + + (b._params.cp_ig_3["Liq", j] / 2) + * (b.temperature**2 - b._params.temperature_ref**2) + + b._params.cp_ig_2["Liq", j] + * (b.temperature - b._params.temperature_ref) + + b._params.cp_ig_1["Liq", j] + * log(b.temperature / b._params.temperature_ref) + ) + - const.gas_constant + * log( + b.mole_frac_phase_comp["Liq", j] * b.pressure / b._params.pressure_ref + ) + ) + + # ----------------------------------------------------------------------------- + # Vapour phase properties def _dens_mol_vap(b): - return b.pressure == (b.dens_mol_phase['Vap'] * - const.gas_constant * - b.temperature) + return b.pressure == ( + b.dens_mol_phase["Vap"] * const.gas_constant * b.temperature + ) def _dh_vap(self): # heat of vaporization - add_object_reference(self, "dh_vap", - self._params.dh_vap) + add_object_reference(self, "dh_vap", self._params.dh_vap) def _ds_vap(self): # entropy of vaporization = dh_Vap/T_boil # TODO : something more rigorous would be nice - self.ds_vap = Var(self._params.component_list, - initialize=86, - units=pyunits.J/pyunits.mol/pyunits.K, - doc="Entropy of vaporization") + self.ds_vap = Var( + self._params.component_list, + initialize=86, + units=pyunits.J / pyunits.mol / pyunits.K, + doc="Entropy of vaporization", + ) def rule_ds_vap(b, j): - return b.dh_vap[j] == (b.ds_vap[j] * - b._params.temperature_boil[j]) - self.eq_ds_vap = Constraint(self._params.component_list, - rule=rule_ds_vap) + return b.dh_vap[j] == (b.ds_vap[j] * b._params.temperature_boil[j]) + + self.eq_ds_vap = Constraint(self._params.component_list, rule=rule_ds_vap) def _enth_mol_comp_vap(b, j): - return b.enth_mol_phase_comp['Vap', j] == b.dh_vap[j] + \ - ((b._params.cp_ig_5['Vap', j] / 5) * - (b.temperature**5 - b._params.temperature_ref**5) - + (b._params.cp_ig_4['Vap', j] / 4) * - (b.temperature**4 - b._params.temperature_ref**4) - + (b._params.cp_ig_3['Vap', j] / 3) * - (b.temperature**3 - b._params.temperature_ref**3) - + (b._params.cp_ig_2['Vap', j] / 2) * - (b.temperature**2 - b._params.temperature_ref**2) - + b._params.cp_ig_1['Vap', j] * - (b.temperature - b._params.temperature_ref)) + return b.enth_mol_phase_comp["Vap", j] == b.dh_vap[j] + ( + (b._params.cp_ig_5["Vap", j] / 5) + * (b.temperature**5 - b._params.temperature_ref**5) + + (b._params.cp_ig_4["Vap", j] / 4) + * (b.temperature**4 - b._params.temperature_ref**4) + + (b._params.cp_ig_3["Vap", j] / 3) + * (b.temperature**3 - b._params.temperature_ref**3) + + (b._params.cp_ig_2["Vap", j] / 2) + * (b.temperature**2 - b._params.temperature_ref**2) + + b._params.cp_ig_1["Vap", j] * (b.temperature - b._params.temperature_ref) + ) def _entr_mol_comp_vap(b, j): - return b.entr_mol_phase_comp['Vap', j] == ( - b.ds_vap[j] + - ((b._params.cp_ig_5['Vap', j] / 4) * - (b.temperature**4 - b._params.temperature_ref**4) - + (b._params.cp_ig_4['Vap', j] / 3) * - (b.temperature**3 - b._params.temperature_ref**3) - + (b._params.cp_ig_3['Vap', j] / 2) * - (b.temperature**2 - b._params.temperature_ref**2) - + b._params.cp_ig_2['Vap', j] * - (b.temperature - b._params.temperature_ref) - + b._params.cp_ig_1['Vap', j] * - log(b.temperature / b._params.temperature_ref)) - - const.gas_constant * - log(b.mole_frac_phase_comp['Vap', j]*b.pressure / - b._params.pressure_ref)) + return b.entr_mol_phase_comp["Vap", j] == ( + b.ds_vap[j] + + ( + (b._params.cp_ig_5["Vap", j] / 4) + * (b.temperature**4 - b._params.temperature_ref**4) + + (b._params.cp_ig_4["Vap", j] / 3) + * (b.temperature**3 - b._params.temperature_ref**3) + + (b._params.cp_ig_3["Vap", j] / 2) + * (b.temperature**2 - b._params.temperature_ref**2) + + b._params.cp_ig_2["Vap", j] + * (b.temperature - b._params.temperature_ref) + + b._params.cp_ig_1["Vap", j] + * log(b.temperature / b._params.temperature_ref) + ) + - const.gas_constant + * log( + b.mole_frac_phase_comp["Vap", j] * b.pressure / b._params.pressure_ref + ) + ) def calculate_scaling_factors(self): # Get default scale factors super().calculate_scaling_factors() is_two_phase = len(self._params.phase_list) == 2 - sf_flow = iscale.get_scaling_factor( - self.flow_mol, default=1, warning=True) - sf_T = iscale.get_scaling_factor( - self.temperature, default=1, warning=True) - sf_P = iscale.get_scaling_factor( - self.pressure, default=1, warning=True) + sf_flow = iscale.get_scaling_factor(self.flow_mol, default=1, warning=True) + sf_T = iscale.get_scaling_factor(self.temperature, default=1, warning=True) + sf_P = iscale.get_scaling_factor(self.pressure, default=1, warning=True) if self.is_property_constructed("_teq"): iscale.set_scaling_factor(self._teq, sf_T) if self.is_property_constructed("_teq_constraint"): iscale.constraint_scaling_transform( - self._teq_constraint, sf_T, overwrite=False) + self._teq_constraint, sf_T, overwrite=False + ) if self.is_property_constructed("_t1"): iscale.set_scaling_factor(self._t1, sf_T) if self.is_property_constructed("_t1_constraint"): iscale.constraint_scaling_transform( - self._t1_constraint, sf_T, overwrite=False) + self._t1_constraint, sf_T, overwrite=False + ) if self.is_property_constructed("_mole_frac_pdew"): iscale.set_scaling_factor(self._mole_frac_pdew, 1e3) iscale.constraint_scaling_transform( - self._sum_mole_frac_pdew, 1e3, overwrite=False) + self._sum_mole_frac_pdew, 1e3, overwrite=False + ) if self.is_property_constructed("total_flow_balance"): iscale.constraint_scaling_transform( - self.total_flow_balance, sf_flow, overwrite=False) + self.total_flow_balance, sf_flow, overwrite=False + ) if self.is_property_constructed("component_flow_balances"): for i, c in self.component_flow_balances.items(): if is_two_phase: s = iscale.get_scaling_factor( - self.mole_frac_comp[i], default=1, warning=True) + self.mole_frac_comp[i], default=1, warning=True + ) s *= sf_flow iscale.constraint_scaling_transform(c, s, overwrite=False) else: s = iscale.get_scaling_factor( - self.mole_frac_comp[i], default=1, warning=True) + self.mole_frac_comp[i], default=1, warning=True + ) iscale.constraint_scaling_transform(c, s, overwrite=False) if self.is_property_constructed("dens_mol_phase"): @@ -1220,37 +1305,37 @@ def calculate_scaling_factors(self): if self.is_property_constructed("dens_mass_phase"): for p, c in self.eq_dens_mass_phase.items(): sf = iscale.get_scaling_factor( - self.dens_mass_phase[p], default=1, warning=True) + self.dens_mass_phase[p], default=1, warning=True + ) iscale.constraint_scaling_transform(c, sf, overwrite=False) if self.is_property_constructed("enth_mol_phase"): for p, c in self.eq_enth_mol_phase.items(): sf = iscale.get_scaling_factor( - self.enth_mol_phase[p], default=1, warning=True) + self.enth_mol_phase[p], default=1, warning=True + ) iscale.constraint_scaling_transform(c, sf, overwrite=False) if self.is_property_constructed("enth_mol"): - sf = iscale.get_scaling_factor( - self.enth_mol, default=1, warning=True) + sf = iscale.get_scaling_factor(self.enth_mol, default=1, warning=True) sf *= sf_flow - iscale.constraint_scaling_transform( - self.eq_enth_mol, sf, overwrite=False) + iscale.constraint_scaling_transform(self.eq_enth_mol, sf, overwrite=False) if self.is_property_constructed("entr_mol_phase"): for p, c in self.eq_entr_mol_phase.items(): sf = iscale.get_scaling_factor( - self.entr_mol_phase[p], default=1, warning=True) + self.entr_mol_phase[p], default=1, warning=True + ) iscale.constraint_scaling_transform(c, sf, overwrite=False) if self.is_property_constructed("entr_mol"): - sf = iscale.get_scaling_factor( - self.entr_mol, default=1, warning=True) + sf = iscale.get_scaling_factor(self.entr_mol, default=1, warning=True) sf *= sf_flow - iscale.constraint_scaling_transform( - self.eq_entr_mol, sf, overwrite=False) + iscale.constraint_scaling_transform(self.eq_entr_mol, sf, overwrite=False) if self.is_property_constructed("gibbs_mol_phase"): for p, c in self.eq_gibbs_mol_phase.items(): sf = iscale.get_scaling_factor( - self.gibbs_mol_phase[p], default=1, warning=True) + self.gibbs_mol_phase[p], default=1, warning=True + ) iscale.constraint_scaling_transform(c, sf, overwrite=False) diff --git a/idaes_examples/mod/surrogates/AR_training_methods.py b/idaes_examples/mod/surrogates/AR_training_methods.py index 69d9cd48..5e62695f 100644 --- a/idaes_examples/mod/surrogates/AR_training_methods.py +++ b/idaes_examples/mod/surrogates/AR_training_methods.py @@ -224,7 +224,7 @@ def train_load_surrogates(retrain=False) -> Set[SurrType]: # Train surrogates using Keras - if os.path.exists('keras_surrogate/') and retrain is False: + if os.path.exists('keras_surrogate/keras_model.keras') and retrain is False: # surrogates folder already exists, skip training # we will load the object into the flowsheet later pass @@ -263,7 +263,7 @@ def train_load_surrogates(retrain=False) -> Set[SurrType]: # Train surrogate (calls optimizer on neural network and solves # for weights) model.compile(loss=loss, optimizer=optimizer, metrics=metrics) - mcp_save = tf.keras.callbacks.ModelCheckpoint('.mdl_wts.hdf5', + mcp_save = tf.keras.callbacks.ModelCheckpoint('.mdl_wts.keras', save_best_only=True, monitor='val_loss', mode='min') @@ -281,7 +281,7 @@ def train_load_surrogates(retrain=False) -> Set[SurrType]: input_bounds=input_bounds, input_scaler=input_scaler, output_scaler=output_scaler) - keras_surrogate.save_to_folder('keras_surrogate') + keras_surrogate.save_to_folder(keras_folder_name="keras_surrogate", keras_model_name="keras_model") trained_surr.add(SurrType.KERAS) diff --git a/idaes_examples/mod/tut/visualizer_tutorial.py b/idaes_examples/mod/tut/visualizer_tutorial.py index 8622c69e..0bcd0a71 100644 --- a/idaes_examples/mod/tut/visualizer_tutorial.py +++ b/idaes_examples/mod/tut/visualizer_tutorial.py @@ -48,6 +48,8 @@ from idaes.models.unit_models.pressure_changer import ThermodynamicAssumption from idaes.core.util.model_statistics import degrees_of_freedom +from idaes.core.solvers import get_solver +from idaes.core.util.exceptions import InitializationError try: import idaes_ui @@ -289,7 +291,13 @@ def initialize_model(m: ConcreteModel) -> ConcreteModel: seq.set_guesses_for(m.fs.H101.inlet, tear_guesses) def initialize_unit(unit): - unit.initialize(outlvl=idaeslog.DEBUG) + try: + initializer = unit.default_initializer() + initializer.initialize(unit, output_level=idaeslog.INFO) + except InitializationError: + solver=get_solver() + solver.solve(unit) + seq.run(m, initialize_unit) return m diff --git a/idaes_examples/notebooks/docs/flowsheets/hda_flowsheet_with_distillation.ipynb b/idaes_examples/notebooks/docs/flowsheets/hda_flowsheet_with_distillation.ipynb index ea0e1dd1..a8b9ba91 100644 --- a/idaes_examples/notebooks/docs/flowsheets/hda_flowsheet_with_distillation.ipynb +++ b/idaes_examples/notebooks/docs/flowsheets/hda_flowsheet_with_distillation.ipynb @@ -234,6 +234,7 @@ "from idaes.core.util.initialization import propagate_state\n", "from idaes.core.solvers import get_solver\n", "import idaes.core.util.scaling as iscale\n", + "from idaes.core.util.exceptions import InitializationError\n", "\n", "# Import idaes logger to set output levels\n", "import idaes.logger as idaeslog" @@ -737,7 +738,15 @@ "cell_type": "code", "execution_count": 28, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "29\n" + ] + } + ], "source": [ "print(degrees_of_freedom(m))" ] @@ -952,7 +961,42 @@ "cell_type": "code", "execution_count": 38, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].flow_mol_phase\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enth_mol_phase_comp[Liq,benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enth_mol_phase_comp[Liq,toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enth_mol_phase_comp[Vap,benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enth_mol_phase_comp[Vap,toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].enth_mol_phase_comp[Liq,benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].enth_mol_phase_comp[Liq,toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].enth_mol_phase_comp[Vap,benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].enth_mol_phase_comp[Vap,toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].material_flow_terms[Liq,benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].material_flow_terms[Vap,benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].material_flow_terms[Liq,toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].material_flow_terms[Vap,toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enthalpy_flow_terms[Liq], enthalpy_flow_terms\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enthalpy_flow_terms[Vap], enthalpy_flow_terms\n" + ] + } + ], "source": [ "# Set scaling factors for heat duty, reaction extent and volume\n", "iscale.set_scaling_factor(m.fs.H101.control_volume.heat, 1e-2)\n", @@ -1002,7 +1046,15 @@ "solution" ] }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n" + ] + } + ], "source": [ "# Todo: Check the degrees of freedom\n", "print(degrees_of_freedom(m))" @@ -1061,7 +1113,15 @@ "cell_type": "code", "execution_count": 43, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "fs.s03\n" + ] + } + ], "source": [ "for o in heuristic_tear_set:\n", " print(o.name)" @@ -1078,7 +1138,20 @@ "cell_type": "code", "execution_count": 44, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "fs.H101\n", + "fs.R101\n", + "fs.F101\n", + "fs.S101\n", + "fs.C101\n", + "fs.M101\n" + ] + } + ], "source": [ "for o in order:\n", " print(o[0].name)" @@ -1110,7 +1183,7 @@ " (0, \"Liq\", \"hydrogen\"): 1e-5,\n", " (0, \"Liq\", \"methane\"): 1e-5,\n", " },\n", - " \"temperature\": {0: 303},\n", + " \"temperature\": {0: 303.2},\n", " \"pressure\": {0: 350000},\n", "}\n", "\n", @@ -1122,7 +1195,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Next, we need to tell the tool how to initialize a particular unit. We will be writing a python function which takes in a \"unit\" and calls the initialize method on that unit." + "Next, we need to tell the tool how to initialize a particular unit. We will be writing a python function which takes in a \"unit\" and calls the initialize method on that unit. For the initialization, we will import a Block Triangularization Initializer which decomposes the model into a set of subproblems. These subproblems are solved using a block triangularization transformation before applying a simple Newton or user-selected solver. Methods such as block triangularization often solve faster and yield more reliable behavior than heuristic methods, but sometime struggle to decompose models with strongly coupled equations (e.g. column models, systems with counter-current flow, vapor-liquid equilibrium)." ] }, { @@ -1132,7 +1205,15 @@ "outputs": [], "source": [ "def function(unit):\n", - " unit.initialize(outlvl=idaeslog.INFO)" + " # Try initializing using default initializer, \n", + " # if it fails (probably due to scaling) try for the second time\n", + " try:\n", + " initializer = unit.default_initializer()\n", + " initializer.initialize(unit, output_level=idaeslog.INFO)\n", + " except InitializationError:\n", + " solver=get_solver()\n", + " solver.solve(unit)\n", + " " ] }, { @@ -1148,7 +1229,132 @@ "metadata": { "scrolled": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-08-28 18:38:14 [INFO] idaes.init.fs.H101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:16 [INFO] idaes.init.fs.H101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:16 [INFO] idaes.init.fs.R101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:16 [INFO] idaes.init.fs.R101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:17 [INFO] idaes.init.fs.F101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:17 [INFO] idaes.init.fs.F101.control_volume.properties_out: Initialization Complete\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 12\n", + "component keys that are not exported as part of the NL file. Skipping.\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 50 keys\n", + "that are not Var, Constraint, Objective, or the model. Skipping.\n", + "2024-08-28 18:38:17 [INFO] idaes.init.fs.S101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:17 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n", + "2024-08-28 18:38:17 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n", + "2024-08-28 18:38:17 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - \n", + "2024-08-28 18:38:18 [INFO] idaes.init.fs.C101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:18 [INFO] idaes.init.fs.C101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:18 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 1 optimal - .\n", + "2024-08-28 18:38:18 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 2 optimal - .\n", + "2024-08-28 18:38:19 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 3 optimal - .\n", + "2024-08-28 18:38:19 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 4 optimal - .\n", + "2024-08-28 18:38:19 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 5 optimal - .\n", + "2024-08-28 18:38:19 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 1 optimal - .\n", + "2024-08-28 18:38:19 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 2 optimal - .\n", + "2024-08-28 18:38:20 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 3 optimal - .\n", + "2024-08-28 18:38:20 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 4 optimal - .\n", + "2024-08-28 18:38:20 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 5 optimal - .\n", + "2024-08-28 18:38:20 [INFO] idaes.init.fs.M101.toluene_feed_state: Initialization Complete\n", + "2024-08-28 18:38:20 [INFO] idaes.init.fs.M101.hydrogen_feed_state: Initialization Complete\n", + "2024-08-28 18:38:20 [INFO] idaes.init.fs.M101.vapor_recycle_state: Initialization Complete\n", + "2024-08-28 18:38:21 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:21 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - \n", + "2024-08-28 18:38:21 [INFO] idaes.init.fs.H101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:21 [INFO] idaes.init.fs.H101.control_volume.properties_out: Initialization Complete\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 11\n", + "component keys that are not exported as part of the NL file. Skipping.\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 50 keys\n", + "that are not Var, Constraint, Objective, or the model. Skipping.\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.R101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.R101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.F101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.F101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.S101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - \n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.C101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.C101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.M101.toluene_feed_state: Initialization Complete\n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.M101.hydrogen_feed_state: Initialization Complete\n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.M101.vapor_recycle_state: Initialization Complete\n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - \n", + "2024-08-28 18:38:24 [INFO] idaes.init.fs.H101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:24 [INFO] idaes.init.fs.H101.control_volume.properties_out: Initialization Complete\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 11\n", + "component keys that are not exported as part of the NL file. Skipping.\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 50 keys\n", + "that are not Var, Constraint, Objective, or the model. Skipping.\n", + "2024-08-28 18:38:24 [INFO] idaes.init.fs.R101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:24 [INFO] idaes.init.fs.R101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.F101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.F101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.S101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - \n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.C101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.C101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.M101.toluene_feed_state: Initialization Complete\n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.M101.hydrogen_feed_state: Initialization Complete\n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.M101.vapor_recycle_state: Initialization Complete\n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - \n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.H101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.H101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.R101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.R101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.F101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.F101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.S101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - \n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.C101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.C101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.M101.toluene_feed_state: Initialization Complete\n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.M101.hydrogen_feed_state: Initialization Complete\n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.M101.vapor_recycle_state: Initialization Complete\n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - \n", + "2024-08-28 18:38:29 [INFO] idaes.init.fs.H101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:29 [INFO] idaes.init.fs.H101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:29 [INFO] idaes.init.fs.R101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:29 [INFO] idaes.init.fs.R101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.F101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.F101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.S101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - \n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.C101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.C101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.M101.toluene_feed_state: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.M101.hydrogen_feed_state: Initialization Complete\n", + "2024-08-28 18:38:31 [INFO] idaes.init.fs.M101.vapor_recycle_state: Initialization Complete\n", + "2024-08-28 18:38:31 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:31 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - \n", + "WARNING: Wegstein failed to converge in 3 iterations\n", + "2024-08-28 18:38:31 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 1 optimal - .\n", + "2024-08-28 18:38:31 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 2 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 3 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 4 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 5 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 1 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 2 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 3 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 4 optimal - .\n", + "2024-08-28 18:38:33 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 5 optimal - .\n" + ] + } + ], "source": [ "seq.run(m, function)" ] @@ -1167,7 +1373,91 @@ "cell_type": "code", "execution_count": 48, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING: model contains export suffix 'scaling_factor' that contains 6\n", + "component keys that are not exported as part of the NL file. Skipping.\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 150 keys\n", + "that are not Var, Constraint, Objective, or the model. Skipping.\n", + "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", + "tol=1e-06\n", + "max_iter=200\n", + "\n", + "\n", + "******************************************************************************\n", + "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", + " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", + " For more information visit http://projects.coin-or.org/Ipopt\n", + "\n", + "This version of Ipopt was compiled from source code available at\n", + " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", + " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", + " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", + "\n", + "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", + " for large-scale scientific computation. All technical papers, sales and\n", + " publicity material resulting from use of the HSL codes within IPOPT must\n", + " contain the following acknowledgement:\n", + " HSL, a collection of Fortran codes for large-scale scientific\n", + " computation. See http://www.hsl.rl.ac.uk.\n", + "******************************************************************************\n", + "\n", + "This is Ipopt version 3.13.2, running with linear solver ma27.\n", + "\n", + "Number of nonzeros in equality constraint Jacobian...: 1097\n", + "Number of nonzeros in inequality constraint Jacobian.: 0\n", + "Number of nonzeros in Lagrangian Hessian.............: 877\n", + "\n", + "Total number of variables............................: 363\n", + " variables with only lower bounds: 8\n", + " variables with lower and upper bounds: 155\n", + " variables with only upper bounds: 0\n", + "Total number of equality constraints.................: 363\n", + "Total number of inequality constraints...............: 0\n", + " inequality constraints with only lower bounds: 0\n", + " inequality constraints with lower and upper bounds: 0\n", + " inequality constraints with only upper bounds: 0\n", + "\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 0 0.0000000e+00 3.82e+04 1.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", + " 1 0.0000000e+00 8.69e+03 1.44e+03 -1.0 2.00e+04 - 9.71e-01 4.67e-01H 1\n", + " 2 0.0000000e+00 1.29e+03 1.56e+03 -1.0 1.60e+04 - 9.79e-01 4.90e-01h 1\n", + " 3 0.0000000e+00 1.18e+03 1.55e+05 -1.0 1.40e+04 - 9.90e-01 4.99e-01h 1\n", + " 4 0.0000000e+00 5.46e+02 2.32e+09 -1.0 8.42e+03 - 1.00e+00 9.82e-01h 1\n", + " 5 0.0000000e+00 5.46e+03 3.66e+10 -1.0 5.97e+02 - 1.00e+00 9.90e-01h 1\n", + " 6 0.0000000e+00 1.21e+03 8.01e+09 -1.0 5.75e+00 - 1.00e+00 1.00e+00h 1\n", + " 7 0.0000000e+00 6.41e+00 3.87e+07 -1.0 1.53e-03 - 1.00e+00 1.00e+00f 1\n", + " 8 0.0000000e+00 1.96e-04 9.36e+02 -1.0 7.28e-06 - 1.00e+00 1.00e+00h 1\n", + " 9 0.0000000e+00 2.24e-08 4.99e-01 -3.8 5.92e-08 - 1.00e+00 1.00e+00h 1\n", + "Cannot recompute multipliers for feasibility problem. Error in eq_mult_calculator\n", + "\n", + "Number of Iterations....: 9\n", + "\n", + " (scaled) (unscaled)\n", + "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Dual infeasibility......: 1.5042487592972509e+04 1.5042487592972509e+04\n", + "Constraint violation....: 2.9103830456733704e-11 2.2351741790771484e-08\n", + "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Overall NLP error.......: 2.9103830456733704e-11 1.5042487592972509e+04\n", + "\n", + "\n", + "Number of objective function evaluations = 11\n", + "Number of objective gradient evaluations = 10\n", + "Number of equality constraint evaluations = 11\n", + "Number of inequality constraint evaluations = 0\n", + "Number of equality constraint Jacobian evaluations = 10\n", + "Number of inequality constraint Jacobian evaluations = 0\n", + "Number of Lagrangian Hessian evaluations = 9\n", + "Total CPU secs in IPOPT (w/o function evaluations) = 0.011\n", + "Total CPU secs in NLP function evaluations = 0.001\n", + "\n", + "EXIT: Optimal Solution Found.\n" + ] + } + ], "source": [ "# Create the solver object\n", "solver = get_solver()\n", @@ -1215,7 +1505,617 @@ "cell_type": "code", "execution_count": 50, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].material_flow_terms[Liq,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].material_flow_terms[Vap,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].material_flow_terms[Liq,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].material_flow_terms[Vap,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].enthalpy_flow_terms[Liq], enthalpy_flow_terms\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].enthalpy_flow_terms[Vap], enthalpy_flow_terms\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].material_flow_terms[Liq,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].material_flow_terms[Vap,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].material_flow_terms[Liq,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].material_flow_terms[Vap,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].enthalpy_flow_terms[Liq], enthalpy_flow_terms\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].enthalpy_flow_terms[Vap], enthalpy_flow_terms\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.e_flow_reflux[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.e_mole_frac_reflux[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.e_mole_frac_reflux[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.e_flow_vapor_reboil[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.e_mole_frac_vapor_reboil[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.e_mole_frac_vapor_reboil[0.0,toluene]\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101: Begin initialization.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray: Begin initialization.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_out: State Released.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: State Released.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: State Released.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: State Released.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.condenser.control_volume: Initialization Complete\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.condenser: Initialization Complete, optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: State Released.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: State Released.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler: Initialization Complete, optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: State Released.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.rectification_section[1]: Begin initialization.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: State Released.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: State Released.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[2]: Begin initialization.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: State Released.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[2]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[2]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: State Released.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: State Released.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3]: Begin initialization.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: State Released.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[3]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[3]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[3]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: State Released.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: State Released.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4]: Begin initialization.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: State Released.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: State Released.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.stripping_section[6]: Begin initialization.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: State Released.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: State Released.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[7]: Begin initialization.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: State Released.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[7]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[7]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: State Released.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: State Released.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8]: Begin initialization.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: State Released.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[8]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[8]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[8]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: State Released.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: State Released.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9]: Begin initialization.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: State Released.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[9]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[9]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[9]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[9]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: State Released.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: State Released.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[10]: Begin initialization.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: State Released.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: State Released.\n", + "2024-08-28 18:39:01 [INFO] idaes.init.fs.D101: Rectification section initialization status optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:01 [INFO] idaes.init.fs.D101: Stripping section initialization status optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:01 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: State Released.\n", + "2024-08-28 18:39:01 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: State Released.\n", + "2024-08-28 18:39:01 [INFO] idaes.init.fs.D101: Column section initialization status optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:01 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: State Released.\n", + "2024-08-28 18:39:02 [INFO] idaes.init.fs.D101: Column section + Condenser initialization status optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:02 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: State Released.\n", + "2024-08-28 18:39:03 [INFO] idaes.init.fs.D101: Column section + Condenser + Reboiler initialization status optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:03 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: State Released.\n" + ] + } + ], "source": [ "# Add distillation column to the flowsheet\n", "m.fs.D101 = TrayColumn(\n", @@ -1314,7 +2214,101 @@ "cell_type": "code", "execution_count": 53, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING: model contains export suffix 'scaling_factor' that contains 7\n", + "component keys that are not exported as part of the NL file. Skipping.\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 150 keys\n", + "that are not Var, Constraint, Objective, or the model. Skipping.\n", + "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", + "tol=1e-06\n", + "max_iter=200\n", + "\n", + "\n", + "******************************************************************************\n", + "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", + " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", + " For more information visit http://projects.coin-or.org/Ipopt\n", + "\n", + "This version of Ipopt was compiled from source code available at\n", + " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", + " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", + " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", + "\n", + "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", + " for large-scale scientific computation. All technical papers, sales and\n", + " publicity material resulting from use of the HSL codes within IPOPT must\n", + " contain the following acknowledgement:\n", + " HSL, a collection of Fortran codes for large-scale scientific\n", + " computation. See http://www.hsl.rl.ac.uk.\n", + "******************************************************************************\n", + "\n", + "This is Ipopt version 3.13.2, running with linear solver ma27.\n", + "\n", + "Number of nonzeros in equality constraint Jacobian...: 4042\n", + "Number of nonzeros in inequality constraint Jacobian.: 0\n", + "Number of nonzeros in Lagrangian Hessian.............: 2376\n", + "\n", + "Total number of variables............................: 1169\n", + " variables with only lower bounds: 112\n", + " variables with lower and upper bounds: 365\n", + " variables with only upper bounds: 0\n", + "Total number of equality constraints.................: 1169\n", + "Total number of inequality constraints...............: 0\n", + " inequality constraints with only lower bounds: 0\n", + " inequality constraints with lower and upper bounds: 0\n", + " inequality constraints with only upper bounds: 0\n", + "\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 0 0.0000000e+00 3.83e+04 1.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", + " 1 0.0000000e+00 8.70e+03 1.50e+03 -1.0 3.69e+04 - 9.71e-01 4.62e-01H 1\n", + " 2 0.0000000e+00 1.53e+03 1.56e+03 -1.0 6.75e+03 - 9.77e-01 4.89e-01h 1\n", + " 3 0.0000000e+00 1.37e+03 1.55e+05 -1.0 9.37e+03 - 9.90e-01 4.99e-01h 1\n", + " 4 0.0000000e+00 6.14e+02 2.31e+09 -1.0 6.09e+03 - 1.00e+00 9.81e-01h 1\n", + " 5 0.0000000e+00 5.32e+03 3.62e+10 -1.0 5.56e+02 - 1.00e+00 9.90e-01h 1\n", + " 6 0.0000000e+00 1.16e+03 7.80e+09 -1.0 5.36e+00 - 1.00e+00 1.00e+00h 1\n", + " 7 0.0000000e+00 5.96e+00 3.64e+07 -1.0 1.47e-03 - 1.00e+00 1.00e+00f 1\n", + " 8 0.0000000e+00 1.69e-04 8.15e+02 -1.0 6.77e-06 - 1.00e+00 1.00e+00h 1\n", + " 9 0.0000000e+00 7.45e-09 6.64e-03 -3.8 2.00e-07 - 1.00e+00 1.00e+00h 1\n", + "Cannot recompute multipliers for feasibility problem. Error in eq_mult_calculator\n", + "\n", + "Number of Iterations....: 9\n", + "\n", + " (scaled) (unscaled)\n", + "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Dual infeasibility......: 1.5042483516409773e+04 1.5042483516409773e+04\n", + "Constraint violation....: 2.9103830456733704e-11 7.4505805969238281e-09\n", + "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Overall NLP error.......: 2.9103830456733704e-11 1.5042483516409773e+04\n", + "\n", + "\n", + "Number of objective function evaluations = 11\n", + "Number of objective gradient evaluations = 10\n", + "Number of equality constraint evaluations = 11\n", + "Number of inequality constraint evaluations = 0\n", + "Number of equality constraint Jacobian evaluations = 10\n", + "Number of inequality constraint Jacobian evaluations = 0\n", + "Number of Lagrangian Hessian evaluations = 9\n", + "Total CPU secs in IPOPT (w/o function evaluations) = 0.083\n", + "Total CPU secs in NLP function evaluations = 0.013\n", + "\n", + "EXIT: Optimal Solution Found.\n" + ] + }, + { + "data": { + "text/plain": [ + "{'Problem': [{'Lower bound': -inf, 'Upper bound': inf, 'Number of objectives': 1, 'Number of constraints': 1169, 'Number of variables': 1169, 'Sense': 'unknown'}], 'Solver': [{'Status': 'ok', 'Message': 'Ipopt 3.13.2\\\\x3a Optimal Solution Found', 'Termination condition': 'optimal', 'Id': 0, 'Error rc': 0, 'Time': 0.2022566795349121}], 'Solution': [OrderedDict([('number of solutions', 0), ('number of solutions displayed', 0)])]}" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "solver.solve(m, tee=True)" ] @@ -1348,7 +2342,26 @@ "cell_type": "code", "execution_count": 55, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "total cost = $ 442301.47075252194\n", + "operating cost = $ 427596.73056805483\n", + "capital cost = $ 14704.740184467111\n", + "\n", + "Distillate flowrate = 0.16196898920633368 mol/s\n", + "Benzene purity = 89.4916166580088 %\n", + "Residue flowrate = 0.10515007120697904 mol/s\n", + "Toluene purity = 43.32260291055251 %\n", + "\n", + "Conversion = 75.0 %\n", + "\n", + "Overhead benzene loss in F101 = 42.161938483603194 %\n" + ] + } + ], "source": [ "print(\"total cost = $\", value(m.fs.capital_cost) + value(m.fs.operating_cost))\n", "print(\"operating cost = $\", value(m.fs.operating_cost))\n", @@ -1390,7 +2403,16 @@ "testing" ] }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "427596.73056805483\n", + "14704.740184467111\n" + ] + } + ], "source": [ "import pytest\n", "\n", @@ -1411,7 +2433,40 @@ "cell_type": "code", "execution_count": 57, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "====================================================================================\n", + "Unit : fs.R101 Time: 0.0\n", + "------------------------------------------------------------------------------------\n", + " Unit Performance\n", + "\n", + " Variables: \n", + "\n", + " Key : Value : Units : Fixed : Bounds\n", + " Heat Duty : 0.0000 : watt : True : (None, None)\n", + " Volume : 0.14705 : meter ** 3 : False : (None, None)\n", + "\n", + "------------------------------------------------------------------------------------\n", + " Stream Table\n", + " Units Inlet Outlet \n", + " flow_mol_phase_comp ('Liq', 'benzene') mole / second 1.2993e-07 1.2993e-07\n", + " flow_mol_phase_comp ('Liq', 'toluene') mole / second 8.4147e-07 8.4147e-07\n", + " flow_mol_phase_comp ('Liq', 'methane') mole / second 1.0000e-12 1.0000e-12\n", + " flow_mol_phase_comp ('Liq', 'hydrogen') mole / second 1.0000e-12 1.0000e-12\n", + " flow_mol_phase_comp ('Vap', 'benzene') mole / second 0.11936 0.35374\n", + " flow_mol_phase_comp ('Vap', 'toluene') mole / second 0.31252 0.078129\n", + " flow_mol_phase_comp ('Vap', 'methane') mole / second 1.0377 1.2721\n", + " flow_mol_phase_comp ('Vap', 'hydrogen') mole / second 0.56260 0.32821\n", + " temperature kelvin 600.00 771.85\n", + " pressure pascal 3.5000e+05 3.5000e+05\n", + "====================================================================================\n" + ] + } + ], "source": [ "m.fs.R101.report()" ] @@ -1427,7 +2482,40 @@ "cell_type": "code", "execution_count": 58, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "====================================================================================\n", + "Unit : fs.F101 Time: 0.0\n", + "------------------------------------------------------------------------------------\n", + " Unit Performance\n", + "\n", + " Variables: \n", + "\n", + " Key : Value : Units : Fixed : Bounds\n", + " Heat Duty : -70343. : watt : False : (None, None)\n", + " Pressure Change : 0.0000 : pascal : True : (None, None)\n", + "\n", + "------------------------------------------------------------------------------------\n", + " Stream Table\n", + " Units Inlet Vapor Outlet Liquid Outlet\n", + " flow_mol_phase_comp ('Liq', 'benzene') mole / second 1.2993e-07 1.0000e-08 0.20460 \n", + " flow_mol_phase_comp ('Liq', 'toluene') mole / second 8.4147e-07 1.0000e-08 0.062520 \n", + " flow_mol_phase_comp ('Liq', 'methane') mole / second 1.0000e-12 1.0000e-08 2.6712e-07 \n", + " flow_mol_phase_comp ('Liq', 'hydrogen') mole / second 1.0000e-12 1.0000e-08 2.6712e-07 \n", + " flow_mol_phase_comp ('Vap', 'benzene') mole / second 0.35374 0.14915 1.0000e-08 \n", + " flow_mol_phase_comp ('Vap', 'toluene') mole / second 0.078129 0.015610 1.0000e-08 \n", + " flow_mol_phase_comp ('Vap', 'methane') mole / second 1.2721 1.2721 1.0000e-08 \n", + " flow_mol_phase_comp ('Vap', 'hydrogen') mole / second 0.32821 0.32821 1.0000e-08 \n", + " temperature kelvin 771.85 325.00 325.00 \n", + " pressure pascal 3.5000e+05 3.5000e+05 3.5000e+05 \n", + "====================================================================================\n" + ] + } + ], "source": [ "m.fs.F101.report()" ] @@ -1448,7 +2536,25 @@ "cell_type": "code", "execution_count": 59, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Units Reactor Light Gases\n", + "flow_mol_phase_comp ('Liq', 'benzene') mole / second 1.2993e-07 1.0000e-08 \n", + "flow_mol_phase_comp ('Liq', 'toluene') mole / second 8.4147e-07 1.0000e-08 \n", + "flow_mol_phase_comp ('Liq', 'methane') mole / second 1.0000e-12 1.0000e-08 \n", + "flow_mol_phase_comp ('Liq', 'hydrogen') mole / second 1.0000e-12 1.0000e-08 \n", + "flow_mol_phase_comp ('Vap', 'benzene') mole / second 0.35374 0.14915 \n", + "flow_mol_phase_comp ('Vap', 'toluene') mole / second 0.078129 0.015610 \n", + "flow_mol_phase_comp ('Vap', 'methane') mole / second 1.2721 1.2721 \n", + "flow_mol_phase_comp ('Vap', 'hydrogen') mole / second 0.32821 0.32821 \n", + "temperature kelvin 771.85 325.00 \n", + "pressure pascal 3.5000e+05 3.5000e+05 \n" + ] + } + ], "source": [ "from idaes.core.util.tables import (\n", " create_stream_table_dataframe,\n", @@ -1755,7 +2861,117 @@ "cell_type": "code", "execution_count": 71, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING: model contains export suffix 'scaling_factor' that contains 3\n", + "component keys that are not exported as part of the NL file. Skipping.\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 150 keys\n", + "that are not Var, Constraint, Objective, or the model. Skipping.\n", + "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", + "tol=1e-06\n", + "max_iter=200\n", + "\n", + "\n", + "******************************************************************************\n", + "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", + " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", + " For more information visit http://projects.coin-or.org/Ipopt\n", + "\n", + "This version of Ipopt was compiled from source code available at\n", + " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", + " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", + " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", + "\n", + "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", + " for large-scale scientific computation. All technical papers, sales and\n", + " publicity material resulting from use of the HSL codes within IPOPT must\n", + " contain the following acknowledgement:\n", + " HSL, a collection of Fortran codes for large-scale scientific\n", + " computation. See http://www.hsl.rl.ac.uk.\n", + "******************************************************************************\n", + "\n", + "This is Ipopt version 3.13.2, running with linear solver ma27.\n", + "\n", + "Number of nonzeros in equality constraint Jacobian...: 4073\n", + "Number of nonzeros in inequality constraint Jacobian.: 6\n", + "Number of nonzeros in Lagrangian Hessian.............: 2391\n", + "\n", + "Total number of variables............................: 1176\n", + " variables with only lower bounds: 113\n", + " variables with lower and upper bounds: 372\n", + " variables with only upper bounds: 0\n", + "Total number of equality constraints.................: 1169\n", + "Total number of inequality constraints...............: 3\n", + " inequality constraints with only lower bounds: 2\n", + " inequality constraints with lower and upper bounds: 0\n", + " inequality constraints with only upper bounds: 1\n", + "\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 0 4.4230147e+05 2.99e+05 9.90e+01 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", + " 1 4.3753585e+05 2.91e+05 1.28e+02 -1.0 3.09e+06 - 3.58e-01 2.40e-02f 1\n", + " 2 4.3545100e+05 2.78e+05 1.55e+02 -1.0 1.78e+06 - 3.31e-01 4.74e-02h 1\n", + " 3 4.2822311e+05 2.20e+05 4.50e+02 -1.0 2.99e+06 - 2.95e-02 1.35e-01h 1\n", + " 4 4.2249096e+05 1.45e+05 1.43e+03 -1.0 7.01e+06 - 5.14e-01 2.03e-01h 1\n", + " 5 4.2194364e+05 8.17e+04 1.70e+04 -1.0 6.06e+06 - 5.97e-01 4.28e-01h 1\n", + " 6 4.2602765e+05 4.55e+04 1.10e+06 -1.0 4.32e+06 - 9.26e-01 5.07e-01h 1\n", + " 7 4.3776643e+05 2.03e+04 6.44e+09 -1.0 2.42e+06 - 9.90e-01 9.47e-01h 1\n", + " 8 4.3846260e+05 1.92e+04 6.05e+09 -1.0 4.42e+05 - 5.40e-01 5.74e-02h 1\n", + " 9 4.4529853e+05 4.05e+04 4.66e+10 -1.0 2.47e+05 - 9.96e-01 9.90e-01h 1\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 10 4.4906283e+05 9.76e+03 1.10e+10 -1.0 1.12e+03 -4.0 1.26e-01 7.45e-01h 1\n", + " 11 4.5079086e+05 1.19e+03 1.54e+09 -1.0 5.63e+02 -4.5 3.77e-01 1.00e+00h 1\n", + " 12 4.5024224e+05 2.66e+00 3.67e+06 -1.0 6.61e+01 -5.0 1.00e+00 1.00e+00f 1\n", + " 13 4.4946170e+05 5.64e-01 9.29e+05 -1.0 1.81e+02 -5.4 1.00e+00 7.88e-01f 1\n", + " 14 4.4916780e+05 8.48e+00 1.62e+05 -1.0 2.83e+02 -5.9 1.00e+00 1.00e+00f 1\n", + " 15 4.4899127e+05 4.83e+00 9.07e+04 -1.0 1.01e+02 -6.4 1.00e+00 4.40e-01f 2\n", + " 16 4.4886718e+05 7.00e-01 4.61e+02 -1.0 2.35e+02 -6.9 1.00e+00 1.00e+00f 1\n", + " 17 4.4800159e+05 1.39e+02 4.52e+06 -3.8 1.17e+03 -7.3 9.79e-01 9.37e-01f 1\n", + " 18 4.4672196e+05 9.59e+02 1.22e+06 -3.8 4.55e+03 -7.8 1.00e+00 9.43e-01f 1\n", + " 19 4.4401667e+05 7.75e+03 1.55e+05 -3.8 1.08e+04 -8.3 1.00e+00 1.00e+00f 1\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 20 4.4185035e+05 1.91e+04 1.36e+04 -3.8 1.33e+04 -8.8 1.00e+00 1.00e+00h 1\n", + " 21 4.4241001e+05 3.52e+03 5.96e+03 -3.8 2.94e+03 -9.2 1.00e+00 1.00e+00h 1\n", + " 22 4.4185237e+05 7.82e+00 2.91e+02 -3.8 7.13e+03 -9.7 2.39e-01 1.00e+00h 1\n", + " 23 4.4124091e+05 1.53e+01 3.11e+02 -3.8 4.82e+04 -10.2 8.59e-01 1.36e-01f 1\n", + " 24 4.4137379e+05 1.80e+00 2.91e+02 -3.8 1.41e+04 - 1.95e-01 1.00e+00h 1\n", + " 25 4.3862833e+05 1.70e+03 9.48e+04 -3.8 1.57e+07 - 1.29e-03 9.10e-02f 1\n", + " 26 4.3883308e+05 1.49e+03 8.46e+04 -3.8 1.02e+06 - 1.00e+00 1.35e-01h 1\n", + " 27 4.3885472e+05 2.18e+01 3.40e+03 -3.8 1.38e+05 - 1.00e+00 1.00e+00h 1\n", + " 28 4.3884160e+05 5.90e-02 6.38e+01 -3.8 8.66e+03 - 1.00e+00 1.00e+00h 1\n", + " 29 4.3884157e+05 6.48e-07 4.63e-04 -3.8 2.89e+01 - 1.00e+00 1.00e+00h 1\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 30 4.3883990e+05 3.57e-01 2.38e+03 -5.7 8.19e+02 - 1.00e+00 1.00e+00f 1\n", + " 31 4.3883992e+05 3.50e-07 7.79e-06 -5.7 3.55e-01 - 1.00e+00 1.00e+00h 1\n", + " 32 4.3883990e+05 5.47e-05 3.63e-01 -8.0 1.01e+01 - 1.00e+00 1.00e+00h 1\n", + " 33 4.3883990e+05 2.24e-08 1.46e-07 -8.0 5.42e-05 - 1.00e+00 1.00e+00h 1\n", + "\n", + "Number of Iterations....: 33\n", + "\n", + " (scaled) (unscaled)\n", + "Objective...............: 4.3883989842628603e+02 4.3883989842628600e+05\n", + "Dual infeasibility......: 1.4600704448671754e-07 1.4600704448671753e-04\n", + "Constraint violation....: 2.9103830456733704e-11 2.2351741790771484e-08\n", + "Complementarity.........: 9.0909948039799681e-09 9.0909948039799686e-06\n", + "Overall NLP error.......: 9.0909948039799681e-09 1.4600704448671753e-04\n", + "\n", + "\n", + "Number of objective function evaluations = 35\n", + "Number of objective gradient evaluations = 34\n", + "Number of equality constraint evaluations = 35\n", + "Number of inequality constraint evaluations = 35\n", + "Number of equality constraint Jacobian evaluations = 34\n", + "Number of inequality constraint Jacobian evaluations = 34\n", + "Number of Lagrangian Hessian evaluations = 33\n", + "Total CPU secs in IPOPT (w/o function evaluations) = 0.164\n", + "Total CPU secs in NLP function evaluations = 0.020\n", + "\n", + "EXIT: Optimal Solution Found.\n" + ] + } + ], "source": [ "results = solver.solve(m, tee=True)" ] @@ -1789,7 +3005,26 @@ "cell_type": "code", "execution_count": 73, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "total cost = $ 438839.898426286\n", + "operating cost = $ 408883.5314830889\n", + "capital cost = $ 29956.3669431971\n", + "\n", + "Distillate flowrate = 0.1799999900263989 mol/s\n", + "Benzene purity = 98.99999900049086 %\n", + "Residue flowrate = 0.1085161642426372 mol/s\n", + "Toluene purity = 15.676178086213548 %\n", + "\n", + "Conversion = 93.38705916369427 %\n", + "\n", + "Overhead benzene loss in F101 = 17.34061793115618 %\n" + ] + } + ], "source": [ "print(\"total cost = $\", value(m.fs.capital_cost) + value(m.fs.operating_cost))\n", "print(\"operating cost = $\", value(m.fs.operating_cost))\n", @@ -1831,7 +3066,16 @@ "testing" ] }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "408883.5314830889\n", + "29956.3669431971\n" + ] + } + ], "source": [ "import pytest\n", "\n", @@ -1853,7 +3097,23 @@ "cell_type": "code", "execution_count": 75, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Optimal Values\n", + "\n", + "H101 outlet temperature = 568.923204295196 K\n", + "\n", + "R101 outlet temperature = 790.3655425698853 K\n", + "\n", + "F101 outlet temperature = 298.0 K\n", + "\n", + "H102 outlet temperature = 368.7414339952852 K\n" + ] + } + ], "source": [ "print(\"Optimal Values\")\n", "print()\n", @@ -1883,13 +3143,6 @@ "\n", "Finally, observe that the operating temperature of the flash (F101) is almost at its lower bound. This helps in minimizing the amount of benzene in the vapor stream leaving the flash." ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { @@ -1909,7 +3162,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.16" + "version": "3.10.13" } }, "nbformat": 4, diff --git a/idaes_examples/notebooks/docs/flowsheets/hda_flowsheet_with_distillation_doc.ipynb b/idaes_examples/notebooks/docs/flowsheets/hda_flowsheet_with_distillation_doc.ipynb index ff03b6e7..2983e6ec 100644 --- a/idaes_examples/notebooks/docs/flowsheets/hda_flowsheet_with_distillation_doc.ipynb +++ b/idaes_examples/notebooks/docs/flowsheets/hda_flowsheet_with_distillation_doc.ipynb @@ -1,7592 +1,2889 @@ { - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "tags": [ - "header", - "hide-cell" - ] - }, - "outputs": [], - "source": [ - "###############################################################################\n", - "# The Institute for the Design of Advanced Energy Systems Integrated Platform\n", - "# Framework (IDAES IP) was produced under the DOE Institute for the\n", - "# Design of Advanced Energy Systems (IDAES).\n", - "#\n", - "# Copyright (c) 2018-2023 by the software owners: The Regents of the\n", - "# University of California, through Lawrence Berkeley National Laboratory,\n", - "# National Technology & Engineering Solutions of Sandia, LLC, Carnegie Mellon\n", - "# University, West Virginia University Research Corporation, et al.\n", - "# All rights reserved. Please see the files COPYRIGHT.md and LICENSE.md\n", - "# for full copyright and license information.\n", - "###############################################################################" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "# HDA Flowsheet Simulation and Optimization\n", - "Maintainer: Brandon Paul \n", - "Author: Brandon Paul \n", - "Updated: 2023-06-01 \n", - "\n", - "\n", - "## Note\n", - "\n", - "This tutorial will be similar to the HDA flowsheet tutorial in the Tutorials section, except that we use a distillation column instead of a second flash (F102) to produce benzene and toluene products.\n", - "\n", - "\n", - "## Learning outcomes\n", - "\n", - "\n", - "- Construct a steady-state flowsheet using the IDAES unit model library\n", - "- Connecting unit models in a flowsheet using Arcs\n", - "- Using the SequentialDecomposition tool to initialize a flowsheet with recycle\n", - "- Fomulate and solve an optimization problem\n", - " - Defining an objective function\n", - " - Setting variable bounds\n", - " - Adding additional constraints \n", - "\n", - "\n", - "## Problem Statement\n", - "\n", - "Hydrodealkylation is a chemical reaction that often involves reacting\n", - "an aromatic hydrocarbon in the presence of hydrogen gas to form a\n", - "simpler aromatic hydrocarbon devoid of functional groups. In this\n", - "example, toluene will be reacted with hydrogen gas at high temperatures\n", - " to form benzene via the following reaction:\n", - "\n", - "**C6H5CH3 + H2 → C6H6 + CH4**\n", - "\n", - "\n", - "This reaction is often accompanied by an equilibrium side reaction\n", - "which forms diphenyl, which we will neglect for this example.\n", - "\n", - "This example is based on the 1967 AIChE Student Contest problem as\n", - "present by Douglas, J.M., Chemical Design of Chemical Processes, 1988,\n", - "McGraw-Hill.\n", - "\n", - "The flowsheet that we will be using for this module is shown below with the stream conditions. We will be processing toluene and hydrogen to produce at least 370 TPY of benzene. As shown in the flowsheet, we use a flash tank, F101, to separate out the non-condensibles, and a distillation column, D101, to further separate the benzene-toluene mixture to improve the benzene purity. The non-condensibles separated out in F101 will be partially recycled back to M101 and the rest will be purged. We will assume ideal gas behavior for this flowsheet. The properties required for this module are defined in\n", - "\n", - "- `hda_ideal_VLE.py`\n", - "- `idaes.models.properties.activity_coeff_models.BTX_activity_coeff_VLE`\n", - "- `hda_reaction.py`\n", - "\n", - "We will be using two thermodynamic packages: one (first in the list above) containing all four components (i.e., toluene, hydrogen, benzene, and methane) and the other (second in the list above) containing benzene and toluene only. The latter is needed to simplify the VLE calculations in the distillation column model. \n", - "\n", - "![](HDA_flowsheet_distillation.png)\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Translator block\n", - "\n", - "Benzene and toluene are separated by distillation, so the process involves phase equilibrium and two-phase flow conditions. However, the presence of hydrogen and methane complicates the calculations. This is because, hydrogen and methane are non-condensable under all conditions of interest; ergo, a vapor phase will always be present, and the mixture bubble point is extremely low. To simplify the phase equilibrium calculations, hydrogen and methane will be considered completely as non-condensable and insoluble in the liquid outlet from the flash F101.\n", - "\n", - "Since no hydrogen and methane will be present in the unit operations following the flash, a different component list can be used to simplify the property calculations. IDAES supports the definition of multiple property packages within a single flowsheet via `Translator` blocks. `Translator` blocks convert between different property calculations, component lists, and equations of state. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Importing required pyomo and idaes components\n", - "\n", - "\n", - "To construct a flowsheet, we will need several components from the pyomo and idaes package. Let us first import the following components from Pyomo:\n", - "- Constraint (to write constraints)\n", - "- Var (to declare variables)\n", - "- ConcreteModel (to create the concrete model object)\n", - "- Expression (to evaluate values as a function of variables defined in the model)\n", - "- Objective (to define an objective function for optimization)\n", - "- SolverFactory (to solve the problem)\n", - "- TransformationFactory (to apply certain transformations)\n", - "- Arc (to connect two unit models)\n", - "- SequentialDecomposition (to initialize the flowsheet in a sequential mode)\n", - "\n", - "For further details on these components, please refer to the pyomo documentation: https://pyomo.readthedocs.io/en/stable/\n" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "from pyomo.environ import (\n", - " Constraint,\n", - " Var,\n", - " ConcreteModel,\n", - " Expression,\n", - " Objective,\n", - " TransformationFactory,\n", - " value,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "Inline Exercise:\n", - "Import `Arc` and `SequentialDecomposition` tools from `pyomo.network`\n", - "
" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "tags": [ - "solution" - ] - }, - "outputs": [], - "source": [ - "# Todo: Import the above mentioned tools from pyomo.network\n", - "from pyomo.network import Arc, SequentialDecomposition" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "From IDAES, we will be needing the FlowsheetBlock and the following unit models:\n", - "- Mixer\n", - "- Heater\n", - "- CSTR\n", - "- Flash\n", - "- Separator (splitter) \n", - "- PressureChanger\n", - "- Translator (to switch from one property package to another)\n", - "- TrayColumn (distillation column)\n", - "- CondenserType (Type of the overhead condenser: complete or partial)\n", - "- TemperatureSpec (Temperature specification inside the condenser)" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "from idaes.core import FlowsheetBlock" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "from idaes.models.unit_models import (\n", - " PressureChanger,\n", - " Mixer,\n", - " Separator as Splitter,\n", - " Heater,\n", - " CSTR,\n", - " Flash,\n", - " Translator,\n", - ")\n", - "\n", - "from idaes.models_extra.column_models import TrayColumn\n", - "from idaes.models_extra.column_models.condenser import CondenserType, TemperatureSpec" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We will also be needing some utility tools to put together the flowsheet and calculate the degrees of freedom. " - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "# Utility tools to put together the flowsheet and calculate the degrees of freedom\n", - "from idaes.models.unit_models.pressure_changer import ThermodynamicAssumption\n", - "from idaes.core.util.model_statistics import degrees_of_freedom\n", - "from idaes.core.util.initialization import propagate_state\n", - "from idaes.core.solvers import get_solver\n", - "import idaes.core.util.scaling as iscale\n", - "\n", - "# Import idaes logger to set output levels\n", - "import idaes.logger as idaeslog" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Importing required thermo and reaction packages\n", - "\n", - "Finally, we import the thermophysical (`ideal_VLE.py` and `BTXParameterBlock`) packages and reaction package (`reaction.py`) for the HDA process. We have created custom thermophysical packages that assume ideal gas behavior with support for VLE. The reaction package consists of the stochiometric coefficients for the reaction, heat of reaction, and kinetic information (Arrhenius constant and activation energy). " - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "from idaes_examples.mod.hda import hda_reaction as reaction_props\n", - "from idaes.models.properties.activity_coeff_models.BTX_activity_coeff_VLE import (\n", - " BTXParameterBlock,\n", - ")\n", - "\n", - "from idaes_examples.mod.hda.hda_ideal_VLE import HDAParameterBlock" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Constructing the Flowsheet\n", - "\n", - "We have now imported all the components, unit models, and property modules we need to construct a flowsheet. Let us create a ConcreteModel and add the flowsheet block to it. " - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "# Create a Pyomo Concrete Model to contain the problem\n", - "m = ConcreteModel()\n", - "\n", - "# Add a steady state flowsheet block to the model\n", - "m.fs = FlowsheetBlock(dynamic=False)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We will now add the thermophysical and reaction packages to the flowsheet." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "# Property package for benzene, toluene, hydrogen, methane mixture\n", - "m.fs.BTHM_params = HDAParameterBlock()\n", - "\n", - "# Property package for the benzene-toluene mixture\n", - "m.fs.BT_params = BTXParameterBlock(\n", - " valid_phase=(\"Liq\", \"Vap\"), activity_coeff_model=\"Ideal\"\n", - ")\n", - "\n", - "# Reaction package for the HDA reaction\n", - "m.fs.reaction_params = reaction_props.HDAReactionParameterBlock(\n", - " property_package=m.fs.BTHM_params\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Adding Unit Models\n", - "\n", - "Let us start adding the unit models we have imported to the flowsheet. Here, we are adding the Mixer (assigned a name M101) and a Heater (assigned a name H101). Note that, all unit models need to be given a property package argument. In addition, the Mixer unit model needs a `list` consisting of the inlets (toluene feed, hydrogen feed and vapor recycle streams in this case). " - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "# Adding the mixer M101 to the flowsheet\n", - "m.fs.M101 = Mixer(\n", - " property_package=m.fs.BTHM_params,\n", - " inlet_list=[\"toluene_feed\", \"hydrogen_feed\", \"vapor_recycle\"],\n", - ")\n", - "\n", - "# Adding the heater H101 to the flowsheet\n", - "m.fs.H101 = Heater(property_package=m.fs.BTHM_params, has_phase_equilibrium=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "Inline Exercise:\n", - "Let us now add the CSTR (assign the name R101) and pass the following arguments:\n", - "
    \n", - "
  • \"property_package\": m.fs.BTHM_params
  • \n", - "
  • \"reaction_package\": m.fs.reaction_params
  • \n", - "
  • \"has_heat_of_reaction\": True
  • \n", - "
  • \"has_heat_transfer\": True
  • \n", - "
\n", - "
" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": { - "tags": [ - "solution" - ] - }, - "outputs": [], - "source": [ - "# Todo: Add reactor with the specifications above\n", - "m.fs.R101 = CSTR(\n", - " property_package=m.fs.BTHM_params,\n", - " reaction_package=m.fs.reaction_params,\n", - " has_heat_of_reaction=True,\n", - " has_heat_transfer=True,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us now add the Flash (assign the name F101), Splitter (assign the name S101) and PressureChanger (assign the name C101)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "# Adding the flash tank F101 to the flowsheet\n", - "m.fs.F101 = Flash(\n", - " property_package=m.fs.BTHM_params, has_heat_transfer=True, has_pressure_change=True\n", - ")\n", - "\n", - "# Adding the splitter S101 to the flowsheet\n", - "m.fs.S101 = Splitter(\n", - " property_package=m.fs.BTHM_params, outlet_list=[\"purge\", \"recycle\"]\n", - ")\n", - "\n", - "# Adding the compressor C101 to the flowsheet\n", - "m.fs.C101 = PressureChanger(\n", - " property_package=m.fs.BTHM_params,\n", - " compressor=True,\n", - " thermodynamic_assumption=ThermodynamicAssumption.isothermal,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Remark\n", - "\n", - "Currently, the `SequentialDecomposition()` tool, which we will later be using to initialize the flowsheet, does not support the distillation column model. Thus, we will first simulate the flowsheet without the distillation column. After it converges, we will then add the distillation column, initialize it, and simulate the entire flowsheet." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "As mentioned above, we use the `m.fs.BTHM_params` package, which contains all the four species, for the reactor loop, and the simpler `m.fs.BT_params` for unit operations following the flash (i.e., heater H102 and the distillation column D101). We define a `Translator` block to link the source property package and the package it is to be translated to in the following manner:" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "# Add translator block to convert between property packages\n", - "m.fs.translator = Translator(\n", - " inlet_property_package=m.fs.BTHM_params, outlet_property_package=m.fs.BT_params\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Translator block constraints\n", - "\n", - "The `Translator` block needs to know how to translate between the two property packages. This must be custom coded for each application because of the generality of the IDAES framework.\n", - "\n", - "For this process, five constraints are required based on the state variables used in the outgoing process.\n", - "\n", - "- Since we assumed that only benzene and toluene are present in the liquid phase, the total molar flowrate must be the sum of molar flowrates of benzene and toluene, respectively.\n", - "- Temperature of the inlet and outlet streams must be the same.\n", - "- Pressure of the inlet and outgoing streams must be the same\n", - "- The mole fraction of benzene in the outgoing stream is the ratio of the molar flowrate of liquid benzene in the inlet to the sum of molar flowrates of liquid benzene and toluene in the inlet.\n", - "- The mole fraction of toluene in the outgoing stream is the ratio of the molar flowrate of liquid toluene in the inlet to the sum of molar flowrates of liquid benzene and toluene in the inlet." - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [], - "source": [ - "# Add constraint: Total flow = benzene flow + toluene flow (molar)\n", - "m.fs.translator.eq_total_flow = Constraint(\n", - " expr=m.fs.translator.outlet.flow_mol[0]\n", - " == m.fs.translator.inlet.flow_mol_phase_comp[0, \"Liq\", \"benzene\"]\n", - " + m.fs.translator.inlet.flow_mol_phase_comp[0, \"Liq\", \"toluene\"]\n", - ")\n", - "\n", - "# Add constraint: Outlet temperature = Inlet temperature\n", - "m.fs.translator.eq_temperature = Constraint(\n", - " expr=m.fs.translator.outlet.temperature[0] == m.fs.translator.inlet.temperature[0]\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In the above, note that the variable flow_mol_phase_comp has the index - [time, phase, component]. As this is a steady-state flowsheet, the time index by default is 0. The valid phases are [\"Liq\", \"Vap\"]. Similarly the valid component list is [\"benzene\", \"toluene\", \"hydrogen\", \"methane\"]." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "Inline Exercise:\n", - "Add the constraint to ensure that the outlet pressure is the same as the inlet pressure\n", - "
" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": { - "tags": [ - "solution" - ] - }, - "outputs": [], - "source": [ - "# Todo: Add constraint: Outlet pressure = Inlet pressure\n", - "m.fs.translator.eq_pressure = Constraint(\n", - " expr=m.fs.translator.outlet.pressure[0] == m.fs.translator.inlet.pressure[0]\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [], - "source": [ - "# Remaining constraints on the translator block\n", - "\n", - "# Add constraint: Benzene mole fraction definition\n", - "m.fs.translator.eq_mole_frac_benzene = Constraint(\n", - " expr=m.fs.translator.outlet.mole_frac_comp[0, \"benzene\"]\n", - " == m.fs.translator.inlet.flow_mol_phase_comp[0, \"Liq\", \"benzene\"]\n", - " / (\n", - " m.fs.translator.inlet.flow_mol_phase_comp[0, \"Liq\", \"benzene\"]\n", - " + m.fs.translator.inlet.flow_mol_phase_comp[0, \"Liq\", \"toluene\"]\n", - " )\n", - ")\n", - "\n", - "# Add constraint: Toluene mole fraction definition\n", - "m.fs.translator.eq_mole_frac_toluene = Constraint(\n", - " expr=m.fs.translator.outlet.mole_frac_comp[0, \"toluene\"]\n", - " == m.fs.translator.inlet.flow_mol_phase_comp[0, \"Liq\", \"toluene\"]\n", - " / (\n", - " m.fs.translator.inlet.flow_mol_phase_comp[0, \"Liq\", \"benzene\"]\n", - " + m.fs.translator.inlet.flow_mol_phase_comp[0, \"Liq\", \"toluene\"]\n", - " )\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "Inline Exercise:\n", - "Finally, let us add the Heater H102 in the same way as H101 but pass the m.fs.BT_params thermodynamic package. We will add the distillation column after converging the flowsheet.\n", - "
" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": { - "tags": [ - "solution" - ] - }, - "outputs": [], - "source": [ - "# Todo: Add the Heater H102 to the flowsheet\n", - "m.fs.H102 = Heater(\n", - " property_package=m.fs.BT_params,\n", - " has_pressure_change=True,\n", - " has_phase_equilibrium=True,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Connecting Unit Models using Arcs\n", - "\n", - "We have now added the initial set of unit models to the flowsheet. However, we have not yet specified how the units are connected. To do this, we will be using the `Arc` which is a pyomo component that takes in two arguments: `source` and `destination`. Let us connect the outlet of the mixer (M101) to the inlet of the heater (H101). " - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.s03 = Arc(source=m.fs.M101.outlet, destination=m.fs.H101.inlet)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "![](HDA_flowsheet_distillation.png) \n", - "\n", - "
\n", - "Inline Exercise:\n", - "Now, connect the H101 outlet to the R101 inlet using the cell above as a guide. \n", - "
\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": { - "tags": [ - "solution" - ] - }, - "outputs": [], - "source": [ - "# Todo: Connect the H101 outlet to R101 inlet\n", - "m.fs.s04 = Arc(source=m.fs.H101.outlet, destination=m.fs.R101.inlet)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We will now be connecting the rest of the units as shown below. Notice how the outlet names are different for the flash tank as it has a vapor and a liquid outlet. " - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.s05 = Arc(source=m.fs.R101.outlet, destination=m.fs.F101.inlet)\n", - "m.fs.s06 = Arc(source=m.fs.F101.vap_outlet, destination=m.fs.S101.inlet)\n", - "m.fs.s08 = Arc(source=m.fs.S101.recycle, destination=m.fs.C101.inlet)\n", - "m.fs.s09 = Arc(source=m.fs.C101.outlet, destination=m.fs.M101.vapor_recycle)\n", - "m.fs.s10a = Arc(source=m.fs.F101.liq_outlet, destination=m.fs.translator.inlet)\n", - "m.fs.s10b = Arc(source=m.fs.translator.outlet, destination=m.fs.H102.inlet)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We have now connected the unit model block using the arcs. However, each of these arcs link to ports on the two unit models that are connected. In this case, the ports consist of the state variables that need to be linked between the unit models. Pyomo provides a convenient method to write these equality constraints for us between two ports and this is done as follows:" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [], - "source": [ - "TransformationFactory(\"network.expand_arcs\").apply_to(m)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Appending additional constraints to the model\n", - "\n", - "Now, we will see how we can add additional constraints to the model using `Constraint` from Pyomo.\n", - "\n", - "Consider the reactor R101. By default, the conversion of a component is not calculated when we simulate the flowsheet. If we are interested either in specifying or constraining the conversion value, we can add the following constraint to calculate the conversion:\n", - "$$ \\text{Conversion of toluene} = \\frac{\\text{molar flow of toluene in the inlet} - \\text{molar flow of toluene in the outlet}}{\\text{molar flow of toluene in the inlet}} $$ \n", - "\n", - "We add the constraint to the model as shown below." - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [], - "source": [ - "# Define the conversion variables using 'Var'\n", - "m.fs.R101.conversion = Var(initialize=0.75, bounds=(0, 1))\n", - "\n", - "# Append the constraint to the model\n", - "m.fs.R101.conv_constraint = Constraint(\n", - " expr=m.fs.R101.conversion * m.fs.R101.inlet.flow_mol_phase_comp[0, \"Vap\", \"toluene\"]\n", - " == (\n", - " m.fs.R101.inlet.flow_mol_phase_comp[0, \"Vap\", \"toluene\"]\n", - " - m.fs.R101.outlet.flow_mol_phase_comp[0, \"Vap\", \"toluene\"]\n", - " )\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Fixing feed conditions and Initializing the flowsheet\n", - "\n", - "Let us first check how many degrees of freedom exist for this flowsheet using the `degrees_of_freedom` tool we imported earlier. " - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "29\n" - ] - } - ], - "source": [ - "print(degrees_of_freedom(m))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We will now be fixing the toluene feed stream to the conditions shown in the flowsheet above. Please note that though this is a pure toluene feed, the remaining components are still assigned a very small non-zero value to help with convergence and initializing. " - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.M101.toluene_feed.flow_mol_phase_comp[0, \"Vap\", \"benzene\"].fix(1e-5)\n", - "m.fs.M101.toluene_feed.flow_mol_phase_comp[0, \"Vap\", \"toluene\"].fix(1e-5)\n", - "m.fs.M101.toluene_feed.flow_mol_phase_comp[0, \"Vap\", \"hydrogen\"].fix(1e-5)\n", - "m.fs.M101.toluene_feed.flow_mol_phase_comp[0, \"Vap\", \"methane\"].fix(1e-5)\n", - "m.fs.M101.toluene_feed.flow_mol_phase_comp[0, \"Liq\", \"benzene\"].fix(1e-5)\n", - "m.fs.M101.toluene_feed.flow_mol_phase_comp[0, \"Liq\", \"toluene\"].fix(0.30)\n", - "m.fs.M101.toluene_feed.flow_mol_phase_comp[0, \"Liq\", \"hydrogen\"].fix(1e-5)\n", - "m.fs.M101.toluene_feed.flow_mol_phase_comp[0, \"Liq\", \"methane\"].fix(1e-5)\n", - "m.fs.M101.toluene_feed.temperature.fix(303.2)\n", - "m.fs.M101.toluene_feed.pressure.fix(350000)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Similarly, let us fix the hydrogen feed to the following conditions in the next cell:\n", - "
    \n", - "
  • FH2 = 0.30 mol/s
  • \n", - "
  • FCH4 = 0.02 mol/s
  • \n", - "
  • Remaining components = 1e-5 mol/s
  • \n", - "
  • T = 303.2 K
  • \n", - "
  • P = 350000 Pa
  • \n", - "
" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.M101.hydrogen_feed.flow_mol_phase_comp[0, \"Vap\", \"benzene\"].fix(1e-5)\n", - "m.fs.M101.hydrogen_feed.flow_mol_phase_comp[0, \"Vap\", \"toluene\"].fix(1e-5)\n", - "m.fs.M101.hydrogen_feed.flow_mol_phase_comp[0, \"Vap\", \"hydrogen\"].fix(0.30)\n", - "m.fs.M101.hydrogen_feed.flow_mol_phase_comp[0, \"Vap\", \"methane\"].fix(0.02)\n", - "m.fs.M101.hydrogen_feed.flow_mol_phase_comp[0, \"Liq\", \"benzene\"].fix(1e-5)\n", - "m.fs.M101.hydrogen_feed.flow_mol_phase_comp[0, \"Liq\", \"toluene\"].fix(1e-5)\n", - "m.fs.M101.hydrogen_feed.flow_mol_phase_comp[0, \"Liq\", \"hydrogen\"].fix(1e-5)\n", - "m.fs.M101.hydrogen_feed.flow_mol_phase_comp[0, \"Liq\", \"methane\"].fix(1e-5)\n", - "m.fs.M101.hydrogen_feed.temperature.fix(303.2)\n", - "m.fs.M101.hydrogen_feed.pressure.fix(350000)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Fixing unit model specifications\n", - "\n", - "Now that we have fixed our inlet feed conditions, we will now be fixing the operating conditions for the unit models in the flowsheet. Let us set the H101 outlet temperature to 600 K. " - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [], - "source": [ - "# Fix the temperature of the outlet from the heater H101\n", - "m.fs.H101.outlet.temperature.fix(600)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "Inline Exercise:\n", - "Set the conditions for the reactor R101 to the following conditions:\n", - "
    \n", - "
  • `conversion` = 0.75
  • \n", - "
  • `heat_duty` = 0
  • \n", - "
\n", - "\n", - "Use Shift+Enter to run the cell once you have typed in your code. \n", - "
" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": { - "tags": [ - "solution" - ] - }, - "outputs": [], - "source": [ - "# Todo: Fix the 'conversion' of the reactor R101\n", - "m.fs.R101.conversion.fix(0.75)\n", - "\n", - "# Todo: Fix the 'heat_duty' of the reactor R101\n", - "m.fs.R101.heat_duty.fix(0)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The Flash conditions for F101 can be set as follows. " - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "metadata": {}, - "outputs": [], - "source": [ - "# Fix the temperature of the vapor outlet from F101\n", - "m.fs.F101.vap_outlet.temperature.fix(325.0)\n", - "\n", - "# Fix the pressure drop in the flash F101\n", - "m.fs.F101.deltaP.fix(0)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us fix the split fraction of the purge stream from the splitter S101 and the outlet pressure from the compressor C101" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "metadata": {}, - "outputs": [], - "source": [ - "# Fix the split fraction of the 'purge' stream from S101\n", - "m.fs.S101.split_fraction[0, \"purge\"].fix(0.2)\n", - "\n", - "# Fix the pressure of the outlet from the compressor C101\n", - "m.fs.C101.outlet.pressure.fix(350000)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Finally, let us fix the temperature of the outlet from H102 and the pressure drop in H102 as the following" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": {}, - "outputs": [], - "source": [ - "# Fix the temperature of the outlet from the heater H102\n", - "m.fs.H102.outlet.temperature.fix(375)\n", - "\n", - "# Fix the pressure drop in the heater H102\n", - "m.fs.H102.deltaP.fix(-200000)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "To avoid convergence issues associated with poorly scaled variables and/or constraints, we scale the variables and constraints corresponding to the heaters H101 and H102, flash F101 and the reactor R101. Scaling factors for the flow rates, temperature, pressure, etc. have been defined in the property package: `ideal_VLE.py` file. Here, we set scaling factors only for the heat duty of the heater, the reaction extent, heat duty and volume of the reactor." - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:18 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].flow_mol_phase\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:18 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enth_mol_phase_comp[Liq,benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:18 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enth_mol_phase_comp[Liq,toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:18 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enth_mol_phase_comp[Vap,benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:18 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enth_mol_phase_comp[Vap,toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:18 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_comp[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:18 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_comp[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:18 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_phase_equilibrium[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:18 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_phase_equilibrium[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:18 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_P_vap[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:18 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_P_vap[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:18 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].flow_mol_phase\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:18 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].enth_mol_phase_comp[Liq,benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:18 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].enth_mol_phase_comp[Liq,toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:18 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].enth_mol_phase_comp[Vap,benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:18 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].enth_mol_phase_comp[Vap,toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:18 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_comp[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:18 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_comp[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:18 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_phase_equilibrium[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:18 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_phase_equilibrium[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:18 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_P_vap[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:18 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_P_vap[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:18 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].material_flow_terms[Liq,benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:18 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].material_flow_terms[Vap,benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:18 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].material_flow_terms[Liq,toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:18 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].material_flow_terms[Vap,toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:18 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enthalpy_flow_terms[Liq], enthalpy_flow_terms\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:18 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enthalpy_flow_terms[Vap], enthalpy_flow_terms\n" - ] - } - ], - "source": [ - "# Set scaling factors for heat duty, reaction extent and volume\n", - "iscale.set_scaling_factor(m.fs.H101.control_volume.heat, 1e-2)\n", - "iscale.set_scaling_factor(m.fs.R101.control_volume.heat, 1e-2)\n", - "iscale.set_scaling_factor(m.fs.R101.control_volume.rate_reaction_extent, 1)\n", - "iscale.set_scaling_factor(m.fs.R101.control_volume.volume, 1)\n", - "iscale.set_scaling_factor(m.fs.F101.control_volume.heat, 1e-2)\n", - "iscale.set_scaling_factor(m.fs.H102.control_volume.heat, 1e-2)\n", - "\n", - "# Set the scaling factors for the remaining variables and all constraints\n", - "iscale.calculate_scaling_factors(m.fs.H101)\n", - "iscale.calculate_scaling_factors(m.fs.R101)\n", - "iscale.calculate_scaling_factors(m.fs.F101)\n", - "iscale.calculate_scaling_factors(m.fs.H102)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "Inline Exercise:\n", - "We have now defined all the feed conditions and the inputs required for the unit models. The system should now have 0 degrees of freedom i.e. should be a square problem. Please check that the degrees of freedom is 0. \n", - "\n", - "Use Shift+Enter to run the cell once you have typed in your code. \n", - "
" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "metadata": { - "tags": [ - "solution" - ] - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0\n" - ] - } - ], - "source": [ - "# Todo: Check the degrees of freedom\n", - "print(degrees_of_freedom(m))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Initialization\n", - "\n", - "This subsection will demonstrate how to use the built-in sequential decomposition tool to initialize our flowsheet.\n", - "\n", - "Let us first create an object for the `SequentialDecomposition` and specify our options for this. " - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "metadata": {}, - "outputs": [], - "source": [ - "seq = SequentialDecomposition()\n", - "seq.options.select_tear_method = \"heuristic\"\n", - "seq.options.tear_method = \"Wegstein\"\n", - "seq.options.iterLim = 3\n", - "\n", - "# Using the SD tool\n", - "G = seq.create_graph(m)\n", - "heuristic_tear_set = seq.tear_set_arcs(G, method=\"heuristic\")\n", - "order = seq.calculation_order(G)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Which is the tear stream? Display tear set and order" - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "fs.s03\n" - ] - } - ], - "source": [ - "for o in heuristic_tear_set:\n", - " print(o.name)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "What sequence did the SD tool determine to solve this flowsheet with the least number of tears? " - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "fs.H101\n", - "fs.R101\n", - "fs.F101\n", - "fs.S101\n", - "fs.C101\n", - "fs.M101\n" - ] - } - ], - "source": [ - "for o in order:\n", - " print(o[0].name)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The SequentialDecomposition tool has determined that the tear stream is the mixer outlet (s03 in the Figure above). We will need to provide a reasonable guess for this.\n", - "\n", - "For the initial guess, we assume that the flowrate of the recycle stream (s09) is zero. Consequently, the flow rate of the stream s03 is simply the sum of the flowrates of the toluene feed and hydrogen feed streams. Further, since the temperature and the pressure of both the toluene and hydrogen feed streams are the same, we specify their values as the initial guess for the temperature and pressure of the stream s03." - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "metadata": {}, - "outputs": [], - "source": [ - "tear_guesses = {\n", - " \"flow_mol_phase_comp\": {\n", - " (0, \"Vap\", \"benzene\"): 1e-5,\n", - " (0, \"Vap\", \"toluene\"): 1e-5,\n", - " (0, \"Vap\", \"hydrogen\"): 0.30,\n", - " (0, \"Vap\", \"methane\"): 0.02,\n", - " (0, \"Liq\", \"benzene\"): 1e-5,\n", - " (0, \"Liq\", \"toluene\"): 0.30,\n", - " (0, \"Liq\", \"hydrogen\"): 1e-5,\n", - " (0, \"Liq\", \"methane\"): 1e-5,\n", - " },\n", - " \"temperature\": {0: 303},\n", - " \"pressure\": {0: 350000},\n", - "}\n", - "\n", - "# Pass the tear_guess to the SD tool\n", - "seq.set_guesses_for(m.fs.H101.inlet, tear_guesses)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Next, we need to tell the tool how to initialize a particular unit. We will be writing a python function which takes in a \"unit\" and calls the initialize method on that unit." - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "metadata": {}, - "outputs": [], - "source": [ - "def function(unit):\n", - " unit.initialize(outlvl=idaeslog.INFO)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We are now ready to initialize our flowsheet in a sequential mode. Note that we specifically set the iteration limit to be 3 as we are trying to use this tool only to get a good set of initial values such that IPOPT can then take over and solve this flowsheet for us. " - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "metadata": { - "scrolled": false - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:19 [INFO] idaes.init.fs.H101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:19 [INFO] idaes.init.fs.H101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:19 [INFO] idaes.init.fs.R101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:19 [INFO] idaes.init.fs.R101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:19 [INFO] idaes.init.fs.F101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:19 [INFO] idaes.init.fs.F101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:19 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:19 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:19 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:19 [INFO] idaes.init.fs.translator.properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:19 [INFO] idaes.init.fs.translator.properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:19 [INFO] idaes.init.fs.translator.properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:19 [INFO] idaes.init.fs.translator.properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:20 [INFO] idaes.init.fs.translator.properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:20 [INFO] idaes.init.fs.translator.properties_out: State Released.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:20 [INFO] idaes.init.fs.translator.properties_out: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:20 [INFO] idaes.init.fs.translator: Initialization Complete optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:20 [INFO] idaes.init.fs.C101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:20 [INFO] idaes.init.fs.C101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:20 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:20 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:20 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:20 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:20 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:20 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:20 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:20 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:20 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:20 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:20 [INFO] idaes.init.fs.H102.control_volume.properties_out: State Released.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:20 [INFO] idaes.init.fs.H102.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:20 [INFO] idaes.init.fs.H102.control_volume.properties_in: State Released.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:20 [INFO] idaes.init.fs.H102: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:21 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:21 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:21 [INFO] idaes.init.fs.H101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:21 [INFO] idaes.init.fs.H101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:21 [INFO] idaes.init.fs.R101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:21 [INFO] idaes.init.fs.R101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:21 [INFO] idaes.init.fs.F101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:21 [INFO] idaes.init.fs.F101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:21 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:21 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:21 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:21 [INFO] idaes.init.fs.C101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:21 [INFO] idaes.init.fs.C101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:21 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:21 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:22 [INFO] idaes.init.fs.H101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:22 [INFO] idaes.init.fs.H101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:22 [INFO] idaes.init.fs.R101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:22 [INFO] idaes.init.fs.R101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:22 [INFO] idaes.init.fs.F101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:22 [INFO] idaes.init.fs.F101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:22 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:22 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:22 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:22 [INFO] idaes.init.fs.C101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:22 [INFO] idaes.init.fs.C101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:22 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:22 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:22 [INFO] idaes.init.fs.H101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:23 [INFO] idaes.init.fs.H101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:23 [INFO] idaes.init.fs.R101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:23 [INFO] idaes.init.fs.R101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:23 [INFO] idaes.init.fs.F101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:23 [INFO] idaes.init.fs.F101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:23 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:23 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:23 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:23 [INFO] idaes.init.fs.C101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:23 [INFO] idaes.init.fs.C101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:23 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:23 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:23 [INFO] idaes.init.fs.H101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:23 [INFO] idaes.init.fs.H101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:23 [INFO] idaes.init.fs.R101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:24 [INFO] idaes.init.fs.R101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:24 [INFO] idaes.init.fs.F101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:24 [INFO] idaes.init.fs.F101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:24 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:24 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:24 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:24 [INFO] idaes.init.fs.C101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:24 [INFO] idaes.init.fs.C101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:24 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:24 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING: Wegstein failed to converge in 3 iterations\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:24 [INFO] idaes.init.fs.translator.properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:24 [INFO] idaes.init.fs.translator.properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:24 [INFO] idaes.init.fs.translator.properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:24 [INFO] idaes.init.fs.translator.properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:24 [INFO] idaes.init.fs.translator.properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:24 [INFO] idaes.init.fs.translator.properties_out: State Released.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:24 [INFO] idaes.init.fs.translator.properties_out: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:24 [INFO] idaes.init.fs.translator: Initialization Complete optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:24 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [INFO] idaes.init.fs.H102.control_volume.properties_out: State Released.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [INFO] idaes.init.fs.H102.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [INFO] idaes.init.fs.H102.control_volume.properties_in: State Released.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [INFO] idaes.init.fs.H102: Initialization Complete: optimal - Optimal Solution Found\n" - ] - } - ], - "source": [ - "seq.run(m, function)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "Inline Exercise:\n", - "We have now initialized the flowsheet. Let us run the flowsheet in a simulation mode to look at the results. \n", - "
" - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING: model contains export suffix\n", - "'fs.H102.control_volume.properties_out[0.0].scaling_factor' that contains 1\n", - "component keys that are not exported as part of the NL file. Skipping.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING: model contains export suffix 'fs.H102.control_volume.scaling_factor'\n", - "that contains 1 component keys that are not exported as part of the NL file.\n", - "Skipping.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING: model contains export suffix\n", - "'fs.F101.control_volume.properties_out[0.0].scaling_factor' that contains 26\n", - "component keys that are not exported as part of the NL file. Skipping.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING: model contains export suffix\n", - "'fs.F101.control_volume.properties_in[0.0].scaling_factor' that contains 25\n", - "component keys that are not exported as part of the NL file. Skipping.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING: model contains export suffix 'fs.F101.control_volume.scaling_factor'\n", - "that contains 1 component keys that are not exported as part of the NL file.\n", - "Skipping.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING: model contains export suffix\n", - "'fs.R101.control_volume.properties_out[0.0].scaling_factor' that contains 25\n", - "component keys that are not exported as part of the NL file. Skipping.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING: model contains export suffix\n", - "'fs.R101.control_volume.properties_in[0.0].scaling_factor' that contains 25\n", - "component keys that are not exported as part of the NL file. Skipping.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING: model contains export suffix 'fs.R101.control_volume.scaling_factor'\n", - "that contains 2 component keys that are not exported as part of the NL file.\n", - "Skipping.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING: model contains export suffix\n", - "'fs.H101.control_volume.properties_out[0.0].scaling_factor' that contains 26\n", - "component keys that are not exported as part of the NL file. Skipping.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING: model contains export suffix\n", - "'fs.H101.control_volume.properties_in[0.0].scaling_factor' that contains 25\n", - "component keys that are not exported as part of the NL file. Skipping.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", - "tol=1e-06\n", - "max_iter=200\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 1097\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 877\n", - "\n", - "Total number of variables............................: 363\n", - " variables with only lower bounds: 8\n", - " variables with lower and upper bounds: 155\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 363\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 3.82e+04 1.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 8.69e+03 1.44e+03 -1.0 2.00e+04 - 9.71e-01 4.67e-01H 1\n", - " 2 0.0000000e+00 1.29e+03 1.56e+03 -1.0 1.60e+04 - 9.79e-01 4.90e-01h 1\n", - " 3 0.0000000e+00 1.18e+03 1.55e+05 -1.0 1.40e+04 - 9.90e-01 4.99e-01h 1\n", - " 4 0.0000000e+00 5.46e+02 2.32e+09 -1.0 8.43e+03 - 1.00e+00 9.82e-01h 1\n", - " 5 0.0000000e+00 5.46e+03 3.66e+10 -1.0 5.97e+02 - 1.00e+00 9.90e-01h 1\n", - " 6 0.0000000e+00 1.21e+03 8.01e+09 -1.0 5.75e+00 - 1.00e+00 1.00e+00h 1\n", - " 7 0.0000000e+00 6.42e+00 3.87e+07 -1.0 1.53e-03 - 1.00e+00 1.00e+00f 1\n", - " 8 0.0000000e+00 1.96e-04 9.36e+02 -1.0 7.28e-06 - 1.00e+00 1.00e+00h 1\n", - " 9 0.0000000e+00 2.24e-08 5.91e-02 -3.8 1.38e-07 - 1.00e+00 1.00e+00h 1\n", - "Cannot recompute multipliers for feasibility problem. Error in eq_mult_calculator\n", - "\n", - "Number of Iterations....: 9\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 1.5042546731871284e+04 1.5042546731871284e+04\n", - "Constraint violation....: 2.9103830456733704e-11 2.2351741790771484e-08\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 2.9103830456733704e-11 1.5042546731871284e+04\n", - "\n", - "\n", - "Number of objective function evaluations = 11\n", - "Number of objective gradient evaluations = 10\n", - "Number of equality constraint evaluations = 11\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 10\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 9\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.010\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n" - ] - } - ], - "source": [ - "# Create the solver object\n", - "solver = get_solver()\n", - "\n", - "# Solve the model\n", - "results = solver.solve(m, tee=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Add distillation column \n", - "\n", - "As mentioned earlier, the `SequentialDecomposition` tool currently does not support the distillation column model. Thus, we have not included the distillation column in the flowsheet. Now that we have a converged flowsheet, we will add the distillation column and simulate the entire flowsheet. \n", - "\n", - "In the following, we will\n", - "- Add the distillation column \n", - "- Connect it to the heater \n", - "- Add the necessary equality constraints\n", - "- Propagate the state variable information from the outlet of the heater to the inlet of the distillation column \n", - "- Fix the degrees of freedom of the distillation block (reflux ratio, boilup ratio, and condenser pressure)\n", - "- Scale the control volume heat variables to help convergence\n", - "- Initialize the distillation block.\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 40, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].flow_mol_phase\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_comp[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_comp[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_P_vap[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_P_vap[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].flow_mol_phase\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_comp[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_comp[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_P_vap[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_P_vap[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].flow_mol_phase\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_comp[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_comp[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_phase_equilibrium[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_phase_equilibrium[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_P_vap[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_P_vap[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].flow_mol_phase\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_comp[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_comp[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_P_vap[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_P_vap[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].flow_mol_phase\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_comp[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_comp[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_P_vap[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_P_vap[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].flow_mol_phase\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_comp[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_comp[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_phase_equilibrium[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_phase_equilibrium[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_P_vap[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_P_vap[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].flow_mol_phase\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_comp[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_comp[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_P_vap[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_P_vap[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].flow_mol_phase\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_comp[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_comp[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_P_vap[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_P_vap[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].flow_mol_phase\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_comp[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_comp[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:25 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_phase_equilibrium[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_phase_equilibrium[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_P_vap[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_P_vap[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].flow_mol_phase\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_comp[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_comp[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_P_vap[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_P_vap[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].flow_mol_phase\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_comp[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_comp[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_P_vap[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_P_vap[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].flow_mol_phase\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_comp[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_comp[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_phase_equilibrium[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_phase_equilibrium[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_P_vap[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_P_vap[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].flow_mol_phase\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_comp[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_comp[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_phase_equilibrium[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_phase_equilibrium[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_P_vap[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_P_vap[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].flow_mol_phase\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_comp[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_comp[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_P_vap[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_P_vap[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].flow_mol_phase\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_comp[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_comp[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_P_vap[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_P_vap[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].flow_mol_phase\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_comp[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_comp[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_phase_equilibrium[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_phase_equilibrium[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_P_vap[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_P_vap[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].flow_mol_phase\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_comp[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_comp[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_P_vap[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_P_vap[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].flow_mol_phase\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_comp[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_comp[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_P_vap[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_P_vap[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].flow_mol_phase\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_comp[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_comp[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_phase_equilibrium[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_phase_equilibrium[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_P_vap[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_P_vap[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].flow_mol_phase\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_comp[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_comp[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_P_vap[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_P_vap[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].flow_mol_phase\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_comp[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_comp[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_P_vap[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_P_vap[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].flow_mol_phase\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_comp[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_comp[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_phase_equilibrium[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_phase_equilibrium[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_P_vap[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_P_vap[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].flow_mol_phase\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_comp[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_comp[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_P_vap[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_P_vap[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].flow_mol_phase\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_comp[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_comp[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_P_vap[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_P_vap[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].flow_mol_phase\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_comp[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_comp[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_phase_equilibrium[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_phase_equilibrium[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_P_vap[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_P_vap[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].flow_mol_phase\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_comp[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_comp[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_P_vap[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_P_vap[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].flow_mol_phase\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_comp[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_comp[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_P_vap[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_P_vap[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].flow_mol_phase\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_comp[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_comp[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_phase_equilibrium[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_phase_equilibrium[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_P_vap[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_P_vap[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].flow_mol_phase\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_comp[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_comp[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_P_vap[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_P_vap[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].flow_mol_phase\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_comp[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_comp[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_P_vap[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_P_vap[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].flow_mol_phase\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_comp[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_comp[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_phase_equilibrium[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_phase_equilibrium[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_P_vap[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_P_vap[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].flow_mol_phase\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_comp[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_comp[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_phase_equilibrium[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_phase_equilibrium[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_P_vap[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_P_vap[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].flow_mol_phase\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_comp[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_comp[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_phase_equilibrium[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_phase_equilibrium[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_P_vap[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_P_vap[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].material_flow_terms[Liq,benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].material_flow_terms[Vap,benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].material_flow_terms[Liq,toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].material_flow_terms[Vap,toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].enthalpy_flow_terms[Liq], enthalpy_flow_terms\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].enthalpy_flow_terms[Vap], enthalpy_flow_terms\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].flow_mol_phase\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_comp[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_comp[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_phase_equilibrium[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_phase_equilibrium[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_P_vap[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_P_vap[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].flow_mol_phase\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_comp[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_comp[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_phase_equilibrium[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_phase_equilibrium[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_P_vap[benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_P_vap[toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].material_flow_terms[Liq,benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].material_flow_terms[Vap,benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].material_flow_terms[Liq,toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].material_flow_terms[Vap,toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].enthalpy_flow_terms[Liq], enthalpy_flow_terms\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].enthalpy_flow_terms[Vap], enthalpy_flow_terms\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_flow_liq_out[0.0]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_mole_frac_liq_out[0.0,benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_mole_frac_liq_out[0.0,toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_flow_liq_out[0.0]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_mole_frac_liq_out[0.0,benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_mole_frac_liq_out[0.0,toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_flow_liq_out[0.0]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_mole_frac_liq_out[0.0,benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_mole_frac_liq_out[0.0,toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_flow_vap_out[0.0]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_mole_frac_vap_out[0.0,benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_mole_frac_vap_out[0.0,toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_flow_vap_out[0.0]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_mole_frac_vap_out[0.0,benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_mole_frac_vap_out[0.0,toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_flow_vap_out[0.0]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_mole_frac_vap_out[0.0,benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_mole_frac_vap_out[0.0,toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_flow_liq_out[0.0]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_mole_frac_liq_out[0.0,benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_mole_frac_liq_out[0.0,toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_flow_liq_out[0.0]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_mole_frac_liq_out[0.0,benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_mole_frac_liq_out[0.0,toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_flow_liq_out[0.0]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_mole_frac_liq_out[0.0,benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_mole_frac_liq_out[0.0,toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_flow_liq_out[0.0]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_mole_frac_liq_out[0.0,benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_mole_frac_liq_out[0.0,toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_flow_vap_out[0.0]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_mole_frac_vap_out[0.0,benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_mole_frac_vap_out[0.0,toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_flow_vap_out[0.0]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_mole_frac_vap_out[0.0,benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_mole_frac_vap_out[0.0,toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_flow_vap_out[0.0]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_mole_frac_vap_out[0.0,benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_mole_frac_vap_out[0.0,toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_flow_vap_out[0.0]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_mole_frac_vap_out[0.0,benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_mole_frac_vap_out[0.0,toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_flow_liq_out[0.0]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_mole_frac_liq_out[0.0,benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_mole_frac_liq_out[0.0,toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_flow_liq_out[0.0]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_mole_frac_liq_out[0.0,benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_mole_frac_liq_out[0.0,toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_flow_vap_out[0.0]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_mole_frac_vap_out[0.0,benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_mole_frac_vap_out[0.0,toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_flow_vap_out[0.0]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_mole_frac_vap_out[0.0,benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_mole_frac_vap_out[0.0,toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_flow_vap_out[0.0]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_mole_frac_vap_out[0.0,benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_mole_frac_vap_out[0.0,toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.e_flow_reflux[0.0]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.e_mole_frac_reflux[0.0,benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.e_mole_frac_reflux[0.0,toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_flow_liq_out[0.0]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_mole_frac_liq_out[0.0,benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_mole_frac_liq_out[0.0,toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.e_flow_vapor_reboil[0.0]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.e_mole_frac_vapor_reboil[0.0,benzene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.e_mole_frac_vapor_reboil[0.0,toluene]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [INFO] idaes.init.fs.D101: Begin initialization.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [INFO] idaes.init.fs.D101.feed_tray: Begin initialization.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [INFO] idaes.init.fs.D101.feed_tray.properties_out: State Released.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:26 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:27 [INFO] idaes.init.fs.D101.feed_tray: Mass balance solve optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:27 [INFO] idaes.init.fs.D101.feed_tray: Mass and energy balance solve optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:27 [INFO] idaes.init.fs.D101.feed_tray: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:27 [INFO] idaes.init.fs.D101.feed_tray: Initialization complete, status optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:27 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: State Released.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:27 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: State Released.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:27 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:27 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:27 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:27 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:27 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:27 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:27 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:27 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:27 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:27 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:27 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: State Released.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:27 [INFO] idaes.init.fs.D101.condenser.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:27 [INFO] idaes.init.fs.D101.condenser: Initialization Complete, optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:27 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: State Released.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:27 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:27 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:27 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:27 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:27 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:28 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:28 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:28 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:28 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:28 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:28 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: State Released.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:28 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:28 [INFO] idaes.init.fs.D101.reboiler: Initialization Complete, optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:28 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: State Released.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:28 [INFO] idaes.init.fs.D101.rectification_section[1]: Begin initialization.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:28 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:28 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:28 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:28 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:28 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:28 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:28 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:28 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:28 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:28 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:28 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:28 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:28 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:28 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:28 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:28 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: State Released.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:28 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[1]: Mass balance solve optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[1]: Mass and energy balance solve optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[1]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[1]: Initialization complete, status optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: State Released.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[2]: Begin initialization.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: State Released.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[2]: Mass balance solve optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[2]: Mass and energy balance solve optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[2]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[2]: Initialization complete, status optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: State Released.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: State Released.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[3]: Begin initialization.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: State Released.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:29 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.rectification_section[3]: Mass balance solve optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.rectification_section[3]: Mass and energy balance solve optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.rectification_section[3]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.rectification_section[3]: Initialization complete, status optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: State Released.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: State Released.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.rectification_section[4]: Begin initialization.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: State Released.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.rectification_section[4]: Mass balance solve optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.rectification_section[4]: Mass and energy balance solve optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.rectification_section[4]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.rectification_section[4]: Initialization complete, status optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: State Released.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.stripping_section[6]: Begin initialization.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:30 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: State Released.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[6]: Mass balance solve optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[6]: Mass and energy balance solve optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[6]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[6]: Initialization complete, status optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: State Released.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[7]: Begin initialization.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "tags": [ + "header", + "hide-cell" + ] + }, + "outputs": [], + "source": [ + "###############################################################################\n", + "# The Institute for the Design of Advanced Energy Systems Integrated Platform\n", + "# Framework (IDAES IP) was produced under the DOE Institute for the\n", + "# Design of Advanced Energy Systems (IDAES).\n", + "#\n", + "# Copyright (c) 2018-2023 by the software owners: The Regents of the\n", + "# University of California, through Lawrence Berkeley National Laboratory,\n", + "# National Technology & Engineering Solutions of Sandia, LLC, Carnegie Mellon\n", + "# University, West Virginia University Research Corporation, et al.\n", + "# All rights reserved. Please see the files COPYRIGHT.md and LICENSE.md\n", + "# for full copyright and license information.\n", + "###############################################################################" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "# HDA Flowsheet Simulation and Optimization\n", + "Maintainer: Brandon Paul \n", + "Author: Brandon Paul \n", + "Updated: 2023-06-01 \n", + "\n", + "\n", + "## Note\n", + "\n", + "This tutorial will be similar to the HDA flowsheet tutorial in the Tutorials section, except that we use a distillation column instead of a second flash (F102) to produce benzene and toluene products.\n", + "\n", + "\n", + "## Learning outcomes\n", + "\n", + "\n", + "- Construct a steady-state flowsheet using the IDAES unit model library\n", + "- Connecting unit models in a flowsheet using Arcs\n", + "- Using the SequentialDecomposition tool to initialize a flowsheet with recycle\n", + "- Fomulate and solve an optimization problem\n", + " - Defining an objective function\n", + " - Setting variable bounds\n", + " - Adding additional constraints \n", + "\n", + "\n", + "## Problem Statement\n", + "\n", + "Hydrodealkylation is a chemical reaction that often involves reacting\n", + "an aromatic hydrocarbon in the presence of hydrogen gas to form a\n", + "simpler aromatic hydrocarbon devoid of functional groups. In this\n", + "example, toluene will be reacted with hydrogen gas at high temperatures\n", + " to form benzene via the following reaction:\n", + "\n", + "**C6H5CH3 + H2 \u2192 C6H6 + CH4**\n", + "\n", + "\n", + "This reaction is often accompanied by an equilibrium side reaction\n", + "which forms diphenyl, which we will neglect for this example.\n", + "\n", + "This example is based on the 1967 AIChE Student Contest problem as\n", + "present by Douglas, J.M., Chemical Design of Chemical Processes, 1988,\n", + "McGraw-Hill.\n", + "\n", + "The flowsheet that we will be using for this module is shown below with the stream conditions. We will be processing toluene and hydrogen to produce at least 370 TPY of benzene. As shown in the flowsheet, we use a flash tank, F101, to separate out the non-condensibles, and a distillation column, D101, to further separate the benzene-toluene mixture to improve the benzene purity. The non-condensibles separated out in F101 will be partially recycled back to M101 and the rest will be purged. We will assume ideal gas behavior for this flowsheet. The properties required for this module are defined in\n", + "\n", + "- `hda_ideal_VLE.py`\n", + "- `idaes.models.properties.activity_coeff_models.BTX_activity_coeff_VLE`\n", + "- `hda_reaction.py`\n", + "\n", + "We will be using two thermodynamic packages: one (first in the list above) containing all four components (i.e., toluene, hydrogen, benzene, and methane) and the other (second in the list above) containing benzene and toluene only. The latter is needed to simplify the VLE calculations in the distillation column model. \n", + "\n", + "![](HDA_flowsheet_distillation.png)\n", + "\n" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Translator block\n", + "\n", + "Benzene and toluene are separated by distillation, so the process involves phase equilibrium and two-phase flow conditions. However, the presence of hydrogen and methane complicates the calculations. This is because, hydrogen and methane are non-condensable under all conditions of interest; ergo, a vapor phase will always be present, and the mixture bubble point is extremely low. To simplify the phase equilibrium calculations, hydrogen and methane will be considered completely as non-condensable and insoluble in the liquid outlet from the flash F101.\n", + "\n", + "Since no hydrogen and methane will be present in the unit operations following the flash, a different component list can be used to simplify the property calculations. IDAES supports the definition of multiple property packages within a single flowsheet via `Translator` blocks. `Translator` blocks convert between different property calculations, component lists, and equations of state. " + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Importing required pyomo and idaes components\n", + "\n", + "\n", + "To construct a flowsheet, we will need several components from the pyomo and idaes package. Let us first import the following components from Pyomo:\n", + "- Constraint (to write constraints)\n", + "- Var (to declare variables)\n", + "- ConcreteModel (to create the concrete model object)\n", + "- Expression (to evaluate values as a function of variables defined in the model)\n", + "- Objective (to define an objective function for optimization)\n", + "- SolverFactory (to solve the problem)\n", + "- TransformationFactory (to apply certain transformations)\n", + "- Arc (to connect two unit models)\n", + "- SequentialDecomposition (to initialize the flowsheet in a sequential mode)\n", + "\n", + "For further details on these components, please refer to the pyomo documentation: https://pyomo.readthedocs.io/en/stable/\n" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "from pyomo.environ import (\n", + " Constraint,\n", + " Var,\n", + " ConcreteModel,\n", + " Expression,\n", + " Objective,\n", + " TransformationFactory,\n", + " value,\n", + ")" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: State Released.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "Inline Exercise:\n", + "Import `Arc` and `SequentialDecomposition` tools from `pyomo.network`\n", + "
" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Complete: optimal - Optimal Solution Found\n" - ] + "cell_type": "code", + "execution_count": 4, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "# Todo: Import the above mentioned tools from pyomo.network\n", + "from pyomo.network import Arc, SequentialDecomposition" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[7]: Mass balance solve optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "From IDAES, we will be needing the FlowsheetBlock and the following unit models:\n", + "- Mixer\n", + "- Heater\n", + "- CSTR\n", + "- Flash\n", + "- Separator (splitter) \n", + "- PressureChanger\n", + "- Translator (to switch from one property package to another)\n", + "- TrayColumn (distillation column)\n", + "- CondenserType (Type of the overhead condenser: complete or partial)\n", + "- TemperatureSpec (Temperature specification inside the condenser)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[7]: Mass and energy balance solve optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "from idaes.core import FlowsheetBlock" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[7]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "from idaes.models.unit_models import (\n", + " PressureChanger,\n", + " Mixer,\n", + " Separator as Splitter,\n", + " Heater,\n", + " CSTR,\n", + " Flash,\n", + " Translator,\n", + ")\n", + "\n", + "from idaes.models_extra.column_models import TrayColumn\n", + "from idaes.models_extra.column_models.condenser import CondenserType, TemperatureSpec" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[7]: Initialization complete, status optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will also be needing some utility tools to put together the flowsheet and calculate the degrees of freedom. " + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: State Released.\n" - ] + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "# Utility tools to put together the flowsheet and calculate the degrees of freedom\n", + "from idaes.models.unit_models.pressure_changer import ThermodynamicAssumption\n", + "from idaes.core.util.model_statistics import degrees_of_freedom\n", + "from idaes.core.util.initialization import propagate_state\n", + "from idaes.core.solvers import get_solver\n", + "import idaes.core.util.scaling as iscale\n", + "from idaes.core.util.exceptions import InitializationError\n", + "\n", + "# Import idaes logger to set output levels\n", + "import idaes.logger as idaeslog" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: State Released.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Importing required thermo and reaction packages\n", + "\n", + "Finally, we import the thermophysical (`ideal_VLE.py` and `BTXParameterBlock`) packages and reaction package (`reaction.py`) for the HDA process. We have created custom thermophysical packages that assume ideal gas behavior with support for VLE. The reaction package consists of the stochiometric coefficients for the reaction, heat of reaction, and kinetic information (Arrhenius constant and activation energy). " + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[8]: Begin initialization.\n" - ] + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "from idaes_examples.mod.hda import hda_reaction as reaction_props\n", + "from idaes.models.properties.activity_coeff_models.BTX_activity_coeff_VLE import (\n", + " BTXParameterBlock,\n", + ")\n", + "\n", + "from idaes_examples.mod.hda.hda_ideal_VLE import HDAParameterBlock" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Constructing the Flowsheet\n", + "\n", + "We have now imported all the components, unit models, and property modules we need to construct a flowsheet. Let us create a ConcreteModel and add the flowsheet block to it. " + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# Create a Pyomo Concrete Model to contain the problem\n", + "m = ConcreteModel()\n", + "\n", + "# Add a steady state flowsheet block to the model\n", + "m.fs = FlowsheetBlock(dynamic=False)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will now add the thermophysical and reaction packages to the flowsheet." + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "# Property package for benzene, toluene, hydrogen, methane mixture\n", + "m.fs.BTHM_params = HDAParameterBlock()\n", + "\n", + "# Property package for the benzene-toluene mixture\n", + "m.fs.BT_params = BTXParameterBlock(\n", + " valid_phase=(\"Liq\", \"Vap\"), activity_coeff_model=\"Ideal\"\n", + ")\n", + "\n", + "# Reaction package for the HDA reaction\n", + "m.fs.reaction_params = reaction_props.HDAReactionParameterBlock(\n", + " property_package=m.fs.BTHM_params\n", + ")" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Adding Unit Models\n", + "\n", + "Let us start adding the unit models we have imported to the flowsheet. Here, we are adding the Mixer (assigned a name M101) and a Heater (assigned a name H101). Note that, all unit models need to be given a property package argument. In addition, the Mixer unit model needs a `list` consisting of the inlets (toluene feed, hydrogen feed and vapor recycle streams in this case). " + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:31 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "# Adding the mixer M101 to the flowsheet\n", + "m.fs.M101 = Mixer(\n", + " property_package=m.fs.BTHM_params,\n", + " inlet_list=[\"toluene_feed\", \"hydrogen_feed\", \"vapor_recycle\"],\n", + ")\n", + "\n", + "# Adding the heater H101 to the flowsheet\n", + "m.fs.H101 = Heater(property_package=m.fs.BTHM_params, has_phase_equilibrium=True)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "Inline Exercise:\n", + "Let us now add the CSTR (assign the name R101) and pass the following arguments:\n", + "
    \n", + "
  • \"property_package\": m.fs.BTHM_params
  • \n", + "
  • \"reaction_package\": m.fs.reaction_params
  • \n", + "
  • \"has_heat_of_reaction\": True
  • \n", + "
  • \"has_heat_transfer\": True
  • \n", + "
\n", + "
" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 13, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "# Todo: Add reactor with the specifications above\n", + "m.fs.R101 = CSTR(\n", + " property_package=m.fs.BTHM_params,\n", + " reaction_package=m.fs.reaction_params,\n", + " has_heat_of_reaction=True,\n", + " has_heat_transfer=True,\n", + ")" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us now add the Flash (assign the name F101), Splitter (assign the name S101) and PressureChanger (assign the name C101)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "# Adding the flash tank F101 to the flowsheet\n", + "m.fs.F101 = Flash(\n", + " property_package=m.fs.BTHM_params, has_heat_transfer=True, has_pressure_change=True\n", + ")\n", + "\n", + "# Adding the splitter S101 to the flowsheet\n", + "m.fs.S101 = Splitter(\n", + " property_package=m.fs.BTHM_params, outlet_list=[\"purge\", \"recycle\"]\n", + ")\n", + "\n", + "# Adding the compressor C101 to the flowsheet\n", + "m.fs.C101 = PressureChanger(\n", + " property_package=m.fs.BTHM_params,\n", + " compressor=True,\n", + " thermodynamic_assumption=ThermodynamicAssumption.isothermal,\n", + ")" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Remark\n", + "\n", + "Currently, the `SequentialDecomposition()` tool, which we will later be using to initialize the flowsheet, does not support the distillation column model. Thus, we will first simulate the flowsheet without the distillation column. After it converges, we will then add the distillation column, initialize it, and simulate the entire flowsheet." + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As mentioned above, we use the `m.fs.BTHM_params` package, which contains all the four species, for the reactor loop, and the simpler `m.fs.BT_params` for unit operations following the flash (i.e., heater H102 and the distillation column D101). We define a `Translator` block to link the source property package and the package it is to be translated to in the following manner:" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "# Add translator block to convert between property packages\n", + "m.fs.translator = Translator(\n", + " inlet_property_package=m.fs.BTHM_params, outlet_property_package=m.fs.BT_params\n", + ")" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Translator block constraints\n", + "\n", + "The `Translator` block needs to know how to translate between the two property packages. This must be custom coded for each application because of the generality of the IDAES framework.\n", + "\n", + "For this process, five constraints are required based on the state variables used in the outgoing process.\n", + "\n", + "- Since we assumed that only benzene and toluene are present in the liquid phase, the total molar flowrate must be the sum of molar flowrates of benzene and toluene, respectively.\n", + "- Temperature of the inlet and outlet streams must be the same.\n", + "- Pressure of the inlet and outgoing streams must be the same\n", + "- The mole fraction of benzene in the outgoing stream is the ratio of the molar flowrate of liquid benzene in the inlet to the sum of molar flowrates of liquid benzene and toluene in the inlet.\n", + "- The mole fraction of toluene in the outgoing stream is the ratio of the molar flowrate of liquid toluene in the inlet to the sum of molar flowrates of liquid benzene and toluene in the inlet." + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "# Add constraint: Total flow = benzene flow + toluene flow (molar)\n", + "m.fs.translator.eq_total_flow = Constraint(\n", + " expr=m.fs.translator.outlet.flow_mol[0]\n", + " == m.fs.translator.inlet.flow_mol_phase_comp[0, \"Liq\", \"benzene\"]\n", + " + m.fs.translator.inlet.flow_mol_phase_comp[0, \"Liq\", \"toluene\"]\n", + ")\n", + "\n", + "# Add constraint: Outlet temperature = Inlet temperature\n", + "m.fs.translator.eq_temperature = Constraint(\n", + " expr=m.fs.translator.outlet.temperature[0] == m.fs.translator.inlet.temperature[0]\n", + ")" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: State Released.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the above, note that the variable flow_mol_phase_comp has the index - [time, phase, component]. As this is a steady-state flowsheet, the time index by default is 0. The valid phases are [\"Liq\", \"Vap\"]. Similarly the valid component list is [\"benzene\", \"toluene\", \"hydrogen\", \"methane\"]." + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Complete: optimal - Optimal Solution Found\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "Inline Exercise:\n", + "Add the constraint to ensure that the outlet pressure is the same as the inlet pressure\n", + "
" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[8]: Mass balance solve optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 18, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "# Todo: Add constraint: Outlet pressure = Inlet pressure\n", + "m.fs.translator.eq_pressure = Constraint(\n", + " expr=m.fs.translator.outlet.pressure[0] == m.fs.translator.inlet.pressure[0]\n", + ")" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[8]: Mass and energy balance solve optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "# Remaining constraints on the translator block\n", + "\n", + "# Add constraint: Benzene mole fraction definition\n", + "m.fs.translator.eq_mole_frac_benzene = Constraint(\n", + " expr=m.fs.translator.outlet.mole_frac_comp[0, \"benzene\"]\n", + " == m.fs.translator.inlet.flow_mol_phase_comp[0, \"Liq\", \"benzene\"]\n", + " / (\n", + " m.fs.translator.inlet.flow_mol_phase_comp[0, \"Liq\", \"benzene\"]\n", + " + m.fs.translator.inlet.flow_mol_phase_comp[0, \"Liq\", \"toluene\"]\n", + " )\n", + ")\n", + "\n", + "# Add constraint: Toluene mole fraction definition\n", + "m.fs.translator.eq_mole_frac_toluene = Constraint(\n", + " expr=m.fs.translator.outlet.mole_frac_comp[0, \"toluene\"]\n", + " == m.fs.translator.inlet.flow_mol_phase_comp[0, \"Liq\", \"toluene\"]\n", + " / (\n", + " m.fs.translator.inlet.flow_mol_phase_comp[0, \"Liq\", \"benzene\"]\n", + " + m.fs.translator.inlet.flow_mol_phase_comp[0, \"Liq\", \"toluene\"]\n", + " )\n", + ")" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[8]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "Inline Exercise:\n", + "Finally, let us add the Heater H102 in the same way as H101 but pass the m.fs.BT_params thermodynamic package. We will add the distillation column after converging the flowsheet.\n", + "
" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[8]: Initialization complete, status optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 21, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "# Todo: Add the Heater H102 to the flowsheet\n", + "m.fs.H102 = Heater(\n", + " property_package=m.fs.BT_params,\n", + " has_pressure_change=True,\n", + " has_phase_equilibrium=True,\n", + ")" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: State Released.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Connecting Unit Models using Arcs\n", + "\n", + "We have now added the initial set of unit models to the flowsheet. However, we have not yet specified how the units are connected. To do this, we will be using the `Arc` which is a pyomo component that takes in two arguments: `source` and `destination`. Let us connect the outlet of the mixer (M101) to the inlet of the heater (H101). " + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: State Released.\n" - ] + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.s03 = Arc(source=m.fs.M101.outlet, destination=m.fs.H101.inlet)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[9]: Begin initialization.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "![](HDA_flowsheet_distillation.png) \n", + "\n", + "
\n", + "Inline Exercise:\n", + "Now, connect the H101 outlet to the R101 inlet using the cell above as a guide. \n", + "
\n", + "\n" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 24, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "# Todo: Connect the H101 outlet to R101 inlet\n", + "m.fs.s04 = Arc(source=m.fs.H101.outlet, destination=m.fs.R101.inlet)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will now be connecting the rest of the units as shown below. Notice how the outlet names are different for the flash tank as it has a vapor and a liquid outlet. " + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.s05 = Arc(source=m.fs.R101.outlet, destination=m.fs.F101.inlet)\n", + "m.fs.s06 = Arc(source=m.fs.F101.vap_outlet, destination=m.fs.S101.inlet)\n", + "m.fs.s08 = Arc(source=m.fs.S101.recycle, destination=m.fs.C101.inlet)\n", + "m.fs.s09 = Arc(source=m.fs.C101.outlet, destination=m.fs.M101.vapor_recycle)\n", + "m.fs.s10a = Arc(source=m.fs.F101.liq_outlet, destination=m.fs.translator.inlet)\n", + "m.fs.s10b = Arc(source=m.fs.translator.outlet, destination=m.fs.H102.inlet)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We have now connected the unit model block using the arcs. However, each of these arcs link to ports on the two unit models that are connected. In this case, the ports consist of the state variables that need to be linked between the unit models. Pyomo provides a convenient method to write these equality constraints for us between two ports and this is done as follows:" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "TransformationFactory(\"network.expand_arcs\").apply_to(m)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Appending additional constraints to the model\n", + "\n", + "Now, we will see how we can add additional constraints to the model using `Constraint` from Pyomo.\n", + "\n", + "Consider the reactor R101. By default, the conversion of a component is not calculated when we simulate the flowsheet. If we are interested either in specifying or constraining the conversion value, we can add the following constraint to calculate the conversion:\n", + "$$ \\text{Conversion of toluene} = \\frac{\\text{molar flow of toluene in the inlet} - \\text{molar flow of toluene in the outlet}}{\\text{molar flow of toluene in the inlet}} $$ \n", + "\n", + "We add the constraint to the model as shown below." + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "# Define the conversion variables using 'Var'\n", + "m.fs.R101.conversion = Var(initialize=0.75, bounds=(0, 1))\n", + "\n", + "# Append the constraint to the model\n", + "m.fs.R101.conv_constraint = Constraint(\n", + " expr=m.fs.R101.conversion * m.fs.R101.inlet.flow_mol_phase_comp[0, \"Vap\", \"toluene\"]\n", + " == (\n", + " m.fs.R101.inlet.flow_mol_phase_comp[0, \"Vap\", \"toluene\"]\n", + " - m.fs.R101.outlet.flow_mol_phase_comp[0, \"Vap\", \"toluene\"]\n", + " )\n", + ")" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Fixing feed conditions and Initializing the flowsheet\n", + "\n", + "Let us first check how many degrees of freedom exist for this flowsheet using the `degrees_of_freedom` tool we imported earlier. " + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "29\n" + ] + } + ], + "source": [ + "print(degrees_of_freedom(m))" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will now be fixing the toluene feed stream to the conditions shown in the flowsheet above. Please note that though this is a pure toluene feed, the remaining components are still assigned a very small non-zero value to help with convergence and initializing. " + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.M101.toluene_feed.flow_mol_phase_comp[0, \"Vap\", \"benzene\"].fix(1e-5)\n", + "m.fs.M101.toluene_feed.flow_mol_phase_comp[0, \"Vap\", \"toluene\"].fix(1e-5)\n", + "m.fs.M101.toluene_feed.flow_mol_phase_comp[0, \"Vap\", \"hydrogen\"].fix(1e-5)\n", + "m.fs.M101.toluene_feed.flow_mol_phase_comp[0, \"Vap\", \"methane\"].fix(1e-5)\n", + "m.fs.M101.toluene_feed.flow_mol_phase_comp[0, \"Liq\", \"benzene\"].fix(1e-5)\n", + "m.fs.M101.toluene_feed.flow_mol_phase_comp[0, \"Liq\", \"toluene\"].fix(0.30)\n", + "m.fs.M101.toluene_feed.flow_mol_phase_comp[0, \"Liq\", \"hydrogen\"].fix(1e-5)\n", + "m.fs.M101.toluene_feed.flow_mol_phase_comp[0, \"Liq\", \"methane\"].fix(1e-5)\n", + "m.fs.M101.toluene_feed.temperature.fix(303.2)\n", + "m.fs.M101.toluene_feed.pressure.fix(350000)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Similarly, let us fix the hydrogen feed to the following conditions in the next cell:\n", + "
    \n", + "
  • FH2 = 0.30 mol/s
  • \n", + "
  • FCH4 = 0.02 mol/s
  • \n", + "
  • Remaining components = 1e-5 mol/s
  • \n", + "
  • T = 303.2 K
  • \n", + "
  • P = 350000 Pa
  • \n", + "
" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.M101.hydrogen_feed.flow_mol_phase_comp[0, \"Vap\", \"benzene\"].fix(1e-5)\n", + "m.fs.M101.hydrogen_feed.flow_mol_phase_comp[0, \"Vap\", \"toluene\"].fix(1e-5)\n", + "m.fs.M101.hydrogen_feed.flow_mol_phase_comp[0, \"Vap\", \"hydrogen\"].fix(0.30)\n", + "m.fs.M101.hydrogen_feed.flow_mol_phase_comp[0, \"Vap\", \"methane\"].fix(0.02)\n", + "m.fs.M101.hydrogen_feed.flow_mol_phase_comp[0, \"Liq\", \"benzene\"].fix(1e-5)\n", + "m.fs.M101.hydrogen_feed.flow_mol_phase_comp[0, \"Liq\", \"toluene\"].fix(1e-5)\n", + "m.fs.M101.hydrogen_feed.flow_mol_phase_comp[0, \"Liq\", \"hydrogen\"].fix(1e-5)\n", + "m.fs.M101.hydrogen_feed.flow_mol_phase_comp[0, \"Liq\", \"methane\"].fix(1e-5)\n", + "m.fs.M101.hydrogen_feed.temperature.fix(303.2)\n", + "m.fs.M101.hydrogen_feed.pressure.fix(350000)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Fixing unit model specifications\n", + "\n", + "Now that we have fixed our inlet feed conditions, we will now be fixing the operating conditions for the unit models in the flowsheet. Let us set the H101 outlet temperature to 600 K. " + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [], + "source": [ + "# Fix the temperature of the outlet from the heater H101\n", + "m.fs.H101.outlet.temperature.fix(600)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: State Released.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "Inline Exercise:\n", + "Set the conditions for the reactor R101 to the following conditions:\n", + "
    \n", + "
  • `conversion` = 0.75
  • \n", + "
  • `heat_duty` = 0
  • \n", + "
\n", + "\n", + "Use Shift+Enter to run the cell once you have typed in your code. \n", + "
" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Complete: optimal - Optimal Solution Found\n" - ] + "cell_type": "code", + "execution_count": 34, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "# Todo: Fix the 'conversion' of the reactor R101\n", + "m.fs.R101.conversion.fix(0.75)\n", + "\n", + "# Todo: Fix the 'heat_duty' of the reactor R101\n", + "m.fs.R101.heat_duty.fix(0)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[9]: Mass balance solve optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The Flash conditions for F101 can be set as follows. " + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[9]: Mass and energy balance solve optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [], + "source": [ + "# Fix the temperature of the vapor outlet from F101\n", + "m.fs.F101.vap_outlet.temperature.fix(325.0)\n", + "\n", + "# Fix the pressure drop in the flash F101\n", + "m.fs.F101.deltaP.fix(0)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[9]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us fix the split fraction of the purge stream from the splitter S101 and the outlet pressure from the compressor C101" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[9]: Initialization complete, status optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [], + "source": [ + "# Fix the split fraction of the 'purge' stream from S101\n", + "m.fs.S101.split_fraction[0, \"purge\"].fix(0.2)\n", + "\n", + "# Fix the pressure of the outlet from the compressor C101\n", + "m.fs.C101.outlet.pressure.fix(350000)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: State Released.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, let us fix the temperature of the outlet from H102 and the pressure drop in H102 as the following" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: State Released.\n" - ] + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [], + "source": [ + "# Fix the temperature of the outlet from the heater H102\n", + "m.fs.H102.outlet.temperature.fix(375)\n", + "\n", + "# Fix the pressure drop in the heater H102\n", + "m.fs.H102.deltaP.fix(-200000)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[10]: Begin initialization.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To avoid convergence issues associated with poorly scaled variables and/or constraints, we scale the variables and constraints corresponding to the heaters H101 and H102, flash F101 and the reactor R101. Scaling factors for the flow rates, temperature, pressure, etc. have been defined in the property package: `ideal_VLE.py` file. Here, we set scaling factors only for the heat duty of the heater, the reaction extent, heat duty and volume of the reactor." + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].flow_mol_phase\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enth_mol_phase_comp[Liq,benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enth_mol_phase_comp[Liq,toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enth_mol_phase_comp[Vap,benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enth_mol_phase_comp[Vap,toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].enth_mol_phase_comp[Liq,benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].enth_mol_phase_comp[Liq,toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].enth_mol_phase_comp[Vap,benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].enth_mol_phase_comp[Vap,toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].material_flow_terms[Liq,benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].material_flow_terms[Vap,benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].material_flow_terms[Liq,toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].material_flow_terms[Vap,toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enthalpy_flow_terms[Liq], enthalpy_flow_terms\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enthalpy_flow_terms[Vap], enthalpy_flow_terms\n" + ] + } + ], + "source": [ + "# Set scaling factors for heat duty, reaction extent and volume\n", + "iscale.set_scaling_factor(m.fs.H101.control_volume.heat, 1e-2)\n", + "iscale.set_scaling_factor(m.fs.R101.control_volume.heat, 1e-2)\n", + "iscale.set_scaling_factor(m.fs.R101.control_volume.rate_reaction_extent, 1)\n", + "iscale.set_scaling_factor(m.fs.R101.control_volume.volume, 1)\n", + "iscale.set_scaling_factor(m.fs.F101.control_volume.heat, 1e-2)\n", + "iscale.set_scaling_factor(m.fs.H102.control_volume.heat, 1e-2)\n", + "\n", + "# Set the scaling factors for the remaining variables and all constraints\n", + "iscale.calculate_scaling_factors(m.fs.H101)\n", + "iscale.calculate_scaling_factors(m.fs.R101)\n", + "iscale.calculate_scaling_factors(m.fs.F101)\n", + "iscale.calculate_scaling_factors(m.fs.H102)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "Inline Exercise:\n", + "We have now defined all the feed conditions and the inputs required for the unit models. The system should now have 0 degrees of freedom i.e. should be a square problem. Please check that the degrees of freedom is 0. \n", + "\n", + "Use Shift+Enter to run the cell once you have typed in your code. \n", + "
" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 40, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n" + ] + } + ], + "source": [ + "# Todo: Check the degrees of freedom\n", + "print(degrees_of_freedom(m))" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:32 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Initialization\n", + "\n", + "This subsection will demonstrate how to use the built-in sequential decomposition tool to initialize our flowsheet.\n", + "\n", + "Let us first create an object for the `SequentialDecomposition` and specify our options for this. " + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:33 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [], + "source": [ + "seq = SequentialDecomposition()\n", + "seq.options.select_tear_method = \"heuristic\"\n", + "seq.options.tear_method = \"Wegstein\"\n", + "seq.options.iterLim = 3\n", + "\n", + "# Using the SD tool\n", + "G = seq.create_graph(m)\n", + "heuristic_tear_set = seq.tear_set_arcs(G, method=\"heuristic\")\n", + "order = seq.calculation_order(G)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:33 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Which is the tear stream? Display tear set and order" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:33 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "fs.s03\n" + ] + } + ], + "source": [ + "for o in heuristic_tear_set:\n", + " print(o.name)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:33 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What sequence did the SD tool determine to solve this flowsheet with the least number of tears? " + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:33 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "fs.H101\n", + "fs.R101\n", + "fs.F101\n", + "fs.S101\n", + "fs.C101\n", + "fs.M101\n" + ] + } + ], + "source": [ + "for o in order:\n", + " print(o[0].name)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:33 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The SequentialDecomposition tool has determined that the tear stream is the mixer outlet (s03 in the Figure above). We will need to provide a reasonable guess for this.\n", + "\n", + "For the initial guess, we assume that the flowrate of the recycle stream (s09) is zero. Consequently, the flow rate of the stream s03 is simply the sum of the flowrates of the toluene feed and hydrogen feed streams. Further, since the temperature and the pressure of both the toluene and hydrogen feed streams are the same, we specify their values as the initial guess for the temperature and pressure of the stream s03." + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:33 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [], + "source": [ + "tear_guesses = {\n", + " \"flow_mol_phase_comp\": {\n", + " (0, \"Vap\", \"benzene\"): 1e-5,\n", + " (0, \"Vap\", \"toluene\"): 1e-5,\n", + " (0, \"Vap\", \"hydrogen\"): 0.30,\n", + " (0, \"Vap\", \"methane\"): 0.02,\n", + " (0, \"Liq\", \"benzene\"): 1e-5,\n", + " (0, \"Liq\", \"toluene\"): 0.30,\n", + " (0, \"Liq\", \"hydrogen\"): 1e-5,\n", + " (0, \"Liq\", \"methane\"): 1e-5,\n", + " },\n", + " \"temperature\": {0: 303.2},\n", + " \"pressure\": {0: 350000},\n", + "}\n", + "\n", + "# Pass the tear_guess to the SD tool\n", + "seq.set_guesses_for(m.fs.H101.inlet, tear_guesses)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:33 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we need to tell the tool how to initialize a particular unit. We will be writing a python function which takes in a \"unit\" and calls the initialize method on that unit. For the initialization, we will import a Block Triangularization Initializer which decomposes the model into a set of subproblems. These subproblems are solved using a block triangularization transformation before applying a simple Newton or user-selected solver. Methods such as block triangularization often solve faster and yield more reliable behavior than heuristic methods, but sometime struggle to decompose models with strongly coupled equations (e.g. column models, systems with counter-current flow, vapor-liquid equilibrium)." + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:33 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [], + "source": [ + "def function(unit):\n", + " # Try initializing using default initializer, \n", + " # if it fails (probably due to scaling) try for the second time\n", + " try:\n", + " initializer = unit.default_initializer()\n", + " initializer.initialize(unit, output_level=idaeslog.INFO)\n", + " except InitializationError:\n", + " solver=get_solver()\n", + " solver.solve(unit)\n", + " " + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:33 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We are now ready to initialize our flowsheet in a sequential mode. Note that we specifically set the iteration limit to be 3 as we are trying to use this tool only to get a good set of initial values such that IPOPT can then take over and solve this flowsheet for us. " + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:33 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 47, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-08-28 18:38:14 [INFO] idaes.init.fs.H101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:16 [INFO] idaes.init.fs.H101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:16 [INFO] idaes.init.fs.R101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:16 [INFO] idaes.init.fs.R101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:17 [INFO] idaes.init.fs.F101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:17 [INFO] idaes.init.fs.F101.control_volume.properties_out: Initialization Complete\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 12\n", + "component keys that are not exported as part of the NL file. Skipping.\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 50 keys\n", + "that are not Var, Constraint, Objective, or the model. Skipping.\n", + "2024-08-28 18:38:17 [INFO] idaes.init.fs.S101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:17 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n", + "2024-08-28 18:38:17 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n", + "2024-08-28 18:38:17 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - \n", + "2024-08-28 18:38:18 [INFO] idaes.init.fs.C101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:18 [INFO] idaes.init.fs.C101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:18 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 1 optimal - .\n", + "2024-08-28 18:38:18 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 2 optimal - .\n", + "2024-08-28 18:38:19 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 3 optimal - .\n", + "2024-08-28 18:38:19 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 4 optimal - .\n", + "2024-08-28 18:38:19 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 5 optimal - .\n", + "2024-08-28 18:38:19 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 1 optimal - .\n", + "2024-08-28 18:38:19 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 2 optimal - .\n", + "2024-08-28 18:38:20 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 3 optimal - .\n", + "2024-08-28 18:38:20 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 4 optimal - .\n", + "2024-08-28 18:38:20 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 5 optimal - .\n", + "2024-08-28 18:38:20 [INFO] idaes.init.fs.M101.toluene_feed_state: Initialization Complete\n", + "2024-08-28 18:38:20 [INFO] idaes.init.fs.M101.hydrogen_feed_state: Initialization Complete\n", + "2024-08-28 18:38:20 [INFO] idaes.init.fs.M101.vapor_recycle_state: Initialization Complete\n", + "2024-08-28 18:38:21 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:21 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - \n", + "2024-08-28 18:38:21 [INFO] idaes.init.fs.H101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:21 [INFO] idaes.init.fs.H101.control_volume.properties_out: Initialization Complete\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 11\n", + "component keys that are not exported as part of the NL file. Skipping.\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 50 keys\n", + "that are not Var, Constraint, Objective, or the model. Skipping.\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.R101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.R101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.F101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.F101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.S101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - \n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.C101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.C101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.M101.toluene_feed_state: Initialization Complete\n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.M101.hydrogen_feed_state: Initialization Complete\n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.M101.vapor_recycle_state: Initialization Complete\n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - \n", + "2024-08-28 18:38:24 [INFO] idaes.init.fs.H101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:24 [INFO] idaes.init.fs.H101.control_volume.properties_out: Initialization Complete\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 11\n", + "component keys that are not exported as part of the NL file. Skipping.\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 50 keys\n", + "that are not Var, Constraint, Objective, or the model. Skipping.\n", + "2024-08-28 18:38:24 [INFO] idaes.init.fs.R101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:24 [INFO] idaes.init.fs.R101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.F101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.F101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.S101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - \n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.C101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.C101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.M101.toluene_feed_state: Initialization Complete\n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.M101.hydrogen_feed_state: Initialization Complete\n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.M101.vapor_recycle_state: Initialization Complete\n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - \n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.H101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.H101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.R101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.R101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.F101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.F101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.S101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - \n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.C101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.C101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.M101.toluene_feed_state: Initialization Complete\n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.M101.hydrogen_feed_state: Initialization Complete\n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.M101.vapor_recycle_state: Initialization Complete\n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - \n", + "2024-08-28 18:38:29 [INFO] idaes.init.fs.H101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:29 [INFO] idaes.init.fs.H101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:29 [INFO] idaes.init.fs.R101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:29 [INFO] idaes.init.fs.R101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.F101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.F101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.S101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - \n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.C101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.C101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.M101.toluene_feed_state: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.M101.hydrogen_feed_state: Initialization Complete\n", + "2024-08-28 18:38:31 [INFO] idaes.init.fs.M101.vapor_recycle_state: Initialization Complete\n", + "2024-08-28 18:38:31 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:31 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - \n", + "WARNING: Wegstein failed to converge in 3 iterations\n", + "2024-08-28 18:38:31 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 1 optimal - .\n", + "2024-08-28 18:38:31 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 2 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 3 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 4 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 5 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 1 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 2 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 3 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 4 optimal - .\n", + "2024-08-28 18:38:33 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 5 optimal - .\n" + ] + } + ], + "source": [ + "seq.run(m, function)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:33 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: State Released.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "Inline Exercise:\n", + "We have now initialized the flowsheet. Let us run the flowsheet in a simulation mode to look at the results. \n", + "
" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:33 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Complete: optimal - Optimal Solution Found\n" - ] + "cell_type": "code", + "execution_count": 48, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING: model contains export suffix 'scaling_factor' that contains 6\n", + "component keys that are not exported as part of the NL file. Skipping.\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 150 keys\n", + "that are not Var, Constraint, Objective, or the model. Skipping.\n", + "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", + "tol=1e-06\n", + "max_iter=200\n", + "\n", + "\n", + "******************************************************************************\n", + "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", + " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", + " For more information visit http://projects.coin-or.org/Ipopt\n", + "\n", + "This version of Ipopt was compiled from source code available at\n", + " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", + " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", + " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", + "\n", + "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", + " for large-scale scientific computation. All technical papers, sales and\n", + " publicity material resulting from use of the HSL codes within IPOPT must\n", + " contain the following acknowledgement:\n", + " HSL, a collection of Fortran codes for large-scale scientific\n", + " computation. See http://www.hsl.rl.ac.uk.\n", + "******************************************************************************\n", + "\n", + "This is Ipopt version 3.13.2, running with linear solver ma27.\n", + "\n", + "Number of nonzeros in equality constraint Jacobian...: 1097\n", + "Number of nonzeros in inequality constraint Jacobian.: 0\n", + "Number of nonzeros in Lagrangian Hessian.............: 877\n", + "\n", + "Total number of variables............................: 363\n", + " variables with only lower bounds: 8\n", + " variables with lower and upper bounds: 155\n", + " variables with only upper bounds: 0\n", + "Total number of equality constraints.................: 363\n", + "Total number of inequality constraints...............: 0\n", + " inequality constraints with only lower bounds: 0\n", + " inequality constraints with lower and upper bounds: 0\n", + " inequality constraints with only upper bounds: 0\n", + "\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 0 0.0000000e+00 3.82e+04 1.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", + " 1 0.0000000e+00 8.69e+03 1.44e+03 -1.0 2.00e+04 - 9.71e-01 4.67e-01H 1\n", + " 2 0.0000000e+00 1.29e+03 1.56e+03 -1.0 1.60e+04 - 9.79e-01 4.90e-01h 1\n", + " 3 0.0000000e+00 1.18e+03 1.55e+05 -1.0 1.40e+04 - 9.90e-01 4.99e-01h 1\n", + " 4 0.0000000e+00 5.46e+02 2.32e+09 -1.0 8.42e+03 - 1.00e+00 9.82e-01h 1\n", + " 5 0.0000000e+00 5.46e+03 3.66e+10 -1.0 5.97e+02 - 1.00e+00 9.90e-01h 1\n", + " 6 0.0000000e+00 1.21e+03 8.01e+09 -1.0 5.75e+00 - 1.00e+00 1.00e+00h 1\n", + " 7 0.0000000e+00 6.41e+00 3.87e+07 -1.0 1.53e-03 - 1.00e+00 1.00e+00f 1\n", + " 8 0.0000000e+00 1.96e-04 9.36e+02 -1.0 7.28e-06 - 1.00e+00 1.00e+00h 1\n", + " 9 0.0000000e+00 2.24e-08 4.99e-01 -3.8 5.92e-08 - 1.00e+00 1.00e+00h 1\n", + "Cannot recompute multipliers for feasibility problem. Error in eq_mult_calculator\n", + "\n", + "Number of Iterations....: 9\n", + "\n", + " (scaled) (unscaled)\n", + "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Dual infeasibility......: 1.5042487592972509e+04 1.5042487592972509e+04\n", + "Constraint violation....: 2.9103830456733704e-11 2.2351741790771484e-08\n", + "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Overall NLP error.......: 2.9103830456733704e-11 1.5042487592972509e+04\n", + "\n", + "\n", + "Number of objective function evaluations = 11\n", + "Number of objective gradient evaluations = 10\n", + "Number of equality constraint evaluations = 11\n", + "Number of inequality constraint evaluations = 0\n", + "Number of equality constraint Jacobian evaluations = 10\n", + "Number of inequality constraint Jacobian evaluations = 0\n", + "Number of Lagrangian Hessian evaluations = 9\n", + "Total CPU secs in IPOPT (w/o function evaluations) = 0.011\n", + "Total CPU secs in NLP function evaluations = 0.001\n", + "\n", + "EXIT: Optimal Solution Found.\n" + ] + } + ], + "source": [ + "# Create the solver object\n", + "solver = get_solver()\n", + "\n", + "# Solve the model\n", + "results = solver.solve(m, tee=True)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:33 [INFO] idaes.init.fs.D101.stripping_section[10]: Mass balance solve optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Add distillation column \n", + "\n", + "As mentioned earlier, the `SequentialDecomposition` tool currently does not support the distillation column model. Thus, we have not included the distillation column in the flowsheet. Now that we have a converged flowsheet, we will add the distillation column and simulate the entire flowsheet. \n", + "\n", + "In the following, we will\n", + "- Add the distillation column \n", + "- Connect it to the heater \n", + "- Add the necessary equality constraints\n", + "- Propagate the state variable information from the outlet of the heater to the inlet of the distillation column \n", + "- Fix the degrees of freedom of the distillation block (reflux ratio, boilup ratio, and condenser pressure)\n", + "- Scale the control volume heat variables to help convergence\n", + "- Initialize the distillation block.\n", + "\n" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:33 [INFO] idaes.init.fs.D101.stripping_section[10]: Mass and energy balance solve optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 50, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].material_flow_terms[Liq,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].material_flow_terms[Vap,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].material_flow_terms[Liq,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].material_flow_terms[Vap,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].enthalpy_flow_terms[Liq], enthalpy_flow_terms\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].enthalpy_flow_terms[Vap], enthalpy_flow_terms\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].material_flow_terms[Liq,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].material_flow_terms[Vap,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].material_flow_terms[Liq,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].material_flow_terms[Vap,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].enthalpy_flow_terms[Liq], enthalpy_flow_terms\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].enthalpy_flow_terms[Vap], enthalpy_flow_terms\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.e_flow_reflux[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.e_mole_frac_reflux[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.e_mole_frac_reflux[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.e_flow_vapor_reboil[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.e_mole_frac_vapor_reboil[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.e_mole_frac_vapor_reboil[0.0,toluene]\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101: Begin initialization.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray: Begin initialization.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_out: State Released.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: State Released.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: State Released.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: State Released.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.condenser.control_volume: Initialization Complete\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.condenser: Initialization Complete, optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: State Released.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: State Released.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler: Initialization Complete, optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: State Released.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.rectification_section[1]: Begin initialization.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: State Released.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: State Released.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[2]: Begin initialization.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: State Released.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[2]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[2]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: State Released.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: State Released.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3]: Begin initialization.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: State Released.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[3]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[3]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[3]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: State Released.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: State Released.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4]: Begin initialization.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: State Released.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: State Released.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.stripping_section[6]: Begin initialization.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: State Released.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: State Released.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[7]: Begin initialization.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: State Released.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[7]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[7]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: State Released.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: State Released.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8]: Begin initialization.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: State Released.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[8]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[8]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[8]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: State Released.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: State Released.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9]: Begin initialization.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: State Released.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[9]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[9]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[9]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[9]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: State Released.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: State Released.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[10]: Begin initialization.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: State Released.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: State Released.\n", + "2024-08-28 18:39:01 [INFO] idaes.init.fs.D101: Rectification section initialization status optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:01 [INFO] idaes.init.fs.D101: Stripping section initialization status optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:01 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: State Released.\n", + "2024-08-28 18:39:01 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: State Released.\n", + "2024-08-28 18:39:01 [INFO] idaes.init.fs.D101: Column section initialization status optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:01 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: State Released.\n", + "2024-08-28 18:39:02 [INFO] idaes.init.fs.D101: Column section + Condenser initialization status optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:02 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: State Released.\n", + "2024-08-28 18:39:03 [INFO] idaes.init.fs.D101: Column section + Condenser + Reboiler initialization status optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:03 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: State Released.\n" + ] + } + ], + "source": [ + "# Add distillation column to the flowsheet\n", + "m.fs.D101 = TrayColumn(\n", + " number_of_trays=10,\n", + " feed_tray_location=5,\n", + " condenser_type=CondenserType.totalCondenser,\n", + " condenser_temperature_spec=TemperatureSpec.atBubblePoint,\n", + " property_package=m.fs.BT_params,\n", + ")\n", + "\n", + "# Connect the outlet from the heater H102 to the distillation column\n", + "m.fs.s11 = Arc(source=m.fs.H102.outlet, destination=m.fs.D101.feed)\n", + "\n", + "# Add the necessary equality constraints\n", + "TransformationFactory(\"network.expand_arcs\").apply_to(m)\n", + "\n", + "# Propagate the state\n", + "propagate_state(m.fs.s11)\n", + "\n", + "# Fix the reflux ratio, boilup ratio, and the condenser pressure\n", + "m.fs.D101.condenser.reflux_ratio.fix(0.5)\n", + "m.fs.D101.reboiler.boilup_ratio.fix(0.5)\n", + "m.fs.D101.condenser.condenser_pressure.fix(150000)\n", + "\n", + "# set scaling factors\n", + "# Set scaling factors for heat duty\n", + "iscale.set_scaling_factor(m.fs.D101.condenser.control_volume.heat, 1e-2)\n", + "iscale.set_scaling_factor(m.fs.D101.reboiler.control_volume.heat, 1e-2)\n", + "\n", + "# Set the scaling factors for the remaining variables and all constraints\n", + "iscale.calculate_scaling_factors(m.fs.D101)\n", + "\n", + "# Initialize the distillation column\n", + "m.fs.D101.initialize(outlvl=idaeslog.INFO)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:33 [INFO] idaes.init.fs.D101.stripping_section[10]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Adding expressions to compute capital and operating costs\n", + "\n", + "In this section, we will add a few Expressions that allow us to evaluate the performance. Expressions provide a convenient way of calculating certain values that are a function of the variables defined in the model. For more details on Expressions, please refer to: https://pyomo.readthedocs.io/en/stable/pyomo_modeling_components/Expressions.html" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:33 [INFO] idaes.init.fs.D101.stripping_section[10]: Initialization complete, status optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [], + "source": [ + "# Expression to compute the total cooling cost\n", + "m.fs.cooling_cost = Expression(\n", + " expr=0.25e-7 * (-m.fs.F101.heat_duty[0])\n", + " + 0.2e-7 * (-m.fs.D101.condenser.heat_duty[0])\n", + ")\n", + "\n", + "# Expression to compute the total heating cost\n", + "m.fs.heating_cost = Expression(\n", + " expr=2.2e-7 * m.fs.H101.heat_duty[0]\n", + " + 1.2e-7 * m.fs.H102.heat_duty[0]\n", + " + 1.9e-7 * m.fs.D101.reboiler.heat_duty[0]\n", + ")\n", + "\n", + "# Expression to compute the total operating cost\n", + "m.fs.operating_cost = Expression(\n", + " expr=(3600 * 24 * 365 * (m.fs.heating_cost + m.fs.cooling_cost))\n", + ")\n", + "\n", + "# Expression to compute the total capital cost\n", + "m.fs.capital_cost = Expression(expr=1e5 * m.fs.R101.volume[0])" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:33 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: State Released.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Solve the entire flowsheet" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:33 [INFO] idaes.init.fs.D101: Rectification section initialization status optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING: model contains export suffix 'scaling_factor' that contains 7\n", + "component keys that are not exported as part of the NL file. Skipping.\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 150 keys\n", + "that are not Var, Constraint, Objective, or the model. Skipping.\n", + "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", + "tol=1e-06\n", + "max_iter=200\n", + "\n", + "\n", + "******************************************************************************\n", + "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", + " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", + " For more information visit http://projects.coin-or.org/Ipopt\n", + "\n", + "This version of Ipopt was compiled from source code available at\n", + " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", + " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", + " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", + "\n", + "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", + " for large-scale scientific computation. All technical papers, sales and\n", + " publicity material resulting from use of the HSL codes within IPOPT must\n", + " contain the following acknowledgement:\n", + " HSL, a collection of Fortran codes for large-scale scientific\n", + " computation. See http://www.hsl.rl.ac.uk.\n", + "******************************************************************************\n", + "\n", + "This is Ipopt version 3.13.2, running with linear solver ma27.\n", + "\n", + "Number of nonzeros in equality constraint Jacobian...: 4042\n", + "Number of nonzeros in inequality constraint Jacobian.: 0\n", + "Number of nonzeros in Lagrangian Hessian.............: 2376\n", + "\n", + "Total number of variables............................: 1169\n", + " variables with only lower bounds: 112\n", + " variables with lower and upper bounds: 365\n", + " variables with only upper bounds: 0\n", + "Total number of equality constraints.................: 1169\n", + "Total number of inequality constraints...............: 0\n", + " inequality constraints with only lower bounds: 0\n", + " inequality constraints with lower and upper bounds: 0\n", + " inequality constraints with only upper bounds: 0\n", + "\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 0 0.0000000e+00 3.83e+04 1.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", + " 1 0.0000000e+00 8.70e+03 1.50e+03 -1.0 3.69e+04 - 9.71e-01 4.62e-01H 1\n", + " 2 0.0000000e+00 1.53e+03 1.56e+03 -1.0 6.75e+03 - 9.77e-01 4.89e-01h 1\n", + " 3 0.0000000e+00 1.37e+03 1.55e+05 -1.0 9.37e+03 - 9.90e-01 4.99e-01h 1\n", + " 4 0.0000000e+00 6.14e+02 2.31e+09 -1.0 6.09e+03 - 1.00e+00 9.81e-01h 1\n", + " 5 0.0000000e+00 5.32e+03 3.62e+10 -1.0 5.56e+02 - 1.00e+00 9.90e-01h 1\n", + " 6 0.0000000e+00 1.16e+03 7.80e+09 -1.0 5.36e+00 - 1.00e+00 1.00e+00h 1\n", + " 7 0.0000000e+00 5.96e+00 3.64e+07 -1.0 1.47e-03 - 1.00e+00 1.00e+00f 1\n", + " 8 0.0000000e+00 1.69e-04 8.15e+02 -1.0 6.77e-06 - 1.00e+00 1.00e+00h 1\n", + " 9 0.0000000e+00 7.45e-09 6.64e-03 -3.8 2.00e-07 - 1.00e+00 1.00e+00h 1\n", + "Cannot recompute multipliers for feasibility problem. Error in eq_mult_calculator\n", + "\n", + "Number of Iterations....: 9\n", + "\n", + " (scaled) (unscaled)\n", + "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Dual infeasibility......: 1.5042483516409773e+04 1.5042483516409773e+04\n", + "Constraint violation....: 2.9103830456733704e-11 7.4505805969238281e-09\n", + "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Overall NLP error.......: 2.9103830456733704e-11 1.5042483516409773e+04\n", + "\n", + "\n", + "Number of objective function evaluations = 11\n", + "Number of objective gradient evaluations = 10\n", + "Number of equality constraint evaluations = 11\n", + "Number of inequality constraint evaluations = 0\n", + "Number of equality constraint Jacobian evaluations = 10\n", + "Number of inequality constraint Jacobian evaluations = 0\n", + "Number of Lagrangian Hessian evaluations = 9\n", + "Total CPU secs in IPOPT (w/o function evaluations) = 0.083\n", + "Total CPU secs in NLP function evaluations = 0.013\n", + "\n", + "EXIT: Optimal Solution Found.\n" + ] + }, + { + "data": { + "text/plain": [ + "{'Problem': [{'Lower bound': -inf, 'Upper bound': inf, 'Number of objectives': 1, 'Number of constraints': 1169, 'Number of variables': 1169, 'Sense': 'unknown'}], 'Solver': [{'Status': 'ok', 'Message': 'Ipopt 3.13.2\\\\x3a Optimal Solution Found', 'Termination condition': 'optimal', 'Id': 0, 'Error rc': 0, 'Time': 0.2022566795349121}], 'Solution': [OrderedDict([('number of solutions', 0), ('number of solutions displayed', 0)])]}" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "solver.solve(m, tee=True)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:33 [INFO] idaes.init.fs.D101: Stripping section initialization status optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Analyze the Results of the Square Problem\n", + "\n", + "How much is the total cost (operating cost + capital cost), operating cost, capital cost, benzene purity in the distillate from the distilation column, and conversion of toluene in the reactor?" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:33 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: State Released.\n" - ] + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "total cost = $ 442301.47075252194\n", + "operating cost = $ 427596.73056805483\n", + "capital cost = $ 14704.740184467111\n", + "\n", + "Distillate flowrate = 0.16196898920633368 mol/s\n", + "Benzene purity = 89.4916166580088 %\n", + "Residue flowrate = 0.10515007120697904 mol/s\n", + "Toluene purity = 43.32260291055251 %\n", + "\n", + "Conversion = 75.0 %\n", + "\n", + "Overhead benzene loss in F101 = 42.161938483603194 %\n" + ] + } + ], + "source": [ + "print(\"total cost = $\", value(m.fs.capital_cost) + value(m.fs.operating_cost))\n", + "print(\"operating cost = $\", value(m.fs.operating_cost))\n", + "print(\"capital cost = $\", value(m.fs.capital_cost))\n", + "print()\n", + "print(\n", + " \"Distillate flowrate = \",\n", + " value(m.fs.D101.condenser.distillate.flow_mol[0]()),\n", + " \"mol/s\",\n", + ")\n", + "print(\n", + " \"Benzene purity = \",\n", + " 100 * value(m.fs.D101.condenser.distillate.mole_frac_comp[0, \"benzene\"]),\n", + " \"%\",\n", + ")\n", + "print(\"Residue flowrate = \", value(m.fs.D101.reboiler.bottoms.flow_mol[0]()), \"mol/s\")\n", + "print(\n", + " \"Toluene purity = \",\n", + " 100 * value(m.fs.D101.reboiler.bottoms.mole_frac_comp[0, \"toluene\"]),\n", + " \"%\",\n", + ")\n", + "print()\n", + "print(\"Conversion = \", 100 * value(m.fs.R101.conversion), \"%\")\n", + "print()\n", + "print(\n", + " \"Overhead benzene loss in F101 = \",\n", + " 100\n", + " * value(m.fs.F101.vap_outlet.flow_mol_phase_comp[0, \"Vap\", \"benzene\"])\n", + " / value(m.fs.R101.outlet.flow_mol_phase_comp[0, \"Vap\", \"benzene\"]),\n", + " \"%\",\n", + ")" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:33 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: State Released.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Get the state of the streams entering and leaving the reactor R101" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:33 [INFO] idaes.init.fs.D101: Column section initialization status optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 57, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "====================================================================================\n", + "Unit : fs.R101 Time: 0.0\n", + "------------------------------------------------------------------------------------\n", + " Unit Performance\n", + "\n", + " Variables: \n", + "\n", + " Key : Value : Units : Fixed : Bounds\n", + " Heat Duty : 0.0000 : watt : True : (None, None)\n", + " Volume : 0.14705 : meter ** 3 : False : (None, None)\n", + "\n", + "------------------------------------------------------------------------------------\n", + " Stream Table\n", + " Units Inlet Outlet \n", + " flow_mol_phase_comp ('Liq', 'benzene') mole / second 1.2993e-07 1.2993e-07\n", + " flow_mol_phase_comp ('Liq', 'toluene') mole / second 8.4147e-07 8.4147e-07\n", + " flow_mol_phase_comp ('Liq', 'methane') mole / second 1.0000e-12 1.0000e-12\n", + " flow_mol_phase_comp ('Liq', 'hydrogen') mole / second 1.0000e-12 1.0000e-12\n", + " flow_mol_phase_comp ('Vap', 'benzene') mole / second 0.11936 0.35374\n", + " flow_mol_phase_comp ('Vap', 'toluene') mole / second 0.31252 0.078129\n", + " flow_mol_phase_comp ('Vap', 'methane') mole / second 1.0377 1.2721\n", + " flow_mol_phase_comp ('Vap', 'hydrogen') mole / second 0.56260 0.32821\n", + " temperature kelvin 600.00 771.85\n", + " pressure pascal 3.5000e+05 3.5000e+05\n", + "====================================================================================\n" + ] + } + ], + "source": [ + "m.fs.R101.report()" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:33 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: State Released.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Get the state of the streams entering and leaving the reactor R101" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:33 [INFO] idaes.init.fs.D101: Column section + Condenser initialization status optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "====================================================================================\n", + "Unit : fs.F101 Time: 0.0\n", + "------------------------------------------------------------------------------------\n", + " Unit Performance\n", + "\n", + " Variables: \n", + "\n", + " Key : Value : Units : Fixed : Bounds\n", + " Heat Duty : -70343. : watt : False : (None, None)\n", + " Pressure Change : 0.0000 : pascal : True : (None, None)\n", + "\n", + "------------------------------------------------------------------------------------\n", + " Stream Table\n", + " Units Inlet Vapor Outlet Liquid Outlet\n", + " flow_mol_phase_comp ('Liq', 'benzene') mole / second 1.2993e-07 1.0000e-08 0.20460 \n", + " flow_mol_phase_comp ('Liq', 'toluene') mole / second 8.4147e-07 1.0000e-08 0.062520 \n", + " flow_mol_phase_comp ('Liq', 'methane') mole / second 1.0000e-12 1.0000e-08 2.6712e-07 \n", + " flow_mol_phase_comp ('Liq', 'hydrogen') mole / second 1.0000e-12 1.0000e-08 2.6712e-07 \n", + " flow_mol_phase_comp ('Vap', 'benzene') mole / second 0.35374 0.14915 1.0000e-08 \n", + " flow_mol_phase_comp ('Vap', 'toluene') mole / second 0.078129 0.015610 1.0000e-08 \n", + " flow_mol_phase_comp ('Vap', 'methane') mole / second 1.2721 1.2721 1.0000e-08 \n", + " flow_mol_phase_comp ('Vap', 'hydrogen') mole / second 0.32821 0.32821 1.0000e-08 \n", + " temperature kelvin 771.85 325.00 325.00 \n", + " pressure pascal 3.5000e+05 3.5000e+05 3.5000e+05 \n", + "====================================================================================\n" + ] + } + ], + "source": [ + "m.fs.F101.report()" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:33 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: State Released.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, let's look at how much benzene we are losing with the light gases out of F101. IDAES has tools for creating stream tables based on the `Arcs` and/or `Ports` in a flowsheet. Let us create and print a simple stream table showing the stream leaving the reactor and the vapor stream from F101.\n", + "\n", + "
\n", + "Inline Exercise:\n", + "How much benzene are we losing in the F101 vapor outlet stream?\n", + "
" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:33 [INFO] idaes.init.fs.D101: Column section + Condenser + Reboiler initialization status optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 59, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Units Reactor Light Gases\n", + "flow_mol_phase_comp ('Liq', 'benzene') mole / second 1.2993e-07 1.0000e-08 \n", + "flow_mol_phase_comp ('Liq', 'toluene') mole / second 8.4147e-07 1.0000e-08 \n", + "flow_mol_phase_comp ('Liq', 'methane') mole / second 1.0000e-12 1.0000e-08 \n", + "flow_mol_phase_comp ('Liq', 'hydrogen') mole / second 1.0000e-12 1.0000e-08 \n", + "flow_mol_phase_comp ('Vap', 'benzene') mole / second 0.35374 0.14915 \n", + "flow_mol_phase_comp ('Vap', 'toluene') mole / second 0.078129 0.015610 \n", + "flow_mol_phase_comp ('Vap', 'methane') mole / second 1.2721 1.2721 \n", + "flow_mol_phase_comp ('Vap', 'hydrogen') mole / second 0.32821 0.32821 \n", + "temperature kelvin 771.85 325.00 \n", + "pressure pascal 3.5000e+05 3.5000e+05 \n" + ] + } + ], + "source": [ + "from idaes.core.util.tables import (\n", + " create_stream_table_dataframe,\n", + " stream_table_dataframe_to_string,\n", + ")\n", + "\n", + "st = create_stream_table_dataframe({\"Reactor\": m.fs.s05, \"Light Gases\": m.fs.s06})\n", + "print(stream_table_dataframe_to_string(st))" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:33 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: State Released.\n" - ] - } - ], - "source": [ - "# Add distillation column to the flowsheet\n", - "m.fs.D101 = TrayColumn(\n", - " number_of_trays=10,\n", - " feed_tray_location=5,\n", - " condenser_type=CondenserType.totalCondenser,\n", - " condenser_temperature_spec=TemperatureSpec.atBubblePoint,\n", - " property_package=m.fs.BT_params,\n", - ")\n", - "\n", - "# Connect the outlet from the heater H102 to the distillation column\n", - "m.fs.s11 = Arc(source=m.fs.H102.outlet, destination=m.fs.D101.feed)\n", - "\n", - "# Add the necessary equality constraints\n", - "TransformationFactory(\"network.expand_arcs\").apply_to(m)\n", - "\n", - "# Propagate the state\n", - "propagate_state(m.fs.s11)\n", - "\n", - "# Fix the reflux ratio, boilup ratio, and the condenser pressure\n", - "m.fs.D101.condenser.reflux_ratio.fix(0.5)\n", - "m.fs.D101.reboiler.boilup_ratio.fix(0.5)\n", - "m.fs.D101.condenser.condenser_pressure.fix(150000)\n", - "\n", - "# set scaling factors\n", - "# Set scaling factors for heat duty\n", - "iscale.set_scaling_factor(m.fs.D101.condenser.control_volume.heat, 1e-2)\n", - "iscale.set_scaling_factor(m.fs.D101.reboiler.control_volume.heat, 1e-2)\n", - "\n", - "# Set the scaling factors for the remaining variables and all constraints\n", - "iscale.calculate_scaling_factors(m.fs.D101)\n", - "\n", - "# Initialize the distillation column\n", - "m.fs.D101.initialize(outlvl=idaeslog.INFO)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Adding expressions to compute capital and operating costs\n", - "\n", - "In this section, we will add a few Expressions that allow us to evaluate the performance. Expressions provide a convenient way of calculating certain values that are a function of the variables defined in the model. For more details on Expressions, please refer to: https://pyomo.readthedocs.io/en/stable/pyomo_modeling_components/Expressions.html" - ] - }, - { - "cell_type": "code", - "execution_count": 41, - "metadata": {}, - "outputs": [], - "source": [ - "# Expression to compute the total cooling cost\n", - "m.fs.cooling_cost = Expression(\n", - " expr=0.25e-7 * (-m.fs.F101.heat_duty[0])\n", - " + 0.2e-7 * (-m.fs.D101.condenser.heat_duty[0])\n", - ")\n", - "\n", - "# Expression to compute the total heating cost\n", - "m.fs.heating_cost = Expression(\n", - " expr=2.2e-7 * m.fs.H101.heat_duty[0]\n", - " + 1.2e-7 * m.fs.H102.heat_duty[0]\n", - " + 1.9e-7 * m.fs.D101.reboiler.heat_duty[0]\n", - ")\n", - "\n", - "# Expression to compute the total operating cost\n", - "m.fs.operating_cost = Expression(\n", - " expr=(3600 * 24 * 365 * (m.fs.heating_cost + m.fs.cooling_cost))\n", - ")\n", - "\n", - "# Expression to compute the total capital cost\n", - "m.fs.capital_cost = Expression(expr=1e5 * m.fs.R101.volume[0])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Solve the entire flowsheet" - ] - }, - { - "cell_type": "code", - "execution_count": 42, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING: model contains export suffix\n", - "'fs.D101.condenser.control_volume.properties_out[0.0].scaling_factor' that\n", - "contains 1 component keys that are not exported as part of the NL file.\n", - "Skipping.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "Inline Exercise:\n", + "You can query additional variables here if you like. \n", + "\n", + "Use Shift+Enter to run the cell once you have typed in your code. \n", + "
" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING: model contains export suffix\n", - "'fs.H102.control_volume.properties_out[0.0].scaling_factor' that contains 1\n", - "component keys that are not exported as part of the NL file. Skipping.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Optimization\n", + "\n", + "\n", + "We saw from the results above that the total operating cost for the base case was $442,297 per year. We are producing 0.162 mol/s of benzene at a purity of 89.5%. However, we are losing around 43.3% of benzene in F101 vapor outlet stream. \n", + "\n", + "Let us try to minimize this cost such that:\n", + "- we are producing at least 0.18 mol/s of benzene as distillate i.e. our product stream\n", + "- purity of benzene i.e. the mole fraction of benzene in the distillate is at least 99%\n", + "- restricting the benzene loss in F101 vapor outlet to less than 20%\n", + "\n", + "For this problem, our decision variables are as follows:\n", + "- H101 outlet temperature\n", + "- R101 outlet temperature\n", + "- F101 outlet temperature\n", + "- H102 outlet temperature\n", + "- Condenser pressure\n", + "- reflux ratio\n", + "- boilup ratio\n" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING: model contains export suffix 'fs.H102.control_volume.scaling_factor'\n", - "that contains 1 component keys that are not exported as part of the NL file.\n", - "Skipping.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us declare our objective function for this problem. " + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING: model contains export suffix\n", - "'fs.F101.control_volume.properties_out[0.0].scaling_factor' that contains 26\n", - "component keys that are not exported as part of the NL file. Skipping.\n" - ] + "cell_type": "code", + "execution_count": 60, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.objective = Objective(expr=m.fs.operating_cost + m.fs.capital_cost)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING: model contains export suffix\n", - "'fs.F101.control_volume.properties_in[0.0].scaling_factor' that contains 25\n", - "component keys that are not exported as part of the NL file. Skipping.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, we need to unfix the decision variables as we had solved a square problem (degrees of freedom = 0) until now. " + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING: model contains export suffix 'fs.F101.control_volume.scaling_factor'\n", - "that contains 1 component keys that are not exported as part of the NL file.\n", - "Skipping.\n" - ] + "cell_type": "code", + "execution_count": 61, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.H101.outlet.temperature.unfix()\n", + "m.fs.R101.conversion.unfix()\n", + "m.fs.F101.vap_outlet.temperature.unfix()\n", + "m.fs.D101.condenser.condenser_pressure.unfix()\n", + "m.fs.D101.condenser.reflux_ratio.unfix()\n", + "m.fs.D101.reboiler.boilup_ratio.unfix()" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING: model contains export suffix\n", - "'fs.R101.control_volume.properties_out[0.0].scaling_factor' that contains 25\n", - "component keys that are not exported as part of the NL file. Skipping.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "Inline Exercise:\n", + "Let us now unfix the remaining variable: the temperature of the outlet from H102\n", + "\n", + "Use Shift+Enter to run the cell once you have typed in your code. \n", + "
\n", + "\n" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING: model contains export suffix\n", - "'fs.R101.control_volume.properties_in[0.0].scaling_factor' that contains 25\n", - "component keys that are not exported as part of the NL file. Skipping.\n" - ] + "cell_type": "code", + "execution_count": 63, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "# Todo: Unfix the temperature of the outlet from H102\n", + "m.fs.H102.outlet.temperature.unfix()" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING: model contains export suffix 'fs.R101.control_volume.scaling_factor'\n", - "that contains 2 component keys that are not exported as part of the NL file.\n", - "Skipping.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we need to set bounds on these decision variables to values shown below:\n", + "\n", + " - H101 outlet temperature [500, 600] K\n", + " - R101 outlet temperature [600, 900] K\n", + " - F101 outlet temperature [298, 450] K\n", + " - H102 outlet temperature [350, 400] K\n", + " - D101 condenser pressure [101325, 150000] Pa\n", + " - D101 reflux ratio [0.1, 5]\n", + " - D101 boilup ratio [0.1, 5]" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING: model contains export suffix\n", - "'fs.H101.control_volume.properties_out[0.0].scaling_factor' that contains 26\n", - "component keys that are not exported as part of the NL file. Skipping.\n" - ] + "cell_type": "code", + "execution_count": 64, + "metadata": {}, + "outputs": [], + "source": [ + "# Set bounds on the temperature of the outlet from H101\n", + "m.fs.H101.outlet.temperature[0].setlb(500)\n", + "m.fs.H101.outlet.temperature[0].setub(600)\n", + "\n", + "# Set bounds on the temperature of the outlet from R101\n", + "m.fs.R101.outlet.temperature[0].setlb(600)\n", + "m.fs.R101.outlet.temperature[0].setub(900)\n", + "\n", + "# Set bounds on the volume of the reactor R101\n", + "m.fs.R101.volume[0].setlb(0)\n", + "\n", + "# Set bounds on the temperature of the vapor outlet from F101\n", + "m.fs.F101.vap_outlet.temperature[0].setlb(298)\n", + "m.fs.F101.vap_outlet.temperature[0].setub(450.0)\n", + "\n", + "# Set bounds on the temperature of the outlet from H102\n", + "m.fs.H102.outlet.temperature[0].setlb(350)\n", + "m.fs.H102.outlet.temperature[0].setub(400)\n", + "\n", + "# Set bounds on the pressure inside the condenser\n", + "m.fs.D101.condenser.condenser_pressure.setlb(101325)\n", + "m.fs.D101.condenser.condenser_pressure.setub(150000)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING: model contains export suffix\n", - "'fs.H101.control_volume.properties_in[0.0].scaling_factor' that contains 25\n", - "component keys that are not exported as part of the NL file. Skipping.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "Inline Exercise:\n", + "Now, set the bounds for the D101 reflux ratio and boilup ratio.\n", + "\n", + "Use Shift+Enter to run the cell once you have typed in your code. \n", + "
" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", - "tol=1e-06\n", - "max_iter=200\n", - "\n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 4042\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 2376\n", - "\n", - "Total number of variables............................: 1169\n", - " variables with only lower bounds: 112\n", - " variables with lower and upper bounds: 365\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 1169\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 3.83e+04 1.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 8.70e+03 1.50e+03 -1.0 3.69e+04 - 9.71e-01 4.62e-01H 1\n", - " 2 0.0000000e+00 1.53e+03 1.56e+03 -1.0 6.75e+03 - 9.77e-01 4.89e-01h 1\n", - " 3 0.0000000e+00 1.37e+03 1.55e+05 -1.0 9.37e+03 - 9.90e-01 4.99e-01h 1\n", - " 4 0.0000000e+00 6.14e+02 2.31e+09 -1.0 6.09e+03 - 1.00e+00 9.81e-01h 1\n", - " 5 0.0000000e+00 5.32e+03 3.62e+10 -1.0 5.56e+02 - 1.00e+00 9.90e-01h 1\n", - " 6 0.0000000e+00 1.16e+03 7.80e+09 -1.0 5.36e+00 - 1.00e+00 1.00e+00h 1\n", - " 7 0.0000000e+00 5.96e+00 3.64e+07 -1.0 1.47e-03 - 1.00e+00 1.00e+00f 1\n", - " 8 0.0000000e+00 1.69e-04 8.15e+02 -1.0 6.77e-06 - 1.00e+00 1.00e+00h 1\n", - " 9 0.0000000e+00 1.27e-04 7.49e+06 -3.8 5.68e-08 - 1.00e+00 2.50e-01h 3\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 10 0.0000000e+00 9.51e-05 5.62e+06 -3.8 1.19e-06 - 1.00e+00 2.50e-01h 3\n", - "Cannot recompute multipliers for feasibility problem. Error in eq_mult_calculator\n", - "\n", - "Number of Iterations....: 10\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 5.6320546602153890e+06 5.6320546602153890e+06\n", - "Constraint violation....: 2.9103830456733704e-11 9.5061208412516862e-05\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 2.9103830456733704e-11 5.6320546602153890e+06\n", - "\n", - "\n", - "Number of objective function evaluations = 18\n", - "Number of objective gradient evaluations = 11\n", - "Number of equality constraint evaluations = 18\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 11\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 10\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.011\n", - "Total CPU secs in NLP function evaluations = 0.010\n", - "\n", - "EXIT: Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 66, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "# Todo: Set bounds on the reflux ratio\n", + "m.fs.D101.condenser.reflux_ratio.setlb(0.1)\n", + "m.fs.D101.condenser.reflux_ratio.setub(5)\n", + "\n", + "# Todo: Set bounds on the boilup ratio\n", + "m.fs.D101.reboiler.boilup_ratio.setlb(0.1)\n", + "m.fs.D101.reboiler.boilup_ratio.setub(5)" + ] }, { - "data": { - "text/plain": [ - "{'Problem': [{'Lower bound': -inf, 'Upper bound': inf, 'Number of objectives': 1, 'Number of constraints': 1169, 'Number of variables': 1169, 'Sense': 'unknown'}], 'Solver': [{'Status': 'ok', 'Message': 'Ipopt 3.13.2\\\\x3a Optimal Solution Found', 'Termination condition': 'optimal', 'Id': 0, 'Error rc': 0, 'Time': 0.08404064178466797}], 'Solution': [OrderedDict([('number of solutions', 0), ('number of solutions displayed', 0)])]}" + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, the only things left to define are our constraints on overhead loss in F101, distillate flowrate and its purity. Let us first look at defining a constraint for the overhead loss in F101 where we are restricting the benzene leaving the vapor stream to less than 20 % of the benzene available in the reactor outlet. " ] - }, - "execution_count": 42, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "solver.solve(m, tee=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Analyze the Results of the Square Problem\n", - "\n", - "How much is the total cost (operating cost + capital cost), operating cost, capital cost, benzene purity in the distillate from the distilation column, and conversion of toluene in the reactor?" - ] - }, - { - "cell_type": "code", - "execution_count": 43, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "total cost = $ 442301.4707525308\n", - "operating cost = $ 427596.7305680824\n", - "capital cost = $ 14704.74018444835\n", - "\n", - "Distillate flowrate = 0.16196898920642744 mol/s\n", - "Benzene purity = 89.49161665800828 %\n", - "Residue flowrate = 0.1051500712068829 mol/s\n", - "Toluene purity = 43.32260291055269 %\n", - "\n", - "Conversion = 75.0 %\n", - "\n", - "Overhead benzene loss in F101 = 42.16193848360187 %\n" - ] - } - ], - "source": [ - "print(\"total cost = $\", value(m.fs.capital_cost) + value(m.fs.operating_cost))\n", - "print(\"operating cost = $\", value(m.fs.operating_cost))\n", - "print(\"capital cost = $\", value(m.fs.capital_cost))\n", - "print()\n", - "print(\n", - " \"Distillate flowrate = \",\n", - " value(m.fs.D101.condenser.distillate.flow_mol[0]()),\n", - " \"mol/s\",\n", - ")\n", - "print(\n", - " \"Benzene purity = \",\n", - " 100 * value(m.fs.D101.condenser.distillate.mole_frac_comp[0, \"benzene\"]),\n", - " \"%\",\n", - ")\n", - "print(\"Residue flowrate = \", value(m.fs.D101.reboiler.bottoms.flow_mol[0]()), \"mol/s\")\n", - "print(\n", - " \"Toluene purity = \",\n", - " 100 * value(m.fs.D101.reboiler.bottoms.mole_frac_comp[0, \"toluene\"]),\n", - " \"%\",\n", - ")\n", - "print()\n", - "print(\"Conversion = \", 100 * value(m.fs.R101.conversion), \"%\")\n", - "print()\n", - "print(\n", - " \"Overhead benzene loss in F101 = \",\n", - " 100\n", - " * value(m.fs.F101.vap_outlet.flow_mol_phase_comp[0, \"Vap\", \"benzene\"])\n", - " / value(m.fs.R101.outlet.flow_mol_phase_comp[0, \"Vap\", \"benzene\"]),\n", - " \"%\",\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Get the state of the streams entering and leaving the reactor R101" - ] - }, - { - "cell_type": "code", - "execution_count": 44, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "====================================================================================\n", - "Unit : fs.R101 Time: 0.0\n", - "------------------------------------------------------------------------------------\n", - " Unit Performance\n", - "\n", - " Variables: \n", - "\n", - " Key : Value : Units : Fixed : Bounds\n", - " Heat Duty : 0.0000 : watt : True : (None, None)\n", - " Volume : 0.14705 : meter ** 3 : False : (None, None)\n", - "\n", - "------------------------------------------------------------------------------------\n", - " Stream Table\n", - " Units Inlet Outlet \n", - " flow_mol_phase_comp ('Liq', 'benzene') mole / second 1.2993e-07 1.2993e-07\n", - " flow_mol_phase_comp ('Liq', 'toluene') mole / second 8.4147e-07 8.4147e-07\n", - " flow_mol_phase_comp ('Liq', 'methane') mole / second 1.0000e-12 1.0000e-12\n", - " flow_mol_phase_comp ('Liq', 'hydrogen') mole / second 1.0000e-12 1.0000e-12\n", - " flow_mol_phase_comp ('Vap', 'benzene') mole / second 0.11936 0.35374\n", - " flow_mol_phase_comp ('Vap', 'toluene') mole / second 0.31252 0.078129\n", - " flow_mol_phase_comp ('Vap', 'methane') mole / second 1.0377 1.2721\n", - " flow_mol_phase_comp ('Vap', 'hydrogen') mole / second 0.56260 0.32821\n", - " temperature kelvin 600.00 771.85\n", - " pressure pascal 3.5000e+05 3.5000e+05\n", - "====================================================================================\n" - ] - } - ], - "source": [ - "m.fs.R101.report()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Get the state of the streams entering and leaving the reactor R101" - ] - }, - { - "cell_type": "code", - "execution_count": 45, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "====================================================================================\n", - "Unit : fs.F101 Time: 0.0\n", - "------------------------------------------------------------------------------------\n", - " Unit Performance\n", - "\n", - " Variables: \n", - "\n", - " Key : Value : Units : Fixed : Bounds\n", - " Heat Duty : -70343. : watt : False : (None, None)\n", - " Pressure Change : 0.0000 : pascal : True : (None, None)\n", - "\n", - "------------------------------------------------------------------------------------\n", - " Stream Table\n", - " Units Inlet Vapor Outlet Liquid Outlet\n", - " flow_mol_phase_comp ('Liq', 'benzene') mole / second 1.2993e-07 1.0000e-08 0.20460 \n", - " flow_mol_phase_comp ('Liq', 'toluene') mole / second 8.4147e-07 1.0000e-08 0.062520 \n", - " flow_mol_phase_comp ('Liq', 'methane') mole / second 1.0000e-12 1.0000e-08 2.6712e-07 \n", - " flow_mol_phase_comp ('Liq', 'hydrogen') mole / second 1.0000e-12 1.0000e-08 2.6712e-07 \n", - " flow_mol_phase_comp ('Vap', 'benzene') mole / second 0.35374 0.14915 1.0000e-08 \n", - " flow_mol_phase_comp ('Vap', 'toluene') mole / second 0.078129 0.015610 1.0000e-08 \n", - " flow_mol_phase_comp ('Vap', 'methane') mole / second 1.2721 1.2721 1.0000e-08 \n", - " flow_mol_phase_comp ('Vap', 'hydrogen') mole / second 0.32821 0.32821 1.0000e-08 \n", - " temperature kelvin 771.85 325.00 325.00 \n", - " pressure pascal 3.5000e+05 3.5000e+05 3.5000e+05 \n", - "====================================================================================\n" - ] - } - ], - "source": [ - "m.fs.F101.report()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Next, let's look at how much benzene we are losing with the light gases out of F101. IDAES has tools for creating stream tables based on the `Arcs` and/or `Ports` in a flowsheet. Let us create and print a simple stream table showing the stream leaving the reactor and the vapor stream from F101.\n", - "\n", - "
\n", - "Inline Exercise:\n", - "How much benzene are we losing in the F101 vapor outlet stream?\n", - "
" - ] - }, - { - "cell_type": "code", - "execution_count": 46, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " Units Reactor Light Gases\n", - "flow_mol_phase_comp ('Liq', 'benzene') mole / second 1.2993e-07 1.0000e-08 \n", - "flow_mol_phase_comp ('Liq', 'toluene') mole / second 8.4147e-07 1.0000e-08 \n", - "flow_mol_phase_comp ('Liq', 'methane') mole / second 1.0000e-12 1.0000e-08 \n", - "flow_mol_phase_comp ('Liq', 'hydrogen') mole / second 1.0000e-12 1.0000e-08 \n", - "flow_mol_phase_comp ('Vap', 'benzene') mole / second 0.35374 0.14915 \n", - "flow_mol_phase_comp ('Vap', 'toluene') mole / second 0.078129 0.015610 \n", - "flow_mol_phase_comp ('Vap', 'methane') mole / second 1.2721 1.2721 \n", - "flow_mol_phase_comp ('Vap', 'hydrogen') mole / second 0.32821 0.32821 \n", - "temperature kelvin 771.85 325.00 \n", - "pressure pascal 3.5000e+05 3.5000e+05 \n" - ] - } - ], - "source": [ - "from idaes.core.util.tables import (\n", - " create_stream_table_dataframe,\n", - " stream_table_dataframe_to_string,\n", - ")\n", - "\n", - "st = create_stream_table_dataframe({\"Reactor\": m.fs.s05, \"Light Gases\": m.fs.s06})\n", - "print(stream_table_dataframe_to_string(st))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "Inline Exercise:\n", - "You can query additional variables here if you like. \n", - "\n", - "Use Shift+Enter to run the cell once you have typed in your code. \n", - "
" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Optimization\n", - "\n", - "\n", - "We saw from the results above that the total operating cost for the base case was $442,297 per year. We are producing 0.162 mol/s of benzene at a purity of 89.5%. However, we are losing around 43.3% of benzene in F101 vapor outlet stream. \n", - "\n", - "Let us try to minimize this cost such that:\n", - "- we are producing at least 0.18 mol/s of benzene as distillate i.e. our product stream\n", - "- purity of benzene i.e. the mole fraction of benzene in the distillate is at least 99%\n", - "- restricting the benzene loss in F101 vapor outlet to less than 20%\n", - "\n", - "For this problem, our decision variables are as follows:\n", - "- H101 outlet temperature\n", - "- R101 outlet temperature\n", - "- F101 outlet temperature\n", - "- H102 outlet temperature\n", - "- Condenser pressure\n", - "- reflux ratio\n", - "- boilup ratio\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us declare our objective function for this problem. " - ] - }, - { - "cell_type": "code", - "execution_count": 47, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.objective = Objective(expr=m.fs.operating_cost + m.fs.capital_cost)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now, we need to unfix the decision variables as we had solved a square problem (degrees of freedom = 0) until now. " - ] - }, - { - "cell_type": "code", - "execution_count": 48, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.H101.outlet.temperature.unfix()\n", - "m.fs.R101.conversion.unfix()\n", - "m.fs.F101.vap_outlet.temperature.unfix()\n", - "m.fs.D101.condenser.condenser_pressure.unfix()\n", - "m.fs.D101.condenser.reflux_ratio.unfix()\n", - "m.fs.D101.reboiler.boilup_ratio.unfix()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "Inline Exercise:\n", - "Let us now unfix the remaining variable: the temperature of the outlet from H102\n", - "\n", - "Use Shift+Enter to run the cell once you have typed in your code. \n", - "
\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 49, - "metadata": { - "tags": [ - "solution" - ] - }, - "outputs": [], - "source": [ - "# Todo: Unfix the temperature of the outlet from H102\n", - "m.fs.H102.outlet.temperature.unfix()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Next, we need to set bounds on these decision variables to values shown below:\n", - "\n", - " - H101 outlet temperature [500, 600] K\n", - " - R101 outlet temperature [600, 900] K\n", - " - F101 outlet temperature [298, 450] K\n", - " - H102 outlet temperature [350, 400] K\n", - " - D101 condenser pressure [101325, 150000] Pa\n", - " - D101 reflux ratio [0.1, 5]\n", - " - D101 boilup ratio [0.1, 5]" - ] - }, - { - "cell_type": "code", - "execution_count": 50, - "metadata": {}, - "outputs": [], - "source": [ - "# Set bounds on the temperature of the outlet from H101\n", - "m.fs.H101.outlet.temperature[0].setlb(500)\n", - "m.fs.H101.outlet.temperature[0].setub(600)\n", - "\n", - "# Set bounds on the temperature of the outlet from R101\n", - "m.fs.R101.outlet.temperature[0].setlb(600)\n", - "m.fs.R101.outlet.temperature[0].setub(900)\n", - "\n", - "# Set bounds on the volume of the reactor R101\n", - "m.fs.R101.volume[0].setlb(0)\n", - "\n", - "# Set bounds on the temperature of the vapor outlet from F101\n", - "m.fs.F101.vap_outlet.temperature[0].setlb(298)\n", - "m.fs.F101.vap_outlet.temperature[0].setub(450.0)\n", - "\n", - "# Set bounds on the temperature of the outlet from H102\n", - "m.fs.H102.outlet.temperature[0].setlb(350)\n", - "m.fs.H102.outlet.temperature[0].setub(400)\n", - "\n", - "# Set bounds on the pressure inside the condenser\n", - "m.fs.D101.condenser.condenser_pressure.setlb(101325)\n", - "m.fs.D101.condenser.condenser_pressure.setub(150000)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "Inline Exercise:\n", - "Now, set the bounds for the D101 reflux ratio and boilup ratio.\n", - "\n", - "Use Shift+Enter to run the cell once you have typed in your code. \n", - "
" - ] - }, - { - "cell_type": "code", - "execution_count": 51, - "metadata": { - "tags": [ - "solution" - ] - }, - "outputs": [], - "source": [ - "# Todo: Set bounds on the reflux ratio\n", - "m.fs.D101.condenser.reflux_ratio.setlb(0.1)\n", - "m.fs.D101.condenser.reflux_ratio.setub(5)\n", - "\n", - "# Todo: Set bounds on the boilup ratio\n", - "m.fs.D101.reboiler.boilup_ratio.setlb(0.1)\n", - "m.fs.D101.reboiler.boilup_ratio.setub(5)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now, the only things left to define are our constraints on overhead loss in F101, distillate flowrate and its purity. Let us first look at defining a constraint for the overhead loss in F101 where we are restricting the benzene leaving the vapor stream to less than 20 % of the benzene available in the reactor outlet. " - ] - }, - { - "cell_type": "code", - "execution_count": 52, - "metadata": {}, - "outputs": [], - "source": [ - "# Ensure that the overhead loss of benzene from F101 <= 20%\n", - "m.fs.overhead_loss = Constraint(\n", - " expr=m.fs.F101.vap_outlet.flow_mol_phase_comp[0, \"Vap\", \"benzene\"]\n", - " <= 0.20 * m.fs.R101.outlet.flow_mol_phase_comp[0, \"Vap\", \"benzene\"]\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "Inline Exercise:\n", - "Now, add the constraint such that we are producing at least 0.18 mol/s of benzene in the product stream which is the distillate of D101. Let us name this constraint as m.fs.product_flow. \n", - "\n", - "Use Shift+Enter to run the cell once you have typed in your code. \n", - "
" - ] - }, - { - "cell_type": "code", - "execution_count": 53, - "metadata": { - "tags": [ - "solution" - ] - }, - "outputs": [], - "source": [ - "# Todo: Add minimum product flow constraint\n", - "m.fs.product_flow = Constraint(expr=m.fs.D101.condenser.distillate.flow_mol[0] >= 0.18)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us add the final constraint on product purity or the mole fraction of benzene in the distillate such that it is at least greater than 99%. " - ] - }, - { - "cell_type": "code", - "execution_count": 54, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.product_purity = Constraint(\n", - " expr=m.fs.D101.condenser.distillate.mole_frac_comp[0, \"benzene\"] >= 0.99\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "We have now defined the optimization problem and we are now ready to solve this problem. \n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 55, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING: model contains export suffix 'fs.H102.control_volume.scaling_factor'\n", - "that contains 1 component keys that are not exported as part of the NL file.\n", - "Skipping.\n" - ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING: model contains export suffix\n", - "'fs.F101.control_volume.properties_out[0.0].scaling_factor' that contains 25\n", - "component keys that are not exported as part of the NL file. Skipping.\n" - ] + "cell_type": "code", + "execution_count": 67, + "metadata": {}, + "outputs": [], + "source": [ + "# Ensure that the overhead loss of benzene from F101 <= 20%\n", + "m.fs.overhead_loss = Constraint(\n", + " expr=m.fs.F101.vap_outlet.flow_mol_phase_comp[0, \"Vap\", \"benzene\"]\n", + " <= 0.20 * m.fs.R101.outlet.flow_mol_phase_comp[0, \"Vap\", \"benzene\"]\n", + ")" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING: model contains export suffix\n", - "'fs.F101.control_volume.properties_in[0.0].scaling_factor' that contains 25\n", - "component keys that are not exported as part of the NL file. Skipping.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "Inline Exercise:\n", + "Now, add the constraint such that we are producing at least 0.18 mol/s of benzene in the product stream which is the distillate of D101. Let us name this constraint as m.fs.product_flow. \n", + "\n", + "Use Shift+Enter to run the cell once you have typed in your code. \n", + "
" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING: model contains export suffix 'fs.F101.control_volume.scaling_factor'\n", - "that contains 1 component keys that are not exported as part of the NL file.\n", - "Skipping.\n" - ] + "cell_type": "code", + "execution_count": 69, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "# Todo: Add minimum product flow constraint\n", + "m.fs.product_flow = Constraint(expr=m.fs.D101.condenser.distillate.flow_mol[0] >= 0.18)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING: model contains export suffix\n", - "'fs.R101.control_volume.properties_out[0.0].scaling_factor' that contains 25\n", - "component keys that are not exported as part of the NL file. Skipping.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us add the final constraint on product purity or the mole fraction of benzene in the distillate such that it is at least greater than 99%. " + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING: model contains export suffix\n", - "'fs.R101.control_volume.properties_in[0.0].scaling_factor' that contains 25\n", - "component keys that are not exported as part of the NL file. Skipping.\n" - ] + "cell_type": "code", + "execution_count": 70, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.product_purity = Constraint(\n", + " expr=m.fs.D101.condenser.distillate.mole_frac_comp[0, \"benzene\"] >= 0.99\n", + ")" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING: model contains export suffix 'fs.R101.control_volume.scaling_factor'\n", - "that contains 2 component keys that are not exported as part of the NL file.\n", - "Skipping.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "We have now defined the optimization problem and we are now ready to solve this problem. \n", + "\n", + "\n" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING: model contains export suffix\n", - "'fs.H101.control_volume.properties_out[0.0].scaling_factor' that contains 25\n", - "component keys that are not exported as part of the NL file. Skipping.\n" - ] + "cell_type": "code", + "execution_count": 71, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING: model contains export suffix 'scaling_factor' that contains 3\n", + "component keys that are not exported as part of the NL file. Skipping.\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 150 keys\n", + "that are not Var, Constraint, Objective, or the model. Skipping.\n", + "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", + "tol=1e-06\n", + "max_iter=200\n", + "\n", + "\n", + "******************************************************************************\n", + "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", + " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", + " For more information visit http://projects.coin-or.org/Ipopt\n", + "\n", + "This version of Ipopt was compiled from source code available at\n", + " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", + " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", + " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", + "\n", + "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", + " for large-scale scientific computation. All technical papers, sales and\n", + " publicity material resulting from use of the HSL codes within IPOPT must\n", + " contain the following acknowledgement:\n", + " HSL, a collection of Fortran codes for large-scale scientific\n", + " computation. See http://www.hsl.rl.ac.uk.\n", + "******************************************************************************\n", + "\n", + "This is Ipopt version 3.13.2, running with linear solver ma27.\n", + "\n", + "Number of nonzeros in equality constraint Jacobian...: 4073\n", + "Number of nonzeros in inequality constraint Jacobian.: 6\n", + "Number of nonzeros in Lagrangian Hessian.............: 2391\n", + "\n", + "Total number of variables............................: 1176\n", + " variables with only lower bounds: 113\n", + " variables with lower and upper bounds: 372\n", + " variables with only upper bounds: 0\n", + "Total number of equality constraints.................: 1169\n", + "Total number of inequality constraints...............: 3\n", + " inequality constraints with only lower bounds: 2\n", + " inequality constraints with lower and upper bounds: 0\n", + " inequality constraints with only upper bounds: 1\n", + "\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 0 4.4230147e+05 2.99e+05 9.90e+01 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", + " 1 4.3753585e+05 2.91e+05 1.28e+02 -1.0 3.09e+06 - 3.58e-01 2.40e-02f 1\n", + " 2 4.3545100e+05 2.78e+05 1.55e+02 -1.0 1.78e+06 - 3.31e-01 4.74e-02h 1\n", + " 3 4.2822311e+05 2.20e+05 4.50e+02 -1.0 2.99e+06 - 2.95e-02 1.35e-01h 1\n", + " 4 4.2249096e+05 1.45e+05 1.43e+03 -1.0 7.01e+06 - 5.14e-01 2.03e-01h 1\n", + " 5 4.2194364e+05 8.17e+04 1.70e+04 -1.0 6.06e+06 - 5.97e-01 4.28e-01h 1\n", + " 6 4.2602765e+05 4.55e+04 1.10e+06 -1.0 4.32e+06 - 9.26e-01 5.07e-01h 1\n", + " 7 4.3776643e+05 2.03e+04 6.44e+09 -1.0 2.42e+06 - 9.90e-01 9.47e-01h 1\n", + " 8 4.3846260e+05 1.92e+04 6.05e+09 -1.0 4.42e+05 - 5.40e-01 5.74e-02h 1\n", + " 9 4.4529853e+05 4.05e+04 4.66e+10 -1.0 2.47e+05 - 9.96e-01 9.90e-01h 1\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 10 4.4906283e+05 9.76e+03 1.10e+10 -1.0 1.12e+03 -4.0 1.26e-01 7.45e-01h 1\n", + " 11 4.5079086e+05 1.19e+03 1.54e+09 -1.0 5.63e+02 -4.5 3.77e-01 1.00e+00h 1\n", + " 12 4.5024224e+05 2.66e+00 3.67e+06 -1.0 6.61e+01 -5.0 1.00e+00 1.00e+00f 1\n", + " 13 4.4946170e+05 5.64e-01 9.29e+05 -1.0 1.81e+02 -5.4 1.00e+00 7.88e-01f 1\n", + " 14 4.4916780e+05 8.48e+00 1.62e+05 -1.0 2.83e+02 -5.9 1.00e+00 1.00e+00f 1\n", + " 15 4.4899127e+05 4.83e+00 9.07e+04 -1.0 1.01e+02 -6.4 1.00e+00 4.40e-01f 2\n", + " 16 4.4886718e+05 7.00e-01 4.61e+02 -1.0 2.35e+02 -6.9 1.00e+00 1.00e+00f 1\n", + " 17 4.4800159e+05 1.39e+02 4.52e+06 -3.8 1.17e+03 -7.3 9.79e-01 9.37e-01f 1\n", + " 18 4.4672196e+05 9.59e+02 1.22e+06 -3.8 4.55e+03 -7.8 1.00e+00 9.43e-01f 1\n", + " 19 4.4401667e+05 7.75e+03 1.55e+05 -3.8 1.08e+04 -8.3 1.00e+00 1.00e+00f 1\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 20 4.4185035e+05 1.91e+04 1.36e+04 -3.8 1.33e+04 -8.8 1.00e+00 1.00e+00h 1\n", + " 21 4.4241001e+05 3.52e+03 5.96e+03 -3.8 2.94e+03 -9.2 1.00e+00 1.00e+00h 1\n", + " 22 4.4185237e+05 7.82e+00 2.91e+02 -3.8 7.13e+03 -9.7 2.39e-01 1.00e+00h 1\n", + " 23 4.4124091e+05 1.53e+01 3.11e+02 -3.8 4.82e+04 -10.2 8.59e-01 1.36e-01f 1\n", + " 24 4.4137379e+05 1.80e+00 2.91e+02 -3.8 1.41e+04 - 1.95e-01 1.00e+00h 1\n", + " 25 4.3862833e+05 1.70e+03 9.48e+04 -3.8 1.57e+07 - 1.29e-03 9.10e-02f 1\n", + " 26 4.3883308e+05 1.49e+03 8.46e+04 -3.8 1.02e+06 - 1.00e+00 1.35e-01h 1\n", + " 27 4.3885472e+05 2.18e+01 3.40e+03 -3.8 1.38e+05 - 1.00e+00 1.00e+00h 1\n", + " 28 4.3884160e+05 5.90e-02 6.38e+01 -3.8 8.66e+03 - 1.00e+00 1.00e+00h 1\n", + " 29 4.3884157e+05 6.48e-07 4.63e-04 -3.8 2.89e+01 - 1.00e+00 1.00e+00h 1\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 30 4.3883990e+05 3.57e-01 2.38e+03 -5.7 8.19e+02 - 1.00e+00 1.00e+00f 1\n", + " 31 4.3883992e+05 3.50e-07 7.79e-06 -5.7 3.55e-01 - 1.00e+00 1.00e+00h 1\n", + " 32 4.3883990e+05 5.47e-05 3.63e-01 -8.0 1.01e+01 - 1.00e+00 1.00e+00h 1\n", + " 33 4.3883990e+05 2.24e-08 1.46e-07 -8.0 5.42e-05 - 1.00e+00 1.00e+00h 1\n", + "\n", + "Number of Iterations....: 33\n", + "\n", + " (scaled) (unscaled)\n", + "Objective...............: 4.3883989842628603e+02 4.3883989842628600e+05\n", + "Dual infeasibility......: 1.4600704448671754e-07 1.4600704448671753e-04\n", + "Constraint violation....: 2.9103830456733704e-11 2.2351741790771484e-08\n", + "Complementarity.........: 9.0909948039799681e-09 9.0909948039799686e-06\n", + "Overall NLP error.......: 9.0909948039799681e-09 1.4600704448671753e-04\n", + "\n", + "\n", + "Number of objective function evaluations = 35\n", + "Number of objective gradient evaluations = 34\n", + "Number of equality constraint evaluations = 35\n", + "Number of inequality constraint evaluations = 35\n", + "Number of equality constraint Jacobian evaluations = 34\n", + "Number of inequality constraint Jacobian evaluations = 34\n", + "Number of Lagrangian Hessian evaluations = 33\n", + "Total CPU secs in IPOPT (w/o function evaluations) = 0.164\n", + "Total CPU secs in NLP function evaluations = 0.020\n", + "\n", + "EXIT: Optimal Solution Found.\n" + ] + } + ], + "source": [ + "results = solver.solve(m, tee=True)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING: model contains export suffix\n", - "'fs.H101.control_volume.properties_in[0.0].scaling_factor' that contains 25\n", - "component keys that are not exported as part of the NL file. Skipping.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Optimization Results\n", + "\n", + "Display the results and product specifications" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", - "tol=1e-06\n", - "max_iter=200\n" - ] + "cell_type": "code", + "execution_count": 73, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "total cost = $ 438839.898426286\n", + "operating cost = $ 408883.5314830889\n", + "capital cost = $ 29956.3669431971\n", + "\n", + "Distillate flowrate = 0.1799999900263989 mol/s\n", + "Benzene purity = 98.99999900049086 %\n", + "Residue flowrate = 0.1085161642426372 mol/s\n", + "Toluene purity = 15.676178086213548 %\n", + "\n", + "Conversion = 93.38705916369427 %\n", + "\n", + "Overhead benzene loss in F101 = 17.34061793115618 %\n" + ] + } + ], + "source": [ + "print(\"total cost = $\", value(m.fs.capital_cost) + value(m.fs.operating_cost))\n", + "print(\"operating cost = $\", value(m.fs.operating_cost))\n", + "print(\"capital cost = $\", value(m.fs.capital_cost))\n", + "print()\n", + "print(\n", + " \"Distillate flowrate = \",\n", + " value(m.fs.D101.condenser.distillate.flow_mol[0]()),\n", + " \"mol/s\",\n", + ")\n", + "print(\n", + " \"Benzene purity = \",\n", + " 100 * value(m.fs.D101.condenser.distillate.mole_frac_comp[0, \"benzene\"]),\n", + " \"%\",\n", + ")\n", + "print(\"Residue flowrate = \", value(m.fs.D101.reboiler.bottoms.flow_mol[0]()), \"mol/s\")\n", + "print(\n", + " \"Toluene purity = \",\n", + " 100 * value(m.fs.D101.reboiler.bottoms.mole_frac_comp[0, \"toluene\"]),\n", + " \"%\",\n", + ")\n", + "print()\n", + "print(\"Conversion = \", 100 * value(m.fs.R101.conversion), \"%\")\n", + "print()\n", + "print(\n", + " \"Overhead benzene loss in F101 = \",\n", + " 100\n", + " * value(m.fs.F101.vap_outlet.flow_mol_phase_comp[0, \"Vap\", \"benzene\"])\n", + " / value(m.fs.R101.outlet.flow_mol_phase_comp[0, \"Vap\", \"benzene\"]),\n", + " \"%\",\n", + ")" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 4073\n", - "Number of nonzeros in inequality constraint Jacobian.: 6\n", - "Number of nonzeros in Lagrangian Hessian.............: 2391\n", - "\n", - "Total number of variables............................: 1176\n", - " variables with only lower bounds: 113\n", - " variables with lower and upper bounds: 372\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 1169\n", - "Total number of inequality constraints...............: 3\n", - " inequality constraints with only lower bounds: 2\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 1\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 4.4230147e+05 2.99e+05 9.90e+01 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 4.3753585e+05 2.91e+05 1.28e+02 -1.0 3.09e+06 - 3.58e-01 2.40e-02f 1\n", - " 2 4.3545100e+05 2.78e+05 1.55e+02 -1.0 1.78e+06 - 3.31e-01 4.74e-02h 1\n", - " 3 4.2822311e+05 2.20e+05 4.50e+02 -1.0 2.99e+06 - 2.95e-02 1.35e-01h 1\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Display optimal values for the decision variables" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - " 4 4.2249096e+05 1.45e+05 1.43e+03 -1.0 7.01e+06 - 5.14e-01 2.03e-01h 1\n", - " 5 4.2194364e+05 8.17e+04 1.70e+04 -1.0 6.06e+06 - 5.97e-01 4.28e-01h 1\n", - " 6 4.2602765e+05 4.55e+04 1.10e+06 -1.0 4.32e+06 - 9.26e-01 5.07e-01h 1\n", - " 7 4.3776643e+05 2.03e+04 6.44e+09 -1.0 2.42e+06 - 9.90e-01 9.47e-01h 1\n", - " 8 4.3846260e+05 1.92e+04 6.05e+09 -1.0 4.42e+05 - 5.40e-01 5.74e-02h 1\n", - " 9 4.4529853e+05 4.05e+04 4.66e+10 -1.0 2.47e+05 - 9.96e-01 9.90e-01h 1\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 10 4.4906283e+05 9.76e+03 1.10e+10 -1.0 1.12e+03 -4.0 1.26e-01 7.45e-01h 1\n", - " 11 4.5079086e+05 1.19e+03 1.54e+09 -1.0 5.63e+02 -4.5 3.77e-01 1.00e+00h 1\n", - " 12 4.5024224e+05 2.66e+00 3.67e+06 -1.0 6.61e+01 -5.0 1.00e+00 1.00e+00f 1\n", - " 13 4.4946170e+05 5.64e-01 9.29e+05 -1.0 1.81e+02 -5.4 1.00e+00 7.88e-01f 1\n", - " 14 4.4916780e+05 8.48e+00 1.62e+05 -1.0 2.83e+02 -5.9 1.00e+00 1.00e+00f 1\n" - ] + "cell_type": "code", + "execution_count": 75, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Optimal Values\n", + "\n", + "H101 outlet temperature = 568.923204295196 K\n", + "\n", + "R101 outlet temperature = 790.3655425698853 K\n", + "\n", + "F101 outlet temperature = 298.0 K\n", + "\n", + "H102 outlet temperature = 368.7414339952852 K\n" + ] + } + ], + "source": [ + "print(\"Optimal Values\")\n", + "print()\n", + "\n", + "print(\"H101 outlet temperature = \", value(m.fs.H101.outlet.temperature[0]), \"K\")\n", + "\n", + "print()\n", + "print(\"R101 outlet temperature = \", value(m.fs.R101.outlet.temperature[0]), \"K\")\n", + "\n", + "print()\n", + "print(\"F101 outlet temperature = \", value(m.fs.F101.vap_outlet.temperature[0]), \"K\")\n", + "\n", + "print()\n", + "print(\"H102 outlet temperature = \", value(m.fs.H102.outlet.temperature[0]), \"K\")" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - " 15 4.4899127e+05 4.83e+00 9.06e+04 -1.0 1.01e+02 -6.4 1.00e+00 4.40e-01f 2\n", - " 16 4.4886718e+05 7.00e-01 4.61e+02 -1.0 2.35e+02 -6.9 1.00e+00 1.00e+00f 1\n", - " 17 4.4800159e+05 1.39e+02 4.52e+06 -3.8 1.17e+03 -7.3 9.79e-01 9.37e-01f 1\n", - " 18 4.4672196e+05 9.59e+02 1.22e+06 -3.8 4.55e+03 -7.8 1.00e+00 9.43e-01f 1\n", - " 19 4.4401667e+05 7.75e+03 1.55e+05 -3.8 1.08e+04 -8.3 1.00e+00 1.00e+00f 1\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 20 4.4185035e+05 1.91e+04 1.36e+04 -3.8 1.33e+04 -8.8 1.00e+00 1.00e+00h 1\n", - " 21 4.4241001e+05 3.52e+03 5.96e+03 -3.8 2.94e+03 -9.2 1.00e+00 1.00e+00h 1\n", - " 22 4.4185237e+05 7.82e+00 2.91e+02 -3.8 7.13e+03 -9.7 2.39e-01 1.00e+00h 1\n", - " 23 4.4124091e+05 1.53e+01 3.11e+02 -3.8 4.82e+04 -10.2 8.59e-01 1.36e-01f 1\n", - " 24 4.4137379e+05 1.80e+00 2.91e+02 -3.8 1.41e+04 - 1.95e-01 1.00e+00h 1\n", - " 25 4.3862833e+05 1.70e+03 9.48e+04 -3.8 1.57e+07 - 1.29e-03 9.10e-02f 1\n", - " 26 4.3883308e+05 1.49e+03 8.46e+04 -3.8 1.02e+06 - 1.00e+00 1.35e-01h 1\n", - " 27 4.3885472e+05 2.18e+01 3.40e+03 -3.8 1.38e+05 - 1.00e+00 1.00e+00h 1\n", - " 28 4.3884160e+05 5.90e-02 6.38e+01 -3.8 8.66e+03 - 1.00e+00 1.00e+00h 1\n", - " 29 4.3884157e+05 6.41e-07 4.63e-04 -3.8 2.89e+01 - 1.00e+00 1.00e+00h 1\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 30 4.3883990e+05 3.57e-01 2.38e+03 -5.7 8.19e+02 - 1.00e+00 1.00e+00f 1\n", - " 31 4.3883992e+05 3.65e-07 1.29e-05 -5.7 3.55e-01 - 1.00e+00 1.00e+00h 1\n", - " 32 4.3883990e+05 5.46e-05 3.63e-01 -8.0 1.01e+01 - 1.00e+00 1.00e+00h 1\n", - " 33 4.3883990e+05 3.73e-08 3.38e-07 -8.0 5.42e-05 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 33\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 4.3883989842628671e+02 4.3883989842628670e+05\n", - "Dual infeasibility......: 3.3796318887468276e-07 3.3796318887468276e-04\n", - "Constraint violation....: 2.9103830456733704e-11 3.7252902984619141e-08\n", - "Complementarity.........: 9.0909948039808002e-09 9.0909948039808004e-06\n", - "Overall NLP error.......: 9.0909948039808002e-09 3.3796318887468276e-04\n", - "\n", - "\n", - "Number of objective function evaluations = 35\n", - "Number of objective gradient evaluations = 34\n", - "Number of equality constraint evaluations = 35\n", - "Number of inequality constraint evaluations = 35\n", - "Number of equality constraint Jacobian evaluations = 34\n", - "Number of inequality constraint Jacobian evaluations = 34\n", - "Number of Lagrangian Hessian evaluations = 33\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.076\n", - "Total CPU secs in NLP function evaluations = 0.017\n", - "\n", - "EXIT: Optimal Solution Found.\n" - ] - } - ], - "source": [ - "results = solver.solve(m, tee=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Optimization Results\n", - "\n", - "Display the results and product specifications" - ] - }, - { - "cell_type": "code", - "execution_count": 56, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "total cost = $ 438839.8984262867\n", - "operating cost = $ 408883.53148308955\n", - "capital cost = $ 29956.366943197143\n", - "\n", - "Distillate flowrate = 0.17999999002639888 mol/s\n", - "Benzene purity = 98.99999900049087 %\n", - "Residue flowrate = 0.10851616424263709 mol/s\n", - "Toluene purity = 15.676178086212413 %\n", - "\n", - "Conversion = 93.38705916369456 %\n", - "\n", - "Overhead benzene loss in F101 = 17.340617931156157 %\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Key Takeaways\n", + "\n", + "Observe that the optimization was able to reduce the yearly operating cost from \\\\$427,593 to \\\\$408,342 (~4.5%). However, the amortized capital cost more than doubled from \\\\$14,704 to \\\\$29,927 due to the need to increase the conversion in the reactor (from 75% to 93%) to meet the production and purity constraints. \n", + "\n", + "Further, observe that the product flow rate and product purity are at their minimum values (0.18 mol/s and 99%, respectively). This is expected as increasing recovery would require more energy and cost to purify the product.\n", + "\n", + "\n", + "Finally, observe that the operating temperature of the flash (F101) is almost at its lower bound. This helps in minimizing the amount of benzene in the vapor stream leaving the flash." + ] } - ], - "source": [ - "print(\"total cost = $\", value(m.fs.capital_cost) + value(m.fs.operating_cost))\n", - "print(\"operating cost = $\", value(m.fs.operating_cost))\n", - "print(\"capital cost = $\", value(m.fs.capital_cost))\n", - "print()\n", - "print(\n", - " \"Distillate flowrate = \",\n", - " value(m.fs.D101.condenser.distillate.flow_mol[0]()),\n", - " \"mol/s\",\n", - ")\n", - "print(\n", - " \"Benzene purity = \",\n", - " 100 * value(m.fs.D101.condenser.distillate.mole_frac_comp[0, \"benzene\"]),\n", - " \"%\",\n", - ")\n", - "print(\"Residue flowrate = \", value(m.fs.D101.reboiler.bottoms.flow_mol[0]()), \"mol/s\")\n", - "print(\n", - " \"Toluene purity = \",\n", - " 100 * value(m.fs.D101.reboiler.bottoms.mole_frac_comp[0, \"toluene\"]),\n", - " \"%\",\n", - ")\n", - "print()\n", - "print(\"Conversion = \", 100 * value(m.fs.R101.conversion), \"%\")\n", - "print()\n", - "print(\n", - " \"Overhead benzene loss in F101 = \",\n", - " 100\n", - " * value(m.fs.F101.vap_outlet.flow_mol_phase_comp[0, \"Vap\", \"benzene\"])\n", - " / value(m.fs.R101.outlet.flow_mol_phase_comp[0, \"Vap\", \"benzene\"]),\n", - " \"%\",\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Display optimal values for the decision variables" - ] - }, - { - "cell_type": "code", - "execution_count": 57, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Optimal Values\n", - "\n", - "H101 outlet temperature = 568.9232042951961 K\n", - "\n", - "R101 outlet temperature = 790.3655425698863 K\n", - "\n", - "F101 outlet temperature = 298.0 K\n", - "\n", - "H102 outlet temperature = 368.7414339952852 K\n" - ] + ], + "metadata": { + "celltoolbar": "Tags", + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.13" } - ], - "source": [ - "print(\"Optimal Values\")\n", - "print()\n", - "\n", - "print(\"H101 outlet temperature = \", value(m.fs.H101.outlet.temperature[0]), \"K\")\n", - "\n", - "print()\n", - "print(\"R101 outlet temperature = \", value(m.fs.R101.outlet.temperature[0]), \"K\")\n", - "\n", - "print()\n", - "print(\"F101 outlet temperature = \", value(m.fs.F101.vap_outlet.temperature[0]), \"K\")\n", - "\n", - "print()\n", - "print(\"H102 outlet temperature = \", value(m.fs.H102.outlet.temperature[0]), \"K\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Key Takeaways\n", - "\n", - "Observe that the optimization was able to reduce the yearly operating cost from \\\\$427,593 to \\\\$408,342 (~4.5%). However, the amortized capital cost more than doubled from \\\\$14,704 to \\\\$29,927 due to the need to increase the conversion in the reactor (from 75% to 93%) to meet the production and purity constraints. \n", - "\n", - "Further, observe that the product flow rate and product purity are at their minimum values (0.18 mol/s and 99%, respectively). This is expected as increasing recovery would require more energy and cost to purify the product.\n", - "\n", - "\n", - "Finally, observe that the operating temperature of the flash (F101) is almost at its lower bound. This helps in minimizing the amount of benzene in the vapor stream leaving the flash." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "celltoolbar": "Tags", - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.5" - } - }, - "nbformat": 4, - "nbformat_minor": 3 -} + "nbformat": 4, + "nbformat_minor": 3 +} \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/flowsheets/hda_flowsheet_with_distillation_exercise.ipynb b/idaes_examples/notebooks/docs/flowsheets/hda_flowsheet_with_distillation_exercise.ipynb index 410b7c88..65ccb95f 100644 --- a/idaes_examples/notebooks/docs/flowsheets/hda_flowsheet_with_distillation_exercise.ipynb +++ b/idaes_examples/notebooks/docs/flowsheets/hda_flowsheet_with_distillation_exercise.ipynb @@ -61,7 +61,7 @@ "example, toluene will be reacted with hydrogen gas at high temperatures\n", " to form benzene via the following reaction:\n", "\n", - "**C6H5CH3 + H2 → C6H6 + CH4**\n", + "**C6H5CH3 + H2 \u2192 C6H6 + CH4**\n", "\n", "\n", "This reaction is often accompanied by an equilibrium side reaction\n", @@ -220,6 +220,7 @@ "from idaes.core.util.initialization import propagate_state\n", "from idaes.core.solvers import get_solver\n", "import idaes.core.util.scaling as iscale\n", + "from idaes.core.util.exceptions import InitializationError\n", "\n", "# Import idaes logger to set output levels\n", "import idaes.logger as idaeslog" @@ -656,7 +657,15 @@ "cell_type": "code", "execution_count": 28, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "29\n" + ] + } + ], "source": [ "print(degrees_of_freedom(m))" ] @@ -840,7 +849,42 @@ "cell_type": "code", "execution_count": 38, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].flow_mol_phase\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enth_mol_phase_comp[Liq,benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enth_mol_phase_comp[Liq,toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enth_mol_phase_comp[Vap,benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enth_mol_phase_comp[Vap,toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].enth_mol_phase_comp[Liq,benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].enth_mol_phase_comp[Liq,toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].enth_mol_phase_comp[Vap,benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].enth_mol_phase_comp[Vap,toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].material_flow_terms[Liq,benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].material_flow_terms[Vap,benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].material_flow_terms[Liq,toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].material_flow_terms[Vap,toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enthalpy_flow_terms[Liq], enthalpy_flow_terms\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enthalpy_flow_terms[Vap], enthalpy_flow_terms\n" + ] + } + ], "source": [ "# Set scaling factors for heat duty, reaction extent and volume\n", "iscale.set_scaling_factor(m.fs.H101.control_volume.heat, 1e-2)\n", @@ -921,7 +965,15 @@ "cell_type": "code", "execution_count": 43, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "fs.s03\n" + ] + } + ], "source": [ "for o in heuristic_tear_set:\n", " print(o.name)" @@ -938,7 +990,20 @@ "cell_type": "code", "execution_count": 44, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "fs.H101\n", + "fs.R101\n", + "fs.F101\n", + "fs.S101\n", + "fs.C101\n", + "fs.M101\n" + ] + } + ], "source": [ "for o in order:\n", " print(o[0].name)" @@ -970,7 +1035,7 @@ " (0, \"Liq\", \"hydrogen\"): 1e-5,\n", " (0, \"Liq\", \"methane\"): 1e-5,\n", " },\n", - " \"temperature\": {0: 303},\n", + " \"temperature\": {0: 303.2},\n", " \"pressure\": {0: 350000},\n", "}\n", "\n", @@ -982,7 +1047,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Next, we need to tell the tool how to initialize a particular unit. We will be writing a python function which takes in a \"unit\" and calls the initialize method on that unit." + "Next, we need to tell the tool how to initialize a particular unit. We will be writing a python function which takes in a \"unit\" and calls the initialize method on that unit. For the initialization, we will import a Block Triangularization Initializer which decomposes the model into a set of subproblems. These subproblems are solved using a block triangularization transformation before applying a simple Newton or user-selected solver. Methods such as block triangularization often solve faster and yield more reliable behavior than heuristic methods, but sometime struggle to decompose models with strongly coupled equations (e.g. column models, systems with counter-current flow, vapor-liquid equilibrium)." ] }, { @@ -992,7 +1057,15 @@ "outputs": [], "source": [ "def function(unit):\n", - " unit.initialize(outlvl=idaeslog.INFO)" + " # Try initializing using default initializer, \n", + " # if it fails (probably due to scaling) try for the second time\n", + " try:\n", + " initializer = unit.default_initializer()\n", + " initializer.initialize(unit, output_level=idaeslog.INFO)\n", + " except InitializationError:\n", + " solver=get_solver()\n", + " solver.solve(unit)\n", + " " ] }, { @@ -1008,7 +1081,132 @@ "metadata": { "scrolled": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-08-28 18:38:14 [INFO] idaes.init.fs.H101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:16 [INFO] idaes.init.fs.H101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:16 [INFO] idaes.init.fs.R101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:16 [INFO] idaes.init.fs.R101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:17 [INFO] idaes.init.fs.F101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:17 [INFO] idaes.init.fs.F101.control_volume.properties_out: Initialization Complete\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 12\n", + "component keys that are not exported as part of the NL file. Skipping.\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 50 keys\n", + "that are not Var, Constraint, Objective, or the model. Skipping.\n", + "2024-08-28 18:38:17 [INFO] idaes.init.fs.S101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:17 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n", + "2024-08-28 18:38:17 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n", + "2024-08-28 18:38:17 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - \n", + "2024-08-28 18:38:18 [INFO] idaes.init.fs.C101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:18 [INFO] idaes.init.fs.C101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:18 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 1 optimal - .\n", + "2024-08-28 18:38:18 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 2 optimal - .\n", + "2024-08-28 18:38:19 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 3 optimal - .\n", + "2024-08-28 18:38:19 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 4 optimal - .\n", + "2024-08-28 18:38:19 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 5 optimal - .\n", + "2024-08-28 18:38:19 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 1 optimal - .\n", + "2024-08-28 18:38:19 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 2 optimal - .\n", + "2024-08-28 18:38:20 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 3 optimal - .\n", + "2024-08-28 18:38:20 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 4 optimal - .\n", + "2024-08-28 18:38:20 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 5 optimal - .\n", + "2024-08-28 18:38:20 [INFO] idaes.init.fs.M101.toluene_feed_state: Initialization Complete\n", + "2024-08-28 18:38:20 [INFO] idaes.init.fs.M101.hydrogen_feed_state: Initialization Complete\n", + "2024-08-28 18:38:20 [INFO] idaes.init.fs.M101.vapor_recycle_state: Initialization Complete\n", + "2024-08-28 18:38:21 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:21 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - \n", + "2024-08-28 18:38:21 [INFO] idaes.init.fs.H101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:21 [INFO] idaes.init.fs.H101.control_volume.properties_out: Initialization Complete\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 11\n", + "component keys that are not exported as part of the NL file. Skipping.\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 50 keys\n", + "that are not Var, Constraint, Objective, or the model. Skipping.\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.R101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.R101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.F101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.F101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.S101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - \n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.C101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.C101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.M101.toluene_feed_state: Initialization Complete\n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.M101.hydrogen_feed_state: Initialization Complete\n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.M101.vapor_recycle_state: Initialization Complete\n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - \n", + "2024-08-28 18:38:24 [INFO] idaes.init.fs.H101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:24 [INFO] idaes.init.fs.H101.control_volume.properties_out: Initialization Complete\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 11\n", + "component keys that are not exported as part of the NL file. Skipping.\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 50 keys\n", + "that are not Var, Constraint, Objective, or the model. Skipping.\n", + "2024-08-28 18:38:24 [INFO] idaes.init.fs.R101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:24 [INFO] idaes.init.fs.R101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.F101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.F101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.S101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - \n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.C101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.C101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.M101.toluene_feed_state: Initialization Complete\n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.M101.hydrogen_feed_state: Initialization Complete\n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.M101.vapor_recycle_state: Initialization Complete\n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - \n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.H101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.H101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.R101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.R101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.F101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.F101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.S101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - \n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.C101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.C101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.M101.toluene_feed_state: Initialization Complete\n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.M101.hydrogen_feed_state: Initialization Complete\n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.M101.vapor_recycle_state: Initialization Complete\n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - \n", + "2024-08-28 18:38:29 [INFO] idaes.init.fs.H101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:29 [INFO] idaes.init.fs.H101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:29 [INFO] idaes.init.fs.R101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:29 [INFO] idaes.init.fs.R101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.F101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.F101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.S101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - \n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.C101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.C101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.M101.toluene_feed_state: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.M101.hydrogen_feed_state: Initialization Complete\n", + "2024-08-28 18:38:31 [INFO] idaes.init.fs.M101.vapor_recycle_state: Initialization Complete\n", + "2024-08-28 18:38:31 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:31 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - \n", + "WARNING: Wegstein failed to converge in 3 iterations\n", + "2024-08-28 18:38:31 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 1 optimal - .\n", + "2024-08-28 18:38:31 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 2 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 3 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 4 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 5 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 1 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 2 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 3 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 4 optimal - .\n", + "2024-08-28 18:38:33 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 5 optimal - .\n" + ] + } + ], "source": [ "seq.run(m, function)" ] @@ -1027,7 +1225,91 @@ "cell_type": "code", "execution_count": 48, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING: model contains export suffix 'scaling_factor' that contains 6\n", + "component keys that are not exported as part of the NL file. Skipping.\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 150 keys\n", + "that are not Var, Constraint, Objective, or the model. Skipping.\n", + "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", + "tol=1e-06\n", + "max_iter=200\n", + "\n", + "\n", + "******************************************************************************\n", + "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", + " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", + " For more information visit http://projects.coin-or.org/Ipopt\n", + "\n", + "This version of Ipopt was compiled from source code available at\n", + " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", + " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", + " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", + "\n", + "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", + " for large-scale scientific computation. All technical papers, sales and\n", + " publicity material resulting from use of the HSL codes within IPOPT must\n", + " contain the following acknowledgement:\n", + " HSL, a collection of Fortran codes for large-scale scientific\n", + " computation. See http://www.hsl.rl.ac.uk.\n", + "******************************************************************************\n", + "\n", + "This is Ipopt version 3.13.2, running with linear solver ma27.\n", + "\n", + "Number of nonzeros in equality constraint Jacobian...: 1097\n", + "Number of nonzeros in inequality constraint Jacobian.: 0\n", + "Number of nonzeros in Lagrangian Hessian.............: 877\n", + "\n", + "Total number of variables............................: 363\n", + " variables with only lower bounds: 8\n", + " variables with lower and upper bounds: 155\n", + " variables with only upper bounds: 0\n", + "Total number of equality constraints.................: 363\n", + "Total number of inequality constraints...............: 0\n", + " inequality constraints with only lower bounds: 0\n", + " inequality constraints with lower and upper bounds: 0\n", + " inequality constraints with only upper bounds: 0\n", + "\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 0 0.0000000e+00 3.82e+04 1.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", + " 1 0.0000000e+00 8.69e+03 1.44e+03 -1.0 2.00e+04 - 9.71e-01 4.67e-01H 1\n", + " 2 0.0000000e+00 1.29e+03 1.56e+03 -1.0 1.60e+04 - 9.79e-01 4.90e-01h 1\n", + " 3 0.0000000e+00 1.18e+03 1.55e+05 -1.0 1.40e+04 - 9.90e-01 4.99e-01h 1\n", + " 4 0.0000000e+00 5.46e+02 2.32e+09 -1.0 8.42e+03 - 1.00e+00 9.82e-01h 1\n", + " 5 0.0000000e+00 5.46e+03 3.66e+10 -1.0 5.97e+02 - 1.00e+00 9.90e-01h 1\n", + " 6 0.0000000e+00 1.21e+03 8.01e+09 -1.0 5.75e+00 - 1.00e+00 1.00e+00h 1\n", + " 7 0.0000000e+00 6.41e+00 3.87e+07 -1.0 1.53e-03 - 1.00e+00 1.00e+00f 1\n", + " 8 0.0000000e+00 1.96e-04 9.36e+02 -1.0 7.28e-06 - 1.00e+00 1.00e+00h 1\n", + " 9 0.0000000e+00 2.24e-08 4.99e-01 -3.8 5.92e-08 - 1.00e+00 1.00e+00h 1\n", + "Cannot recompute multipliers for feasibility problem. Error in eq_mult_calculator\n", + "\n", + "Number of Iterations....: 9\n", + "\n", + " (scaled) (unscaled)\n", + "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Dual infeasibility......: 1.5042487592972509e+04 1.5042487592972509e+04\n", + "Constraint violation....: 2.9103830456733704e-11 2.2351741790771484e-08\n", + "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Overall NLP error.......: 2.9103830456733704e-11 1.5042487592972509e+04\n", + "\n", + "\n", + "Number of objective function evaluations = 11\n", + "Number of objective gradient evaluations = 10\n", + "Number of equality constraint evaluations = 11\n", + "Number of inequality constraint evaluations = 0\n", + "Number of equality constraint Jacobian evaluations = 10\n", + "Number of inequality constraint Jacobian evaluations = 0\n", + "Number of Lagrangian Hessian evaluations = 9\n", + "Total CPU secs in IPOPT (w/o function evaluations) = 0.011\n", + "Total CPU secs in NLP function evaluations = 0.001\n", + "\n", + "EXIT: Optimal Solution Found.\n" + ] + } + ], "source": [ "# Create the solver object\n", "solver = get_solver()\n", @@ -1059,7 +1341,617 @@ "cell_type": "code", "execution_count": 50, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].material_flow_terms[Liq,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].material_flow_terms[Vap,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].material_flow_terms[Liq,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].material_flow_terms[Vap,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].enthalpy_flow_terms[Liq], enthalpy_flow_terms\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].enthalpy_flow_terms[Vap], enthalpy_flow_terms\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].material_flow_terms[Liq,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].material_flow_terms[Vap,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].material_flow_terms[Liq,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].material_flow_terms[Vap,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].enthalpy_flow_terms[Liq], enthalpy_flow_terms\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].enthalpy_flow_terms[Vap], enthalpy_flow_terms\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.e_flow_reflux[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.e_mole_frac_reflux[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.e_mole_frac_reflux[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.e_flow_vapor_reboil[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.e_mole_frac_vapor_reboil[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.e_mole_frac_vapor_reboil[0.0,toluene]\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101: Begin initialization.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray: Begin initialization.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_out: State Released.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: State Released.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: State Released.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: State Released.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.condenser.control_volume: Initialization Complete\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.condenser: Initialization Complete, optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: State Released.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: State Released.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler: Initialization Complete, optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: State Released.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.rectification_section[1]: Begin initialization.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: State Released.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: State Released.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[2]: Begin initialization.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: State Released.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[2]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[2]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: State Released.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: State Released.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3]: Begin initialization.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: State Released.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[3]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[3]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[3]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: State Released.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: State Released.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4]: Begin initialization.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: State Released.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: State Released.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.stripping_section[6]: Begin initialization.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: State Released.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: State Released.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[7]: Begin initialization.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: State Released.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[7]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[7]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: State Released.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: State Released.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8]: Begin initialization.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: State Released.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[8]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[8]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[8]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: State Released.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: State Released.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9]: Begin initialization.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: State Released.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[9]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[9]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[9]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[9]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: State Released.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: State Released.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[10]: Begin initialization.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: State Released.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: State Released.\n", + "2024-08-28 18:39:01 [INFO] idaes.init.fs.D101: Rectification section initialization status optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:01 [INFO] idaes.init.fs.D101: Stripping section initialization status optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:01 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: State Released.\n", + "2024-08-28 18:39:01 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: State Released.\n", + "2024-08-28 18:39:01 [INFO] idaes.init.fs.D101: Column section initialization status optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:01 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: State Released.\n", + "2024-08-28 18:39:02 [INFO] idaes.init.fs.D101: Column section + Condenser initialization status optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:02 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: State Released.\n", + "2024-08-28 18:39:03 [INFO] idaes.init.fs.D101: Column section + Condenser + Reboiler initialization status optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:03 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: State Released.\n" + ] + } + ], "source": [ "# Add distillation column to the flowsheet\n", "m.fs.D101 = TrayColumn(\n", @@ -1144,7 +2036,101 @@ "cell_type": "code", "execution_count": 53, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING: model contains export suffix 'scaling_factor' that contains 7\n", + "component keys that are not exported as part of the NL file. Skipping.\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 150 keys\n", + "that are not Var, Constraint, Objective, or the model. Skipping.\n", + "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", + "tol=1e-06\n", + "max_iter=200\n", + "\n", + "\n", + "******************************************************************************\n", + "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", + " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", + " For more information visit http://projects.coin-or.org/Ipopt\n", + "\n", + "This version of Ipopt was compiled from source code available at\n", + " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", + " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", + " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", + "\n", + "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", + " for large-scale scientific computation. All technical papers, sales and\n", + " publicity material resulting from use of the HSL codes within IPOPT must\n", + " contain the following acknowledgement:\n", + " HSL, a collection of Fortran codes for large-scale scientific\n", + " computation. See http://www.hsl.rl.ac.uk.\n", + "******************************************************************************\n", + "\n", + "This is Ipopt version 3.13.2, running with linear solver ma27.\n", + "\n", + "Number of nonzeros in equality constraint Jacobian...: 4042\n", + "Number of nonzeros in inequality constraint Jacobian.: 0\n", + "Number of nonzeros in Lagrangian Hessian.............: 2376\n", + "\n", + "Total number of variables............................: 1169\n", + " variables with only lower bounds: 112\n", + " variables with lower and upper bounds: 365\n", + " variables with only upper bounds: 0\n", + "Total number of equality constraints.................: 1169\n", + "Total number of inequality constraints...............: 0\n", + " inequality constraints with only lower bounds: 0\n", + " inequality constraints with lower and upper bounds: 0\n", + " inequality constraints with only upper bounds: 0\n", + "\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 0 0.0000000e+00 3.83e+04 1.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", + " 1 0.0000000e+00 8.70e+03 1.50e+03 -1.0 3.69e+04 - 9.71e-01 4.62e-01H 1\n", + " 2 0.0000000e+00 1.53e+03 1.56e+03 -1.0 6.75e+03 - 9.77e-01 4.89e-01h 1\n", + " 3 0.0000000e+00 1.37e+03 1.55e+05 -1.0 9.37e+03 - 9.90e-01 4.99e-01h 1\n", + " 4 0.0000000e+00 6.14e+02 2.31e+09 -1.0 6.09e+03 - 1.00e+00 9.81e-01h 1\n", + " 5 0.0000000e+00 5.32e+03 3.62e+10 -1.0 5.56e+02 - 1.00e+00 9.90e-01h 1\n", + " 6 0.0000000e+00 1.16e+03 7.80e+09 -1.0 5.36e+00 - 1.00e+00 1.00e+00h 1\n", + " 7 0.0000000e+00 5.96e+00 3.64e+07 -1.0 1.47e-03 - 1.00e+00 1.00e+00f 1\n", + " 8 0.0000000e+00 1.69e-04 8.15e+02 -1.0 6.77e-06 - 1.00e+00 1.00e+00h 1\n", + " 9 0.0000000e+00 7.45e-09 6.64e-03 -3.8 2.00e-07 - 1.00e+00 1.00e+00h 1\n", + "Cannot recompute multipliers for feasibility problem. Error in eq_mult_calculator\n", + "\n", + "Number of Iterations....: 9\n", + "\n", + " (scaled) (unscaled)\n", + "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Dual infeasibility......: 1.5042483516409773e+04 1.5042483516409773e+04\n", + "Constraint violation....: 2.9103830456733704e-11 7.4505805969238281e-09\n", + "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Overall NLP error.......: 2.9103830456733704e-11 1.5042483516409773e+04\n", + "\n", + "\n", + "Number of objective function evaluations = 11\n", + "Number of objective gradient evaluations = 10\n", + "Number of equality constraint evaluations = 11\n", + "Number of inequality constraint evaluations = 0\n", + "Number of equality constraint Jacobian evaluations = 10\n", + "Number of inequality constraint Jacobian evaluations = 0\n", + "Number of Lagrangian Hessian evaluations = 9\n", + "Total CPU secs in IPOPT (w/o function evaluations) = 0.083\n", + "Total CPU secs in NLP function evaluations = 0.013\n", + "\n", + "EXIT: Optimal Solution Found.\n" + ] + }, + { + "data": { + "text/plain": [ + "{'Problem': [{'Lower bound': -inf, 'Upper bound': inf, 'Number of objectives': 1, 'Number of constraints': 1169, 'Number of variables': 1169, 'Sense': 'unknown'}], 'Solver': [{'Status': 'ok', 'Message': 'Ipopt 3.13.2\\\\x3a Optimal Solution Found', 'Termination condition': 'optimal', 'Id': 0, 'Error rc': 0, 'Time': 0.2022566795349121}], 'Solution': [OrderedDict([('number of solutions', 0), ('number of solutions displayed', 0)])]}" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "solver.solve(m, tee=True)" ] @@ -1162,7 +2148,26 @@ "cell_type": "code", "execution_count": 55, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "total cost = $ 442301.47075252194\n", + "operating cost = $ 427596.73056805483\n", + "capital cost = $ 14704.740184467111\n", + "\n", + "Distillate flowrate = 0.16196898920633368 mol/s\n", + "Benzene purity = 89.4916166580088 %\n", + "Residue flowrate = 0.10515007120697904 mol/s\n", + "Toluene purity = 43.32260291055251 %\n", + "\n", + "Conversion = 75.0 %\n", + "\n", + "Overhead benzene loss in F101 = 42.161938483603194 %\n" + ] + } + ], "source": [ "print(\"total cost = $\", value(m.fs.capital_cost) + value(m.fs.operating_cost))\n", "print(\"operating cost = $\", value(m.fs.operating_cost))\n", @@ -1207,7 +2212,40 @@ "cell_type": "code", "execution_count": 57, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "====================================================================================\n", + "Unit : fs.R101 Time: 0.0\n", + "------------------------------------------------------------------------------------\n", + " Unit Performance\n", + "\n", + " Variables: \n", + "\n", + " Key : Value : Units : Fixed : Bounds\n", + " Heat Duty : 0.0000 : watt : True : (None, None)\n", + " Volume : 0.14705 : meter ** 3 : False : (None, None)\n", + "\n", + "------------------------------------------------------------------------------------\n", + " Stream Table\n", + " Units Inlet Outlet \n", + " flow_mol_phase_comp ('Liq', 'benzene') mole / second 1.2993e-07 1.2993e-07\n", + " flow_mol_phase_comp ('Liq', 'toluene') mole / second 8.4147e-07 8.4147e-07\n", + " flow_mol_phase_comp ('Liq', 'methane') mole / second 1.0000e-12 1.0000e-12\n", + " flow_mol_phase_comp ('Liq', 'hydrogen') mole / second 1.0000e-12 1.0000e-12\n", + " flow_mol_phase_comp ('Vap', 'benzene') mole / second 0.11936 0.35374\n", + " flow_mol_phase_comp ('Vap', 'toluene') mole / second 0.31252 0.078129\n", + " flow_mol_phase_comp ('Vap', 'methane') mole / second 1.0377 1.2721\n", + " flow_mol_phase_comp ('Vap', 'hydrogen') mole / second 0.56260 0.32821\n", + " temperature kelvin 600.00 771.85\n", + " pressure pascal 3.5000e+05 3.5000e+05\n", + "====================================================================================\n" + ] + } + ], "source": [ "m.fs.R101.report()" ] @@ -1223,7 +2261,40 @@ "cell_type": "code", "execution_count": 58, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "====================================================================================\n", + "Unit : fs.F101 Time: 0.0\n", + "------------------------------------------------------------------------------------\n", + " Unit Performance\n", + "\n", + " Variables: \n", + "\n", + " Key : Value : Units : Fixed : Bounds\n", + " Heat Duty : -70343. : watt : False : (None, None)\n", + " Pressure Change : 0.0000 : pascal : True : (None, None)\n", + "\n", + "------------------------------------------------------------------------------------\n", + " Stream Table\n", + " Units Inlet Vapor Outlet Liquid Outlet\n", + " flow_mol_phase_comp ('Liq', 'benzene') mole / second 1.2993e-07 1.0000e-08 0.20460 \n", + " flow_mol_phase_comp ('Liq', 'toluene') mole / second 8.4147e-07 1.0000e-08 0.062520 \n", + " flow_mol_phase_comp ('Liq', 'methane') mole / second 1.0000e-12 1.0000e-08 2.6712e-07 \n", + " flow_mol_phase_comp ('Liq', 'hydrogen') mole / second 1.0000e-12 1.0000e-08 2.6712e-07 \n", + " flow_mol_phase_comp ('Vap', 'benzene') mole / second 0.35374 0.14915 1.0000e-08 \n", + " flow_mol_phase_comp ('Vap', 'toluene') mole / second 0.078129 0.015610 1.0000e-08 \n", + " flow_mol_phase_comp ('Vap', 'methane') mole / second 1.2721 1.2721 1.0000e-08 \n", + " flow_mol_phase_comp ('Vap', 'hydrogen') mole / second 0.32821 0.32821 1.0000e-08 \n", + " temperature kelvin 771.85 325.00 325.00 \n", + " pressure pascal 3.5000e+05 3.5000e+05 3.5000e+05 \n", + "====================================================================================\n" + ] + } + ], "source": [ "m.fs.F101.report()" ] @@ -1244,7 +2315,25 @@ "cell_type": "code", "execution_count": 59, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Units Reactor Light Gases\n", + "flow_mol_phase_comp ('Liq', 'benzene') mole / second 1.2993e-07 1.0000e-08 \n", + "flow_mol_phase_comp ('Liq', 'toluene') mole / second 8.4147e-07 1.0000e-08 \n", + "flow_mol_phase_comp ('Liq', 'methane') mole / second 1.0000e-12 1.0000e-08 \n", + "flow_mol_phase_comp ('Liq', 'hydrogen') mole / second 1.0000e-12 1.0000e-08 \n", + "flow_mol_phase_comp ('Vap', 'benzene') mole / second 0.35374 0.14915 \n", + "flow_mol_phase_comp ('Vap', 'toluene') mole / second 0.078129 0.015610 \n", + "flow_mol_phase_comp ('Vap', 'methane') mole / second 1.2721 1.2721 \n", + "flow_mol_phase_comp ('Vap', 'hydrogen') mole / second 0.32821 0.32821 \n", + "temperature kelvin 771.85 325.00 \n", + "pressure pascal 3.5000e+05 3.5000e+05 \n" + ] + } + ], "source": [ "from idaes.core.util.tables import (\n", " create_stream_table_dataframe,\n", @@ -1504,7 +2593,117 @@ "cell_type": "code", "execution_count": 71, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING: model contains export suffix 'scaling_factor' that contains 3\n", + "component keys that are not exported as part of the NL file. Skipping.\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 150 keys\n", + "that are not Var, Constraint, Objective, or the model. Skipping.\n", + "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", + "tol=1e-06\n", + "max_iter=200\n", + "\n", + "\n", + "******************************************************************************\n", + "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", + " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", + " For more information visit http://projects.coin-or.org/Ipopt\n", + "\n", + "This version of Ipopt was compiled from source code available at\n", + " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", + " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", + " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", + "\n", + "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", + " for large-scale scientific computation. All technical papers, sales and\n", + " publicity material resulting from use of the HSL codes within IPOPT must\n", + " contain the following acknowledgement:\n", + " HSL, a collection of Fortran codes for large-scale scientific\n", + " computation. See http://www.hsl.rl.ac.uk.\n", + "******************************************************************************\n", + "\n", + "This is Ipopt version 3.13.2, running with linear solver ma27.\n", + "\n", + "Number of nonzeros in equality constraint Jacobian...: 4073\n", + "Number of nonzeros in inequality constraint Jacobian.: 6\n", + "Number of nonzeros in Lagrangian Hessian.............: 2391\n", + "\n", + "Total number of variables............................: 1176\n", + " variables with only lower bounds: 113\n", + " variables with lower and upper bounds: 372\n", + " variables with only upper bounds: 0\n", + "Total number of equality constraints.................: 1169\n", + "Total number of inequality constraints...............: 3\n", + " inequality constraints with only lower bounds: 2\n", + " inequality constraints with lower and upper bounds: 0\n", + " inequality constraints with only upper bounds: 1\n", + "\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 0 4.4230147e+05 2.99e+05 9.90e+01 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", + " 1 4.3753585e+05 2.91e+05 1.28e+02 -1.0 3.09e+06 - 3.58e-01 2.40e-02f 1\n", + " 2 4.3545100e+05 2.78e+05 1.55e+02 -1.0 1.78e+06 - 3.31e-01 4.74e-02h 1\n", + " 3 4.2822311e+05 2.20e+05 4.50e+02 -1.0 2.99e+06 - 2.95e-02 1.35e-01h 1\n", + " 4 4.2249096e+05 1.45e+05 1.43e+03 -1.0 7.01e+06 - 5.14e-01 2.03e-01h 1\n", + " 5 4.2194364e+05 8.17e+04 1.70e+04 -1.0 6.06e+06 - 5.97e-01 4.28e-01h 1\n", + " 6 4.2602765e+05 4.55e+04 1.10e+06 -1.0 4.32e+06 - 9.26e-01 5.07e-01h 1\n", + " 7 4.3776643e+05 2.03e+04 6.44e+09 -1.0 2.42e+06 - 9.90e-01 9.47e-01h 1\n", + " 8 4.3846260e+05 1.92e+04 6.05e+09 -1.0 4.42e+05 - 5.40e-01 5.74e-02h 1\n", + " 9 4.4529853e+05 4.05e+04 4.66e+10 -1.0 2.47e+05 - 9.96e-01 9.90e-01h 1\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 10 4.4906283e+05 9.76e+03 1.10e+10 -1.0 1.12e+03 -4.0 1.26e-01 7.45e-01h 1\n", + " 11 4.5079086e+05 1.19e+03 1.54e+09 -1.0 5.63e+02 -4.5 3.77e-01 1.00e+00h 1\n", + " 12 4.5024224e+05 2.66e+00 3.67e+06 -1.0 6.61e+01 -5.0 1.00e+00 1.00e+00f 1\n", + " 13 4.4946170e+05 5.64e-01 9.29e+05 -1.0 1.81e+02 -5.4 1.00e+00 7.88e-01f 1\n", + " 14 4.4916780e+05 8.48e+00 1.62e+05 -1.0 2.83e+02 -5.9 1.00e+00 1.00e+00f 1\n", + " 15 4.4899127e+05 4.83e+00 9.07e+04 -1.0 1.01e+02 -6.4 1.00e+00 4.40e-01f 2\n", + " 16 4.4886718e+05 7.00e-01 4.61e+02 -1.0 2.35e+02 -6.9 1.00e+00 1.00e+00f 1\n", + " 17 4.4800159e+05 1.39e+02 4.52e+06 -3.8 1.17e+03 -7.3 9.79e-01 9.37e-01f 1\n", + " 18 4.4672196e+05 9.59e+02 1.22e+06 -3.8 4.55e+03 -7.8 1.00e+00 9.43e-01f 1\n", + " 19 4.4401667e+05 7.75e+03 1.55e+05 -3.8 1.08e+04 -8.3 1.00e+00 1.00e+00f 1\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 20 4.4185035e+05 1.91e+04 1.36e+04 -3.8 1.33e+04 -8.8 1.00e+00 1.00e+00h 1\n", + " 21 4.4241001e+05 3.52e+03 5.96e+03 -3.8 2.94e+03 -9.2 1.00e+00 1.00e+00h 1\n", + " 22 4.4185237e+05 7.82e+00 2.91e+02 -3.8 7.13e+03 -9.7 2.39e-01 1.00e+00h 1\n", + " 23 4.4124091e+05 1.53e+01 3.11e+02 -3.8 4.82e+04 -10.2 8.59e-01 1.36e-01f 1\n", + " 24 4.4137379e+05 1.80e+00 2.91e+02 -3.8 1.41e+04 - 1.95e-01 1.00e+00h 1\n", + " 25 4.3862833e+05 1.70e+03 9.48e+04 -3.8 1.57e+07 - 1.29e-03 9.10e-02f 1\n", + " 26 4.3883308e+05 1.49e+03 8.46e+04 -3.8 1.02e+06 - 1.00e+00 1.35e-01h 1\n", + " 27 4.3885472e+05 2.18e+01 3.40e+03 -3.8 1.38e+05 - 1.00e+00 1.00e+00h 1\n", + " 28 4.3884160e+05 5.90e-02 6.38e+01 -3.8 8.66e+03 - 1.00e+00 1.00e+00h 1\n", + " 29 4.3884157e+05 6.48e-07 4.63e-04 -3.8 2.89e+01 - 1.00e+00 1.00e+00h 1\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 30 4.3883990e+05 3.57e-01 2.38e+03 -5.7 8.19e+02 - 1.00e+00 1.00e+00f 1\n", + " 31 4.3883992e+05 3.50e-07 7.79e-06 -5.7 3.55e-01 - 1.00e+00 1.00e+00h 1\n", + " 32 4.3883990e+05 5.47e-05 3.63e-01 -8.0 1.01e+01 - 1.00e+00 1.00e+00h 1\n", + " 33 4.3883990e+05 2.24e-08 1.46e-07 -8.0 5.42e-05 - 1.00e+00 1.00e+00h 1\n", + "\n", + "Number of Iterations....: 33\n", + "\n", + " (scaled) (unscaled)\n", + "Objective...............: 4.3883989842628603e+02 4.3883989842628600e+05\n", + "Dual infeasibility......: 1.4600704448671754e-07 1.4600704448671753e-04\n", + "Constraint violation....: 2.9103830456733704e-11 2.2351741790771484e-08\n", + "Complementarity.........: 9.0909948039799681e-09 9.0909948039799686e-06\n", + "Overall NLP error.......: 9.0909948039799681e-09 1.4600704448671753e-04\n", + "\n", + "\n", + "Number of objective function evaluations = 35\n", + "Number of objective gradient evaluations = 34\n", + "Number of equality constraint evaluations = 35\n", + "Number of inequality constraint evaluations = 35\n", + "Number of equality constraint Jacobian evaluations = 34\n", + "Number of inequality constraint Jacobian evaluations = 34\n", + "Number of Lagrangian Hessian evaluations = 33\n", + "Total CPU secs in IPOPT (w/o function evaluations) = 0.164\n", + "Total CPU secs in NLP function evaluations = 0.020\n", + "\n", + "EXIT: Optimal Solution Found.\n" + ] + } + ], "source": [ "results = solver.solve(m, tee=True)" ] @@ -1522,7 +2721,26 @@ "cell_type": "code", "execution_count": 73, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "total cost = $ 438839.898426286\n", + "operating cost = $ 408883.5314830889\n", + "capital cost = $ 29956.3669431971\n", + "\n", + "Distillate flowrate = 0.1799999900263989 mol/s\n", + "Benzene purity = 98.99999900049086 %\n", + "Residue flowrate = 0.1085161642426372 mol/s\n", + "Toluene purity = 15.676178086213548 %\n", + "\n", + "Conversion = 93.38705916369427 %\n", + "\n", + "Overhead benzene loss in F101 = 17.34061793115618 %\n" + ] + } + ], "source": [ "print(\"total cost = $\", value(m.fs.capital_cost) + value(m.fs.operating_cost))\n", "print(\"operating cost = $\", value(m.fs.operating_cost))\n", @@ -1567,7 +2785,23 @@ "cell_type": "code", "execution_count": 75, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Optimal Values\n", + "\n", + "H101 outlet temperature = 568.923204295196 K\n", + "\n", + "R101 outlet temperature = 790.3655425698853 K\n", + "\n", + "F101 outlet temperature = 298.0 K\n", + "\n", + "H102 outlet temperature = 368.7414339952852 K\n" + ] + } + ], "source": [ "print(\"Optimal Values\")\n", "print()\n", @@ -1597,13 +2831,6 @@ "\n", "Finally, observe that the operating temperature of the flash (F101) is almost at its lower bound. This helps in minimizing the amount of benzene in the vapor stream leaving the flash." ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { @@ -1623,9 +2850,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.16" + "version": "3.10.13" } }, "nbformat": 4, "nbformat_minor": 3 -} +} \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/flowsheets/hda_flowsheet_with_distillation_solution.ipynb b/idaes_examples/notebooks/docs/flowsheets/hda_flowsheet_with_distillation_solution.ipynb index 1412322e..a401e9b8 100644 --- a/idaes_examples/notebooks/docs/flowsheets/hda_flowsheet_with_distillation_solution.ipynb +++ b/idaes_examples/notebooks/docs/flowsheets/hda_flowsheet_with_distillation_solution.ipynb @@ -61,7 +61,7 @@ "example, toluene will be reacted with hydrogen gas at high temperatures\n", " to form benzene via the following reaction:\n", "\n", - "**C6H5CH3 + H2 → C6H6 + CH4**\n", + "**C6H5CH3 + H2 \u2192 C6H6 + CH4**\n", "\n", "\n", "This reaction is often accompanied by an equilibrium side reaction\n", @@ -234,6 +234,7 @@ "from idaes.core.util.initialization import propagate_state\n", "from idaes.core.solvers import get_solver\n", "import idaes.core.util.scaling as iscale\n", + "from idaes.core.util.exceptions import InitializationError\n", "\n", "# Import idaes logger to set output levels\n", "import idaes.logger as idaeslog" @@ -737,7 +738,15 @@ "cell_type": "code", "execution_count": 28, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "29\n" + ] + } + ], "source": [ "print(degrees_of_freedom(m))" ] @@ -938,7 +947,42 @@ "cell_type": "code", "execution_count": 38, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].flow_mol_phase\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enth_mol_phase_comp[Liq,benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enth_mol_phase_comp[Liq,toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enth_mol_phase_comp[Vap,benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enth_mol_phase_comp[Vap,toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].enth_mol_phase_comp[Liq,benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].enth_mol_phase_comp[Liq,toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].enth_mol_phase_comp[Vap,benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].enth_mol_phase_comp[Vap,toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].material_flow_terms[Liq,benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].material_flow_terms[Vap,benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].material_flow_terms[Liq,toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].material_flow_terms[Vap,toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enthalpy_flow_terms[Liq], enthalpy_flow_terms\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enthalpy_flow_terms[Vap], enthalpy_flow_terms\n" + ] + } + ], "source": [ "# Set scaling factors for heat duty, reaction extent and volume\n", "iscale.set_scaling_factor(m.fs.H101.control_volume.heat, 1e-2)\n", @@ -988,7 +1032,15 @@ "solution" ] }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n" + ] + } + ], "source": [ "# Todo: Check the degrees of freedom\n", "print(degrees_of_freedom(m))" @@ -1033,7 +1085,15 @@ "cell_type": "code", "execution_count": 43, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "fs.s03\n" + ] + } + ], "source": [ "for o in heuristic_tear_set:\n", " print(o.name)" @@ -1050,7 +1110,20 @@ "cell_type": "code", "execution_count": 44, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "fs.H101\n", + "fs.R101\n", + "fs.F101\n", + "fs.S101\n", + "fs.C101\n", + "fs.M101\n" + ] + } + ], "source": [ "for o in order:\n", " print(o[0].name)" @@ -1082,7 +1155,7 @@ " (0, \"Liq\", \"hydrogen\"): 1e-5,\n", " (0, \"Liq\", \"methane\"): 1e-5,\n", " },\n", - " \"temperature\": {0: 303},\n", + " \"temperature\": {0: 303.2},\n", " \"pressure\": {0: 350000},\n", "}\n", "\n", @@ -1094,7 +1167,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Next, we need to tell the tool how to initialize a particular unit. We will be writing a python function which takes in a \"unit\" and calls the initialize method on that unit." + "Next, we need to tell the tool how to initialize a particular unit. We will be writing a python function which takes in a \"unit\" and calls the initialize method on that unit. For the initialization, we will import a Block Triangularization Initializer which decomposes the model into a set of subproblems. These subproblems are solved using a block triangularization transformation before applying a simple Newton or user-selected solver. Methods such as block triangularization often solve faster and yield more reliable behavior than heuristic methods, but sometime struggle to decompose models with strongly coupled equations (e.g. column models, systems with counter-current flow, vapor-liquid equilibrium)." ] }, { @@ -1104,7 +1177,15 @@ "outputs": [], "source": [ "def function(unit):\n", - " unit.initialize(outlvl=idaeslog.INFO)" + " # Try initializing using default initializer, \n", + " # if it fails (probably due to scaling) try for the second time\n", + " try:\n", + " initializer = unit.default_initializer()\n", + " initializer.initialize(unit, output_level=idaeslog.INFO)\n", + " except InitializationError:\n", + " solver=get_solver()\n", + " solver.solve(unit)\n", + " " ] }, { @@ -1120,7 +1201,132 @@ "metadata": { "scrolled": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-08-28 18:38:14 [INFO] idaes.init.fs.H101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:16 [INFO] idaes.init.fs.H101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:16 [INFO] idaes.init.fs.R101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:16 [INFO] idaes.init.fs.R101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:17 [INFO] idaes.init.fs.F101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:17 [INFO] idaes.init.fs.F101.control_volume.properties_out: Initialization Complete\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 12\n", + "component keys that are not exported as part of the NL file. Skipping.\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 50 keys\n", + "that are not Var, Constraint, Objective, or the model. Skipping.\n", + "2024-08-28 18:38:17 [INFO] idaes.init.fs.S101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:17 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n", + "2024-08-28 18:38:17 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n", + "2024-08-28 18:38:17 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - \n", + "2024-08-28 18:38:18 [INFO] idaes.init.fs.C101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:18 [INFO] idaes.init.fs.C101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:18 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 1 optimal - .\n", + "2024-08-28 18:38:18 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 2 optimal - .\n", + "2024-08-28 18:38:19 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 3 optimal - .\n", + "2024-08-28 18:38:19 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 4 optimal - .\n", + "2024-08-28 18:38:19 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 5 optimal - .\n", + "2024-08-28 18:38:19 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 1 optimal - .\n", + "2024-08-28 18:38:19 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 2 optimal - .\n", + "2024-08-28 18:38:20 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 3 optimal - .\n", + "2024-08-28 18:38:20 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 4 optimal - .\n", + "2024-08-28 18:38:20 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 5 optimal - .\n", + "2024-08-28 18:38:20 [INFO] idaes.init.fs.M101.toluene_feed_state: Initialization Complete\n", + "2024-08-28 18:38:20 [INFO] idaes.init.fs.M101.hydrogen_feed_state: Initialization Complete\n", + "2024-08-28 18:38:20 [INFO] idaes.init.fs.M101.vapor_recycle_state: Initialization Complete\n", + "2024-08-28 18:38:21 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:21 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - \n", + "2024-08-28 18:38:21 [INFO] idaes.init.fs.H101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:21 [INFO] idaes.init.fs.H101.control_volume.properties_out: Initialization Complete\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 11\n", + "component keys that are not exported as part of the NL file. Skipping.\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 50 keys\n", + "that are not Var, Constraint, Objective, or the model. Skipping.\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.R101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.R101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.F101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.F101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.S101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - \n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.C101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.C101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.M101.toluene_feed_state: Initialization Complete\n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.M101.hydrogen_feed_state: Initialization Complete\n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.M101.vapor_recycle_state: Initialization Complete\n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - \n", + "2024-08-28 18:38:24 [INFO] idaes.init.fs.H101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:24 [INFO] idaes.init.fs.H101.control_volume.properties_out: Initialization Complete\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 11\n", + "component keys that are not exported as part of the NL file. Skipping.\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 50 keys\n", + "that are not Var, Constraint, Objective, or the model. Skipping.\n", + "2024-08-28 18:38:24 [INFO] idaes.init.fs.R101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:24 [INFO] idaes.init.fs.R101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.F101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.F101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.S101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - \n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.C101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.C101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.M101.toluene_feed_state: Initialization Complete\n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.M101.hydrogen_feed_state: Initialization Complete\n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.M101.vapor_recycle_state: Initialization Complete\n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - \n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.H101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.H101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.R101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.R101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.F101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.F101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.S101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - \n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.C101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.C101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.M101.toluene_feed_state: Initialization Complete\n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.M101.hydrogen_feed_state: Initialization Complete\n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.M101.vapor_recycle_state: Initialization Complete\n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - \n", + "2024-08-28 18:38:29 [INFO] idaes.init.fs.H101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:29 [INFO] idaes.init.fs.H101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:29 [INFO] idaes.init.fs.R101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:29 [INFO] idaes.init.fs.R101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.F101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.F101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.S101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - \n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.C101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.C101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.M101.toluene_feed_state: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.M101.hydrogen_feed_state: Initialization Complete\n", + "2024-08-28 18:38:31 [INFO] idaes.init.fs.M101.vapor_recycle_state: Initialization Complete\n", + "2024-08-28 18:38:31 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:31 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - \n", + "WARNING: Wegstein failed to converge in 3 iterations\n", + "2024-08-28 18:38:31 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 1 optimal - .\n", + "2024-08-28 18:38:31 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 2 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 3 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 4 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 5 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 1 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 2 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 3 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 4 optimal - .\n", + "2024-08-28 18:38:33 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 5 optimal - .\n" + ] + } + ], "source": [ "seq.run(m, function)" ] @@ -1139,7 +1345,91 @@ "cell_type": "code", "execution_count": 48, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING: model contains export suffix 'scaling_factor' that contains 6\n", + "component keys that are not exported as part of the NL file. Skipping.\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 150 keys\n", + "that are not Var, Constraint, Objective, or the model. Skipping.\n", + "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", + "tol=1e-06\n", + "max_iter=200\n", + "\n", + "\n", + "******************************************************************************\n", + "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", + " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", + " For more information visit http://projects.coin-or.org/Ipopt\n", + "\n", + "This version of Ipopt was compiled from source code available at\n", + " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", + " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", + " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", + "\n", + "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", + " for large-scale scientific computation. All technical papers, sales and\n", + " publicity material resulting from use of the HSL codes within IPOPT must\n", + " contain the following acknowledgement:\n", + " HSL, a collection of Fortran codes for large-scale scientific\n", + " computation. See http://www.hsl.rl.ac.uk.\n", + "******************************************************************************\n", + "\n", + "This is Ipopt version 3.13.2, running with linear solver ma27.\n", + "\n", + "Number of nonzeros in equality constraint Jacobian...: 1097\n", + "Number of nonzeros in inequality constraint Jacobian.: 0\n", + "Number of nonzeros in Lagrangian Hessian.............: 877\n", + "\n", + "Total number of variables............................: 363\n", + " variables with only lower bounds: 8\n", + " variables with lower and upper bounds: 155\n", + " variables with only upper bounds: 0\n", + "Total number of equality constraints.................: 363\n", + "Total number of inequality constraints...............: 0\n", + " inequality constraints with only lower bounds: 0\n", + " inequality constraints with lower and upper bounds: 0\n", + " inequality constraints with only upper bounds: 0\n", + "\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 0 0.0000000e+00 3.82e+04 1.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", + " 1 0.0000000e+00 8.69e+03 1.44e+03 -1.0 2.00e+04 - 9.71e-01 4.67e-01H 1\n", + " 2 0.0000000e+00 1.29e+03 1.56e+03 -1.0 1.60e+04 - 9.79e-01 4.90e-01h 1\n", + " 3 0.0000000e+00 1.18e+03 1.55e+05 -1.0 1.40e+04 - 9.90e-01 4.99e-01h 1\n", + " 4 0.0000000e+00 5.46e+02 2.32e+09 -1.0 8.42e+03 - 1.00e+00 9.82e-01h 1\n", + " 5 0.0000000e+00 5.46e+03 3.66e+10 -1.0 5.97e+02 - 1.00e+00 9.90e-01h 1\n", + " 6 0.0000000e+00 1.21e+03 8.01e+09 -1.0 5.75e+00 - 1.00e+00 1.00e+00h 1\n", + " 7 0.0000000e+00 6.41e+00 3.87e+07 -1.0 1.53e-03 - 1.00e+00 1.00e+00f 1\n", + " 8 0.0000000e+00 1.96e-04 9.36e+02 -1.0 7.28e-06 - 1.00e+00 1.00e+00h 1\n", + " 9 0.0000000e+00 2.24e-08 4.99e-01 -3.8 5.92e-08 - 1.00e+00 1.00e+00h 1\n", + "Cannot recompute multipliers for feasibility problem. Error in eq_mult_calculator\n", + "\n", + "Number of Iterations....: 9\n", + "\n", + " (scaled) (unscaled)\n", + "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Dual infeasibility......: 1.5042487592972509e+04 1.5042487592972509e+04\n", + "Constraint violation....: 2.9103830456733704e-11 2.2351741790771484e-08\n", + "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Overall NLP error.......: 2.9103830456733704e-11 1.5042487592972509e+04\n", + "\n", + "\n", + "Number of objective function evaluations = 11\n", + "Number of objective gradient evaluations = 10\n", + "Number of equality constraint evaluations = 11\n", + "Number of inequality constraint evaluations = 0\n", + "Number of equality constraint Jacobian evaluations = 10\n", + "Number of inequality constraint Jacobian evaluations = 0\n", + "Number of Lagrangian Hessian evaluations = 9\n", + "Total CPU secs in IPOPT (w/o function evaluations) = 0.011\n", + "Total CPU secs in NLP function evaluations = 0.001\n", + "\n", + "EXIT: Optimal Solution Found.\n" + ] + } + ], "source": [ "# Create the solver object\n", "solver = get_solver()\n", @@ -1171,7 +1461,617 @@ "cell_type": "code", "execution_count": 50, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].material_flow_terms[Liq,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].material_flow_terms[Vap,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].material_flow_terms[Liq,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].material_flow_terms[Vap,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].enthalpy_flow_terms[Liq], enthalpy_flow_terms\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].enthalpy_flow_terms[Vap], enthalpy_flow_terms\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].material_flow_terms[Liq,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].material_flow_terms[Vap,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].material_flow_terms[Liq,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].material_flow_terms[Vap,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].enthalpy_flow_terms[Liq], enthalpy_flow_terms\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].enthalpy_flow_terms[Vap], enthalpy_flow_terms\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.e_flow_reflux[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.e_mole_frac_reflux[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.e_mole_frac_reflux[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.e_flow_vapor_reboil[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.e_mole_frac_vapor_reboil[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.e_mole_frac_vapor_reboil[0.0,toluene]\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101: Begin initialization.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray: Begin initialization.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_out: State Released.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: State Released.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: State Released.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: State Released.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.condenser.control_volume: Initialization Complete\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.condenser: Initialization Complete, optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: State Released.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: State Released.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler: Initialization Complete, optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: State Released.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.rectification_section[1]: Begin initialization.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: State Released.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: State Released.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[2]: Begin initialization.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: State Released.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[2]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[2]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: State Released.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: State Released.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3]: Begin initialization.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: State Released.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[3]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[3]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[3]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: State Released.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: State Released.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4]: Begin initialization.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: State Released.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: State Released.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.stripping_section[6]: Begin initialization.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: State Released.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: State Released.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[7]: Begin initialization.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: State Released.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[7]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[7]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: State Released.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: State Released.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8]: Begin initialization.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: State Released.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[8]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[8]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[8]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: State Released.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: State Released.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9]: Begin initialization.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: State Released.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[9]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[9]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[9]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[9]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: State Released.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: State Released.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[10]: Begin initialization.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: State Released.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: State Released.\n", + "2024-08-28 18:39:01 [INFO] idaes.init.fs.D101: Rectification section initialization status optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:01 [INFO] idaes.init.fs.D101: Stripping section initialization status optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:01 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: State Released.\n", + "2024-08-28 18:39:01 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: State Released.\n", + "2024-08-28 18:39:01 [INFO] idaes.init.fs.D101: Column section initialization status optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:01 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: State Released.\n", + "2024-08-28 18:39:02 [INFO] idaes.init.fs.D101: Column section + Condenser initialization status optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:02 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: State Released.\n", + "2024-08-28 18:39:03 [INFO] idaes.init.fs.D101: Column section + Condenser + Reboiler initialization status optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:03 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: State Released.\n" + ] + } + ], "source": [ "# Add distillation column to the flowsheet\n", "m.fs.D101 = TrayColumn(\n", @@ -1256,7 +2156,101 @@ "cell_type": "code", "execution_count": 53, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING: model contains export suffix 'scaling_factor' that contains 7\n", + "component keys that are not exported as part of the NL file. Skipping.\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 150 keys\n", + "that are not Var, Constraint, Objective, or the model. Skipping.\n", + "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", + "tol=1e-06\n", + "max_iter=200\n", + "\n", + "\n", + "******************************************************************************\n", + "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", + " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", + " For more information visit http://projects.coin-or.org/Ipopt\n", + "\n", + "This version of Ipopt was compiled from source code available at\n", + " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", + " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", + " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", + "\n", + "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", + " for large-scale scientific computation. All technical papers, sales and\n", + " publicity material resulting from use of the HSL codes within IPOPT must\n", + " contain the following acknowledgement:\n", + " HSL, a collection of Fortran codes for large-scale scientific\n", + " computation. See http://www.hsl.rl.ac.uk.\n", + "******************************************************************************\n", + "\n", + "This is Ipopt version 3.13.2, running with linear solver ma27.\n", + "\n", + "Number of nonzeros in equality constraint Jacobian...: 4042\n", + "Number of nonzeros in inequality constraint Jacobian.: 0\n", + "Number of nonzeros in Lagrangian Hessian.............: 2376\n", + "\n", + "Total number of variables............................: 1169\n", + " variables with only lower bounds: 112\n", + " variables with lower and upper bounds: 365\n", + " variables with only upper bounds: 0\n", + "Total number of equality constraints.................: 1169\n", + "Total number of inequality constraints...............: 0\n", + " inequality constraints with only lower bounds: 0\n", + " inequality constraints with lower and upper bounds: 0\n", + " inequality constraints with only upper bounds: 0\n", + "\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 0 0.0000000e+00 3.83e+04 1.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", + " 1 0.0000000e+00 8.70e+03 1.50e+03 -1.0 3.69e+04 - 9.71e-01 4.62e-01H 1\n", + " 2 0.0000000e+00 1.53e+03 1.56e+03 -1.0 6.75e+03 - 9.77e-01 4.89e-01h 1\n", + " 3 0.0000000e+00 1.37e+03 1.55e+05 -1.0 9.37e+03 - 9.90e-01 4.99e-01h 1\n", + " 4 0.0000000e+00 6.14e+02 2.31e+09 -1.0 6.09e+03 - 1.00e+00 9.81e-01h 1\n", + " 5 0.0000000e+00 5.32e+03 3.62e+10 -1.0 5.56e+02 - 1.00e+00 9.90e-01h 1\n", + " 6 0.0000000e+00 1.16e+03 7.80e+09 -1.0 5.36e+00 - 1.00e+00 1.00e+00h 1\n", + " 7 0.0000000e+00 5.96e+00 3.64e+07 -1.0 1.47e-03 - 1.00e+00 1.00e+00f 1\n", + " 8 0.0000000e+00 1.69e-04 8.15e+02 -1.0 6.77e-06 - 1.00e+00 1.00e+00h 1\n", + " 9 0.0000000e+00 7.45e-09 6.64e-03 -3.8 2.00e-07 - 1.00e+00 1.00e+00h 1\n", + "Cannot recompute multipliers for feasibility problem. Error in eq_mult_calculator\n", + "\n", + "Number of Iterations....: 9\n", + "\n", + " (scaled) (unscaled)\n", + "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Dual infeasibility......: 1.5042483516409773e+04 1.5042483516409773e+04\n", + "Constraint violation....: 2.9103830456733704e-11 7.4505805969238281e-09\n", + "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Overall NLP error.......: 2.9103830456733704e-11 1.5042483516409773e+04\n", + "\n", + "\n", + "Number of objective function evaluations = 11\n", + "Number of objective gradient evaluations = 10\n", + "Number of equality constraint evaluations = 11\n", + "Number of inequality constraint evaluations = 0\n", + "Number of equality constraint Jacobian evaluations = 10\n", + "Number of inequality constraint Jacobian evaluations = 0\n", + "Number of Lagrangian Hessian evaluations = 9\n", + "Total CPU secs in IPOPT (w/o function evaluations) = 0.083\n", + "Total CPU secs in NLP function evaluations = 0.013\n", + "\n", + "EXIT: Optimal Solution Found.\n" + ] + }, + { + "data": { + "text/plain": [ + "{'Problem': [{'Lower bound': -inf, 'Upper bound': inf, 'Number of objectives': 1, 'Number of constraints': 1169, 'Number of variables': 1169, 'Sense': 'unknown'}], 'Solver': [{'Status': 'ok', 'Message': 'Ipopt 3.13.2\\\\x3a Optimal Solution Found', 'Termination condition': 'optimal', 'Id': 0, 'Error rc': 0, 'Time': 0.2022566795349121}], 'Solution': [OrderedDict([('number of solutions', 0), ('number of solutions displayed', 0)])]}" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "solver.solve(m, tee=True)" ] @@ -1274,7 +2268,26 @@ "cell_type": "code", "execution_count": 55, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "total cost = $ 442301.47075252194\n", + "operating cost = $ 427596.73056805483\n", + "capital cost = $ 14704.740184467111\n", + "\n", + "Distillate flowrate = 0.16196898920633368 mol/s\n", + "Benzene purity = 89.4916166580088 %\n", + "Residue flowrate = 0.10515007120697904 mol/s\n", + "Toluene purity = 43.32260291055251 %\n", + "\n", + "Conversion = 75.0 %\n", + "\n", + "Overhead benzene loss in F101 = 42.161938483603194 %\n" + ] + } + ], "source": [ "print(\"total cost = $\", value(m.fs.capital_cost) + value(m.fs.operating_cost))\n", "print(\"operating cost = $\", value(m.fs.operating_cost))\n", @@ -1319,7 +2332,40 @@ "cell_type": "code", "execution_count": 57, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "====================================================================================\n", + "Unit : fs.R101 Time: 0.0\n", + "------------------------------------------------------------------------------------\n", + " Unit Performance\n", + "\n", + " Variables: \n", + "\n", + " Key : Value : Units : Fixed : Bounds\n", + " Heat Duty : 0.0000 : watt : True : (None, None)\n", + " Volume : 0.14705 : meter ** 3 : False : (None, None)\n", + "\n", + "------------------------------------------------------------------------------------\n", + " Stream Table\n", + " Units Inlet Outlet \n", + " flow_mol_phase_comp ('Liq', 'benzene') mole / second 1.2993e-07 1.2993e-07\n", + " flow_mol_phase_comp ('Liq', 'toluene') mole / second 8.4147e-07 8.4147e-07\n", + " flow_mol_phase_comp ('Liq', 'methane') mole / second 1.0000e-12 1.0000e-12\n", + " flow_mol_phase_comp ('Liq', 'hydrogen') mole / second 1.0000e-12 1.0000e-12\n", + " flow_mol_phase_comp ('Vap', 'benzene') mole / second 0.11936 0.35374\n", + " flow_mol_phase_comp ('Vap', 'toluene') mole / second 0.31252 0.078129\n", + " flow_mol_phase_comp ('Vap', 'methane') mole / second 1.0377 1.2721\n", + " flow_mol_phase_comp ('Vap', 'hydrogen') mole / second 0.56260 0.32821\n", + " temperature kelvin 600.00 771.85\n", + " pressure pascal 3.5000e+05 3.5000e+05\n", + "====================================================================================\n" + ] + } + ], "source": [ "m.fs.R101.report()" ] @@ -1335,7 +2381,40 @@ "cell_type": "code", "execution_count": 58, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "====================================================================================\n", + "Unit : fs.F101 Time: 0.0\n", + "------------------------------------------------------------------------------------\n", + " Unit Performance\n", + "\n", + " Variables: \n", + "\n", + " Key : Value : Units : Fixed : Bounds\n", + " Heat Duty : -70343. : watt : False : (None, None)\n", + " Pressure Change : 0.0000 : pascal : True : (None, None)\n", + "\n", + "------------------------------------------------------------------------------------\n", + " Stream Table\n", + " Units Inlet Vapor Outlet Liquid Outlet\n", + " flow_mol_phase_comp ('Liq', 'benzene') mole / second 1.2993e-07 1.0000e-08 0.20460 \n", + " flow_mol_phase_comp ('Liq', 'toluene') mole / second 8.4147e-07 1.0000e-08 0.062520 \n", + " flow_mol_phase_comp ('Liq', 'methane') mole / second 1.0000e-12 1.0000e-08 2.6712e-07 \n", + " flow_mol_phase_comp ('Liq', 'hydrogen') mole / second 1.0000e-12 1.0000e-08 2.6712e-07 \n", + " flow_mol_phase_comp ('Vap', 'benzene') mole / second 0.35374 0.14915 1.0000e-08 \n", + " flow_mol_phase_comp ('Vap', 'toluene') mole / second 0.078129 0.015610 1.0000e-08 \n", + " flow_mol_phase_comp ('Vap', 'methane') mole / second 1.2721 1.2721 1.0000e-08 \n", + " flow_mol_phase_comp ('Vap', 'hydrogen') mole / second 0.32821 0.32821 1.0000e-08 \n", + " temperature kelvin 771.85 325.00 325.00 \n", + " pressure pascal 3.5000e+05 3.5000e+05 3.5000e+05 \n", + "====================================================================================\n" + ] + } + ], "source": [ "m.fs.F101.report()" ] @@ -1356,7 +2435,25 @@ "cell_type": "code", "execution_count": 59, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Units Reactor Light Gases\n", + "flow_mol_phase_comp ('Liq', 'benzene') mole / second 1.2993e-07 1.0000e-08 \n", + "flow_mol_phase_comp ('Liq', 'toluene') mole / second 8.4147e-07 1.0000e-08 \n", + "flow_mol_phase_comp ('Liq', 'methane') mole / second 1.0000e-12 1.0000e-08 \n", + "flow_mol_phase_comp ('Liq', 'hydrogen') mole / second 1.0000e-12 1.0000e-08 \n", + "flow_mol_phase_comp ('Vap', 'benzene') mole / second 0.35374 0.14915 \n", + "flow_mol_phase_comp ('Vap', 'toluene') mole / second 0.078129 0.015610 \n", + "flow_mol_phase_comp ('Vap', 'methane') mole / second 1.2721 1.2721 \n", + "flow_mol_phase_comp ('Vap', 'hydrogen') mole / second 0.32821 0.32821 \n", + "temperature kelvin 771.85 325.00 \n", + "pressure pascal 3.5000e+05 3.5000e+05 \n" + ] + } + ], "source": [ "from idaes.core.util.tables import (\n", " create_stream_table_dataframe,\n", @@ -1663,7 +2760,117 @@ "cell_type": "code", "execution_count": 71, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING: model contains export suffix 'scaling_factor' that contains 3\n", + "component keys that are not exported as part of the NL file. Skipping.\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 150 keys\n", + "that are not Var, Constraint, Objective, or the model. Skipping.\n", + "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", + "tol=1e-06\n", + "max_iter=200\n", + "\n", + "\n", + "******************************************************************************\n", + "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", + " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", + " For more information visit http://projects.coin-or.org/Ipopt\n", + "\n", + "This version of Ipopt was compiled from source code available at\n", + " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", + " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", + " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", + "\n", + "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", + " for large-scale scientific computation. All technical papers, sales and\n", + " publicity material resulting from use of the HSL codes within IPOPT must\n", + " contain the following acknowledgement:\n", + " HSL, a collection of Fortran codes for large-scale scientific\n", + " computation. See http://www.hsl.rl.ac.uk.\n", + "******************************************************************************\n", + "\n", + "This is Ipopt version 3.13.2, running with linear solver ma27.\n", + "\n", + "Number of nonzeros in equality constraint Jacobian...: 4073\n", + "Number of nonzeros in inequality constraint Jacobian.: 6\n", + "Number of nonzeros in Lagrangian Hessian.............: 2391\n", + "\n", + "Total number of variables............................: 1176\n", + " variables with only lower bounds: 113\n", + " variables with lower and upper bounds: 372\n", + " variables with only upper bounds: 0\n", + "Total number of equality constraints.................: 1169\n", + "Total number of inequality constraints...............: 3\n", + " inequality constraints with only lower bounds: 2\n", + " inequality constraints with lower and upper bounds: 0\n", + " inequality constraints with only upper bounds: 1\n", + "\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 0 4.4230147e+05 2.99e+05 9.90e+01 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", + " 1 4.3753585e+05 2.91e+05 1.28e+02 -1.0 3.09e+06 - 3.58e-01 2.40e-02f 1\n", + " 2 4.3545100e+05 2.78e+05 1.55e+02 -1.0 1.78e+06 - 3.31e-01 4.74e-02h 1\n", + " 3 4.2822311e+05 2.20e+05 4.50e+02 -1.0 2.99e+06 - 2.95e-02 1.35e-01h 1\n", + " 4 4.2249096e+05 1.45e+05 1.43e+03 -1.0 7.01e+06 - 5.14e-01 2.03e-01h 1\n", + " 5 4.2194364e+05 8.17e+04 1.70e+04 -1.0 6.06e+06 - 5.97e-01 4.28e-01h 1\n", + " 6 4.2602765e+05 4.55e+04 1.10e+06 -1.0 4.32e+06 - 9.26e-01 5.07e-01h 1\n", + " 7 4.3776643e+05 2.03e+04 6.44e+09 -1.0 2.42e+06 - 9.90e-01 9.47e-01h 1\n", + " 8 4.3846260e+05 1.92e+04 6.05e+09 -1.0 4.42e+05 - 5.40e-01 5.74e-02h 1\n", + " 9 4.4529853e+05 4.05e+04 4.66e+10 -1.0 2.47e+05 - 9.96e-01 9.90e-01h 1\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 10 4.4906283e+05 9.76e+03 1.10e+10 -1.0 1.12e+03 -4.0 1.26e-01 7.45e-01h 1\n", + " 11 4.5079086e+05 1.19e+03 1.54e+09 -1.0 5.63e+02 -4.5 3.77e-01 1.00e+00h 1\n", + " 12 4.5024224e+05 2.66e+00 3.67e+06 -1.0 6.61e+01 -5.0 1.00e+00 1.00e+00f 1\n", + " 13 4.4946170e+05 5.64e-01 9.29e+05 -1.0 1.81e+02 -5.4 1.00e+00 7.88e-01f 1\n", + " 14 4.4916780e+05 8.48e+00 1.62e+05 -1.0 2.83e+02 -5.9 1.00e+00 1.00e+00f 1\n", + " 15 4.4899127e+05 4.83e+00 9.07e+04 -1.0 1.01e+02 -6.4 1.00e+00 4.40e-01f 2\n", + " 16 4.4886718e+05 7.00e-01 4.61e+02 -1.0 2.35e+02 -6.9 1.00e+00 1.00e+00f 1\n", + " 17 4.4800159e+05 1.39e+02 4.52e+06 -3.8 1.17e+03 -7.3 9.79e-01 9.37e-01f 1\n", + " 18 4.4672196e+05 9.59e+02 1.22e+06 -3.8 4.55e+03 -7.8 1.00e+00 9.43e-01f 1\n", + " 19 4.4401667e+05 7.75e+03 1.55e+05 -3.8 1.08e+04 -8.3 1.00e+00 1.00e+00f 1\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 20 4.4185035e+05 1.91e+04 1.36e+04 -3.8 1.33e+04 -8.8 1.00e+00 1.00e+00h 1\n", + " 21 4.4241001e+05 3.52e+03 5.96e+03 -3.8 2.94e+03 -9.2 1.00e+00 1.00e+00h 1\n", + " 22 4.4185237e+05 7.82e+00 2.91e+02 -3.8 7.13e+03 -9.7 2.39e-01 1.00e+00h 1\n", + " 23 4.4124091e+05 1.53e+01 3.11e+02 -3.8 4.82e+04 -10.2 8.59e-01 1.36e-01f 1\n", + " 24 4.4137379e+05 1.80e+00 2.91e+02 -3.8 1.41e+04 - 1.95e-01 1.00e+00h 1\n", + " 25 4.3862833e+05 1.70e+03 9.48e+04 -3.8 1.57e+07 - 1.29e-03 9.10e-02f 1\n", + " 26 4.3883308e+05 1.49e+03 8.46e+04 -3.8 1.02e+06 - 1.00e+00 1.35e-01h 1\n", + " 27 4.3885472e+05 2.18e+01 3.40e+03 -3.8 1.38e+05 - 1.00e+00 1.00e+00h 1\n", + " 28 4.3884160e+05 5.90e-02 6.38e+01 -3.8 8.66e+03 - 1.00e+00 1.00e+00h 1\n", + " 29 4.3884157e+05 6.48e-07 4.63e-04 -3.8 2.89e+01 - 1.00e+00 1.00e+00h 1\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 30 4.3883990e+05 3.57e-01 2.38e+03 -5.7 8.19e+02 - 1.00e+00 1.00e+00f 1\n", + " 31 4.3883992e+05 3.50e-07 7.79e-06 -5.7 3.55e-01 - 1.00e+00 1.00e+00h 1\n", + " 32 4.3883990e+05 5.47e-05 3.63e-01 -8.0 1.01e+01 - 1.00e+00 1.00e+00h 1\n", + " 33 4.3883990e+05 2.24e-08 1.46e-07 -8.0 5.42e-05 - 1.00e+00 1.00e+00h 1\n", + "\n", + "Number of Iterations....: 33\n", + "\n", + " (scaled) (unscaled)\n", + "Objective...............: 4.3883989842628603e+02 4.3883989842628600e+05\n", + "Dual infeasibility......: 1.4600704448671754e-07 1.4600704448671753e-04\n", + "Constraint violation....: 2.9103830456733704e-11 2.2351741790771484e-08\n", + "Complementarity.........: 9.0909948039799681e-09 9.0909948039799686e-06\n", + "Overall NLP error.......: 9.0909948039799681e-09 1.4600704448671753e-04\n", + "\n", + "\n", + "Number of objective function evaluations = 35\n", + "Number of objective gradient evaluations = 34\n", + "Number of equality constraint evaluations = 35\n", + "Number of inequality constraint evaluations = 35\n", + "Number of equality constraint Jacobian evaluations = 34\n", + "Number of inequality constraint Jacobian evaluations = 34\n", + "Number of Lagrangian Hessian evaluations = 33\n", + "Total CPU secs in IPOPT (w/o function evaluations) = 0.164\n", + "Total CPU secs in NLP function evaluations = 0.020\n", + "\n", + "EXIT: Optimal Solution Found.\n" + ] + } + ], "source": [ "results = solver.solve(m, tee=True)" ] @@ -1681,7 +2888,26 @@ "cell_type": "code", "execution_count": 73, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "total cost = $ 438839.898426286\n", + "operating cost = $ 408883.5314830889\n", + "capital cost = $ 29956.3669431971\n", + "\n", + "Distillate flowrate = 0.1799999900263989 mol/s\n", + "Benzene purity = 98.99999900049086 %\n", + "Residue flowrate = 0.1085161642426372 mol/s\n", + "Toluene purity = 15.676178086213548 %\n", + "\n", + "Conversion = 93.38705916369427 %\n", + "\n", + "Overhead benzene loss in F101 = 17.34061793115618 %\n" + ] + } + ], "source": [ "print(\"total cost = $\", value(m.fs.capital_cost) + value(m.fs.operating_cost))\n", "print(\"operating cost = $\", value(m.fs.operating_cost))\n", @@ -1726,7 +2952,23 @@ "cell_type": "code", "execution_count": 75, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Optimal Values\n", + "\n", + "H101 outlet temperature = 568.923204295196 K\n", + "\n", + "R101 outlet temperature = 790.3655425698853 K\n", + "\n", + "F101 outlet temperature = 298.0 K\n", + "\n", + "H102 outlet temperature = 368.7414339952852 K\n" + ] + } + ], "source": [ "print(\"Optimal Values\")\n", "print()\n", @@ -1756,13 +2998,6 @@ "\n", "Finally, observe that the operating temperature of the flash (F101) is almost at its lower bound. This helps in minimizing the amount of benzene in the vapor stream leaving the flash." ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { @@ -1782,9 +3017,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.16" + "version": "3.10.13" } }, "nbformat": 4, "nbformat_minor": 3 -} +} \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/flowsheets/hda_flowsheet_with_distillation_test.ipynb b/idaes_examples/notebooks/docs/flowsheets/hda_flowsheet_with_distillation_test.ipynb index 1468da16..b035cc2c 100644 --- a/idaes_examples/notebooks/docs/flowsheets/hda_flowsheet_with_distillation_test.ipynb +++ b/idaes_examples/notebooks/docs/flowsheets/hda_flowsheet_with_distillation_test.ipynb @@ -61,7 +61,7 @@ "example, toluene will be reacted with hydrogen gas at high temperatures\n", " to form benzene via the following reaction:\n", "\n", - "**C6H5CH3 + H2 → C6H6 + CH4**\n", + "**C6H5CH3 + H2 \u2192 C6H6 + CH4**\n", "\n", "\n", "This reaction is often accompanied by an equilibrium side reaction\n", @@ -221,6 +221,7 @@ "from idaes.core.util.initialization import propagate_state\n", "from idaes.core.solvers import get_solver\n", "import idaes.core.util.scaling as iscale\n", + "from idaes.core.util.exceptions import InitializationError\n", "\n", "# Import idaes logger to set output levels\n", "import idaes.logger as idaeslog" @@ -672,7 +673,15 @@ "cell_type": "code", "execution_count": 28, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "29\n" + ] + } + ], "source": [ "print(degrees_of_freedom(m))" ] @@ -871,7 +880,42 @@ "cell_type": "code", "execution_count": 38, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].flow_mol_phase\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enth_mol_phase_comp[Liq,benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enth_mol_phase_comp[Liq,toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enth_mol_phase_comp[Vap,benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enth_mol_phase_comp[Vap,toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].enth_mol_phase_comp[Liq,benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].enth_mol_phase_comp[Liq,toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].enth_mol_phase_comp[Vap,benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].enth_mol_phase_comp[Vap,toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].material_flow_terms[Liq,benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].material_flow_terms[Vap,benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].material_flow_terms[Liq,toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].material_flow_terms[Vap,toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enthalpy_flow_terms[Liq], enthalpy_flow_terms\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enthalpy_flow_terms[Vap], enthalpy_flow_terms\n" + ] + } + ], "source": [ "# Set scaling factors for heat duty, reaction extent and volume\n", "iscale.set_scaling_factor(m.fs.H101.control_volume.heat, 1e-2)\n", @@ -908,7 +952,15 @@ "solution" ] }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n" + ] + } + ], "source": [ "# Todo: Check the degrees of freedom\n", "print(degrees_of_freedom(m))" @@ -967,7 +1019,15 @@ "cell_type": "code", "execution_count": 43, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "fs.s03\n" + ] + } + ], "source": [ "for o in heuristic_tear_set:\n", " print(o.name)" @@ -984,7 +1044,20 @@ "cell_type": "code", "execution_count": 44, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "fs.H101\n", + "fs.R101\n", + "fs.F101\n", + "fs.S101\n", + "fs.C101\n", + "fs.M101\n" + ] + } + ], "source": [ "for o in order:\n", " print(o[0].name)" @@ -1016,7 +1089,7 @@ " (0, \"Liq\", \"hydrogen\"): 1e-5,\n", " (0, \"Liq\", \"methane\"): 1e-5,\n", " },\n", - " \"temperature\": {0: 303},\n", + " \"temperature\": {0: 303.2},\n", " \"pressure\": {0: 350000},\n", "}\n", "\n", @@ -1028,7 +1101,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Next, we need to tell the tool how to initialize a particular unit. We will be writing a python function which takes in a \"unit\" and calls the initialize method on that unit." + "Next, we need to tell the tool how to initialize a particular unit. We will be writing a python function which takes in a \"unit\" and calls the initialize method on that unit. For the initialization, we will import a Block Triangularization Initializer which decomposes the model into a set of subproblems. These subproblems are solved using a block triangularization transformation before applying a simple Newton or user-selected solver. Methods such as block triangularization often solve faster and yield more reliable behavior than heuristic methods, but sometime struggle to decompose models with strongly coupled equations (e.g. column models, systems with counter-current flow, vapor-liquid equilibrium)." ] }, { @@ -1038,7 +1111,15 @@ "outputs": [], "source": [ "def function(unit):\n", - " unit.initialize(outlvl=idaeslog.INFO)" + " # Try initializing using default initializer, \n", + " # if it fails (probably due to scaling) try for the second time\n", + " try:\n", + " initializer = unit.default_initializer()\n", + " initializer.initialize(unit, output_level=idaeslog.INFO)\n", + " except InitializationError:\n", + " solver=get_solver()\n", + " solver.solve(unit)\n", + " " ] }, { @@ -1054,7 +1135,132 @@ "metadata": { "scrolled": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-08-28 18:38:14 [INFO] idaes.init.fs.H101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:16 [INFO] idaes.init.fs.H101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:16 [INFO] idaes.init.fs.R101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:16 [INFO] idaes.init.fs.R101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:17 [INFO] idaes.init.fs.F101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:17 [INFO] idaes.init.fs.F101.control_volume.properties_out: Initialization Complete\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 12\n", + "component keys that are not exported as part of the NL file. Skipping.\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 50 keys\n", + "that are not Var, Constraint, Objective, or the model. Skipping.\n", + "2024-08-28 18:38:17 [INFO] idaes.init.fs.S101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:17 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n", + "2024-08-28 18:38:17 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n", + "2024-08-28 18:38:17 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - \n", + "2024-08-28 18:38:18 [INFO] idaes.init.fs.C101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:18 [INFO] idaes.init.fs.C101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:18 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 1 optimal - .\n", + "2024-08-28 18:38:18 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 2 optimal - .\n", + "2024-08-28 18:38:19 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 3 optimal - .\n", + "2024-08-28 18:38:19 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 4 optimal - .\n", + "2024-08-28 18:38:19 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 5 optimal - .\n", + "2024-08-28 18:38:19 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 1 optimal - .\n", + "2024-08-28 18:38:19 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 2 optimal - .\n", + "2024-08-28 18:38:20 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 3 optimal - .\n", + "2024-08-28 18:38:20 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 4 optimal - .\n", + "2024-08-28 18:38:20 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 5 optimal - .\n", + "2024-08-28 18:38:20 [INFO] idaes.init.fs.M101.toluene_feed_state: Initialization Complete\n", + "2024-08-28 18:38:20 [INFO] idaes.init.fs.M101.hydrogen_feed_state: Initialization Complete\n", + "2024-08-28 18:38:20 [INFO] idaes.init.fs.M101.vapor_recycle_state: Initialization Complete\n", + "2024-08-28 18:38:21 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:21 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - \n", + "2024-08-28 18:38:21 [INFO] idaes.init.fs.H101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:21 [INFO] idaes.init.fs.H101.control_volume.properties_out: Initialization Complete\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 11\n", + "component keys that are not exported as part of the NL file. Skipping.\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 50 keys\n", + "that are not Var, Constraint, Objective, or the model. Skipping.\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.R101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.R101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.F101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.F101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.S101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - \n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.C101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.C101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.M101.toluene_feed_state: Initialization Complete\n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.M101.hydrogen_feed_state: Initialization Complete\n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.M101.vapor_recycle_state: Initialization Complete\n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - \n", + "2024-08-28 18:38:24 [INFO] idaes.init.fs.H101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:24 [INFO] idaes.init.fs.H101.control_volume.properties_out: Initialization Complete\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 11\n", + "component keys that are not exported as part of the NL file. Skipping.\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 50 keys\n", + "that are not Var, Constraint, Objective, or the model. Skipping.\n", + "2024-08-28 18:38:24 [INFO] idaes.init.fs.R101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:24 [INFO] idaes.init.fs.R101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.F101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.F101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.S101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - \n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.C101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.C101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.M101.toluene_feed_state: Initialization Complete\n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.M101.hydrogen_feed_state: Initialization Complete\n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.M101.vapor_recycle_state: Initialization Complete\n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - \n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.H101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.H101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.R101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.R101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.F101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.F101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.S101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - \n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.C101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.C101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.M101.toluene_feed_state: Initialization Complete\n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.M101.hydrogen_feed_state: Initialization Complete\n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.M101.vapor_recycle_state: Initialization Complete\n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - \n", + "2024-08-28 18:38:29 [INFO] idaes.init.fs.H101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:29 [INFO] idaes.init.fs.H101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:29 [INFO] idaes.init.fs.R101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:29 [INFO] idaes.init.fs.R101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.F101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.F101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.S101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - \n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.C101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.C101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.M101.toluene_feed_state: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.M101.hydrogen_feed_state: Initialization Complete\n", + "2024-08-28 18:38:31 [INFO] idaes.init.fs.M101.vapor_recycle_state: Initialization Complete\n", + "2024-08-28 18:38:31 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:31 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - \n", + "WARNING: Wegstein failed to converge in 3 iterations\n", + "2024-08-28 18:38:31 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 1 optimal - .\n", + "2024-08-28 18:38:31 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 2 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 3 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 4 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 5 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 1 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 2 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 3 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 4 optimal - .\n", + "2024-08-28 18:38:33 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 5 optimal - .\n" + ] + } + ], "source": [ "seq.run(m, function)" ] @@ -1073,7 +1279,91 @@ "cell_type": "code", "execution_count": 48, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING: model contains export suffix 'scaling_factor' that contains 6\n", + "component keys that are not exported as part of the NL file. Skipping.\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 150 keys\n", + "that are not Var, Constraint, Objective, or the model. Skipping.\n", + "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", + "tol=1e-06\n", + "max_iter=200\n", + "\n", + "\n", + "******************************************************************************\n", + "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", + " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", + " For more information visit http://projects.coin-or.org/Ipopt\n", + "\n", + "This version of Ipopt was compiled from source code available at\n", + " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", + " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", + " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", + "\n", + "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", + " for large-scale scientific computation. All technical papers, sales and\n", + " publicity material resulting from use of the HSL codes within IPOPT must\n", + " contain the following acknowledgement:\n", + " HSL, a collection of Fortran codes for large-scale scientific\n", + " computation. See http://www.hsl.rl.ac.uk.\n", + "******************************************************************************\n", + "\n", + "This is Ipopt version 3.13.2, running with linear solver ma27.\n", + "\n", + "Number of nonzeros in equality constraint Jacobian...: 1097\n", + "Number of nonzeros in inequality constraint Jacobian.: 0\n", + "Number of nonzeros in Lagrangian Hessian.............: 877\n", + "\n", + "Total number of variables............................: 363\n", + " variables with only lower bounds: 8\n", + " variables with lower and upper bounds: 155\n", + " variables with only upper bounds: 0\n", + "Total number of equality constraints.................: 363\n", + "Total number of inequality constraints...............: 0\n", + " inequality constraints with only lower bounds: 0\n", + " inequality constraints with lower and upper bounds: 0\n", + " inequality constraints with only upper bounds: 0\n", + "\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 0 0.0000000e+00 3.82e+04 1.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", + " 1 0.0000000e+00 8.69e+03 1.44e+03 -1.0 2.00e+04 - 9.71e-01 4.67e-01H 1\n", + " 2 0.0000000e+00 1.29e+03 1.56e+03 -1.0 1.60e+04 - 9.79e-01 4.90e-01h 1\n", + " 3 0.0000000e+00 1.18e+03 1.55e+05 -1.0 1.40e+04 - 9.90e-01 4.99e-01h 1\n", + " 4 0.0000000e+00 5.46e+02 2.32e+09 -1.0 8.42e+03 - 1.00e+00 9.82e-01h 1\n", + " 5 0.0000000e+00 5.46e+03 3.66e+10 -1.0 5.97e+02 - 1.00e+00 9.90e-01h 1\n", + " 6 0.0000000e+00 1.21e+03 8.01e+09 -1.0 5.75e+00 - 1.00e+00 1.00e+00h 1\n", + " 7 0.0000000e+00 6.41e+00 3.87e+07 -1.0 1.53e-03 - 1.00e+00 1.00e+00f 1\n", + " 8 0.0000000e+00 1.96e-04 9.36e+02 -1.0 7.28e-06 - 1.00e+00 1.00e+00h 1\n", + " 9 0.0000000e+00 2.24e-08 4.99e-01 -3.8 5.92e-08 - 1.00e+00 1.00e+00h 1\n", + "Cannot recompute multipliers for feasibility problem. Error in eq_mult_calculator\n", + "\n", + "Number of Iterations....: 9\n", + "\n", + " (scaled) (unscaled)\n", + "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Dual infeasibility......: 1.5042487592972509e+04 1.5042487592972509e+04\n", + "Constraint violation....: 2.9103830456733704e-11 2.2351741790771484e-08\n", + "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Overall NLP error.......: 2.9103830456733704e-11 1.5042487592972509e+04\n", + "\n", + "\n", + "Number of objective function evaluations = 11\n", + "Number of objective gradient evaluations = 10\n", + "Number of equality constraint evaluations = 11\n", + "Number of inequality constraint evaluations = 0\n", + "Number of equality constraint Jacobian evaluations = 10\n", + "Number of inequality constraint Jacobian evaluations = 0\n", + "Number of Lagrangian Hessian evaluations = 9\n", + "Total CPU secs in IPOPT (w/o function evaluations) = 0.011\n", + "Total CPU secs in NLP function evaluations = 0.001\n", + "\n", + "EXIT: Optimal Solution Found.\n" + ] + } + ], "source": [ "# Create the solver object\n", "solver = get_solver()\n", @@ -1121,7 +1411,617 @@ "cell_type": "code", "execution_count": 50, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].material_flow_terms[Liq,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].material_flow_terms[Vap,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].material_flow_terms[Liq,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].material_flow_terms[Vap,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].enthalpy_flow_terms[Liq], enthalpy_flow_terms\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].enthalpy_flow_terms[Vap], enthalpy_flow_terms\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].material_flow_terms[Liq,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].material_flow_terms[Vap,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].material_flow_terms[Liq,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].material_flow_terms[Vap,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].enthalpy_flow_terms[Liq], enthalpy_flow_terms\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].enthalpy_flow_terms[Vap], enthalpy_flow_terms\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.e_flow_reflux[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.e_mole_frac_reflux[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.e_mole_frac_reflux[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.e_flow_vapor_reboil[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.e_mole_frac_vapor_reboil[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.e_mole_frac_vapor_reboil[0.0,toluene]\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101: Begin initialization.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray: Begin initialization.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_out: State Released.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: State Released.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: State Released.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: State Released.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.condenser.control_volume: Initialization Complete\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.condenser: Initialization Complete, optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: State Released.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: State Released.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler: Initialization Complete, optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: State Released.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.rectification_section[1]: Begin initialization.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: State Released.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: State Released.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[2]: Begin initialization.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: State Released.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[2]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[2]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: State Released.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: State Released.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3]: Begin initialization.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: State Released.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[3]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[3]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[3]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: State Released.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: State Released.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4]: Begin initialization.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: State Released.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: State Released.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.stripping_section[6]: Begin initialization.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: State Released.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: State Released.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[7]: Begin initialization.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: State Released.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[7]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[7]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: State Released.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: State Released.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8]: Begin initialization.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: State Released.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[8]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[8]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[8]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: State Released.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: State Released.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9]: Begin initialization.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: State Released.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[9]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[9]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[9]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[9]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: State Released.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: State Released.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[10]: Begin initialization.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: State Released.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: State Released.\n", + "2024-08-28 18:39:01 [INFO] idaes.init.fs.D101: Rectification section initialization status optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:01 [INFO] idaes.init.fs.D101: Stripping section initialization status optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:01 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: State Released.\n", + "2024-08-28 18:39:01 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: State Released.\n", + "2024-08-28 18:39:01 [INFO] idaes.init.fs.D101: Column section initialization status optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:01 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: State Released.\n", + "2024-08-28 18:39:02 [INFO] idaes.init.fs.D101: Column section + Condenser initialization status optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:02 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: State Released.\n", + "2024-08-28 18:39:03 [INFO] idaes.init.fs.D101: Column section + Condenser + Reboiler initialization status optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:03 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: State Released.\n" + ] + } + ], "source": [ "# Add distillation column to the flowsheet\n", "m.fs.D101 = TrayColumn(\n", @@ -1220,7 +2120,101 @@ "cell_type": "code", "execution_count": 53, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING: model contains export suffix 'scaling_factor' that contains 7\n", + "component keys that are not exported as part of the NL file. Skipping.\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 150 keys\n", + "that are not Var, Constraint, Objective, or the model. Skipping.\n", + "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", + "tol=1e-06\n", + "max_iter=200\n", + "\n", + "\n", + "******************************************************************************\n", + "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", + " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", + " For more information visit http://projects.coin-or.org/Ipopt\n", + "\n", + "This version of Ipopt was compiled from source code available at\n", + " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", + " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", + " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", + "\n", + "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", + " for large-scale scientific computation. All technical papers, sales and\n", + " publicity material resulting from use of the HSL codes within IPOPT must\n", + " contain the following acknowledgement:\n", + " HSL, a collection of Fortran codes for large-scale scientific\n", + " computation. See http://www.hsl.rl.ac.uk.\n", + "******************************************************************************\n", + "\n", + "This is Ipopt version 3.13.2, running with linear solver ma27.\n", + "\n", + "Number of nonzeros in equality constraint Jacobian...: 4042\n", + "Number of nonzeros in inequality constraint Jacobian.: 0\n", + "Number of nonzeros in Lagrangian Hessian.............: 2376\n", + "\n", + "Total number of variables............................: 1169\n", + " variables with only lower bounds: 112\n", + " variables with lower and upper bounds: 365\n", + " variables with only upper bounds: 0\n", + "Total number of equality constraints.................: 1169\n", + "Total number of inequality constraints...............: 0\n", + " inequality constraints with only lower bounds: 0\n", + " inequality constraints with lower and upper bounds: 0\n", + " inequality constraints with only upper bounds: 0\n", + "\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 0 0.0000000e+00 3.83e+04 1.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", + " 1 0.0000000e+00 8.70e+03 1.50e+03 -1.0 3.69e+04 - 9.71e-01 4.62e-01H 1\n", + " 2 0.0000000e+00 1.53e+03 1.56e+03 -1.0 6.75e+03 - 9.77e-01 4.89e-01h 1\n", + " 3 0.0000000e+00 1.37e+03 1.55e+05 -1.0 9.37e+03 - 9.90e-01 4.99e-01h 1\n", + " 4 0.0000000e+00 6.14e+02 2.31e+09 -1.0 6.09e+03 - 1.00e+00 9.81e-01h 1\n", + " 5 0.0000000e+00 5.32e+03 3.62e+10 -1.0 5.56e+02 - 1.00e+00 9.90e-01h 1\n", + " 6 0.0000000e+00 1.16e+03 7.80e+09 -1.0 5.36e+00 - 1.00e+00 1.00e+00h 1\n", + " 7 0.0000000e+00 5.96e+00 3.64e+07 -1.0 1.47e-03 - 1.00e+00 1.00e+00f 1\n", + " 8 0.0000000e+00 1.69e-04 8.15e+02 -1.0 6.77e-06 - 1.00e+00 1.00e+00h 1\n", + " 9 0.0000000e+00 7.45e-09 6.64e-03 -3.8 2.00e-07 - 1.00e+00 1.00e+00h 1\n", + "Cannot recompute multipliers for feasibility problem. Error in eq_mult_calculator\n", + "\n", + "Number of Iterations....: 9\n", + "\n", + " (scaled) (unscaled)\n", + "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Dual infeasibility......: 1.5042483516409773e+04 1.5042483516409773e+04\n", + "Constraint violation....: 2.9103830456733704e-11 7.4505805969238281e-09\n", + "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Overall NLP error.......: 2.9103830456733704e-11 1.5042483516409773e+04\n", + "\n", + "\n", + "Number of objective function evaluations = 11\n", + "Number of objective gradient evaluations = 10\n", + "Number of equality constraint evaluations = 11\n", + "Number of inequality constraint evaluations = 0\n", + "Number of equality constraint Jacobian evaluations = 10\n", + "Number of inequality constraint Jacobian evaluations = 0\n", + "Number of Lagrangian Hessian evaluations = 9\n", + "Total CPU secs in IPOPT (w/o function evaluations) = 0.083\n", + "Total CPU secs in NLP function evaluations = 0.013\n", + "\n", + "EXIT: Optimal Solution Found.\n" + ] + }, + { + "data": { + "text/plain": [ + "{'Problem': [{'Lower bound': -inf, 'Upper bound': inf, 'Number of objectives': 1, 'Number of constraints': 1169, 'Number of variables': 1169, 'Sense': 'unknown'}], 'Solver': [{'Status': 'ok', 'Message': 'Ipopt 3.13.2\\\\x3a Optimal Solution Found', 'Termination condition': 'optimal', 'Id': 0, 'Error rc': 0, 'Time': 0.2022566795349121}], 'Solution': [OrderedDict([('number of solutions', 0), ('number of solutions displayed', 0)])]}" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "solver.solve(m, tee=True)" ] @@ -1254,7 +2248,26 @@ "cell_type": "code", "execution_count": 55, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "total cost = $ 442301.47075252194\n", + "operating cost = $ 427596.73056805483\n", + "capital cost = $ 14704.740184467111\n", + "\n", + "Distillate flowrate = 0.16196898920633368 mol/s\n", + "Benzene purity = 89.4916166580088 %\n", + "Residue flowrate = 0.10515007120697904 mol/s\n", + "Toluene purity = 43.32260291055251 %\n", + "\n", + "Conversion = 75.0 %\n", + "\n", + "Overhead benzene loss in F101 = 42.161938483603194 %\n" + ] + } + ], "source": [ "print(\"total cost = $\", value(m.fs.capital_cost) + value(m.fs.operating_cost))\n", "print(\"operating cost = $\", value(m.fs.operating_cost))\n", @@ -1296,7 +2309,16 @@ "testing" ] }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "427596.73056805483\n", + "14704.740184467111\n" + ] + } + ], "source": [ "import pytest\n", "\n", @@ -1317,7 +2339,40 @@ "cell_type": "code", "execution_count": 57, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "====================================================================================\n", + "Unit : fs.R101 Time: 0.0\n", + "------------------------------------------------------------------------------------\n", + " Unit Performance\n", + "\n", + " Variables: \n", + "\n", + " Key : Value : Units : Fixed : Bounds\n", + " Heat Duty : 0.0000 : watt : True : (None, None)\n", + " Volume : 0.14705 : meter ** 3 : False : (None, None)\n", + "\n", + "------------------------------------------------------------------------------------\n", + " Stream Table\n", + " Units Inlet Outlet \n", + " flow_mol_phase_comp ('Liq', 'benzene') mole / second 1.2993e-07 1.2993e-07\n", + " flow_mol_phase_comp ('Liq', 'toluene') mole / second 8.4147e-07 8.4147e-07\n", + " flow_mol_phase_comp ('Liq', 'methane') mole / second 1.0000e-12 1.0000e-12\n", + " flow_mol_phase_comp ('Liq', 'hydrogen') mole / second 1.0000e-12 1.0000e-12\n", + " flow_mol_phase_comp ('Vap', 'benzene') mole / second 0.11936 0.35374\n", + " flow_mol_phase_comp ('Vap', 'toluene') mole / second 0.31252 0.078129\n", + " flow_mol_phase_comp ('Vap', 'methane') mole / second 1.0377 1.2721\n", + " flow_mol_phase_comp ('Vap', 'hydrogen') mole / second 0.56260 0.32821\n", + " temperature kelvin 600.00 771.85\n", + " pressure pascal 3.5000e+05 3.5000e+05\n", + "====================================================================================\n" + ] + } + ], "source": [ "m.fs.R101.report()" ] @@ -1333,7 +2388,40 @@ "cell_type": "code", "execution_count": 58, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "====================================================================================\n", + "Unit : fs.F101 Time: 0.0\n", + "------------------------------------------------------------------------------------\n", + " Unit Performance\n", + "\n", + " Variables: \n", + "\n", + " Key : Value : Units : Fixed : Bounds\n", + " Heat Duty : -70343. : watt : False : (None, None)\n", + " Pressure Change : 0.0000 : pascal : True : (None, None)\n", + "\n", + "------------------------------------------------------------------------------------\n", + " Stream Table\n", + " Units Inlet Vapor Outlet Liquid Outlet\n", + " flow_mol_phase_comp ('Liq', 'benzene') mole / second 1.2993e-07 1.0000e-08 0.20460 \n", + " flow_mol_phase_comp ('Liq', 'toluene') mole / second 8.4147e-07 1.0000e-08 0.062520 \n", + " flow_mol_phase_comp ('Liq', 'methane') mole / second 1.0000e-12 1.0000e-08 2.6712e-07 \n", + " flow_mol_phase_comp ('Liq', 'hydrogen') mole / second 1.0000e-12 1.0000e-08 2.6712e-07 \n", + " flow_mol_phase_comp ('Vap', 'benzene') mole / second 0.35374 0.14915 1.0000e-08 \n", + " flow_mol_phase_comp ('Vap', 'toluene') mole / second 0.078129 0.015610 1.0000e-08 \n", + " flow_mol_phase_comp ('Vap', 'methane') mole / second 1.2721 1.2721 1.0000e-08 \n", + " flow_mol_phase_comp ('Vap', 'hydrogen') mole / second 0.32821 0.32821 1.0000e-08 \n", + " temperature kelvin 771.85 325.00 325.00 \n", + " pressure pascal 3.5000e+05 3.5000e+05 3.5000e+05 \n", + "====================================================================================\n" + ] + } + ], "source": [ "m.fs.F101.report()" ] @@ -1354,7 +2442,25 @@ "cell_type": "code", "execution_count": 59, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Units Reactor Light Gases\n", + "flow_mol_phase_comp ('Liq', 'benzene') mole / second 1.2993e-07 1.0000e-08 \n", + "flow_mol_phase_comp ('Liq', 'toluene') mole / second 8.4147e-07 1.0000e-08 \n", + "flow_mol_phase_comp ('Liq', 'methane') mole / second 1.0000e-12 1.0000e-08 \n", + "flow_mol_phase_comp ('Liq', 'hydrogen') mole / second 1.0000e-12 1.0000e-08 \n", + "flow_mol_phase_comp ('Vap', 'benzene') mole / second 0.35374 0.14915 \n", + "flow_mol_phase_comp ('Vap', 'toluene') mole / second 0.078129 0.015610 \n", + "flow_mol_phase_comp ('Vap', 'methane') mole / second 1.2721 1.2721 \n", + "flow_mol_phase_comp ('Vap', 'hydrogen') mole / second 0.32821 0.32821 \n", + "temperature kelvin 771.85 325.00 \n", + "pressure pascal 3.5000e+05 3.5000e+05 \n" + ] + } + ], "source": [ "from idaes.core.util.tables import (\n", " create_stream_table_dataframe,\n", @@ -1619,7 +2725,117 @@ "cell_type": "code", "execution_count": 71, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING: model contains export suffix 'scaling_factor' that contains 3\n", + "component keys that are not exported as part of the NL file. Skipping.\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 150 keys\n", + "that are not Var, Constraint, Objective, or the model. Skipping.\n", + "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", + "tol=1e-06\n", + "max_iter=200\n", + "\n", + "\n", + "******************************************************************************\n", + "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", + " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", + " For more information visit http://projects.coin-or.org/Ipopt\n", + "\n", + "This version of Ipopt was compiled from source code available at\n", + " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", + " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", + " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", + "\n", + "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", + " for large-scale scientific computation. All technical papers, sales and\n", + " publicity material resulting from use of the HSL codes within IPOPT must\n", + " contain the following acknowledgement:\n", + " HSL, a collection of Fortran codes for large-scale scientific\n", + " computation. See http://www.hsl.rl.ac.uk.\n", + "******************************************************************************\n", + "\n", + "This is Ipopt version 3.13.2, running with linear solver ma27.\n", + "\n", + "Number of nonzeros in equality constraint Jacobian...: 4073\n", + "Number of nonzeros in inequality constraint Jacobian.: 6\n", + "Number of nonzeros in Lagrangian Hessian.............: 2391\n", + "\n", + "Total number of variables............................: 1176\n", + " variables with only lower bounds: 113\n", + " variables with lower and upper bounds: 372\n", + " variables with only upper bounds: 0\n", + "Total number of equality constraints.................: 1169\n", + "Total number of inequality constraints...............: 3\n", + " inequality constraints with only lower bounds: 2\n", + " inequality constraints with lower and upper bounds: 0\n", + " inequality constraints with only upper bounds: 1\n", + "\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 0 4.4230147e+05 2.99e+05 9.90e+01 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", + " 1 4.3753585e+05 2.91e+05 1.28e+02 -1.0 3.09e+06 - 3.58e-01 2.40e-02f 1\n", + " 2 4.3545100e+05 2.78e+05 1.55e+02 -1.0 1.78e+06 - 3.31e-01 4.74e-02h 1\n", + " 3 4.2822311e+05 2.20e+05 4.50e+02 -1.0 2.99e+06 - 2.95e-02 1.35e-01h 1\n", + " 4 4.2249096e+05 1.45e+05 1.43e+03 -1.0 7.01e+06 - 5.14e-01 2.03e-01h 1\n", + " 5 4.2194364e+05 8.17e+04 1.70e+04 -1.0 6.06e+06 - 5.97e-01 4.28e-01h 1\n", + " 6 4.2602765e+05 4.55e+04 1.10e+06 -1.0 4.32e+06 - 9.26e-01 5.07e-01h 1\n", + " 7 4.3776643e+05 2.03e+04 6.44e+09 -1.0 2.42e+06 - 9.90e-01 9.47e-01h 1\n", + " 8 4.3846260e+05 1.92e+04 6.05e+09 -1.0 4.42e+05 - 5.40e-01 5.74e-02h 1\n", + " 9 4.4529853e+05 4.05e+04 4.66e+10 -1.0 2.47e+05 - 9.96e-01 9.90e-01h 1\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 10 4.4906283e+05 9.76e+03 1.10e+10 -1.0 1.12e+03 -4.0 1.26e-01 7.45e-01h 1\n", + " 11 4.5079086e+05 1.19e+03 1.54e+09 -1.0 5.63e+02 -4.5 3.77e-01 1.00e+00h 1\n", + " 12 4.5024224e+05 2.66e+00 3.67e+06 -1.0 6.61e+01 -5.0 1.00e+00 1.00e+00f 1\n", + " 13 4.4946170e+05 5.64e-01 9.29e+05 -1.0 1.81e+02 -5.4 1.00e+00 7.88e-01f 1\n", + " 14 4.4916780e+05 8.48e+00 1.62e+05 -1.0 2.83e+02 -5.9 1.00e+00 1.00e+00f 1\n", + " 15 4.4899127e+05 4.83e+00 9.07e+04 -1.0 1.01e+02 -6.4 1.00e+00 4.40e-01f 2\n", + " 16 4.4886718e+05 7.00e-01 4.61e+02 -1.0 2.35e+02 -6.9 1.00e+00 1.00e+00f 1\n", + " 17 4.4800159e+05 1.39e+02 4.52e+06 -3.8 1.17e+03 -7.3 9.79e-01 9.37e-01f 1\n", + " 18 4.4672196e+05 9.59e+02 1.22e+06 -3.8 4.55e+03 -7.8 1.00e+00 9.43e-01f 1\n", + " 19 4.4401667e+05 7.75e+03 1.55e+05 -3.8 1.08e+04 -8.3 1.00e+00 1.00e+00f 1\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 20 4.4185035e+05 1.91e+04 1.36e+04 -3.8 1.33e+04 -8.8 1.00e+00 1.00e+00h 1\n", + " 21 4.4241001e+05 3.52e+03 5.96e+03 -3.8 2.94e+03 -9.2 1.00e+00 1.00e+00h 1\n", + " 22 4.4185237e+05 7.82e+00 2.91e+02 -3.8 7.13e+03 -9.7 2.39e-01 1.00e+00h 1\n", + " 23 4.4124091e+05 1.53e+01 3.11e+02 -3.8 4.82e+04 -10.2 8.59e-01 1.36e-01f 1\n", + " 24 4.4137379e+05 1.80e+00 2.91e+02 -3.8 1.41e+04 - 1.95e-01 1.00e+00h 1\n", + " 25 4.3862833e+05 1.70e+03 9.48e+04 -3.8 1.57e+07 - 1.29e-03 9.10e-02f 1\n", + " 26 4.3883308e+05 1.49e+03 8.46e+04 -3.8 1.02e+06 - 1.00e+00 1.35e-01h 1\n", + " 27 4.3885472e+05 2.18e+01 3.40e+03 -3.8 1.38e+05 - 1.00e+00 1.00e+00h 1\n", + " 28 4.3884160e+05 5.90e-02 6.38e+01 -3.8 8.66e+03 - 1.00e+00 1.00e+00h 1\n", + " 29 4.3884157e+05 6.48e-07 4.63e-04 -3.8 2.89e+01 - 1.00e+00 1.00e+00h 1\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 30 4.3883990e+05 3.57e-01 2.38e+03 -5.7 8.19e+02 - 1.00e+00 1.00e+00f 1\n", + " 31 4.3883992e+05 3.50e-07 7.79e-06 -5.7 3.55e-01 - 1.00e+00 1.00e+00h 1\n", + " 32 4.3883990e+05 5.47e-05 3.63e-01 -8.0 1.01e+01 - 1.00e+00 1.00e+00h 1\n", + " 33 4.3883990e+05 2.24e-08 1.46e-07 -8.0 5.42e-05 - 1.00e+00 1.00e+00h 1\n", + "\n", + "Number of Iterations....: 33\n", + "\n", + " (scaled) (unscaled)\n", + "Objective...............: 4.3883989842628603e+02 4.3883989842628600e+05\n", + "Dual infeasibility......: 1.4600704448671754e-07 1.4600704448671753e-04\n", + "Constraint violation....: 2.9103830456733704e-11 2.2351741790771484e-08\n", + "Complementarity.........: 9.0909948039799681e-09 9.0909948039799686e-06\n", + "Overall NLP error.......: 9.0909948039799681e-09 1.4600704448671753e-04\n", + "\n", + "\n", + "Number of objective function evaluations = 35\n", + "Number of objective gradient evaluations = 34\n", + "Number of equality constraint evaluations = 35\n", + "Number of inequality constraint evaluations = 35\n", + "Number of equality constraint Jacobian evaluations = 34\n", + "Number of inequality constraint Jacobian evaluations = 34\n", + "Number of Lagrangian Hessian evaluations = 33\n", + "Total CPU secs in IPOPT (w/o function evaluations) = 0.164\n", + "Total CPU secs in NLP function evaluations = 0.020\n", + "\n", + "EXIT: Optimal Solution Found.\n" + ] + } + ], "source": [ "results = solver.solve(m, tee=True)" ] @@ -1653,7 +2869,26 @@ "cell_type": "code", "execution_count": 73, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "total cost = $ 438839.898426286\n", + "operating cost = $ 408883.5314830889\n", + "capital cost = $ 29956.3669431971\n", + "\n", + "Distillate flowrate = 0.1799999900263989 mol/s\n", + "Benzene purity = 98.99999900049086 %\n", + "Residue flowrate = 0.1085161642426372 mol/s\n", + "Toluene purity = 15.676178086213548 %\n", + "\n", + "Conversion = 93.38705916369427 %\n", + "\n", + "Overhead benzene loss in F101 = 17.34061793115618 %\n" + ] + } + ], "source": [ "print(\"total cost = $\", value(m.fs.capital_cost) + value(m.fs.operating_cost))\n", "print(\"operating cost = $\", value(m.fs.operating_cost))\n", @@ -1695,7 +2930,16 @@ "testing" ] }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "408883.5314830889\n", + "29956.3669431971\n" + ] + } + ], "source": [ "import pytest\n", "\n", @@ -1717,7 +2961,23 @@ "cell_type": "code", "execution_count": 75, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Optimal Values\n", + "\n", + "H101 outlet temperature = 568.923204295196 K\n", + "\n", + "R101 outlet temperature = 790.3655425698853 K\n", + "\n", + "F101 outlet temperature = 298.0 K\n", + "\n", + "H102 outlet temperature = 368.7414339952852 K\n" + ] + } + ], "source": [ "print(\"Optimal Values\")\n", "print()\n", @@ -1747,13 +3007,6 @@ "\n", "Finally, observe that the operating temperature of the flash (F101) is almost at its lower bound. This helps in minimizing the amount of benzene in the vapor stream leaving the flash." ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { @@ -1773,9 +3026,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.16" + "version": "3.10.13" } }, "nbformat": 4, "nbformat_minor": 3 -} +} \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/flowsheets/hda_flowsheet_with_distillation_usr.ipynb b/idaes_examples/notebooks/docs/flowsheets/hda_flowsheet_with_distillation_usr.ipynb index 1412322e..a401e9b8 100644 --- a/idaes_examples/notebooks/docs/flowsheets/hda_flowsheet_with_distillation_usr.ipynb +++ b/idaes_examples/notebooks/docs/flowsheets/hda_flowsheet_with_distillation_usr.ipynb @@ -61,7 +61,7 @@ "example, toluene will be reacted with hydrogen gas at high temperatures\n", " to form benzene via the following reaction:\n", "\n", - "**C6H5CH3 + H2 → C6H6 + CH4**\n", + "**C6H5CH3 + H2 \u2192 C6H6 + CH4**\n", "\n", "\n", "This reaction is often accompanied by an equilibrium side reaction\n", @@ -234,6 +234,7 @@ "from idaes.core.util.initialization import propagate_state\n", "from idaes.core.solvers import get_solver\n", "import idaes.core.util.scaling as iscale\n", + "from idaes.core.util.exceptions import InitializationError\n", "\n", "# Import idaes logger to set output levels\n", "import idaes.logger as idaeslog" @@ -737,7 +738,15 @@ "cell_type": "code", "execution_count": 28, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "29\n" + ] + } + ], "source": [ "print(degrees_of_freedom(m))" ] @@ -938,7 +947,42 @@ "cell_type": "code", "execution_count": 38, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].flow_mol_phase\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enth_mol_phase_comp[Liq,benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enth_mol_phase_comp[Liq,toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enth_mol_phase_comp[Vap,benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enth_mol_phase_comp[Vap,toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].enth_mol_phase_comp[Liq,benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].enth_mol_phase_comp[Liq,toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].enth_mol_phase_comp[Vap,benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].enth_mol_phase_comp[Vap,toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].material_flow_terms[Liq,benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].material_flow_terms[Vap,benzene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].material_flow_terms[Liq,toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].material_flow_terms[Vap,toluene]\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enthalpy_flow_terms[Liq], enthalpy_flow_terms\n", + "2024-08-28 18:38:14 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.H102.control_volume.properties_in[0.0].enthalpy_flow_terms[Vap], enthalpy_flow_terms\n" + ] + } + ], "source": [ "# Set scaling factors for heat duty, reaction extent and volume\n", "iscale.set_scaling_factor(m.fs.H101.control_volume.heat, 1e-2)\n", @@ -988,7 +1032,15 @@ "solution" ] }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n" + ] + } + ], "source": [ "# Todo: Check the degrees of freedom\n", "print(degrees_of_freedom(m))" @@ -1033,7 +1085,15 @@ "cell_type": "code", "execution_count": 43, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "fs.s03\n" + ] + } + ], "source": [ "for o in heuristic_tear_set:\n", " print(o.name)" @@ -1050,7 +1110,20 @@ "cell_type": "code", "execution_count": 44, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "fs.H101\n", + "fs.R101\n", + "fs.F101\n", + "fs.S101\n", + "fs.C101\n", + "fs.M101\n" + ] + } + ], "source": [ "for o in order:\n", " print(o[0].name)" @@ -1082,7 +1155,7 @@ " (0, \"Liq\", \"hydrogen\"): 1e-5,\n", " (0, \"Liq\", \"methane\"): 1e-5,\n", " },\n", - " \"temperature\": {0: 303},\n", + " \"temperature\": {0: 303.2},\n", " \"pressure\": {0: 350000},\n", "}\n", "\n", @@ -1094,7 +1167,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Next, we need to tell the tool how to initialize a particular unit. We will be writing a python function which takes in a \"unit\" and calls the initialize method on that unit." + "Next, we need to tell the tool how to initialize a particular unit. We will be writing a python function which takes in a \"unit\" and calls the initialize method on that unit. For the initialization, we will import a Block Triangularization Initializer which decomposes the model into a set of subproblems. These subproblems are solved using a block triangularization transformation before applying a simple Newton or user-selected solver. Methods such as block triangularization often solve faster and yield more reliable behavior than heuristic methods, but sometime struggle to decompose models with strongly coupled equations (e.g. column models, systems with counter-current flow, vapor-liquid equilibrium)." ] }, { @@ -1104,7 +1177,15 @@ "outputs": [], "source": [ "def function(unit):\n", - " unit.initialize(outlvl=idaeslog.INFO)" + " # Try initializing using default initializer, \n", + " # if it fails (probably due to scaling) try for the second time\n", + " try:\n", + " initializer = unit.default_initializer()\n", + " initializer.initialize(unit, output_level=idaeslog.INFO)\n", + " except InitializationError:\n", + " solver=get_solver()\n", + " solver.solve(unit)\n", + " " ] }, { @@ -1120,7 +1201,132 @@ "metadata": { "scrolled": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-08-28 18:38:14 [INFO] idaes.init.fs.H101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:16 [INFO] idaes.init.fs.H101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:16 [INFO] idaes.init.fs.R101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:16 [INFO] idaes.init.fs.R101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:17 [INFO] idaes.init.fs.F101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:17 [INFO] idaes.init.fs.F101.control_volume.properties_out: Initialization Complete\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 12\n", + "component keys that are not exported as part of the NL file. Skipping.\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 50 keys\n", + "that are not Var, Constraint, Objective, or the model. Skipping.\n", + "2024-08-28 18:38:17 [INFO] idaes.init.fs.S101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:17 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n", + "2024-08-28 18:38:17 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n", + "2024-08-28 18:38:17 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - \n", + "2024-08-28 18:38:18 [INFO] idaes.init.fs.C101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:18 [INFO] idaes.init.fs.C101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:18 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 1 optimal - .\n", + "2024-08-28 18:38:18 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 2 optimal - .\n", + "2024-08-28 18:38:19 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 3 optimal - .\n", + "2024-08-28 18:38:19 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 4 optimal - .\n", + "2024-08-28 18:38:19 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 5 optimal - .\n", + "2024-08-28 18:38:19 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 1 optimal - .\n", + "2024-08-28 18:38:19 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 2 optimal - .\n", + "2024-08-28 18:38:20 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 3 optimal - .\n", + "2024-08-28 18:38:20 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 4 optimal - .\n", + "2024-08-28 18:38:20 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 5 optimal - .\n", + "2024-08-28 18:38:20 [INFO] idaes.init.fs.M101.toluene_feed_state: Initialization Complete\n", + "2024-08-28 18:38:20 [INFO] idaes.init.fs.M101.hydrogen_feed_state: Initialization Complete\n", + "2024-08-28 18:38:20 [INFO] idaes.init.fs.M101.vapor_recycle_state: Initialization Complete\n", + "2024-08-28 18:38:21 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:21 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - \n", + "2024-08-28 18:38:21 [INFO] idaes.init.fs.H101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:21 [INFO] idaes.init.fs.H101.control_volume.properties_out: Initialization Complete\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 11\n", + "component keys that are not exported as part of the NL file. Skipping.\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 50 keys\n", + "that are not Var, Constraint, Objective, or the model. Skipping.\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.R101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.R101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.F101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.F101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.S101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n", + "2024-08-28 18:38:22 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - \n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.C101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.C101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.M101.toluene_feed_state: Initialization Complete\n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.M101.hydrogen_feed_state: Initialization Complete\n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.M101.vapor_recycle_state: Initialization Complete\n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:23 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - \n", + "2024-08-28 18:38:24 [INFO] idaes.init.fs.H101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:24 [INFO] idaes.init.fs.H101.control_volume.properties_out: Initialization Complete\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 11\n", + "component keys that are not exported as part of the NL file. Skipping.\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 50 keys\n", + "that are not Var, Constraint, Objective, or the model. Skipping.\n", + "2024-08-28 18:38:24 [INFO] idaes.init.fs.R101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:24 [INFO] idaes.init.fs.R101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.F101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.F101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.S101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - \n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.C101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:25 [INFO] idaes.init.fs.C101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.M101.toluene_feed_state: Initialization Complete\n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.M101.hydrogen_feed_state: Initialization Complete\n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.M101.vapor_recycle_state: Initialization Complete\n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - \n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.H101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:26 [INFO] idaes.init.fs.H101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.R101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.R101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.F101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.F101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.S101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n", + "2024-08-28 18:38:27 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - \n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.C101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.C101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.M101.toluene_feed_state: Initialization Complete\n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.M101.hydrogen_feed_state: Initialization Complete\n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.M101.vapor_recycle_state: Initialization Complete\n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:28 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - \n", + "2024-08-28 18:38:29 [INFO] idaes.init.fs.H101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:29 [INFO] idaes.init.fs.H101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:29 [INFO] idaes.init.fs.R101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:29 [INFO] idaes.init.fs.R101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.F101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.F101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.S101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - \n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.C101.control_volume.properties_in: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.C101.control_volume.properties_out: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.M101.toluene_feed_state: Initialization Complete\n", + "2024-08-28 18:38:30 [INFO] idaes.init.fs.M101.hydrogen_feed_state: Initialization Complete\n", + "2024-08-28 18:38:31 [INFO] idaes.init.fs.M101.vapor_recycle_state: Initialization Complete\n", + "2024-08-28 18:38:31 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n", + "2024-08-28 18:38:31 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - \n", + "WARNING: Wegstein failed to converge in 3 iterations\n", + "2024-08-28 18:38:31 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 1 optimal - .\n", + "2024-08-28 18:38:31 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 2 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 3 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 4 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_in: Initialization Step 5 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 1 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 2 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 3 optimal - .\n", + "2024-08-28 18:38:32 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 4 optimal - .\n", + "2024-08-28 18:38:33 [INFO] idaes.init.fs.H102.control_volume.properties_out: Initialization Step 5 optimal - .\n" + ] + } + ], "source": [ "seq.run(m, function)" ] @@ -1139,7 +1345,91 @@ "cell_type": "code", "execution_count": 48, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING: model contains export suffix 'scaling_factor' that contains 6\n", + "component keys that are not exported as part of the NL file. Skipping.\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 150 keys\n", + "that are not Var, Constraint, Objective, or the model. Skipping.\n", + "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", + "tol=1e-06\n", + "max_iter=200\n", + "\n", + "\n", + "******************************************************************************\n", + "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", + " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", + " For more information visit http://projects.coin-or.org/Ipopt\n", + "\n", + "This version of Ipopt was compiled from source code available at\n", + " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", + " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", + " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", + "\n", + "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", + " for large-scale scientific computation. All technical papers, sales and\n", + " publicity material resulting from use of the HSL codes within IPOPT must\n", + " contain the following acknowledgement:\n", + " HSL, a collection of Fortran codes for large-scale scientific\n", + " computation. See http://www.hsl.rl.ac.uk.\n", + "******************************************************************************\n", + "\n", + "This is Ipopt version 3.13.2, running with linear solver ma27.\n", + "\n", + "Number of nonzeros in equality constraint Jacobian...: 1097\n", + "Number of nonzeros in inequality constraint Jacobian.: 0\n", + "Number of nonzeros in Lagrangian Hessian.............: 877\n", + "\n", + "Total number of variables............................: 363\n", + " variables with only lower bounds: 8\n", + " variables with lower and upper bounds: 155\n", + " variables with only upper bounds: 0\n", + "Total number of equality constraints.................: 363\n", + "Total number of inequality constraints...............: 0\n", + " inequality constraints with only lower bounds: 0\n", + " inequality constraints with lower and upper bounds: 0\n", + " inequality constraints with only upper bounds: 0\n", + "\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 0 0.0000000e+00 3.82e+04 1.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", + " 1 0.0000000e+00 8.69e+03 1.44e+03 -1.0 2.00e+04 - 9.71e-01 4.67e-01H 1\n", + " 2 0.0000000e+00 1.29e+03 1.56e+03 -1.0 1.60e+04 - 9.79e-01 4.90e-01h 1\n", + " 3 0.0000000e+00 1.18e+03 1.55e+05 -1.0 1.40e+04 - 9.90e-01 4.99e-01h 1\n", + " 4 0.0000000e+00 5.46e+02 2.32e+09 -1.0 8.42e+03 - 1.00e+00 9.82e-01h 1\n", + " 5 0.0000000e+00 5.46e+03 3.66e+10 -1.0 5.97e+02 - 1.00e+00 9.90e-01h 1\n", + " 6 0.0000000e+00 1.21e+03 8.01e+09 -1.0 5.75e+00 - 1.00e+00 1.00e+00h 1\n", + " 7 0.0000000e+00 6.41e+00 3.87e+07 -1.0 1.53e-03 - 1.00e+00 1.00e+00f 1\n", + " 8 0.0000000e+00 1.96e-04 9.36e+02 -1.0 7.28e-06 - 1.00e+00 1.00e+00h 1\n", + " 9 0.0000000e+00 2.24e-08 4.99e-01 -3.8 5.92e-08 - 1.00e+00 1.00e+00h 1\n", + "Cannot recompute multipliers for feasibility problem. Error in eq_mult_calculator\n", + "\n", + "Number of Iterations....: 9\n", + "\n", + " (scaled) (unscaled)\n", + "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Dual infeasibility......: 1.5042487592972509e+04 1.5042487592972509e+04\n", + "Constraint violation....: 2.9103830456733704e-11 2.2351741790771484e-08\n", + "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Overall NLP error.......: 2.9103830456733704e-11 1.5042487592972509e+04\n", + "\n", + "\n", + "Number of objective function evaluations = 11\n", + "Number of objective gradient evaluations = 10\n", + "Number of equality constraint evaluations = 11\n", + "Number of inequality constraint evaluations = 0\n", + "Number of equality constraint Jacobian evaluations = 10\n", + "Number of inequality constraint Jacobian evaluations = 0\n", + "Number of Lagrangian Hessian evaluations = 9\n", + "Total CPU secs in IPOPT (w/o function evaluations) = 0.011\n", + "Total CPU secs in NLP function evaluations = 0.001\n", + "\n", + "EXIT: Optimal Solution Found.\n" + ] + } + ], "source": [ "# Create the solver object\n", "solver = get_solver()\n", @@ -1171,7 +1461,617 @@ "cell_type": "code", "execution_count": 50, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_feed[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_liq[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_in_vap[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].material_flow_terms[Liq,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].material_flow_terms[Vap,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].material_flow_terms[Liq,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].material_flow_terms[Vap,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].enthalpy_flow_terms[Liq], enthalpy_flow_terms\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.properties_in[0.0].enthalpy_flow_terms[Vap], enthalpy_flow_terms\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].flow_mol_phase\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_comp[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_comp[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_phase_equilibrium[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_phase_equilibrium[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_P_vap[benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_out[0.0].eq_P_vap[toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].material_flow_terms[Liq,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].material_flow_terms[Vap,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].material_flow_terms[Liq,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].material_flow_terms[Vap,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].enthalpy_flow_terms[Liq], enthalpy_flow_terms\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.properties_in[0.0].enthalpy_flow_terms[Vap], enthalpy_flow_terms\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[2].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[3].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[7].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[8].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:34 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[9].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[4].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[6].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.feed_tray.e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_flow_vap_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_mole_frac_vap_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.rectification_section[1].e_mole_frac_vap_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.e_flow_reflux[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.e_mole_frac_reflux[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.condenser.control_volume.e_mole_frac_reflux[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_flow_liq_out[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_mole_frac_liq_out[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.stripping_section[10].e_mole_frac_liq_out[0.0,toluene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.e_flow_vapor_reboil[0.0]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.e_mole_frac_vapor_reboil[0.0,benzene]\n", + "2024-08-28 18:38:35 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.D101.reboiler.control_volume.e_mole_frac_vapor_reboil[0.0,toluene]\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101: Begin initialization.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray: Begin initialization.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:35 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:36 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_out: State Released.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_in_liq: State Released.\n", + "2024-08-28 18:38:37 [INFO] idaes.init.fs.D101.feed_tray.properties_in_vap: State Released.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:38 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_out: State Released.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.condenser.control_volume: Initialization Complete\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.condenser: Initialization Complete, optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.condenser.control_volume.properties_in: State Released.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:39 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: State Released.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler: Initialization Complete, optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.reboiler.control_volume.properties_in: State Released.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.rectification_section[1]: Begin initialization.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:40 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:41 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: State Released.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_vap: State Released.\n", + "2024-08-28 18:38:42 [INFO] idaes.init.fs.D101.rectification_section[2]: Begin initialization.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:43 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: State Released.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:44 [INFO] idaes.init.fs.D101.rectification_section[2]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[2]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[2]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_vap: State Released.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[2].properties_in_liq: State Released.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3]: Begin initialization.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:45 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: State Released.\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:46 [INFO] idaes.init.fs.D101.rectification_section[3]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[3]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[3]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[3]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_vap: State Released.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[3].properties_in_liq: State Released.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4]: Begin initialization.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:47 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:48 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: State Released.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_liq: State Released.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.stripping_section[6]: Begin initialization.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:49 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:50 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: State Released.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_vap: State Released.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[7]: Begin initialization.\n", + "2024-08-28 18:38:51 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:52 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: State Released.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:53 [INFO] idaes.init.fs.D101.stripping_section[7]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[7]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[7]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_vap: State Released.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[7].properties_in_liq: State Released.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8]: Begin initialization.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:54 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: State Released.\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:55 [INFO] idaes.init.fs.D101.stripping_section[8]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[8]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[8]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[8]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_vap: State Released.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[8].properties_in_liq: State Released.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9]: Begin initialization.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:56 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: State Released.\n", + "2024-08-28 18:38:57 [INFO] idaes.init.fs.D101.stripping_section[9].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[9]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[9]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[9]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[9]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_vap: State Released.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[9].properties_in_liq: State Released.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[10]: Begin initialization.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:58 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Step 1 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Step 2 optimal - Optimal Solution Found.\n", + "2024-08-28 18:38:59 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Step 3 optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Step 4 optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Step 5 optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: State Released.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10].properties_out: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10]: Mass balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10]: Mass and energy balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10]: Mass, energy and pressure balance solve optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10]: Initialization complete, status optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:00 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_liq: State Released.\n", + "2024-08-28 18:39:01 [INFO] idaes.init.fs.D101: Rectification section initialization status optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:01 [INFO] idaes.init.fs.D101: Stripping section initialization status optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:01 [INFO] idaes.init.fs.D101.rectification_section[4].properties_in_vap: State Released.\n", + "2024-08-28 18:39:01 [INFO] idaes.init.fs.D101.stripping_section[6].properties_in_liq: State Released.\n", + "2024-08-28 18:39:01 [INFO] idaes.init.fs.D101: Column section initialization status optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:01 [INFO] idaes.init.fs.D101.rectification_section[1].properties_in_liq: State Released.\n", + "2024-08-28 18:39:02 [INFO] idaes.init.fs.D101: Column section + Condenser initialization status optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:02 [INFO] idaes.init.fs.D101.stripping_section[10].properties_in_vap: State Released.\n", + "2024-08-28 18:39:03 [INFO] idaes.init.fs.D101: Column section + Condenser + Reboiler initialization status optimal - Optimal Solution Found.\n", + "2024-08-28 18:39:03 [INFO] idaes.init.fs.D101.feed_tray.properties_in_feed: State Released.\n" + ] + } + ], "source": [ "# Add distillation column to the flowsheet\n", "m.fs.D101 = TrayColumn(\n", @@ -1256,7 +2156,101 @@ "cell_type": "code", "execution_count": 53, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING: model contains export suffix 'scaling_factor' that contains 7\n", + "component keys that are not exported as part of the NL file. Skipping.\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 150 keys\n", + "that are not Var, Constraint, Objective, or the model. Skipping.\n", + "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", + "tol=1e-06\n", + "max_iter=200\n", + "\n", + "\n", + "******************************************************************************\n", + "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", + " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", + " For more information visit http://projects.coin-or.org/Ipopt\n", + "\n", + "This version of Ipopt was compiled from source code available at\n", + " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", + " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", + " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", + "\n", + "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", + " for large-scale scientific computation. All technical papers, sales and\n", + " publicity material resulting from use of the HSL codes within IPOPT must\n", + " contain the following acknowledgement:\n", + " HSL, a collection of Fortran codes for large-scale scientific\n", + " computation. See http://www.hsl.rl.ac.uk.\n", + "******************************************************************************\n", + "\n", + "This is Ipopt version 3.13.2, running with linear solver ma27.\n", + "\n", + "Number of nonzeros in equality constraint Jacobian...: 4042\n", + "Number of nonzeros in inequality constraint Jacobian.: 0\n", + "Number of nonzeros in Lagrangian Hessian.............: 2376\n", + "\n", + "Total number of variables............................: 1169\n", + " variables with only lower bounds: 112\n", + " variables with lower and upper bounds: 365\n", + " variables with only upper bounds: 0\n", + "Total number of equality constraints.................: 1169\n", + "Total number of inequality constraints...............: 0\n", + " inequality constraints with only lower bounds: 0\n", + " inequality constraints with lower and upper bounds: 0\n", + " inequality constraints with only upper bounds: 0\n", + "\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 0 0.0000000e+00 3.83e+04 1.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", + " 1 0.0000000e+00 8.70e+03 1.50e+03 -1.0 3.69e+04 - 9.71e-01 4.62e-01H 1\n", + " 2 0.0000000e+00 1.53e+03 1.56e+03 -1.0 6.75e+03 - 9.77e-01 4.89e-01h 1\n", + " 3 0.0000000e+00 1.37e+03 1.55e+05 -1.0 9.37e+03 - 9.90e-01 4.99e-01h 1\n", + " 4 0.0000000e+00 6.14e+02 2.31e+09 -1.0 6.09e+03 - 1.00e+00 9.81e-01h 1\n", + " 5 0.0000000e+00 5.32e+03 3.62e+10 -1.0 5.56e+02 - 1.00e+00 9.90e-01h 1\n", + " 6 0.0000000e+00 1.16e+03 7.80e+09 -1.0 5.36e+00 - 1.00e+00 1.00e+00h 1\n", + " 7 0.0000000e+00 5.96e+00 3.64e+07 -1.0 1.47e-03 - 1.00e+00 1.00e+00f 1\n", + " 8 0.0000000e+00 1.69e-04 8.15e+02 -1.0 6.77e-06 - 1.00e+00 1.00e+00h 1\n", + " 9 0.0000000e+00 7.45e-09 6.64e-03 -3.8 2.00e-07 - 1.00e+00 1.00e+00h 1\n", + "Cannot recompute multipliers for feasibility problem. Error in eq_mult_calculator\n", + "\n", + "Number of Iterations....: 9\n", + "\n", + " (scaled) (unscaled)\n", + "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Dual infeasibility......: 1.5042483516409773e+04 1.5042483516409773e+04\n", + "Constraint violation....: 2.9103830456733704e-11 7.4505805969238281e-09\n", + "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Overall NLP error.......: 2.9103830456733704e-11 1.5042483516409773e+04\n", + "\n", + "\n", + "Number of objective function evaluations = 11\n", + "Number of objective gradient evaluations = 10\n", + "Number of equality constraint evaluations = 11\n", + "Number of inequality constraint evaluations = 0\n", + "Number of equality constraint Jacobian evaluations = 10\n", + "Number of inequality constraint Jacobian evaluations = 0\n", + "Number of Lagrangian Hessian evaluations = 9\n", + "Total CPU secs in IPOPT (w/o function evaluations) = 0.083\n", + "Total CPU secs in NLP function evaluations = 0.013\n", + "\n", + "EXIT: Optimal Solution Found.\n" + ] + }, + { + "data": { + "text/plain": [ + "{'Problem': [{'Lower bound': -inf, 'Upper bound': inf, 'Number of objectives': 1, 'Number of constraints': 1169, 'Number of variables': 1169, 'Sense': 'unknown'}], 'Solver': [{'Status': 'ok', 'Message': 'Ipopt 3.13.2\\\\x3a Optimal Solution Found', 'Termination condition': 'optimal', 'Id': 0, 'Error rc': 0, 'Time': 0.2022566795349121}], 'Solution': [OrderedDict([('number of solutions', 0), ('number of solutions displayed', 0)])]}" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "solver.solve(m, tee=True)" ] @@ -1274,7 +2268,26 @@ "cell_type": "code", "execution_count": 55, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "total cost = $ 442301.47075252194\n", + "operating cost = $ 427596.73056805483\n", + "capital cost = $ 14704.740184467111\n", + "\n", + "Distillate flowrate = 0.16196898920633368 mol/s\n", + "Benzene purity = 89.4916166580088 %\n", + "Residue flowrate = 0.10515007120697904 mol/s\n", + "Toluene purity = 43.32260291055251 %\n", + "\n", + "Conversion = 75.0 %\n", + "\n", + "Overhead benzene loss in F101 = 42.161938483603194 %\n" + ] + } + ], "source": [ "print(\"total cost = $\", value(m.fs.capital_cost) + value(m.fs.operating_cost))\n", "print(\"operating cost = $\", value(m.fs.operating_cost))\n", @@ -1319,7 +2332,40 @@ "cell_type": "code", "execution_count": 57, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "====================================================================================\n", + "Unit : fs.R101 Time: 0.0\n", + "------------------------------------------------------------------------------------\n", + " Unit Performance\n", + "\n", + " Variables: \n", + "\n", + " Key : Value : Units : Fixed : Bounds\n", + " Heat Duty : 0.0000 : watt : True : (None, None)\n", + " Volume : 0.14705 : meter ** 3 : False : (None, None)\n", + "\n", + "------------------------------------------------------------------------------------\n", + " Stream Table\n", + " Units Inlet Outlet \n", + " flow_mol_phase_comp ('Liq', 'benzene') mole / second 1.2993e-07 1.2993e-07\n", + " flow_mol_phase_comp ('Liq', 'toluene') mole / second 8.4147e-07 8.4147e-07\n", + " flow_mol_phase_comp ('Liq', 'methane') mole / second 1.0000e-12 1.0000e-12\n", + " flow_mol_phase_comp ('Liq', 'hydrogen') mole / second 1.0000e-12 1.0000e-12\n", + " flow_mol_phase_comp ('Vap', 'benzene') mole / second 0.11936 0.35374\n", + " flow_mol_phase_comp ('Vap', 'toluene') mole / second 0.31252 0.078129\n", + " flow_mol_phase_comp ('Vap', 'methane') mole / second 1.0377 1.2721\n", + " flow_mol_phase_comp ('Vap', 'hydrogen') mole / second 0.56260 0.32821\n", + " temperature kelvin 600.00 771.85\n", + " pressure pascal 3.5000e+05 3.5000e+05\n", + "====================================================================================\n" + ] + } + ], "source": [ "m.fs.R101.report()" ] @@ -1335,7 +2381,40 @@ "cell_type": "code", "execution_count": 58, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "====================================================================================\n", + "Unit : fs.F101 Time: 0.0\n", + "------------------------------------------------------------------------------------\n", + " Unit Performance\n", + "\n", + " Variables: \n", + "\n", + " Key : Value : Units : Fixed : Bounds\n", + " Heat Duty : -70343. : watt : False : (None, None)\n", + " Pressure Change : 0.0000 : pascal : True : (None, None)\n", + "\n", + "------------------------------------------------------------------------------------\n", + " Stream Table\n", + " Units Inlet Vapor Outlet Liquid Outlet\n", + " flow_mol_phase_comp ('Liq', 'benzene') mole / second 1.2993e-07 1.0000e-08 0.20460 \n", + " flow_mol_phase_comp ('Liq', 'toluene') mole / second 8.4147e-07 1.0000e-08 0.062520 \n", + " flow_mol_phase_comp ('Liq', 'methane') mole / second 1.0000e-12 1.0000e-08 2.6712e-07 \n", + " flow_mol_phase_comp ('Liq', 'hydrogen') mole / second 1.0000e-12 1.0000e-08 2.6712e-07 \n", + " flow_mol_phase_comp ('Vap', 'benzene') mole / second 0.35374 0.14915 1.0000e-08 \n", + " flow_mol_phase_comp ('Vap', 'toluene') mole / second 0.078129 0.015610 1.0000e-08 \n", + " flow_mol_phase_comp ('Vap', 'methane') mole / second 1.2721 1.2721 1.0000e-08 \n", + " flow_mol_phase_comp ('Vap', 'hydrogen') mole / second 0.32821 0.32821 1.0000e-08 \n", + " temperature kelvin 771.85 325.00 325.00 \n", + " pressure pascal 3.5000e+05 3.5000e+05 3.5000e+05 \n", + "====================================================================================\n" + ] + } + ], "source": [ "m.fs.F101.report()" ] @@ -1356,7 +2435,25 @@ "cell_type": "code", "execution_count": 59, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Units Reactor Light Gases\n", + "flow_mol_phase_comp ('Liq', 'benzene') mole / second 1.2993e-07 1.0000e-08 \n", + "flow_mol_phase_comp ('Liq', 'toluene') mole / second 8.4147e-07 1.0000e-08 \n", + "flow_mol_phase_comp ('Liq', 'methane') mole / second 1.0000e-12 1.0000e-08 \n", + "flow_mol_phase_comp ('Liq', 'hydrogen') mole / second 1.0000e-12 1.0000e-08 \n", + "flow_mol_phase_comp ('Vap', 'benzene') mole / second 0.35374 0.14915 \n", + "flow_mol_phase_comp ('Vap', 'toluene') mole / second 0.078129 0.015610 \n", + "flow_mol_phase_comp ('Vap', 'methane') mole / second 1.2721 1.2721 \n", + "flow_mol_phase_comp ('Vap', 'hydrogen') mole / second 0.32821 0.32821 \n", + "temperature kelvin 771.85 325.00 \n", + "pressure pascal 3.5000e+05 3.5000e+05 \n" + ] + } + ], "source": [ "from idaes.core.util.tables import (\n", " create_stream_table_dataframe,\n", @@ -1663,7 +2760,117 @@ "cell_type": "code", "execution_count": 71, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING: model contains export suffix 'scaling_factor' that contains 3\n", + "component keys that are not exported as part of the NL file. Skipping.\n", + "WARNING: model contains export suffix 'scaling_factor' that contains 150 keys\n", + "that are not Var, Constraint, Objective, or the model. Skipping.\n", + "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", + "tol=1e-06\n", + "max_iter=200\n", + "\n", + "\n", + "******************************************************************************\n", + "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", + " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", + " For more information visit http://projects.coin-or.org/Ipopt\n", + "\n", + "This version of Ipopt was compiled from source code available at\n", + " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", + " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", + " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", + "\n", + "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", + " for large-scale scientific computation. All technical papers, sales and\n", + " publicity material resulting from use of the HSL codes within IPOPT must\n", + " contain the following acknowledgement:\n", + " HSL, a collection of Fortran codes for large-scale scientific\n", + " computation. See http://www.hsl.rl.ac.uk.\n", + "******************************************************************************\n", + "\n", + "This is Ipopt version 3.13.2, running with linear solver ma27.\n", + "\n", + "Number of nonzeros in equality constraint Jacobian...: 4073\n", + "Number of nonzeros in inequality constraint Jacobian.: 6\n", + "Number of nonzeros in Lagrangian Hessian.............: 2391\n", + "\n", + "Total number of variables............................: 1176\n", + " variables with only lower bounds: 113\n", + " variables with lower and upper bounds: 372\n", + " variables with only upper bounds: 0\n", + "Total number of equality constraints.................: 1169\n", + "Total number of inequality constraints...............: 3\n", + " inequality constraints with only lower bounds: 2\n", + " inequality constraints with lower and upper bounds: 0\n", + " inequality constraints with only upper bounds: 1\n", + "\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 0 4.4230147e+05 2.99e+05 9.90e+01 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", + " 1 4.3753585e+05 2.91e+05 1.28e+02 -1.0 3.09e+06 - 3.58e-01 2.40e-02f 1\n", + " 2 4.3545100e+05 2.78e+05 1.55e+02 -1.0 1.78e+06 - 3.31e-01 4.74e-02h 1\n", + " 3 4.2822311e+05 2.20e+05 4.50e+02 -1.0 2.99e+06 - 2.95e-02 1.35e-01h 1\n", + " 4 4.2249096e+05 1.45e+05 1.43e+03 -1.0 7.01e+06 - 5.14e-01 2.03e-01h 1\n", + " 5 4.2194364e+05 8.17e+04 1.70e+04 -1.0 6.06e+06 - 5.97e-01 4.28e-01h 1\n", + " 6 4.2602765e+05 4.55e+04 1.10e+06 -1.0 4.32e+06 - 9.26e-01 5.07e-01h 1\n", + " 7 4.3776643e+05 2.03e+04 6.44e+09 -1.0 2.42e+06 - 9.90e-01 9.47e-01h 1\n", + " 8 4.3846260e+05 1.92e+04 6.05e+09 -1.0 4.42e+05 - 5.40e-01 5.74e-02h 1\n", + " 9 4.4529853e+05 4.05e+04 4.66e+10 -1.0 2.47e+05 - 9.96e-01 9.90e-01h 1\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 10 4.4906283e+05 9.76e+03 1.10e+10 -1.0 1.12e+03 -4.0 1.26e-01 7.45e-01h 1\n", + " 11 4.5079086e+05 1.19e+03 1.54e+09 -1.0 5.63e+02 -4.5 3.77e-01 1.00e+00h 1\n", + " 12 4.5024224e+05 2.66e+00 3.67e+06 -1.0 6.61e+01 -5.0 1.00e+00 1.00e+00f 1\n", + " 13 4.4946170e+05 5.64e-01 9.29e+05 -1.0 1.81e+02 -5.4 1.00e+00 7.88e-01f 1\n", + " 14 4.4916780e+05 8.48e+00 1.62e+05 -1.0 2.83e+02 -5.9 1.00e+00 1.00e+00f 1\n", + " 15 4.4899127e+05 4.83e+00 9.07e+04 -1.0 1.01e+02 -6.4 1.00e+00 4.40e-01f 2\n", + " 16 4.4886718e+05 7.00e-01 4.61e+02 -1.0 2.35e+02 -6.9 1.00e+00 1.00e+00f 1\n", + " 17 4.4800159e+05 1.39e+02 4.52e+06 -3.8 1.17e+03 -7.3 9.79e-01 9.37e-01f 1\n", + " 18 4.4672196e+05 9.59e+02 1.22e+06 -3.8 4.55e+03 -7.8 1.00e+00 9.43e-01f 1\n", + " 19 4.4401667e+05 7.75e+03 1.55e+05 -3.8 1.08e+04 -8.3 1.00e+00 1.00e+00f 1\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 20 4.4185035e+05 1.91e+04 1.36e+04 -3.8 1.33e+04 -8.8 1.00e+00 1.00e+00h 1\n", + " 21 4.4241001e+05 3.52e+03 5.96e+03 -3.8 2.94e+03 -9.2 1.00e+00 1.00e+00h 1\n", + " 22 4.4185237e+05 7.82e+00 2.91e+02 -3.8 7.13e+03 -9.7 2.39e-01 1.00e+00h 1\n", + " 23 4.4124091e+05 1.53e+01 3.11e+02 -3.8 4.82e+04 -10.2 8.59e-01 1.36e-01f 1\n", + " 24 4.4137379e+05 1.80e+00 2.91e+02 -3.8 1.41e+04 - 1.95e-01 1.00e+00h 1\n", + " 25 4.3862833e+05 1.70e+03 9.48e+04 -3.8 1.57e+07 - 1.29e-03 9.10e-02f 1\n", + " 26 4.3883308e+05 1.49e+03 8.46e+04 -3.8 1.02e+06 - 1.00e+00 1.35e-01h 1\n", + " 27 4.3885472e+05 2.18e+01 3.40e+03 -3.8 1.38e+05 - 1.00e+00 1.00e+00h 1\n", + " 28 4.3884160e+05 5.90e-02 6.38e+01 -3.8 8.66e+03 - 1.00e+00 1.00e+00h 1\n", + " 29 4.3884157e+05 6.48e-07 4.63e-04 -3.8 2.89e+01 - 1.00e+00 1.00e+00h 1\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 30 4.3883990e+05 3.57e-01 2.38e+03 -5.7 8.19e+02 - 1.00e+00 1.00e+00f 1\n", + " 31 4.3883992e+05 3.50e-07 7.79e-06 -5.7 3.55e-01 - 1.00e+00 1.00e+00h 1\n", + " 32 4.3883990e+05 5.47e-05 3.63e-01 -8.0 1.01e+01 - 1.00e+00 1.00e+00h 1\n", + " 33 4.3883990e+05 2.24e-08 1.46e-07 -8.0 5.42e-05 - 1.00e+00 1.00e+00h 1\n", + "\n", + "Number of Iterations....: 33\n", + "\n", + " (scaled) (unscaled)\n", + "Objective...............: 4.3883989842628603e+02 4.3883989842628600e+05\n", + "Dual infeasibility......: 1.4600704448671754e-07 1.4600704448671753e-04\n", + "Constraint violation....: 2.9103830456733704e-11 2.2351741790771484e-08\n", + "Complementarity.........: 9.0909948039799681e-09 9.0909948039799686e-06\n", + "Overall NLP error.......: 9.0909948039799681e-09 1.4600704448671753e-04\n", + "\n", + "\n", + "Number of objective function evaluations = 35\n", + "Number of objective gradient evaluations = 34\n", + "Number of equality constraint evaluations = 35\n", + "Number of inequality constraint evaluations = 35\n", + "Number of equality constraint Jacobian evaluations = 34\n", + "Number of inequality constraint Jacobian evaluations = 34\n", + "Number of Lagrangian Hessian evaluations = 33\n", + "Total CPU secs in IPOPT (w/o function evaluations) = 0.164\n", + "Total CPU secs in NLP function evaluations = 0.020\n", + "\n", + "EXIT: Optimal Solution Found.\n" + ] + } + ], "source": [ "results = solver.solve(m, tee=True)" ] @@ -1681,7 +2888,26 @@ "cell_type": "code", "execution_count": 73, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "total cost = $ 438839.898426286\n", + "operating cost = $ 408883.5314830889\n", + "capital cost = $ 29956.3669431971\n", + "\n", + "Distillate flowrate = 0.1799999900263989 mol/s\n", + "Benzene purity = 98.99999900049086 %\n", + "Residue flowrate = 0.1085161642426372 mol/s\n", + "Toluene purity = 15.676178086213548 %\n", + "\n", + "Conversion = 93.38705916369427 %\n", + "\n", + "Overhead benzene loss in F101 = 17.34061793115618 %\n" + ] + } + ], "source": [ "print(\"total cost = $\", value(m.fs.capital_cost) + value(m.fs.operating_cost))\n", "print(\"operating cost = $\", value(m.fs.operating_cost))\n", @@ -1726,7 +2952,23 @@ "cell_type": "code", "execution_count": 75, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Optimal Values\n", + "\n", + "H101 outlet temperature = 568.923204295196 K\n", + "\n", + "R101 outlet temperature = 790.3655425698853 K\n", + "\n", + "F101 outlet temperature = 298.0 K\n", + "\n", + "H102 outlet temperature = 368.7414339952852 K\n" + ] + } + ], "source": [ "print(\"Optimal Values\")\n", "print()\n", @@ -1756,13 +2998,6 @@ "\n", "Finally, observe that the operating temperature of the flash (F101) is almost at its lower bound. This helps in minimizing the amount of benzene in the vapor stream leaving the flash." ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { @@ -1782,9 +3017,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.16" + "version": "3.10.13" } }, "nbformat": 4, "nbformat_minor": 3 -} +} \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/flowsheets/hda_flowsheets_for_costing_notebook.py b/idaes_examples/notebooks/docs/flowsheets/hda_flowsheets_for_costing_notebook.py index 83c8d23e..94e29ac1 100644 --- a/idaes_examples/notebooks/docs/flowsheets/hda_flowsheets_for_costing_notebook.py +++ b/idaes_examples/notebooks/docs/flowsheets/hda_flowsheets_for_costing_notebook.py @@ -52,6 +52,7 @@ import idaes.core.util.scaling as iscale from pyomo.util.check_units import assert_units_consistent from idaes.core.util.model_statistics import degrees_of_freedom +from idaes.core.util.exceptions import InitializationError # Import costing methods - classes, heaters, vessels, compressors, columns from idaes.models.costing.SSLW import ( @@ -216,7 +217,13 @@ def hda_with_flash(tee=True): seq.set_guesses_for(m.fs.H101.inlet, tear_guesses) def function(unit): - unit.initialize(outlvl=outlvl) + try: + initializer = unit.default_initializer() + initializer.initialize(unit, output_level=idaeslog.INFO) + except InitializationError: + solver=get_solver() + solver.solve(unit) + seq.run(m, function) @@ -433,7 +440,12 @@ def hda_with_distillation(tee=True): seq.set_guesses_for(m.fs.H101.inlet, tear_guesses) def function(unit): - unit.initialize(outlvl=outlvl) + try: + initializer = unit.default_initializer() + initializer.initialize(unit, output_level=idaeslog.INFO) + except InitializationError: + solver=get_solver() + solver.solve(unit) seq.run(m, function) diff --git a/idaes_examples/notebooks/docs/surrogates/.mdl_wts.keras b/idaes_examples/notebooks/docs/surrogates/.mdl_wts.keras new file mode 100644 index 00000000..15c3cfb5 Binary files /dev/null and b/idaes_examples/notebooks/docs/surrogates/.mdl_wts.keras differ diff --git a/idaes_examples/notebooks/docs/surrogates/best_practices_optimization.ipynb b/idaes_examples/notebooks/docs/surrogates/best_practices_optimization.ipynb index a2b493ba..d325174c 100644 --- a/idaes_examples/notebooks/docs/surrogates/best_practices_optimization.ipynb +++ b/idaes_examples/notebooks/docs/surrogates/best_practices_optimization.ipynb @@ -223,7 +223,7 @@ " m.fs.surrogate = SurrogateBlock()\n", " m.fs.surrogate.build_model(surrogate, input_vars=inputs, output_vars=outputs)\n", " elif surrogate_type == SurrType.KERAS:\n", - " keras_surrogate = KerasSurrogate.load_from_folder(\"keras_surrogate\")\n", + " keras_surrogate = KerasSurrogate.load_from_folder(keras_folder_name=\"keras_surrogate\", keras_model_name=\"keras_model\")\n", " m.fs.surrogate = SurrogateBlock()\n", " m.fs.surrogate.build_model(\n", " keras_surrogate,\n", @@ -531,7 +531,7 @@ " m.fs.surrogate = SurrogateBlock()\n", " m.fs.surrogate.build_model(surrogate, input_vars=inputs, output_vars=outputs)\n", " elif surrogate_type == SurrType.KERAS:\n", - " keras_surrogate = KerasSurrogate.load_from_folder(\"keras_surrogate\")\n", + " keras_surrogate = KerasSurrogate.load_from_folder(keras_folder_name=\"keras_surrogate\", keras_model_name=\"keras_model\")\n", " m.fs.surrogate = SurrogateBlock()\n", " m.fs.surrogate.build_model(\n", " keras_surrogate,\n", diff --git a/idaes_examples/notebooks/docs/surrogates/best_practices_optimization_doc.ipynb b/idaes_examples/notebooks/docs/surrogates/best_practices_optimization_doc.ipynb index 939c494d..a890d44a 100644 --- a/idaes_examples/notebooks/docs/surrogates/best_practices_optimization_doc.ipynb +++ b/idaes_examples/notebooks/docs/surrogates/best_practices_optimization_doc.ipynb @@ -1,3497 +1,638 @@ { - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "tags": [ - "header", - "hide-cell" - ] - }, - "outputs": [], - "source": [ - "###############################################################################\n", - "# The Institute for the Design of Advanced Energy Systems Integrated Platform\n", - "# Framework (IDAES IP) was produced under the DOE Institute for the\n", - "# Design of Advanced Energy Systems (IDAES).\n", - "#\n", - "# Copyright (c) 2018-2023 by the software owners: The Regents of the\n", - "# University of California, through Lawrence Berkeley National Laboratory,\n", - "# National Technology & Engineering Solutions of Sandia, LLC, Carnegie Mellon\n", - "# University, West Virginia University Research Corporation, et al.\n", - "# All rights reserved. Please see the files COPYRIGHT.md and LICENSE.md\n", - "# for full copyright and license information.\n", - "###############################################################################" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# ML/AI Best Practices: \"Selecting Surrogate Model Form/Size for Optimization\"\n", - "Maintainer: Brandon Paul \n", - "Author: Brandon Paul \n", - "Updated: 2023-06-01 \n", - "\n", - "In this notebook we demonstrate the use of model and solver statistics to select the best surrogate model. For this purpose we trained (offline) different models with ALAMO, PySMO for three basis forms, and TensorFlow Keras. The surrogates are imported into the notebook, and the IDAES flowsheet is constructed and solved." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 1. Introduction\n", - "\n", - "This example demonstrates autothermal reformer optimization leveraging the ALAMO, PySMO and Keras surrogate trainers, and compares key indicators of model performance. In this notebook, IPOPT will be run with statistics using ALAMO, PySMO Polynomial, PySMO RBF, PySMO Kriging and Keras surrogate models to assess each model type for flowsheet integration and tractability." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 2. Problem Statement \n", - "\n", - "Within the context of a larger Natural Gas Fuel Cell (NGFC) system, the autothermal reformer unit is used to generate syngas from air, steam, and natural gas. Two input variables are considered for this example (reformer bypass fraction and fuel to steam ratio). The reformer bypass fraction (also called internal reformation percentage) plays an important role in the syngas final composition and it is typically controlled in this process. The fuel to steam ratio is an important variable that affects the final syngas reaction and heat duty required by the reactor. The syngas is then used as fuel by a solid-oxide fuel cell (SOFC) to generate electricity and heat. \n", - "\n", - "The autothermal reformer is typically modeled using the IDAES Gibbs reactor and this reactor is robust once it is initialized; however, the overall model robustness is affected due to several components present in the reaction, scaling issues for the largrangean multipliers, and Gibbs free energy minimization formulation. Substituting rigorously trained and validated surrogates in lieu of rigorous unit model equations increases the robustness of the problem.\n", - "\n", - "### 2.1. Inputs: \n", - "- Bypass fraction (dimensionless) - split fraction of natural gas to bypass AR unit and feed directly to the power island\n", - "- NG-Steam Ratio (dimensionless) - proportion of natural relative to steam fed into AR unit operation\n", - "\n", - "### 2.2. Outputs:\n", - "- Steam flowrate (kg/s) - inlet steam fed to AR unit\n", - "- Reformer duty (kW) - required energy input to AR unit\n", - "- Composition (dimensionless) - outlet mole fractions of components (Ar, C2H6, C3H8, C4H10, CH4, CO, CO2, H2, H2O, N2, O2)" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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n17721b4OqpF2wgAAAAAwLghFAYAjKzc2x4IDGNHoWjbdsq1a9fkqaeekr/6q7+Sv/3bv5XPfvaz8jd/8zfuv//4j/8on//85916//AP/yDPPvus+7Vu02g05MqVK2493e6v//qv3a+1nq1jfeELX3D3pfW13tWrV+Vzn/uc1Ot191/9nu77mWee8bZo0ue1bU888YTbJi2f+tSn5P/+3//rfs/Sr7XY42g7bNv+7u/+zj2m9k+/52+XHlOLPr+2ttZqn9bVr3VbS+sou73288knn5Snn37ara9t1K91u062X7rNX/zFX8jf//3fu8fTY2mf9F/lb5v/OLpve250zD796U+7fe30//7f/3OLbmPHQMtnPvMZt632XGpf7Lm0dDvd5i//8i/d9uhxtF/+4/i/1j7pedRt9F/dRr/Wdur+/deN0v7o83o+tZ6eQ22Xnn9tW9D42vOp42r3rf3R+jpu2mY/3daeT92/tl/H2o6BttO2R9mv9V/bNj0vdqx1O3ut2br6te2bHkv3b9ujRc+V7sfS+sq2VfejbdH967/2Z0D/tez1Ys+R/qvj6x8zfaz90f1r/c7j6FhofW2P/mt/brS9ytbXf+02ehytZ39mtI16DO2PHVvLjoceW8dM69mx0zbaa0XradFt9Vj6vB5P6+j4ar/1X73u/P2w9LEWfb3R617ra/u0bToO9vzo9/3b6tf2urT90fr2urF9ttvYduq1pvV0GzvO2latp0W303/916mOj702ta4dO399bZ+l22g/tK4eR7fTY+m/9jj+sdavdRt7XerxdFv9Wturx9Cx0zpKt1f6WPfvf/3Ua9VeA0rral/0X92HHkvr2TZpO+1jS+vqMbWuLdoera//6s+dHUPL9kH/tY91nOw46P71fNnjaF0teiz7OqDttD9f2nfdv15zlu7T1gcAANuPUBgAMLI+8anPBgayo1C0bTtB32R/4hOfkJ/7uZ+T7/3e75X/9J/+k3z7t3+7fNu3fZv84A/+oPzqr/5qK+Cyb7T1Tfejjz4qhw4dkuuuu86tq9vs27dP/ut//a8yOzvrhjeWHkPf3P/hH/6h/PRP/7S7zb/9t//Wrf/v/t2/kx/5kR+R//W//pcb7tj6So/3vve9T174whfKd33Xd8l//I//Ub7jO75Dvvu7v1ue97znye233+6GCn4aCiwvL8tP/uRPyoEDB9y26TZ6rB//8R+XQqHgHscGDkoDvjvuuEN+7Md+rNWP//yf/7O7vW7z+7//+61wwwYaus1b3vIWtx3//t//e7cfWl/Lz/zMz8gDDzRDfn+woSHJqVOn3G20L3ocLTruP/uzP+v2VekxdP+6jY7ja17zGrnhhhvcNul2+/fvd8fj53/+5+X8+fNuOKOBkw2fdJv/8T/+hztOWlePoWP+wz/8w/KLv/iL8vjjj7f6YYOk1dVV+ZVf+RX5gR/4Afme7/ke+f/+v//PHYvnPOc58tKXvlQ+9rGPufWVHkfPzUc+8hHJZDLyX/7Lf3GPodeOFt3+ta99rRs+KRvU6HV04cIFOXr0qNse7Yv2Q8fs+c9/vhw/ftzdxp4XpdtqH/X61P5rf/Scat/0+rztttvckF3pMZT26V3vepf8t//239xtvvVbv1X+w3/4D24bdQz0utFzYWl9LXqedRvbD71uvvM7v1N+9Ed/VH7nd36nK4DV62hpaUl+4id+wm2P9kePo306ePCgLCwsuNso2ycdg/n5eXnBC17g9tv2Scdbfzbe8573uPXsmGnR0OzkyZPuz4m2yV47ehzdRvtq+670aw3Z3vSmN8mNN97oHkO3s9fni1/84tb1qfR8avt0HGdmZtzrU/et7dJx0H/1utHzoGzbdBsN5G699Va5/vrr3WNo//VfvQb0+vzgBz/obmP7oteNvt78z//5P93XCvvzpuOs194v//Ivy4c//OG2bfT1QK81bcPU1JRbV3/mdFs9jrZZA2W7jYak+vOg1/kv/MIvuNea/nxqP3Qsvu/7vs99jdIx8l9rel7PnTsnv/RLv+T22/ZFx0x//vTn0B7H0m3+9//+3/KiF73IPY5uo/X1enjuc58rb3jDG9zrxL6mafv0GiiVSvJTP/VTbj0993ocbZ/+HLztbW9rBaNaX8+Pvh7oedZtdP86ZnosvRb0NerOO+90+63s+dF9/N7v/Z7bDt2/jpv2X7e/6aabpFgstoW2uo0+1uNrO3TM9GdN26XbHD582L0+tY4ew26jx9HrU39O9JzoNnqcyclJ93eEvh7bP6IoHXMNmX/jN37DfX2ZmJhojbW2Ua8BPQ+6b6XHstfnr//6r7vXmh5H26fH0XbpMXRcbbuU/2sAALA9CIUBALueBkGxWEy+6Zu+yXtmfOkbeg2otD9avvzLv1y+4iu+wv36n/yTf+J+/Zu/+ZtuXQ0nlG6jb8z/6T/9p269L/uyL5Ov/MqvlC/5ki9xn/uar/ka9w2/pW/odRt946917bG+6qu+yt3Gfq3BhtIARUMEnRGmgZ6t/0Vf9EXyxV/8xe7X2rZ/9a/+lRs0KxvYffzjHxfHcVrb2D7odvq1fm9lZcXdxoZhf/zHfyz/8l/+y7ZtbN+++qu/2g0tNKjS/dvg4cEHH3T7qW3SetqPL/3SL3W/1uc08NIgS2lwpH269957W8fQOtouu722T8MbG3AqbZ8GNHYbW+yxdBsNsm2wo/X1WPl83q3n77vdVrf77//9v7fNFNSg7pWvfGWrz7aePVf6r4a/2n/7hwENujSks9/XY2nR68A+p8GfnR2p22oQpCGmbY+/XVp0PLW/Wlf7of2p1WpuGGrr6HjpNerf5q1vfau7jV4zuo0Gy3p96vftGOh2Om76WM/1u9/9brddSq+BT37yk27wZffbWXSbP/qjP3LPvR5Dj6Who17Tto7dvxZ9/I3f+I3uNaDb2LbpdaOvG3YbravXmI69fq3Xpw1FlY5DuVx26+j3dVx13HQM9LH2S//AoufFFj3Oe9/73tY4ab3Oa00DO/2DitbVsdPzpD9/to4t9udT//3+7/9+tx9aX+k1ZK+1zm30GHoN6WuLHkPpz4D+/GiIbPtrrx27rbZTA1al58VeNxru6vd1v1pf+6b716//+T//524wqPu3x9Ig/eabb3a/r/W0X/q1vs7ofnQ8T5w44da19A8F+kcDewz/z4M+1nOj22i7lLbt8uXLbrDrH1stdht9jdI/QtiAUre9dOmSO/52/1rPbqPlX/yLf+H+gcKOs/bpz/7sz+Tf/Jt/09pGx1j7oF/ba0CDUd2/jrFeN3/6p38qX/d1X+fu355H2y89noa3+lqo2+hriI7fI4884o6nv6691nQf2lf9g6DSPun1puHyP/tn/8zdRovu24659kX/aKR9tteZtk/7p/vW/WrRY9g26tcadD/22GNu37UvGnjra4Ptv+7bHlOPp3/E+NCHPuQeQ+vrv/ZaAAAA24dQGACw691zzz3um1ENCcadvqnX2VbaH/um3H6tb8D1Xw0RbUChdIadDXT929jttOisOg0ZdDstOqPQvqHXN/EaBNhtNBjSMOh1r3tdW4ios1c1XLD1OosGkDrz1tLjnT17trWNPZ4WDRG0XbqNhvo2MNCw4cyZM24btJ7/eDbo0WDloYceagWpehydgWf7brfVPtnwToNkDWU0oFAahGhbNfDQvtpjaNHjaNFgQwNBu43+q7MgbR3/v1q0fxou6TgpO852G3/QZLfT5xKJhBuA2THQQF1nddq6/vr6r4YvOvPVfkxbj6Phtc6Q7Tw/NuDRMdFZtzpm2g8NkPQPAzbg7Wyb7ke306DZhtx6HA3ddPag7tcGzvY4Oo66jV5r/lmSOjv1m7/5m93zo/Xs8WyfdDv9Q4cNUPXc6B8GdPal1rPnVb+2jzUUvuuuu9xjKO2Tztz8+q//+labbLHH1XHTa01pX7Rf73znO93QTb9v22OLPqff0/BZ6yv9efit3/ot+dqv/dq269kWbZ8GbzoD226jY64zxbUd/v7o8fRa1ue+4Ru+wZ1RbrfRtukMd3s+tY4eT7fRY+tzGnDqObTnU/8woGGttlu3023s9vqcnht9bdFxtudHA14N/Pztstvb4+rMeQ0q9Rha9FrVWeHaFq1rf95s0XbqNW1pn3QJDP3DTNAY6/ZadMa01tXzr+Osr2salGode63526aveceOHWu9ruk46/Wpf5jQetpfexw9rm6n27ziFa9otUvHQv9wZV8ntO36r16TOh7aLh3vN77xja3wWf/VgFTr2f3bouOlRbfR2braNqXnSP8AYcfYX3Q/WvSPFm9/+9vd+krbpjOB7XE6x04f6wzt97///W6btD+6nIXuw+7Xf260XbqN/uFEZ/7aa0Bfb7StWl/r2PHVujou+py+rtlPJ9jj6Kxrexytq//q+OkxtS8aiuv1QhgMAMDOIRQGAOx6dsanvhEddxoEaAChb6w1QNA32vbNvb7x1nBTPx6t9M250jfer3/961t1tdiQWLfRjwFryGZpgKBrTOrHgvVNvA1C9BgavmgIoLPJ7Aw0G4ZoEKCBtIYGWke30a81fNHH+tF4DSrtR/S1fTq72M4Q1KJtssfQr/Vj0zorVNlgQ2exaVhpj6H19Dj6r7ZVl3bQ/Srtu26jM1g1qNL62mc9hj2mtk+XXND2W3qsP/mTP3H7abex/2rRYOllL3uZG5pZGm7o2OvHt7WuHTd7PBuk25BK26Zf60fTNdzSetoW7YvdTv+Q4f94utJwS//QoYGP1tFzabfV7TTc1GU3bGCvNHTSGZDaDt2/nkt7LN32W77lW9yQRq8vpe3T8dAwyIaitk26jY69zgrXMdK6djsN7PRa0+9rXXtd6r/6nF5rGjjZa0b7rzOFX/WqV7nnT8fIjpu9BnRGsH85DD2eXkd6nnXfWk/7rF/ba0DPta5has+/nhvdRj8eb9tjx9lePzqLW9uidbVd2kYNBHVfWscWPZZup/vQZU80oNVj6BjrNnp9xuNx9zjaH/1Xix5DH7/kJS9pBWG6nc7m1RBR+6n17NjpsfQ4es70WtOxVbqt9qtarbrBrz3/dhv9V0NHnSVrz4vW1+PoH0v0HOh+bdH62jbdRoM8S8dA+3T69Gl3TLWOXjO2XdpODfPf/OY3u3WV9kdn/eryLtpu2x7dzgapGoq/4x3vcOtq+/QY2jZd8kOPo/u116ftky67oAGobmOPpSG3/jxpXdsP/7Wj4eYf/MEftOor3Sabzbb13b4W6La6vIVen8peo3p+damUzmPYbTTM1pDf0vPz53/+5+716W+b9kPbpf3S1zWduW6vGz0/eu3pH3Ns/3Xfdhtt4/T0tDtb3P8HFd1HMplstUfr6nnUc6XXhf7hwL9Uh46Fvm7r9elvlx5Lt9VrW5cg0p8V2zbdRn/O9Y9gdhvdv/1a/3Dxa7/2a+451DYpfe3R1xP/Nnr+bUisM6X1j3u2PgAA2BmEwgCAXU9nCOqbUZ1tN+70TbQW/RixzmLUcOV3f/d33RmO9913n1y8eNGtZwMkpSGFPtYZjbrN4uKi3H333e4aqrqNDTT0jbyGAJZup4Gl1tWP/OtxtOhH3W3oqtv412HVYEC/r7M0tegMXd1GQ0wNPWw9pWGDBg8arN5///1uu7Q/Gijptnpsu43SutoP/VeDDj2O7l9nvvnbpsGPsuGJ1teisxF1bVYNWXUbHQsdNz2OXbPW9l/bpuOsMwt16QIdK1tfA1cN12wgrH32h28a1Nh62h/tl7ZTZ+zZttkwRI+nRT9urqGXHkf7rm3Uj2zrefYHtXY7/Vc/Oq7nRtul50f7pOdTZ1/rGNtAxwaQ+liDRG2P7l/bZo9j15JVuo09pgbQGnRr27QP9nrTj6DrdaN19RrQf/WY2kYN0T7wgQ+4Y6B90T7pz6D+ccaGu/5x1m10LDXA0z5oOKjH0b5pcKTXtNbRNum/Ot76r7ZNlyPR/WufdP96PG2rnjeto8X2X7/WoFvHSPuiRZdg0O01wNI/hNhrU+l2Os66pq6uH6391vbpGsPaNv150utT92sDeN1G26khvm6j+9bxtW3UgFV/XvznVOlx9frUa03bpMfRMdA26lj662v/tb62TWed6zbaHq2vY6DH0XOm37fnxx5HH+s5sNem//VA/zBkx9Zuo+dJ96PXp9bXduk1o9ebnl8dA39dOw76r4arOma6b9snbZ9eNzpO/p9Pra991Jn3ev51O3td6zZ63Sp7vej2ejzdRn+utG22fdofPcc6819pfa2n14vSY+msXK2vfdB/9TVHz5e9bnQclI6zvubo64P+LNrXND2nOoZ6fep1o7RtWpTuQ69pPd/aHj3/uq22T1+D/Gsd2/OkbdTndRvtu46zbqdf68+GvT7tOdGij/Ua1Ncw+/Op673r+Om42Nc1W1fHQI+lf2jTa17bY19v9Fi6H3sNaD37c6rjrX8g0ddpPY6eU91Ox0GvNf2ZV3oMLUq31230tV//IKWfiNA/pv3rf/2v3Znx9rqx1zMAANh+hMIAgF1PAywNhfUj5buBDVNswKj0Tbu+sbZv5pUNAZSGAkrrWfY5ZUMD3V5pPRvw+N+w2+/bYKKT3cbS+jZYUPb4to3KhgPK/qv0aw1kgo6jdL/+/ijdRvvs34+yoZrSbfT4vYIIu73Ws9tqO3RbPa6//Zb/Obt/f9/9x/O3R+m+ta49rq1rx8BPn7PXgPLvyx7P32Zlt7Ft1Mc2+FK2vfqvbYP/OLa+7butY/dn6fO2vfq1bYf+q3VtUfp9//nz19e26GMt9hr2s+Ol/HX8Y6zsfmyb7LH99fT7yj5n22SfV/Zr/dceV+vbr5X/OrXjpP/6t7X/agnqu/5rt9HH/v376/vp83psu43ts61v++Ufe+Wv49dZx7bLf73odvY4to36tS12v/7v637tvvRr3d4/ZradVlBbO19fbL/1e/qvnz7WAN4eQx/r8e3rg+2Pfm3HXPejx9Wv9Vj+a69zG62nJew1T49t92mft18rf7s6+2r32bmN6tyn/2dUi3+//nPmH1/9nrbRf1ylz+ux/efFPqfsPuz2lj62+7Jf67+6H397dEx0Br/uTx/7+6HnBgAAbC9CYQDArqczBzUU1o+5jjv/G2zV+dj+6w8A7Jt1+29nyKD8b+iVfYPuDwe0jt2vfx82HLDP2W30sf3abuvfzh+46Pf02Hb//tBT2TBJBQWiehwtth/+dtt9+p+zOvtp69r92MdBbF9s/3Ubu52y7VU2VOlsg9a3zwV9zx5f96Xf76zjZ+vaf23fdFs71v422XbrPv3Pa7/0sd1e+cfBft/2SXU+1rb7z7X/a+U/Xme7/WGTv792PGw9faxF2f3rfv3BnX97/Vq3tcfWbey+bL3O7f1tUWF9svvp/FfpfmxdO9b+sM72QdnvB+1b+dus9cKO27lP/2Ol9WxdFfR9ZZ+346PP63Ht19oPfWw/LaBf2+tAt7X70ef1sf7r/7lX+rx//P3XnT72j4U+1nOi+/W3RdljKf92dhtLH9vt/G3sbKuffU7/9bffPtf5tb8ttp3aBrsfpV/b86lf+1+L7Pf8X2s9fxv915DSura+PYa/vv1e5/Vt62tdu52t6+c/vqV1/PvU7ZTWs/tV+rXtj9J//a+J9lwBAIDtRSgMANj19COvGgrrWovjTt9c68eS9SPtGo76AxQAAHaaPyhWNmS2/3YGxPocAADYfoTCAIBdT9eK1FBYb6IzzvSNs94w7ad+6qfku7/7u90bVuljFTSLCwCA7WKDX0sf2xnB+rX+jiIEBgBgdBAKAwB2Pb15jobCejf2caZvpl/xile07n6vd4s/efJk6yO69l8AAHaCDX+V/qu/l/R3l97c7jd/8zfd31nnz59vBcMExAAA7BxCYQDArqd3iNdQ+Cu/8iu9Z8aTvrlOJpNuX77oi77IDYVf/vKXux/F3bxAuCI5s389RmiZrXh1d07jwrykpyaa7XFmpLIX8vBzObe/uXPeYwAYERruBv0e0mD4r/7qr+TIkSPup3W+5mu+Rg4fPix/9md/1trGP7sYAABsH0JhAMCu9+CDD7ph2pd/+Zd7z4wnffP8ohe9SL7kS76k1R8bCm/ejXq8UPhgRvJz+eByurlkxc6pSeGFpo1TGVk4U5byyqrUve/saoTCAEZUWCisge+FCxfkm77pm1q/u77xG7/RvQGs/T4AANgZhMIAgF3voYcect+IfumXfqn3zHjSN9zPe97z3H7oTGEtv/zLv9y68//m8ELhEZgNHG4c2rgFCIUBjLjO2b86U/jixYvyzd/8zW4orH/M/IZv+Ab5/d//fff7hMIAAOwcQmEAwK73gQ98wA3T9A3pONM32j/xEz/h9kWLLh8xMzMjTz/9tPtGXMvGDRa41s/mJX3DfnF0G2e/JI7kpbzmfTOMG26mpHC2KOkDjrtdanHV+2ZdVpeyktTnzT6dA0nJnKqszwT2glF/SS15B7y2JuVTmfBtVdix7fMXV6VwPCkTum/zvem55vb18+vLVUwczJp6zZsnrevTbtWz3xF4fc+d8bVxX1zSc2VZsxP0GmWZcczxA85f46Fs8/hPmAdB/e3cl3WlIvPHUhLf5425d54rV7zve6JcC0NdLwDGgv4O6vzUyjPPPOOuIfy1X/u1rbXwNSAuFotuYGx/bxEOAwCw/QiFAQC73srKihtm6czacaah8E/+5E+6fdHZVvrm+ld/9Vfd721OIKyih8KNczmZjDmSvGVBiitlKS9rcKph34yUOzNTPzeQdMRx4pJZLJntFqR0Ub+xJsUjE2b7hKRPFaVs9lk8lZaEhpyHC+IuWnFl1TxvjqNtPDrv1qk+oQerSeGwBrJxb9uSFGZTbtjZ2laFHdt9flLiUxOSMPst6va3Jt3wMvWyjMT3pSS/HNbHCO1Wof2OyN3e7NNxZOJQ3h1zPU7c7WPRtKKpMquBc86cSb+GlI+bdh8pNoPqVn9770uuliWr/bghLfPafx2XuWa92FReql619WvhbWZfHzB9e4tvnPTa/MdIdQCML/09ZMNd/VeLnSn8Ld/yLfJlX/Zl7muYzhS+55572gLkzfsdBgAAoiIUBgDsSr/+67/eVtwZjqb88A//cKt84hOf8GqPB31zvbi4KF/91V/tBsL6xlpnW6mgtRyHEz0Ursyaei/0hZ7q4rwk9sUl32uJAy/cTNzePku2sTIjTiwp851B6aUFScYcmVmxKWx3G+vLaTfknDnbnkbXz2TNPn3bhhzbPj95oiLre6jJwo163aSkcNl7ymjOuHUkd957HLXdYceOytveOV72tbHZHu1ja1mJC3k3fG1bZqJRlqzZNr3szV22+/KH1obdl21z/XTWDcTd2cU+tUW94eH6881r4Z3y5/Ks/KNca5aLp8y1MCVvPPcP5vE/yAdbdZqP/1HrturoNhomEQwB404DXvs7SYPhxx9/XL7u677OnSlsl4945zvf2QqR9d/NWxcfAABERSgMANiV9A2pzgzW4Cuo/PRP/7RXc7zo+sH33nuvvPWtb5X3ve990mj448HN4AWuYcUXxDaDQZ31WpHaIMsae4Fk59q4lRNm/9+elYUVnZHqL97M4NaxO0PhupSOmcc3LrQH1K6q5K8z37NBasix7fMzZ73HrjUpHDLbdgbflwuS8u0jcrvDjh2Vu/2k5C94j1sqMmP269xm5+02++xfQqJ+OmO2TUvRLvng7qsjOHaZsdWZwa19hXC3T8jCpebD9WvhEfnzq14o7BYNiZsh8J+31fFC4VY9Lf9g9kQoDIwrO0vYP2PYzhS+7rrr3FBYfy9/27d9mzzwwAOt72/eHzUBAMAgCIUBALvWb/zGb4gbZAaUc+eGTeZGwxe+8AXvq/WvN+eNtRe4HsxIfi7fXU774tGrVZk/1FxnV8vEVEoyp4pS7bdGbGA46gWw3r4CS2tZg85Q2Nu2YwZtk/e9Q4XmtmHBbK822W2tJ/yh8ADtDjt2VO723bN2W204VmouDWFU5yZ9S0h4obnv+3331dnnq3WpXSi7S17kj6db6wu3+hJ4Lbxb/nTtH6X1P1PnLaF1iIOBcecPg5WdMfzUU0/JwsKCu4TEt37rt8rc3Jz7B00NhLVovc3/AycAAOiHUBgAsGt9/vOfl6/6qq9qhVC2PO95z/NqjCd9E603l/PzvxHfmM7Atb/GE1UpLmbXbyAWi0vuXI83+IMEsIFGMBSO0u6wY0fVL8j1999dQsKbVVwvScYcN3Pad9u7fvuyQXZb2OvI/hsSkjo2IwuzulxHd18+b66Fd3dcC68314INfbX0qgNgfNkQ2D9j2P/HSv36ypUr7h8y9Xt6Ezr9fQYAAHYGoTAAYFfL5/NeoLVedNmFcaVvpP3FzhK2s642bvBQuM2Vsszocg3+WamdAsNR70ZosWzvm9S5OtsYYfmIE17dsGA28PkoofAA7Q47dlTu9uHLR0ye9C/50FwPeXKu6i0d0dG+HvvS5SPsvtwZx7GUzF9oP5vNdZUD+uJPf9uuBf83tHj+2lfH9zSA8aW/izTw9S8hoV/b31H6u8v/tdYFAADbj1AYALCr6cdWv/7rv94NsLR87/d+r/ed8aRvpNfW1uQjH/mI/OVf/mXrjfXmiRoK16RwNC4TR4od4e+qzOvN2QYOhcW7YVtMUnd3RLvuGr4Tkly0N2jrbmO/G81lznitCQtmA5+PEgoP0O6wY0flbd9+MzxzJpamzfG7A153nd/rcpI7HhPn1o5Z1CH7WlvO+Pbl9b9zTWUN4Y87vr74roW27Nd/LXzS1Jkydd5lvvZds/46hMLAWNOA19IQ2P7xUkNfnSXsv5mcPu9/bvN/lwEAgH4IhQEAu94b3vAGN8DSsri46D07fvRNtIbBL37xi+U7v/M75Zd+6Zfkk5/8pPvmW99Y+z+mO7zoM4XX7tMw0pHE0bwUzpSlfKYg+SNxM85xyZ23UaMXLMbs+rZGaDhak8JhDRvNPm9ZkNJK2V2WIqXr106Z7Vs3swtqo902LulTRSmvlKQwm5IJU8857As1w44d+Hy0UDhyu0P7HZG7/aTEpybMmM9L0dfHuBmL9jjcuLQgSdMmx3FkZqXju15b3Da7+zJtnuveV/Wkns/1fpWX5yVzcEKcfab4+tJ2LZRMvZL/WtClTq6ZOjd7debM9fKB9uvlUXNEQmFgrNmg17KBsP1af1fp9/VfuwSSPq+B8Ob8/gIAAIMgFAYA7Hp/8zd/497gZt++fd4z40nfSN9yyy3yxV/8xW6gp//q8hj6/OaJHgqr2pmcb21YR/bflJXCY/45woOEwqoulVMZSR5ozkSN7YtL6nhBVtumHYe08dqalH3bOgeSkl2sts9YDjt24PNRQ2EVod09+x2Bu31KCherMn8k7ga4sX1JyXT2saUm/z97ZwGgRbW+8dkOdunuEBURUWyxKBUVFANBRKklzHvNv3Et7MQOVO69FnajYgcWUmLR3du7X8fzf58z3/kY9q6Kriyg7w/ePTNnTs3MmS+eeb93HusvZZpf+b+hLexYpm1uyxyvZ36s0pbs122bHyzHh8Nd9MQXWLfOjVN87BObfYirnwvFsoXzk96AYSlznZTZfcsy30mP1rtYUZSdGoq8hO9LFHutGLxkyRJcd911+Mc//oFvvvkmKQbrA+YURVEUZfuhorCiKIryl8MfrMD8hZ/jnc+n4IFnLzB20S1H45+3HmHsjimjk/ksw7I7A/SkOvHEE404l5GRYURhfsGml7D3Z7mK4uKK2s2rE/hrKlD/ApHI5jihrsobRTTmxr0OR+gZGEqssxxFIdn+p97UUBRle0GR117PNuVrwZo1a3DKKacgOzsbWVlZOO6448yvXtQ7WFEURVG2LyoKK4qiKH8JKAR/8u0LeOLlK5Pi7+811mUbbGtHhF+gBw4caMS81NRUIwpfcsklSU+rP+0L9mOPAddem1hJULduYiGBlkmsJNgRy5jwEYn4wFXLVCcK13g8jB8a85Shl2DEzUuUiUQ4V6OeMnH5z9ijUubww0wZRVF2TigAMyyE9RBmSvvxxx/RtGnT5HsXl1944YVELbee3thUFEVRlNpHRWFFURRlp+eb+W/jiknHVSv0/hFjW2xzR4Oi7zHHHIOUlBTz5TozMxOXXnop/H5/osSfwDvvAKNHu4Ld5MluXteuQFnZZvFPy/xJZU7H013dsAy/aSf8n1tvK/oq6dgSd1x/Hk5KlXoMfVHdeDq6As0NdbbFfo1E/Op/VSlTskWZ+MiR0s41W5aplHY0hoSi7LRQ3LU3J7nM9yauL1q0yMQ2pyCcl5eHJk2aYOrUqaZMMBg0wrGiKIqiKLWPisKKoijKTst3Cz/DxIdPq1bYvfzevrjpv8dj0ssnGXvwrcGY/N5QY/e9fkoyf+KUY03Z6tpg2+xjR4Ffrvv374+cnBwj6DGExIQJE0w+vaxq/DP8b78Fjj46sSKMGSOfFOSjwvffu+sU/7iuZVz+hDKBkhKUnHkmSiSv5MsvUcL1lSvd9T593HXaWVvfV8lDI0yM4A79/oUPfqEMnj5fEgc3vP9n71c/IB5CLBKUMqPdvPnfIx6R+buxxKzH+x3lar9x+TNqVKLMHJSVFjLTNKcoys5Fdd6+zOOD5ubMmWOEYHtDkwLx888/r6FjFEVRFGU7I5/CFUVRFGXn45m3bv4fEffSu3vj9qknbCEAb62xDuuyjartvvLBfYlety8Uf08++WTzxZrG8BEXXnih+eJNbKoo2wd6+7kPlDOhI6IyH6n5MJupWJybEnkUihGLSzlbh6ZzWFF2Rvj+Q5GXKd+rKAYTegHPnz8fzZo1M/GE+d7VokULIwqzHLF1FUVRFEWpXVQUVhRFUXYqGO+XD4jzirYX3dHLeAVXJ/b+EWNbbNPbB+MNb+9Yw/xy/fLLLxuPK4aOaNu2Ld7hz/UFemiV0VtTUbYbjB/KmMFhqjwMFZwUgaOSzcsn7AN8pYAJLWxEYRrFoDAi3KiisKLstHhvTFLkpTDMvJ9++sm8b9FL2MYUZvgIlqFp+AhFURRF2T6oKKwoiqLsNKzesAh3TBm9hVh73WP98fA7p1Ur7tbE2Cbb9vbFvjmG7Qm/PD/33HP4z3/+YwRhG7NRvayU7U8MsWgQ8WjI1XY5JcUoBs/46Gc88dAbeOyB19C/zxkYfeY/MWfmArAovYVdhZimorCi7KxQAGaMYC98b/rhhx+w5557Jn/hwuUPPvggUcJFhWFFURRFqX1UFFYURVF2CuilW1UQ/jO9g3/J2Ie3T45he3oM2y/ONnaj/YkuCQTofqko2wtXCY4ZUThqwkfEIsDihRtx2UW3o0uH3mieeyBync7Icpqjc5vuuPaqG7FyxRpTNejn/JUFNmPNEJd/MfPXu8ndnCy0JZsLCLxmKDgn3Ja5wW7fokxim6IofwjrKcyUNyuZ8j2K700vvPACOnbsiM6dO+OOO+4w+dZT2Ps+piiKoihK7aGisKIoirJT4A0ZwdAOjP9bnYi7LYx9ecNJMJTE9sR+8bbCsP78VtkR4KzkLIyZB82VyJwsR0lFKUaPOxfpGU2Q4+yKFk5f1HP2R57TFnWcRmiQ3xzDzxiDcFDmMaczxaRgyOizEWrLpk2Z3wgiwhATkkHpls7F7MsVimWFBY1xObHRFGAmBSfeyCkXY4gKaYHZtowQl/bjoCidyFAU5XfB9yW+F1lB2GLfm5hyG1OWs2W4rqKwoiiKomwfVBRWFEVRdniqPlSuNgVha+zTO4ZX3t8+D5+zX6xt2AgrEHO5omL7xjxW/t5wJrq+tlwKyIIfi5Yvwp49esBxspDtdMZB9S/B/pkXob3TH/WcvVDH6Ype+43Gz1/HAL9UozBMDckovxSapKVwABEETZYxyUuKw9JPTCrG43It0C2ZueyebdC4bBqlIFwqVikmZex2mkBBWK4qWWKriqL8UfiexBuWFH6rwjy+dxFbzmLFY0VRFEVRag8VhRVFUZQdmu8WfraFGFsbISN+yaqGkuDYaht+qV60aBG+/PJLrFq1Sr2slB0GSjqBhN5q/sjygkUr0LZjZ6SlpaKOsyt61b0Ppzadhj5ZD6K7cxU6OxfjqA4P4Pnrgyj7DoiXAb6yADatK0PAF0Nc2qGuGwxHEZFl4yFMQVgsjpBYiWwtFCuSfIq+YbcC+7fGdeMFTC/hhPDrLWNgHFT1FFaUmkKx196sJNZ7uCpWBLbisIrCiqIoilL7qCisKIqi7NBMfPi0pAjLB79VJ9bWpnkfPsex1Sb88jxz5kz069cPbdq0wYABA8wDfCw+H0UvRdk+UNLh7QkTvZdTURZWrNyEPbrugzQnFXWdvdEr7WmMaLgIw+vOwdD6X2FAvQ8xsOGHGLPLfNxx+go8d+9snHLsaJxy/Bl4YNLDWLZ4CWKJn5lTV6JuRFE4jqgYO6EoXCxWJsb1hOchB2PN6FF2dLSEKGzNwHwKwyynKMofge9R3puUXLcPnqPoy+WysrKkhzC3W1FYURRFUZTaR0VhRVEUZYflm/lvJwVYxvR9+J3TqhVqa9M4Bm98YY6xtqDH1fnnn2+e3u44jklvv/12FYOVHYKY/AvLvwiiCFZGjSi8fn0ZBhx7GrKdRmjs9MGAtA8wKrMIo1ILMTa3BGdkr8KZdVbjFGcxTq37Gfavd6mU7SrWFI1zm2DoSSfglReekskfQDhUiVjMevRyzvvAsA+xGENHyKoRi/lAOopNYpKXNMlz/yZCTFjcDQJFKVoyQ1GU3wkFXusZTBHYLlMM/uyzz3DxxRfjwgsvxPTp0802CsgsxzLeOMSKoiiKotQOKgoriqIoOyT+YAWumHRcUny99emB1Yq028O8YSQ4Ro61NuCXZnoHp6SkIDs724jCEyZMMPn0tNIv1cr2JIYI/CinJCyTNW60Vz5A7s2XvsCJh12EvdMvw9Ds7zAuLYgCJ4yzU+MYmVKKc/OiOC8TGFlnLY7IfhqtnZHGqzjPaYo6TgZ2a90G3331ravlGoWX89z1Sab4S+9hky3LrgcxRSY3P2msaoyNsL7NsXC9ap6iKL8HCr3EirxWFF69ejUGDx5sbmbyvWvgwIH48ccftyhvPYoVRVEURak9VBRWFEVRdkg+mflCUni99O7e1Yqz29M4Jju+2vIW5pfs/v37my/WFIbr1KmDc88912yzX64VZXtBUdgXK5bUByPchuNGyI2VAa/c68PxzV7HiDrL8I/sOCY4cZwrn0LHOMViJThHlkc6IZxWZz2OSH8duzvj0dI5EA2dZuiQ2x5v/ftdxIukE+pGYnQYjoQkpeDLbtyupG/GGaa5+Ukz2yj50pOYojCNNWQjC1tTFOUPQWG3ahgI5vG9ac6cOWjatCkyMjKQmpqKJk2a4Kmnnkq+b2k8YUVRFEXZPqgorCiKouyQPP7yFUnR9fapJ1QrzG5P45js+DjW2oCi8KBBg4wobMNHnHfeecmnuesXa2V7Qi/cKAIIhstlMkaN7hqqiJtwv5/8BxjU4gucnrYUF2TGMU4+gZ5Pyw5ijFOK82R5vNiobODkjFU4rdF09Ey5Hrs6Z2CfjFG4cfh0rPpUOlkLVK4CNqyoQNFGHwIUhyXbBn+ISf8MKWHDSPCKoOxkjSEuKArHTWnWlFK2oF4+ilJjrJewFYlpP/30kxGFeTOTojCXX3rppUQNt46iKIqiKLWPisKKoijKDgfDMVjBlfbgW4OrFWa3p3FM3jHWBvyizfARVhS2nsKVlZWJEr+N9eSy8R6J/dku1+2XeW73PjCIcJui/Bpxyq1BmWNWqZWpFS0Cpj0InNjiK5yRuQrjU6M4Wz6BTqAQnOHD2FSfEYTpLTxabGQqMCJ7I86ssxzD8pfhtHqLcXLDnzG4/Qw8eVURLh3+BPbf/VCcPW4sPvzkfZT6K4wDcSDG3rnkQyhcIctRo/OGojLXmcYY7Zh5FIXd8BMGqxwzVW1KUf4wXnGXyzS+j8ydO9cIwTYePpeff/75LX7hojc1FUVRFKX2kY/eiqIoirJj8d3Cz5Ji6+X39q1WlN0RjGOz4+SYtzUUZYcNG2a8rdLT041dffXVyS/iVUXcX6I6cZfexvxSzrb4dHiLzdvatpW/N0bXMUqsGKNIBIAPXvsZQw5/FPumPIRT0xegIDViBOGxYmMyghiTFjDLzKMHMW1sSkTyIxiRBgzPAIZmASfXXYGDMx5DS+dUNHR2QbaTiY7tW+Hq6y7Hmo1rjeAbZRBjE3OYijTDSIQlNwx/2G/kYBpFYT4Szw0jIVhRmKaisKL8Yfh+QbNiL987AoEAFi5ciNatW5v3rpycHDRv3hxTp05NlvGKw4qiKIqi1B7ysVtRFEVRdixeef++pNjKh7pVJ8juCDZxyrHJcb7z+ZTE6Lcd/LL99ttvo2XLluZhPV26dMG0adPg8/l+lxdvRcWWD8bjl3LrQWzFX+sxzHXriayewspvInPGiKx02A3GUVK4EUNOPgNZTmu0dIbg+JQvMDItjPGprlfwCFkelRHB6BQ3pMTZThznOCGcnVIhZXwokPxRUvbMdOD0OkUY0nwm2jrnoolzKPIcuQ6cdORlOjjvnOFA1Gecf2N+sVAYQT9vbvgRFwuEK2RYrp+w+4/ewgkVWEVhRakxVtz1irz2puKCBQuQl5eX/JWL9RS2qCisKIqiKNsHFYUVRVGUHY77nzk/KbZOevmkagXZHcE4NjtOjrk24Jfs9957D48//jg+//xz44Vl4Zfv3wvrlJeXm2XvF3OGlPC2TdH4j7Sv/J3g/IjJRIqIMQ1h+YrvsfvubZHpOGjs9MRRzrs4K82P8RnAKPkUeiZF4cwoxqRGMdYJ42wnhHOcgJjfLFMoLkiRshSGM/wYlP4DhjT9BIfn3Iy2zglo4HRHQ6czTu87wcQuNsZpy3sccq1QFAYqEY5WGhGYOa4x1ASXZMwcNqd+YlVRlD8G358I3yt4E9GKwsuWLcOhhx5qwkfwYXM9evTA9OnTk2X5XqPvL4qiKIpS+6gorCiKouxwqCj8y1ih1sYBtl+8ydbEFq7qEWyhIMy2mdLoTcw+uMwv678nbrHy94QyK0M1GDfhuA/xSDFWrJmL3bo2RYO6Duo73XCU8wZGpJdhfGYEo1KCOCstiDGyPDaVAnAQE5ywWGxzzGExhpYoEBudCozKCmNE/gacmPEFBua9hUOc+7CHczVObPUUXr85ivLvpfuNQMUaPoxuEypKN0gGPeODZnQJ2dqkrgQlazbTblAU5Q9jby7yfYPG9yiGJ+KvXPr06YN99tkHTzzxRFIMJnwP0/cYRVEURal95CO2oiiKouxYTHz4tKTYuiM+ZM7afa+fkhznHVNGJ0a/7anqUWW9sbYGKwYz5ARhPQrFX3/9NebNm4dNmzbhq6++wtChQ3HxxRcbb2SWtV/uFeWX4Ax0HW6jiEVKZakMK9b9iN26tkeak4IGzsE4Lv19jMwoxfhMP8akVGJUWhAFaVGMd6KY4ESMMDxWlm1sYa9RHB7LsBNS/sz0IgzPXo2CxisxJPd7jGi0Aqc2nYFLB8zAuOMno3n6vmjXcDfcd+ftWLZ4PiorixCJMo6wO05r7ojFNmcoivIH4XuR/VWJfb/gsn1/omBsxV/m2ZuO9ianoiiKoii1i3y8VhRFUZQdCyu00qoTY3ck8461tuCXbn7htgIvv1hz3X7x3hqsdzEFXz7w56STTsLIkSMxc+ZMHH/88SbuIx8K1LhxY0ycOBFLly79Xe0rfz84o+gnHJZpEon4EEcAaws3YMKEK5CX2h0tndE4KXs2RmdUYHxaBcalVGJsWhhjU+LGM/gcsYLUCoxO82FMiusdTCF4XEoM41OCGO+4D6g7PwOYkMbwE36My/LjDKcYY9LjGJa3Cie0fhVtnbNQx9kH2U4z1EnNxAnH9sXHH76buHlCMcqrAVMUpnhFU1dhRakJfI+wNynt+5PNo/Br33eYZ4VgLttfsCiKoiiKUrvIR2tFURRF2bHwCq3VCbE7knnHWht6Er88//DDD3j55ZdNaj2tiP3Z7q9hv7Db5cLCQvOTXorAjPX41FNP4YorrkBWVlYy/mNqaiqOO+44bNjAn+IrSvVQ7gmEXZnVFVnD8AfDWL00jrEnTcH+2ffjtNzlGJMeSYi8QUxIjZsQERSFz00BxqT6MIqicKobS5iC8bgUPpjOL3XcGMPWa/iCTKZxnGdSYHhaBQbVnYWDMx5GO+csNHAORH2nHeo6jXHUQQOw+Lu1rmpNx2C5BIxHM4LyN2SWXLlqM7xKrG0pHnPZbuGyXFOJNUX5O8P3Fu97ElOKv951mhWB7Xa7rCiKoihK7SIfoRVFURRlx+L6hwYnhdadJXzE7U+MclWxbfi9ll+aGeZht912Q6tWrXDQQQdhxowZyW1bAz2KrbcWv5ivWbPGtEevYArAU6ZMwffff49rrrkGbdq0MeIwRWE+OZ5PkCesb38azGUrNHvzqsNuV/66xBN6aSxq1dcYwoXAzOeBU1p/iiGZJSY2MIVg2rli9BA2wrDkj02JoiBVzAjC1mIYJ/n0GPaGkzDiMLczFWO7Z2WEcXruKpxa9z3s5VyGds5AtHQORa82Z+GbV1a7D6ILyVwMB+ELb5LFMgTgl79x80g6cwlzTpt/7npU9icUZUU+kJHxiaUkd9TsrF9qUlhO1BVTlL879v3Avj/wFykUi5nyRqT3vcD+0kVRFEVRlNpHPkIriqIoyg5EfCd+0Nw2VoX4xZkhHijUUsRleuWVVyZFWPvQnt/ClmdKUbhFixaoU6eOMYrCzJs/fz6mTZuGs846C/vvvz/+8Y9/YOXKlcmfAPPBQaWlpSalAMBlC8dJwZlf9pnqF/6/EZz/8Zj8jyAaCctkiBot9ZMpMRzb8HUMySrG6LTNojAFYXoJFzCOsBGF/7gx3MQYsbOcCMbWXYfBmZ/iuLSncJhzJ3rl3omJp87A7BeA4Apg1YINmD37S2wsW4ZKyDyWYdNfMW4u4oikMn9lPzaLvUGZyyWy5JOVkOda3ywK01QUVv7O2PcWi11nKInPPvvMvH8NGTIEr776qnl/oFlPYUVRFEVRah/56KwoiqIoOxA7tSgsg9+GqhDF1YEDB5pQDzbcwwUXXGAe3LO1nsLeclxev349unbtatrLzMzEf/7zHyxfvhxz587FihUr8N133+GDDz4wKYXi1atXG4/hYcOGoUuXLrj00kvNw+ko/lIAqCoKWJiv4vBfn3g8hooK+t26nrb8EywEpt45Cye0fQKn5izDqAwkvXsnGC/gCEY7MSPoVif2brVJ/fH0FmY7WWEU1KnAiNxNGFZnDU7KXoKTG87D8C6f46Lj38UeDfujVb126NfnYLz7/vOoDBUiAj4AyyfztFQu5XLZhwhCMmV9gcRlzWuHO0X1l1OZqRWQE6vb8PJXlJ0Cvq9Q7GXK13wu833jmGOOSd7MPProo/Htt9+a8nxv2Nr3L0VRFEVR/lzkY7OiKIqi7EDId8NX3r8vKbbe9N/jqxVkdwSbOOXY5Djf+ewJGTsVo2335dYrCjOkA2P+XnTRRUlPq60RXfkF3cIv42VlZbj66qtRt25dIw6/8MILWLVqFRYtWmSEYC4vXrwYP/30UzJlPGP2zXHwC3737t3x4osvGmHYC8dFD7FfEoqVvxpxRKJhIwdHEEW5P4CKihjuuOFRdMjbBx2coTgxZxZGZEZQkErP3jjGpQYwNi2EUfKJdLTYlmEjfp8xnMR4SdnuKMeHUSl+jEgNY2SmtJ0HDMmpwOCGC9Ez/TE0dI5BPWcX1HXqoEluDi47/xyUb1onFwXnMB+QRQ/gqLnPw+lL85VLvhWEE9ExZAv32iyqKKwo7nuM9zWfgi/fNxo1amRE4fT0dPMAU96AJCzLsBKKoiiKotQ+KgoriqIoOxZx4LsFnyXF1svv7VutILsjGMdmx/ndwk9l8NteFOYD36yXsBWF7RfqqqLsb8Ev7zSKvZMmTcLjjz9ulukJTGNs4YULF5qUAjHzli5ditdffx377ruvGYONOUwvY4rFHANFgKpCsFeMVv6axOWfzCgEY0Ejk3I2rlxVit6HDUCOk4kWzqE4LvsDnJFVjjFpFG7DKEirwNiMIEalAqMo6HpE3t9r45woCpxKnJ8VkPWNGJtWiHEZPpzlBDBCtp+ZEcMgZznObDYPuzsXoZ1zLJo4u6Ch0widstvizSmvunpwRK6loN/MYV5SvOdiHBk5pasRhblCaXjbXv2KsnPB13z7XvDjjz+aMEX2ZmbTpk3x3HPPmZuGiqIoiqJsP1QUVhRFUXY4/IGKpNhK2xEfNscxecdIUYiS2LYWhY899tikp3Bubq4JH1FeXv67RNfqxGPWp+D7888/G/GXX+KXLFli1ikIM6QE8+fMmWPynn76aRMbsmHDhkYcrl+/Pv7v//4v+TNgjpXGdZrGjfzrY3XTiPxlQIWgZCxcvA67duiGHCcFjZ0eOCbzLQxjXOH0KEY5QYxJK/8TReEYxjoB/CM7gnEphZiQVowLciMY44QxXD7xjqF3crakdQtxcvaH2N+5Efs449Ha6YddnKPx4D/eBDbJDvhkPxhkWC4pOv/z/gantZnadid5uZlLjgpxSLLccBncrCh/d/iab28Q8n1g5syZRgjmexeNAvGbb75pttkbiPa9Q1EURVGU2kNFYUVRFGUHw1VeHn/5iqTgevvUE6oVZren3fr0wOT4HpOxUh/iY6koDW8r+AWaD37jT3Ctt/BVV12VFIS31lPYW85+eae38Q8//GDMxhLmMsNIUCxmOnv2bJMuW7YMa9euNes33XQTTj75ZCMQf/zxxygpKTHjYcqfDLOcFQe2dnzKzgvlncpAACbSrpzz7+YvQvcu+6FJRgM0dg7C0elv4oysIhRkMI5wAAWp9BQOG0GYISRqGj6CD63jw+vGOSHjNXxuegwTZBtDU0wQYx9nMM2qwIQmGzEo7RMc47yCvs5UTNjrQzx62UKsniPXSLHsSwCIhoCAn17AcYQibsxhhpYwarEJF8OHOwZlK0soyt8bKwLb9ySuU/Tlr02aNWuWDDtkPYVtGX1vUBRFUZTtg3wsVhRFUZQdCVcU/mTmC0nR9dK7e1crzG5P45js+L6a/7bxF+RP57elKMwvzxRe27Rpg7y8PBPL96OPPjL5v8dT2H5xZ0qjIDx9+nR8+OGHxjuYYi69gRlKgg+Xo4cwBWJu45d7bmM+BeKVK1ea8l9++aXZTmP5iRMnYo899kDv3r3xzDPPoKio6HeNUdk54SnmFRCK8WqIYdmy5Th8/96o4zRBM6c/jk3/AGdllmBcBkM9BDHW8WNcatSItiPFaioKn5Mqy0zTuB6RPiJGKGYet5tt6bKcCQxzCjEqZyPG5G8wdmrdr3B8h3/jxANuxJknXIw3XngPcbmw5RJBKOqT/aIoXCJWJkbPdwpZFIVD5rpXUVhRXPhaz/eWQCAAv99v3iNatmxpfuHCm5qtW7fGs88+a8ooiqIoirL9kI/GiqIoirIjwS+JcfiDFbh80uYHue1ID5zjWOy4OMYKGWttiMKEXldfffWVievLEA+VlZVG4OUXb6b0uKLxS7lX+LWeWFxmWVuOy1dccQV22WUX9OzZE++9954JFcG2Ke4yprANJ2HF4l8z1n3//fexzz77mDjDFADq1auHoUOHYtasWabPqkJA1XXuI43jt6igvBPA08jTFIPMq4CsRlBRvgn33vwQmjsHYlfnAgzO/Q4jMyoxLiWMCU4M56TEMdaJG1F4fELQrU7w3TqLS7sMHRFOWAzj2W7Cxllj2bQKFGQUYUzmJozOLMSojDKcnv8z+jSYgkbOcajrtMegY07GquUrEY4GZJdo5bJzRWIUhikKc37yutK5qSgWvp57X7u5zpuHBx54oHnIXE5Ojlnm+xi3VfeeoCiKoihK7SAfjRVFURRlR4FfDPmTbFoc38x/Oym+XnxHLzz8zmnVirS1aRwDx2LH9fV3bxtJyNXCtr0obL9A8wE9/OJNz9y33noLTz31FF588UVMnToVr732mvnCzTi+XjGV5SkC08uX8RzpqfXAAw+gW7du5ie9/MJOr156CFuPYArCFIOZ0qqKwFWNISUoDJ977rnIz89PeobxZ8MMM8FxW1Ga+2HH92uigLecsgMjl22YzrQ8VXI643EKpxXwr4/gP9fOwYCmT2No7mKMyQhivBPF2U4c5yYE2wKmFGslrV7w3RqLoSA1bGxsakTW45uFYK+lhDA2rQxj04tRkF6KMemVGJMWxhl1luHIOk+gvnMU6jotcWC3Hpg/d5bsVhDhuMxZ2Ze48RJO7CSnrNcURUnCG3t83abxdf+LL77AgAED0LdvX7z00kvmdd2KxyyrKIqiKErtIx+NFUVRFGVHgcoKvxxSVXKF4esf2vxAt+se61+tUFubxjHY8XBsHKU7Uv5LqGHbEH6R5k9ymX7++efYb7/9kg/voWcu4wxzuXHjxrjvvvuMJzGx3rfvvvtu8inwLEex1sZ5ZN3JkyebmMLWS5hGgdiKw9UJwV5jOcYgnjt3Lm6++WYTQqJJkybGW7hPnz5GcObYaRUVFUYw4HJZGcU2FwoFzCNMVRDeSeApi8h/n1iQHrQhMTmvpcDMZ4FTWkzDsNzVKMiIGS9hKwrb8A4Uh2siCjP0xJiEcdmEorBtio0zFjNexGNT/Rib5kdBWhAFqVFTZ3jOSvSu8ziaO0ejidMM+3bZBXNnzTD7wYjB7sMkKWLJFe99mXJfALb1pa8oOzx8veYNP2KFXubZB416X9f5Ou/Nt/UURVEURak95OOxoiiKouwo8AsjlZbNovB3Cz9LirC07RlGwhs2gjZPxmZH6o7dqkPbHn6BvvTSS42YSw9f+/A5Gpcp+p500knYuHFj0huL3lp8IJwVjr11aHXq1DGi8Jo1a5KCMI2exUwZV7g6IdhrFIVZnmXpMcxYw3wYXv/+/fH4449j06ZNKC4uNt7CM2bMMDGSmWfHaMUC77qKwjsJ9vJNXgZhxCKldBbG18/EMbDJS0YUHptJATiOCVVE4aRRzP0DZkRhqU9LisIpMTF6DTOsBC0qxrx4so4xqTM8ex16Zz6JRs7RqO80wsHd9sC8WV/IfkQQlv2KyD4ld40L3FdrtXfpK8oODV+zrSDsFYbtDcCqr+f6Gq8oiqIo2w/5CKwoiqIoOwpWVdpSZXnl/fu2EGNvn3pCtaLttjT26R3DyzImjjLhN8hvtmLbXhmyYRcomt54443Izs42RhGYRsGXIjHzhg8fnvQUZj0KxIwfzIfU0Ts4NzfX1OGyjfXIMBT0FKaoa0VgegjTw3drPIVpjD9s61IkZr9r167FsmXLTBtM+fNh60V8xhlnmHAW9BrziggWKxiocLCDI6csSudgOYU8f/SqjceCWPVTEW4793UclnM3TstZhDFZcRMqYnzCW3hCQpSlVRV6f5cl2tjcVhTjUn0Yl1YhVi7LflcU5raEecuflVWC43LfQ0tnOFo5u2PckLOwdvky2Yc45D9CcrFzBpqZyWnKFRqXt/2lryg7Bbz2qxOFuUzjzcmq2HKKoiiKotQu8hFYURRFUXYUqKp4lZbNKsv9z5yfFGQZ07c2hWH25Y0j/PhLV5gR8seuNPN1liImlaNtLAzxyzXFU6Z8eM/48ePRtWtX7LXXXsZ23XVX9OjRA2eddVbyQT7W65ZfvBnzd8SIETjggAPMw+UozLZt2xb169fHiSeeiA8//DD5oDkKuDTrMby1ovCiRYtMynaYMpQERWKmFIm/++47XHjhhUaIzsrKMinHcuutt2LDhg3JsXLsdpmoKLwTIKcsLPPNF/DJdRFHcVEp/u/8iWidvh/aOSNwYtYcjMwMY1waRdkoJqSGMC41kvTurVbs3VqTNqyNM0bxOSwWEPOLhYwQ7W5zy3lF4RGZlRhc72f0rjcZ559wB76dPjd514eXtvvKxDASksGpyWlpzdwQYolt/AKgKDswfM22YSDs67XN4/sQQwaVl5cbYZjbrUDsracoiqIoSu0hH4EVRVEUZUeBgoorvSSUFjEXf6ACt08ZlRRmabURSqJqyIjbnxhlxsKvr4yG6DpGyjipGm055G2C/eJshVKfz2c8b+fNm5cM80Axlt65JBze7JXFkA388l1SUmLEWtZjeYq1FIvff/99Iwbz4XUUdplynV7C1vN3a4zlOR7GIuYyhWC2xVjDbI/je+WVV3DwwQcbb2WGsaA4zDjIs2bNMvtGwcCK2SoG7xy4UbUjCeNfyPlfj577HYVcpx4aO71xTPrHOCPDh7EZFIGjGJtWibHpAYxOBcaI1UwYjrshIpyYiU9sbUIVY944mgkhwYfTRc3D6UZk+nBqTjGGtpuF1+5c4z5PTi7yuOwIvYTDcm1H4ZfLnBt4Xcm8pBgc5/zkevIWkaL8LbE38pjydduKwRR/P/30UxxzzDE4/PDDzQNNmc9yVhC2dRVFURRFqT3kI7GiKIqi7CjwSyFFFWtbfklcvX4RbntiS2GYD357+J3TqhV0a2Js0/tQOdrtj49EUfE6MywKXpSB5GutjFQy7NC3HPI2gV+grShsH9Rj173eVvZLN7HbvV+8bbgG5lEoXrVqlRGDKS5bIdcKuzatTgT2mvUoZjt22QrKTG0eheGPPvoI//rXv9C8eXMTuqJhw4b47LPPkmPl+Lk/3n1SdlzcSyAOfzhgJGGKqIsXb8Ju7fdFnpOLxs5B6Js6DcMyShOicAwFaZUoSA8aUbggraaiMB8iFzLCsFcU9grD7jrFY8YWjmBsKh86F0JBahAjMgIYWieAwa3n4+0HfCYWsr9M9kn2g7IvvYRl78Rkm3kFcPfYiMJUjk2pzdeXF15jFMl4zdFTkh6Tf5QdSTz7rbH8ke070v4pvw+eO1rVG3mMU89fpzBcEW8Adu/e3bzWs6y9+acoiqIoSu0jH40VRVEUZUeCgsAviwL+YMUWoSRoDO3wZ3oNsy1vuAja4y9fYTyE7dCYULrcYrS/POwdBiuw8su4XeYXeHoWU6ylGMyUwjCFXYZ64DrNhoWoidFTmO1QZKZAzOWXX34Zt99+u3nIHfPWrVuHQCBgvIZff/11U4/rHK8VECgc22UrftOIV1S2y944lsz7Je9j5ts6Fm/b3F6diME6tpwdjzefMPWuW1i+uvGwnLesHRfz7Dhp1dVlvnccxJ5v247FtuctS1jOm2fLVe3PrrMoLSKrRhSOxrDwp3XYb48jjCjc1DkI/VJexfDMQozPjJvwEWNTgmJRjJZPpLSaegq7D5aLJ0NEVGvJsra8axSFT80pxKBWX2HydYvhK3Jv/PgRln8hhGN+WZMc7q/sJ8XisEwFs/s8pFseVnP8KAJz7nJOcz4/9NBD6Nu3L4YNG5Yo5Zaz2Llgj7Vl8zGOG49/L/YceVM7R7lsz7udD1xnas32XzUl3u2E694xct+8+ZZf285lm/KXDhZbx97o4jLz7Liri0Wr7FjYc2vPJecaja/3DRo0MKIwfxnSokUL4y3MMvY8K4qiKIpS+8hHY0VRFEXZ+XjmrZu3EG1pl97d28T/ffCtwdWKvb9mrHPr0wNNG1Xb5YPu/krYL+uEggtjE0+aNAlTpkzBnDlzkrGAGe6B3r3e+MJegfePmFcUZnvsmynDV7A/28fXX3+Nbt26GRGBMY/vvPNOI1hbgchrhClFIwpYVsTiPnoFLeJd57JXyGIb3u22feaxbXp3UiQvLS0121m3an2b2mUrjlSF+VXHRqor68XbX1W4v78lrnjHRrjsrcf2OS5bzpZlWnW8dhvhtnBI9kmGF4lIWci5iEewekURTjl6JOo7bdDGGYgBGR9iRGYJxqdTuI1jvMMHv8WMIDw21Svw1r6NzCzD4Pyf0NW5HYfudj7uvXsqigI++OVfZYTnPCQ7LeczJPsn+2k9iM1R4B8eHkl5DPmAR3reM643b3acfPLJxhPecRxkZmbipJNOMsesumPKPK8w6j0Hdrtdt6n3vHOZxvyqArKF2zlGe81YWIfjt+155wa3WWGWyzS7zDpMvWXtGLitqjhM82LLcr+Zsl8a4boKwjsPnE88d3ZeMeXrfcuWLY0gzPnftGlTczOQ2+y59c5DRVEURVFqBxWFFUVRlJ2W7xZ+husfGvw/Ii7t8nv7YuKUY3HPKycbu+/1U5ICMJdtPsuwbHVtsG328VfCijaWoqIinHnmmcjOzkbdunXxxhtvYMWKFUacpXjL1Bv2oarI+0fMhqGgNzJTtk3Bl/kUjSkUM+YwPcuskEZx+Mgjj8Qnn3xixAMrIFkRySsaWUHNwvJW3LKCk1eUYl7VdZahFyPDalDQeOKJJ3DuuefiqKOOMt7LVUUtYoUQbmMbxKaEy951ux8Wjo95XrN5VWEe+/H2VRXmc7vdd0vVcfwW7MuWt2Nimzzm3nYpiIYDYUnlOKMSkWglooEY3nxqBo7a/Tz0cK7Fqdk/YVQ6H/7mhnM4h567TgQFTgDj0yNwvXarF223tY3MWo3js15AE2cg8pz2OOSQnvhuyVwE4UMwRo9WOQ88FRSEZbdD0TgCkk8BPBoOoqK0FEWFhSYsyi233GKE31atWpn5a42iGK+z0047zQilPIb22DLlcWXqPa72+LMstxNblufXe35svoXrdp6wPstWhWWs2X6Z2jzClHXtfPKOyS7bOtxOs9uJHadt35azyyznFcJtecI69jpXdmx4juw5tvDc8uYIhWA+VJTXAT2FX3rpJXOjzc6RqvUURVEURdn2qCisKIqi7PR8M/9tXD7p2GqF3T9ibItt/hWxAo4VbdavX4/OnTsb0bVOnTpG/KQobOMAU6ylUMv4wn+GKGzbtSKzXafRC9d6JTO96KKLjHhAzzIKCRQUKKZZ0YhwmR6PhHlc90LBwYoO3noWW95uoxBMT2CO68knn8TYsWPRo0cP1KtXzwh6PEb//e9/k/UoZNhjWh3cZsUtjoNCoF1nHW/d32rDbuc4vQIK1737xbK/JbDYcVu4bueEbY/LNG+56khu5/Ck26CP8XJ5TigK+4Ay4KPJIQxq/gbOqLMOY9LdMA4UhM9LYYzfKAqcCkzIcENJVCfY1oaNzF6K43MeRgvnMDRwGqNbt874+rvPEIJfdiuKeFTOAZ84F5Udlf+hWAjloUJsKluNjz56FzffOBHHH38c2rdvj7S0NDNfmFoxmPOX11lGRgYGDBjwP+fQu87jbs8H5wxTYueBPd82nzDP1iFsj8Z12zaX7XamLE+r2jf7sUIsl+01xGXv/GC+Pf92bHYMtOrGbssQ9uvdF+bbtmnc7q2n7PhUPXc0vqa3bt3aXAu8Bvi6/uyzzybnAcuznKIoiqIotYuKwopSQy688ELzIVdNTe2vb38VvF/EGbJhzz33NPtHseqxxx7D6tWrjRhsxVsb8sEr4P5Rs+15l5lyHOyD3sJz5841+WvXrjU/MT7llFOMKEvP4auvvto8qMuKSfQ0o3jFde6P9+fyVpiweMVh5lujEEyPaf7c/4EHHkBBQQG6du1qHohEMY/HhkIG1+nt9uKLLyaFKtb3ihnMs+tV++e6xbtMbFmeGyuMebHtVq1HmO8dQ3XYdqtrw7teXfvMs/tJs6KdhXlmPyUrHpQ/DLRrHsZW5qaSfPIIcFzd93BmnSIUpLsPe6MofL7Y2WJjnUqcvb1F4ZyFOD7nLjRzeqCBUw8H7NsVc3+ayejIss9yfHkqZd/CvkqZLxvx3kfTcNGVE3Bo7x5o1aoJMtLTkJJ4rbBiMM0KwnadNzk4p73HkMePc5dzkTc5eGOC85znjOW4zZ5jlqXxPLAst9m6tLKyMrPdCrKc90zteWMZbrPluUzjdcQyzGN9C+vQWMbG+2Z/7Ns7V1nGzi/bHrcXFxcnx0jjeJjacrauffge27P7TeM627L7r+z4eM8VzyFf7/mrD76O5uXloVmzZiamMGFZPbeKoiiKsn1QUVhRagh/zmy/6Kmpqf11jd5/f0X4Zb1Lly5GtKLoSS/YZcuWmXwKsxSHrTGvpladKEyxmWbjDFMgZmgJu/zFF18YIfbxxx/HvHnzzPgoLG3atAl33XWXidlKQZcCEwUIYoWwqjCPghNFJopQVng+66yz0KlTJ9SvXz8pBDNlWA2vtyd/+j916tSkEEZsP7btqoIaoehBsY3rHBvHaoUvyy8ts65d57jtMvvxiinecoTr3vFwW9WxcTvHw/3hNi5XN34vth7rePu3nsImxAICsr1I0nLECoFPJgNDWn+K03NWoiAzhAlOxIjB54lRHB7rhDA+bfuGjxiVtQzHZ0xGW+co1Hda4cB9DsS3c2cjLDvk94dQXlSKH2X91huuRc9DD0DTVg2Q08BBRh16saci1UlNegh75xCvLd5w4TpFMYrCJ554YnKOcl58++23+M9//oObb74Z9957r0n5ULpp06aZGxYWHm8rkHL+v/vuu7jxxhtx7bXXmmvhuuuuM9cKHxxpxVRbnv1RyP3yyy/NNcM+WIehLu6//35z/Vmxltjzy3PNkC7PPfecie3NOtdff715OCTDzfBXBCzDfpgS1qM4/fHHH5tfH3CMrEOjhyj3l9cA55r3WuIyxXCK4nbspLp5qOx4eF87CM8bja/j/fr1M6+nubm55mGLfPAi5wnnv6IoiqIo2wcVhRWlhlhRmF/IFEVRdjYYM5c/ZecXdXpwvfrqq1vEEmZq15lWFXl/r1mxlyIzRWG2SeO67dOK0RSAmXI7H35HMZhexBSoGGpi6NChRnSjmN2zZ0+89dZbRiij0EBxyQpUFMO4TNuwYYMRgt9++22MGDHC/IyZQp0V8OyyXfcuU9Bo3LixiYVpRSrbLtcpuFHEothFo9jBPI6lOlGLedzGMhTCWIdp1Tpsn+uEeVy3fdh+mFKQ4TYLjwOxdSjSUfRjedtPVRHHwrosy/lB8dz2VbWOdzkcAipL5HhXQsqWo6x8DfyVa/H52zMxrOcd6O7chJOzZmF0djEmpPsxPiEM0wpo1Qi1tWmjMzdhcPYn6OxcgC65A3DFeXdgwcJ1+HHBMtx5xyT069UbDfMykZnmID3DQWYdmSvpMj9SZX44zK+DjHQ31AmNQrDXQ9ibz2uO8Jj++9//Rvfu3c02O5/tXGzTpo35RZIV63n8eW4osh1xxBFmTlJkZpu2Ltf32GMP89BIwvI83zyfDz74IJo0aWLapuc9++Qyr33axIkTTR+2HucNxbv+/fsn94X9sD8aXzco9jFmLOcZx8iUojS9+hluhe3TWJbj5TJvstErn32wDlNeOx9++CGGDBli+qNI7t1mrwdl54DnjvOWMOXNPb5mDxo0CG+++aY5rxaeW/sapyiKoihK7aGisKLUEBWFFUXZmeEXdwqkFJjGjx+Pzz77zIiv9P6zQi5FWXoRUsT1Crx/xCj42gfNUdilCEzh1xr7YF8sQ5GY5SkIU0xmWdbj+GbOnGni/VJ0okhlvTGvvPJK4zVMKDJQjKAYyjYpeJ9zzjnGM5qv2zSKVHaZgppd/iWjpzDFKuvBaKHQ+vnnnxuhy3pf3nrrrXj44YfNg8cKCwu3EM2scDZ9+nQj1N12222YNGmSqTdlyhTMmDHDeEt6YR16jdJ7lP2wPOvddNNNRlj85ptvjMhoyxIKL/zJP+vQA/Xuu+8246KXJ73C6bFpvUOtEM0x8hjzeN1333244447kh6i3HeKjVZ8ZlnCftas2ojnn30Xd97+CG6/41bcNelGXHfdZeh7yDHIc7qgvTMKA7I+wMjcdRifWek+XE4+iU5IBcZIOlqsOrG2tmx0RgVG5C/HKU3fws2jP8CT932MAcePQHpWvpx7mWNy/jPFmDopYqliabRUpKfmIcXJkXKbw0Z4zXqbUxDlnDv++OPNseZNjJEjRybLUNC14i7LMp8hSxjSxZ4fzjXemKCoyzIsT2Nd219OTo6JyW3PK+Ec3GuvvbYoR7OCMut069bNlLPn1YrWLMcyTO24bJqfn2/mlXdO8MYLhWlbz/bJfWQ9rlMY57XKucNxUujef//9k0Iyr1O+JnB+KjsP9nxauM45a/G+ZrAc5413niqKoiiKUnuoKKwoNURFYUVRdmb4ZZxGb1AKsBRiaRRl7TqFGYqxNt2WZoVhpuzfhpSweTSKRxSq+dP1E044AY0aNTLCFgUnPjSPwjb3Z/bs2SbUw3nnnYe9997bCE0sx9dsK1bZlNuYWvHOGtdtORqFM4rnFJt53ChwUMx44YUXTOgJlrHlKVRzmd7FjzzySFLcYnkuM8/bvhWoORbG3OTP9a2Awjrsk+Ks9SSlsGb3h3W47zwmHJcVrSks8/2JZazozbrsl0bhjSEIrGjDuvSm5jFjOe6DPTbsj3UOPPBA4/Xn7YcexWedOVraz0dGphyHhGCanin9OJnIdRqiidMLR2e+jDNylqMgqxxjHD/GOhHjITxSPpGOEtue3sKj00IYllGEM1vPw5P/Wo1Hbnkfw4aei7322Rf5+dmok52CbNkvIwo7ct7S5XzRezZFzrOTi4xUisdbzhcaj5n1suUyj+NJJ51kjhtvWIwePdqcRx5nlmMZe465zrAmFOkJhTQKta+88ooRi+25qVqXgjHFfyu08VzxhkKvXr2S55TjYGpFYa4fcMABRqimUMe5x/PL2K+cm2zbjpPLvEHClON49NFHkyIf5ym9+Q866CCzvWpfNHoNH3fccUaAJqzLa53l6bHMY8UYtPQoVXYuvK8LXLY3C7wiMLHLnC+KoiiKomwfVBRWlBqiorCiKDsz/EJOo0hpxWArzjL1CrR/hqfwbxm9gekVbD2TvV7LzONYrIcxx0qvVcYr7dOnD9q2bYvBgwebmKmMY0qvSIq4FKEoNlmRjmZFMCvgWQHObrcCm12nWYGLYhfFNiu48ef29Hq09Zhaoc7WO+yww4wIQiMUrQ855BBTxivWsj4FM6aMO2uhQMcHdlHUYzmvhzP3jyn3hw/J84ou9BLefffdk/tpy9k22Pfll1+eLM+6PK58sJ/dF47f9sF6HB+9ju2+8DjQS7lJk+ZIScuFkyLHjWEVMtlfBtKdOmiY1hCNnANxdNbLOD17FUZnVmJ0SgBjU4MoSItiZAowSmy7isLpIYzKL8MZrWfitbuK5MQydAcw/+fv8MSUB3H2uLNwwN57omWTZsjOaoCU1Dw4aXJcjCicJSbHNSEK87xWN4donJPHHnusOXa89ijwHn300UbUb926tRGBGTaC85kiLW8E2GNNKK7xvF5xxRXGG5flWKddu3YmLEPHjh0xfPhwc50Qzh3WZwgJCry9e/c27bMsjfVZl3OU1413/rAv3oShhz3Hx37YZ4cOHYzRs/iCCy4wrw9e+HpCr3KOn32xLMfVqlUr09cxxxxjbnoQjo998nq3x4jHkGEu6Elvx6/sPHDe0Cw8f95fV3Cb90YUz799PVUURVEUpfZQUVhRaoiKwoqi7OxQmKLHnhV9mVoRmB65Vqy127elWW9g9kWjEMw4wuyf4hSFa4aT4DaGPrjnnntw2mmnmbimTz75pNlGwYzewhQuTznlFLRs2dL8xJ1iphVqq9ov5dO8giqFPgrANu4qoQDGn+pT7ON2a/R4pJjKdNSoUcbDk2UpclEQ4cPtWIfCLMsxtXXphXn++edvIZSwzqmnnmrEXJa3xp/bU+ildyhDSVBkobEf/jyfAiTbs+2zDsvbOgwLQVHGim+sQ+Gb/bA8y9l943GkqMdjzXnDOhR4OE967NcDaVlpSMmW45TvIKtuJlLS6iPdaYgcpw4aOz1xTNbbOD2zEKPSwhjthFGQ5kNBhg8j04IYnR5DQUq8WsG2Nmx0RjmG1VmIE5u+gCvPfBrLfypCBCEEUCJHvxLhQCnmfzsLrz7/Ov5x3tXYe58jULdRE2TnyfHPoCi8pYewNe/84TKPIcNHWNGM55jz/NNPPzVhQ+iFTfv6669NrF6KuVY4Y8o5xJQ3CfggN8b8ZTgVu8y5z3AThOUoxjHl/GMbvJFi+2IfNIY+4c0Y2wexc4LjpPfwe++9Z+pxTJ988okxLtu+LKzDujR66/MmDftgymuW+8b9Zbs0ziMeA17/VkznnOYvABjChOOh2eOl7NjY+WOxryucD/xFAc0b5obmFYwVRVEURak9VBRWlBqiorCiKDsz/MLO8AH0EqSXKQUbCnw2ZIMVaikSM/UKuNvC2C8FYK8oTbNiMbfRA5KiJL0r6eVIoY2hGxgbmVhRginDJ7AO46JSzKVATMHJCqMUoOjNaT062ZY1rjPfiqlcp8DLGMBVH8a1Zs0aI+Lyqfo0Hk++PzBWMwVhjt0ranGZD9Ljg5ds2cMPP9yUp8B98cUXbyHsWeGE7dAL9OCDDzb7Q4/L/fbbz9S97LLLjCDOshQOCc8vzynFcYZ9OFLap+DLfuh1fN111yVFR1uedRmG4uSTTzbjYjm2z2U+0I9xjG2MZCscMn3jzddx/MBj0Lf/YTi0bw8ccOj+OOzQ47FHh8PQ0OmANs5JGJD9Bc7I8GG0iSMcw7j0AArSKzEqrRJj0sMoSI1VK9jWho3M3IgTMz7AHs4/0TJtf1x0/iXYULYSYZQiRrdhWUJUzl0AKCsGlizdhJdefx1nnz8Be+21BxrUy0dOQki384fL3vlDo9jO8BE8n1YwoyjKOeE9d/acELvM1M4jLlNQtXWY8jzYGwlMuZ1wG832SWxZ5ts877LFjtGLdwy2vHcfvP3afmwdprZN73XE65TXpT1ODB/xuhxfYvdJ2bGx88HOCa7z3HF+vvbaa+Y1iK9vDz300BbCsJ0biqIoiqLULioKK0oNUVFYUZSdGcaPpbhI0YoiKX/KThGWgiwFSHoPWlGWgm11Qu6faRSDmVpx2ArE9CykGMzQBozfS3HXCm/0vGRcUz7QjQIDoRBBsyIFl+lpu2LFCvOANgqdXoGYHorWW5gp86r+9J/9UXzmMfJC0Yv9UCilCM0HyFEU4zK9Odmvd1xecYxiCctQmKVxnfXoTUdYz+tFx3XGhrUed1ymuMI+WN+OxQvHQvGNIStYntttH6zL9q2o6BVz2J7ti7FvbTm73ZbdnIalXCFKytahpHI1iss2wlcGfPvhKpxz4l04IPManJz9E0aku97A4+RT6ISUKMal+jEqpRxj0gKSH91CqK1NG5m1Cv3Tn0ZrZxDynZY48IB9MPvnGZAzhAgCstNy3hhZISKLssuBEBCMh2TVj1WrFuP96dMwetRIdO/e3YTfoBjMa8reZKBxTnFuMRY2zz+Nx6/qOeO6Pdbe48zzS2xdwrI8j9W1YVPOj6rY+mzXistWqCN2O1PWZ2r7JyzPut5xWDGY2HETlrHjsXjXWZavNfb48PXIKworOwd2Lthzz5Tnma/bDJdjb8TxgYL0Tud88r6+KYqiKIpSu6gorCg1REVhRVF2ZigKM0YoBSuKMFOmTDFf4K0oTG9Wu24F221p7IfGPhlLmKkVqa1dddVVRjii8EbPXXqv2p+ZE6/YxGW7TvHBilYULyhC3XzzzSa8AuOlsj2KFl4xmAIx1ylksM/mzZsbr+OqWDGW5hXDbH9WdLVwmSKtrVNVlLXiik2J3cZyXvGFy97y3E9vWZtakZzmFXdtGW63dZnafItd53avOJgsy80yjFiE+8z2pQwdPEuBDyaXYkiHNzAkZzXGpAPjKQiLnSM23olijOMD4wuPTdl+nsIjspfj6IzJaOQciTynKfbqvge+nP85grIvEUTh9wVk52WvfFEEZPd4xOWISepHLCoWCSIgG3hN0Sty5MiRJp4zY+PyxgXnkBU9Bw4caI6ZPW/23HiPq4X59tjbZdazeYTLVtjl+WHKNmkWW495dn4Qm0dYxrZBvOUstoyFy6xvr4Fw2J3zXLbz3y7bcTO1c5DLNHrG77rrrkZM53XH+MoMhWGPSXVjUXYs7PnlfGDKc8Y83tRjCBt7c43XBB8CarFzQlEURVGU2kVFYUWpISoKK4qyM/Poo4+aL+tW9Hz88cdN7F4KtBRjrXcuBeLaEIXpIUyxlin7ZExSxjFlzFSKxHzwHGOhMvwBH5h1ww03mDwr+FJYsD9Jp9DAfJqFIgXzaRbm0WvtmmuuMR6c1tOzqkBMMYMeyQxdYQUwC5fpZWkFLCuKWLGNWNHDOwbr4WnLW2z7duy2vG3PenRWFcpYxuZx2Xope4+BHSPH4/UMteOyKevY/ljWjpFmj7WFeTE2y25YJSZ/olKmUtovAj5/DDil6UcYlrUJBanA2QlB+PxEOtaJYkIaPYi3X0zhETnLcHzeFDR2eqGO0xJ77b0PPpv9FcrjIeMgLLso+yb7LP+5HI6F4IsWyyq9cOWYc7ts4HHiMebxYXxm3kRgyA/+dJ4xnCkQc56xXNVjTrwp2+Gx5rngOpe9Zblsz4PdbrH1mdrlqufM2xapWs6Wsf1w3Y7Hzg3m2fJM7Ri57L0WbVt23dYnLEtvdL4e8SZPly5dzM0fetHbOsrOgZ0vdl5wmb/4oMjP11C+rjZr1gxPP/20KUPs/FEURVEUpXZRUVhRaoiKwoqi7MxYwZPiJx/E9tRTTxmRlV/iKQYzpXeuFWyrirg1NQq/3pR9UJSmGE3RYMSIESZuLsVfCmxWRGVIAz5Uzv4svqqoQCHC+5N5Cl0Wr8hEYcorTlHEokB86623mgfYdevWLRkKgKI5j9Gbb75p+vMKqt42LHY7t9k+7TgpnFlBxC5bz0nC8t4xs54VWYjd5t1vbvfum12uKgZ6yxCu27FwrFbUI1XLesdkYRlTTpqIc7MsxgLSX1gsGkdgHfDibStxfOPnMSx7lRGF6SlshWEuj+V6mptWJ9huncUxLiWGcU7MtDneiYtFMD4lLPkhMTc0RYHXUiUvNSL5MYzMXItjUl5Ce2cU6jvd0PfwE7B45Wqjc5fJ/pgjyBAS0aAkzA3LLsu5Myo4d37L42OPqz23vK4mT56Ms88+GzfeeKM51tzmFey5zuNPvG3Z82PngS1j8+38q26d7dh1i3c+EFuOcNy2n6p487xtcJn1bD9ctu2xDvfRlrftE26j2XrcLz5Y8ptvvjF5dj8J620VHCLjexgpn8a23XHzr92yOdeFu7Z5XbayjUQGR2sW+ccsyPEx/2yetBiX82m2/G95uQzc+UPYEfdfUo7F3Sv25S65VeRal5TjNLkmkzkypxI1DG7hzf2ZpYj8pbl1mSaPRaK8bd+uuyalY3K8ZVyJ0ltuFnP/2t42m12y8Jza88yUN/f4Kwt6gFMYbtGiBZ5//vnkzQ7vXFIURVEUpfaQj8yKotQEFYUVRdmZ4esXvYTpvdWpUye88847RgS2XsH0FuZPfynUUiC2Yu4vWVXhmGKvFXy962yT67ZdpszjMkXZcePGoWPHjsnwDfxZOb0GtzVWxKBQwf44Fj5Y7vTTTzeebvQUth5u1ogKG640FE4IY0bjCgL+ijCe/fer6LnHIOzmjMbJWTMxKi1g4gnTCtKBkU4MoyjiUtiV9H/F3q0zCsITnBDOdiIJwTkm5sc5KWWYkFpqYhez/TFio6X86NQ4xqRJXppP6oYxOr0Cp6UtxYHOYzis6fl48ZGP4auIISQ7RIEsZLQ4ipQ+2Tm/WCSpj3ET5TqvMFYdnCe8WcCbD17Bk9i59Hej6nVkhUKL3e4Vz38JVosZb26en3LJKZd1SaOuIMrzxFsvpWL0YbbCMPXWiGxkVdNzXLZGfTKHKQ67Z51lzfmOybUeD8lizNQxeeEySSsRDEdMWXPLQMrJBWE6LQ8k6rNxitthKSEpb1uZW0ecTwxBwr5kc1RKsx2O02xn5TD79CEQrXDHyH6lbCjEICZmUfJkKVYOX7jI5HFfmcYg4+PxYDtSkJKx2SdObLNPzJeeQkWyHGZpOXKyneMJczSJ9s0SjaK4OwCmdo3j4rmioG/PIV8X+esPhoygIMz3HL6Ovvzyy+a11nvzQ1EURVGU2kU+FiuKUhNUFFYUZWeGX9IpujIcA72EZ82aZTwavTF8KdRSHP4zwkfYsBBslyIwYxbTuM2Kx4y3mp2dbbxzOT7GOi4oKDAPPasNvIIUxQ2KeHx4HI/NM888Y44F87xixlZ7Mf6FoSxEKSvEOBI8HJIsWbwafY48GplOJho5B+OEzHcxKqMY49NixlN3VHocI1LjGC2fSMdR3JW0OsF3a4yewONTgpjghJNeyOc6IUl9mJBSaYTfAsljX6Ok/KhUYEx6AAUUqVNiGJMaxpmZxRjVZi6evnwRsF72QfYjGEkIaNxJs1QpO+sDYkZdM4KaK5VRGvttOFc4r9Q78n+x1549PtZbeGuFQ1M9GkO4ZBWKVs/HxvULUFS4AkUb1mHThiKs3VCB5ZsqGdEEFSyakDKjcgIpyNKjN0RhN0iR1y8DiSIu55/CqhkBVVJpn7c+6Cce53rAB9/aRajctAoVgRBKglGUR8PufAnKdumC9TlzzARhzGVj4aQ4HadwHZfXFBkALx16n7M/bi/lAr3uI0HZ5hOTutJOPCQ9hAPSfgxlklURiiEWohjuky7LUR4KoFQao/Bc7udklp4SO8K5SjnX7L6Uics+ISIly1ejcPUKLJKON8omaZK7a8YSCHNk3CuuuWKwTTnzuRSObPZKt+IwzyNf6xs1amRez62nMEVh72utd1lRFEVRlNpBPhYrilITVBRWFGVnplWrVujQoQPOPPNME57BCrZWwLXmza+J0WPMehwzPAU9hClCc539MK9Hjx5J72V6515++eUoLCysFRGNfVDwpZhhRQ0Lt1nzisBW5Pu744rCQYTjIVdsCgMLF6xCh3adkCXvk42drjgu/TmMzlyDszN9KHDCGJkQZxn6YbyJJ1yTmMIMBUGBN2LCR/BBdta4Pk7MeAmLjRRjv6MpTqcy5IRsS41iRJ0NOKvNZ3j7znVJV1LqfpTB3DPMJQpvYhSFOQ0onElCgfG3fYX/l9qY1zsivL6qCoFcpwBM8x6XrT1GFHbLCjfg1ismoFvHumjZMg9t2zZDh1Yt0bJpS3TaZU+M++cV+HD+IhTKSQtTCI2HjacwHbejcrLZE7VTzmiEKaT6jLeuyYvKuIJ89GBC5A2W4+evP8LwE/ph3732wJRnXkAF25JWgnTDlWW27RPzcwIxRAO9hMMRRIJh441rPIE5r2QcrsetFI6whbgRdDnjGLKEnrxhXl+cbVSv+UDHUBHWrVqCp1+ahh+WrJPjJFm+csQC/FUFH4HoisJGajYhLsyKVOdg3D45JqmGsK8U7099FAfu3Q2HnVSAj75fZ+a88V5mHVl2rwKO6H9FYa6xeQvPJQV9pnxvOeWUU0woHsaw58M9v/32W+Mxz9dPltHXUEVRFEWpfeQjsKIoNUFFYUVRdmbKy8vNF3Om9Ni1cYQp0DKldzAFYa7TQ9Yr8FZnLGs9fqszCsv2wXVz5szB66+/jg8++MDk09auXYtHHnnEPERu0KBBpgwFA2vbAwpSVrT4NXFqe41vR4GyEEUrejlSIWL4iJUrNqD7nj1QNz0TLZweODb1GYzJWolzsygKh4w4yxAS4yjMpjC27x8XhSnujkkLYYyk9DgeJ+bGFnaXk6EjxEamAqPSKAqHTVxhbh+TFsCwvAU4q9PbeOPORTC/oZf9oOwVlJSRAFxRLCA753poGqUsUSZq/v6+OcA5Y0Wxvxv2urLwOKxZswbTpk3De++9Z15vrKhIfksYZikKmJXF63HRyGORJ5/N0rMcZGSno0m9esjPykVOVj04mfWw22HH4INZ86RSBRAqMfq+HUkwGsdGX8S9CWA8hgPmNJt1GQPDKVBopVCKYBGWzPwA/Q7aC00b1sf9TzxjPHujciWYGSFDZj0KyiETj9ovE8kv1wbPuSsIU7jlclwGQf/dcEhaD/oQl3J+aYdXlRGnowEwgnVlOIRQBcddgeXzPsJpg47GHvsdjve/+sF49hrBOCxtRMLwyWKhn6+dPL7SnxwgI+5SFA5LGybEBsVmme6lhXj93/ciPyMVLfbqhXdnrzRj5z5Q0ObNEXdvWNrKwJzzm0XhmOdceb27ucw40RMmTMCFF16It99+O7HFpWp5RVEURVFqB/kIrChKTVBRWFGUnRkKLnzqP2Pnvv/++0mvYAq3FHG5TLHWxgD+LasqCrM97za2y4fIvfvuu5g4cSK6d++Oww47zAhBFRQ6ElhPXI6PD4yrLeGM4oT1EvauW7zCFPOrCh9/ZyiIMvqoEYXpJSmncNWKdTj84H7IcRqgiXMYjk99CQVZa3FuRhAFTsTEEi5IA8anMvQDHwgXq1bw3RobkxrHyPQoRlLsZbtiVhxmynAVY8RGUxBOD4v5MSa93MQU5kPpRmcU4tS8z9C/8X24cNA9mPnufKOE8YwbcczsJddCsrP0hpZlrlJwM/9MQAFTamvgHKuNOb2jwmvJe50xPMwll1xiHujI8DH89cL69evNte8t+0twM2P6+orX4JKRfdAw3UGrDq3Qp/+x6N+nH07o1x+HHng4nIz6cJruimvuug8x32qptB4BfwCV/ggiURlHuQ8lcnor5aSHA+VycisR95ehsrwMhZUhlMjUpsgbDsnfslVY+u0H6HdAVzSuXw/3Pv48ymROlFdsQCBQhnIpYoRfGZt5fFu0VMwv/cVRLlYaDKHI53cdf6W/WFzmUVD6jFRKxWIZU5GULUa4aB1CFaUok/EZD2XGuyhZg/eemYTmdVPRsfsheO+bRSiVziI+2RaUBV+lrAdRGpKeZdUvY6EETGHZeBnLfiG6Ab7ABpTJa1dZWQne+M99aNGwHjoeeBw++G6tEZl51PnK9r+iMDO2FIWjFLY954qp97XcpvYGG42vm96HgiqKoiiKUnvIR2RFUWqCisKKouzMUIidPHky2rVrh6OOOgoffvihEXApBNtYwnbZK/D+lrGsNa5bcXnu3LnmwW0HHnhg8iFyjB188cUXJ0a0JRQMKCLQtuZBU9sCChfV4RU8iBU9/q64EhGPlViUomkUFaXluOnq+7Bni4Ho4BTgpIxPMS6jFOcwZIR8Ch3DNJ3evFFj42rgKcy2RkpbI9JgYgbTK5h9GEsJY2xqyHgSj04PivkwOqMiIQr7jSg8KmstBua9jNbOEBPq4swTRmH18uVG/OJZdmcB9zIiCU2WmSkJxfDfIwrbOe3l7zB/vPvoFQ95HTGUDEML8HWBn6sYg5Y3j+yxqvpgvupga4GSlbiqoBeaZjk4YchgVMjJi1TKa0cwiu+//Q5duh0EJ78DBo+egHj5IiyZ/S4eeehB/PvJqfj+pwV48PH/4L4pz+PTr+fIwCpQuHohPnjzddx7zz2Y9OhkvPHR59hYLmPnuQ9twJJv3kHffXczovBtDz+Lj7/9Hg89cAsefvhuTP98DjYGKAyzsE9e0DZi3cqFePLZ13HzXY/g/oJiLDEAAP/0SURBVEcfxQefzkAZHXtl8GE+EC/mQ2D9Erz9whRMuut63D/pFjz76EOY9fU3WM94xdJUzFeBT15+Ehed3huNcxzUa9cVE666Ay+8Nh3xQBSlS5Zj2vPP4+77J0kfj+Hj975BufRRIqOoYMgIit1l6zF71oeY9NAdeHDKv/HqKy/hyXtuQPMG9dCye1989P16IwHz5W/L8BE0znQebVcO5t7RmGPPKVOKv9bbm6n3tdR7/pnaZUVRFEVRag8VhRWlhqgorCjKzgw98SjQ8uE/+fn5ePrpp414SyGXAi5F4arev79lXkGYZgVhplOnTkX79u2NJyBfO5nus88+eO2118x4vF65ViTw+/215knG/tkvBYuqAgaFK68IbGGd6vL/bvBsRawyFAlKSmE4hFULwph0yQ84PPcZDM1cjHGpcfMgOCPWpsXFwhjnxEzs33FGwP1jZkThtIQoLMv0Ch6bEpH+/BiXRvG3DAXpFIIrXVE4PWBE4rEpbkzhEdkr0a/OQ2jsHIn6Tlsc2r0nfpw/z8Rf5X7Rm9NFFqgIcj0xRRhNmT/zd4WyraOqCPZ3EMV+SRTkzR++PvA1gUZhuEmTJpg+fboRE7f2+mJrgZJluH78kWiS4aDvCYOwpjSCisIyVKzbiO++moXu+xwOp1EXDJ9wASpWfYlHbj4X2RlpyM5rgP17Hob8Zm3QqstB+M+zL2Hjinm4aMJwNGvSCvn1mqBuwzy07tQJ511xK1auKQKC67D06zfRr8cuqJebi337nIpdehyCJvUd5OelYLcDeuPBZ14DAz8EA+uxYN77KBg5BHWbdUZ2w/Zo3KwZuvc4ADfd+QRK5CWOe1myYQVuu+I8dO/QEK2b10HjuplonJWF/fc9CA+9+IaJalK+aSP+ecZJ2DVH+kmRY5bdDBktu+D4E0/GnC+/wtghw9GoTh4at2iAuvXrYbd2e+LW2x/G8lAEfh6lTasxfeq/cfCRh8Cpk4X6zVugc4e2GHTYPqifnYW2+x6Dd2atQEBejkNhzu6EKMyYyP8jCrtewrRo4nXSegLb13OeZ3uu7bnkOuO3c53Lf/dfWiiKoijK9kA+AiuKUhNUFFYUZWeG3nlWpOXD3aZMmWIeCrRkyRITY5gphV2Kuowv7BV/KeJwm132CsIsa435rE+B+aGHHjLegHl5eWjYsCHOOOMM451cnWjgFYhrG47l1/rnGKsKXN71vyvmFNIYF5VxdxlDtQL4/FlgYPMZGJ69AeNTN8f5HZ9BUTiIsU605qKwmI0VPIZic2oE41IC0p9PrBLjJC1IoxAcxui0qJgbSoL1GGpieO4i9My9FvWcvdDAaYF9duuG7+bMlJ1J+j+bXTPY/UxkWFHYU6JavHOEc6zqHPqrU3X/LRR++brBXw7wBhU/V9FT+JVXXjHbf+t6tDCmbfn6n3HjOUegUbqDOs3b4oA+J2HgMQMx4Mg+2L9LN6Sm1UVKk26YeOd9QOG3eO6By5CXnQknIw977n8IHnnqRbz6wUwsXLIct119DupnOdiz+yF49sU38cQT92KX3Tshv1U3PPqfFwH/OiybOQ399m6PTBlzruRfeeu9ePOlyTj5xL5w8lrgqCFjsGT1EpSXLsXFZ5+CnEwH+/cahKdf+wT33HcfGjdtifotumHqqx/DFwzgw3dfw/67t8EBe7TFM/99EC9OnYJTj+2P7Jz6OHTwGPy40YdghR9rvvsSd1xwCurJfjbb6whcfd+TeP+9t3HxOWORm5GLvr374Smp+8ADk7Brm13QrEUnPPrGdFTEY9gw53OceXw/GV9DHHjcKfjv01Px6KQ7sEeTHOSmpqBtj2Pw/ry1Rv5lnGbO7KQobB5SZ0VhN+VZ5fZgwpvb+/rIlOeXAjAfGEpjDHu73TsPFEVRFEWpXeQjsKIoNUFFYUVRdmb4YKfdd9/dCDGM5fn444+bh71R5GXsXxsDmOIw4wpbEZhi7/Lly41wTMGXy9zOelxnuAnGKeZD5JhyG2OGbty4EZMmTcI555yDF1980YgDFAUoGig7N5R2wq5etIUoHC0DPvw3MKDp50YUnpCGpAA8Lj2WFIWTD4TzCL2/xwpS4jjTCWJcFnB2Fh82x7AQfpzthExoCrbPchSBR8jy6HRgpCxTHB7pxHF63bnYxTkDdZ2OyHfqo0/Pw7Dw5/myM4yT7IpjBqZeM0kilrLNUKrFKwB6BWJ6ifJ1haIwP1Px9ahp06Z49dVXzXYKwlsjHsalzWDRYlwz9mA5jw6cjLpwMpsjzclAHVmvl5aO+vVa4MhBZ2Pxqg1Aybd44taz0bRBfdRt3BaTnnjGPESOMYAXLfgZh3ZvhbZN6+CK6yZh+fpyLF08C/+86Bw4eW3Rd+AwBMo34Mcv38KJB++KxrmZGPd/t2ODX8ZRuRJPPHonnAbtsPuhR+PrOV9i6cIvsUfbTDRvnIs7Jr+IheuCmDt3Hk4fNgIZ9Tpj0LCz4QtVorhwFVb+9D3WLlkAf+VGbFi7GPfeOhHZeQ3RpudJ+PinItdht2IDPnn2RjTKddD2oAF4f95KrFg4C3vv1hL5jZrj9vsewpr1y7Dgx1koOGMo8vIb4tiR56HIF8QnT92PLi0aI6vTIXjqw+8RY9SKwrW454rz0DA3By326oPPfi5yZ7Qci4D091uisBGG5fjzPNEY7ocpzx1/6cHX+/322w8HH3ww7rzzTvOaz+3eEEGKoiiKotQu8pFYUZSasC1F4UcffdS0q6amdi2eeuopIyAqfy4bNmxAt27djJdwTk6OOc4Ugin+Usild+/8+fNNStGGxu1W+GU5isZctttnzZqFe++9F4ceeqjxCO7Vq5fxSK6srDRf/OlFRiHAKwoRFQV2bnj2gqEI4lRPGbc0FgJjCxeuAiZdNhvHNHseQ7MWYHxa1ISPMAJwOlCQGsZYJ1JjT+GxqXGMz2QaxhjHJ236pJ8ozpU2z5XtE8T4ALohkj++LnCqU4wzc8swsu5GjKq/AqM7f4TTDr4WLfI6Y7+u++HRBx5ANOxDTPaBUzUc9sxPLlozCR+4RdnMU0b5H7zXuPf6p3DIG0o2njBF4UaNGuKdd975fYKhzD3fxoW4dsKhaJTtwKnbAs12OwSdOu2G7rt2Rs99uuOG62/D1z8XG+9XlM/BlNvOQU5aOtp17oGP5i42D2MLhOL45vOPsFfHeshKcZCZ3wIZ+U3kNdJBVm46nPxWaL3bvigtK8Ky77/Akbs3QscmdXH/U9NQHJH9rFyBZ/5zvxGFux5+LL6e/SU+ef95tKor9dNk/+p3gJPdHLl1cpGWkQ0ntx0O7nMiynwbEIuUoWRdMZYtWIZ///dRnHrqMWjVIAPp2XnYte8ovDW7EAGGVy9fjw+evgqN8x20O3gQ3p+7Et989DIa15H9zslDWsMmyMxOQcP8NNTNdJCRmYV2PXphfWE53p18G1rl56DpAYPxznw+2E7a27QG7/z7PjTIzUGH/Y/Dx99vhE8uYR76ZExhIwq789w9I0w3i8I8p1W9gLnM94k99tjDnFvefGTIIt4wtOXsr0MURVEURald5KOxoig1YVuKwvYnlGpqaq599NFHiatD+bMoKSnBHXfcYYThww8/3HxRpzhjRWCv+Gu9gLlMkdd6EjOPnsRMWf/00083Xn48ZxR5mjVrZoRiCgTWI9gKPV5RQJ9Av3PjikMxhMMBWYkA4RDWr12PKy66CY3T9kZT52ScnPkhCtI34exEHN8Chm8QG+uEMSGlZg+aGyt1J6RLe04Q452QEYIpCFOAppfwKLGR6QGMa1COE1K/wwnZX+K47LdxUqNXcMXhX2LRK0BkPfDeW59g5pczEQ0xLnIUEZPKDrpT1cBVVxSzGElMbMtcZUu84q699glFYb6WMIwNP/vw4ZN8DZk2bVoybIS3fLVI05FAGMGipbhqwmGon+2g36kjsLxMXl9kW9hXDvgrTLlKMZ+URflcPHPPJaiXlYcOux2Er5cUYZOJlRDGku++QccWdZCT4WD3rvugV79j0efo3uhz7DHY/8j+GFZwAVZvKsL82TMwcP92aNcgE3c98SJKpe24fyWe+e8DcOq2wp6HH4s538/GR9OfR6NMB3lZDnbbvx8OOupU9D26Hw7r1Rs9jxmKMRdciuKyJfhh/lcYOfwCZKQ3Rv2mDXHgQV3QtX0e0jMz0bbnWXhjVgXM/YnKTXj/mcvQrL6DFj2Oxyuf/Ih5n7+GxnnyfplfF+16HIAjex2Gkwf0xVFH7ove/fpgzIUTsW59KV665xrUT09Bq0NG4NPF0hYPcel6vP3EPWhaNx9t9+2Pad8sNw+/C0lnG0v8VURhcxjN3y1EYc9rPM8XX9N5zvl+wvcB+17OeNHPPPNM8n2ANwlVGFYURVGU2kc+HiuKUhNqQxT2ekuqqf0dzX6RVFH4z4df3Pkgt9dff93E9rUev1bspRDMdRsaYtmyZfj222+3EIKth/CcOXNw8cUXJ1+76HncsmVLjBkzxoSNsOIOU7tMvEKRsvNCcSiKMHyBcp5UIzStWbUBhx3UB1lOHlo7vTEw/WWMzliFs9P94MPlRqfAGEXhs9NqLgqPcSLG6/i8dOC8ROxiGr2ER6X5cXrOzxhc/xP0dB6Q8YxHC2coCg59CBWzZAf4BC96RlrtkfsQjSHGmBjMS0xTJl5T/hhVBWI+9PKss85CgwYNjPXv39/cfOK23xSECZuLyiksXokrz+mNerkOep00HIuL4q5XsDm5rsBfQUd2Nlk6B4/ceC6a1WuG3fc8AnNWlKFEtkfCAXz90TTs1bEhmtfPwqT7H4QvEkcwEkKRz4+1fmB9AAhIGz/M+QID9m+HVvXScPeUF1ApzQZKF+Pxh29HWoN26HJQP3wzeyZmfTkdrfIddOnUCo89Ow1l7EcGXOKrNCEnSkNR+CqX4NabLkdGWhMceMjxuHfyI1iydB6eeuA65NfJQdtDTsf074MISt24rxjvPf1/RgTu3HMQPpqzErM+eQ27d6iHvPbtcd/TU+UYRxCsKETAvxHF5aUolH4qKyJ47ZFb0Kp+Plr0OBnvzys1hwaFa/Di/TdLe3lot++xmD57DYLUgM04zaGVFdnh/xGF3cuDxvARxIq9VvDlr02aN2+e9ASnQMxwEtxm2apzrCiKoijKn4qKwopSQ2pDFFYhTPm7w+tAr4VtB7+YU6Sl4OuNHcy4wUzp5cVlpl4RmMIxvYWtBzHrXnbZZeYBUfXq1UOfPn3Mg+v4YCFLVQGYQgA9xKwpOy/0F4wiKH9dETUWABYvWoXOHXZDlly/jZ2uOC7tGYzKWI6zMyuMEDwq1X3Ym3nQXFrMCLvVC75bZwVO3DzIjiIwHx5HY1iK8VnAWXnLMaDOc+jijEdT53A0cvZEA6cTxpxyDjYtXYd4IIhIlDJd3HiWGo0qYeFAyA2LYfYzmW2Wt5zRytbifS3gMmPQ8nWE8WZvu+02vP/++0mhcKtFYZl6waLV+GfBkcjLdXD8GeOwLgiUBkMIRijXMuBvDJUyN6VToOIH/HvS5WiY3Rjt2u+PWQs38LmIqIzGULJxJcYMPBRNMh2cNHQoFq9Zj7WrV+Ghx/+Dsyfei/9O+wTRWASL536Ofnu3Qov6GbjjsWeMKBwPrMbzzzyCnCYdscveh+Grmd9g9dLvcdRBu6F+TirOGn8JVpeEsWTVMlxz00Rcdeu9ePXtt7Fx1SyMPP14ZOc0wZAR52Hx+vXyGjwHl4wYhDqpKdj18MH4ZKEP5dS3fWX48JnrTZiMTvv1xrTPv8PKhXNx6EF7IqNRQ5w+djyKCjdhxVI5ppNukX5uwkvTPkdFWQA/f/EODtyrCzKb7IFbH3wBxRuKsWzO1zj/tOOQLddq8z37YsaCUjlmckjFKN36jEIs5yFx18SePabMoUXkNZznku8n9pzxdZ2/FOGDRfk+zs+29AJ/4YUXkuWqvi8oiqIoilI7qCisKDVERWFF2faoKLxt4RdzPnDOxg6myEuzYSOYx5RCML2E6dHHh8dR8H3wwQfNMusznw+cu+eee3D//fdjxYoVRnC2orP94k8RwLvO1AoJys6LKwn7TEoViU6ZSxatQdcu3VA3Ix1Nnb1xXPqLGJWxFmdn+DHGCWMkReE0V9Ad7xF3/5jFUZAaw3gTQiJu4gefLfkFYqc7G3Fyzic4wLkMjZweyHcaIz8lF53adsCzzzyFaKxSxu1HBCEEYkEEwhS3ZKd4n4LaFpftfBWzIpjd5G7ngvJHseKgfR3gMoViu0z7VXgyAnGEitfiknOPRZ08B0cPHomlJTGUx3mrIiiniJJtlA7giDMsSPkPePyuK5GXUh899j4aPy4vNiUqpKtQoAzvPnkvurbIRX69bPTs3QtH9OqHzPotUXfPQ/DQS9MQiwTx8zcf4vCuzdGxVQPc+9/nUSJzJhpYjSefuA9OdhN0O6AvfvjpZwTLN+KlKfegRYM6aNCsEw47+kQc2vcIaa8O2nfbB9Omv4N42XI8cvc1yG/YADmNm+OI4weir/S7S24GGmVkou1+R+CDH1eDmnasogLfvPII9mxdB6n1G6P3iYNx4/VX4+EHJ6Fpm9bIrV8fR/fri169jkRW3Xy0l+vwpTc/MppuxbqFuPqS89C4eXs0aNoOxxx9LI48oAdaZzqok5aOzocwRvE6VEhH1HZ5RswtO56DXxGF7YPmCFN7s4/vHfQO5oMEGVOY4SOefvrpZDl90KiiKIqibB9UFFaUGqKisKJse1QU3nZQiFm7di3uu+8+86T/2bNnG49fmvUItkZhmJ7Bzz//PAYPHowWLVqgfv36uPDCC5PxgO0T5asKvF5BxysasFwgEFAv4b8AjCdMUZWetubn6GFg9apCnDjgVGQ5uWjqHIEB6dMxOqPMxP4d5UQxIi0q665wO1Y+lRpLiry/zwpSGI4iiPGZFIQjxkv43CzgTFkekrEUYzp9ij1TTkUzpx3aNa2PY449GC+/9SIK/eX0HwVncJDhL+IyH7k/nKacxrSY7E6QUpwrfnnNzGb+cae1UgN4A4mvB/amkRWKvWEGfhGeDCkWLtmI664cjrYd6mDAGWOxrDRmzq1f/kaNH7AUMidPznLlAjw+6Vp0aLo7eux1FOb9vMbMBdeROAgUrsBHLz6OoYMOR8vWTdCsQ3fs3/90TH7nM5RKGUSCWPn91zjxiG7ovkc7TH7+NRSFIogE1uCFZx9Dqw57ofcxgzFv3nwg6kdg/WK88dxT6Hn4MWjQqiNadW6Ho08+Hu999ZUMieNZjw1LvsW4C85Ek11aokmnzji6z3F47pZ7cNIRfbD7oQfh6Q/fh59zLRRFeOEPuOnCs9Fxz13RuFN7DD1jODas34jnpk7FgOOORevmzdGh067oM/AUvPrep/DJXDYe75FyrF86Hzdf839o3aIpdu2yBwafdAJuufhs7N6+A7ocdgo+mr/JTH2+XPPo02vYrPyKKGzKyrmyr/H2/PG9g+Ej+D7Oz7Zt27bFa6+9Zspwu33fUBRFURSldlFRWFFqiIrCirLtUVF421FcXGxEXT7gaZdddsHbb79tPINp1lOYxp91c/1f//oX2rRpY16fMjMzjQ0fPtwIORQAiBV0iM2zqVf8ZTnvugrDOzeMLhpB2BWLeCpDco4DwNOPvY5O9Q5HV+ccnJj+JcZk+DAhzfXmHcNwEekJUTcpCMcwNjVsbBwfPiflxsk2r9Gr2C67YnIMY9IDGJFVglH5RTg9YyWGZCzBGfnLcWr+Nzi/xyz89+Ll+Pipn3Dx2Atx+y1XYlPJEiNi03+UIiAtLAMPSy6Hb+5ryLTlM/PcnXLnNP9yNtPcHIELyRXlt/hFAVCyKVpGIvx1Ae8syJkwD/tjvATPMU8s8DxFZYXRrOVFxlUvQ34UbvoJG4qXYV2J35zXCnlt4bmltzBvXVAPlkalzkaEilehdEMligq51Z0H7Nn0H/VLmyUIlC7F6rVLsWy9DyvL5XVTtlNojsdDCJdvQKxkNdatXIxNgYgRlcPBImnAh9WrirBufZkZoWk1Kq3La2VJcRCrNpVgRek6rC7fKCMS+PoXrpRGy2W8hVi8fgnWlhSjbFMZ6L4c3FCEFUWrsD5UbsYXD0ib0hbKirBqw0qsKtmEosoAAmG5EiNxFG3YiI1r12Ddug0oLOXtDhmSHPeyUhmbjBsxH2L+Tdi0fgXWbipERRn7KUTp+g1YXBhDiZTn8eDD5ni4zC4kHjTHRXsNJM9JgurO7YYNG3DKKaegbt265kbicccdZ36ZYn9JQux7hKIoiqIotYd8jFYUpSaoKKwo2x4VhbcdjAu89957m+PLn/U+9thjJhQEPYMZW5jb6TXMmMJffvmliRfMhwXxIXJ5eXk48MADMX36dCMEqKfX3504ohR4EooR9S+jdhUD0+4tx6mtX8cZdRagIKMC4/lgOfkUem6KG/OXou4EegynxsRCGJtWjnFi41MCsj1qypjYwImyF2VTVE4IxGKjHT/G5pbjjAar0D97Bo7Jn4a9nNvQxbkIg3vciblv+twHyVF/MioW/1Dq4mATAxZjXGSK2zqTtx3e1wneCEquyykIVoawdvVaLF+xFD5/KcKRCsR5ZyEak7kVd8VaFqdaKefSL2fKZ4Rev9SXcxyWDdEw/DL5ImyQXrFMxHi2WZ9mRE6zQcrTpB3mBSStjJqa7rRgnAnpPy59ROUf81mO05pTiTcQzJLUYV+2fYMtKJ1HpWXK0skGxJiUyV8GLTH5TKQN3lZh2+zP7GhI9p/tRLjO8CwROgknblrIn7iMQsYZkDxecqauLEdZyPQpZdwGBe6rmJn/nOth+Wt8lBP7K6OPMQyM0aFdgVvMbDNVZLv0x5rsPtkstyfMnk+vyMvzzJBEV155JS699FLzXsLtDA9i3zv0pqCiKIqi1D7yMVpRlJqgorCibHtUFN52UADu2rVrUhR+7rnnjGcwv8AzrATDRdCsMHzYYYehdevW6NKlCy655BITN5hUVlZuIfYof1Oo61iBiMthWdwAzHseGNjwLZyRswYFGRR5YzhHPoWeJ0axl/GFx6VHMSaVwnAUBWmVGCs2LiVsRF+WoYh8nn0onSzTs5ii8LkZsj09hmEZSzGw/nQclH0PWjsFaOj0R32nB07tO36zEmjHVp25f5RtTFWx0L5u+Cr9eOPlN3HigBPRq/cReOSxBxAOV4CibMwfNKJkhZxDP88lVcuIK1r6ZJKF4/SwlTUjIEfgi1A6lSzjDSwVpQuefla1U8E0mBBV2Rj/VRgxOVFFCsXCURlDSPKiCMaMPGraIhRGGSzFSMXyn8YSphTLsJOwLEg9+g8bAdnms21JSmWBQS2M0i2buYnjM2MwJWSfeHdFNsQj0lOkTBbCRqsOSUfBkE/GKjWkOptmPXZpqjKlmzsFazYsea4IHHE3mSx6/bKwWXHLyo5zH9xj647HFGYbFI0TojDLJI+lp0/vL0VIVbGX2xguwnoIW0FYPYUVRVEUpfaRj9KKotQEFYUVZdujovC2g6Jup06dzOsNQ0g88cQTWLZsmRGHr7rqKtx5552YO3eueYgcvbrmzZuHBx54AJ9++qn5Im8fEMQv9hQDlL831ILo0BiJx9yYvNR5ioHPpkRwXMNXMCSzxDxYziv0Utgd5QRRkBbDmBQYK0iNGHGYoSGsNzDtbIrGTth4C5+X5XoLn8nQEVL2rPo/YW/nEtR1DkKesyfqOO3QsfHumHjl9aD3KOUrOyTjQCpmtCuvKdscr/hnl/n6sWrFKhyw7wFIT01Hanoqdu2yC7766jPZKBMqGkc4GDYiZJgaI0VhOaX0jKWo6g/7pDHJDFZIGtkc8sCc5Jg5z3x4IF+haO6plr4ZRoEmy673a8zIphWVPutMa/BIpwbWt+WZmo2S2PYNHACnXYwia0hMMtyKZhsTBpbwcylRNhyOICRjTvYV5x5Ki4n2KdWGgpXyuiurZp1jD8lY2SAtiKhsj/EBfXLM6EFsupOyITG2ljh0pkvX31faoLDMa4QmO85clt3CU5gVzHbu9S+JwmZQBu+55XsD173n3uZrPGFFURRF2X7IR2lFUWqCisKKsu1RUXjbwViPJ510khGEGevxjjvuwGWXXWa8h/ka1LRpU7zwwgvmS7v94l71iz3XrTis/H0xupFMDYpEIQo+FJfCEcz9fAkKjrkdh2bfi5PTN2IkvX0TMYEnUACWdFRKEGPSoxidEIXHMIxEStyNM+yxMU4E4zLCUt6PEY4fo6XO2NwohqdtxKC8d9AtZwjynBao7zRFh2btcdctN6GocBX8oWIZF0MAuDIYzWhcYkbLSpiy7an6+kF4g2nBzz8jVV7n01JSkZkjr0eNGuCVV19JTCopJ2VDcpaMCBuQvCC9bE3gCHMepWEpE5SUQqOUk2IRyQrIaxPreM+1C3MokbqvXcyn3y+9grnMUA6hIEVQaSchrrqhRdwxWDMkEtuHgQucaJK6ISEShZgvbfNfhRhDYJg8s4/SNz1rWVQsEuHexYwDr3vPjWOVBSkfDccQDpbLuuxDPCLLfrneKOWyvrQuZSIR9ziwab/sCoVcmp3/3APTGAvz+PFY89qVXPbEo2O65XhY1Gy3ArorDDN7czMs6GK9f+17RHXLdp03HBVFURRFqX3k47WiKDVBRWFF2faoKLzt4Jfxjz/+GIMHD8aAAQNw0EEHGXHYHvOGDRvikUceMQ+S4xd469nFL/w05ln45V75+8KZYGKdSuqKT1GsWbccE0ZNQJ7TEu2dERiQuhhnmhARifAPxisYGJkewJjMsAkfsdlTOGbK0OgRbMTijAjOTCvDWZklGJ65CWflFuL07OUY13IFbj1xMf4x5GZ033UPDD15EN5/91X4/OsQMz/Sr0BlpEzG5ApZW4pjHCn9NSmo6Rze1nhfM+wyX0t++vEHpMlrTlqKvPakpqFB46Z4590PzCmJ+uTcxBmZN+HrSo/gSNCIlrJkQiZUVAaNiBqTfHMaxXiOWYZ+ugHGG2Z33Ga6pSzKrTILuC4WiYZRUlYkRdzACiZbygekbcJ8bkmGXUjUSyTGDFxgP+wiMQ6ayWBIB/Okuxh8UpB7ZMpTcOX4A/R6NpvleuKNDFmU7fTAD8dkH00cZGbyD8fFYxOS7XzMoyvmGkE3LNsT7Zg+k17RrnEf2La9XrnsluXy5uuEWVvsjyzzKNBfmMKw2c4/tq7nfYHLDBPBdZ/PZ8IVMU59RUWFyfN6CdtUURRFUZTaQ0VhRakhKgoryrbHCpR6Lfz52C/sDBnBGMHp6enIysoynsP0Ev7Xv/5lvsxT8K0uPATr84s/0S/1f2949jkTKDkFZC4wRuvyVT9hz906Id/JRTOnL45L+xLD0wMoSA+hwIkaj+GxacCo9CDGZEoe1+XT6dgUegq7gvBosVEUjjNCGF13A4bkzMOpeTNwVMrL6JP2NIa0fhWvXR5B+TdAxWpg/ZrVKNy0hqNAjGJwuEhGQjkxmBS6aJzNlNGiqBQrkbLlsg//O8eVP4+qrxF23RWFvzeicGZ6GpyUNNRr1ByvvPaOEWXjQYZI4PmjhFoup3YdAkUrsHT9aizZUITi8rjxhjVCZSSAcHklVi5dheUby1Aik9IXowgqDVG45CQ1Hq0Ud91QCGby0mJhhEKVCEgb64sKzU0O40RLz2TznzXoTZyQQ01bbkIzjXCfku25qTvXiLk6JI8zkL7rfISdW9QIxcFyxMqKsWnFOqxZsRa+SMjU4L7Z/TNzlOEegpWSUYlIsAwVpRuxaeM6LFu1GotWrsZiSTcWlSJQKW3K/0hUeqEgnIyhzIfzsTV33KYPMTvezdJ3Ymz8Ywub7RSU+c8Vzs22RF17TpnyfYPnliLwww8/bEIV7b777rj55ptNHHobV5jleONRURRFUZTaRUVhRakhKgoryrZHReFtB7+UU+ylPfTQQ9h3333RokULnH766XjzzTeTYSFKS0tNar/kW7huRYDqRGPl7wNnAWdGIBpBQOYCPXBXr/sJ3XZvjWYZ2Wju7IfjMl/BmVmrMC6zFGOdoBGAKf6OTAtgjJiNNcyU4SXoITxKto/IiGJ47moMrvcRjs1/FPs656Op0xvtnT64YOCNwDp2LCZT0IQ9pTglq+G4GwyAM7OqUdJyI7oysmuhlOIcd0UqZdtQVRTm64dNf/7pe6TL63xWRiqctGw0atoOr73xoQmd4CrDAfijJbJSJC9IP+DWq89BveaN0Kjtrrj+xgcRlHJ+aT4Q9OHVp/6Nerl1sMeBvfDBrB+N8Bo1T46TAvTINeKoJ8Ywh8UugpXwVxbh4xmf4J6HHsSSlWtM1ywUC/AGgvtwOT56zgSkSAQv5quk+0opK8YrV/LZJhMx9sFrw43Sy4fimRHJbGN7iW0sWL4Rr02ZjF2atkGXznviy7lzzbSm069PCvpkcpsaIZmrgWJEA6VY+NM8TLz2CvTr1RPNG9dFTlYqWrZpgUGnDMZjjz2LVWtL2CPKI/TgZUduzxSF7RiTxn2VdEs/YWaIcTGx6orCCUGdeLYRnmd7w5FG7+AePXqYm420XXfdFdOnT0+W1fARiqIoirJ9kI/aiqLUBBWFFWXbo6LwtsOKMvTS4vJnn32GDz74IPkl3W4nVQUdC8Vgbznl7wl9Bim80cuQ/0LRSixeMgsH7b0H6jq5aOH0xPGZz2NkzmKcnV2I8Y4rApsHzaWEMSYlgAlOBGc7MUnjSVF4RBowPLsUp9WbgyMz70FH51Q0cPaUNluhRWZ7jDjpTBjlMCbzMKFjcTpS/+OspOBmRTlrzOdsdiPNUpbziVF+03m8Lan6OmHXmS5a8CNyMhwTV9hxMlG3UVu88fZnMPelKOjGGUG4Uk7gWqB0Fq675Aw4WelwchphwKDRWLCkCD45qRSFX3/qEeSkOdj1oH74YN4yI8WaM04PW4ZfoOdszBWF2TxngZkQgRK888YL2PfgA3DYUUdj2doNbj7nlRRi+YBkBMySZCbipbB94+dqvHGlbXdymXbN3JNl9+WT8myZrLh3MCiusmnzasvtJWvx4XNPoUO9FmjXchfMXrSEpRk+2bTDscbi0lt4k0zZ9fjk/bdxVN9eSE1xkJvpoGG2g/o5DvLys+CkZaBhw7a46PIb8PPGYjPD7bwPS2umZyOSb97A08Htrv9y4i6LOfY0N3Gr8F/C+5oVbMMsk3if4DnlMtP58+ebsET8XGt/hfLSSy9t8d5hU0VRFEVRag8VhRWlhqgorCjbHhWFFWVnIKEKgV6U/GG8DyVFyzHylOFo6XRHO2cwBqa/ijG5i3FBbjHOMSKw6xnsxg4O4WynQtZLMd7xY2xqFKNTgbOyghiavxInNnxX2jgDTZ39kO80RvP8JjjtpNMw4/MvjCZlJCU7hCT0ZbSW2GQXbCWvbVFXqS0oCK5bswp7d+2E3Kx0pGbmo03H7vhi5gKEqIZSzLVetrE1QNnXmHjpUDgZ6XDS6qNJy66496FnURoGfAEfXv73nchOd9DpkP54c+ZSI3HGeeMgXIZI+Tr4C1ehvKgIpRVAObXdxBjK1i3CtVdcgOz8uji8/wD8vHINfD6pHQgjUlqOwspKFMtYfBR0YzKesnKENpZirSya31LEKhEt34jKknKUlwdRKV1uKgujuES6ZicMURLZhED5JlSWFaK0dCPK/H6UydyjNovy9Xh7yiPoVL8V2rfeHZ99/7MRhSkcU1g2TVCsDa/F6h+/wInH9UdqahqatWyGgcf1xaUTzsQ/xg3HGcNPQ5t2HZCT0xjN2nTBvc++xKAbRtDlw+AqIpXYUCTHobgI/qISVBSXgz8A8UsHdH4ORcoQi5bBX1Yk2wpRzrQiAEZ44HaGXWFIFora5uFy8t+aN5yQjT8/b948tGzZ0ryP87Mtf43y/PPPJ3+JQlQUVhRFUZTaR0VhRakhKgoryrbHKwqr/XlG7y1F+VOhYBSmhyH9EisQCZTgh8+X4+KBz6B31oM4I38ORqWvwnhnE852fDhHPonSJqQC48XOywijwCnCBfWCGJVZiNPT12F0s7UY0vxrDNntBRzV+UK0yemOPTp0xU03TMTPixYZwYzem5WMG0EoTpk/FKeYR+GJsiCXY+4mKwKzCEVHGpdNXaW2oYDoryzD1Ccno//RfXB47/649e7JWF9Cj1aBnr3WHze+ASj9Ajddepp5IJ2T3hCp2c1w1IBhmLNgNcoryvDByw8jK91B832PwvTvNsIvpz4a8GP+7E9x7+3/wmXnj8ZVl16KW257GF/MXooimSIbigrx+L3Xod9h+8DJyEVeiw4Y/c+LMPW55+BftRKP3XU3/nnF1Xj1k09QIvMpGq3A2q9n4Lp/XIxLbnkQ3y5dhbh/PT589WlcdclVuP6GOzHt089x+fW34rL/ux3fz1uEoH8Dvvr8Tdx8/VW44tJ/4P8uPgf3P/IQvl64ARWcpuXr8c6UR7BLvdZo13oPfPzDQulrsygcMHOXSvbPeHXKnciQz4nNWrbDvY88ilWrl8tUl9KxSlT4yjHlyafR58hjcMzxp+DVz75GKcXbSBDF61fi9bdfwcQbr8bF50zA5RdchKf++wKWrSwFQydzGD7/Jsz+9iPcct1VuPSf5+NSGevNt92Fz79ahnI5Fb64H/4YY3C715PxIDbu0NJFIoyQ9RJmGIlZs2ahUaNG5nNtWloamjRpgufkuFIwptmyiqIoiqLULioKK0oNUVFYUbY9VhRW+3NNRWHlT4WClRFW44hEimWhAvFgwISA/WAScGqjbzCiTiFGOOUY71TgH6lRnCefRBlCgp7Co8RGOlGMyqjE6WnLMCh1Jk7O+wynNp+Ga0+ci1nPAfM/KMHrz36Ijz74HMXlFa6AJVYaDyEgnRuRygyCMhqFRG7lT/YrEimFRaklY1RRePtBEfB/YCzecDmWLPwJi5auNSIpRVBXYgzJZjmHLBMrBEpm4KaLT0VKWgbqNuuMBi06Iqtec1x9072orCjHtGfvRlaGgzY9B+HN2esQkmk4/5sv0eeIfdGoroP2zfLQvEF95OY2w4FHnIiP5i3Big3rMe70vmhaR14f0/KRUr8NGnbqjPMuOBcbv5+NYw46EFkNmuOKO+/B6mAZgsEizHhqMlplZaNhl5544eMvESpZhGv/MRJZTi4aNumIdt27o26rduja7XB8/sk3+GD6yzjkgN3RIC8LrZvWR+smWciuk40+p52D+Us2AeUb8M4TFIXbom3rbvjgxyW8fMwx4CHjrEakBNgwE+cO7YO8nDycNnwc1pS7D1FEzI94uNIs+8Mx/PTd91izZr2Z/f5oGJHCpXjzmYfQqVNzNG6Uj/ZNGqFFw2ao27ADTh99GVbw0Mpl89qbT6P34XvJcWqINmKNm9ZFbr3GOKTXGZj20Ty51hhVmfG4Y4hIP+Z0WmMiGd6YwgsWLECrVq2QmppqRGGGj3jxxRfNNhWDFUVRFGX7oaKwotQQFYUVZdszYsSIpJCp9ueZisLKnwoFIQqrRuPxyXolYoEgUAx88SgwrMX3GJ5VYYTfc1Oj+EcaQ0fEzMPmTFzhtDCGZq7E4Pxv0cv5L7o6V6G9MwpXDHoZ0SXSJH+fL80ykgC7olBG0ZCyLwXhIIVDMwCr9FIyptcyhWAKwtasMCwDZUNWHGaaELWUbYsVC7eAgi+FXznBFDV55ijrB00xegiL8RxRFC38DLdeMhjpGTno0uMIjDznfNRp3AwHHXE0Zn7zNV5/8m7k5KSg9WGn4dWZq1G6sQR3XHsFOndsgdNPG4Af58zAq889g54H90Zm3db4580PoSgcxqJZb+Dy84Yjo04r7HnoCXjl0xlYuORHFP80Eyf3PhyZ9Vvj6vseQ5FMlFC4CHOen4zmaQ7qdz0Cr309D/7C73DXVROQ6eQhM7cVjjp9KD6eNw/fzl6MVcvW4dzxZ6Lrrq1w3ZWXY/YXH+O5KXeiUZMGcJp2x33/fhMo34R3nngUu9Rtjzatu+O9n5ahUHaZTrjc9yD3H2WIrPgIPXethyaNW+EfV9zmXhrcFi5G5cblWLF6NZavWoNlixbK8jr8tNGHSmmjaMU8DD/xCOyxRyfcO+l2/DxzhhyX65CZ0RAtO+yHF96di6UbyjF2wlA0yHdw8F67Y8aH7+Ld99/AoKFnos3uR+GKmx5FYbBYzhFjPNMTmDdjeE7l1Hi8hG1oCHoCz50714SMSE9PN59t27Zti5dfftmUoXisKIqiKMr2QUVhRakhKgoriqIoihCH8cik1hqO+hCniBeNwb8aeOmmMhxX912cnlVq4gSPdyIY5wQx1okaT+EJacDIOuswsMGr2M05Bw2dw8S6oJnTHldOuBKoiFBdkk4oE4bch12JhaUvV/71wxcpkSEY1SwBpSquewVi6znMNCEOm+0sx/JKbVC9KCznlw9Ri4dRGYoZj1WeoUAsimiED2eTc8VTFZDlTTNwx6VDkZmRh4N7D8C7Mz5B7wHHILd+I0y87hpMm/ooUjPSUH+/E/Hm7LUyWdjYJpSVbEJFRSl8xeux4LvZOPmEE5Ga2xhHjboUhZxe5T/ggZsvQVp2O/Q+6RwsLClHMFaBTfM/wQmHHYDshp1w2V2PYU0sLO2sxqxn7kGbrBQ07XEsXpgxG6Hi2bjl4jNRP6MFdt3jCDz13rsmJrCPU0/aj/iL4S9dD39JKSo2rsK3Hz2H/Q/cB06D7jj7ivtknhfi7SmPolO9Dmjdem+8+/NybJKqnO+s7wuF5TgUI7R4Gg5ol4V69Vrh/KvuxQbZzJkcXj0H553WF43r5aNRoyZo16Yl6rdsj0OGXICfisII+Tci6t+ATSXFCPgqEFizAJ+98izaNmiKVi274I5HX8PijRWYcO4w5KQ72LNdc7zx4jNYvOJHzPp5CRZLR8uLeV6CcjWVIRKLIBAIm6uH12NUrnfCc2sFYnoCr127FiNHjkR+fr4JHTF06FAjFHu9hNVjWFEURVFqHxWFFaWGqCisKIqiKC7U+Xz+MOg7SIHWV1mBt577BH07n419nYk4OWMhRmVEMTYliAIniLNTXC/hM50KnJT5Jdo5I5Hr7Il8pzXqptbHwfvsh+lvvSYtBxGJ0B+SElultM04pLKY0HLjCIvx4XabHyhnbTNccwVitywjETPlOutTFdyyhrJt+B9BmMTk3IQrEPSVoTwYQYWc23Ip5kqODB1hReEAUPQN7r7sDGSk5eGQPgOwsmQtbrnvFtRr3BAtmzbGJeNGICu3PuruexLemLVS6pUgunER5n03H8889yL+76IL0HO/bkb4zKjbCH3HXImN0le8dA7uvvY8pGR2wEHHjMXctRuky0pULPgMA3r2QJ0mXXDJHVOwXoYRjmzEvKl3oV22g6b7nYDnZ8xBtOxb3PiP01DHaYquex+DL1csMV68fDgbx15ZvB5ffvwennvyaVx63ljs1T4T6RkOnEYHoOCy+2U3izBtymR0rNcRrdrsg7d/Xo6NUtUcLpmeRjaNFiKy+E0c3b0Z6tZrg/GX34e1ku2TMrF1czH2hJ6oXycXOTl1TAgNJ7cuDhlyIRabJ80VorJoET75fAYmP/wQxgzqjQ55achzMtC6dTfc8shrWFoUwL+fvAcdWmWiiexbbpqDOg0ycHC/Y3H/kzMwZ5kfJfFyOS8VMh7XS5inxR/iAybdc0uB14q8ViD+8ccfcc011+CGG27Ap59+avK4rdq5oCiKoihKraCisKLUEBWFFUVRFAVGEKIMRGnVR/1OMtasXY5j+/RBvpOLZs7h6J/6NkbmFGNsRiXGOmGcm8FYwnGcmVKIUR2+RHPnSOTnNEXzpi3Rq1dfTJ36CsIRaVcaZtuReIX0Q/MhzgfLsTMjFEYR8VPkjUo5/nPLU28yJitMbT6NJaOef6xFKVupfSgMRsMBbFi5GFMmP4wpTz+Lz2bPM2eawSRisRI5YTKpGGkgJCe9cCbuupSicD4O7nM8VpSswFfzP8URvQ9BTloKdm/RHKkZDdHkkGF4Y9ZSoGwJ3phyB3bdbS/Ubdga3bt2waBjj0T3Ls2RlpeL3mOuMR65KJ+Lh2+5CLn19sK+fQswd90mmV7lKPvxA5x42L7IrL8bLr3rSVcUDm/A3KdvQtsMBw32HoDnZ3yHSMmXuOXCwchzWqDnEafj23WrkqJwRVE57rr5BnRs3QJN6zXCIXt3wZD+e6Jt26ZwGh2M4f+8l6ox3vr3ZHSo1wkt2/TAtAWuKJyYsCZBSHpf/xEuHd4XaRlNcUD/cXj3pzKUcOqWyPG7818YM3oszjhzBLrv2R7pOdk47JRzsWCtlFn5JSZePAz18/PRrkVL9D9gNwzudxga5bdAXsMuuOnRt2RvpZmKZXjikYk4fUA/7NdtVzRoXgdO3YZi+2DYuTdgUeFSBFEmp4I3VdxLkJdijOfRePS759QKwnbZrtvtwWAQfr/fCMhcVxRFURSldlFRWFFqyM4iCr///vuJJUVRFOXvDcWXXzLKTkwTiTUj+VDMSWyrWkb+0Es3zJ/6y1owEkc4Gsaq1QvQuV1jNEh10Njpil6ZT2JYo0UYVvcnDM6Zh6H5P2Bog9m4qMcCTL5gOW6+4jGcfsbpuGbi1Vi4dLFpiz9L58/n3ZHZaLOJ3+Mzk8NitpRxRWFaYlhc8Bh1J7tq2k7UcP+5krC1reWP1FG2hKJg4aYNKBg5DCnyuSctOxd9jjsBi9ashZ9iMM+3iTksi4xBW/gdbrp4BDLTc3F4vwFYsHoJSoObcOft16JxXjpypY30zPpoecAgfPz9Ciz5/hMcundb5OTWw8mnnIlvv/gaS36ci6Gn9kF2w3wcMexSFMqkiJV+h7uvORdZWR2x3xHDsLzchxDKsfqH9zCo38GoU78T/nXb4yiMROD3rcPbj16DFnVS0WzvgXj9i+8RLZuFu68ajTynOQ49YggWl5WiTGZYeaACc2fNQqP8+mjdqAUuPf8ifP/t51j243R02XMXOA33xzlXTkasshyv/+dxtG/QDq3bdMOHPyw2orKdsEY3jZcB5fPx3tQHkJvTCKn57THknCvx6cx5qNiw1MQUXrV6Pb78eiaGDT0RmdlZ6HfyaCxbW4gv33sGdeVa3KV9e9x9221Y8f3X+Pbj6WjcoAUaNNsdNz34khGFSyvXoax4CSoLV2PGJ9Nxx70349hTh8Cpsxua79oTc5csQEXMZ64hCt6VQUb13nwNWPHXir32oXNWIGa+N5awLaMoiqIoSu2iorCi1JCdRRRmO4cccghee40/w1UURVH+ivyqOGk2yp9fMiPruGEUuGayKURRkAJj+TIOr1kRuEESrposIw+5fykEMcJpvBwrlszC3ru1QJ68BzVydsOh9R/BcS0/xKF1H0e39KuxZ+4FKDhmMmZNCyFWLHUD0lMwiFCYcYPZjjTPcbALg7fTxAZr8scVhDmKxDZb1JrgreLKwNzg1rFrW5b5X6pu9zSv/A5siAGmixYtQH5+NpwUB05qBuo3bon3PvxC5oIUMAc5IqdJ5lW0HIHCRbjqkvHIyEjHob2OwsqNZYjKfNm08nsMOupA1M1ykJqWiV33ORKfzf4Rc+d/hc67NEe9/Lq48ZqbsHbxWjz33yex515tkZqXiYFnXYpimXuRskW4Z+LFyMtohiN7nYrvFi/F+vK1WLbyGwwbNhB5uY1x6klnYvHCRZg763Mc03dvpGakon33AXj7k7kIl/2AiZeMQN20Zuh95GlYtrHQxN8tj67HtHdeRf2cZmjXZFf8+8EnsGLx97jz7ouR2ygHTr1uOPuiSQhX+vHif55A+2at0KHNLpg55weEExOM12LMBBeWAxIpwapFczH8tFNRPy8f2RkZOHD//XD6kMEYOnQIjhs4CD32PxD16tVFoyZNMOG8C7Fi1Ro89/S/kZPhYL8e++C9t6dh4fdzcNWlF0obeWjYqCXufugZrNrkx0233YozzjwNDz14F1avXowlyxfi9kn3Ibt+W3Tp0QtzF6w2rwg8NcEoXzEiCEcDiMZ4HclYzeuJm1oxmB7ENF7fzAsEAiblubfzYGfF7uev8VvbFUVRFGV7oKKwotSQnUkUttajRw/897//TWzZzFffLUssKYqiKDsjlB2qlR7sBgoTv2RGGGV83YQoTCEq4qauZ26FmBVvpKytYrK4EEYwkvDSjUcRCVVgzbIf0Oeg/ZDnpKO+szsObHItumRcjSbO6ch2eqKu0w1XXni3qy6xCWmTApFXQNkawYVQ0rU+v6Yh1jEuxgkzbbAUy7mpKcfyZmfdHNZOtJC0qni32fI05bepem4JxcKffv4RTioFYQdpmdlo0KgFXnl1ujv/xCIBP2LBElkoRrB8Da67+mJkZqah91HHYs2mAIKhGELFy/Heq1PQrGE20jMysNd+h+OjL77F0rVLcNLgAaibm4MOLdriwD0PRPfdu6J5qzyk52fjuNPOhU/mYKxyFR6/5wa0bdIRDeu3xUFH9MJVN/8L68oW4677bkSzRs3RqE4jdNulM3oe0B0tWucjPS8PrXfrg7ff/wbBsgW45qJRqJPaCL0OPwkrNxTJFRWSq2cTFsm10L3Lwaib3hxd2u6KvffcBd16tES9FvWRkr8bzr3wdgQrAnjpmSfRuklTdGjdDnNnzXf3ndeHYOZbLIJ41C+ZlVj8w2yMGnoy2jbOR4M62cjIzDKCekZ2HeTk1UP7TrvgoksuxY8//YRQKGRi+bZt2wZ18+qgU4d26NvrcLRs1hj183LQrl1H2ccnsLEkjGtvuAUtW7dE4yb5OPCgvbHfAT3kWLVBiza74qrr78YGOQ2VMqaQDIiewjFzM4mDlGsocU6Z0vvXegmXl5dj+fLl5gFzxcXF5jpn6IjKykqz3Yad2Bnh+O1+K4qiKMrOhIrCilJDaksUrql5RWFrXbp0wX333We+KJCDht+Gqe98a5YVRVGUvxDUK37NDFTf+H7A3+gLXE2KvhSFK+2KIBtYL7mdC3zAnPyVP0EWl9RXXI7Lz7sKHevth3pOdzR1eqOJ0xd1nP2Q43RGp1Zd8fD9kxGh2yHbSY5lS7ZGcGEJir2ufzEzJPUKwqYNd7s1VwZOlHX/S76bWvslvGV+ZehKFbzn0i5TEPzxpx+QlumKwpk5uWjctBVef+N9BDk3zIGWoxzzS1qBQNkq3HLDFdh11044ZcgZWLyq2JxmxErgL1yMs4adjD26dsVxg4bhq7k/wB/345vZM3Dm6UOxe/vO2HvX7rht4g14bMokdNuvOw7odSpWrpP5HS3BxmXf4/ILr0Tnzntjl67dcO1t18vsL8WyVT/htptuwZ67dEHPHj3wj3MK8OjkSdhjnx44ov8oaX8RAqWLcPeNl6LHHgfhzDPOx09LV8gVFUYQJQhGK/DFx7NxXK9B2K1NJxyy/1649Y7LcN2t16ND1944ddg/UbyxEO+8/gp6HnAA+hzRGz/MXwA631ZU8GaNO5WDITkG0mosXCHjrUTx2mV4//WXMGzwydil867o2Hl3dN1rH1xw4cWYPXcefP4AfD7WgRFhX3rpRRxx+KHo2L4tDj34AEx96r+44NwJ6LbnXrjwsuuwqTSECn8YL738IgYOPAodOrRA+w6tccDBB+OhyU/KcaowYjAlYL5SmGue58XkxJIewRaKv6WlpbjtttvQtm1b7LbbbrjyyitNnj3/TOk5vLPC8VdniqIoirKjo6KwotSQ2hCFt7W1adMGEydOxL6nXm2E4VunvJsYgaIoivKX4Tc1ChawUo9ApZPaDlMjCnvDR0jK4lw1WfwTRijGn5HLJq6ymRCwbmEl7vy/l9Gt2YlomtIVeU5rNM/qgo7N9sB1//o/lJasg68y7NaRNv+omLLFcAgz2JbxAna3UArmPzeOcNwUMZiyWy4mt/0K3rJbU16Rs1DFE5xYUTg1XT6XpImlpKFBo+Z4c9qH5hTKyZJCEcSCZXKgK8TKEQ2VIhINIRCOm1AGIcZZkHyENiHoL0EgFEalzEFuC8jfqFgsLBMyKJl+KRuJIBQphj8aMLObHq+ISP1oBaKBqAlb4YvGUeQvh4/9SamwX64BqYeAD/FQJaIxv8x5YJMMKWAcZQsRqViLQHnUFOMtlpDpuQLheAChCumEmQHZl4DsC8rkMoma4VRY8TsWQrCyEhEZJwVhRlagGBxhKpujMXrlSuG4X1ZkPEYclj2IhOR4xEy4CX8oIrsp81yW2SSPL4+5CdMgaVSOQzQcRFj2w/wcQK7bUDBs6sqa25fk+33FCAZKEAzKMZG6MmxThl7VpqwYx8Rr34SM4VWV6Mf0xRxJFy5ciK5duyI1NRXp6enYY4898O677ybDStiyOyvc56pzuuq6oiiKouyIqCisKDVkW4rCI0aM+B8B98+2Vq1aGUF4w4YNRhC2NuHGZ7Fmo3m8iaIoivIXgTLFL5n710hCsijLXE2KwlSs6A2YyE/UMNvMIiXWiPnLLIZ/jUmVKJ2LK4APn9+A84bejRP7nIRunTrh2CP74b23Xkcsul4KlJhadC5kzNTqBJatgTVM32ZNYIbZD+ZwR9x4w/zHkTJIRrLsFhWVbUl1AiDzGD4iLd1Bnfw6SMvIQtPmbfDyq28jKsXDoYQ6GpdJFZNJFSsXo6AZRSAUg5/zzZxvyeO2eMicTr9Uq5BtFGZ9QeZLLpXSQKI9+GQuRBCQLHZhxNUwPYbduUGZkzM/JGXCMdkm7SLI7RxH2LTnC7qiNK8cxOVzU0SM3YhVRFypNCQlInEpL31EyiUnxAGHZHpWIsx9kP4psprxSb67r27C/ZLEDDscjUgaRiBYhkCgRHJlTFE/4gEK5TK/WYZ1EuV9gaBZ5vG1YRzi0keIrvwMUmzCvLjLcalcVunGBWc7EeO+L0YxW9pnXW7jcaIQ7pdhUgiPmTbleMuxY9vElJULmsZfo/3www9o0KCB+dxJYbhJkyaYOnVqsuzO7CVM3OMqB01RFEVRdjJUFFaUGrItReE/E68QTGvYsCFuueUWE9fN4hWFaceecz9mzF2S2KooiqLszFCyMAJRFWP+ZjnDFYqMOGUrmI1WIJKVzYXdZbNOOZhyawzhGEUeyaSCRKUsAGxYCGxcBKxbugbffP4+ijeslCrliMYoCpclvB9/nd8SXbjVu0/mjxkvc9zBxMQoe20hCldfkQtbye8t//fGex7tMtOlS5egWbPG7ueUlDQ0bd4aH378BXwUcM0hlhMUDSDi5+cWv6wHEaV3rGTTSTdANTQeQCxUBr+fnr3urPXJQlhOLs+4cb2NiHEj70LEfSaf4RCCVG8ZvDdOr3VXHPVLkxXSAduP8E6HtG88dCkwmzsf8p91pTDF0niE3r8cm+TJZtbjGCrCfsmSTCnPhuM+n6Tc4orXFFlN/XgEYYrOLC15Adl37h89cun5G5Y+fcEK2crB8nqU42HEbqqzsh+ybxx3mB7DYmybqU/64zHmQ97YNsvGo9wfKSPHkNd8TMqxLvviaYlSFDb7K2lMjnOYR5HHwS1jxWd6+4ZDFVwSkzY8nr/sk2L0jz/+iObNmyc/gzZt2hQvvPCC2f5XgPvxW/vyV9lXRVEU5a+FisKKUkN2NlE4JycHd955Jyoq+AF+S6qKwtaenvZNooSiKIqyY0PhQSyRWLhImYZG4Ydm17coasRgqlM0LifyjAhFwYzrYpbksisKh6IUjigNBxGO+hAOBo1zpfEYNqKbtMKf4BuvY6Y+qRdCICTlZM3bdFV+6yfmrMsSNNOOadDmUgJ25eDNorC75Rcq2pXfwFt2a8r/vakqnlFAJMwrLCzEhf+8AE2aNEaLlq1w/AmDsHTFGplHcmqkSoyCLb1zQzKZKFTKxAqFAua0UXwNUK00k8x9WGIoGjeCMHN8RtCUc87wEZxHdOPlsrTBWwM+6p7MppJL4djMkpipW+rnfJFtHHuMHrnlUtcVhanFcgAmjAJ3i+7xMhruT1D65+ag5AdkmfWNEG2E6RCi/koTzoL9VgYSgqwRil2xNiw7zibp8UvBmNvdGxlRyQsgxLARPA7mupStHJ+sSXPGIjIgrhuTPzzW7vGXqzPgd0VhljTXuRv2wfUudsfv7h/Fa4rc7EOOoGQHQnLFShUjCrMYvZfDnjKyQxSKLeyXD5dr1qwZ0tLSzGdRCsTPPPOMEantHNiZ4fGy+22Pc1Wqy1MURVGU7Y2KwopSQ3YmUfimm25KeIlUj1cIPmTk3Vus3/TYO4lSiqIoyo4JRQcr8mwWIBK5xlxhafO62SZ/TGn+McYMikwUpyhrUeyhPMY8b7mEGdzAEWwzImWjKJP1ckQY89S0JyUSTZlCxn+SPxmPJvs3DpwU6xJQRPEKKb8lqnCr3S+zYszmUuKjF6UrCLvm8RS2ByZZnibL3v4TtplEWR4rbx3lF6Fw5j2PXqE/Golg4/r1mPrss3ju+Rfw488LURlwH14YCruCoxuyITEfGWaBIiS3S5PmFJqQBxGZSzzDRl5NbjM9Sfm4EYYlJyJtM3QCs8XMUCQ74KNXLz14eQPBbYNiqTvUSsQi9FSWeS1tMNoEG+YcDrFdacB4Gcuc4Pyy/TMNBDn5pQMZfzzI60KWpWI0wmvHNGNqRGK8QUKR0W2XWjfHz/ASDDXBeezK1RSUOQBp3Xj9uvtBMZixhblMi8q6Pe6bxVoWdns0qRjFzESOrMqy8RSWMVOoTjwJktvseGje8xKRfYrKOOz5Ne1Jv0znzJmDFi1amGdl0Fq2bLlF+IhfElJ3Frif/HxdWVlpvLL5EL3Vq1djvcxn66Vt9++P7ufOfHwURVGUHRcVhRWlhuwsorD3i9cv4RWBj//X2zh87ENb5I2d+DRWrtscbkJRFEXZkYjLf4pOlGtceYcyApdozKUkZNfNNvnDn3ebshRkbUGKZnH+ZJw/hw8iFKJnr2SxCymTNDaS7IXCB+APlMtyqawVi/mkj0pJ2Y70zgGwaRkjI7GypjWOxbQvf37Jfg1upWBlionFInEx05m8B0bAmK7WS5h+o5XBgKljhs5xUXUzO8U6TOn5JyXl/dMUicaN4GbqCCZ+qljIPKyLddy+fonfHP9vbP+rssW5ZSrGuUAh1pwWipqSUnB0jzHTxLKcDdZkOa5ZmGfqJIzLzEuebFufme4Gl8RyHPRA5s2NRH3JdzfJuQbnNz1jJcc2brALHBPnDP2Vq/bPkVLMZv+Sy0x3g6lDUdg1d79orGvbYAmKwvRBdv2QE3ueOH6e5n4Hthdvffm7xbFmP64o7B3PlmXdcbivJ1ImylJSTq6fn3/+GR07djQPmaMo3L59e7z11ltSPG5iDrOM17t4W8C+2I+da1vMu63E1rEith33ihUrMH36dMyYMcPET37ggQfQuXNn9OvXD5MnTzYCMfeTdVjeOw67bEV0L3bd1lMURVGUPxsVhRWlhuwsovDW4BWAT7juA2O9z52yRf7RE+7Dp7MWJWooiqIoOw4ecSYh2VB24BKNuXaLKzUQKRGj6BNFnKJDYmMg4Ec0RiG4UlYphFEMYXmzuNnMH9uqrHExTvGoAoHQJkSiFIQDiMT5UCzZaAch5V1RmKlUkT/J9n8FiiO/bLJdyvBhde6CJ030FIyFjZxGP1AzatkWoQenGRfLywJNjkmMwo9kMyYrQxGYEAGyboRnFqdgI50mY7KG6U3JLb8Mx6n8Ajy+FPHlnARDIfjFeMx5asK8SWGOLY+5xxK53GpLWONWa1x34RrFNderd/NGLgiy7NanKJx4SBvX3UyB1wTDb9GLVhJ2aqpywRXt3KKuKJyszw0GW05SO2HNRv7hfKMgzJT/3FzbhtsO/3G7FYUTA0gUtnV+P27NzfXlr/c4m2PNPXL3ye72/5aV7R6R016bGzduxNlnn21CSNBjeOTIkfj+++9NbZarrQfN2XF5xVc7xt+CZawwy2W7n2vWrMH48eORl5eHAw44wIjdQ4YMMaEyKILXrVsXAwYMwHvvved52J/bVtVljs3CdVKdWKwoiqIofxYqCitKDfmri8K0fhdO3WIb7ck3v07UUhRFUXYMKM5QbNos2VBW4BKNueGom2f+mnIRSSmKBqRQHKGgSRJinBsGoiK4ydShI7Gpy6oJYylKrBSzTIaUiQajiBiBlO3LcjSEYJgP9JIibIN1TR0KxowpTEGEG8VqBBuIJURa6YgCo1gowLG4x4CSTiAWNZIa5bdKH+PTJspSmIrKsTDHUNqRA0Gd2BeKoCJAL2O3vj9MWc5tz4U7JDkU139jJ6wIpPwCnINyvnx+vznGPEe0QJjzhfBYWzMZJuG5sMZ11/iPrSQzEn8opnJOSGlbyZxZipi2KG9YuJ7s5o9t2NSjMCzlbX6yPmeVrW//VcVWSGyxFUweryXuLVO3rjVbw83lPnEf3DGbLbZgDWDbruybaIgJXwxoiWNuy3CEbtkEyQMn2zwiJue6jRu8aNEiPPLII3jwwQexYMECs80aReHauC5sf1WXtxaW575Y8Zb7NnPmTBx66KHGA5qxkh966CHz7I62bdsiKyvL5DM98MADjYDsl7ltxWFv6oXHz+ZVt11RFEVR/ixUFFaUGvJ3EIVp/f/vVfQcOWmLMhMfnZaoqSiKomx/KMxEXUvISJQ8uGSN68YY95QPh6IYHCpH6foVKC8qQnkFjCDslz+BuB9BFKHEvw5FpZXwsbhsMyaNUfdxPRYZhiEhktmuKZqwj2gYfGBWKCztShbrumOh4EYv5ApJZZl1aTWCLYdk9znQkKxGUVlShrKiUgR8QdDJjzJaRdAVeOl9asJixKSOr8ykrOevrDAPPVu5eg3WFxajuCKAilAcPqlE/1J/oh3uqhl2PCZ9UrRh/zXeib8NVQW5uEyosqISzPrmWyMabizchMqgzEHz8MK4zB0eXxbc0phwuzuvNm9yzxDPmOQmTw2vCXfOJvNpRmT1irqsR5M1ZiTrswwFalNpi/wt61t+OWczXGNDlFo3y6223Jbl3XLuDKQlxrFloT8Ee3SPY6IhJmw+uY+2jBvV2B1lAi5YE6wXrVf4ZB49Yq1XMIVV6yFLqs6HmmD79rbJZdunHZ/N95b7NVjPCsKsw3359ttvsc8++xjxt0mTJiZcxHfffWdCSBx99NFo0KCB8Rbu2bOnEcZtfwwnQYGYbdrQEjQ7Nh43Ltu+7LKiKIqi/JmoKKwoNeTvIgrTBvzrHRw+7uEtyo2+9iksW1OYaEFRFEXZfsTlf9S1hJJDqYNmdR1X+uDfiCQhIwgv/3kObr/uMlxx0YV49LEXUBl2/SErY34s2/g97njgRlx+9Q2Y9u4XrgcxTRqkA2FCJk20J3nUe9h9NIhopBIV5cX49tu5+OH7daCmwXG4EX0pClNMZgXpkG2Z9rYOK6BYc+EYKiUVk76DFaWYdNvt+NdlV+GNV9/mc8WSD8minBaiRzH7DlcgVrER0YpCLFv4E6Y88Tgm3nADLr/qalz8f1fi5jvvxVvvf4r1pX74pSsrFzIEMdti71HzkDF7lP8Ym/fj74EVvyy+ikq88Ozz6HNkbxx22GG49vrrUFReImeIjweMybnj0RZYxZ1IicPtCpUUKbc8AzzLiQmZKM8rgqJwTPJN2US+Paus69anyCt5LGAzxWxPtppblrA8RWH+E5J1WMrOOI4wOZRE/c1L7vYtRWFDsi2usKxtLzH7ttj+x2GP7jFMNMTEOzyzyBHKuRBzR5ogUS7GFwYuyrml+Ep4julRax90bM+5V/xkasv/GbA9a168eXaZ/W5t3yz/S6Iwvws0btwY99xzj7mpsXTpUhNjeOLEiSgoKMDdd9+NxYsXo7y83Nx0+uyzz/Duu+9i3bp15mF0FIZ5LJja9tkXU2L7VRRFUZQ/ExWFFaWG/J1EYWu9z/v3FmX7jrsHH81cmGhFURRF2T5QPKBwQHOVHOZ4zYgMJkQCBa8AEC7FjOmvoEfnFsiS97JOux6Ir+etNlGEfQhj1sJP0b5rS2TUaYR/XXt3Uoqyvyh3RTcKsWxTEikQN+EayhAIrMFjj9+L0047HU889ob0bUfHiL4U0BKSkh2cadA0+gehMMeHgJWZ/dqwahkO2Xd/5Gfm45/nXQpqwElRWLoxR4fHIFKGaPkavDb1CQw87mg0qF8fKalpSMvMgZOSASczD3vsewj+77pb8NOK9WaPuYchqe4eZTEq3jJ+K+BUx69tI7+1/a+Adx+9ojCXVyxfgU7tOiIjNR2pKSlo3bY1PvnyMzmrESNCGrGSxWk88Pbgyx/ru8osg2mX84EPAZRJmbgk3KqUmQNuFvNMJQpxiQcPGjjTOaelFNvihkTC4u489gzBlGfoB9PY5oLmBg3HwRlDGbVqfeZxiXBGulIry5l27UIyg2XdvkxLNn/zQP4wrG57N03Zdj1tcxvLVCsKJ8rwnHoFTJ5bwnyKrxRAuew9/zbdFrBt23dlZWWyX4qvVoAldpy/Butx37xtzJo1C7169UJqairatWuHF1980XgE01t4yZIlWLZsmYmfzJRGYfjJJ5/EEUccgU6dOuHUU0/Fs88+i6KiIvf1OdEHU5oVrL3HVFEURVH+LFQUVpQa8ncUhWlHVRNn+N+vfZloSVEURal9KKxQOKC5Kg1zvGb+xsKIhxgnQixQiK/ffxX7dGhkROHUzJb451X3YG1FBD5E8NO6WejQvQ3SchvhptsmGynKtC7NG5NSMZTJclDakwwWCFM2XYGfF7yN9h3rokHD+nj0kZdBR0HWjSCMcJRxORON0eJxxCJBacf9afcvmVeQsXDZ5Bk35VKxEhlDCSqLN6B/rz5omNsAl/7zKoRkM8VsDtMcnXgM4WAp4oFN+GTaszi0x27ISHXQsGEjtOvQEW07dEKrDp3RuHVHOBl5yG3SBhPvfBCbKiNGQkweC2nTFW/CyfFVxY7dO37vPvxd8B4bexwIPSQX/rwQGU4astIykCJzsWHjBnj3o+lynKMIxcOupzCLswlrprq0I6VkhiTmuGAWKMYyZrScLXOi3CqMKB1BwD1/krFZFPZLNdsC+5ISRhRmIckSc+u7596ef7cGlzwyKRMa2zCCsOtN/7/13ajJFisKJ1aqMY5HyhuTcjbf9JUw98/vwjbB3mnJZpiZaNtb5n9EYW5MmDfsAVMKp0yLi4vx448/4osvvsCGDRuS2/5MqrummMfrrqysDB9++KERbEtLS5MeyoRjoVj9a7Cs16OY6zQ+RO+qq64yAu//s3cdgFUUW/umd0iAkARCkptKhxCqiF1QQbCgiNJb6MWCvbdnb9gbdkHFhgqK0ntv0nsngfTbb77/fLN3wg3q+9+TZ0H2g5OdnTkzc2Z2dnPny7lnu3XrhlWrVmH9+vWKAOZ4SQLzSO9h9k2C+J577kFMTAxCQ0MREhKC5ORkjBs3TunqfihM03ZCz6kJEyZMmDDxv4RJCpswcYo4U0lhioozPOi5avXue2W6fIA1P7iaMGHCxJ8PEhx8/lIMhubkHINIIqHkkMxywFaIZT9MQ6vUONQIsCAoMBTJ2a0x5+cjOC7q23YuQLv26QiqkYB7n3xLecmSFnHaXDi8bx+2bVqHbZtXY+um1di/by8kG3anHSWFK/HjjEmoGWNBzdhYPPTI29i2owQuZxmOFx7Axo07pe3jqBBzFOXhOI59OzZg3dYd2Hu0SBE2FcWF2LttI3Zs3oAjR49i2669WLNpG3bvPwSn3Q57SRGO7JF2Nq7D5o0b8fPmjTh8XMoqScA5ULh/J7q0bYXYkHDcevu/UE5uUCZBewurF8O5S3B0+xpcc9n5CJHxJ1mzcN+/HsfmTetRfOww9u7ZhWeefQ5pWY0QHZ+MS64djE17Cw0yjETTsQJs3/yzzMMmbKI34LYdOF5UpjytSUnC64DHVoz9hw7g5y2bseXn9di+ZQsOHDyOMplMTS6ra3MGwJ/YYpqkF0FycPPPmxAcEKQ8hRUpXDsO076aJteKdK+P8qU6hc3otPzQVKY6JVSCMyuTzPXu02c2gx+QGOYaoDmGCWpV+7XAAn+RrKr6xvpR9Y1sX4oW+ur79A1PYV7l/8RTmFX82iCq2tFCW7RIxsnlClWJ/xisYdhlEL2qBd2mT3hg2Qm9k+bbd6KvKaEJTYZMeOKJJ1CvXj3Ur18fN998syKJNTT56V/XH7+W75+n0yfr8ZxCgpXEbM2aNdG2bVvceeedmD17tnrxW1FRUVVs338H/7b12uWRQpKZnsGUtWvXYp88G9kfyWESwVu3bsXmzZuVMG/GjBno2rWrijVMUpgvomPoCb6Ez58E1rbrcWj4p02YMGHChIlTgUkKmzBxijiTSWHK5ffMxLn5r1arO/Ced7F931FfqyZMmDBh4k8DuQISBj7OgAdN5BhZ8tPLr8X7SGF7IZbP/BRt0mqhlvwuqxNpQVjNGjh30EPYVgoUbvkJnZrUhCU2AROffVcFZyh3ODB3xme49pJzUSs4DPGRUYiLsODq3lfim9Wbsbe8Au+/ej/SalgQIW0GBYYhIDwHrdp0xbZ18/Dco3ciOCABLdtfic1FZbDBjtLdi3F+22xYYhIw8v6n4XS7sGDm52iTGY+kmEDcctutaNLubATXScXQsRNxaN9efPHuG7iiU2vUCbagdkwUomrF44YJt2Hpjv2wyzCP7d+Fnu0bo25wAMbf/SyOeqBCPvDvlnY1ITIP5Qew9MsP0bBBGiJr1sOT733N4BNSJiN1HpY5KkFlxXF8/ukU3P3g41iyo0jNAVwu2A7txptPP4zczAaIj45AzdBwZCSm4KFHnsPaArehV7ofc794B5dc0Q0hNaJQKzIQ9WvVQe8bxuObOZtwTFTKRBQNZFygfzz8CS1NxPG4edMmhAQbXsJ8aVdCYgI+/exTmRbjn/ffEmG/VsY838r3K9btMetEttb1R3UNDZ37y9Jf6p7Q8tnh+3lCdOq/we+p85/hP2lZ6/yaniYx9XXVZCbj65IM5nUNCgpCWloavv3WeFkxdbVoYphH/3zGI2Y+07pNf7JU9+mfR/EnWFevXq361xIZGalCODz22GOYM2eO8uQlQcy+dL9adFu6XZ2n26bQE5nhIkgM0+OXBLD2FN64cWMVKbxJ1jmJ4rlz5+LWW29Fs2bN1MvorFYrXn755aqxMF4xyWrawzxC933y+f8HbbcJEyZMmDBxMkxS2ISJU8SZTgpruWDMO9Xqnz/kGcxautnXsgkTJkyY+FNwEmPDAymDapQUSWGGe/BUAPZjWDHzM7RNq42EEAv6X3suQmuEI7zhJfj4+7Vw7VmK85vFw1IjARNf/FARmD9vWotLOrVERp0oXN/tKvS7+lq0bpyC0JhgnNV3BDYcK8Wi795Fn4sao1aYBTVqxqNJ296YeNfzOLR1AZ68azTCA+uh9TnXY/GhI9JmBex7FqBzu2zpJwVD7nkGTkc5lv7wKTpkxyNKfsfWqJOIs7pcib4jb8GHn36F5Qvnol3jdGSKDX17dMGAa69CWmZDWOIaYPBdj+FouQuO4wW4rn1DJARZMOrOZ1EgttN7l/NQ4amER/rA0S1466HbEB8Vh+TM1lh51Ks8pBlSAuV74CnaLe3sg+34YRwuLMV2mbJCTqa9FLM/eRspMSFonlZf+r8avbpdjuTYuqgVb8V9b3+Jw25gz8pZOKdxoiKEL+h6GUYOuAZntWyBmrUa4vzuI7D2oEOR0E7F6/gu2j8c/uSUJrR4JGFGso6fqUgc1qpVC1999VUVoaWJMBN/X/gTlCRR6fHP68aQCSkp8owIDVXXuG7duvj444+V/slkJfNIsBIs02EedFgKTc7qcorul2kSqexT6/HIcoZ14Lri+goODq6yhbGA6aWrCWKuORK5JIhpB+MQ+5Ow+oV5bJPCMuYVFBSokBEkwEkCk/wl0cwjPYVJEHMeeM40iWGmp02bhocffhiPPvooli9frjyo6VlNXcYaZsgLHe7Cf5xMq7mRoz7n0YQJEyZMmPhvYJLCJkycIkxS+IR0vmlKtTYob36+0Ne6CRMmTJj4w0FOQItfklSCkSU/GTbBy1gKNsB+HMtnTkObtNpIirTgvcnPotu1V8ESnYZ+w27C7mUzcGG7HFhqJmPCc5PhgAd7tq3BC4/di5eeeFS53JYeKcBbkx5FYHgA4jtcgukrNgLO/Sjb/BNS40NRKz4Zr3+yGjYaUL4dz90zEpGBCchqcRmWFpSiGE7Ydi3AxXlZ0q8V+fc+D7hLsWTG+2hhrYmakUG49Kq+OFIBuGQgFaVl2LByER66+2a8+9YrgKMM5Qd3Y8KYsbBEJaJ1197YfaQEFYVHcVXrLCQEWzDaRwo7PMY8qNAO/Fm8G49PGIq4sGi0P687dkv7BVRwFuPA+vl48qGJePCuCXj83ltx7/2P4pbnPsWCzdKSrRA/fvwqXnj4AUx7/304igtwdM9uXN/9GgSH1kbXEbdjT7lD5vZDJIZYkNAgDZNefxPH92/BxhWLcfvdT+HBZ6dgzX6PioJsJ+lEz2XfVfonw5+40iQXjyTJoqOj1WcqEnXx8fH48ccf/6Ov9pv4e0BfJ15jkrEESdOlS5ciISFBkbAkZkkKT506teqlc4QmNfU5j8xjaJFfI4IpJGN1XGKdp9O6Dttgmi+EY/9aaAfJYa43njOEA/MY4qJz587qc/0333yjCGIStVyHug+2SU9e9s/jvHnz8Mgjj+CFF15QnsIkgek1TFKY4SRIFJMA3r17d1UoCX9yeO/evdizZ4/SI3nN+br66qtVaInmzZvj/vvvx4oVK6q9pI/iP1YNbSPFhAkTJkyY+P9gksImTJwiTFK4ulx2+5e/iDN894tfw+kyPXxMmDBh4g8HeQAtfskTWfJTk8JegxReNnMaWqfVQWJ0AL79/kt8v3Ae6jTIQFpKGl566Fa0bdUUllgrbnz+bXi9DKtwBJ7SQhzesw+rlq/DO6+/iZ6Xno2wqBBENb8A36zcChzfjoNLv0BKnTDE1m2AJ96cgxJyniWb8MoDoxBhiUXTNj2wXkwgKVq+bT4uakVP4SwMvutZwFGIdd9/gFbWWoiOCMXdT7+pPGptdmmEXs7lBag4dlCRKYsXLsCkR+5BlwvOhaVmfWR06IIte4+i5Mhh9OrYHElhQRhz59M4INVcMnzOgyKFScIW78bTt45CZEAwcttfjPXHxUQp8hTtw8cvPYKIYAtC5Hc84y0HiI6lXlu8+vl8sU+sdhxF2VGxYcd2LJo7C/feegvOapGLoJBYnHXNKByTjpbN/BBtMmMREBaK7KbNMbxfL9x/+0TMWbgOOwqAg3IZGGbCrQgcEjs8/rPhT1bpNI+8lq1bt1Zf6w8PD0fTpk2xZMmSqnJNgpn4+4LXieLvWUvCkqEbSAprT12Swl988YW6pvR2pQ49cw8fPqzi/PLlbXwZHdP0kmU529Rt6zr0qKUuvXSpy/pMHzt2TJWTtGUfrEeyln9soIcw7fAnh5nPNG3zJ4kZ8uKCCy7AxIkT8eGHH6o1yv7KyvidCWN89A6+8sorERUVpdYviWTmae9geg37ew8zpjBJYe0pzCOJZ+Zr3YULFyIrK0uR1rQlIiJCeTJ/9913alyEvh945Dhpiz94fnKeCRMmTJgwcTJMUtiEiVOESQr/UlSc4eGvVWuv312TsWX3EV9PJkyYMGHiDwE5AC1+yRNZ8lO9aM5HCjuKsHTm58izxqNOTDC+mPU9Ch02DOzXCzWDLDinRUMk1GsAS61s3P7a+1KvABV7V+LdV17GxRdciqbN2yI9zYqc+jURGByAkJzzMH35dmn3CA4u+QpJcSGolWTFM+8tAF//huKNePX+4Yi0RCHv7Ksx70C5CtdQvm0Rzs/NgaVOEwy46xmgaC+2fDMZ7VLjEVsjDh/OXY/DoscXc8F5HMe2rcVT992Fiy++HM2a5yIjKQZ1akXAEl4LjTt1xbZ9BSg6dBDXdspVMYfH3fUUCqSqQbtWqtjC8Niln1347NUnERsWgfrpLTB9xR4VIgO2fZj16WvIbZEHa0o6shNiEBQYAEtKW7z21WKgtAhHNi7DjeOGodN5HdCkURbSk5NQJyoMwWE10aHHOBSSvy7ajjefmYiMxhlISE5GbEgIaoRGIDWrJa4aMA5r9pcpUtylDDOu0D8d/uSuJq145Nf0Z82aheuvvx7du3fH66+/XkUEanLPxN8XvE76eqmwBr5zXjd6zCYmJlYjhd977z2lw/JDhw7h1VdfxZgxY5Cfn48hQ4Zg/PjxGDp0qPLApYct9XSbJEZJvL744osYOXIkRowYoY7jxo3DsGHD8NRTT2H//v1V7VPogUuClQQwyVZ/MphpTcD6E8P6SMI3KSkJ7du3V3GASfySICYBTQKXZLAe1+TJkxUhTA9hkr/0GOY5CV/OA0lg/UI6TQyTENY69BjmH0P4Yr6cnBzExMQoOxl3+Nprr1VzRXAO9JxoORn+Zb9WbsKECRMmTJiksAkTpwiTFP5tuXDsu9XaPGfQ0/h+0c++3kyYMGHCxP8c3Pdr8UueyJKfihQmY2lXHq9Lvv8SudYE1I4Jw+c/zkGxx40fvv4ADROjVDzfwLBYWGrl4KYXXhf9vfhp6guoExGJurUb4IaBI/DRx1Pw4mP3IDo6EontrsBn8+U5bz+GfUu/Q3J8FKLrJOHBl7+C9AaUb8Eztw9AVEAE8s7qjmWHHcpT1rV3HTo1Y5iKhhh85zOA7Qh2/PgxWqUloEZsPN6dtQbqz4peByoOShv33ojoYAviktIwcvxNmPHZZNw1cTQskbXR4bLrsGN/IY7u348rO+aidkggJtz1hM8jF/B4Pb4Xu8kc2A5h/dxvkNe0KQLD49BzxB3YcaRE7D+i+tm5YxfWr9uAT99+CdFRMh8Nz8OrXyxA0f5dGHl9d0RGBCM5rQHuuut2zPz2K/TvdTVCwmri4t4Tcahc+vCI1fbdWLxiKV57azKuvbwrGmdkIDAiBkG1GuDRVz9TJLRXXSB6VxpX6Z8MElka/kQV80l0HTx4UJFtJBYZGsCf+DLx9wWvjyaFeSQ0cUlyND09vYqAJdlJr1eGXqDX7bPPPouaNWuqcn9ylmQo82+++WYVOkF7ydKrmDF4GWJE6+k6rJ+cnKw+l+u1Rnvorazb9m+fwrTOo9BGhm7wL9NCT/batWsjNzcXt912myJvW7VqpXRpzyuvvFJF8JL01SQwCWHmcS7oGUyPYOYxdrAmj0kQU4f1mcf4xvwjSYMGDVRMZpLmmuzmXPAPKZw//UK634J5/5gwYcKEid+CSQqbMHGKMEnhfy+db5parV3Ka58t8PVowoQJEyb+p1Dkok/8kiey5GcVKewAHKVY/P3XaGmth1oxkZg2a57y6K0o2Iq7RvVBbEAQLIE1YYlvhLFPvgBb0WY8dnM/1JT8q3tcj4079mP/kSN46Yn7ERIUiNgmF+LLBVsAWzl2LpuNunFhSEyx4pm3p6NMukTJFrz88FjUiohB4xbn4scN+3CkwoWfPnoTTevXg6VmEwy79Umg/BCWfTsZjTLrITahPqb8sBYVNN9WBvfhbbj28nMQFhWIobfdhYOlZSje8zPGDugNS2hNtDynK7btOYrCQ0dwxTntUCc8FGMmPogijwyZbcgcVJHCzmMo3L4WE0aNQHBEDVgiauPiHtfKnMzAytnfY/GiuXjv3TfRuWM7BAaGIyrjbLz55Tzs3bEWHZqnIULGcc/9j6CkrAjr163EJRecj+CQGFx83SgUOoGygi1YteBrrF2/FQWF5XCVFWL96oXIadkEIXUaYNzdr+O4YsvFokrFIvPkH43fIoU1caVJYMKf1NNEo4m/L/yvoT5nmkT/TTfdpMhaxuzt16+f8rQlsclQDyQ7/YlXTciSgGX6/PPPV20QbI/etAMGDFC6JHDpyavJW4YeoVxxxRWKNKUNXDsM5cByEsMUTQBT2IYW/3wK7fCvo9tgeAmSwyS72R/zSQq//PLLivQlsUsh0UtSmKQvhWnaQkKYHsI8Up9kMIliXUeX0cOZL5yj5/z8+fPVPPAFePSUnjJlCj799FMVL5nksCbhTZgwYcKEif8UJilswsQpwiSF/3+57PavcPbg56u1f8cLX8LmIENgwoQJEyb+Z9Ds7wmu7aQs+cmYwjqEhKMMC2ZOR3NrfcRGR+KTb2cpj16P7TCWz/oCHRo1ld9xUbDEpuO2F16Fx3kAT989CnXDItAkszmeeflNPPHcc2jVKA2hQYGo0/BszFqxB3B6sWfDaiQnxiKyRgyGjL0TM3+cD2fRdsz++h3ERcUgLCoefUZNxBvvfoTuHdsghgR0VDqG3vyw8mBeOmMKGmU0QESNWvjsx1UGKexxoHT/Zgzq3Q1R0cHIzM3Dq++8i0fuHI+GqYkIjKyNFh27YPeBYzheUIjO7VshLjwUo2++R9X3qImohMMlv388Mn5PqfR1HIvm/ohuPa5CaK16CI6MRZj8Xo8JtCAs2IIgOdaRMTRIzUbP/NuxfNsh7NuzFe1aNUJEZCS69rgC7374PsaMHYn42BgEh0ThwqvyUSATOfX9F5EcH4KcnMbyOeERfPbhu3jmyYdRI6EW6jdqgVc+/MnwoCZdXUk6/p9P6PiTVpr81dBl+uhPMp6sa+LvCf9rRzKW5xTG+33jjTfw2muvKUKTXuDUYVzgp59+WpHFsbGxKn4uSV6GTWCacX1vueUW5Q1LkPgkKUpPYcYpJnFMPQrTrEui9uGHH67ynmX/a9asqUb6kuyl6HMtJHeZz6N/PvMYj7hGjRrKa5dE9fDhw5UdF198seo7MzMT77//viJ2SfyS3CWxS69fCvNIADOfae1JzHOWkwgmMcyjLmO+9hzW3sQkge+++25FTnPc7J+kMQljHbrjt6Cvzz8V5nPChAkTJv47mKSwCROnCJMU/s+k+73f/yLO8A23v4Wfdxqx0UyYMGHCxP8AivT0E7+kIV643Q5J0DPVDTgrMG/mN+iY2xTpKcn49qe5qFCxDBxwFh/FXSNHo37dFERYm+Gel16Du7IYqxZ8i+u6XIrkWkmoGZ+MxNQ0DOpzDRrnZCO5UXt8/M1ikHegp+7ggdejXv26iK+bjPbtO2DnlhU4vH8zxo4eg3rJ6aidkIK01HRc3+0yZKSkISq1Gcbc9Rhgt2HZt1/hrKZNkZaSjs9mLVDhHzxwo9JZjO+mvouL2rdG3drxSKhbF40bpeKaXlciydoILTtchDUbt+PwwUPoedlFSK1XF7fe/SBKXfQ49U0K4SYpXK7EXnYcm7duw6gJd6B9p/NRPyEW9WrHIKlWvMxLJnr1uh4vvzEZ2w8dVyRuSakTL774EnLzGiMuPgbx9eujRatcXN71fCTWS0aHiwZgXyFwvGAXXnruHrRt2xx14+ugfp0EJNZNRLN2rfGI1N90oFhmWkCehmS9vmj/YPiTUicTOCT8+GIxvsyLJCDPtYcw0yb+OeA64LXldaXnL+MD0/uXcXP79OmD6667TqUZH5iEKPW4XnikkCB9/PHHVZ1evXqhd+/euOGGG1RdhqMg8UywDvuih64mff3JXv9zTQiTbNVpegSTrCYRfOGFF6pQFoyHTMKWoIcu4wjTBoaTYD8sIxmsCWFNEjP9e4VksI45vHz5ctUXPZW1hzNJdMZV5gv69FzpsfOc4HyTUCd0OeWfAo5Fh5zRosfHI8/94T/2f9I8mDBhwsR/A5MUNmHiFGGSwv+dnBxnuOOAJ/Hdgg0+C0yYMGHCxCmB+1p/8UGferz03CPJRlJYxOPC0X178MFbr+H9yW9h76HDcEqpaMkPF7YuXYopk9/HU299gPmbt0mZXfJLsWPFCkx+4RU8/9LrmDb9Gxw5sAvfffs1nn3lHSxesxP8HghfnrZ712Z88N7rmPzmG3j/nXdQWHBA7HDi8NEj+OIL0X/6OXz12Rc4umcPPpfj8299jO/mLYfX6caezZsx5Z138dYbb2HH/kMolQadXmnZ64C3vAiLf5yJN19+Ea+9PAk//DAdhwuOYPKH0/DSGx9g9/6jiqz55otP8OZrL2P2gsUod5FQ8k0EhWQjQ2gwtnKlEy6XEzanB2vWbcTHH72PSc8+hVefo31fYvvug2pMrE4ht3ysqASzZn2D5yY9iTffexdLV63AoYM78PGUqXhi0lTs45vtSK5XHMHihbNlDl7H6y+9iLfeegMz5v+EfSUlynuZ8+11Susu0sM07J8Nf2LGn4ghmUPyi56XJLymT59e5U1qEjb/DPDaa8KS8CcvGTOYXsMkNRlSgn8cKCwsrPL21Xr+a4IxiVmPYSKoz1jDJD01Ccr+6DnLIz2FSfSeLJoQ9ieD6RFMIthqteKiiy7CxIkT8e677ypyV/dP6CNtpIcvSVuS1TxSdFgIksPa6/f3iiaFSS7zyHjDJMHT0tJU+AoSw6mpqfIs/KFqbrSntvYe9vec1nPPPD2O0x0ch/+a0uPikXPhf845oGg9XWbChAkTZxpMUtiEiVOESQr/99Ll5qlo3++Jav29PHWezwoTJkyYMPG7wX2tv/hQlaU2viKVXhhhJDxy9MBeXKQIYqcIKWMSoKqCy6m8do853MpT1waSCSSGJd/NzTdQ4TRqVFYadUulyCb5ZYrjtKPs+D7pg+QrX/Amm3PJ5tEr53CLHWSPeeR/SZLOIVHK6tR1e+SnxyinOGw21Zehxa+UiybHI32SrK1gV5Ir23z5KXZJK2yTorK0MJYEx+EVUe2J8CjZdJbm1MAr7Usee7L7+mc5td1M+ObTKQUOr/QlbTGrWGxgHWWDmmv5T0LGWybDLYZdWiAhTOvV9DGURSVHzA7+2SARo6HJGOYxvMBVV12lvg7POLLnnHOO+ho9STgSPf71TJy+4HXUpC2PJC/1OjCeT78E8zWpx/r+aYJHkpua/KSwbU14UriW/OMCk/ilFzDT/h7BfKkbieA77rgDX375pSJ26bWu22Ff7IfwzyMprV8exzp8gZz2FCYhTA/ik4ne/0bYFtsnKcw0YzIvXboUL7zwAi699FJFCF922WVYtGiRmh8KCfIDBw5Ui61M0F49d8TJ56creM05Rh51muP2h75mGiefmzBhwsSZBpMUNmHiFGGSwr9PLrvja5w9+IVqfd723Oco427ehAkTJkz8PnBv6y8+VD+thMftgldEsbDcEFMkTU9cg7SVU/IeJD+8bkWCksRk6IQKO0MuOEFPYnKYLqkgLcJT6ZBTpgxCl3VICqOyTPTkKG3ZnF7VPnuxsx2SwVKhrKzcsM8jG3Q5sC++do1tVJJUtUsOCQ1lJjfxtNuBSleJ1KFVhh2GLcosRXAz3IRXfnr5k6SHLqwSacvtVGSu6o1xlmW8Ht+0qHPpyylpF/VJYCty25gjSJuVck6CmL14GJpD0rSbLVKHU6xYZjfnolTyyuWfS42PpDCbJCGvyGll1D8b/uSTJmRI3pBIY7xWTdrVqVMH3333XTU9E6c39DUkYecPXn+SwyRxT14fmrBk2r+ezjsZJ+vp82XLllV5BHN9UUgS69AQLVu2VHF66YFLIlV7GPu34Q/m0W56KpN8pYcwXwpHL14SwvTs1TGA6WHM/F8je/9TYTtr166tdk5ymCTxwoULMXPmTMyePVvl7d+/X/VNwnjw4MEqvMWhQ4eqCHhCzx/lt+bydAOvkfYe918zepyEHq9Os1zrmDBhwsSZCJMUNmHiFGGSwr9fut/7A84b8Xq1fq+79U2s337AZ5EJEyZMmPivwH2tv5wEvfH1eNzwkuTgKb1wJd/uoP8q/WoF3DMzQe/WSoMEtYmO4csqhR5JiT6ZT5dTNtnqnwteEsNsS+o6pZLLSf/iCkPfwz6MZt1S0eN1wGUjCau7Y4kL7kqvIp8NQpg/aB97Nghr6nr4FW4bSWXR9LqUrl10SQpzTF6pw3+khFmLozKIZFb2CRviuQIzpDKJWcWG05eZDUlSDixVqvQk9tAbkX0wwyVTVCZj5RxRWeySFM1wyKlLdOwOKttESuF2Fsv4nGoefT7ORj1eg6pO/tnQhAyh1yPJNRJd+kVgPDJeKj01qUOCTntnmjg9wevI66yhSVbm63WgwXP/dXIyacm0/3pguSb3dJqgHvvkOT2Fua7oEcy1xbAL7dq1Q35+Pr7++msVskKHV9Dt00vdH9omHtku9Riygi/Q6969u/Iu5kvgNHFLwlaTw9pr+PcK69PjmAQz22QePYf1OY+6nPl84V2jRo0UCV6rVi1cffXVapwMq0O7OSd6nDye7uA1YbiRWbNm4aOPPlIkPK8pSWJeR//1osfLo7+YMGHCxJkIkxQ2YeIUYZLCpy4XjnuvWt+U6fPW+6wyYcKECRP/Mbiv9ZeToEkNolLFSAA8bo86uuWcZKyibRzyk7EYGCLCl6eITo9b9FzwOkn0UkcOTvKZpF1d8FRWyAa8QtWhKN9iyTPCNEhSunI6vahwFEs5PfGkrohB3rJ3BxwumyJ4SccwtIJBXjulruQ7HUa7KpyE5NPD1uVUoR3Ull8Kqe8So0i2MqyDXRG1Ir7QEIp8pTKPcs4s0tqK8HUzXAR7JsHt5fB95K9AkdNikAyi0i32Og0KneKRMpuDXzGXHkWc9LqWeuSDGaUCHs7BMUmUS7duNVKDFDbqKyU5KGP+4fAnX/R6JMFGYkt7CfMYHx+vvDapr0k+E6c/9PXnNaXw2vuTsRRNyFZ7Xkk+z7WOJpiZ1ke9TrQO9ZnHI9dXeno6WrdujSFDhmDatGnqhYZaX5Ojug8N/zwtPNc2MixEjx491JpNSkpSf8jQJLAOGUGylt7D/iTv7xWOg0KSm+c6TAU97fWRhChfhtemTRtERkaqe4pkOMf+wQcfqHFxDJrYJvTxdMbBgwfVteVY8/LyVCzoL774Qs0XCWKGAfEnwfX602LChAkTZyJMUtiEiVOESQr/b6TLzZ+gw0lxhid9PMdnmQkTJkyY+I/Ava6//BsozynR8bi9iu/klph+vWprTJdeh+ERS4rU4a0kbSrnLCWZ64RTNtiK3ZQCyYFDTiphg5cEKCt6PdJuubRfDpfDIIXpMGzYxejELoN7ljMHXx6naFKbbNQdqk+DIpZyr1RUHrpyRiJYbPEo29mH9GtzKE5Vka+qbRmPol7dUp/EMMlbtiZ1OAiKMQzpy6jnJdGrXjinxQWGm1CkrqgahLDRt+qXxLHoMOkQW9xkxqVRr5d9keh1qi5KxGRGyFDex94SqXMczsoKFTqCFpG0VqQwY0jYOSbJ/IfDn3wiMUWQnCFxo7/SzyO9G0nosIx1/gmk1ZkOXkP13PGl9TXVaU3qajCPa0SLPtfguX97mvDjUevxnEIC+MMPP1Skqc73J5b9+9Zpne/fp3+a/SxZskSRr1yzdevWxSuvvKLIYBK0JId1OImTyd3fI7xHeNQkM72C2Q+PmiTWpDG9lJ977jm1T2EoFr6Mjsdbbrmlauz+8Zz9x3U6gmNgnOXRo0crj3B6SFMYkubcc89V4/7kk09UHGaSxwwxwTlgPeJ0H78JEyZM/F6YpLAJE6cIkxT+30lXxhkeMqmaHbc8PQ3FZSQKTJgw8ceAGyKKseH2JY2jgs7gJpkEll+hbzNlnIuQODPx18J3KfQl+jXozW/VV6NF1+Wir65Bwqrr7SgDGJ5BykibKGKTR5cDHq8RHkHRJvwhUiEKRgvyvPZWiEhFEbejRPKccPleSqdUROwq5IMR59creuolbWRpK22o9JBeBsQC1Y+x5qQTEqtOsZAvw1PsMvNEpG1quDyVRkxf6YjdO6SI1KxbEdXFki+2M6YFlf3WOqdDcn2kssyJm2EpZAxSyBliT/Qa1l7Cyg6lY1f9sK5qii/ukzqaFGa+TbKoY3hVc0QVomGEu2DbjHrsZbtUUnaJ/G6wsrJEHY1/J3JPlir8SgFb0FKlq+bMOOPPX5b//6KbUKc8qgbETpmfbZs3IzQwBMEBwQiQz1W1a9fCdzO/hVvmR4UC0Z58qrJP1IErhPPOBo18NisrTgnLVE5Vx4bw4CtRwnMFrVMFnWHMqNGf0bYWXnEeq1U748DRcybV3eSbkRMzo0rlhy9ajbolXE4988bdwKS+TOpOkgWiNQzhOuAdSfKX3wDgM8TXLrslpAG3fmAxX+nzfpYjs6nHpeRrWBGikiEtSdqox760qr+wGr9AoapKPbvNhmVLFiOvRXOEBgehbnw8Jk2apIhnErQ6tIMmcnk8VSHZy7Z4pDDOsCaHWc7+dF8kpX/66SfceOON6NKli3oR3dtvv10Vd5ehJEik8iWP/vGG9VHj5HN/sOzX9P9dHX/8mp5/nn9b/65NljGW8vDhw6v+uKTD0fCcLxaMi4tT+zZ6EDO8xvLly9XYdQzif4d/17cJEyZMnM4wSWETJk4RJin8v5Xu9/2A80a+Uc2Wa255HWu37PdZacKEif8lSEhx485NttslG3PZ+TKsqnII5WbMV+al9ySJLkXGGbtpg6SRjRKJuUoPPC6WmRun0xe8rnLx3aUo3bcZx3Zuxt6de7FnzyHs2blH0ruxe/debN97EFsPFaNYLj+JVDrqMXYuyRJFCJNQZVOS7ygrUgmuFMbdNdxygeOSVH/u80q5/agiXIwXrtlQKeuIFE6x2qNLTVl7ivLTjJKbnsQVUke0fGEsGL5B09peMURxxbSNhDCOyXoukL4kzUC/tLOyHE57MQ7tPoRd2wtQJM2US1dOxosgeVRZKku6QlFVZaJPW128KegF7SmXYR4XHR8NTo5YdJzsV2z0SuekmVQ3PjF+Upvt8746uezE4feDDXCmDSKOdJpBXhq9+gstUWAVnviLgK2QuKaoLBIiWnxtsozzw3RVOyd3cpKQd6H4mvHVkwynDYd27UJ6YipCLaEIDghC/eQk/DBnptjigtPLsCGirPuhMC3gSJ3yT/2pwldG+1nDrmobc6IIfa4/2iYHquox8k8S6orp9nmkVGUYJCeJQ/4jme8QsfvEJkKvb+Oqn6nQM0qy1vD896pwKZwh/jOmXj0CRNX4g4CIyuVzwvgjFNcGc/RvJi2GOkv4u8iIVU4N5vP+Y7sGccdnhTr4KvHuPSxyTEyTjBMXXZWTCHZLW67KCvk9x+tstMXwL1zf/K3GHtlKheTxnPaoP2jJs2rFogXomNcS4YEWJCUk4LXXXlNeuyRk/clcTdr+UUIymF7Juh8SxiSLaQc9l+fOnate3MjyPXv2yLN8twolwVjIjKs8Y8YMHDlyRHk/+4fu4JzqPyAyzXxNkDLNzwHa45bnFIYD0X/EYb6/6Dx91Hr0yNY62tNbp3WZ1iX87SB4TlKYnsIkgbWnMNOaGNZCsjhBrhU9iKlPgpjzR29yEsRsV4+FaYr2Hj85j+cEz02YMGHidIRJCpswcYowSeE/Ri4a9341eyhfzl7rs9SECRP/K3Aj43aT9JXNluxpnBWy8eHeR/Y5Xo8bLrdNsrnBp1ckaRZu/owNGmPRVnq8cDnsqJQ2/Hb5Jk5LyLXzulB0eBcevSMfF7ZrhFbNWqBDu7PRsV1btGzWFLm5rZF31kW44IphWL2tUHEuJEEZ+YB8rSLe6EkrJ7aSUiOTa0yE/0joEvSZLeH+3nlM9EsVqczqcNKj16kImDLVuAseRwlcag1KhtRxlJfJwQa7o1DO7SIkDcUG9ksaR9oi98s4w85K9kQCl5690ir7ET2nowDLF8/BZed3xZXdB2DWgk2KiFY2eKRNT7mYWqZIIeZLbZWutBdJWYkoSo60wyHQG5hhMFiXvMBfRw6wc5l/ir6JjVlXKX+pspAJfwVfAcdl+G4bVKgq5P2t7nGSaEYZ6T/2pMCiqm6Nhn1XvZr4qylVtuapQMmxI7jjltuQk5GD7Kws9Ol3PQ4c2SO6Drm+JBhplapwQuQH841AIXL9jQaVfYzXzHjScrUlk+tC6nM9+nR4MFYMa5K0ZI7Av/0qOXHCn9TkGGiRFp6z7MyGnh29Ovg7g0deEWMa1RLiZOlFoH7wPpVrxKSI/xwrNdZTDYioHJLCFP5+khxRVtycbrOa8O49LHXl2eJbCmKWuvj8A5JdniF2ucO5TpzSkG5GC59NJIj1H77scsI++YO//w7u3YPR+UOQWKcWWrZooV50RiJWewmTnKXnMI8nE7n/a2F/7JdpEsQ817GGea7toM6aNWtw0UUXKZKUXrUZGRm4+eabsWLFCuU9zJfV8UghiXzo0KFqZDGPJH95pMfxgQMHsG/fPlWPRwrzjh8/ruoZnzX4+UHmT4RkL9skkcs+du3apY6sp8lptu1PLpOE5Yv9fq0vCsc1cODAaoSwDkfDo/Ye1uQwhfGHSRAzBvHQoUMVUc7rV1BQoMbFMfo/02kTbfMfC/M0aWzChAkTpxtMUtiEiVOESQr/cdLllk/Rof+T1ex67sPZPmtN/DPBXZZsODwuuByahuFm3wGXh96ChhcPN4hu2aHRG1DVUVty2eV5KZKkmw83eJUOHHdwuwcUyJ7zut6bUTtyObIbLMWqdYb3j9r4kRmocv8Rkep2m5tck2GSrz/VlYiNroEqT7rz6WuRvYFsgLhZ8MqpsSl2ucuUeLykukio0khjg+N08uv43EAb1ILxtXg3nC56QdEAFxxObpiZJknrQI8e3dWGp0mTJli2fJkidZ0uuxLaShscdtogvdAeaVLxRL5zHmk3v77Lo85TImmPjNXYiHG+nXB7K+AQ+xV1UumWTTE3eIa+i2yYqiebIz8vHhOnIeQ6VjorUbB3O/r0aI1I+d0WEigSEobwMAsiwmVjHRqOyNh0ZDTriVkL9koVr9wrBbLmZF04jPtCiYekqQ02u2yeZU3ZK0jKSYLhIWQdl8lSsXFNymL1upwoKpf7Q61xkq6y3kSVt5xie+RO9aBU8hifWE4l34g/LPeFS46y/h2yIFlbLX75XyR6pazPZwi93F2S4SLtJ33bj8PrPo5Z33yF2uFJSEvOxfcL1uKYnV5fok/ymO2IvTZ57vCO5B1YofqWtuwFolMEr71MkUXlvJekiM+l34ImD/5QsHnlCesTGqTZNH3D/lvhXHMk9L4k0cp/ho+nQf0awucw8w0xdFlHlfsIafrn0p/bJmKXNOlzarIHCrVJxjK8BzWVp6ZIcXkRfpwzC9/98A127t0mLXG9SAuynjRFzTVniGGrXFgRXiX+vjD651oiUcyXF9JTlc9hYy1Qn3VZm5ZT09Cl1ZwFhZOnRYvRvCF62FqYV9XAmYnfXmoyOZx73/1ZNYdMax2m9TzqfIJH5rHM+DUoefztzdA0xUambpNlWuTcy4ePfA7gH4bc5aJPHplV2Y6Ucx3x6ldIJulrZvO543DLGlLhYCSHIWWY5j3FLC4zX/tOh6ws+X2/fNVKvPDiJEyZOlURsoz3S0L2j/YOPll0nxSSv5qIZjgJEsIkTbVty5Ytw4gRI1C7dm15xocowjQiIgLNmjVD586dccUVV6g9zoUXXqi8iQcNGoR58+ahvJyfqGRK5FqS7OUL3BiSgvqsR7n44otVvSuvvFLFNS4tLVWfd/gMJMlKWbVqleq/W7duqs4ll1yC888/Xx0Z7oKxfzUhrIlYevK+8MILqs7ll1+ujuyH9Xv27ImHHnoIgwcPriKCdfiIkz2Gma/JYZ1HHc4DYxC3bNkS48ePVy8N5NwVFhaql9T5E8H6ec48jseECRMmTleYpLAJE6cIkxT+Y6XrndPR6aQ4wzc++SmOldB3y8Q/D/Ihm95+jBVIzzB+fdtVCpcc3V4nKuw29RVz7v+4t6Rjhkc2ah6PSz6gO2GvkE2fywtHGdcHN/nGC6ts0ixf+DT5HRfqRk/FiAHHcFw2hyQkyJn4eFi4yr2KJHV76J1CoTcLNyM8ilmiS3E6+fVB6skes7QcjJfqkTq6XPFJtMBJopa2k9SwSdomG02P0lf2U89Xx+EkeUy9CjhkzNyeutVXpsUm2VAbRxdsjjK8/8FkBIdY0Pv6a2Czl8PuIEEm/UpD7NfuYJiHStjtLtms0DbJs3NDxg2MKPj6pA0UktgOJ71y2IhRboxB5lbmXb2qiy8Wc8sci65T5oOb4SoymW1UyCQybeL0BReFLMrSwzvQu1tTxARakGnNlo16V5zTqQPOv6Ajzr3wArRsdzFuGPYvrN9KqlTuyYoDKDl2FG5ZE+RgeE85Sg+jouSI3HeyVrhOZN14y0tkHRbDVemAQ+6D0go7ykq40ebdSpJY/RQ7HKLnVvefvaxI1tZxlJQeQYXcT2VyQ5O0cbsKJHEY3mNH4CwpU968pU6544uLYCsvo2+wInKNGMF2OZF25V4udlSgzFUGR/lRfPvZJ0iIro+E2lmYPmep4ooMb1J5Mtj4PLGh8PhhsUsFqlA2Kr9hx1Gg6BBcpaXK25kEdJlUtvEPMUrn1/GnkMKca39hn+pGlYfAr4h6rvj+qQqKvGOZbuDfwdehrqMeauyPTy/SuQbVyxAOJFxVn+rBYvRKkph6JOWYovAfKV2nW559skbsZXIVjeCzUk/b5CfM0/2qvn157Ev16etX6bJckj4wSUuMcuMPc0xpYUmVOhNalaKbViyiiCYK/do/4yBjV0uc83SyMF+tK/4ilYnS18Jfv9rEM8E7Tm4stbYkqeebRbyv1R1OUtj4/afaUmUU+f0kadWM1HPJR4O1c49j82zg2Hppea8II0rwxhYdLh3GIGcXFCOGONecKLjlw4KrXI7SuVZi96JCs2gSLThQcBTbduxQRKwOHUHi8+QwEn+kkOzVxLC/xzBt0nmaHGZICZK8DJ9AIpiEMCU2NraKVCVRyjT3OYzJS9KWL2nTnrGMQ/zDDz+gYcOGSp9CYpX12BbP69WrhylTpsjz/AShSg/h/v37q3J/UpZ1eGRfJHq1hzH7IynLF08mJiYqfdpFXU3u8pwvpzz77LNVmyyjFzCPkZGR1Ujgk4U6PPqXUz8qKgrNmzdXL6mbPn26mkd6D5Og9o/BbMKECROnM0xS2ISJU4RJCv8Jct+sX8QZvurGV7Fqk3yqN/EPA3dZDtkz0hPFJpuAY9i1ezOWLluIVWtWY/3GTdh7oEARw/J5XD6cG0RnSWm5bLy2Y83qVVi3ah02rFmH4qIj0oYLNmclSmXHZpc6P/1UBmvdp3HrmE1YsmILdh5Yi7JSOxz0HvJt6kmw/rxlHVauWYaVq5djxaoV2Ld/v/KCVHtNnxQVF2PDzxuwZt0qbNy0Dus2rsTRwsOKn6BtimyW9BHZKK5euxqLly7G8pUrsXnLdpSW8euItJ+ev7LPFBv37D2gdJatWogly+fi0NH9sDEsg/RFHW4+Dx89gk1bN2DqZ+8jtnYERo0bioJjh+GWTqnncHpkc+vG8eJCrF2/RmxfLvO2Cj9v3oiSslLRo28cqd5KVNgrsO/APlW2bMVS0VuBXXt2KRKZ+2ESXOyzuLQEO3btlPlYi8XLVmL+wuUoLKww9sfcCVNJpIJ/qGHaxGkMWWieEpQf3YgBV7VEfIQF9975BOy8zlzPsrZIm5E8LZFz/rHFaduP6Z+8gk/feReL5qyALG2U2Ssx76fp+PLLKZjyzU8oLJH78OA+zJjyLj6e8gHWb9mIJUsX4u233sSUKZ9jzfqtOFpOn1LpRu5T/mXGXnZI7uM5+Pj9lzH1w7fx2dRPMHf+auwrAsrVmtuP3Rtm4tsP38WXn3yFDXuOYN6K1fjsvTfw+acfYe62XTgqah5+48AmN7hs5Ldt2ITXP5yK96d9jrnff4uvPngfDWolISerBb6Zt0yNq9LhwJE9uzHjmxmY8vEUfPTBO3J/rMFBaYLl9E6sKNiGn8SeKZM/wOqde/Hx93Mw9YuZ+GHWfB/naRAffzbYI6dPi3Fr8m4n+UvCms8wfntBB0zQvr78aWiqSiS9/OVEY4boDk7WIzvme45SzaD4jZ7VA5FsPsupR31Roh7t1gmfFYZDL/V0m7qevy1M63JeHHbob5su45Hn/nX921AivcqDj/PA76ZwllhNV6WqspM/Tq5LBd2+UjpD4T83PuFtoMRXbKxBXizfn1lY6D+XTKtZpxfwMZECERK/1JVCX7uGDh9MJIZLJYvfNCiB01so7ZfIOUUaZJuiVrAZePamg7i60Uo83LsSM54GNk8Hjq+TS3dAdNiFrBV24fK44XSWw0sy2Ct2KOEfJ6Qh/nFCBTA2zOCSK5dTWnFEnjGbt26tiutL8pWxhUnAkqjl+ckk7h8hJC7ZH/vVHsOaGGY58+n9ynANPNIj97HHHlMet4yx27ZtW0WuktwlSaqJUh5J/rK+JkSL5XPQhx9+qLyNSaxSx/8YHh6u2qIHL71ptVctwz507NixikD274NkLPNZzjnTHsb0SH7qqaeUJy/rkAQmecw6Wkj+Wq3Wam3qdplHfbb/W+WaRNb5TJOorlu3rvIefuSRR9QcErTJP2TEX/HMN2HChIn/BUxS2ISJU4RJCv95ctH4D6rZSJn242qf9Sb+GeAGUTZdXm4eyvHll59i4MB+aNuuPVq37Yhzz7sM42+8D5u2HMXxItnHyUbu6FEnXnxxMjp37o727c9BuzZno9ulV+DhB/+FI0eKUFTkQlGxFzt2FWBE/lPIaTARzbNuRruzzse1N3TDB+9PQ6nsPY/uly3o0Up8N/MH9B1wg5S3Q9v27XD2OedhaP4ozJ6zGEUlTmnLiYJj5XjplTfQ5bJuaN/xLLRq2wrnXXQO7nvwQRwtcKDYZ9vWbQdx/wNP4IKLuqJV3lnodE4XXHFlH7z99jQUFLhRKnvNwkIP5s1bi1GjbkX7s87DWeechQsuPl/6HIkZM+eL/dKWSEGBC2++9RG6du+Bth3aIi6+Blq0aoY77roH27bvF7vYZyV27z2ABx5+CGd16oSO55yDcy+4EF0u7Sr2vo7jxeUoPF4ix1IsXrocY8ZPkD47omWrVtLnRbi+T38sX74JBTKnnLPCY3a8/c4U9OzVX/QulPYukXnuidtuexQbN+xD0TE3nSqrNvMeJ5kRE6cvXHIdi1F6cA36dW+JuBALxo66BfsPVODg4WPYe/Ag9hccwa4jx3DEJuvNXonjhzej7xWdUEd0WzfNxeKVm7Bo5c9o2rwZgiMi0bX3EBQcL8OmuV+jtbU2QsIjcPk1vdG6TR4S4+NUHM4LLu6Cz2fNV+EeyLe4K0rxxYevo+v5bVC/bgySZK3XrhEOa1ZjTHz8Axy1y5PCthPvPHMzYuX3b60aCRhy8z3IapmHejWCEFcjBJ36DMbCXQdF0QGUHcPmBQtwVdceCIythxpJaeiQ2xzXXnIREmPikNIgU/qfpyimnZvWY9ywYUiIt6JufH2k1ItFq1Yt8chzH6OggoRRERb8MAVN69ZGzZBIXHrDYNTMbIbE1BzccsudihSmV9tfQRCQpOLtSKKKR4PQJCVMUtgghI0Sg/JkifYR5i2sLNYn/kSnCIdT5YxLRV++v44SdipHZtMOCptUGYy14RAhOSwN6WZUwteOk6FARMr51wXm6YZ4cWg6G6M+jWCa5eyTOjyqMhGdryeCHYk+D76koceEzpQ2SY/Tc9n4Z5DlxhwaPsUU3YWCPqmWeQbDNw8nX54TK4/zy9fyFUs5//grWtWugYhKaC9gCvVYW/LV4qvqxleV16rcJ/rVf6VwksSlghxKtgJPDC1Aj8QduDRqF7pFr8OQnJ/x5DWHMf2BSmz+VHTk46TzgLTLLvV6UnZJwsuHjmTymz78Vo10zuJytxcVlV5s2rcDX8yYjpk/fK/i4q5evVoRs4zFy6MmZP9o0QS0JoZJCvsLdei5vHbtWhU+gh68AwYMUN61PD4on2G6dOmCuLg4JfHx8ahTp47yHk5KSsLVV1+tQinw+UYhOfz9998jNzdXEcPUpy6F9dgGvZDZj34m8vnImMFjxoxROvQkJumq+2Td+vXrq3AVOlQFwb6++eYbpKenqxjA1CPhzD7ZNz2IGVKrffv2VYQvjxQSyBR97l+m0ySL/YlgtpmVlYXLLrsM99xzDz777DN1bekl7P9813PBcZkwYcLE6QiTFDZh4hRhksJ/rlwy8TN06P9UNVuffu9H3whMnP6ohMNmbBQd9gr1whBLAD+ohyIoOE6OlAQMGXofnn1uGl555RvceeeLsklor8oCAmshMKimpGNkc5GNibc8ieeefVf0PsaY0fdKfopIWwRZWssH/xhYAgOQld0Wr7z0NV58fgZefnE62p91MSxBIdJvMAJDokU/UvquhSuvGoxJkz5S8sijryAjs5UqCw2vKXoRUkf0g6Nx112T8Nqr3+KVl7+UTdatiIxkn7EitF3sC0xE8+ZdcNedL2Py2z/gmaenoEvnAVIWr/QCgqUtC/uPRefO/fDipK/x0qRv8PBD7yA5OU/KaFMoQiOipM8wBIfWwugxD4jO13j5pa9w620PIyAoUnTCRdiW2B8Si/i66Xjm2Tfx6msf4Znn3sTlPa4XPZmDgEgEh9VU47AExODii/rg6aem4O23vsPjj7+D5i0vkjZq+0kd2UDVxaCBN+OLabNxrNAGO4Otyh7JQ/dhE6cxSH6UoHjvWgy6ogPigi1oldccfQcNRr9BAzFgaD76DxuNa/qPxHufz0a5ItxKsGfNHJzdpB7iwiwYc+NNGD3xXgREJqJh6wuwfOshuD1OrPvuDVzQpC4Cw2ogtn4j3PfAI3jxuSfQ5dyWco8EoW2Xnli77ziccODw/q0YctXVaJmSjttvvBmvTHoKg/tdjPAaIUho2R3fLtoJ2A7ig2duR2JEmGzmI5Ej9+0TL7+KO8f0QUIdWfdJmbjrtQ9kUZajePNq3NSnLyJkrWe37YJHJr2FJx+4Gy1SEhFtCUR2RmPMXLQMhRVluH1CPupGxaBNXjc8/9xkPP3YzUhJqYWkjHPx4RfLwNi2i36cihZJ0agZGoKw5Ca464X38cZ7U7Fo0RKQK/AnDP5MkL/SPpjacdagfg1S2KCx/FhSZawktQhIa6ikL48q/rwshWn25V/PoHgFvgbYi7ZBlZDtZxwRp9T0GGS0tkZRKb6TwqJCzF2yAD/OX4ADR4rUt0L4jQunlFOPwtoGXUu/YgF/SAHL2J7yTGYejfQNVYUHkCR/u1B8fqrGOAjVEFvQVp3wqCYtzP6qixH44oRQlzOlGjqDYYyfM8lZcshMM14vI0KT5i2XkgpZRXYck1nzefOyCivwGkqa14SrVqdUuRb5YbQtV0rO+XcG42oZ64nLTIWXkX9Ot1xlLmC50K7dwCujj6JnrZ24IdqJ/hGVGBBuQ7+wgxgQvQ03Z+7FM5cfwxf3ebDuM6Bsg9TZLw0Wi02y6N1uucpeaVP6L5NFyW9JcP3w/jp4bD/uuH8C2nVsgSuu6oHly5crcpbELIlYpikM13Ayifu/Fk3+khA+OWwEy/XL5ugdfOuttyoyV5OjJGIZr/fdd9/Fvffei5tuukk+X92J2267Tb2AjmUcA71jKfT6JRFaUVGBb7/9Vu2DWO+uu+5SdViX5wz5QO9g/eI46rM+CVZ6KN99991Kn7okX1lv0qRJystah5zQf2grKSnBRx99pPqgsE/WoX08Mn7x8OHDqwhgffQnfrV3MoXlmghmqAiS1HzhHolgejczNAbtJCFN0AbapD2Eea7H9Vc9902YMGHiVGGSwiZMnCJMUvjPl653foNOQ1+sZu+4x6fi6HFuOUyc9uCOj5s6l1c+lD+O5AY5co/Fygf6JPngbpUP9I2RmtoFWVk9kNeqD3KyuyMkuBGCAjPkA38qLEGJIskICm6CJo17onGjS0TvCiTXOwchAc0RYmmHQEtzaas+QsPrISQ0HS1ze6FhTm80a3oDatfJRWCw9BVUHwGBDaTNdNHNQr2kc6X8akOaXS352ZKfrnQCguohMsoqdRogO6sbGjW8Ck2bXCXpS0UnQ9lN3aDATAQGZCEmOk/6u0J0eopcLW2fJ/nZCA/PRlBIorSXgIiIHMTVbIcWzfqiWeM+aNakN8JCm8o8sL8EBATXQUxNaTM4VTYxXdCqZX/kZF0Nq/UChIVnil0pYqNVjmkiVkRGNkZ2dhexvTuaN++OpKQOCA3NkvFnKF2Og3Ym1j0HLZtfh4z0y9Cw4eWyUZK5Cs4SyYQlwIqwsCw1zxnpHdGlc28sWbxexWE+EcfT3BidtlDxdEkKr0O/bu0QxY10oEXuJxEeg0PVHxECoxLQJ/9WlFTItXaWAEW78N6zdyI+0oLa8bEIr5OM8Hot8ey7MxQBB3cZ9s2fjI7p4QiKqI0b75+EYqnrdZThy3ceR1q9GATVzcHL0+aiXBaTs7wAP8/7Huvn/IBjhw6iqPAAfvj6bUREh8NSvxOee28WYNuLTyfdiXrRUYiOTsTzH05XpFOJ2H5513NhiUvG5WNukb6PY+fCH5BXLx314qx44YNvcUyWaqXtCF5+5B7UCakFa0oTfLtgPjbs3ISs5NpIjquNxx+bjK1bDmHd8pnocflFCIhqiBuG3gObqwgLZ01Be2si4kLDce3o23BQ+lVkJNmo3wAJgz+aNGDrJMsovBONRylz5UzFcfUJPdrIvulblsJKKos0Hakug3ClCotIgJEQJjViEK9GNbZv0M4kT40c1jSIOkNHsbryPGdcabgl18tY73wBHUlD1a1B3BVW4LlnnkDDpllo1KwxJky8FfuPHFcvHWR/Br9LMpgUIF88arwcTpexP+OldqTupGff0EVRHdgX16MmJxnzmMSlYbcoqSC00pq/qDKS6oaeQRBzrBTDDoZDqJTWjJfZSTtnLIwJ59xwBfDqkkZV10aKeHtwGahvA0geZ4o1VMInVb9GqGBc0Op/jfBdEi7fEwSwrz3Woz4Zf70Aec4A41uB14YcQu/oHegX7MZA2QEPFRkZCAwPKsPQoH0YFLUZfWqvxJhmP+NfPQ5jyu2VWDMVKN4gzchN7pGF45S22Y/qX9a12+3AqpWL0a5NMwQFWFCvXiJef/11RcQyPIM/MctQDSeTuP+tkOz9tXwtulx7DJ+sz7AN9BIm8UoPW02UMs2XydFexvEl8Umyk2QuzxnP99+Rn8ynLglfEqjUZR0dE5jnhH4OMp/Eqk6zDuvrl7lRXxPC+qjT7EvrM74vz+lRzLLDhw8rUliTwP7EsD8BrI8MN0EiODs7G127dsWzzz6Ln376ScU81uNgvxr+afZLIZiviWITJkyYON1gksImTJwiTFL4r5PzR71Z3ebxr2D5xt2+0Zg4bcHP3PI5m/FqyR+8+850REVlIiGhA+rXuxhpqVeKXIt06/XISL9ejtchLeUqJNe/DEn1LkRCg05ITLkIDVKvg9XaFxkZV4nelUhPkfMG1yOp7uWol3gZ6tfvjAYpXdAgrStS069GWnp/pGcMQGrqVUhJEZ2kbkhKkGPClWhQ/zqkpw5AlnUIstKHqHRK/d6on3S1tNVddLuq/lMadEdW5g3ITL9B7LoW1jSjreTky0TnEiQlXipjuFz0xJ60XsjMuF6kt6SvkbweYtMlqJvYUcZxrqqXntYbmdaBIoORkSb2pV0n83AREpPORb3kTkhOuUDs7Sb9XKPKM9IGqL6tqdeIbVegbp3LRborO62p0lZ6H2RlyJxY+8Ca0lvGRb2rZAw9ZKwyjoQeMkbREWE7GekyZzKGBg0uR5LYn5BwoWx6L0SD5PPE7vNlPM1xy033Ye+eA/DwZV5q+//LDaOJ0wSVcv08JbAd3oT+3dohRn63xSdEI6NRJrIa5yC7STNkNM5F41bn4KZ7nkKZTW5UdxlgOwDb3pXocUFLRIRZYImIQ/fhD2NLqcHPwF6AvT+9jAuzoxBWsx6m/LAOjMPJNzwe2zgDl3VqCkuNdNz6/OcoIvHjccJ7dC0ObZqF2bM+x8MP3IXczDSEBMfCUv98PPP+DGlzEz54ajTqx9RErdqZ+HrxFkX42Q9txfW9usFSpz4uGjoclfYDmPPRm8iJTkVWvTzMWLZFkYJ0A5w97X00iM5GVlp7fPHTTMxd8RPiwgNQIyhE1nlDpKc3RiNrIhJq15IxZaL1uVehsHg3Fv/0Cdo2SEW8jPOZDz9RUU/JPylS6q+E79mp2DK6xvKtfyRk+UZMutrySKGdNFizabzsJN2kCsk8p5cxWg3KliQoyVD+LHfa4KzUNKobLi/JUJJ/zNd17JLWdKs0TtKkQhonIcyHurccDtcxWRdlcr3oMSqd024pOrJxB6x14xAVakFQINdebcxeME9RjEb4BpcMy6B0GXOWvqcuJQ6pzsABTJVJii/qlAa5nn3kN7kcWiTWidBztRSl3iKpUaHsVhPiFRtVjAw55byQyeR8UnTcDJI//MWkSGNZp3wBmYxXvZBMsZZUPjOh/zzgYCxeFKNSrjWnxMvQRjtEtopsNo7Ht8sUk6zllHOe5b+aOrlkvLzOg3IQvfINsnzWG8cyqes6ZJRTl2S8W55X6rpweReKrrRb/jNQKvq2TfI82ChtMcrYKuDtPoUYELkTQwNdGCk74NEiY9TRgdGBRzAiqABDg+zoF2BH3xAnBsTaMTSlAnee78Rn9wJb5bFTJDbYaYNccpDwLC/FmoWL0al5e4RZQuTzRSKeeeaZKlJ4w4YNihT+X8UTZlv+5+yHxK8mnplHb17dH4/+5dprmZ61NWvWVCEYSIiOHz9e6ZzOIDF74MAB5OfnVyOBNfFNEphHEsEMO5GZmalCZTz++OMqlMbx41yQJkyYMHHmwSSFTZg4RZik8F8rvxZn+JMf5NO/idMX3OzJppzikg3lyhX7kZZ2Lpo0vhpZmSRS+yEzfTCy0ocZkjEEGekDDKIzvRdSsq4UuRZpGcOQnjESGZmD5MM/idURyBJJTxPd9L5IT+8j5X1hzeqLNClPyxwBK/UzBqv20tMGwpo6COmpw5CRNgrZ6ePQMONGZKWNQ2baGMkT3bR8kSFij/SRMVDsG4xs6Tc7I1/sEhvZbyaJaRKsFOkzrR/SrQOkfCiyM0U3c6jSTbcy/3oZQ0+x7VrR7W+MzzpaZKzIKOlnqOj0kfZ6ifSUsRnzwbay0qk3Ro7DRW+YjJd2U/IlLXkcf/oI5GTKWGScPGdZutIZaoxD6mRaxXaKtGHYNtCYL9pmvRbZWb1ErkCd2m3l2ZeA6KgkPPH403DwhV5nOCly+oPsYDFK9q9F70tboG6EBXfecQcOHS1GaYUNx0tLcbzchoIyF0rlMpM7g7NQMTWVBdtx+8j+CJHfhyE14zHy0XewwwlFt8FRiH0/vIJz08NRIyENXy/ZrngdeF1w71yAq87LVaTwLc9/ihIxoeL4Ybz+2C1oXD8U9ZJi0aRRBvKyG8hai0Noemc88fY3orQVHz13MxIiayAlLRdLtxUqnsYhdlx95cWwxCbh0vxRYttBzP/sHdQLrINGKe0we9UOFJHQc+/F0u+nIS6gATJTO2DG4rmYtWQmIgIsiI+MljWeh5Yt26N9q4ZonZeLvHN6od/wO1BmO4x5Mz9Gu7QUJMcl4J1vZqnXYSmOlUTiXwkSa8oNUy4ORcdeIKHJOKgOJ1x2uUepJ0K+VvFpMue+LAEpX3p3OlDhqlAkH6k+5cLJAdIbTh7OfOmg4aUrmh56yRqesyRZGUpB+e+yQc6JJqClrqeS1C1J2QqUiNi1niyUPau3IkLWT6hIsEhi3Xj8MOt7GQopafofsxHab4PHXSr2MygBvYXF1soKKSVBXS7DZlgCB7xiJ802+FuxW7H2YlslieMKZatN0hyrmgjR5VB5JJ9clRax2zkPcio/qOrh/Ko6Mg92Wc1uWX2yniVT5MwEp48zYARyOA71l599wPqpwKtDt+L+Livx8KXb8FC3bXhmwF4sfN8Ljzw+1BLgtLFaCXBwBTD1wWN48OrNuLfLTtxx/nbcdbHU6XcQXzzmRuFa0eMDhLF+GQC4ArDtAZZ+CLw+/BDuuXgN7rxgFe7tvAYPd1uPj0aVYN2zwAfXVWJI+F7kBzoUKTzKT0YGlInYVX6+CL2IhwQCA4KAG8KKcH3NXRiYtg7/unIPZjzhxo4ZBlHtkX6Xf70NnbIvQaQlDgm1k/Diiy9WkbfaY5fnOoTD7xWSuiR5eaRHL8Mr+LfLPHojsz/GDSYhvXLlSsyYMQOffPIJ5s2bp/ILCgqwePFiTJgwQRGojAmsvW9PZ5AU3rdvH0aMGKEIYH/PYL7wjvGKc3JycMEFF6g9G+eGY6aHMb2OTZgwYeJMhfzKM2HCxKnAJIX/emGc4bMGPF3N/iff+cE3KhOnGzyyQVRewrLfoyxZvBfJ9c9DVubVyLDegMyMYchMH4UMRcxSSJaOlPJ8ZGYNgTVnANJyBiMtczRS08chLX0MrFbRs05Qkpk+FhkZo5GRORLWjBGiN1JkFFIyxoq+lEnbbI99ZMl5Vvp4ZFlvFLlZSXrKjchIvRGZ0lZ2BmWcyBhkSxtZbNdnl6ov7WdlDhMZaoiyfYQqy7SOFhE9HlV/kk9CWcZAXZ6znfQUsTv1JkmL7dax0s9I0WGbJJ3ZptST/My0m5QYfYs9tCuT9t2o7My0jpeycWo8TGdax/mEY5R2Zfw5maKTKnMgeqodZRvtlbnNEJsyBilyOyvzGtSIbo3goFQEBdbC0KEj4PbY4KLXqKIGTJyekBuOXpwFGzC4Z2v1orkbx96NgwfdKCqyobi0GEeKjuBISQkOFntgJ0dXeQSw7ca8Lz5BVnwCagYHITQ6DtGNO+L9uWtRzuVQXoB9M99A54a1ERlfD8989A2OkVt0OrB33he4pHVjWGpl4rGPvkOZpwILfvwSKVFhyElIxLixN2LpknlYPf8Twws5qT2eZxx52yFMeeF+1AmPQb3kxli65ZAioO2FW3FNz0tgqdkAlw4aCadtL+Z8/haSw2sjOzkXPy7dgmK3R/reg1mfv4vESCtS6+fhh6WLMH/NPNSpGYys5GS8P/krYyl7j6Gk7Cj2HQeOqedSGebPnII26XWRFFsTH367AAWV0i/5wb966ZNZU17BcmH8vYRpmxTbKz0ocTtQ6nWi2OPAcbcN9JMtl+vOYAwMhkACtKLCiQqpX+ZywybidvChLI3IGiB/Crtce7sTpXY7Sp0u2ETXIXmMu8qY0AzfYCPBRFJVlhS9kO0iZaJTKjYwdEOx6PG1YFJs8M2lwK4N+xEZEINwSwSCLcGoGxuPGV9/i0qS29J9pfTjln6dFXaxSXqxO+Bx8evpblTY6DEqrTkq1C8Rm8uFClclZCiQZWYQ04x9TnK8nG8Ss8PhrcBxqWeTeXKIuU7RsTmNyMC0q8zhVVXK5aRMpETKi2yVaio4vTI1cDkr4SURzwn+yxfAXwte7gpeS0WMy/U4Cmx9D7ijxTYMjZRnimUXBlqOoH/AEfSN3odxbZdjxRcHUVluLFXewGWbgMk3HsK1iUvRLfBn9Ikqww3hNlwbUozrahzBdUnb8fZ4UdQewy7ppwCY8yowvNla3BC9CX1D92FIjRL0DT+MftEHMChuC260bsAzHZwYGnoI+YEVGB7gxnB/AjgAGGapxAiLB+PknDJa0pSxgcAokSEBTvQLKMagmkcxLGUXnryiGDP+BUz7135c0ngkoi2p8izJxPvvv6/CNJCwJUnLI0M2/C/CR2iyme2T4OU5yWBdToKYZCf7+u677xTx27RpU+URzLAKfEmcDnmgj4R/WITTFRzD/v37FdFNj2D9sriGDRuiR48euP322zFnzhxFilOXoSEY7oJpiv98mDBhwsSZBPmVZ8KEiVOBSQr/PaTbXd+i09CXqo1h9KNTcLhQNgwmTitwb0KHNH4+37atELfd9jwS6p6FzMyeyMkhKUnv1tGwpo6FNWWcHMfI+ShkZIxAekY+rJn5yus3JX0kUqyjkZI2Fqlp45CWNh5W6wR1TLNKnpSlWkchNX2M6I5VkmolgTwS6fSilaMho0XYB2WsT0gyi6RLWfoopZ+eNlxsGWHYkzpOzkcb+Vax1zoU1jTKsKo2T7THI/uQMaSLvowvI3245I1UbVlTx0t7ExQpnGGVtOSnW6Vc2qW+YR9J3Bt9OrSJOiLU5dwoUry6KPukzBA9VuqyLfZD26hjzIfRH8lteg73Qo2Y9giwpCE8LAmDBg2Ht9IlG3ubXEFzY3X6wqMYvNIjW9DvylzUCLKgW5eeeObpyXj6qWfwwqSn8fxLz+Hehx/DUy9+go2b9wOOg9j38xxcd+lFSIiIwqXnnoc27TvCUrs+WnftiY27DgDOMuz7/h10SouBJaIGOvcfhdXb9+Hwvr1475E7kVO3FhKbno2fft4Hm7sM7772DGIDLTivbTvMX7AE+/buxKR/3YgwsSc4IQ+vfjwbsB3GO8/ci3qxiUhJbSHtHVWk8PFDG3DVFRfDUjMNPQaNlQfKMexaPxdd2nVAzdDamHjPU9h79Dj27FiO0YOvRaQlGvUScjBz8RJs3r8TrXMboVZkBEbn34jDB49h8+ZVePbFZzHp7S/x/by18LhKseD7T5CbFo/4mCh8M3cF+GV5/Q34vxT64akfoCQ+PEaE4CKHDau3bsL0Od/j+4U/Ys6y2Vi+fhEKinfLHcuvTYt4S2EvLseaVRvw48JF+G7ubCxetRwbV68GCumRSWZUZtnmxPGCo1i4YhlmLpiHOYuXYsGcxTi8e6+sH76ZS2aEXpyiv2/rfsyfsxw/LliG7+YvxNw1y3Gw5IisNDK1okNipqgMyxatwscffimfp6IRGBiNYEsoEmvWwo9ffAGQYHY6UVZQiNXLV2L+3IWYN28RFkh7yjZHmYxZhKEcKmw4snM3fpgzV/pbgBkLFssaWgrbgUKxW+bFRmK7FJ6yw1izbjG+nTMTc5cux4KFa7F+9WZZqrRf+vOKfR4nCo8elfoLMXveAnz/0zwsWLoKm7bvQWFRBfbsO4JNW3aiuKRCOSE7HTKeMxgkhXkPVvCPEgypcRiY/whwfdgqjAw+hjEkWEm2hgDDajpwXb0fMOedbeoPDQ6n1JfLV7weeOTategRswTXRxdgYKQH/UJFwt24NqIAveruwY0XrIFrBzsSKZfregj46l+V6JW0FH3CD6BvQCkGh3vRP8yFAVE29I3cj8G1NuJfecDg0CIMCXJgWKAbQwOAIWLPYJGBkiY5zHAS4yxeOTow2mITex0YL2W0O1+EdfoFl+G6yJ3ok7wMvRtNwYiL38I1Z9+I1tkX4Joreyvicc+ePVUvltOevZq4PRXRBLMmnHXICAr7oNBT+I033sDFF1+sXqrG8AkkSM8991zlGasJUBKihCZIT3dSlOM4ePCgCoWRlZWliGC+LG769OnKg1jrcJw8auG5jltswoQJE2ci5NebCRMmTgUmKfz3kvNHvVVtHN3GvoQl63b5RmjidICHrsIChsAcP+EexNTIRHBINhKTuiA9o48iTdNJalon+GScyGjJHw4rRdJp6SIZw0VGSHqsyHhF/lLS0if4hPljYM0YpyQ9Y6zIaGRkDhdh6ImhJwnzhiEzM1+VZ6hzo8yaPkSER5K10g7JW9pIclbZNUwkH2mKICbJSsKYXsnjRXz2M1/0rSRgSTTLGJifIXZS0pWQtB6tRJezH7ZhiPQpdmVkDpGjtol2is0i+qjSnMeqMRj6qm4G7eYYjPatVtpCoX0khgchLe061KlzgTz7UmXDGY9h+eNQXlEGfoVctl3q+pk4DSGXzmP34vjB3ehzRR4i5XdbcEAgQoIj1EuUAinBgbAE1ERM7bZ4/c1vUXJ0N556YCxigi1olmXF6iWLMeXjj5GUmQ5LzVjc++QLKD9eiENzp+KslBhYQqMRntYUV17XB2OGDcF5TXOQXKs2+o65A0cUR+jCT99+jpzU2qhbOwLdruwu62swmqfVRVxkFGo2aIdnXv8UXts+vPrUnYgNr4WEhMZYu/UI6AxadnwbrrqyCywRyeh6XT68laUoLdiCpx+8HWmJSagVn4GBQ8bghuu6I71+LCIDApCV0QjTZy9GkTTwxmuvIbluHSTWjsOwIYPRq3dvhETHIbVJO3w6fSa8zuNY/OPnyE1vgPiYGpj+41zlsFhBDvEv51QqUek1IvAy2AHvRpJ09M6duWgBrh3UF23ObYemrbLRskUqunfJw+QX7gAKVwPHV8F1YA2+++hjXHLRJWjWoQ0y8xqjUW4Oena9ED9/8zVAYmX/fti2/IzHH7kbrTrmIr1VYzRulYtObc/G+AH9UbBpIXB0M3BkL/asWIHBvaXPth3QpEN7NOrYBh06n437H7wNtoPbpd8D8B7ciy/efRsXX3QeMps1hyU4WtZIDEJDwlC/ZjTmffIBULAfxds24tUnHsU5Hc9Ck+Yt0KhFLjqefTaG3tALe1cskP62AQe2oWj1KtyaPxzN2rRCdvs8ZHVojQ7ndMQL99wD7Nkt9svngT0/Y/kPU2SdnIdm7ZqgYauWaJnbET0uvhTfv/uitLVJbNuO8p1rMElsvahdC3TMa4bWLZqhRfNmuObaXvh46qfoftU1uOiSrvjymxmwuRh248x++nH8pPpJDqv4zAeBef8CBtXehhERZRhscWBUEJAf7sWguELcdNZKbJhRoMhdFZZDKpfJsnh9wlYMylmB/gk7MSj2CAbHFWBYQgH6JW5H38z1eG3CUXjpKcwb3lGkPJLXfibttliFgfH7MSrRjYGxFehXoxSD61ZgSGIBJmQfxcOtgf6hdgwUGwYHigT4CGGRASJM03t4hIUxh8VWi13SpRhmKZF8OQ/3ID/Sjvz4YxjbaB+e6HkQ79+9G0umHcGKHzdg2oefYeZ3M6vCOaxZs0YRtDwnecu0JnB/r5AIpoewjhWsyWZNDrPsxx9/xCWXXKL2JgyhEBMTg2bNmqkX4PFlaPoFb/74pxCifOHcggUL8M033yhvak10awJYj5NHEsH+ZLA+mjBhwsSZBvnVZ8KEiVOBSQr//eTiCR9WGwvl4xkrfKM08feGFx56acEFu9OOxk1byf0VC0tQKmJrnY0mzQYr8tKqSMrxPhkr5yORZh2KtLRhsKbIeSoJ1GFIV+QovYdHIFWOqRnDYc0aI+dSnkkCdbQSevtqj1+GlUjPFL0MaStD2kwfLEdph235CfOMsqFKl3UyMkeJDSRSaZO0R+/lzHwRlpOEHS52Ukj+ktj1Eb3KfqOMaYqqK/rKfmk/zToMqYwBrGwmcWsI+zHqjBDJ99kk85Q5FBlZ+SLShvRtlXbSSE6r9ow2DbspQ0U4LoPY1rYY9rBd2jISGWJPBsed2huJCV0QHtYEcbE5eOGFt2B3OGSzyV26ubE6bcFL5waO7tuJ0QMuRbP0Gsi0psm9kYmGmQ2QnV5f0lakpjdHdtNL8dHU2Vi+cDbaNEtFi0YZePDeu2ErK4atvBijRgxGVuNGaNzhQsyePRv7532Mc7PiYKlZD/1vfgi9rrsejdKSkZudgTtvuwOb9hUpxz96Z5Ye3YsnH70HTZtmIyUrE7mtWuDZB27DwF69YG18Pu7518uwle7F5x++gmY5eWjdugs27TyqvtZ/vGAnhg3rh7TGrTFs3G2wOUrksVKMA9vX4tH77kLDhs2Qld0YV/W4DBMnjESLhtnodPa5+GnJWpTI2IuLS/Hqi8+hU7sWyMpIgTW7IS7ufg0+/maWIrzgLMKSH7/Ehe1ykdesKWb8NFfl809ZJLb+SlTKP+OVcIzqyqi6BjFc5nThjbcnIyoiHGHyeaWGSKJIhkjv7GjMfXgYNjw3DutevBvjz+uIupIfSQm0oFaQBZmSfuby87D58Xux5cn7MOv+CTg/I0a9iDAqxIJoOdYXaSXy2ZirsPHZm7HxuXsx7eYRyJK8OiLhPqkt0jk1Gksfux1bnnsQ6555AMPbZiNB8tmfRfoLlGOcnDeW9Idj+2LDq49g+j2j0SMzXumxX9pHnRbhFnww+nrsfuFO7HzmLnw8uA+a+3T4sroAaYN6F9UOw+w7xmLf8w9i/VO34qn+5yub1RhEqENbhzWshU2TbsPW1+7D3H9NQI/kCFglv54I+6ZeQngQ8hpnI1zarxEdiV7X9pRrTyr0zH72KVJYfhiksKzAAuDnz4HbL1yPvvWXIj9tKx45x423+wEfjANWfCR6dFC3uVUIEZdNZrAM2L0Y+PJfdryRX4KPhgMf5QNvDSrGW6OPYvozbhxmTGH5VVPJWNl8mZ0scvchYM6b0u4ED14baMc7I4H3xgLPXl+CqTcCa18E3r4O6BNRjAHBXgwO8qqQESp0hAgJYaZHB9Mj2IthQXaMjCxDfvQhDIzeisHxGzE6exMevPgAvn0A2CLjKlsvdhwV4UcWeQC4bE7s3bNXEbMka0nUkhBm7F8SuKcaPoJtkGhmmxR6C2timMI8nvN52717d9StW1fF0B08eDBmzZqlCFNNgvoLiVMnX5r3DyBF9Zh0Wh85bn8y/NeOLDdhwoSJMxHy68+ECROnApMU/nvKJbdO+0Wc4cfenukbqYm/LxiNkH535bA5S5BiTYclIFrusUTE1m6Phk36wpoxAGnK63aUCL2C6Q08TGQQrHy5Wsp4kXHIsJJA7iP6fZCW2RepUi81U3SyBsPqIz/TGX5B6mZYhyJTvXCNJKi0S6I1Y6TqRxGoop+mZAjSMgaL8EjCmP2KLRl8Sd1okTFITWN91jWI5bRMxjceZBxVPV8d6TvVKkISVrUh+VVlrCe66gV4/ZSkZvQXEfszqc8xazslTVukzBCfbcpu2sBy6lNoF8U4Z5lVeVQb/WsSXIlqR8Q3RmO+8tGo0UhkZQ1AUuJlyMrsitGjHsbmTQeMy3eGkyKnP7xwuxiTtQwHtizD1tULsXr5CqxasQY/r1mNjSJrV63G6rWbsHFnAQ4WVKCksABrly3Gzq07UHS82KAlbcWwHd6l6izctB/Fdjt2zp6Mc7JrIrh2Jqb8sBaH9+3H5pWLsGnjGuw9dNh4SZzi1eT+95SgtOg4Nm7ajuXrNmHDxvVSeAgFe7Zg3aaj2Lq7WPTKUFF8CCuXbsS6dfsUGVVqd6HS48DWLRuwYt1q7D50QKzhV4WdZJ7gLC3AzxtWYeOGNdi3ZxfKpI9tGzZgzap1OFzqVjZ4KitRUXoMxbR//SosWb0We4+XqRARZQxOK88lOI5h58bl2Cy2lzO+rtjN95jZnXwZ2l8J0sJeNWYXvyLNHJmXSkclls6ahx7tz0Z2YBBayGeWC0QuF7kzwYJPO1nxZYdEfNLRigcaJuNcySex2jrSIHq7BljwbGY4vjs7A990TMd7ndLQt54FeYEWNA02dC4UGSLpj1pEYPZ5iZjRKQWTW9fHtZJ/nkheiIi0w34n1LJg9vmN8X3rBvj+7Cw80ED6CJe2RCchzIJ40WkqcrnoT8qNw5TzUvHuOSkYW9+CsySf/TWXvtvK8Wqp81zDKMw+OxE/nZWMd5un4PogC9pJfpbYkyntnS3jGFbDgk/OsmKWjPWLs5NwX0MLzpf67aWc89FepKvIU6kBmHFhqsxJPUy9MBPjalvQXfI7ibC/FmJTXo1gNKsdgVg5j5M+ul98jvzqknXLdaao0TMTXG/8w4jLI6uw0q7YYXcRsPDLQrx67zpMeeogjqyUvP2ic1iUecNV2uSe5TNH/os4PEY9SD3HNjlStovwC1/HpKgMqLBXgjGwbfzjsXxm4KwzHjTJWdchqSftOw9K0yRs2c8+OV8DvDqgAr1j9qB/aAWGBNnVC+eGBzgwQokTwywe9LdUYoDFi8GRdgypcwT56dtw7yW78NmDdmz8DigRWyrlEcA42S6SwTJe8op8NOzZfRBr166v8gqmNy+JYIaRIIFL0vbXyN7/Rtie9hJmu/QKpgfwe++9p8JKHDp0CKWlpViyZAmeeeYZTJ06FYcPcxIMkADmS9X4jQwSoSSDNRmqCdLTGf4krx6jPqeQHNbgXPgTwVrXhAkTJs40mKSwCROnCJMU/vsK4wyfM+zlauMa8fBHOHCUL5kx8fcEP6BzpyVbPa8d2Q0by/1lkML1kjsjNe06ZChCl96rPg9Zev9m0BuXL0MbhSzrBJFxyEwfgoyM/pLfD9bM/iIkVEl0kjgdLHWlTvpwRQpnMlaunPOlaowprNqWtkiapmdKnvK0NTxrlfBciUG6Gp66JKl1XTlW1WOfJFkHI1VsSs+SOpqs9RHCBvEs9rCMaSVDJI82D5R8kezBctREtOipPtkHxecVLeXpWWyL7fjIZp9uuownPZPEtR6b1Fci9ZUu2/V5NPvEGCPHJ2Kl5CM1ZaDM8wCkp12NLp3HYOWKA2ozr77+ewYTIv8M8Pq55ELKPUjyk3FVmcW9shJ1kVXSLvlqO808ufh0lOQ3ddUaIDnmKAXfFEnv33LZnG+YMxV5GbURUrM+3v3sR1WHzIps0+lkp8K9sl0Vi5R9ywlf5sUyFVKGTIzYRedAvtfL45aWFdlr9GszkmxA/rvFNopXdJkreV5RUKSdE263YqOMir4x0aO2QsbgZh57ZXxaj+gyX8rpDazGq2LNit20UUr5Hje7VFa1DAP+MpASNghhGTuNoT003CUDKC3CordewgMdm+PBnLp4OisWbzaKw8yOqZjVujbmtYrEvPa18VWHFLzdJgkPNQ7BQ82C8FgzCz7sUAMz8mIwv3UsFrarha9Ed+r58XgyNxj3NwnAky2i8FxWJKa3S8SitpFY3CoYC0RnZl5NTGtfF8/khODRZmH4V+MgvJEbiW+ljUW5NbG0RQyWtI7DDx3i8HqrENwnbY1vFo2rIy0YGGzBC1kWzOgQix/aS//ta+KTtrF4oXm02BSD+xtH4YkmUfisUxK+bxeLFW2isLhlBGa3rovPxI4nW0bh3hahuDc3DM/kReLLDnXwY9s4sSsKC86qiemdovFW21A80yoMD+QE49nm8ZjcrA5m5cVhXpsamCV9Tpe+P+0Qj7dbxuGF7Bg8lVNT2qqPe9ul4vKUMKQEWRAbYsG1V3aBs/SYzDdXi8z1mQoOnfcQ/0IiC88j9xs5OIaXLj8uxbzt+EjhkWuz0gGvR0XkVi+VVY8EUeCfNdTNxrVLXV89469G6jWGIgYhXCZ98N5lieL0eAnYttcFj10qsbBMyrcCrw8vwXWx29AnrBQDg1wqtvDQ4BIMDTmEoeG7MDRuK/JTt2J4o59x94X78fFEYPPnYp3UVWG3+TCT9pW3rbLTJv065f53YvWajXjttbfxySefKsJWk7YkiHVoBx3q4T8VtuGf1mQzz+fPn48XXngBl112GUJDQ9G4cWO89dZbigjVZKgmPEl+alL0ZBLUnxCuSotUPcoknxnMoxgzbYRKYUpdRhGl59NQR3kGG3p8Kuk8XX5CU/3iUM9oDXXxqtrVj2+CB5YYnzMo7MN3wZWyIZWqEq+P/JNzPtK9co1oj/GMNGpRXd2zXuafGI8hPGNlX4Y64z+esBOdw7UgeTxXeYQ+qZZpwoQJE39bmKSwCROnCJMU/vvL+aPfrja2y0ZNwsI1fEuJib8lfLsAbmw6nXORbHgS5R6zIimxG7IyhiKdMW6tRsgFeq8aRC0JXuYzDq4c0xmXl3nDoGMBaz0tJIQNYdr/3EeCsu1fiNRV8mtlut5Jdf36/O26vyJV9bTtPvt/TZft/r99+Nt3ko1+YsQO5txSRomMVqLmVs4zM4YjNaWPHK9F586jsW79UfWSIKdsKKs2UiZOY/D66Z0w5dfxW9tdgwKQleA03Oi4IlxuN5bM/wmtmjdGveRUTPn0C18DXiljDFz/tqr3eyLf2LKf0K1e69fOjH8aWkNLdVTPZYo26NHoM+LXc4zUXwtaS4pCURwkhcmDkBQrLwfK9mLPlKfw5fkpWNAxHnNaR2N+mxpY0CYWi/IisLptIJbmWrC4dSgWtI3A3HbhImGY1y4UC9uGYGnrECzLC1ayRNIL2oaqMkMnXNqJkLphWJ4XhBV5gerIOovahGF+W7YVbui1DVN9LM8LwYpWwXLU7YVgTvsw/NghCj+1j1L6C6UPli1pbegsahPqaysCc9pFSnsRWCjts4x9rmCfeaGiZ/Q1p304ZovMExtZl/awv2Wtg+Q8SPXJMmVb20gskjlZ2TIGy0iQtwvBj2eF4vuzIjG7XQ0sy43D8txYsT0GX5xTB0OtFqTKZ7+YGAt697sGlS5ZnyTf/w4L4a8CbwmuOfXXEbusQ7ui5pjlIPfGbN7GSuSEjLHv5lFFavp8GTww01+YpzQ0NVhF0VWJ8cdJihMet8Poi6TwNuCVoSXoVWsrrgsvwfUBQP+QSgyJKUV+/B7c3GgzHuq2Bq/evQKLvymCjV9+IQnMx5gak4ivM/6Rineax+uE0+XA7j17cM0118lnlXA0atRIee9qAleHdKB3rw73oIldTRhr0tg/j+kNGzZUpUkoMywF6/JFdkOGDEF0dDSCgoLUi+Tq16+PV155RQw8NXB2OWV8bHAeDdKUozWGr5h9futCkpwa6ql8vmlRnudeRSJLmm8NrHTALnPF9tTnOvXHPZ74kbIMJE0CmSdK+PvADae0wWXEkCKqAUmzbZf8IxFfyT8oeMslWy4uW/N1axjDJ2CR/HQbtyTzvLSUa9JYj2xWrTW6fMt1pD3Mp5YhPJNynSng5xu+tlMZxL6kQy9og+SpPpjnM0RJVaaICRMmTPx9YfEdTZgw8TthksKnh1w84aNq46N88O0y38hN/J3g4eba9zn67bc/lHusJ2rWaIX0tF5ISR6oCGH1MjdFXuZDvSiNR0UIM84u8zXBa8p/LyTUDWLYEJLsJIQpI5FJ4jmtLzLSe6JD+7749LN5KLcZ23QXv/prboDOaPh7ohH84w6/rsyvPfNN8BMmTFBfbdaeaxonn5v478HHpkGpSIoMHC8FReb/2NYVmH7PYLzfvhYWdIzFsjbhWN4qBEtahooEYE1bC1bmaQk4I2V1bjA2NIvAmpZhWCTzMb+9BQvaBmNp6zCsbhmBdS1Csb5lIBZ3rIHnmwbj4ggLzslNwRtvvwyH3Wk++rgA6dGrHgE2Oa2QZKUie5WjJrk7HikkhQ3XYMUnsipDt5zKFLKualZSJIUrK31knU3+bwGeG7YTl9eeib71tmJ4yjFMaHQMj15UhKlj3dj4DlDGWMUkgsUecnpusZM8pmpYxPC49cItBYqSljSfbwsXLkLLlq0QEBCEhIQEvPnmm4rIJQlMUpcxhfn8o2hS2J8c9hftTaxDT7C+rqtJZZK/JIRJBoeHhyM5ORnXX3+9qndq4LydRArTzdufFGb8jkobbDIXJFapp/IVKayvHtNcCKRwDeJeTajSUf9Vewp8hwSJZ+ZT1HsJ+ATzqOWhmpFiPs6cbhLMLrgr7TLvvFBO0eM6EyvYKDsyjJQDSWHRlXN2rRoTfeaxFptVq42fWehVrkqN8VCM769Iuc6QJD/jsL6aDdUe7WT/PJdTijEIQ4wMn5gwYcLE3xcmKWzCxCnCJIVPH7n01s9x1sBnqo3zkTdm+EZv4m8D+fzsdhof8vn5etq0uaiXdDYyrNehUY72Bib5y5ef0QvYRwprT2FFav4a2WnKfybac5qi8zinhvd1WtpAZGb2RUpKN9Su3RrdewzCj7MXwuV1yAaM20S1KzNxBoPkiQZJE4KEL2NdkjTWBLD+mrMmg/3jPZr478FZNygVkhJ8hnqVs1rx0WN48eEH0SOzLkbUteD9luEqzMOavFBFhK5sZcGKthYszpXjGUwKr20ZhM1Nw7CheTCWt7ZgWRsLVrUKlPkJVt7NS/OCsaq5BctbhmJhmyS8d05TLHv/FZn0ckUq+bijMxdcgLyFFR9WJlKuzu3HZQ3uA8rofUvHTk4UY8B45d5XXsWs4obTY5f5O5UZZF12boR3qFRernIqv5ZKtwFv3LkBQzt8gUeu2YypE91Y/RbgWCnlx0Rol8FjVnF6iteTJvl4ohjPLjbohUfa5h+7nPJZZdWqNcjLa4uQ4DAkJSWpsA4kaEniktylx68mfU8mhSm6THsFkwBm6AmSyZpUZrzgXbt2qfPPP/9ceSQ3aNAAF154oSKJWUc/R38/WN8gcdWTmKeKFCYZKkk599o4WTbOrnrWqG8lUPjM5/NGhHPD68gytqNa9DhlPkmoGpeE7Rn1ZNKVvtGdkWCfFaLk4a2lHIlV/yJuevaSmGVf8o+0s90jbeiG5cie3eoPEtIu87SoEpvk0n9dg62S7vW17xOfunHCAmWcoalIYGMRS9qYAVWBoq5B1YlPTJgwYeLvDZMUNmHiFGGSwqeXdLv7u1/EGR724AfYe4gB40z8LSAfqiu5+ZJNBvcZGzceREJCB2RnXo+sDHoEa/J3uEEIZwwRGSbn2qPVJIV/v8j8aqJdiS/8hiaJJc9q7Y/s7L5yTS6UZ18yQsISMfH2u1BmL5LtD3fV3AyZOJOhiWB/6LiWBMkVLdT9NX0T/z145xlEjUeeoyRPnLC5PVi9egMuPftC1JPPKh1EHmsYhHltorAmNwjr6CWcZ8Hy9hYs5LH1mUsKr2kZiE3NQrCheSBWqnmwYH1Lgxie3y4EC9sFYU0bC5Y2krwWiZh/+XnAqsWA2w6nl19qP7MpIIM4lQQXIj0wZUKc+4AZrx3Cyzdtw0u3bMCO+VLGMMK85ZWeiDrIs4Bxv09pBqUujSATSKKRbsNsX0xxF8qlmnEcK7+04fhqyTskUiRSbpQrV2a3C065beghrAlhOrd6pB3j2SWfTXyxcit9Cna7EwsWLEbz5rkICgxRpPBrr71WRfDqkA/0AKbofMrJhDBDTWhCmPVWrVqFl156Cffcc49qk+UHDx5EUVERZs6ciY8//li1of+wxufpqYFjJNnquywqQYLWIE15qjyFvRUol/lykgBmfAeZC065mwHWVTx345NAuUwVX3ipWlMu4gadSmGuGC0JY7KNniWp1JlnxJBnJi8jaxs2GSQyPbh5zn5INVfyDwz8lpk0RBKakaaN56AoSH22S303yuS0QjKUosqjUI1CS4wZ8GXQHi0C6UWS9EQmIWzMi4JuwLdOTogJEyZM/P1hksImTJwiTFL49JQLTooz3GXEC5i3kq+5NvFXw8M3zqgP017ZcHlk87MU9et3RHraNSdiCisCmCQlCeHBIvQW1qEOTFL494v/nFKY1gQxZTCysgbJsRfi4jrKs68eLEFx6D9oCFyV5XLVSERxi2XiTIb2FNZHEhY2m62KtOD5ySQxz7W+id8Hzh7JE/XVZw9fqGpDeaUH8xevQl6j9qgrn1Vy+HmlZQ3MbV8Tq5tZsK6pBWtaWrCsgwWL253ZpPDq3ACsb0Gi3IJVMg+r8yzY2EKOrQJkvoIwr0MgVrULwLImAVjXPBELunSCd96PgMMGt6xlg/Y6c0G6zK0oOrKBcq8XAhunAGPbrcUVtdbgysT5eD5/J5x8pQPZPB8bx8eA2+cxfEowPjYYrKNmHkXoeEoSmnymukjsm9EH+OuK5WIAgwqQ6qMtiphkWxQfDM9UksFueU65VAgJKrhlnFu2bEf37lchNCRcfj9m4dNPP60ieXnU5C/P/Qlhf1KYQl3K6tWr8eGHH6JXr15ITExEbGwsOnfujOXLl1c9KzUJTFEvvqPhpwy2QVqUI/WdMhYv++OpV65wxXGZ23KZXoMchatUyp0qmoJ6CajLBrvYw6n2Ta9UlDZI8MoZZ63qPqHNPlKY5+yTBLDhGnxEGuPbCQH5GIhSyVd+xvw2Egl8OXfKKfupEPs8LrmoJOoVwWyQ0sr/2BdChO1yGbjBF4TSZsmQYurRHgMG5asqqLrGQQkHqOaYRDDXC9syiqrpmTBhwsRpCJMUNmHiFGGSwqevXHzjx9XGTHlv+lLfbJj4y6B2ZCSI3FixYg369RuL+Pg2qF+vO3Ky8pFu9ZG/yotVk5ckhUkGm6Twqcn/TwpnZg1ESurVqFmzgzz76iMopI4ihe3uEtnU+QIymjhj4U9OkKzQBIa/OJ1O2O32KjKDQuijid8HPjlJVhgecqRL7CiX5+nshcvRqlE71LUEIEs+rzyQWxPzz4rD2haB+LmlBWtbWbCknQUL25zZpDBlRSu+sE7mQeaC3sJrc+kpHICFbYOxoG0gFstc8eV53+fWxtNNkjD17ltQvHuXIp2qSKIzFKTLHLIC+bV9OGVC9gFzHgWuqbEE14QU4IY6ezG+43Ijdi8ZQy5WmTDe9s7/xbcFOPmKnZQjxfgoAb5vTqfVRdJpqUA1W6UHxR6n8SdNyVehb+VIu4znk4ys0g236LjdJDdJPLImOwRKisvw3HOTcNGFnTHxlokq1APDRpD01TGCNSHMkBI6NrAmg/0JYoaaoHdwbm6uihkcEhKi4gd36NABy5YtQ0VFhbLJP/QOn6f/G2KY9Q1fWWN65NxHCrPI6/bg+MFdWLdqEdZsWIt161Zg04o52LhyCVau3YKV6zZh/dqVWLV+PVbvOo5izqXUqyRh66HdbuWUrS+H6k4+55HI5WxyBTA0N9217fuWYdPSb6SPtVixYROW/LwJqzesw+Y1S7F/+06UFgPlUoFO52xPeSKrl9aROvYazt8qn/bLQYSX3gX+8ZqhKVhGQtggeGmK8YOWUZOG8HeXHJRwUTDfeHEe+6SGXAH5yQ7kaPz/hZgwYcLE3x0mKWzCxCnCJIVPb7n0ti/QceCz1cb+4Gvf+mbExF+BSr7ZWzYKLtlIXHXVtXJ/1UBQYDqS63VHWkp/VHkEV5HC9FwdInkmKXzqYoSIMMhgTQj7QkgoGYKMzIFITb0GdeqcI9cmGQFBtTHh5okoLi+QrZHaVhsX0sQZCR0Kwp+g0N5sLNPewJrQIEwv4f8NOIOcfZdyjeS96IRNpnjZqg3o0qmL8hRuLvJYbgzmd4jFmtxgbMoLwbrWFixpY8EiOZ7JpPDS1gFY0C4QC9obXtNL2xrzsSIvECtahWBZXhAWyzz90CkK96db0ErmMjMmAPffcTvsZQb5dCaDlBm/nM+wAspt9AAw/wGgd9gKDAxxo1/0EUw8ayPKV4kinTXJ4YkqiTWP8iStoud+J+R3D2PRqhADJPHkIO3TsVQeQfrvzSpfkYRyZI/8U6bxJxS/315SxueW0+mQZxfpP5bQ99QQj3ohmmErH2MMZ1Bw9BhWr1qtYv/u3LlTkb86ZARJYaY1+ctzhorQ3sSaIF68eDF69uyJwMBAhIWFIS4uDmeffbYKH6GflzySCObR/49utPfUwPbZBidJwP78SOHiY8fw2AN3IjkhDsGhwQgPtqBehAXxkcEIjqoLS1hNhEhefL1k9My/HduOkLhmc5x8mzRh/NmYTybVA3/4GHj2ymtBB/OiA/vwwh03ICPOguAQCyyh4bBERCIoMgx1o0PQ87IeeP+973HgmHHd2J7byQXFAMSMdqwCRMjTT6DGIEdjCNKHQ/ry3auqyPAQV/ZQQQlrsmX3CQdh9Uw1KG3ayvZ5ZgTEEH293uSM5RRfF0r+P/yneiZMmDDxR8AkhU2YOEWYpPDpL5ffPQPn5L9SbfyD73sfuw4U+mbGxJ8K2SDYbeXyQdyDpKQGihS2WFKQlNgVmSSBrSNhpaQPhZWEcOZARVaSDLYqwvjPJ4WtJ0lVWYZPfOfVyv6mYlXEsCaBJe1fLnnZ2cNk/nujXr0usmltiHrJzfHO+1Ngc5XLJoj+M2p7ZeIMhz8B/GuE78lEsCY8TPx+cDZJXdichsccvdtIfB0+XIAHJk5E+zrhuDrGgrfa1MCCdjFY3jwQa3JDsCo3ACvaGC+bO5NfNLe0TSDmtQ/GXMZXFlki87GstUXmJxjrWvClfCFYJuWfd4rA4AYWpMhnv+hwC6646gqDgSI/dAYvYw6/ioxjOIh9wAL5aNwvfA2GhwM3hB7GxPY/o3S5T1FUFFkrCf5B0esLMfC7Ieu90m1Ta7/SyzALVX6cSgyCUn5IguUe+axBm/lbi6GFFblYrXtdmxQfCUKXIoNJbpIoNghZKZWbjI8yegzv3btXhX+gp7AOHUHR5K8WxgwmCbxmzRoVO5iEMYlk1rv77ruRk5ODs846C+PGjcOKFSvU89H/mxcE0yd/2+LUwDY0pSlpMuf05OXg5LT0+HE8/ej9qJ8Qh5qxNZAUFwFrhAVRch9YwuoirHYqatWugbr1k9FzyETsK5KWWNUlbVTaZL4dVaQwn0tVU8uxyYHPLof8KDm0D8/fchXqBlkQFGJBZN0EhCclIrp2TSTVCEVUQCiaNO2MyVPmqmAQXDXGHwMofImcQT7zulZdQhWvmpGGvaofZrNfw9eY+aLCU2WwsSJ4nX3mGXkqTrujap1T5IqoPBVDW+aJ+myLOkyrrkVUf/8GqgsjacKECRN/Oiy+owkTJn4nTFL4nyMXjJlcbQ4uyn8Os5dv9c2OiT8LXsYU5uZOJFGRwrEICEhDndqdkZM1DOnWEUhLE7EOQVr6QIMUzvSRwiq0xF9AClvzTwhJVcnLyBiBjMyRhkha6fnK/s5itfJIe0UyZD4z6JU92jhKXgbJ+LQ+SEu9As2aXYHHn5iMY0XciMmGSG2mzK2NCRN/BXjnKXKDJ2S3NCvhcuPglpV4f2JfvNq+DmZ0qImFbSKwqm0kVuRFYlmLQKxtY8EqRQifyZ7CQZjfLhTz2gcZ3sKKJA/C2hah2Nw0HOtbhGFZuxB81CkcvbMsiJXPfsGxFlxy9RVw0bGQvNMZ/PgjEcZp4BqEQ872AkseBm4IWYHBQV70jyzAbWdtQvlKn6KsTYNv9IrYT50UJvzYNR7YGn83GfQvLeNF4u8pihE8gOEuXCLGK9JYQzfCNG8iikHzMawVP5uob0SIisdjvGyurKwCO3bswvp167F+/fpfeAAzj0QwSV+GiODL5PiiOBLAd9xxB6ZNm4aCggIVHuLQoUP47rvvsHDhQhWLnfhz/mimfLbl6HtwKFKYIn3Lf6fYNn/WDDx8/9248aYJuH/iGPQ9tyFqBVpQJ70tbhh9F2676zbccc89ePezn1BQboSDOFZwHAWHduHQkd04UHQMpTKVdhGZRt+0Gv66vDoki8sP78WkW3ogkZ7IKUkYcuPNGP/A/Rh7y3gM7tUD8VFxiKnZBP3z78f+Eo9B/noq4LUXoeTYIew/tA87Cw7hcKlNeR6r4TgOoejodhwoOIYisYkrrdIr1754J44d3IkDx9zKJuVW7izDkaP7cLjwKCrEKEUWu8vhKC/EkUN7sHv/Yew7BhTIpVGfeLhubcdgO34U+w4X4nBRBYpsHuw/elzaKEKFQ1aX7w8UvwWW/btyEyZMmPgjYZLCJkycIkxS+J8lnX8lzvDkLxf7ZsjEnwJuRNSmy4HMzIYIDq4j91gy4mIvQuOGI5GRPgoZiqSkJ2v18BF/B1JYkcEkgU+Sqvxfqf/3EdrnC88hR6scrdbRfiJznDYUmRkDkJ3VC5d0GYNt28tQXGq8KMbw9zG3NiZM/BXgPejwktgS8FbU4iQLcgC7P3sKX16QhMUda2JhXgiWtYnE8jY1sLRFsIorTFkl8muE6ZkgJICX5YVhSetgLGpnkfmROWkZjI3NwrC5SQTWNQ/H4laB+KRDGIZnWlBPPvsFRlpwYY9uap7pqHgmP/4YWKFMkawyCWT39gNLHgduiFmO6wKOo1/sAYxruwy2daKs+V9RI9/p8sXqPaUJZFW2yY8QviQJXw8JZ+ULTCaaR14o6U+FCeANwt9fOojAyaJZRYqR52WoAKa8fBmuA2Vl5Zg27XP07dtP7QXo/UsimOEhtMcwCWGGk2D+rFmzMH78eDRr1gyhoaEqZnB+fr5qjyEgeCwvL/9FKJ4/mhgmbck5MIhhGasihaVPDltNqPzwOCTNF+2JHN+Hb5+/DWkxwWh0dk+sPUhyXVSkXplMcVEpsG7DATz3/KsYMbw/Ro0egCeffwyLV65CsU2uOZUp0ixXjV3quaSvkoM78OyNXVEv1IJL5d46ZHP6/tjgwp6NK3D5RZciMCwdF3YdhH0FpXB43DhyYA+WLZyDBx+4G4PzB2Lc7RPwyuT3sHl7Edx2L0oOrMJzj9+GG2+5Az8tXosS6ae49Bi+ePdpjBPb7v3XK9h/WNaGqwL7tm3CHfc+iLsefATbdu2E02XD4f278MUnH2PcmDEYmj8adz74FL5fuAYHipxwu5yoPLYDU956AYOGj8Ijz76CD6Z9g/yxN+PO+x7Euo2b1RQqclmBiaoThV/mmDBhwsSfB5MUNmHiFGGSwv88UXGGBz1XbT7ue2W6fFjnxzoTfzT4AZukMI+9rrsBNWqkyD2Whgb1r0BaygDfi+ZICucjPZMhJAaLDPUjM/984rUaKZxJ71qGsqBn8AlRxDDLmP7bConr0Uo4l1arSNroEyLnWTKGzPSBaJDcAxecPxwbNhTKJlD2UtzQqhexmFsbEyb+CvDO4x2oOBxybBRFCkuifAc2vXM3Zp4fj1UdY7CwVTAWt47A0rZxWNIyFGtbWrBOvVTtzCWFV+cGYUPzcKxtEWKEjZC52Nw0GFubhGFj00iZowis7RCFL1oE4r4UC9rIZ7/acQEYODL/BG94Bj/+SCg65Z/6gr6PFF77BjAyZxt6BO9C77pb8HDPrXBuEWU/Dpjco9NhEK2nBN8NQA9UxV+qU8aALRWbjskZpUikTBQcIqJBJXXD+ET9UBTer4p66ZwfKczwDfQK7t69u3oxXFpaGr744ouqsBEkgkkKkyCmh/BPP/2E/v37IzY2VsUNDgoKQr169TBx4kRFCOtQEJoAZh8kh3muSeI/CidIYY5VxqhIYUlS1LTID8ZXlt/zXs5D0T58/cQ4JIdbkHHWtVi632PEC650wVViw1effo8LO8tnuNoNkJqWhMzMukhJqYkeV1+Bb35chXJpiiGLOVS+oJBXil2VH92BpydcirohFnS84CLMXf0zlm78Get/XovpUyejY5sOCK2Rg6v7jEeZzYFjBUfwxssvoUPbNqhRMxo5TbLQID0BydYMDB15Hzas34JDO+Yhv39X1K6VhNvueRyF0vf23VtxzSV5iAq2ILvFeViweB0ZaXw8+U3ExDdEo7xO2LFnI/bv34S7b5+IxtmNkJKcgaycJkhKbYALL++Jj6Yvh93mhX3vMtw45EpYQiMQEZ+K9GZtkNawBTp3vQJrNmxSX9xwy/X1TaRPjGtMMHXizIQJEyb+XJiksAkTpwiTFP5nyuX3zMS5+a9Wm5OB97yL7fuO+mbLxB8H2fw4HbJR8GLt2p+Rn38b4mJzkZXZG1kZw1ToCJKT+qVo1vTBInwhGj2Ixyhi89cJzz9O/ElhRQDrPLFRiaRVnq/s7yv0ama4CJ+nsIrfzDRJ4jEyv5K2DoM1rS9ysnohN/daTP1kHopK3CgpK5UrZ5LCJkz8VSDN4Kz0GB5p5B+0I6Q8T7et+REf39oLLzcOwJy2EVjYOhSLWoVhaesaWJYbqryE15zhpPDalkHY3DQMPzcLVrGVVytSmHkyPy0isCo3DKvygjC/TRQ+bBqDPjUtGNDjfMyc9d0JcvEMBpcduWD1wjPGoi0FipYDk28qxNiO63HzxSux8F1RKBBF9QcLmTBWEnF7SIRK+lTA+r7rwCQvB4MSGJ7CRjxYFWvbKyXU473Bo752Vf0z8WsiP8VIxirWIFG7ZMkSNG7cWJG8devWxSuvvKI8hCkkhRkrmIQwyeNPPvkEjRo1UrpRUVGqHsNH8OV0mgw2XnBnvEhOxxEm9PGPAkfFqThBCkuOHnqVeOFxu+QZI7YV7MTUe/ojLTIAjS4cjBmbK1AsKg5bMY5t3oj86wYiOMKKiy/vg+9++Bpz50zD9T3PQVytKPS4fiw27ixXBL4MUR5VbhFG/PWi/OhWPHVTNxWWIqRGPBo0boP0xk2RnZMOa1JNhAQGo2a9lrjvX6+g8MgBrFw8H62bt0JszVroM2ggFq9YhM8/fw+dzumEuDo5ePChJ1BStAWTX38cibXicXm3q7F+yy4sXbkMOZl1ECT9xNdvgpcmvQ7b/k24efQoWGIaoXf+RJTb9+OjDychuV4iWjRrjQ8/+BKLl6zALbeNR0SturjwqvFynQ/CvXcBbh3WHZaQCEQkpGPgmFuxbP02rNq4FQ6ZTqesdc6ZMYmcXwrTBnSJCRMmTPwVMElhEyZOESYp/M+WC8a8U21ezh/yDGYt3eybMRN/COSDs8vh8HnHAN99txT16p2N7MzrkZnOmMIGQalITBVCgoTwMDDUgUFe/tWk8Im4wSeHjDgtYgqrI23WwpjIo5CRSQ9iksSDkZXZH4kJXRAS0hA1Y7Pw8dSvZAvJf2Sh/tiNqwkTJn4dJBUUB0yWhe77cit6JFlw+AgG39ADWfJZZWC4BR+3CMHC9lFYkhuC5a0isLJVKNa0tsiRhPCZSwqvaxmIbU1CsLlZkIqvTNnYPADrWwRjhczR8lbBWN3SIulwLD4rBV9feS4Kl/0kE14Gp5OE1hkOWXL8soh6pxdf/CW/x8nF2vYB+1cAx36WbBLC6o8VJB1FZNL4e57hG5wMTXBK1BivAL1pKQxmwVZ9nC+bZTFvEK1iqBn5/2G3tJUOtMpmr1fF/OWL4PLy8hAZGYnExERMmjRJhYngC+dmz56NxYsXq5ASe/bsUbojR45E8+bNcc011+Cbb75BWVmZaksTwSdDk8V/NNiDmit1xuvDwUryJCEprubz2B589+gwJIdYkNppIH7aC/D1zB57EdZ89i7apKSjfsY5mDxtjky1Ew7bbiz+4U00b5KGhKyO+OS7deDfD+xOepgzOATJezvKjm7C4zd1R2yQBZbgOFii6yM0Mhox0WGoFR2IBimpuGbwROw9XA778f148fGHUKdGXTRt3hYrNm1Gsa0EZcf3YtLTT6B27VQ0y22HjdtWY+nSWWjdKBOd5FrN+v5HTPvqS4TVCkdU7TgkJGXjtnE348CaOeje5RJEplyAFz+aiSOFG3DbxAGIiYlCt27X4NvvFmLRouWY9NwjSErNQHzDyyRvPrB3Nu4a3hWW8Gg0PfsS/LBknfozhF3mySnCxzGfEcYkcoarLzqmTpyZMGHCxJ8LkxQ2YeIUYZLC/3zpfNOUanNDefPzhb5ZM/G/hldtFmW/5nKrb3euWrUbKSnnIz2tF1IbDERWxjikW8eCL0SzkiRWpDAJ2VFITWV4hr+WFD4RT9hPh+mTCOK/q1itMqfKC5tjkTyf7ZxXzndW1lDk5PRHXOw58uxLRUhYEoYMGw2X1yEbH7p/GVtKEyZM/LkgqUCOyyCFXWRvcKzUhuWr1qFtbi6S5LNKe5Hnm4Zg/lk1saxlMFa1DMHqVkFY2caC5Xl8sdqZ7CkciE3NghURvLK1EVOY87E8LxBLWgdJOgDrWliwoV0kZufG4fPL2gDbVskvq1I18/zy+xlN7PDRr73TYZPlJ/NC4pf/GcpXl9Gd2G2TMhe8Lg88cs6qLh0P+3eDjZOKo5CAo9+pYRZJTMWr8kTsqWI/fR1qvX8L0eVnErbjls8p9OilJy+J3pYtW1R5Cr/22muYMWMG7r//fvTs2RO33HKL8hguLS1V+seOHVPew3ypnGpWGtQhIpSXtYAksU77l/+R4Pg5g8Y8cKDqvxqvkZBcyabXq4NvcCvchRmPDEFquAUNzhmKH/YZwTnsRQcx/V8TkRkaityzrsO89Yfl0ou+5wD2rvkMV1x2NiLq5eHxV79VfxuQj3pwqAASRtzn8sKf8fTt1yI2xIKYxMbo1mskuve4Ej26dcaAPlfh1TffxM8HbOolcKX7N+L2EYNQI6wOLr+yHw7Z2I6MoOIo5nzzORpmN0Zyejamz5+HTds2om/385FVJxrPPvwobpx4G0JTknHxtdchOSkLfS+/At+8/iRaNWmGlPY3YMnOEhw4sBpjRvZEUHAAgkJjEBlTH7E141G3ZiiiatZBvZZX4qOp04E9P+De/MsQHB2Ldl2uwdZDpSiT+eInInoKc06Ny8cfPFM5zFBg6sSZCRMmTPy5MElhEyZOESYpfGbIZbd/+Ys4w3e/+DWc/DRr4n8L+WRcSbcK+V9UZMd7736LpKSzYU29FjlZI1Vs2wYNRqJ+8hCkpBqhIzIySWaOQkoDkpd/ftxef1I4M5MvaBuO1NShYudgJalpDHMxXJX9Wv2/j8gYVCgOzukwJUynWY25bpAyQOQGNGrUD9HR7WWjlI6AoFoYkj8CTm8Fyu2M2cjNjgkTJv5skFQgFebk17udBlFJmmXhqo1o1rgtaspnFXoL39cyBj91iMOK5kHKO5ZhI5a2EWlrwXJ6DJ9Elp4psrqV4S3M+Vgu87GovQVzz7JgXgdJt6WOBT+3YFiJAPzQtiY+v6INjn7/CbwFe2SW6eVIUvMMpnb46OcCVB+L7HB6SmCT3ws6i7/WjXgBNjmRlUmXYikg0fpLmuz3QBriHyYrGSbC+GzG9nTbFKWjLKJXskPKGV6CQSb8gh8pO38pJPVIYPNIkpbErY4p3Pv665CYlKBiCt92223o0qULIiIiVJzhBg0a4Ouvv1b6drusEx/hSyHRy3MthCaH2fYfTQT7g72r66TOOJe+a0ITfKLnUVlasAtf3n29IoVTLxyF6buMyCC2wj348bEJaBYZisZteuKH1YfU3YHKgyj8eRp6dG6LsHpt8MAL02GXJcC2nIoWZvCJIpQcXYdHbr4aNcMs6HRJf2w7IHOtQo3wmpXDLmuoUE6dIqW7VmDioN6im4iLLr0eu8rs0pfMa9EhzJ/+KZo3zERKdkN8MnclDhYV4dl7RqBRnAWDundHpwu6oEbrDnj0nY9x6QVd0aVlLu4b1BONM7Nx/oB7sV/a37tnNYYN6I6IyBA0bJaLYaMm4uabbsfNI4Yif8R4jHroHSxctgbYNQN3D7oYwdFx6Np3FA6UAcUyheUiylNYLDdjCpswYeLvCpMUNmHiFHE6kcK0lV9l+y34E56/Roye6aLiDA+vHme4312TsWX3Ed8M/rNBL5c/BfLJ2Ks8iYCPPvgULfLOQXCYFTnWa5GdOQwJGUPQpP1NaN06H62a9UNmWi/kZA5BBknhlFFIlWMaw0hYxyM9bRwy0keJDEemdajoMHzDaKWTmj4SaYyRmzkGKZKfkj4IjZuNQaPssdImCVySoYOkznBkZY5FahrbHg1rxmhpX+pSh2nrCDkniToAzZoz1MJwlZeRNRq5uTejdSu2SQ/nIaJvEMgMx2CV9qxsL1PsFvvSlHcuvXGlvbR8ZMp5RvowpLI9Es1p0rbo8yVwqexT8tJENyNtBLJljGlpw6QtqS/tpZLgzWSbMgZ6+lJXxlEVEkL1QzuZx5AQYhfjM2fKPEjb6Zlil9TNzhYbrIOl74Fo2HQEWrcZjzYthqNxRk/UiMmTZ19dhEbEYeDQoSg4ViiXjhsdbnx4FOidjr8oMEE9iuDXdE7O85dTwf/XXlUex8AtMt3btIvbr4xLgQlNfehMfyWd549fK+dR0XoiegPpg1/yBHTdk8WHX8kyxsC29fbfN6Yq8Jzy/7XzW9CKup0T7Rn/Tmj8lmgY5/xnvPzot+pXB3N+X79afgu/pmsI/2kbSQwaHqNaNKrrUs8gEU/8o736vuD10ddIXydpwb9higIT9Ir0wO41iC54SQc7UOH1YM7iZWjeLFeRwo1EHs2Nxuy2MVjdPAgbWwZjdQsLlrQ2iGHGFF7VKgBLWwfLOWPrBqi8NbmBWJUbhOWtQ7GsdQiWSv6K1gHKo5ZhJ1bTw1iOy/OCsEyE5LKKy5sbjJW5YVjWKkLaDFHetyRcl0v95XnSRyvJY922JKONOL7sj17Ly0RnWV6o1AvHwjbhWCx9r2wVpOwzwlwYtq5sFSj6fDkcbWa7JHZlXAyPIfnsh3qUFVLGMdFWNS5KrvTbMgRrWoaKsH0fKdzOgjlnWTC3gwWL2wSp/tbLXC2U9Kst62BERi3c0/ty/Lz4R3g8FTL7vute7drwXpbr4Z/H44nl6YNeq/onnwP6mSJlVXqGRhWqTn3rhZ2r86oCP/Cc/Zy0pkSqrz/J09VPqBiiflCHtvEokKyqMYsJfHkYE5UqloQkyQEXSA5fyUBeT6pVyrrkenWrnzwXVQ7hlCCNMGYw+2WDPtAsYxj8SeNohF3OHZJjkMIMNuEb+X8MkrgMH0GZOXMGJkwYjyuvvBIJCQnKa5jhJCgdO3ZUMYW1ty/DRGiwDRLFmgjWeQTz/InhP5ogZuu0wNe7/m/MiS/hFtv41HLL9XMd249pT9yC5OhwZHbsjdnb7SikTnkBFr75OJrXikR6w/b4bNYKFLv5wrxCrPrpbbRqnILkJhfgva9XoUI6NFYSrwA9p0tRXrARj95+DaIjLDira19sPyxK6jaSNerxwiF98NNohcsJx9EtePKuCYiXzyF5bc/Dkp37pS+5poX78MGLTyM5KQEN89pj3vYjKLRXYMGXL6GjNRopkRFIrJ+Jht2ux48bd+C+iTejjjwbrTXCkdwgAxOe/gDHpY+ioztw101DUSs2Br37DsDBIjtcMhbP8QPYt2cf1h70ih1i0N65uGvY5QiNqY2u1w/H9iMV6g9y9FkvdXCF+c2rSlGYNmHChIm/HiYpbMLEKeJ0IoVpJ+W3yGF/svPXSFFTDLlw7LvV5uqcQU/j+0U/+2bxn4v58+fDarXijTfeUBuVPwpqPySflb0VbrRr1Q6W0GBYAmqgfuwFyMkahMyLbsZrP2zHzO9X4JXH30KLjK5omtEHWWnDkZoyGslpo5FivRHpqXchvcHtyMoYj+yM4chM7o/s1CHIyJiA+mnjkZw+FqlZ45CefTPqpQ5D47yRGDnuY3Q570lkJecjJ4desb2QmToczRvdicSk0WhgvQmpmROkfemn/jCxZwIapI5EVqMRuOSyW3HjTe8iVXnVjsal3V7ClKmH8eUnm9Cn571o3nAwMtOGiI1DkJN9IxokjUFaygSk5UxAonWYtDsc6VkkekeiQfIQNMoYJnYPQYNsGVfOOKTUH42G6TcjO+tG1EvJR2rDcWLPSKTXG47cnFtQv95AWHNGiYyX8cl4c4ajQdoAGeNwZDWW8SYPVQS5VcqysscgNT0fKWn5yJD5SkuV9jIGSN3hUncCMrJuRf36A9CiyWhkyLxlWgdg9E0f48vpBzBz6nZ0aNgT9eq2ledJLMJionHz7RNlYyvXTO1pucXzbXp5LZnH5XJiVyRgBjfm1OPFlgPLKdwnaWH+yaLLfKhSlx9K/PNEqqAzfqs9/3IelY3cpPILsfRg4haPZIMcqKPHo3R5wnLqS6bK00rVFH3wb8RX7munEmUiJSIkLU6QTNWEeUpO7sMnWsEvS52rH5xzfqmVtrIP+sidqHLi+rFNgX+hv5xIVINhs6INRNi203ck/eP3de7fENWq/ODRyCN5xLoGfcTWf6HvJ4bd7FsL6/Bf9Xq/JSe35y+/pm+0y3+0j19cNogmXX5yGyRTDL9Ep9LlmfHPDbfyhDMIqxNfg2ea14NrT1o80bESEkXGONmeXVIVki6Vy3hcysvh8TqwfdcWdLmkExIDLOgknwHeaBOFJW2jsb5FCDa2CMWKZhYsa2fB4lyD9FzbKgjzWodhYfsIRfySNN3QIgirRXdZ2xpYKPXntrRgZYdgrGojR0n/zKPUXZoXhsUkjdsapPC65pFY3TwOi1rFq3qL20tfHagXgGWto7CwVTQWtbZg9dkGEbxW2ljXiuUWLGgVgCWtY7GgXTxmtq+liOxVuSFY29IghVdJvTWKFA7Bkjxpq00E5rcLxNLWQdjQLALrm0dhaSuRvHCszhX7cwNVXOAVeUFYITavlXFtpHDMTaKwrkUNrGFIDbYp7ZMkny/zsqBdkNgRpvLWSZ8zz47EkJR4NJC5TAyxYOzw/vBWOlVUBBWmQF8fXnC5l/mV+KprxjxeNx93eUKPJ7xveMpMPk9Ifcka0OQq21Y6xnNB/WA+Ra8XeuLyBvIVKD2CCZXPtaTXmXGfsz2uQK5bY72xDd+By463lK9/NTi1TmVM1FV5UixCT2DyY0qdeeXyQ5ZhwWJg42SRD6RsuxSKmWXStTHCCmlFTjh8NitVTg1s4N81wjI9acagjH//edfqnlNzaYBpt9uFI0eOqJAR0dHRyks4IyMDV199Nb7//ntFHJ8O+O054FwZzxnlXS3PlbKSQrz+wtOIja6Jlq0vxIZth4wV5SrHjhVz0f+KzqgVF4Feffth7sotmLdkBcaPvAF1akWhyxUDsGJLgVpFJIbV2vRIbZcdZUc24ZG7eiIsyoK2V/TCjqOiwF/DXB+yTuh5y9l0SG+OisNY8P1naJ+TKu3WwsDbH8TiDZux6NtpuPaSCxBXOxFDb74LO2Vp20T/0PpvMbhra9SQezcqJgnXjvsX9pW6MfnFB5AQbUFIcARSm7TDd6u3qbvPVXIYH772PBrUTUCTFq0w6b2PsGbDGnz00kMYeN2VuPHeZ7Fz70E49y/DTUOuRnBkLVx27RAckcXN37DqrpSp4/Lm7PGONO5vY+0p8KDFhAkTJv4CmKSwCROniNORFP4tctif6Pw1MtSUE9L5pqnV5ovy2mcLfDP5zwRJYb12+BVJxs37I8hhB1/GYew/kGXNhIUvGwmsieT4zkhJuw7DH/sMm2Vz4BGd/RsLcEO3schKugw5afnIyhyP9IajkJyeLzbeiPSUCchIHYqMlP5Ir98fDfmiNMYdzhwLa/YY1LPmIz55MNqffzfenroaW3YAA695Hg2T+yIx+SpkNB6InKwRaJA0CNnZo5HTaCwS2U7jsWjUcBziE/ogo9k49BowCevXlWDeT7tkI9gXSQ36o+cNL6FUdgT8puzEsY/AWr87sjMGIys7H+nWYbAm5yO1wXAkkZxtNApZDenNy9ANY5CVMQqN0qXPdLG70XAkpA6WdscjM22c2D8cqWnDkSjHzJybYE0ahabp49GkyUikZAxAfRlTasYIaas/MrIGIDV7iMzHMGRnjkNasvTbYBByckRX+s1qeKPMzTg0yibR3BfJYl9a9k2o14Aez0ORQxtEPyWpN15+ezXsck3K9gKXtesj9ndAZEwq2p19DmbNna1iAzoZPE8RC77dPTc5ev9Dqdr0cN1w+0iRAn899UMaY97J9Sk635fw39BXF//Nl6+iLvxFWzyhTX79qnMSJKQuKByT6PnX122oBHVFp6o+f3C3q8W/EsW/THRVHYJz4tv96kweqsoJnvi3wbRW8qX1aTXhD92/ISerVLOJ+IUC6/n360NVOVG9D13o/88gU39xhZRoGBoGwXwyIax1/fWrg/ZxDjUBS6KWbZzo72SpaqtaQo+VdvCfkVu9Lu3SxDWFOYYe5QRYn+X05iUh74Tb61bedy6PtKGNUMI+9b1krK3KSlkbipSTU39dBcM6Rdu4RN8r9bxOadcJu70Yb0x6FFc3j8eYFAumnRWD5W3DsbZFMDbkRWJ1XiiWtw/EstYWbFRetcGY1SoIc9oGYkVbetFasK4ZSdRALJH8pe1DMZ+kaYdALJA6y9sFYn0Hg0ilh7ARgsLwwl0nfaxpGYZleeFGiAopYz9LcgOwpn0cVrerLedBWHOW9NNO+mA9KSepTGJ4dW44lrSOwswOUfipXRjWtGCIB6OPFSLrSe6KLMsLwaLWwVgkNi9rHaj6XdsyWPKDsaRNgOqbpPPypiR2Zbx5QWKD9CV9klhe1YShNCKwMjfE540cqMZAz2bay5fxMWzE+vYWfN4+Br2SklDPEoLYgED0uLQzXI4KeOXa6DWhrou6Nor2OnG91HqUU15GCrPU+uK1lisoGUYenwO87rzmUs5MVXaij2q3s2aZq85FfAdfUsAU9dgmj6IoWcylBcaq5XqjLZIvpzoWL0tUw4olZn2DljOMMLrk3cYXhjG6ssqWoR+YCzx3/UqMb7gYN+bOw9cPH1IxBthDmeiVyj8HqTMa4PfI+zvjZFKYoJcvYwTzpXIkgnv06IHXX38du3btUuX+4SFOTxhXmN7VfHbxShcVF+Kpp55GjZha6NjhImzZulddQrc8f9zFR/Hlh2+gQ5sc1K5bG6mN2yOjSR6S68WhY8d2+ODTGeq3Kv9kcozBgbnQGCLCXYmyw9vxwO3XIDTagjZXXI3tR2Wd6cegdGCXtWKsUobwKEfZ0T14/r6JaJKThYjURkhv0RodGmcgM7E2ul91HX5Yvl6FtWCACvuBpXj6tsGIDwtB3YQs3P3cJzgu3c+f+a585qqF4Kg66NyzP7YWHFd98APc/q2bcPOo0UhMrIeIhETktstFVmI4mmel4O6HnkVhYRFK9soaH9oLoVG1ceX1+dhztELV511M4Xq3e9SdITPJuaTImLmM/MWECRMm/gKYpLAJE6cITQrz+HcXTeidLCwjOexPcP4aEWpKdbns9q9w9uDnq83bHS98CZvD2FD90+BPCmtJTU3FK6+88j8nh138eqW0mVK/gfQTBEtwXdSp2xmpjW7A+z9uUm+4LuJ3+2Qv+ez9k9Es7TI0zRiJ9LRRSMnug+TsXmjYfCSysoYgo0EvNM0ahKxMOc8cjUbZw2FN7Y+0jEFIzR6MBg2HoN+ol3GwFDh4uAL5ve5Ek5QeSGvcF/FZNyCj4WCkW29AZkZPpKV2R2Z6L+Rk9ZO2pW7mAOR0HIfp84+gvBhYMnsdMtJ7oH56T9ww4ilsP+xCRVkx/o+9twCs6tjahg/uUChOkqMxJC5oKbSFCrRocUtICMEpdXdXCsXdaSm0heIOSYgHd7dAAnHP869n9jkh9HLv+7/f+33vbW/3gpW998yaNWtmz56z5znrrHl92qtwt/aEu1uIAmrd3EahpXU43KW8iydDYoyCk/MweLiOhYf7FLhKW1yNQ+BmGaTkm7sMRyvvaXByCkUrt7Fwt4TD5jZF+EW4mqbB0iIcHh5D4eoxGM7mEEmPRGvPELRuNRJNXPrDRdra2mOaLHomoKXYbXQZAidzuOieKmWlPuMU6Y9wmD3GiO2iq/VE6auRStbdeTRs0l9fztyjQOG0c4XoFtgLHtYueKL7cGzdFaMWgtm5BD94Vn4ZRGYamav+BzHzKMcyXEY5/Gt4LfkPXDRxQaWV0RapZJ6Xv9b4ni2sS8rdp4t6WH/5esvJakL/PSrTTeKJo42OdpId18yzC/PAKh1cpsehQ2uvAyDUzkWHwzPQIa/ACso7+tMO3ihZOZDL1XOvKP8x8UHk0EkbWL/DBrZBqLxOTdk9/mP6fW0p144yQZ7/kz4iOfSU6SNRjrpEtnx9qixt5b0l21GFewXtxGvKCqv+owJHWwldsKxdP7P/yIocFQs9MI/6tftXUpol1VCv1CFZDk9M7g1HzM1hiqbO0bZcUZeD4hLh4nyUlBRrmB5l7HURcyoUHerX6dQnnJUv5fm7/LTLiJv5DhZ2boatHeogmiEXvA2ID6iBuKCaiAqopAG+rSsgyqcydrergn0dDEjuaEASgVovAw7LUXnLdjIgKsiAg5K/OaAKdrWrg/3B9BDWvHfp6UvvW3KK7z2gN1n4BIFfyY9qbUCcT03Ee9VAtAfPaYscCQYHGhAtcolyfbqNBvzuaG8QmzRPZnIUQV7hE2LXMWEF4LK83cuXgLGDo0TXLmnHgbZaTOAj3hWxz7cqdgZWx4HOdSW9EmIJLotsDMNQCCf6VlCexLSd7TnsXUmFlogWuQ0dWmBECzOaG6qivqEm+j79nNymYhTl08M/S7qez5x2T9Q95w3mfZI/pUiXv3eEtS8qtF8GcHzx5isRje33tDzzwKyy4eFIKJ9Ylinyku/IpmiZhvLzhePSnqQV5tyZI1kOzpZr+k1yzNrbowpQM2EuescT4r0jrbgtIzZTxrLIpAL7pwOjnFLwfKVTGPbQcbza+SSyj0q1UpQ/sM+VcirydaH0AX9qQr1/AfojKMxrgr4Eh+/cuVO2iRyJ6eVDRvw1ie0tkjGXh0L7roEZmelYvnw5ujz6BMLDJuPixZvKW17NN7yf2bexd+cvGD9pPFoGdEFQpyfw4rTxSDmciDy5/3ekS/jWwNmN73sokPsvj0He7euY//0raNvJA/0mTMap6/JyRaE8+YyScnky8PkbC4LChQVST1E+ilKv4pd1P+PZkZFSVzs891hHfP/ZRzhx5qKq44Yw5UvvHMPP8z/H4+3aonffEfjt4Dlkic6LJw5gyoQRaNu1B97/+gdkiF7K85cdpYVFuH3xIqZ//RWCunSGd5AvenTviDXLF0sfiE6ZdG+di8O3n72NoA5d8PLbn+HctTtqtpfmKOZTpQHCjs9ZMp8h7VDGOumkk07/BtJBYZ10+h/SvwJb/2pct4kFLbtF6KDwf4OffXsrOkfMuQ8Ybmr0RGBwO3Tu3Pk/in18fB44bsjcSGX6dFn9/V8geluVCudkZSLQPxCVDTWkjqao3eQJdHr2VZy4mY9UWZOsWX1COSsd2JKCx4P6w9N5JIwtwmByHwqr11D0HvwZho/8Ft06jIOX62AYbeHwbfsKQkd8hVGDP1IxiZ2sQ9C11yf4ZNZuBf+k3UrD9He+x8h+r6GF5yg0bjka3Xu+jhHDP0DIqI8wdswX6Nv7NZhdnkVrjxB4eofhmdBPEXdBDJE1zbmk0xgd+haCu4zGgIjPcfmOtCe/EG9MfRn9+kzF4OGfoO+Qt9DzuZfR2jIA5uYDYW41FS4tx6FDx0iMGPYRRoz8DqNCpuOp7pPg1bIvbMY+sNmGon23NzA4dAZGD/8Yj3UMx5Bh36D/oBno2fNb9On1OQYNfBU9eo5Dt6dew7AR32HooLcwaNAraOnXBx27jseIoXMQOnQWBj3/Btp49YaHVwhMttGwOIXD0zYOz/X7DP2Hf4GBIV8hfMJM9JE+8HTtizbWUJEZiu9mRyFbOin3KtDVuwdcjV3R/clwJKRcVhu+qGUad5tXIBaXQFwKaWCWxuxhLpPsC/+yRRAXR5RlPuVYxrGcoh6HoIMpzzo0D1CNef7P+I9LM/tiTDHPmUZ9DjmeqwY9mMuo3MUfZcpl3aP/QoBJ5c1xmKrM5R9HHxFsINv7k3kOOQcr9VTCvnTIs31C5eph0Xu34g+gsJZ4jxUx39GXjv4UYj6z/itWuvjH0UgH89pREc/trAwkl8t28D/oE3t47iheVif1s+0OZibLOMihzG6LArwcZRzjl31t1+/QW6bfzg6djusHyaj7KLq5wRYDrzrkWKUk3b4BpKcCWcRAOKVQVGRUqZJi5fXrgBVYVJGcqHsoQsWUF11khiclHswWKJAm6yaurJ2BX57zxPYOdXDQ14AYLwMO+VXDocAaOOCjxe9NDqiDvQF18WvnpljdoT62Pt4Iu7s2wp6OjbCrbV3sbldVbby209uA6LYMr1AT0R0exn7/mogPrqVA2QTRnUgvXAf73WPGL07xZzzfikgIrI2YwIcQFdwIMY+4ILpdfSQGVUQsbRMZgsJHxUaGlFDhKALtoC49g+nBK0yAmXpVnGKRd9TLuMCMG0yAmHkEmQlYn2F+KwMOBNXDtuB6+D2oFrYwBnL7SjgUVEHFLWY/JPlWUGD0EZE/Kkdlh09FVefPwQ0Q0aQeLPLZ16hCZQzq3UuGixYmQgOFCapq90a7QXKQ+6MdMoUz5JZzOyxuv6WByGXPHoXs8op5rg6ahNzWMi6XfU/+vjK81Pzj+a/cqNEyy7EA4lVjAAD4wUlEQVQaQ+qU/+hVnyus+fKSNWCYo0kqKFdOK0F5xlTOkqcmQ85FjrEkrgNb3gcGPnQcQ6vdxNA6F/BCwHncOSTFZEgWSfsZ0Vd5TubZyyidf356kLcwyZFePhYwgeK/jpfwP7sBvM9FKCjUxgHB4ZzcTBQWFqFIprI8ma/4hVReYQkKeMFJrFg+d0qz5bYWI0Om0Fy55yybX5inQkDkCPONgeEVtAlMjpx2GWoj96KMigwV15efXtr4kApEiN7oOVJ/gfJal6QCORJ0l/FDADiPaYWio0BkRK2cqQBQBVSed0Xk5MWsSOwUdaw/U4qjJE3ZSpsoz2ezoCibwxSFdPQQ/QXZmciWuZSjtiBPNMo559kS9es26syU9sucKzpoKdmxyZzGDliYDVaN1uwvzzrppJNO/wbSQWGddPof0po1a1ToiL8CPwjMI+uewv9zLh9n+EF9/HfgRo0aYd26dfYn4/+USpGbz5iY8uJflI933nwXrs1boZLBGTVdnsbED1cjU97yjx69iPCwxbh7C7h9MQch/SNga9IXnuZxaOo8CE/0fg8HDxcjW9YR875YD19bLzh5hCJ82ipkySqjQN7f+/d5FY2cnsOS327jjKwH+AKPYilwOxNJBy7DPfhl9I1YiZ83piBb1vu3U2WNew2Iib6JF6fMgatTfwwY+DlirxcrLxS1esjIwY3rd/HuF0vQc9TnOCMZpbJK2bFuOxISr+CmrEDuyov/tj1JGN77fXhZxqOZ6VW0e+ILrFy9C5lSPjW9BOlSZn/UYUye8B5am5+Bq6UXQl+ei0uyOuKvwvdu3omrNwpw5Tbw7icbsXXnZeV5FRubgg2/xiNN2sd1WXxCMt7++FMsW7sVVy/JYkf0Xrx0DZNefAmWlk/AxdoLrTxHYNiQr7B931XlLX2ZbZU6Tpy7gu++XYmOAWPg3KQ/ZsxJVHGD754Dunr1kb5+Bt27j0dUzAUFPnEBl5EplXCxoxY3XPSoFZ6dywFrzLeviTRZx2qQ+fa0sjz+oTA7mD9fdYC9PL/ne/PHYhrzH2Uc5aiDdTkqtx/Ks4N4TrHyfJ+M/cSR5pBR9Ie8/4oVyQnP1SrUzuXN5Q1WsTy5RKanFhfccs105t9beWqs9FKBo//Zv9IfrIaqyrO9am2xqgpqpCX+IysqO7mXzuLk8nY40h7EjnJ/LP/AfPlTxuXSy8vxvHzdf7ShrJz8UewoUK7TFdAgaWUsMg5k9kFcprMcl8+negc7rsun2+9zgTx78VE3sX3zHRzcV4rjR7X5hvt75sptphMdrVS/sBamSX/sCnUtcmQCw/Ta411nQsmN84id8TaWPe6Cze1qIzqwsgqTEBdQA7HC0b4Ml1ANsa2rIfHpNjj9/iTEfTgNiR9MxZH3puLsuy/hwpvjcf2tUTg5KgixnRibl961NZASWA8HW1ZHnG8jxPg4I4rxg4MqITrIgASRURu5+TIshdTHMm0rKu/jfT4VsCX4YSQPeRS33hiLtAl9cLpDHRxpY0C8T0UkBNUQXVVwyLsSjnlVwYnWlXDCq6ICabkhHT2D9wdXwL7gyjgQXB2HAisowJlxgo8wfIR3ValT0uT6tJcB50TvmdZiUytp+yMtsDXwYWyW+hN6WHFhSCvsa6dtaBdLcFzqJ/jMuo7x6K21IybYgC2d6uA9cxUEy+eeT/O6+OjdqSgp5NzH37AQuLffC7L9XD2mctTiRzPEAmcjnms+jxwS2ixmnye1BJWiAbuOMvZxIMyyJQruIrTFO+3I0b4M02JWE3x21KHgV8XUS9ZIG4jUruVz1qR1BfKXcaoL5PwelKXK0za7fWStjDaclV5eyPjd/C4woG4KhlW/hCG1TuD1DtdwN0ry1MCUdlEZZe3Tv1b4z0//FSjMTeXKX5P+/MAw7fxnN4CjswhFxbkKEC5Rn0W8cZIjzeL3TmymaiFVFMoNzZNxWcxfRZSoOatQmGOKXwPkS9FM6SJ+Mqme4pdkjnHAY+ldkcrGLSnDJ0ILh8Nxzi8qGB04H1kEjylLBbky3vOKkCV2KH0FIk8w3p5NHRzHKJUXHHo6y+RInLnsk7E4Q8RzkC3l+QSxHpZiWXX78lk/rac+6QtlDz3DpbzUDSlPEDwvnwGEREbSOf/mFzFWvPbk8SnWDCbTMntf8+BgnXTSSad/A+mgsE46/Y3ojyCeAwx2kA4K/59zeVDYybsbnIWHhETi7bff/o/hUaNG/cMYIterVw8ffvjh/5WNVLjsyC/KlVdm+Scv0pfOXcdnb87Aww/5oZnvICzachR5BTlYuXAV2ga9iL27pYxUO+PT6Wjt/Cza2Mao8Amdn3kf0cfklV7ezud9slryuqOR2yiMfmWVeh+/e/EaBvd9Ec1c+mBA5Cos2nBJLU6L72Zj05JNeG3ydDwx8BMky6KWHnuHYy7hi8/WY+PvF5Ah64k7svYPH/Au2voOxStf/Iwj10WprALSzp7H5x/PQ8/+r6HPmFk4fVMalSM6ruVjyaK9mD5vG45cuq28Zn5dFoPglqEwt3oFS9anIV/WFXExMfj0s7lY/eNuWfAAZ06kYuRzr8LUrBvC31kAquNOPtmXb2L+3A344rvf0e25d/HTrydkkSKLdlFyYPclzJ65A4ePXFOOV9QbH3cJc76PQmxUJgok8VBiIrp1HwujSz+0DX4Ra3+8ivOXgd+2ncR7Xy7FL9ujkCurvLQ7uRjS7zU4N30a02dHI1vaknmhBN0DnoOryyOw2bpi2ktf4sTpqyhk8GQusbiCUosbLnq4POIyysG8lnTHAsjBiuzpLEYuSyccQaCFMVjpvUbvOsdmXvx3vypH9WRNFcEMgh0aSEJPJU2ftvQrJ/iHeoUcihxcRrwoJ1wuX9PNOpivEv41qwPbWA4MKr92dLCqjjazn7lgJRMgljLU88dy9uqZr/WdFsPW0WflWTOF/1iQy2DWU2ac1qcOtudo7fuHysoL2Fny/vGm/COXyf+R5Y/SwXpoF+2z26gQUOZTzsEiWx7ELW8iWcnwDxMduv7AChimHrn8I99XnvY42FGRsLJLhCnvSLaXV7eQ544i9mOB3M5dWy9g9ozTWDA3FatWpGPjb9k4sL8Ix2Quu3Zd5q0M7XkulDL0IlZzlr2pjipUtWq3L0kRO/MlLSs3G9t+XYPX+nbGS64VsFptNFcTSf7VkOTHOLqVEUdv24DKiPKthXPjegOnk4DsVKn0PHDrlPBF4KacXz4KbFmIG688g/0damgbtnlXVLF64/3r4KB/Y0QF1EdcQEXlmUtQONGvIpJ9Gae3EqL86I3LDeQM2O5bFbueaInCHz4AroreI1tw8unmKmxDrE91JATVQ7RfFcSJ/hNelXC8dQUN7PWpqDyCD4muA2LzvqCq2BtcDQeDKyI+UOpTdUp9/tIuqYvXx8XOU14aOJzcujKSgp2xJciEpHF9gMWvy4fIMOx8tDIO0CPZn5vric1sm/SLCiMhdcZLffsJZneuhbVBdfGKRz3MemOyzNMJ0st35bPrzn1DkffDcW/KswNA1Xxk+UwSgNXKlM2TdiU8MI/DxD5U7KygNcnnHEDmndaA3XtM3ZwzyZwz78FSaqwIa3+pmWNfA9G0fJ7Tj5egsgYW36vbIXNPD5nn1KS+v+I0dRXYKrd24ENHMazmLYQ0vIKX25/B3WjJo7kiWMgjCzk+IjSj/rJEr2AHCPxHcDiP36r+qclxJx90E5jGzym2h59xwjKZsanqfsuA4JHjopSTUoHk52TKhXxeF8v4kXvM/Pxi+vne+6ThMOHtVzGuiaQyUQ2iLJnb8pAhZTgs1BegRXelZAbyS+6KSKGIy5NEWcWsXPtUZ/X8DGDYhyKRYZoCclmr6NQ2tLPbQ1Mpz2dJbKBdqg3IFhU58r4p9TJf9JeKLu1TWhKKc5SHML+sU7e7RJ7BEvmMpRnUm6/1DWvlr9+KSsTeIg52Rw0ipBTbqdypTjrppNP/NumgsE46/Y3IAeL9EQx2kA4K//f5QeEjhry6AMfOyQr+P4z+GFO4Vq1aeP3115GRkWGX+J+T9tour/vycp5vd41L3n8JLZp1QsfnX0X0JXkRL8rEtIiJsJqG45NPopSDSWJUNB717QdP54Fo4RSKTt0/RfQJWSrLu/+sdxbD39ITTdqMw7CXVojOYmScO4Xh/aahuVN/1DaGY0DEEm56jeyruRj+1EtwatgVH85dr366ePlIFqYM/RjNGveAX7sJ2J+QrcDRvev2wM/cBc6uoVi/TSRl0XBoxy64OfdEvQZ90TtiIU5xdxPK/rgHrd1GwNkyDPNWRsmiBjgdexad/XvjqQFf4FIWcPtWHj5++xP4temFZ3tMxYmTd9TCedGnG+Hu/AzGfLgUp7j2F9m9q3bB27UPXExD4eIxHus2XkFRfi6yU2/j+afehrXZECxYGKU8YTJvAuOGfwHX5uF4/cWNuJsNpKYVoN8z78K1xRi0bvUGwsf+hvHjV6F9h4liY2+EjP0QqRl3kJGdgY/fnYUWTdpj5oK9KnxE5uUMPO7fEWbnljIO6qFC5cb4/Iv5yjOxkCsstbjhgudBzMVQ2SrOnibEMmSHiGPNJMRFqBbX0vGza81TSPN806BJVZxV/4GZp6kk6EJwQxZ6Ut7xU2htkVgmpFiVlVOOReZrHsb2RbA6JxNwYZ7DUK0wgVctXijBIYKw/Kfp1E7u8b16CNU4ynHE0RuKS89ytjlYKeLCkp7CfO4oy2U1V9JCzLa3Q5Pnf9bg6MN7Pwd3/CRcA5YcbaIe6uPP2ZnGHr7fBK3PNcDpHthMe2kXl+/aElxrg33AKnt5LXn/qFBLI5edOJiZbAx1Ujfr0OzTmDpZl6PBPGd9ZDkvr6Jcn2gn1OewX+sDrTzrYFkRpJijfFlZXrBe9j3vAZn1sa1ML88i67CBR2GCBjwy1EOZfuEiEd+74xoWzEnDnFkFmP1DlnA65s+7jZUrMrDx1wLslo/tc2eBa1eBO/w1gJiqsBBRwTmzsITjWmwpFdvy0yQjB7lFhTh85iSe7PUk6su8/VhVA2b51cK+wDpI9q6OY941kMxN5AIMOOhvwJ62D2F/+LMovnhalEolN+KAk1uF9wnLecZdaa5MKtvnY28/d0RJGYKnR4MMSGpnwN5gA6Il7UQrjeN9KiCOoKq3QYWVIKi6K6Ay9nesg9+DGuK3R7yROvtLuZ1XpHE7EPO8CfvElj1e1REXUA8JXhWQ7CW6/AxIER0EsGN9qiDWuxLihGO9qiJK0vYEV8DuthWwN7CCtM2AfWLPfuEDcn6QbRMm8H1CjkdbV0SyZwvseKQtrv+4SNoobds8Cb93MyCqrR3Ipue0XxXEBAj7V0WsXw0cCqiKmHYVsIttCKqOLc+3R97hBHX/HKPT8azzQGBV87blDKTdJ95uTYRPkvYc3QcK28cDpbVnVyt3rzzTHXORElSk6SJ4q6UqXeqv45nhOLeDvpLs+DJBI7nQCqg0TYejHv5yh3VpeY5aeHSA2moepAph/lyf30eoai8DOz4CBtY/jT6GuxhU9zKmtEvAXRlGKp8hFuhOSXnH1GG3469KBH8deyzw3MF/DaKdDv5HUqOihHOljNnSPBTKS1MxEVB7ETaT3sD5eXIzmS5zT2FhLgqV167ISBJHEm81v7fjrc+WFwf1lYMCfaXf2HVUQpBVLhzDQqHOMob5DpBTkCbqZOywXhFVugvlMy4/T6qUNwNhNc8Kse8Li7jhpv3znoYyj1UIE4fOziuU10Ipr9ydOX45uvklitTHidmOdrNJtEo9DSUyz4rtnOUJKpfky5xbmI1ihrKgXYqlx7i5nOguJhCtWkKmHTSCQnYqd6qTTjrp9L9NOiisk05/I/pnYLCDygObDwJAdb6f/64bzVWrVg2TJk3CrVtEPP/vEhfBhbIM4HKUcer4C73YvZfRoGFbRLwzH5clLetuKsIHh6BTu8l4+eWfkZlVgsy0NAzvFQ4vc0+YLKPQsfuHiD4pixN5957//nIEmHuhvvt4DH95nayPJfHmTQzsMRnNWgxAY88pGDp+JfcqQc7VbEQ+/zEsLZ7BvpM31U8Xd69LQIDzMzAb+6OxqR/e/WKjWrukH7+GpwN7o6XXVGzbJ7bnlSB+9wG4Nu8Fo3kMekcswclUaZSsx98MfwcuTQbAteV4fPTdRrWIuH7iCh4NeEbqnos0imWX4lTyScQeuI7dO69AYe2y4ti/5gLcW/TFiDeW0PFKrUo+nfg+3Fp0g7PLYLh4TML63+VeSN+cSTgBf9NwWBoPwydfbUaWlM+7DjzuMxJuzcdgdMgi9ZPNu1mFGPHc+2jZYjRamCPRzBqGLo++hP59P8A330Vjx94bauly5+5dfP7hfJhaPIovvtsCrvWyrmSie/AjaNLQScZDTRgq1ceo0CkqtIRa2Cjmgqc8cxFE1hZEhBWYXiYuf7juuk9c0hyApgbo3vsZNMEIh0ZVhOWVvMYPchQla+AMxxeBmHugZ3lz7y/LerhkJajKMlwoOphgCNMciz3qo30EXgnA8p+mT9Wh/mkWq+ty9bAWlrkH1BKIYR2iUy2GhViIBzG2RLlHsR9Zh6ZVS6HAPeZB06+1Q/vpbr6cEVQnc5Gt1cM8bbnOG6ml3bPvnn6NNbBLA7M1T0RtwU7W+pawkYO1PqSl9/45iP1AdpyXr5PJilU+/7B22khEiSAX69KALrLWIxrsoCCrMmRA4z9cauAYj8LaiGS644oFtIM6dbBcavWx3vvHhQYua7bxQeVs5hib5YE4HokdqHSpjl+o5MtzvXtHKubPycK8OcC8ucDcOSWY/UMeZs3MxJwf7mLe7HQsXpCGn3/Kwv69JTh5Qk1lMgdKjaKPVjNep/K6K5Bjodxh0b0/8Qgs3m1Qt5IB3jKHf+1VC3sC6iHJqwaOeVVHCjdza2tQAO++wMY4GDpAJiiZvO7cwMll72HjxG7YNaUXfnstDMf27ZTKZMa6EoWYid2x+dGGiOlhRFR/D/zyZAts6mVD7ICWOPFMCxwIrImtbRtjT1crknp5Ib6vN/YP8MbmJ1pgT6cG2CJ1rW/rjauzvhNbb6LwejR+DmuL3/t6Yme/IET19cK+R2viAOMBB1VQ+jZ3dMHW7j7Y1+8RRPXriJieftjbuQV2BlfCXpHZ71cN24LqYOPTTtg2qA12DgvCzkFB2NXXHztELta/OuK86yImyBOxoaOQHZ8AZF9E1p4vsDXEhMQnqyrwOM63Eg6J7IHAajgYVB0H/asgOqiS2qxOsZxv7uWHkqNH1JDkXSerG6zGGccHn7V8GQVFZeNLDSDFksJA0uoo/x3lOPx4lOdejWH568hiMU2AZSSFCfYMnmol7PWUFaIsx4QGsilZYQeWp40aYYc80x3nShu/ZJCWMV0KaE8zZ1FtTuGvN1QH2MsomIx18jG9Auz6ChhujEefmpcwqNkxvPjkHmRIl6nOKqJ+ftDL/KCQNbn8k9ODAN7y4K9jszkSzx0hIx5U7s9HtNF+Ix9ITOd4kXumWGsnm8Yxw/mM85pSIyelBfJ5w2/tOcHZg+tyZuTQUONQDkqTPAdF/KkExw2rsH+rUFLC8pIkfG/u1uZ99dlHMaaTOecp1q4LpH5t/penwh7DvUT0KhtpkpLR9NL+Yvv9UwIiz3q4qadqL42QuqjNniIXmdK+fORSn7qWAc3nRHUGr+2KVSnawJaypMNo5umkk046/TlIB4V10kmnMioPbj4IBNX5Hnd7Yc19/UWe89N+e0/+Z9LBgwcRGhqKS5cYO/H/DREs4o7PfG3me/OV87n4/rvf0NTlUczfEK188kqKipB6MQ3nTwMXL2pgSIm8yM/4ZDr83LrA2dQHj/Z4B4fOyPJU8ua9uwztXQehlst4hL+xQy1Gc85dw5DnXkHT5gPR0H0SRk5diQJZ22ZfTcOYfu/A6twDSdcKkSbv7b8t3YMA5+7wcB+AJubeeOW9H9VPXu+eTEVIz7GwuI/BjoNiu6TF746Gu9NzaNZiOPqPX4Ujsiimk+Sro94VncNg8RiDT3/4Tf1k8dLh8+jWrg9GTlqs/EPzZXVx9fQ5HE2+gaNHspCcfBNH4zKw6osktGwRglFv/IRLXEtkFWPqoFC0ND8Ki+vzaGYLw4+/3lSrq9OHzqK9NQTWxoPw/jcb1K7aaSez0StwJEySFjFugSzxS3Az/QbG9n0dHo37wDUgEpM/+BXHThTh0jnRcQY4TidBKZuZUYAvPliBFo0ex/ezDyFL2pJ1uQDdg7uiYYMWMFSoCUPVehg5ehxyGPiUJOX481GClw6ArVQWfWQu8riY4086uSRSQJnIcx1Gjx0emaF+bqpkNfiBY4LLqfLMX8jzyBoKpa6CknuAZKEswJiu1X6P6cXGtamjnAJcSotRxPiHks4FIhe1Dt306C4Qowi28OeqBHgIfBaW0tOW4G0u8ovonUlwhACO1C761PJPdLBtxD3kVJUrlnLaz1JFjz2fzL5mGUKMtDy3OEfVlVeSIWOFsRXpucv+oNeTjF8N79O8skQPe54b5HBxqgHuWn+rvpaFKduq6deYfeA414CkYmkHgWyWIagqbeACmrKijt6o3EDnXnnVy3Zr88UOAqByn0pykVeaJ2eEw7R62Oe5Uuhe37MUAX6C4LmSlq9sZF1qYzS2i+eUF2Y7uYh3rNflv8jSYsJTpdrPf1mXcA7LswzThPOKeb80awhWFcrCnfWo/ha9WbLCZ5gWxh7PkCMBVO3es99YB++olqZ0Sj695ck5Uobt4uZJ3NhI6w3Gj2T/sV9yxIaCsvZnsY78QrGxBJliNH/FQH3yX7UrX3Ru33obc+fkYfYsYPZsjecIz5Vr8rxZpZgzswDzfshSHsVLFl3Hup9uYN/eLJySZzb1tjyz8oyqXymTxbZMOe5LOg+zdxBqGAxoI/yxe1XsDmyARK+aSG7F2LsGJAYbcMifcX8tiBs0DDgns9KNG0h+ZyiWd6qLnzo9jLmP27Bt+vvAnbMyOe/HvtcGYkWfYDF8FXAiBqd/XoIrvyyTc5lnt32ODf1aYsvwnrj2zedAXByQcghI3obUmS8iqYcNu/0aY2PbANyeP1c69JrMNyexed67yI5ZL5N7PBC1FGc+fgJbn62BrQEGbO5swu9hI3BywVKZpDhZiR37t+HmR+MR+2QTxARURpJffRx80gdnZ3+M4iNRMtGeErmjomsPTr85FdGdWmG7rzMSRz4naXulLdJJHCxZ8mFy+CeUvNMNUdIfUV4VERNYC3uDqiGqYw1tY732BuyRfjrQwYC9gQas7mLFyfXrkXOb41gbu+xzNVg4rkuy5f7ya04NFFYYkUOGIBI/dDiAOeCJlvFoHxD8qXqJzGNFpfzShVCUMMtwYmF5DngehUulPuoukDwmcU5RJ9RHw/hFQWGmpMnRXn+hPFTas54lCWIHJ2OWoV7aYh8/KL4rRw4q7bqwRJsJc+RzWHtCMtSvdzS9LHwLxUU35FwqlyF08XfgrWcSMMScgpHeUZj1ciJK+WUp9dNOzgMlDAtAsI8Gix06/ZuIfa8GoP383kEjR759MGg3UEsW5hjkMFLjnJMsr/lPfUEl8jL3yUhTw4tFGfJKzZkyGHKzZbAoYFVmX+7tIGmal66cSpUsrs3/VC6f3HKh9p2jHlbKz0gVwkGEmSdJ+So2iYxJeRZL1ZdlYoKwmnelHHHbogL5fJDPukKW4Yc13z0KGAc5U9Tkih4+hyInHw40hfaz5dyUji8M9hqEpKzM9+olgh2gmCUkXTFL8cg0yVN8j/4xRSeddNLpf490UFgnnXQqo/IA54OAUJ01Lh8/mPxIyFfYevCYvRd1+p8QX/i5RFCvzvIO/fqr38BQyQrvdoNw5GIuMmQRwA3U8uV9PCONoKWs5SWNwFXs7mg84v8kmjs/g0d7vImEc6XIFNkln61FB4/n0chtHMa89pt6g8++cBMjn38TTsZBqG8dg+FyT/lz7uzr6Qjv+yosTt2x71SG8uDd8VscglyfgqupL2zuA/Dp12vVuuPsocvo0Wk0XDwjsGmvLGhlzRG36wDcXZ6Es2kg+kTMwUkGAZZ1yutj3oPVOATOtlH4fPYWBSKdTTqPrm17Y/TUpbgl+s6fvo0Xx70CN8tjCPAfiJYtuyGwdR/0DHwR5oYDEfbmz8pTmhtnj+07Bm7GbrC4DkMLq9S/TTpE8o4ePIO25pGwNh2ED3/YhLuy/kg7no1nfYfC3GwgIibNk7rykJaVhlFPTYC/uT+6DfoIR24Dd2Vdv2f7GUyYtASjwr5TwGOe2P7JO8vQpEEnfDd7lwKysq5mKVC4bi0XVK/lipp122DEyLdxSxb6eWJGttjHNR3vn/1XtHJXNXCNizrGRM0ROXLmXbmPcg8ZjiNH7hXDL6oFpSwMNVBZW0bR+Z5g1x2RTRf9abJ+TBemzbRTW2oVoaBE2/mfJbkmpd47UgfLkO/KOcuq2KzsS6mAi02NpJRc0xv6lshwsz6WZZl0GQi3pI/Ur2KVpJQrIdhIUFl0SXu52bqjPfxp/+1bcpRyGXLOX8+yF4plIVlYzMWmlBNFzGN8am4oduMGcE34uoyZmwT3pIxUJ63iZjfcBZ1evrIolfbeFLnLl0ReylH+mtTFTQfTpI/yiKBKCQ2otveftPGWvQ3Xr8tR5Fkfz9MkPYdraREukg4plhUw+4H28R7xvl7lL/vPascrV6Ws1Mn+UR5XIltI1Jh9Qfuk3HXReUFkL1HezvwC55KUzRT7aV0+MoWzlJW8V7wnVyX/4mVpj+g/J/LnLmhlea85NtSvi0VWAdVSF8Hcm5J3WdpxUeQuC1+S8qyXaQRiCfASEM5jv0sZlr0pbbok+k8cB5KTgEThpMPAqXNa3bSHQC7rYG/myB+GXbkgfR4Xl4/DKcAR4ZRk4JjoYFvvSB9Slv3NelhvttzAq9LPR0+I7LEiHDlRhORj+TiUkIWklFJ1v3lvOA7Z19u33sXcOfmYNRuKHwQMz5fzBXOAhXOKhXOxcO5dLJ5/G0sX38DKlVex70AejsvHUZq0nyE9bwnvjrmMwOBuaGAwoK3wD151sb/tw4hpUxVJfjUR51sR+30MOOBbATE+jXF4zHDpUA6U6zi1+APseqE3ol4YjH1vjUdazFbpeOmos5uxa2pvzO/dVSbf/VKZDP470hHH90hDFqBk1Xv4efQTuLJuoXTCGemoeODANul0OV5JABa9hu1PeeDHR/xxfe4MuVnSGYVS/toeFB9cKTfkIJAqDTn/E2Lf7I4f2z2MnQM6I2fbehmAcpOPpqDk4G65aaLrUgxyvxuDPU84I76tCXh7gtyURMlLRNbOnXKzjkqHyE0/m4hzE57FpuAmSBrcBVgn9dyUu5bJQSt17ZmDtMltEd++IuICayDavyr2+hkQI9cMe0FQ+GAnA3a2q4Jl5moYKH35nPkxrJu9H0XyPMhjKoNVmM87v3WQDwX1ZZCMjHxec3DIOFF7wxGLlXujvunkNcsxj4OOP3UnQCUDqbhInkl5ZhQaxTrIlJXbo3RIXhHrlTFE2Ep5/Mu5soF65ZkvK8dz1sl0aXZxgczL3HhLKZKKOYB5ynxHPTwyjUwbRHeBGMSa+IVLIX/Kz0mYedQtx5Ly9ckzc2IdsPbdYqz7MgvX5TmjzdzrS/WHmuUccY+1L7J0+ncRBw5vCpnn9oP9VDvh/XHI2O+VXUZ9Fsq4VeIqW+Z2AqP8skA+HIuzslWMYA4VTUWJvFPws03Ge0muiMmgoLewmj21NG7qUJBZpL6Q5hdxyolYdJTyw4AVyTXDdWhwMwXkTUBeMtRnswzoUga3Vp7y8klDWZoj5fjZpUBgfolXIp+w8sFawomYAsW5MqavyrtmOm7KBzHnf9ZJ4mNFC9W4FXG2mVkaWE19NK4caw21syap8f304FSddNJJp/8d0kFhnXTSqYzKA50PAkP/7tzzrS3oHDH7vn4a/sYinLxw096DOv3PiS/ysqyVN3+Cv56tu8BQyYznQ95Bmiw4+TPpjZsSsH59PH5ak4DVq2Ox99AV5RFccLcAA3qOhLOpB4K7TsX+5GxuSI1fFmzFI959EfT4q1j8y1n1bp527goG9J6Kpk690dA2GiMnLlGbZWffyMKUYW+gtfUpfLpkJy7JW/rJM7cxPuRttDQPxrNPvYrklBMoKizCJqnb6twPtqAX8cs+WViLDTFbt8PHoztsnn3QM/QjnJOFcWl2EV6JeBVu1iGwtYrAZz9sU6DwuSPXEOT9JJ4a8CGOX5OFkrTv+8/WoLXHIHTuNAlTp3yP16bNwtPtJqJp/acw7t2fcZELaemDsf3fgLt5EMyWCDRqGo7NW2RBLQuXo7HnEWQeAXPTgfhwzlakyRok80wJegeEwOI0ACHjflDr/NQ76Zg29G24N3ocE99brTawO3M+B2Ehb6G19wi8/u461Xf0Xvz0vRVwat4Bs5dtRHpuMTKuXcPjgZ0R4NMbjz/+Mp55+jN8+O5BxEUB8QeAQ3tLcfmM1h4C7QpgFP0EYQk+njkNxEaVIlZkE2K4uZ6UiSlBYlKBAhvplcNxwHJcABJwvXgBOLAP2LYZ2LEF2PwbsPX3EuzemYOU5BwFKKs6irJkwUePXOD2bdEfl4XdO/KxZWMpfv8F2Cllt4sO6jovQ4HrSurXVmOyDJXzU6eKsXt3NrZsysHWjSXYtlHqlfK7thUQh1JtoJcRwW3aSm+l86fk3u8txh7Rv1P0s8zmDcC+7UDU7gKcPcmfj7I9hYp5zv6J2VuCnZuAn1YU4OfVxfhpVTHWrQF+/aUQsfGFynuV69E8WdhyIUoA8dgRtr8QP60EVi8DVq0A1vxYjLUbMrF5x3VcvixjUdqj+k/qIRZFEHTL73fw89pcVW79Kim7GFgnZX/5MQPx0flce2trWClHQD9XxllSXCF+W3cXS+fdxvyZd7FoVg7mfn8bq5felX7MxdVLUgfvsZRjfQTYCcb+8lsqli5Jx/zZeZjzPbB4LrBobg7Wrr6JhOS7dudIeoAXKUdGAsI7t6dh9fJbmDcnAwvn52H2D3I+9wqWL7uAHdtTFYDN8UBQl/eXnsspRwqxYtVFzJ17DTO/v6PA0rkzCZrmYu3am4hLvKv6j76NuUU5CgwgyL15YzoWzk4V2zIx+/tczJ2Vj9mzMzFv/nVs+OWa+gJBeSmrvpe+kDoPxadixfJTWDj3lvRHKebPAOZ8VyR1ZWHN6ruISxA5KcA6uPyn1/HpcyX4+edMzJl9C3Pn3MKcOamYP/+2XN/E/Hlp2LKlUIH6xCE43+3cnoM5c3M1UFjaMntOqXCxlCOXKHB4trRv/iyI/dLOH8QG6d/Z04F5TKfM3CzMX3hb2n8He+UZS5bnbefu6xjeawxaGgzoI7zCuy72BtTCvjYVkdD+IcQE18RefwMOtq2MXT4VETuxJ+5cPQYZFWKcdBgBW34jRBQ+7y5wLRGl697HpmEdsKz/s/JAx4mMdNrxPbg8uQs2d6iHLc+2xZYXw1CaJg9HahJiPw7B0n7tsfet1+SBPi4T4FbEvD0Qcx5vhasLvwXSpZ7rybgzdyR+7e+BbeER8gAny+A4iSNLP8bK7oE49f4kuYGJwNmdiHl5EBY82QZJX74g+uOl7l+xfcxT2Na+JfCBpEmZk9OGY03nDtg9eRLyT4iu20nImBeKrY/Xxl6/etj+dBfc3SUPdaoMwPXfYm3nutjduSp2+Upf+FRSHsPRfgYktDMgLsiAqEADdgcb8FtAM3xc34KuBie0MTyN8C5zcV3mlBsHpQkyD+aelwGgAF4CnfSCzZHnS/pO5u+MEyIXLVWK7C25P6n75Shl0qQJRVfUYJWHSQrzoeJ4kucwX8bIHemyK3tFdpfI7pSmyPHOIRmnMjcqMFoewPziuzL2MhT4RWA3V7r+rsyvaXs0+XSxMU3quiblihj9SfSXlhLtJYIrSggwyzOdLrbQtnSx87bI3xRb70i350se8bWiQpaRActGEnST7suWuq6K7BXKsxz7QurMSxIx+XyDDCFlJ+sU+1SIVc43cl4qfwgM8osvHRT+dxL7ngOQA0gmMhIP9lONeMF8crl7JcmOHAWUFpbIO1URcuUDIi/zLhLlQ/uXlSsQdeysGgbFnMAlr7AkT6aVDBRyTBGglXHPLzQLZWwVFd7BnQsnsH7FOqz5KQ7HT8lnu1TAzyc1iEq0z1V+5Zwn8vxCRDNNRlRxvnz+8SHkOCUoLLkyqfOLXc63muX8K89lCQFoeX7EJoVJ80uPtJP49eeVWLhhN+JPydyk6qR6fv3MEatdqxOV7tDJRJ49iJlH1kknnXT6c5EOCuukk05lVB7sfBAo+nfmp1/dgA4h397XR2/O+BUF99wMdfq/QgQDNQ9HAr0PO7VG1Ua+mLF4l/o1auKhq2jj3QfNnJ6AxfIMmjXviueHvae88fhuP+PL1XDzGAwPnwjMXpKswKY7smheOW8r5iyLxWV6QMm7+e0r6Rj4/CtobuwLJ49IPD9qvvIwzJe18c9zt+PNF+ei64A38VvCXaTLCuZY8h388PV2/LL2iPK+O3H0GoY9/z5cjIPRpE0Elm66ROcSpJ65gc8+WIoevV9Gj+Hv4KrI0q6XIt+CyaU/LB7h+GLWXuSIDWePZyLYvx88g8Lx/aLDuCOL9MuysP7um91YveYYckXf+TNFCJOxZnR5Di+8vx7E+3LFxvAhb8Fm6wejbTicjSHYviNLxfQ9kngdbaUO5yYD8N6MbUiTPkw/A3TzDoGx+QBETl2i0m7dKUVYr9dgqv84+oR+jXPSRv6MfsP6OHwj5RKPFWibykl9337+K+rXC8Q38zYgW1Y+uamF6B7cDy9PWYX5cy9j+ZJsLF2QhVnfXsG86VewcMZlrFtxHUeSSpAj6zwuELlgojPZmTPFWLH0FGZNP4O5M25hwQ93MXfmdfww4xTmzk3BbxtPIJsxL+Q/F3uM+XfjGrB9Szbm/nAF83/IFC7EvJn5WDArQ8qew6rlx3D6VK4CQBkXkMwNuBLib4ltx7BwjpSblYlZ3+VKnflynoXF81Ox8ZfbKuyq2lyc9YmRN67nYuWKI1gw9zwWzU3Dwlk5WPxDMZbOKcT8Gdel3GmcPS31iCwBZXrTFsi6c+fv6Vg25yoWTL+Ned9nY+EPRdIX+VgxPw9L5lzAzi3XtF9WS18osFbG8gXRs2zeFSyZnYNZX2tl5n5fKHUCc2ZkYNWqq8ozVUTBcA2cafilyM9rL2PJ3NtYPFvkpgMzvy3CnNkFmDnnFuYtPI6Y6IsKcCFYS+CafXH8OLB44QXM+yEds78txYLvgbnfAivmQuy8jp9WXELqdWkPK5G+oK03pd9/W3dN7tF1zPk2EwsJts7QeP6MPCyel4r4GKlDxg37gX3Cug7F5WD27NOYo+6VVs8iKTvr20IsXXgbP607jnRpB7uDbSNWRg/kNcsvSXtkLLA9Use8H0qwZH6O3PezWLLgCFKSslSbFBAvzNAPm7dcVWNnycJCubdafyyUOn+QuhbMu4YffzqpfskvpqklOb2Nj6bIGFx0GXOnp2Ox9PUCsW0ewdVZcs/mpWOV9MWRIzKGxECWJbjLXxysWJmAebNPYtHsXCwS+fnfae1aKHbOnnEDW7bmKW92fiQQtCaAn5RcgAVzbss9knE0X+qZXSJchIVzpcz3uTJ2M1W4Fjqs0St/86Y0eQ7YfwSERWaO9IWMPY15XqrFG6bXsNTNNiswWOwhSDxf8r77PgfzF8lYl/Z/8/1hLFp5Bru2XcSqb1bghfYd8KG1Nra0b4SogOqI8qmIQ21rY39ANez2M2CvfxXs86+L2IhnkXU2UQarTJhpMngupciEdU4G0lHgVBSKfvkScaGtsbJzI6x+vgcQtR/IuITCzXMR38OIrd418duj/rjIWMEF6ci9FI+rK9/D6e9fxtml0hHnRN+Vnche9Q5md3XHxblfyESdKvXE4nBYK6xvWw+/9BoM7D8sk/UFXNu4FD/1fAyZc7/mt1wyAW/H7UXv4uTn43FzrQyws7sVcnn8w0j81MaC34M9saSLBesGdsTBKSE4MuNLqU/svyP2r38Bvz5qwEG/StjXIwg5+w7JAJTJf+3H2Nq9Pn4PNCCqfQXEBlRBvH8lJAUZkChp3HzuoI9B+qoetgR1xus1+2N4pdfQvcpcPNtwAz588iI+fOY8PuhzAXNfuohL3ExN5hfN85ADXeaXZPksejsDH/U9g7e7peDjnqeEz+C9Hsfw/ejr2L2wAHTcLeKDxDioMoYKbwIbZ2Xjk2GX8H7Pa/jsmdv4oOtlfNnzBj7pfRzL3riM6wRe+dyCYW2yFHB7IUrG0KQzYtNRfPPcTXz82GV8LmXfe/omvhh1BQfXShmpSz0Y8iHFuKuZ0g0bv87Bl0Mu4J0nT+KDp0/h3e7xeLN7Ar4cfBM/f56N1JMiznlC2sSQSfQOPrq9EDPGX8GrT53Fq92v4R2p4+MeV/GB1L1k0lWc+V3k5HOL+DG/1CnghMHJkL9KYP/IuRaUopBvAHKt07+HeC94c8n2+8CDgxXxhHK8h9q9UyQHfrbx3hbx/vJakjlEzp88huGPd4Kx/kOY/M6nyltYFZcPXy0uvPZpoGL+Sh6/WMsqypTP5HQc378Rns5mNGrWHktXR2u/GOHkWiKDvIhfStCNgFo0q/krpeJ8fvGaa//CQz43lFu6Zp/2OUUPeYLPUqo0B4UFrEsUO+wqyseFuM1o0bgeqjr54L3vVqKQ8Znkg4e10S+ZdSlSKLV2rfUaW/3PWCeddNLpz0k6KKyTTjqVUXnA80HA6N+Vu72w+r6+Ic//+YC913T6v0vySl3En7+WILukFHWd3eDi/SR+33MR50/lYdXCffDyGQmjbRDMtoFo1PRptOs8BZs2X8XZ40XY+fsFuLmHorkxFL36TsevG67jymng2vlCbNt9Bus2xuP8hXSkJF9G3/6volHz59DQKRRBnd7HqjVncOkMkHqqFFG7bsDoHYL+kQuwZsMZnDpRhMvni3DxdD62/nICUyLnwGocBKPbKNT3HIZhU+YiLuYqrp3OxQXR8fb7a/B86OdIOF6Ay2fuYurYD2ExD4bZLRzvf7ULJy4A+/emolPHCNRr8RwCOr+ExQsO4+wJ4AxDZV4owf4DpzFp0qfSnp5o6vwUxk5bhONS7uSJTIwc8TJMHk+ghfUpWGz9sHLlYZw8k4W9ey/AyzUERqfhePOLrTh6URbsMUXoFjhR0oZiWMgcHBb7Tp4qwYhn34O3dRg8AyLx3eIkHDlarH7if/hMNhau3oH9Madx4ngmFvxwAGaX5/Dmxz/ilNR/PDoLg7u/h28/PYn5c3KwZEER5v6QLXJZWDE/HwtnpGHWN6exf1cOsjNlqScLLYJrBJlj47Ixd9ZJLJidhuULCGYRUMvCgnnpmDvvPJYtS8btVFl0ycKOIC1DAp4Te9euvIHpX10C8SSCYEvmAsvkfNZ31zB35mEcikrXwF2phyD03TvctOsKZn+fgvkzb2HFQmARQTMpu2B2Eeb9kIrF888gO0Pkub4UpofQhbPZWLHsDBbMScXCH/Iw59tiBf4tpWfmzCyp/yqS44uVV7kCoaUMHSR/WXMDC6Zfx6IZBAxLsYig3bclUiYfc747j983XFVfJhB85tqQoUSPJEDyLmHxD0UKaF06T+yT45I5BFBzsGzRdZw6KX0g/aA8m4SzxN41yy6I3A0FTBIApdfofCk7c3YGZs89i+2bzyJX5JQ3nnC2rIeTkqTNc85gzsw0zKXnLstIu5ZI+R++uobVSy7j+mWph2tk1iXtunUD2PDjdcyZfhPzvy/BMrFrsfQfy84THQtm3UH0ftEv7aJt7Hsu2A8czMYPM8/KfclW/bBY2rRMjrO/KcKiubexetUJFcqCnrgET3nfrl8Cflp+HfOmp0ldUkbuFXnp3ALMnXEByxcex9FkWdyLfmWfvV07tt2U8XMOi+bIGJyu9R/B6znTi7Bk4W389uvVMpCWfcFxdfqY9OESqeu7NJGV+ytlCKrO5pcNc9KwdtUVnDkldklfsN+JP2TL/Vr/8xksnHNebMxQfTfnaykndS6aVSztSsfe3VBfzDhCoLDeY0chY49jQMaE9B/BboL4rI9g9Ia1JbggzzvbwzGxc2s65s2lZ3EpNO9ggsEFduZ5ibrXc9ifUp5gNr2jybNF94zp+Zi3oFg4E0uXpWLdz6nYvvsOLhzPQ9HZ27gkD9C6bh7Y07EBYnwMSPCrqEIk7Ocmam2rYZ9fHbl2xbGwkfIwyIN3+yyw+lPcenskst+cgPRXQnD+hWeQNNSGXW0NWBdowE/PPw4c2gFkpODOz59j1yMu2B9sxm8dA5BKdJu/+c6+LRPbHul84bMEmGOBhGXImTkBCzq64uKcL4FckTkXjYRnnLDTpyF29ouQDjkMTuB3f1mKzb2eBpYvBje/Q9p54NQ+0blX+CBUDOPD63Dpo7HYFtgGhwc/hwuz38DN7TJRXJTP6mty0++my/EI8Osb+P3xSogKNmB3Lw/cPbhV++bw50+w7tEa2NnRgPhOBhzyrYB434pIDDAgTvoq0bcK4n0a4JCXBetsz+ODhosQUvkARtRJw4i6BRhU8TYGVLmFXjVvoq9LAua/flUDXemsKGO1+Cbw46f56NU4Hr256VpNyt/A81WvYmDdCxjU+BjGdTyIizIvKKyKQJZ03c0kYHTbBPSscwl9q93CkOoXMaTqaQyveQ79aydjuGsSNnwtgiwjFTFURd4tGXfvp6O/8zb0qRqPUTVvYETl2xhaJQ39a6aiV6MkvDngFG5xwzcC1xx/cjwtXRXqfQC96yTj+RpXMbRWGobUvI7+1a/gWeGRrQ5j91KpiBibtKtIbhm9ome/cBPPif3P1bqF3jXu4PnqmRhRqwB9Kl1A/wYp+GrkbWSJHL+skv/qyyBuUFdUYJ+o5KEuKGUcbgJ18vDo9G8imfDKwZuKeHCwIp5QTu6bOt6T03K0f45r3u+r52W8PtoWLnVrY9oH36hIJKoKmdBLimVuomcu9wEQlfws4ftCjgz+4sJUnNi7Fl4mFzRo1hazFu1SMmrCLLmL4nwZgDJu8mSiVhu+sc4ys7Lks0UeOjCOf4H6DOC8fC+/EEV0w+c4LMxEPj/IKcTBmZ+Hy/FbYGzeEJVa+OO9739U9paq0EwMb8bAFHbihyZjf0stTHP0yB9ZJ5100unPTDoorJNOOpVRedDzQeDo35G7Tlh8X790Gf01tsecsPeYTv/XSblyFKGwIFctb1s92hWGujY80XMi+veYjJ5dJ8BiHaI2bHOyjITZbTRs7qF4+qn3MGrIVwgdPh0tW42Hi2ksTMZIdOv6EYYN+BgRoZ/gye5j0carFwYPeQshoZ+jjU8onBhqwTYVzZ0j0enRNzBk0JcYN2o6Bvf9BE2tw9DYNhztOk6V9I8xasS7GDzgDXRqOxFNH+4Lq2k03FqOR4s24WjqMQRDBn+M4QPew8jhn6F9x4lwbT0GA4d8j5DBH+LR4DDYLKNg9RiLTt1ex9DRM9C372dw9wiBpXUEmltHIihgIvo8+yEGDfkCI0O+wtNPToKba0+42PrCxW0wfIMmY/jIWRg+/At4+QyBi0c/qWM4LMbBGCC6RoV+gZ693oCHazhcnEeiU/fX0X/YVxjS/yt42UaLXCiC276Cvs+L/pHfI6h1JGxOw2ES+VZ+kzB02NcYHf6tlPkQrQMG4clnxiNk5Cfo+cRbsBqH4hHRN1j6N6TPt3jM+xW8/Uos5s65g0UL72L6t5ewbGEu5ky/gSXzrmPpglM4klKsPCC58RfDBfAn+CfOFGHZslNYOP8Kli7MwcK5OZg/9y4WLUrD0uVX8dumS8gl2MB1lpTlAjA1Fdi27RbmzzsrnIr5c7jJFmOpZmLhnKvY8NMVnD4hizRZkamfrbKuXCAlMQtrV51TnsIL52YI50m9OVgw/yZWrbqGLVuuKeCOi1ACgFzN3bpZgg3rL2HxwmtYMj8Dy+YXYPmCUuE8adMN/PLzVVy+LOtG2sahKkwPz0MHMrF+5XWsWHgDq5bdwfIlGar8qqUZWLf6OuJi7irAsER5wcuSUspfvQhsXH8Xq5dmYZH0wbLFd7FkofTDAql3wU3s2HpHxQ52AK4KJJd2xR7IwI/LL2HJ3OtSxx2xNQOLFqdj/pJrWPvTZZw4motCsYmAtQofIXzxKrD+17NYtvwcli65jTUrpV2Lc+Se3cLqZedxcF8aMu6KrPQDyxF45X2IPpghslewYmm62JaNRfOk7+emY8Wy29i0KR3nzkkZ1kP7pAt5v89dKMFvG69i2ZLLIp8qdmZj1aJ86ctUrFlxEUmJmVq4DymgWMpnpgEHd2Zg/epULJ53CyuWZKvjknmXsXb5BezfeRu3GUNVZNWqW5ie2mdO5+LXXy5If1+W8ZSJtSvlXi3OkPt+C5s3peLkSVnAixz7mx7NLJ8ja//ovXexYc11rFl2E2uW38GPa7KwclU61v54Bfv2XlVAdRlAIWXocc2wJ1s23sCPK25K2Rz8tCJHyqdj/Y+3sXtnpuoLDbDQ+o99knpT28vs5zUFWL3yjow7guK3pL672PwrcDhR2k5cjPWIfQd2Z8j4zlBhIubMZriI8sw04IeZwFw5KnB4dhFmzszED7PuYMGiDCxflYXVP2Vi565inDkO1WfEQhVacScTp5dOx0/PuGNH+1qI9TLgqK8BCV4VEOtbCUkda+BAQB3s8jEiZuRA4MJJ4EoSTr7yLDb41cB2r4bY0voh/OJXDb95S7lgA3YFV8amvk8A8fulsYm4ufJD0d0Ye3wbYvujvkj74TsgI1sGxXEkfTYBmyf3xvpXw7Dj9VFImNAFu3q3wfrOAbhFt+csedBP78bhvs7Y4l0bO/uPBrbHAmmncWPtdGzp2RXFRPDTrqLkWAx2vD8Rm6YNw5ZXQrHn5SE4OPEJbB3QHtuf7QkVg0XswcW9uLRhDqLnfYe8Y2eBmxdRvOJVrO9YEfuCDNjbzxtp+7droPCvH+PXx2tgZ6AWMiK6NcHgqogPrIxDch3vVxFJvrWQ2LoR1rbojvcaLkVolTiE1kjDyCo5GFuzCCOq5mBArSz0aBCNNwfsvgcKy7HoGjBrygX0b3wE/aqmYmT1AoTVKkVIjQIMqZ6KgXVOIzIoFrG/yyBS45xgOnBqF9DL9Bv617uMIdUyMKryTYyrfRchlUVH3ct4vkkiZk6+jBICtXKji+Whz7gEfBV2Fv0b7cPw6hcQVjkDE6uXYlSFLIysnYne9eMxvus+XDok1dA+qTJXyidtBgY678bz1c9gZI0cDKmYhWGV72J0vXz0q5aO551i8PPXopy/gCGYLMdMeR36aOhhdK+ejKH1CzG8trSnYh7CqkJ0ZGLww8fwbt+TSJXnh973fAwZOIZRxYvzOVGVoqSgGLkyCfPx4Tyi07+LZCJSk4UagEzQboiDFfGEefbJzpEhBy2HkKnkyYcW50B+tN64dBajugbDWLcWJr37pQYKc1dGmWgz7qTi7LmTSElJwokTl3DubD7S5LOIPsTFhddxfNcSBLq5oImpE+at2Kc+Ywpy7iI7/RSOH96LY8eScPj4GSSeuKniuvNztrigEHlZV3H+XCzOnE9AWsZNXLmZhqPHzuHY4dO4ee2GfO5wg8MssTEb2ZmpKMq+g8unTuNUymlcPHoMZ2N3yLuUBdWcA/Dml8vVF5JsrgZ50zeZbRRWH5japov0IGaP/JHZL/Ze+hf0X0vopJNOOv2/Ih0U1kknncqoPPj5IID078QqfvCY++MHj3prCc5cloWrTv/viOhXfp6sFTJlHZ2HmRvWoolnJxiqeMDS5FG0NvaBzToKRtfxaGYeD4vnC7BaItC80UAYmw6W4wCYrWGwWCfA1GIyrE4TYWw+GM5NeqClpR9auw2Bi/NQuJhGo7lLKMy2SXB3fx0uLpPRxHk4mrYYCOemQ9G4wQB4eo2Hi3UEzM5D4GYehoYNu8NkGQSbbSwsxvHwsE6Fu9tU1G8+HM2sobDYQuHUYgCaNe0Ns2kUXF1fhdllGpzqD4ab00i4WsbC6haJpsaBaOIyEM1bhAiHw+gxEU5icwspazWPQPPmIWjRbBTMYre7bRSc3ELRxDwaRudxcGk2Vo5j4WwUdp0Iq/tUWJqOhalxqLRhOJqI/WZrBIzmMBitw9GoWR84Ow2Dh9s4WE0RcGomdTYdLufhcJF63CzjYTNPEpkwOEu/NGrSHw2bDRO9Y9FcyppaPA+nBoPQ0jYRlpYT0KjpMLRuFgHPRuHo3uUrvPDSNnz2VTQWLb2ATRuBDevysOm3mziw/6aKlcp1lIrJKkujfDnPkD+xiRnYsu2WcB527gJ2CG/ZUYRd+4tw6qwMAVlFlZbI8kpOZMmlfr5/7nI+9h+6hc07bol8IbZtL8LWrfnYsycfJ08A2bLKLAMZyaKD3sJHDxdj585sbNmai+075Vzkd+5NR1zyHVxJLVT2sY7iEv7clJ5DwBmx4cDBEilXhB1Sz45tRdi9Mw/RUZk4d6FQebhqXkH5ahlIb9L0tFIcP5IlMrdwKPEuouOzEBtXgoSEUpw4XqI2StN+4HpHytyW82IFYnOzM250FhNbiLikHMSnZCFJjinJmQpQ1PpCikmbSkWeXJQr/XEqF4eTc5CYmIfYhDxpTyHijxbh9AVpi71RXByrDXXkkn1/OS0bp65kIOXUXZw4X4BTF0T+fB6uXGPYgxJpR6mwLG7lyMeQ7eJGfucvFeHcJeDYGbk/Yu/py8U4f60A19LykevoC+7ubu8PenndTJMyF/Nx5lwRLohNl+x8RXQReC4DuoVpqxRTYO2Nq5AxkCd1luLMGc2Llh7MGbdFhg1h21hWGql5f5UgO7eUeCduS/lU6Wcyz9PSGUNS5FkHy9j7hcyNKum5zQ0EGW/5mvAV6e+0DBmrUoi6CwrzVFH2v9o8X3RlSRmGM0m7JXeS9ch9T7tThCzpCLZbRLU/yh0tS6qScS9lb0s9N9JKkJpRiFuZhXJerDYjVF9kqAIl4B5Lu7fexII5GQr0dWwsV8Y/aMfZPM4B5s0vwvyFmVi84jZ++u0OdkblI+E41MZyHPvKm5M3nizGZVw8hj0zXsO3HetiS6caSPE14EwbA060MiBZON7fgN2+FbG9bTPsHdtPDBZl6Sm4+EFfbO9QC1G+DRDt3xg72z2MvcHVcDzIINc1sO2px/jASCMvIHX5J9jdviYO+lfBni5uOP3uC5rL+eEDODz5Gax6pBGW9/DCpkFtcaCfB7Z2NmN7p87ImjFP6hK58ztxaFAD/BJUEZv7Pi+Twx4gMxnX1n+OzU8H4tYXb8j1ReSl7MKG0c9hRnsblvcMwo7B7XHgOTN+7OqKDWMnS51yc26l4PyST7DmmS7YP/UllBy7Ljda+MdPsanLwzjQtjZ29m6LtP0MgCuD7PeP8WtnA+LaGpDkY8Bhv9pICmS85RqIDq6IKMYWlvQTwrtad8SbDT7FC40PYHS1JIyvexkvNEzD2AapCG+ejhc7nMGW6TJQCAoTxSLGJiZFLy7CZJ8zGNPkFsbVz8D4etkYWycTY+vfxhRzKj7vexmp0u0c52ojLXnW0w8Dnw5OxljLUYxreA0Ta9/GtLrZmFgjAxOb3MA7nW9hr4wHdb9lKKkvg2R87vwOeCXgEsbUvoyptbPwat18jKt2A2MeuoRpfiex8MVLyD6j1cWBzi/iLkpXfNjtKsY3u44JD+di/EM5mNjgjtRzF2OapuPNrmdxfLMYxbpUzBOp8orM+x+nYlzrixjVMBUR9W9iQr0MTKlTiokNb+NFr2NY+up5pMuzzRjVGdIR/MpXVcq6pd6iLG0+5FPDZ06nfxdxLio30ZLUJGhnRTxhHu8Wj/YMOfCMnur0oy0uKUa+jGFqu37xNEIfC4Kxbk1M/fA79Z0CP9ivnTqJ7775HE89/QTcPdwQFPgYnu/7Mpav3INU+VAvyLuEU3vmI9CtKRo4BWH+6r1qg7iLZw/jh29fwXPPBMHTwwIf/47o+fxk/PhrHDJEeU5WNqL2bkC/Pp3w2JOBmDF3Ot768HN4+bZDp3ad8cn778ln0Un5/OEeBNnIuHsDv61djl6PP462bQIxsv9AfPPhm2jSpBlqO/viw+mr1LuB+pJVTNeCReRIg2VyVd1E/3aGwdA2Sf4jO3qpPN9P/zxHJ5100ul/g3RQWCeddCqj8gDog4DSvws/9cr6f4gf/M6s35QHjk7/j4koEd3tShkdMRe3SoqwcfdhNGvRGW1s/eDhMghurpFoYRwLF9tkNDdGwmYVNoXD0zYBFvMYuFjDYBYZV9NkuDpPgod1ggqn4OE6EkbjIFjdxqBxi5EwWcbDap4Cl6YTYTVOkfRxcLGMgs08Gi09xsHJFIIWcm6yRsBsCZOyw5S3r7t1jMizzimSNgkmt4mwtZwEF2M4TMYwuLmLbS7hkv8aLE4vw+Y8Dq1cadtYqTMCFvdwsXsELG7jhSfDyTweZrHdKnW5WkfDYhsLs7TD5hICT9cxkj9K2hQBD7dpcGk2HianSbDaXkRz80SxdxJaWV+EpVmE2CbsNhY2V9FnkfptI6SvQlS9btaJMDuLbdaxUkckzKaxsFgmwugi584R0qZx0j+RsEq+1VX6xCTnttFwF/akvEuE2BEJk9jq4RSJ1uz/FoPQzKknHus+Drv3X1PeuQTLsrK0W0gvIS6duCgicMhzLqgInjF+MWPJqr2X5JyxWDNkjaXCJEg+40pzKcUfE1OeQCzBYe5zxdjE9Dijtyl3JL8PZGQpVV5LYxxqbgzHEJ30+OQv2RmrmruJs4YCESrkDn20sLRQlSPWkcs6RJagIjefY9tYH9uktYcL33zhAuQXEhCVOmm7MB2gyAozET0sr8BPtTzmcpg/Z9XqojzBELabbeReXpxmWE61R7iIrr48pxD1yMERRoELVfYH66MnNnUoEFmYunmaL88Q+1+L3mi/B8I8p7xdHIXFyjdLzkS/3X6VLn/YV+wzRzlpkhw1nzD2RZEKLkqgVuoqpc+UlKHtUlYtpEUB7VL9wHTJKNU6pcxeMu8Xy5LVRn5yQnyV4VVVIuVUMd4v2sufnNMKpmj94BAjF9r7TrGccvMjdW7Xy/6jHMuwL3jUFvc56sgwNpRXBzLPhdX41rJEVtsckz2hNsmS/1pqlrSfcS3limUklZAB7wb7keV5jwiekIrlPu7dcRvzZ2epmMHzZgvzOKtEuEjS87GA4VoWZWPJ4nSsXp2G7dtzceQYcOO2PBuilB759MxXHstaharvsu9m4fuvP8EjxloY1cyA5YHVEetfGUfaGHDMtxJSfCuAYRL2BVfDL52aYt/kPsDFGODaflx6vye2dKiCfb41EeP/EPb41cahtpqn8cHgOtj+TCdg9ybg9jHcWPwmtneuhZh2tbHNtwkODnwGSIkHrp4ANnyD6Jd6IX3xe8DhjcDWubg2sgd+btUK2TOmywC+DJzdhJh+DUVHHfz6vJTduwXc4ezWhq+xoWtrHBs3EDh5ALh+BBlrZmHvy6G4s/xr0fcb8POHSBz8KHZETABOnQOupODqmu+xa0oYstf/KGVSgVtSx9qvsKFdE+wOaIxdPTogf9sOaed54NBKHIpsi+PP1EestwFxvtUQ7VMV+30MiAmqiBg/A5IDDUiSdkf727CqzWh8bPsAi/rF4sfI21gTeRfLIzOw+pViHFwkfU9AmI875xe6w8v9xXXgxDox9XVgcXg2VkYWYfnYIiyLzMXeL4H0QyIj8wwBWjW4+FjJfHo3Gfjt42ysmHAXayMLsCa8CD9LM9e+UIDklSKTJmyvRpUTHbgKJC8DfpxSiNXhhVg+IhsbJpdi9ZRs7JNxRUdqyqkvm+xfBNHmtH3AxreBpWMLNNsisrF4bAY2vCW3h7GB6ebJAUzXdu5GKu0qugAcnA8sm5qP5eOzsEpsXDG6BOumFSFB+qJAbgfHY15JljxVOTIsOSlKGu0lixrWX8gJVqd/I3Hy4g3h5KEmsgcQ7xHzHHyPtJmQXwFr4CjnVM7SV88cxpjHfGCpWx3j3/6OeyAi4+Z1fPbWK2jSoC4aNWyAoLZBaNXKDw3ru8HL53H8uGWfzN8ZOLZjLoJdm6K5qRN+WLQFaelpWDDrCzSta4CrsT6C23rLO5cnatZsCjfPDti896i8JxRh/9YV8v7UABVqV4enfyCCOzwCH682aFynGlo0aYhPvv5O5OipfA2/rlsNYzNnNKjTCK09/dDB1xeBLvVQzWBA1eaBeG/GevXZr+Z+1VI+oPLyUcovELUecfTbH3vHwQ65e/J/pH+eo5NOOun0/5p0UFgnnXQqo/Ig6IPA0r8Dd5u66r5+IC/aEGXvIZ3+N6iYO9HIIrWgqEhe2kuRcvQmmjTpgNYeI2BxIcg5HmbzRJgt44QJbo4RjtDSJc3ZLQwutlDYTGPgbhwPq3EyrLYpaGEJQ3PXkXD2HAEn2wjRMRbupqlwbToJLY30+p0Ak2Uk3KxDYbMMh4t1HFq4TkEz98lwkjyrOQLuLqPQxjICLS2jYRK9TsYpMFqlDsk3O0fCapqgrk2WibC5TIOry1RYxSaLVWy0io20V/SabWNhFDuNrhEiO0V0ix1iv83KNIZ0GAZXyyi4mUO0sBNSn8USCYtpoiyEJkk9E6WNkSIrdUo5NxNB6jAFLLMvrNJWN8tgKT8crqZJCiB3M4cpnVblST0WJuskBfLazKGqHjfpL1eT1rcEzM3W0WLnKDmGCo+Rvh0vfSz9YIyQPhqFpk0fh8HQDBUr18e773+qgYiypuHCybG8+acsfx7IkqcRz7Qrx1kZy58/8j+jB8nK//tYo3tXDyzj4DJJ/nUs9e6nMhn5Q75HvOCSkqxl/KNejf//0h/LPajsg2T+yBrdf0UqL/PP+L9K+e/SP5R7oLL7E8tfaSn/Pbq/LP8++N7+c7pX+h454ABHruOfnMsffhlQJiJcSFB4Zzrmz8pVYPB8hoiYXYQFc7KxeP4drFp2Cz+vvYmd2+4iObFIbQRID2aC24pFB/USbFZTqPwjREGg/PCJ8+jYpRseMhgQKPxVq5rY1/4hHPKvgij/SjgUUAlJgZWwM7g6lndtir1TegKJ64GTv+DCa13wa8cK2N++Fg76VkOsbw3EB1THAT8DtrarhW29A4D9K4DLW5G2/CVseLQe9rRtgH1tmuNAxwBcevUlYN9W4GYycEc4NR5I2AS8/yL2+nlgs68nMme+L3mHgDPrkPCsETs7NsSq5zug5KDYcC0Bt9dMx/pHW2HrI62Q88FUIPp34OpRyRO+eQQ4tB7pL/XH5kAXbH2sK7B4ieg6LHkngRtHUHI2CqUn9gHnY4CfZmBje1fsCnTF7x19kfrtF8DZY2LXGeDcHuCDvogOMGC/tC8mqBJiCQYHVcbBVgYkBlWTPjMgVvopOsgJG57oDCSf1wDgHDtr34+Ue8zlj+MhZxrxJMoQJHYwrx3lOB5UOfuR13bg9IHlmM58RxlS+TLl5f9YhnLlide04UH1kO+zT/447CvfrvJlec50e18QNHSwIpZ3sE5/Evqf3BAOqhwUlRaqL6h46/n16e2LKRjftSWstapg/Nuz1XcYl88mo9cTwWhQvSr6PPcczlw8i6QjCXhhciRGhkZi1uq96svZEzuWoJ2tOZo174glK3Yh9eZ5fPXhKwgf0B/rli9BTn46tm39GYHuJjRu1Bxvz1yD1JwixPy+EN5uzWCoY8JjfUNx8uRRXDgejVG9O6FRg9roPngSzt3MR9ql0wgbPAg1qjVH9x4jEZVyFnevX8SsSf3QqJIBFZy74PWZW1Rsea1bOJg5sPmwa1/wqdHMZL4A6aSTTjr9BUkHhXXSSacyKg+EPggw/U/nrhMW3dcHj4/5FrtiT9l7R6f/NZL36qIC/py/FLm5xdixIwkuzo/Cah4Ai2m0An8JTiog2BouHCbnBIYJCkfC5DoaZrcQuLlJujkcRtMkmCwvwIkAsfsEGG2j5BgGk2ksbObJaGmZBk/KOIfCZgmBq3mE1BMCJ6mjmXUqmrhPRHO3SNEVATeC0k37oSXDRZimwLPlm8rL1yj12KRuD7dJMFojhcfBapwAm9Rppg2WUJjodWymrWMVyOoiNrq4hiqw1WqeKPWOVeCvi2242Dhc0kLhKu0laGuRciYzPXxFp9hqFdtcCCy7aiCzzTIOrtIHruwPOVrpKWyWtkh5q3EcLMJWk9Qt1/RCNooNztaxcJE2WUzhcDWOgZsxQuRFVoHC42Cyib3SVyZbiNgbXgYKm01j4OQ0APXrt4PB0BgVK9XC6PAwZGXT/8e++tdJJ53sxOeBsEEZmqYO/Jk/k5R3pzw23Ghu1/armDfnOubNzlKxtpcsTMe6tRnYvbMQR1KAyxdFLl8rQyC4TK3j3FGVHOnFTsgit6gE+w8lwrWVrwKFgwgKt6mDncF1cNC3ImKCKyNOOMmvAvb5VsYvHRriwIAglHw5mTuI4dwYb+zsXBn7g6sgWvKTfashyacSkqRMbOcG2N/dE1kfRyBv/jScevEJbA+uiISg6kjxro8DrRpjbycvJEUOwOnZbyJ13Ze4teRtHJnwLA61t2CfewMcCjbh4sRncXXJi7g9KxyHOlRHfMc62NWrFdK+noKsue/gzMtDsLldM+wMaoQ9HVrg3LjnkDbrXWSv/g6p899H4oQe2NXxYWz3qY1NPi2QOLA7bn88DYUrvsbl+e9h24sDsP+FvsifOQ1F74/CgUeN2O3fCBt9GuPQgC64/OFU3Fj4NfIXfICLI3yw18+gYg5HBRpwyNuA5IBK6pgYJG0OMGCnlwG729XH74M6IyNxP1QQb7pkl7nq6qTT35E4/nNkOirSfrUgzEjRty8kY+ITreD+UA1M+WABrsujculcEob27orGtWuiRZPGmDB1AhYtnYMDe37DpWupuCYydEQ/sW0xOrm7oEnzzpi/ZJvMdWmiNBXZ127h4qkzOBS3B998+RbaerRAg4caYPTbM3Fb5siYX2chqJUR1V3a4YuFG+WxzEdh2inM+nAcatWohLa9xyP2xC1cPRaHTl6t0bBhS7z3+RLcoc0ZN3Fzx0L4OjWEweUxvDpzKzLpfa8ebU62hLuZUKzOmKL+kPXHXyeddPoLkg4K66STTmVUHhB9EGj6n8o939yMR8bMuq/9oe8sw/mrDGSp0/86lZaiVP2kugQ7d+3DiBGT8fDD/rCY+8PDjR7BkbAo71sCwqHCIcJ2T1oCxZaRcDEPhtljOJqZh8HFbTIsbq/A7DQVniZ6746FheEdJL1Jc4Kok1R4hNbukXBXXrOSb5oAZ9NUtLBMRjOp08k9DBbbGLiaR6OVbaRwOExOE2B0lvzmI+HZMhImk9RrHAEjwVRrGKyWMbCZ6SHMkBBio2KxV8paKOM2UniUnI+B1RoBV5YRWaMtTJgg91hYpa1kttdsmQCzeZK0X+y1TISzLVKxUfXFOC30gy1C8/AlMEzwmKz6RPQpMJ0A+WS4SBlnsYehNghu24wvSLvHw1X60Gymx/Q/B4U93KV+01C5Jx1QsVILVK5SD6NCQpGbmy3rIX1VpNPfnDj873sEeOFAb2Vuo9cor+SS3r0OcJig8IF9F9VGjD//nIY9ewpx5AjUxoaMP8xQJo6QE3RI41F5oCq9VFKoKbTrc7hpFkoFB6IPwbN1G7SoaoC/wYCvW1XDnqAaiPExID64EhICKyDZi6ERKiPBrwH2tqqPHZ71scu7DnYFGLBHODqgApICq+K4fzUktzTgqLfIe1fBHrfa2OPTGDvaNsHWVgac8DPgrOg6y3jF3tUQ798AOwMbYl3bBlgTXBe/tauNLZKf0KYCTvhWRaKU2edVAZvaVscWqeeI8FGxa7+HpLepht1taqnQFXulvkNtKyGmXRXsC6qJjV618FubOtgeILb6VMZe0RnXrgL2BVfHvvb1sc23Dn7xrIbNXnWlDfWx268WdvtWxoFA0etrwAG2qR37oRa2+j2E3/2a4nfveohpXwv7ReZge2E7KJzoVwEJ/nKUMslB0h9ta2J5sBPeatsS8z54B5fPnbX3vw4K6/R3JjsoLM8BPWjJDCRx61wSxnb1hLlWZYx/6wcVPiIn4wrWLvoWXYIDYHF2Qo061VGtpgEtXZti4tSXsG7/ZRVm6tS2BQgyNUZTYzcsWrkbyLuG84f34fN3P8XY0RHo+liQvNvVRqMqBtSv3wghb/6A1NwSRK/7FsEtnVHV2Amz1x1ESWE2im6fwNyPxqNOrapo238qki9k4XTMNlgb1EbjJq0xa8lmLd5xQQYyolbDq/nDMDTvhJe++xUFZa82PCEUTFd4fvVmn261V1b98ddJJ53+kqSDwjrppFMZlQdFHwSe/ieyih886pv72v7+nE32HtHpf58ICMvCgrs5F+dj0KChqFxFXswNzmjW9Gm4ElRVISPoIUuwlaDqSDkPkTSCnxHw9IiEs2kYLK1D0Ng8CEaPsbC5TYS5WRjcm49GG0sIbM5DVBgFV4/JIkuwdSI8bZFwN4XDjcCraSqMphfgzE3YXMPg4sZN6ag/DB5uI2ByGiALkVB4WMeL7Eh4eIahafOBaNWGgOpoYXoEj4HVTMC3HBO0lXR6ChM45qZ4vNZkNS9fgrxGC0NQ0K77mWkmxkiWep2t0k7rWDhbIuFCD2kVEoLhKOhVLPWYJytmqAiz4knCU0VmsgqN4eJKADpcZKZIG16ATfRblbf1PwOFGRd5onCkyI1Aw4aPyH1pIvenPqa+8BJycnJQojzldNLpb0wEBe4DBnhBtMDBWqbCc4UdHr+MI3v6VDpOnS7CpctA+h2ouMoEghWLrINLpNC9KN2EJQgA58vcKdcOcEKBFrkoKcxHUlwc2gf4o4nBgE7CM1tWQnRwdST6GpAQVAGH5JjoZcBxnyo43qomjrepjxTvhoj3q4PoIAMOkgMMiAuoiGS/ikhqbcAJKXPUqyKO+TRAXKu6SAioj2T/yjgp6SdE12GRSWwjZbyrINqvJg62rYOoDqKvXVUcEn3JwQakiM54kaEdiYFVpD4DjknaCX9N/2GvCkhqI/X5VUK8lGHICoK5ce3osVsdUV5Sxl/aQQ9eyY8RndEdDNgtcgfFzsPt6uJYYD0keVVTIDQ3iosWTuqktSm2vRYmIsq3MqK9a0leTQUux7SviIOiJ0r0JUibEmif1KuAYTnf2f4hvOH6MHylL30sVnz11Vdyj/IVO+6vTjr9/YiTT64KH3EPFC7BrQspiHisNcy1q2DSOxoojNIsIOcGYnbtwNeff4YBQ56X9ygTnJrUQI06D6H7sDdwLTUXl/ctR1sLN5p7DLMWbcHFY/sQOqAbHqrVEK1beiMifBA+ensygjxcUO+hxgh5azbuSMVHfp8tz2Yj1LA9jmVbj0h9BSi4cRTT3wxF/bo14NNzHJIvZuFS4k54NK6Lho088OUPP6qQ2QUZqbgb8xO8nRujsrEz3pljDx+h5lW2kS3js84t9col80R//HXSSae/IOmgsE466VRG5YHRBwGo/2n8xAPiBy/9LcbeGzr9e4hv1LKMKM5DVlY63D08YDDURoWKLni4QRe4EgRWIGqEBgTbRggP18BhFTpBA4xdzKPR+en3EfzYq+j42Bvo0uV1dH/kFTzb9WU82SkC3R6JhIfrEHi2nAAn42TYbK+iReMQtHKdBJt5KiymaTAZp2pgrJWev6HKu9aFYRnch+KJJ15Ct86voOcTb+ORDlPg6joULYxDYSbIStsY6kF53Y4TXYxrPEHFAVahGczjFZt5bSLQytAUYyVfjnJtMk2GkRvgWSYJT5RzliEoTLA4Ei6uwm6RMNJLmN7C1rFwUkeGrYgEN7MzSR8YLQxrQR6vWOmzToLRVc4ZesIWITKUY77oF3sUS50m6vkjKCwy9DR2cZJ+No+EU4vuqFbdClc3fyxbvgYFDGSqk05/d+IUdh8wwAuiBUQNNOSAG9g5PIYd8nTyzcwsRqGIcJM+Bf5KllayVAEt3NCPGxyW2oO28lhSmqtYSxNJllOxLbM1LspD5tXLeP+FSehQvzKG1zVglV9NJAZVwWFfAxICDYiRY7wPQeFKON+qCs56VsMJr9pI8q2G/ZLHUAoH29kB2cAKSPI34JhwgrsBp3xq4Uir6jjqXU1twsa85LYGJLYXWTnGBlZGrH9VxPlWVp7Jh0THfpHZawdw40UuRWw45VMRJyT/KMswZIPwYbmmjfHCsSKvvHylPMFfejcnBlRQQHK05O+nXim7R/JoayJZ8uI9NID6pH9lHJZ62dbEjiIrbYpim2hvewK/lZAcWB3RfhUQ26Giso+gcFJgTQUmExROEk4Rnb8FP4RhzR9SIHvNKrXQo3dfZOZnyL3hZovse510+jsS57c85SnMTebI3Ao09fxhjHnCG+a61TDpre+UN2723Rs4dzQWx+Jjce3SRdy4dQ0HDu5A5OgBqF7nIbh2Goyzl9JwYfcSBJuboG6LLpi/Ygfid61BC5nDWjR3xZy5i3H7xmns27oWHb3dUeehpgoUvpVTgqQN38Hb1BC13Z/C8u0nZB7MR+GNo5j3YSQeqlsDAX2nIO5MOu6cisaTQS1R7yEzpr7+FVKzZa7NTkf08i/QvEYlVDM/grdn/YZcor/8dk61US7U5qrcUk+bo9UfdaKTTjrp9NcjHRTWSSedyqg8OPogEPU/ibuOX3hfe7uPnY698aftPaHTv49KUcLYjPLSXVKSD7PFigoV66FKVQsaPvwYPD00D9x/Bgpz47lmLmF49MmPsXFPOk5fBa7dFL4MXL8kfEHOL2Qj8dBZvP3qDzA5PaP0uXlMg6srQVxtozYVnsI8XsXqdRe9NsYAtkxW4Gu/YZ/iQEwqblwUfeeAFYsTEOA/Fjb3sbC4MgQD4/uKLpE1Md6vSdKM3HhuEixytFgZD3kCXE1T4cbQDSLL8BHckM7KDerMDPkwEUbbeGFuSqfl2wh628Lg5DZamOEswmFVcYUj4ezGcBDjYKQekbERnJbyJis3jGNIiQixn97FotNtDEyuDLtBr+swkYlQdtIm1qs8hR8IChPUngQ32ySYjSPEnt4ICOiNL7+ch9RUWeYRjOJ6SSed/s5ETPA+XJAXDjBB4+KSIgUMK5LsMq9h4YLCUhQVcx4kvMhNuURWgY3kAsnLQUkpweB8NUeWlEi6ClvAreU0HzZyKWNelspzWZAD5GbjdkoiVr0YgW+DmmFrh4eR6GPAEW8D4gkKCxPsVcAwAVkPAxLaVERCYGVEt5P8RwyI6lgBu3zpgSt5ASLjb8AhT4LD1XA0oDqOBFVRHsf0KCZAu1fO94muWN+qOBxYGyl+1RHrJWVYjqEZOmkg7kG5jhe54y0r4USbKkj0roCo1hoQfKRtJSTTk1nsIseKbFxABRXX18FxQWJPuyqIDa6MKOoS3dwoLoaAsF8F0VcZiV5kaV8bsVvyDkubWJa2HBSb6C2tQmkEVpV+kDaLTobMiJJjUkAN1Vf0Ek6WfkqR48a29TGkSW042UHhLt2eRJ7cE/5oXgeFdfr7EuerfM5wZbMdw0dcO5uCkY95w1SvOl7+cCbuSMaxI/EY1OcpeLnZMGXieGzbuQUbN63DoP5Ponb9h/HYwKm4fD0DhzfNg7+xMR42dsGsxRtxYMsKuDaviYcfdsYrr76NPds34KWJo9CwRkXUa9AMYW/Pwl15hUz45Qe09XRBTUtXLPotEYV52Si6dRoz3hmD2jUro23fiUg8l4aimyfw9dvTUL++ER7enfHd3GX4ff1ahDzmhYcqGlDD1A6vfbNKfVFXqkBhssy3pXxP1X6voWZyR5ZOOumk01+QdFBYJ510KqPyIOmDgNT/BO7x5u94JFxeFsu1Nfz95bh0Pd3eCzr9e6kUeblZciDQUQBXV3cYDHWEm+PhBo/B3c0B2jJ8BOPzjhQeIecMHzFGeco2NIaic8/3kXQ2X/3ArzCvCNnpmcRFkJlVhLtZ6aI7D5k3b+GVSe/Dq9VQNGzSD7bWYWhuGQQn8wC4GAfBbBqlNmpraR4Nd3OkpE9Dc7fx2LD7InJlgXD3Vh52/BqFLz9Zi9atRqJp81ApNxFW53BYXELRwkIOg80YAXeX8XBzYYxfev6OgckUAVenyXBzYho3fwu5l24MlzJhcLGOVnF/TdYRsFqGiS3DpI1D0dg6EM1sQ2CzjICb1GF2jYCzW6TIjoWLRXSZBgsPhbNpDJxFp1nkzKLDxSr5IuMkulzMA2ExDZC6h0i9oTBKnzL2sJVgNkNX/BegsIsTbemFp56KQMrhyyiSRR4BrTzpa510+lsTMcH7cEFeEC1wwCT05tWghPs8hkmqrPwhYFxajJLiAhQX5UsSYV6Cwxpr+ijnKCP/JYmeedwTn1sgFfJvcYZcyHyaKXwnHZdXzMWP3VtjT/uHkdSKnsEGxAYacCDIgOj2VTRPYAKh7Ssirn0lHAg2YLdc75D0PQSPJZ2hH+IlPVGYoGpccAUFojpkd7atgP3tqyOuXV0kBtZDik9dJLephSSvGoj3qYKDvlKuXWVEtaugAOTEoOo4EfQQjrcWObeaSPF6SORq46AfQ1xUUnF9Y/0rIdGrGo5JemLLKsqDOb6t6JL69tBTOKgaEgMeQoJ3dWHNWznOryKivCshyre62FkbSbQloDbiPA044lUBhxnzOLAyUkR3QmAVHAqurupkXVFiIwHhQ1J3gk9lBQrTIzmJ15K3pd1DGFG/IpwNBtSuXA1PPfucfNYUoKCUXty8ITrp9HekEpTIexu/nnLMdiUyMd26eBKRvTujlXNjvPz+t7gjU1hWZhp+XLEQj7QNRNNGDVCnXk3UqVsNzZvWQdfuT2H5pjjkyAvc4W3L0b6lBZZW3bF45WbRlYyRA59G02Ym1KpdX8rWRjt/D/h5WNDcyYq+Y9/F3TwgfuMCdPb1RNOW3bFmawqKCwuQf/scZn08Gc2a1EenfpE4cilNXlqu48LhaIwaEYmHGlpQ46EmsLk0x2OeTWBsWBcPWdvi3ekrUcgpl6yeb7ZM++pNtVFYJeuPvk466fQXJR0U1kknncqoPFD6IED1r85Pvfwz2o/6+r52fjRvs731Ov1pSAEiJSgszEev3v1Rt64RBoMRjRs9CXdXhojgxmvC3CRNeQsLM76wCoUwEQ2cx6HDUx8j8Wy++kH10YREbFr7K35ecwCLF+3Ab5sO4OY17mANxO5Ihp/XCDR3GQqj52gYPYbBo80geHkPRevWo+BhGw5P42C4Oo+C0fUleAa/hqRLJciQlcDvG35FgGeAyDwOD4+hCkg1myLh5ToaPq1CYPMOhcUrBGbjACk/CG7GELiJnZ5eoWjlFYaW5jHwtkXC1zscLb1GwuwxAm18xsLHbSRaW4eKXBhaBYSjldhiszwHd5fe8Go1HDa/UXDzD0FL6yC0NA6ByRIKZ9sY4XAFILdyGyT1i92tx8Bd2OjSHxbGVraMgsU9BO5tBqON12CpYwC83YfD22+M1BEhdYTCaqQX9r8GhVXIC5PoMvfC44+H4MiRq8jJYSxo3jt1B3XS6e9N9z0HvODD4YBJ7jFjcJd5DAuV0jvYsZucAocdZTUuVQGINVIbzpElyT5lolDECQqT8xU0LFwoE92du0DabRye+w2WP9ESW4MfQgLjAvtrwOdeOca0q4aDQRW0DdjaGrBP0hiqIa5jRcTIdRRB0baVlQcvmZ6zDD1BkJgbs+0TmQOdKmJvh6rYF1gNMSqcRA0caVMDya2qIrFNJcT5aF6+BJLjeBQ9iT6VJK8yklrXwGGfh5DoVR9JAfURTVBY9NKLOSW4ClLaVMMRkTnlW1fkxSYpy7oJSB8KYPiHOlJW6vLRvHlVyAlfsTewNuIDauOQV3XEta4iba6Fk37VkezJDe0qKnmGq0hsV12BwXG+mmdyfDs5l7rjvWij2Ct59KpOkPp2daiLlx82INBggEvdWggNC0V+cZ7cIQb6uO/m66TT34i0+YrPAGeqQpnLiouLkXP7KhZ+9jpejAzFml93qpmJc1lRXiZSEg7h9VdfREjoCOHheP/91xGXlKyC3+TlAzeOReGDV6Zi4pQPcTDmGIrz03D53FG8+877CA0Nwxuvv4h9uzZj889rMH78VLz19VLcyS3F2bit+ODVFzD+pS8RlXxN5spSFGWnYvdvixERPgLvfbsI1zLo7ctfU2Tg5LEzePfdzxAyZgK++PgDHN/7G16bMgFhL36In3fGq/aUKE9hzsucdPnlnA4K66STTv8ZpIPCOumkUxmVB0sfBKr+lfmJKSvvax95+aZD9pbr9GeiYgbVlJfrwsIixMUdxvP9x6JuXV+YXPrBw20sLIzTax4PLYQEgeHRwgSLGRt3Gho5vYpOT83AoVOFChT+9O1P4GNqB+cGz6LpQ/3h5xWK9asSFF5yOfkuAnwi4GQKg7v3VPQa8DU++Xw9vpv+Kz76ZD1GjfgCHXxHwtKiH7qKzs/nnsL5LC1aZ/KhKHzzwRfo22sKWjj3hpvHePTp9R0+e3sdvv9mkyxOfsHEd5agc5dRcDd3g4e5D4KDwvDa+0vw0Rc/YlzI93hz6gp8//1WvPz2QvQa+i4++3oT3p4yF2MGf4i33/8ZX87cgXc+WITneoxFj85j8OHba/HB9G1476tNGPjMq/AzPw+j8zC4cMM6jzB0fexVvPvycnz/xSZ8/PlGvPLmGrQPjEBL18Gw2IYguOM4vPX+Ynwp9U8a8T3ee3Etvp2+BS+/sRz+XuM1L2fp238NCjOsRijMpucQGNgPc+euRXp6Hoq1NZJOOun0D8QHg9ABmTBCebYDDY6Hp7xo+az/gokfUxt/HUEuUKEMZAbkg5mdjQtxhzArchg+DWiKX9s/jFjfikgmCBpcBfv9KyImoBpiAisrD1kCrTEKbJV8fwMSfSsgxaeCCjdx1EvYuwIOCycReBUZlmEoCALD+4Mria4qSPaugmNtquBEm0pSRpMlkEwwmMcUuT7io4WwSPapiDi/Koj1q4E4n3qI862p6qUcvX6VrFdlHG1TVbEqQ5CaMnZ9CT4M81ANSUx3sJRL9K2MJJ+qYk81pHhXFa4stldU8YpThNkHlE0QZgxiXrO9cf6MV1xBrml7JTmvLP1RUfXN7uDKWO5RARObV0DIk49g86ZfpK+LwA0AddLp70zadKQFvin7goQhwYrvyDGP38Ur1ojPC6/odavNh3yOeMYUVbwkR5LlSuZC9T2ZypU5TbuQ/xSSNG6yKaf8Qkwrm6HqZdgHXnMqVXWVcps7+vU70u0W2edbJcdv2Pgri9LCsi/ZtPIkVipXisuKaemKddJJJ53+eqSDwjrppFMZlQdMHwSs/lW5yx/iBz897nscSDprb7VOfzqyv1vznTsrqxjR0Wfh7NQFLk794OHKTdm44Rnj8jKERLjGBIglzWSeCrPtNXTs/jkOnMqDvNZj7swFeOaRfujgE47H2r+Ent2nYufGw9wPBWeT7qCNTyScXMMx/oWViDqUjTtpwLGjGbhyAzh5qhifvrMYrV17Y3jYKiRdAG6KXRnCBRnZuHj0CiIivkajZj0xcfIqRO3PQ/4t4JIMr6M3geOi66f1+/Fkl8FwdXkSPXu8iBOXCpApa5DLJ4ALKWLDGeCXrSfxxudrcZPrpttA4q7zOHlOZNKB29KIg3tS8PuKQ7gmsidE702xfff6I3gmMBQetlA4W0ej7aMvYduOG7h7Fbh6ughnzwMX5fyn1bF47JFQGM398Fy/91W78rOl7rgsZIjM0aOl2Lj5OgK9I2FsNlT6kbGQ/zko7GoVlrxmzbqhalUbvLwewYoV61As6zLl2KiTTjo9gPhwED7QwI97zDQHc+K7//I+/hekROQPcUniwNoPuAmmFCP95k1MHReBlrUN6CO8wL8mYtrWUN60MQHaRnBJftUR712pLFYvOd6fAGklJPlURopPRQUEH1GAcEUFrib5VlQyDEFBj1569kYHVtTCPXDjNh+CyRroSjCYcvS+VTGJ7QCsyhMdyks5sCqi/Gsjxr+a8mB2yCZKPutK8qmibFFgL4Fg2kg56varptqhPJEdLDLxfmKjnwbqJijmOdO09lHGIU9wmZ7Dql12OQ1YroQ43xoacN6+InZK2b3BNbDqCTec+H21dHo+SosILv0XN0knnf6DiaNfm7ocvsLCKpHzEPcdyFdALPnek2IHZe1zofZP06OEOKHxJxHMlmt+90z9mreuJqtI/WRC+0KM+tW3/gy7IwLcd1P7zprS/EqfYV40lQUqlUJkJSQsf0roz1ykHAvIzFKZapJlPo/qv71YORBcJ5100ukvRjoorJNOOpVReeD0QeDqX417vLHpH+IHj/1wJa6m0lNApz8t2d+yCWwQGI6LuwQX58fgZhsGo3MoLAqcFFZhJMbYQWF6EGvpTi1GoctTb+HQ1WLcFlVnzl9GYtRhHNpzGfu2nsGZo1eQnZaFwjsFmPntjzC1DkNwt3cQn3IH+bIOWLN0B0YOexUffbkSd+T66vm7CB/5Jjy8x2DouMU4ewfIERv3b41BvydD4es3Ck8++x5OnJalRhZw7MANRIz6ABFvLUPsFSAzB1gwYyW83J5Fl0cjkHTmDnKlXZmSN/PDnzFy6HvoPegNjHlpFnK4cpHheXTvSYwZ9xV+WLpLLZfys/JxOeEOpo35Fm9+/QvSuZqRxn0Q+S3czCPgYhuNmQvjwZC+F49dRsSwFzA2cjGOn5IFkqySvv5iLpxNfdCz90c4elwaJWul/Ms5mPX+YoQM/w59+34Dc/M+8HIPVbGF/xUobLNMgNk4HA/V64iKFY2oWrURJkyYhqwsLp100kmnf04OCOGfseRTRDHPHReOfD74DuZkUZ4ljSLyvHN/ORQxNEURcgsLsT/2ELzb+qNeBQO8DQZ86V0Ve9rXQrQPwd+qSPSthmOtq+JYm6pI8qmkvGYJkNJzNtGHacIEZZXXbAUFktIrl164SsYum+BXEXH+BIWFA+xAcZABUcEaRzMOsR3sVUCuPZ9exrvaC7erhH1B1XEgqDIO2uVjyCITE1BBAdhk6oiVNIaPOEQ5OR4MrKKxXJexpEcFVUBUYEXhSnbmeUUFQjNfsV2eeglU03M53q+KAoYdoHCsb21E+ddQsZWj20v7RNeO3m1QcjJKuj4HBZnaZps66fR3pXszFeFRvrnIi4aawmRuKiXIyk3oymYr++NSHhQmlKx5GTty1V/+obewvBBSkuUV4Ct6y/TYQV3HbKjVLWcUkHS5UqdqglSTZLGytcyzmC+c/Gabiap6rYTDOiarDJVXju0H2qzZrZNOOun01yMdFNZJJ53KqDx4+iCQ9a/ET768Du1HfnVfmz5duMXeUp3+1CTv1UUF8notb+G5OaVYuXIbGj7cFq7WIXAv8xQmKOzwFA4r8xS2msfBZg5Bx8emYdepfNwUddx8Sb3121cTJUWSfvU81q9cj8c6j0RT1wgMGbcad7OB9JsZePuFz/HM4yEYMvptnLpSiAJZy3z/9Wo0atEHrYInIul8AfLExvnTV8P54SA0av4cXntvI26nA9m3gch+r8DS5HE87DkUr32/Hbmy/si9XYyuwaPxdPcXEXciXXkKH953HY97D4NTo25wsvTG6GkLkc4ViuiZNvIl1G/0CHoNewuZhQWyPinCD+8uQ0unHmj5SBgu0AX6LrDs09UwOw1GQIfXcU7qzpC6GD+5R5f+6NnrI/zye6r0IXD65HV4tB6O5/p9juOn8lRfHN4Wjw6uj8Po1Ac2tzC4GYfA0zJK+jASJsu4B4DCWr87tRgNT49w1KnTDgZDU1SoWA9hYZHIyeGiTyeddPqvieDBv2JOWuWZcAbZAXk4mBNbOaYov5vhZUkxiorykFdcjB0HD6BNu0DUMBjQWvgz72rYHlQdB70NiA+qigTvSjjiWRGnvKsj2YfetBW0kAzC8b7VEOcn7K/FA2ZICYZROORXHbEETu2AsObJy1ANmjdurMgTFGZoCUdICoKulHewAzgmMLsvmBveVUI0vXEDKpeByTxS5pB/Zc0bWPiQv9QvaQosLsuvonkK+1fSwjwQ/KX3sQJ/CQIzjXm0jd7Rci4co2QpQ9BZA73ZljjJIyf6Sj8QFParoWzbJ3UdaF8ZuwOr48enWuHKvo3S51kaqMRbp5NOf1MqP3NpE5G8aPBCfblFMPYPm9AxS72YCRM4listnfLatXqklGJNhlMbZz5tkisPCmsnzGOaplNkNIXlytnrk/mR5f4pKCx/CPNya08NqLZnMI+nDjl7kgPM5rlOOumk01+NdFBYJ510KqPyAOqDgNa/Cj8xZcV9bSGv2hxnb6VOf3biZktFBYUoKirCxo3bEBz8FB6q5webZSDMJnoKj1cA8D/GFB4Hq3kszE5D8PiTbyL6EnBd9J0+m434gydx6ngqcvNKcSfrMubN+xod/R5FK7e+aOH2Kqa+E61iz9G7riRVlgxpwNkbwC1ZO+RkAyuX7ISbZwh82k3FyStArqwiVi/cDluLJ9DMOhSrN14F9yA5HH0UXd2fha91COrawtFn/GJcuZqrfrE4uMe76NHtLSSczEOurD3Wzd0H/xa90Mo8Es1dhiH0hdUKLC64nI8RT4WgmUsvPNH3DVzPuIPCvDy8FvI5bI17wtYhAmfp7C6rmdVfrlDtfarvdzh1W1vgFNzJQfbNEtxIB25mylJMqr90PguuLUfgmT6f4NgpMUbWZz999yO6tuwtfdkfFvfRsLqMhJtR+pExhR8EClu0fje6hMPdLRT1G3Swg8J1ED5mLPLyCAqXrah00kmn/zZpQIQGQ9zPGrpBWOOPTEjDzgRfNOxFHsUCFBXnIU/mtF0Ho9AmOAg1DQZ4CX/hXQM7g2sgytuAuCBuHlcBh1sZcNynivIMpoes8uQlAOxfTYGhBG4PBGtevfuDGeqhOqICqihvXwK8KsSEdzUc9mLc3ipI8K2svIYPBVRQQDJBZXoS0xOZYSBYT4Iv66qCOD9NlmWog/kOUJmswlH4VEeyd03FCb7VFPDryGeYB8YLPtKmOo62qYEUr+rSpqoKXD4YVAkHgjTvYOqh7sOUFTsPe7Eugt5VpY1VFPCsvKB9abfm8UxAmGEnCCTHUEeHitgqeeuCGuAFc228EzYcybGHNFBJgV866fT3JI7+e28AfB+QyagsQZurSoWZ5JjRStTcJROWHRSmFGc8Td7ue8s/5TyDNUlKcba0k70erTxJ6i8VvVolqhbmaZMj69PK0kqV7gCFNeUqT1NJWJhsr4C2ODLLJTlmap7rpJNOOv3VSAeFddJJpzIqD6I+CGz9K3CXcQvua0ePiTMRnXLe3kKd/vxEQFgWEvLyX1RUgOC2HVChQn0YDE5o2uRpWM0h0MJGjNOAYGuosKQRGLaMVaEPLMaRePSJ1xFtj//7xaeL4eveBYMHv4nohJsKMzl6/CQmhb4MW7PuaGaagilv7UOBvM1n37mNxK3J+H1VHJb9fAQLf07C5t9TMHnct3B2GYH2j76FU5eAjGzgxyU7YWzaBQ3NgzF/7Um1nrh0+Awec+sBb5dBqNR0JHpFLkFauixHskrwQtgPeLLrq4g9nqnCRMz6YCU6WZ+HpclgNGk+DBGvrFeevqXXgcGPMU7wSDzR/2PczitAcUExXh7xNbxMI2FuPxEn0qURWaVY8fkiuLQYgqcHzMCpu2ofbRxPOILtv0Rh8ZpTWPTjKfz6azQWzNuE1n7j8OhT7+L42TwUy0ro6xdmoL35OdhcB8PkHgZ36zi4mTRv4H8FCru5joeL80A0bvwIKlVugeo1GuDlV15BfkEOStRPLvVlkU5/Z/o/H/8sSRiEXmnaPw0iJjPPwffTH3JkzsvL48+0cyUlHwUFBTicchSPdX0CTQ0GdBKe4VULUe3q4JCPHXQV1kJFGBSYGsd4ugRyycozt6qSo+fuwbYaOHwwkGCxBgrTo1iL90uQlcBqRdFHEJhgsKZHxfr1Z1iGykjw1UBhFZaC3sUqNIUWuoExi7mpHXVqnskVFJhLIDhRbSbHWMi0iRu/ad7L9GxOobezFzeiq47DXtXFBgLL9AK+521MW+gJzJjIR70qi7y2IR7tUZ7Iqh5pu38FVS5GdMdLHm1WtjBNeHNwTbxvqQl/6cumVSpjysTJKMrP04AlnXT6mxJnIDtOKsSvqOWZKANOCZlqADDz+aSQNVBYe+cjMU0Dhe1oLk8Va9c8pUpNzk52GR6oTfPqZTgXedGhkGQwXZPnG6BcSRqveaXSGZOY3+zb5e/ppwRjENszWAnVO1glMZce0DoorJNOOv01SQeFddJJpzIqD6Y+CHD9MzPjB3cKm3lfG8Z/vBo3uEuXTn8h4it1EYoKc1Ao7OrmDoOhtnAzNGr0ODzcCf6OEaaXsJzbRgmPtAPDY2CW9OYthqPr0+/g4OkitdHc958vgrf5cbh7jsaA0AU4ewsqVETU78no23UC3DymIPLFX5AtL/hXL53DyKdHwLNJR7h49kczz+fh4z0Qbsa+aNE8DI88+gGOnMxHkawPVszfCIvLY2jkNhRfL4pDgax/7p67gsEdhsPXNAi1TGMR9u4m5BeWIPfWbfTtNhXdu0xD8tlMZMqaZOZ789HFox/cWgyFs2k0xr/1K67fAbLPFWDEU5PQxDkMHZ/9FDdyCpGbU4Q3Rs+DR/MQuHV9EyeJ/qbnYtFHs+Ek5ds++THOyPontagAM76cDm+3Tqjb/Cm0aDkIni0fR+vWz6CJaRie7PcVDp/OQ7HYOuPVpfBv8RxM1iFo5DISrpapsDpPgcU8+V+CwjZrJMzmIXB2fhw1a1vQrkNX/L75d7lzRXLP6HejL4t0+jsTx/+/eAYc2Q9gHogzEH4oz+XwB43LTu5nyhLCyBPpAmTLX3keS0pRfDcP8z+fgR4WCyKbVsdq/0aIDaiFBF+DittLkDe6rXAAvXIJCle+L6YwYwerUBKBkh+kgaMEiuk9S/BYbQTnQ3CV3rlavipvZ4LCKhwEOZBeuARfKyPZp5LavO6wjwEpYgv5sB0cZt30QGZZ5W1MENif4O09AJfex5Qh+MwN67ixHUHeZHoi+2l5BK3JjGNcZqu9DsoTJCaorOqiPoa+kPoYY5g2x/lWV6Awy1PPIannl+CHMPTh6nAyGFCnUk30eKYXSov5ucXe583QSae/H3HkO+YpbUM3zj9agvblFqFWbZM3npG1KMHy3DBemGRoc57DB5hpkqj9F+KJlsvgFAR6VX5ZHZofsOZvnCYnWSrx3kZz1MKSRUqWadSh6lKb2Uk+DZAD9TBf8yXmjGqHfKmChR0s9bO8DgrrpJNOf2XSQWGddNKpjMoDqg8CXv+s/ORLP/1D/OAvFm+zt0qnvxbxpbsIBQXZclaIho2awFChLgyG5mjW9EnYrKM0QFjFE2bYiJB7oLCFoPBYOBtHo/uzH2H/kWw60+LLTxahtevTaO40FK5tpuLjb6OQLWuQYlkvTP9sHWzuw/F0349w7EweGAFhxcz1eCzoeTw/9H3MX5GMubP3o9+z78JiCkFw8DScOicLCVktLJm/DY0bd0Rzj8EYOnYmrt+QFYKU/3neNjzZcQy69fsMm6IzkJldgoO7otBGbHiq2xQcPpODPFl4TP9kBbxNz6C120g0btYfo6csQ7asULKvAsOffQnOzuPQrefXuCu2ZmcXYdroubA0HQVb4Ms4I+sdrlrmf7NU5MJgajUN6/edUyB4UtwxPPf0cDz61AR89v0WLF22E5Mnfw2jbYD0y7s4crIIxG6/eGUl/C2D4OYmfeo2Bq4EfI3aZn0KFLaOERbdBIStY6Vv6UU8Hq62cTCbhsJqfRYdOgzA8hW/IDePSygu+7Sll046/X2J4///7BlwlCyPOTjYkaf4vot7TDwjV57BPJk785Aj5WTyKJSMO3nA+WvY887bWNauJXYENcNBbqYWaEBMewP2ylGBwkHCgYy5S09fDThlKIhkb21DOQK9BGkJoNITV4VaYLowvYsZo5fArwrpQBlJJ1jLfHraMp3xexm7VwsnUUGrg6BwOWCYaaqc6NC8hclaOAflbWwvqzbEs8uxPqZr3sia/WVsz1dAtVwTFNbq1Op32Eebkr2rKRD4gN0jWotVXElrk/DRgErY4F8Pw51roonBgLpVqsm8/jQKGVNd3RiddPp7UrmpSIjgq7wX2BO0OYwzFENIaHOVhr/ynUHY/uzcm+/sBZmu/beTBr2Wgbb2fDLLaW8g1ExPYbHBnn1PJ2FgzZdYs8GeSz1EjzVBpYf5GjxM72bNS1n9Kc/2Ew30Vgk66aSTTn850kFhnXTSqYzKg6oPAl//jPz45OX32U1euy3B3iKd/nokr+0lxSjIz5V39CLYXD1gMNQTdkGTRk/C3ZWbyo0VLhc+wkYvYTlKutkSCSfnUDzx5HuIPZyPHHlH/+DTZbC594TJOgItJK/rEx8j+TCQLeuFqzeBHn2nwb3N8/jwk+24dBFIuw7s33kCh5PuIu2WnO+6jqe7TYWLU0906jQep88A+bKuWLzsEBo3fwxG977w8B2G6XP24eJl0XsXOLD3FGLiruO2nMfGXcCgARPgZnsMjz8xBkdPFCInH/jssw1o6dkfJksfuFj7Y8ILS1VYivRUoH+PabA2jUSvp75BVo4sb7KLMGHMXJhbjIaf3+u4dE1skMXLtzPWonnzcXAxvYxBoV/jyLlMZGQBKSmXsGffCdXGo8fSMWH8p9I/3dC796s4fQrIlfXSR2//ipaWIXC3DIfNNAKe0p9WF/YvN5qzxxW2M72EtY3m6C0coYHz5r7o3i0SJ0+mMxQzSkpkoVWi+d3opJNO//tEX7V8ZCtIOJ/gC38SzV0xb8ukcOMmMn74FnvbeiLKqx72+RpwqIMBB9oZsJ+AZ3sDDgbYvYblmuApvXgZZuGwNwFghlFg/F/tnGlHvCopcJWgKsHgA8KMPRwTqIGzDMVAb+BkH4aHkGs/hoKwg7xSB4FYDWCuoGQI0lIfgVrWzzzKaICtdu3w8r1fjnGLK4nd3FxOA5+V/SJzxLui2Mo4wZp3MpkhK46o8BGSZ7dfeQX7V8LxVrWQ4l0d+9oasEf6RAsjUREHAytL26viRJvq+N23HsLdKmugcGUD+vZ8FiVZMtlqKJdOOunkQFfvI15raQ86+/9H/7rUvVw+jLRBo3uy95/du7qf7uX9KymddNJJp/8M0kFhnXTSqYzKA6sPAmD/bNxl3Pz7bZ48C7FHL9hbo9NflYoK6Jkhr/TFRXj55TfRtGlL1KrVGi7OvWFyGQmLeZwGTjKMhPIWZlxhDcxketOmI/HYE+/hp1/OIi4lG1Neno2W3oPh6j4azs6j4eo2HlOnbUBMQgEOJWfhvU/WoLnxaXR85A2p71cc3JeGI0mZSI7LwoJZB9Cj+yswS91ml74ICozEzp0ZOBRbinc/2IQmLZ6Fa8vhMNoGwztwAl58ZS0OHEhFYnwaDsWkYtHCPRg08A242p6Gm9uz6Np1AjZvvo6o6AK8+PJatGoTiqYt+sLZNAhjxy1HdEwxDu6/geeeegmWJqPxRMd3cfDAeSQmXkP46DkwOYUg0PdV7NqVj5ikVEx7fQFcjBNhNE2Dp/doPD/sXaz/JRkpKXelTDq2bDmFMeGfw9O9F5o3eQy9er6BLRtv4uCeAkydsAreLSPQ0jUcrsYQuJnC4GpmaI6xMFkj77EChTVmH9tsY2A2DYPJ2AuPdQ1HcvI15WSTX5CH4pJ8uXP6Akonnf49RCAkF8WleeAPpAtLJIXf0+TKc3n9Es7P/Ay/tXNHVFATRKnN1AyIDTYgJsiA+LYGRNnBUYKqBGE1r1oCugRUq6h4w2Seqw3jVOgFkRU9KnavsBbaQds4TvPe1Tx0FYusCtXgR2/eSvaj3eP3H+TuMe34Z8z8eMX0JNY2pyPgrMBmSaeNtFWFwLAzAWKH/ZSh/Y42My5xijc3lTOoEBIEuaMCKyM6gGE1qiClTQXsCqqJ160GBFU0oFXDanjvlRdRyG/g9KlPJ5100kknnXT6i5EOCuukk05ldB/A+gAQ9s/Cz7y+EZ3CZtxn76TP1iA1PcveEp3+0sSFdYn8Ly7FrdRMfPDBLDRp0h4uTn3h6U5AWNsMTQshEaYBwwSIlRfrBLi6ToTRPAo+AWEI7hgOq0cfmGz94eEZCRdjOEymCNhcw9Dx0SnwCx6l2OYxGBbbaLi7jUGg3xh0DB6LAK/R8GsdDnOLwXAVfdzAzsM1HAH+L6BlS8kPfAGu7uFwNo2CZ+tJaOESouoI8JXy7SKFx8Gr1QjYzANgNQmbh4h9Q+HjPQHt278Gdw/aP0ZsoXfzaHi2nAJ/vxcQ5B8GN3M/tLSGw9Maio7twxEcNAqulmFiQwhsljC0a/eitC8Enm1Ev7TX5jYZzVwGwdVzGPx8pW3tJ8DPJxT+PmFS/0B42IbB2OJ5uFtHwq/NBDzS7nW0lr50aTYCbtIfbsaxsLlEiJ0MzREBLXSEgyPs4SPooU3QOBQ261BYLb3QqmUPfPbZfFy/ni63rQi5eXe1m6eTTjr97xPjchbmoSQ3R218ya9ouCdlalEudm5dj/cGdsd7trr4PagpEnxrIcWrApL9DYjzozduReEKCiClZ64KJWEHiBnTl6Brgl8lxQR8CSgzzyHDMgRok3yqI9GnmgJYCc4yZjH5kMgxpi9B5hTvajjsVVN55BJwJoDLfCUrR0dMYnoCH/HWmB69DCmhYgxLPoFsHnnNepOZL/IsR1tok4M12yooj2QygWiH/eX10D7ljSz6GNuYug4EVcaBwKqI9asqeRWQIDbSi/jngKp41VwB34b3x/mkGPWxpf10XSeddNJJJ5100umvQzoorJNOOpVReZD1QWDsn4EZP7jdiC/vs/WrpTvsLdDpP4JkVV1cWKI2gybGERNzDk0ad4CrdQhsjCdMQNg8CcozWIWQEFbpGljs5BQGiy0cru6jYLYNgov5eRgtQ5Sc1SplLGPh7DISRvMQuFieh7OpPzxajYbRFCr54TC5EAQeKjwSHrYxcDNHwN06Xq4j4WoZpzZaa958hMhGSJlwtFDex5PRtHkYPDymwOQ8AsYWg2E1Dkcrjwi0dBfbjCEwG0Ph4TYeRpG3ih6jMQJW2yTYbFPknGD2NLFf7DMOk/qGS90iL2wxDpayg+DuKvXY6BEdKvIjYLKMgMU1FGbLGBVH2Uiw1jUcLk7DYXYeCZPTCHi6RsDUYgTcLOGwmcQ+61gtRIRzGNzFBleTBga7m6VdBIbNY9WmciapR3FZTOExignCm6VfbLYhaNb0cRgMRtSo0RxffPmt3DbG3cuTG6iDwjrp9G8huuwzlgsdhoX5m4sbwjFXzqFnvyfR2GDA05UMWOj1EOIDH8Zhr2pI8q+CGB8DYvwqIzGoWpn3LUFTev5qm8MxDjCBYI15zjTmUYag6z2vXM2TmKAwQdeoYI0JvmrgbEWRYZzi6kimLD18WRfrcchKOeXpq8JEEERmCArNq5ebvVEXAWSHTgXkqlAV9hjBcs10Vb/dRgLb9CQm81x5NkseZQgIOzyG97fV9B6VPiEQTS/hmIBqYkNVJFOmvQHbpY79Hetg56C2wOHdQGGGilSaI6zPfjrppJNOOumk01+JdFBYJ510KqPyQOuDANl/Nz8ofvC6HYl263X6j6FihpCQpXUpvYWBgwfPoFnTR9DSYxTMxjANEDZP1kBhFUKCoPBYBQgzz2abAHeP8XAxjdI2l3MbAzf3sTCawmC2RKBlSylLkNMyGs4uI5R3r9EcInJyNIbC3S1CeeO6WuXaaQxcLZNgch4Pq2mSXHOTNTm3ah7JZvM4uNomw8VF6jNOhM06FW5WscEYCbOUtbiIXcZxdp4Ai2kijKKLALDJJOWMots0FU7Ok+R8iuidKnWLTmmTs/Ng0T0aJhcC1WPg4R4psqOkffR2DpMj65d6pB02ttFTdEh9NukDV9FNdpN+cm4aIecT5XwSrC7j4CH2mZ3HwlPstoqdLs1HK8DbjaEhpH/MVqnTFmpnnku/EQxWXtmSZh4m/TkEDRs+gqpVbahYqQHCwseioChTbhlhESJSOumk0/82qTAu+QWay6ocuG/SdTndcjQJLQM88ZDBgDbCn7eugwOBjZDgVRPxATUQ7VcFUX7VkBBQXQNhfTRgmJ7DUYEVcSBI4/3BGjuuuWkcYwQTUCWAypjAib7aZnD0POaGcgo8FqasA5jVwkZorEI+KJDWDjITqBUmqBvnVxnxvtWR4FtDmN7HlTTv43JyvOYGdAxrkehTxW6Hw34NEI4KqoCDYm95ZpoChMvZT11bOhmwu70BR+T6mDd1M3RGVZxsXUV5LEe1NeAgZcS2X5/yBFJ2A7lp6uuwDOlwffbTSSeddNJJJ53+SqSDwjrppFMZlQdbHwTK/tv4ne14NHLeffb1mTobCccv2S3X6T+KSoHC/CJ1vHolDZ99thBNGreHxTQQrn/0FC4DhR2ewhNU3GB6zxqN4XBxGQNX1wnKQ9jFOBo217Fo3mI4XN3Gwd19ogolQT0tnELRstUkKRcmciPh5DwCbm4Ef8fD02MaXJwjYbNOljJTlTcwwz1YrWNF9zipIxzNm4+Gj8+bcHYaC5NLJNysE+DhOlnsnQAzAWHTeCk/SbFV2NWVOsaihbCbx4uKjdIuM2VszJ8g9oeIDaxX0k3jpF6CwOEq3ATbo+mSNGmryUzAm+lS1jIFFqPoIShsnQqrcSKspomSThZ7GCbCPBburmKT6rcwuNkkzTJagc7/FShssY6QvhqBypW9YDA0R5UqDTE6bAyyc9NQXMoQLjosopNO/xaSOVM9fnRbJUop0+htOWxNioWblwUNKxvQ2mDAx961sSOwAaK9qyEuiFwVcYwD7F0R3BiOXrcKgOXmbcIxAYwRzBjAGhMoZRrzKMM0liMorDx1CciKDOPwHgisofhgYHUpQw9ihqHQgFge4xQoXFnyq4lcNTlqG8YpoFf0Mv6vY5M42sg6KXMwqBKi5EivZeokGK1tVscYyNzoTgOhme/QxY3vyDx3eDyr0BgiSy9jgtT7gkVvkBY+IkWYoDLlVL8wHnIHA7ZL2o5OTbC0WxucXL8M+ek3VXczXIfuKayTTjrppJNOOv2VSAeFddJJpzIqD7o+EJz9N/Azr/+GTqO/v8+2qV/8iLQMeiTq9J9IpcWalzD51Vffhrt7e1Sr6oEWzZ6DxRQKR+xgLaYww0dwszkCw9wIbRystjHCBHsJEk+G1UKv4gkwmkbDxTQSbu5avtFIYHWq5E2G0YUxc8NhcwuD1W00bB4MlxAOJ5dQOBuZPhEW2zh1bTSLDQRLLaPkGCr6IuBiDBEbxsLFJQxurrSP+unRyxi8YxWArNjG8Axim6ucu3EjN4ZqGAMXaxiauYyCszlc9EeK3klyHCf2RqoQE+royuNYBUDTG9oo5yaGf7BNVEC10RShrtkuEz2V1WZ8E6SNExT4TXvYRgLImuf0SOERagM+m2uIHEPg0VJkysBgDRDWwkdozL52dhkCT88RqF+/AwwGJ1SoUN/uKZwltyxXbpwOCuuk07+FiEgyZkS2cKZwHpAhj+P+lHj8f+2dB2AVVdbHHwkt9CY+qQmEEnookogKRBGJYoliQUEgWDCW1Szfrpvd1dXYMDZkXQuyu2rQ1Y2urLC2oFICUgKCBhWlKEWKBEh5Sd5L/t85d2ZeXho8NEHB/09vZubOmXvvTPTF/DycGTS0h8kUjpb2wKAmeO+M1lg+pAFWnl4Pa093YcMQF7L7axmG+uaFaiuGShvWAJ9IjGbgftGvPjb3tVpOf31hm5yTmCyJWSnbtXKNSlnNsFWZqlm+K4Y2wdJhrbBkWGssG9oCK4eEGSGrtX9NRq8RyCEyRyMsG9ZcYlti6dBWyBraDKt13sFWjDZTT3hIqIzZVMZqKWO2MVtrzBAjcXVMrVls1j9M5pemL737dFB9fCnr/7qP1TbJ+vXFc/pSPOslcvWt9Q9shM/7N8FnA2Rf5tNSFUtiXfhY2rLhmvEcKvOF4H+DwzB38Cm4rJkLiXEj8b+M/8Arz541hQkhhBByokEpTAjxEyheqxO0x7uNnflvxF6XVmFdT87/0F4tOTmRX6ntYsKlpV706TvQSEeVj+728egZqTV1NUM4yRLBRgirkNWXzemL0FTuap1dzeS9HRHhd6BzJ5WityCyx43oFimxkVPRpetUU/ZBz/XoPtOSzJE3oKvW6e1pZcl2lJju+jK2bjciIvJmdA6XuWUMlabdJSYicoocqxieJvNNM7K4p8SHh1svvtOsZJXPfqGqa9es28jp6BR+ncwh1+hauk9BhM7ZcxrCe1yPzhE6x+0I73YHOna+WeaS9XeXezNyOEnG/Y3MI2vvovOqdL4NXbsmoUPHafK8fiP7Kn1vlbgkdOpkxei6evScIWuUOcOnolfvm9C562Q5vg69om4w9Ym7Rkyy7qW7JYKt5rxoTppmFas4l/V37XolTj31XPnedEOLFhG4+54H4CsrhreUVTUJ+dlwpHCB7GjaqnyUFspn6pfbNuHaK8agTwMX4l0uPN8nDMtjW1mZwEOs+sFaRkFr864ZrCUe6mOlStWhWk+3PrKlfTqwHj7Tppm4g+phVXQ9uVauP72B2a7SrN7BIfgs2mWavtBN5eyqIU3wiWlhWK0lKrR2sZzTF8NpVvF6uW6t9K1UyTw4TFpTiQvDOpXCel6aClrdV6H8SXQjGbO5xLWQOZtKn5aNsOY0L4eLDsHaYQ2xcqiWt1DhXE/GCsUGfWHdgHr4XNb/qezrfVq1kTVjWDOj9R4bYlPfRsgZEGrqEq8aLi3GqUusGccqvhvjg9Pb4redXYiSZ9k+xIVrr7rGksLSKIUJIYQQciJBKUwI8RMoX6uTtMeznXv7yxXWo+2tDz+1V0pOXvRXai0dUQyvtxDdI3vA5WpmyhSc5h6H7pqda0ToTZYIjlQpO8UWwyqJVb5Kn5Y5UNEbfqfVdF/7IidbrYbzEZHXIbzHVHSNTJR2vbQbpd2Ert1vsgSpZs7K+BoXYca6LmB+FdRaYsFp0xFhxnRKMUwz14ZLfHgPbTrXZGmTTOvaU5r0d1U53f0WdO12p7Tf2GtQcXuLtNtMi1D57cypa9eSGvpczBpqanLPNTYrxioTofc6w243y3xatzjJNJXu4eGJ6CH30LXLxWjXdjiuuuo25ORshc+nf2aduXKE/GyoFC6Rf/9KSuH1+eAp86JI/p0sLtmPZf95AfeeOxCPn9YAywa1x9oBjbF+kCWD18S48FG0bM90YeVQFz4ZXA9rhmn9Xs2OleOYelguMfoStqwzZHu6C0skfoWK5OH1jXhdIWNpxu5ncu0XQ0OwYYALGwe6kDPYZSTsp/oSOiOO6xsxnD24gSnlsGFIfWyQc9n9rHi9zgjcoaHIljFXy/46LfEg+9kaJ+c/G9JAYq05Ppd1aLzJFJa1aymI9TGN5B607IOsUdqqM+phqaxZ72GFvf4suS8jfWWrtZPXqvyWMTf2rYccGUOfw1qJz5Hzuq6Ng+rjc3lmm/s2xbsDW+G6Di50cLnQpKEL555/PgqLS/nJRwghhJATDkphQoifQAFbnag9Hu2ie96vUj94wszn8emXO+xVkpMb+bW6TFPdSuDzFcJ92mlw1VMp3BHtTxmDnj2mBUjhREvIGjGrIlilsGbj2pJWyyeE32E13de+SM2GlVbDec3+VfGrErirvmiue5IRtOGyNYLUZM1qtq/KXpWy2lSoytyyJkvWaoxVfsLKulWRrM0pyVCdILZaV7k/SwrL3N1ul3arJYT1eiNob7EErZnDlrlG1gZmTmsLlNPabGFunp3TNPNXm2ZYa/a1yl+rqQi2mty3mdNqOk9U71vRvdt16NzpIpw3JgmrPtmmid0o8aoU1tIRVCOE/Dzo52cpfGVeFKIUBfLvY5GpdnsQyNuO7fPS8M6IflgxuCOyBjbButjG5mVrq2Os2rnrZKuSNntgKNYPa4i1pzfAsmgXPlLhe3Z9LJWYjzWDdkQIPokJwerhmiEcgg3Dw7B+UAOs0/ITKnblGs3e1ZIP61U6y7HW/V07rAFWRYdg3emN8GlMGFYMUIkbgvVDQ7HhdJlzqFwn8dpUBqtkXjtE6xA3wNqhjfDJoBBky5qyh2qNYDkv4+ocOVoCQ6WyHH8+pCHWyDrWavayjndmIyyX7Sdn6LrrYZncg+5r9u/a2Ppyj6FYLWv9bIi+ZE/rIss48hyW6X0Olxg5XjewvtxfMznXAut6NcS7w9pgWmcXOrpcaNHEhQsuuRBFvjJ57vz0I4QQQsiJBaUwIcRPoIitTtjWdbvgD//FmZXqB8987A0czNM6peTXgf5KrdmmxSguycMZI0agQcM2Rgqf2n4MevdSCWoJ2HIprBm7KoJtAepIYRWlEb+xmpGmlaRwNedV9Fry9TaES394xB12k/1uWtJB5aiKU5WpjlhVqapj6YvgNItXM3plDH+2bWCzM467a2kGRxYHNqdkQ+A1TryKZqc5Alju15G8zv3L+ari1y65ofLbySzWl/WZJvdv5Pidsv7fyPpvlfWrDLaEcLgca1+EuS4JnTpOle/D9egReSXGnHMzvt6cb6RwcTGlMCE/J5qrWiz/Dv5Qlo8DKMFhaSVa59t3wEjhrfMexaKzo/FBdGcsjj0Fy0e2xuLBVnawCtlP+7nwea8QfDGgKbIHNsKKgSFYHdMQq08PRVZ/FzbEhGKNxK8eohK5HrK0BMOgUKzVOsN9GmNTP9k6UldalrTlpzfEspgwfDysEZYMtWr4rpLxPpFz+pK3LBkva2gIlsm5JXL88TAXlqrEHd4Qq/TldIMbY0V0Y4lrjJUxTfChxC8/IxRLhkucxKq41bk+HaLlLUKxuX8Ycvo2woahYVgua1aprXN8GlPfyF+VyWt0/NNlTjleObAe1g9ogM+jGuDrIWFYL2OqIP9Y4lbE6DpaYMmAlrKGU7FiUFtsGHEK3pC4pK4u9Ha50LqRC1dfexkKfV4UlZbx048QQgghJxSUwoQQP4EytjppW5dt7G9fR+zkRyqsYc6rH9krI78e9FdqH0p9RfBJe+75FzDs9HPRpElvU66gZ49EW3LqS+ZUAAeUj/DLUc3e1bibbfmppRVk30hkzSqWVsN5U+6hW5IlRyPukKai1Gnap9I3SeJVBFcUwipXHalqxjCtPPu2atOs4spNM4ADM421lYtgp/kzfys3vwjWdWmzZbBm+VaQwbYMt2Ww1ZJl/XLPKoJNVnR1mcI3o1dPua/wSegReQVGnHEd3n/vUxQWAKVqhlk+gpCfDZXCJfLVI/8eFkor0j9xoZnCZYewb/t6LHg0BXcN6IK7I1sgtU9jPDusBf5zZhssPastsoc0w/K+YfhgYFs819WFx6NceLS/C4/1deGNES2xeHAzrNQ6vkNb4Z3oMPw9OhSzervwcB+J6+bCq1FNkTlYXxJXHx8OrYcPRrbC6yNa44n+jXBfdxfuj3Dhr73r4bUB9fH+6U2wZHgYVo5qi//FNMMrQ5rgrwMa4eGeLqT1qYcnernwSnRjvBPTAstkjGUj2uDtwU3w6qAwPCpjPSRx98h4T/YPxZtnt8ai0xthZWwYPo5uiMwhbTEvMhSPyhiPD5S1yfpeHhSKj4c2x6ohLfHJ4OZYfHoL/Puslni8n8wn9/jXvqH4m9uFRfJMsoY0RNbw+vjorDC8dXYrPDu8Le7rGYZZUa3xSKQ8sz4N5Lk1xx/7N8aZYS6c2etUPDvnUfPs+b/ECCGEEHKiQSlMCPETKGSrE7d11c65/aUKc2t7e8lGe1XkV0eZ/FpdqoKxDAcPFmLOnHR07nw2IrtdKW06NFvVSE7NiFW5aySwZsyqAFW5a2fM6r7JjFWZqRJZM2s1NiC+ynnp1+NwlaZ3IEKzZ51mS2FLsqpwteWrGUP6TRkKFckqhVWiOmI4sEm/xJsYs63YrLF1XJW8do1fOTatu1WOoqL8lWaEsN6P0+eIYEcGa1MhXI0UlvX6S2hIi5Bzuk4ro9mpLVwusvV+o3onocNpl8u1l6Jjh7MwceLtWLFiPUrLfPId09If+r0jhBxvNE/VJ/8emn8HvV5pJSgrLUZu3l6kPn43BkZ3QXhLF/o2cyE6zIWL2rrwWExHvHNOP2TH9MZHw3tjRgsXzm7kQremLnSRuEGtXZjY3oX/juiJlSP645MzB+C5fu1wgfT3b+VC5+YynlxzvsTf3b0hFp/bCe+MduPl8yNxR/+WOFviomW8oSESE+rCjbI/V+XzyE54N64r/nVud8zo4EKcXN/X5cIAiTtLWqJc98rojvg4vovEnYr0mNaY2tiF0XJuWAOJayj7Mv+N4Q3w6vnd8X5cG3wgsSm9mmK0jNVT7rNHGxf6yf6VEvdyn3bIkntcfWY/vH5md1wbYT2HbhITJdtRsrZbJfYdube1o3tg0bkRmDXCjbPdMkY7F/rIffaTucc2kbie9fHXsf1x77lDsPiFp3Fw2xagpASlPn72EUIIIeTEglKYEOInUMpWJ29ru1109/sYNeP5CvNe9bsXsPHrnfaKyK8R4zTKAJ+vzJQlWLNmGyLCz0X3iKvQM1IlrC02VVIGClFHfBoxqoJUJaaKVm26rxJZpaojUKs5L617xAxpSdIcmarz6daRwfac/vINKm2TYLKIJU4zgP3CtkLTfm0yl45lms4R2G5Gd11Dt+ulOfJXm+47x854zv4MM6dfHjtzHLE50rhiM/LXX+LCaSqkrbF1DZGR09GhQwI6djgfLldXhIS0w9133w9PUZ5827R+KcUIIT8HPhzA2pd/g6dWy4GpwlMKn6cY27/djismXwVXfRdCQ1xoKdu2Lhf6NXbhsUnj8PkTd2PPI3dj5cxbMED6T5Pz9Ru4ECKtXTMXBrd0Ycldt2P7w/dh24P34smLz0UXHUeur9fQhWay1Zeu3TQ8Cp/PugPbnk7Bxw8n49phPXCKlliQplutwTtE2pOXnIktf70Hnz+eggW/vx4jZPxO0t9GWjtpEaEujGjhwr/vvBabn/4jVj9wK16ZcZkp13CqHdfc3j+/a2tseOYv+CLtFmx8/LeYNryvmauBrD1U7qOJ7PeStb5w6VjsmHWfae/OnIGREU3RVOZp2ESanHdL3HA5Xjjlcnz/hKwt7f/wzE0JOK2RC43lXFNpOm6EtAlR7fHew3/EyhefBw7myoOXH1gl8sB9+sOLEBIMu+cnyH9DuI7QEpD+nR18QrIb6RPkPu7Nso9rm1zkzE/GHP28J4SQnwClMCHET6CcrU7i1maL1/rBiU9VmPP3T76JvIIiezXkV4s6Rfkdu6hQy0gAH3ywEaedOhLduk5Er8hbrCxek5WrAlgFp8pK2ToZsEZwOuJT4k1z+gLEbLXnb0Jkt+sRGaHtRmk3obv0OaLWKkGhdYztMhSmdIWWnbjByFirBITKYokzTfet5oheayx7XCOgbw5ogfPfLE3Od9Nrtd1opLH/PoyY1j6r3q8jdLXUhF8m674R507Taxyh7ayxvOnatVWudVxetuJ69O03A+HhV6BZs+EICYmQ1gZTp12Pw/n75Run//5SChPyc1DyXToucrlwzwo50KR9/X80sj24Lw+PPPgYBg0Ygj59+mJwv744s3cvTLs4Hlkf/Aco3A3k78KeTZ9i8pXXoX+/4egZNQhRfQcieuAg3JKYiLxvvwUOHwYOHcLS/y7Axeefj759+qF3v4Ho3WcwYoefg7+mPYGS3d9I3C4U79qK52Y9jNFDYxHdawAG9OyPQX0G4LxRI/Hxe4tQWpCLkoP7kLvzW/wuKQl9u3ZHq/phGNC9J86IHow7broR3331JYoOHoAnNxefZ6/H2NHnYkBUfwyMGoCBvfrhnJgz8Pg9f5Yb3CttJwp3bsffn/07zjxzjKx9kKyrL/r1icJ5Z43AB/961RK4+YexY+OnSPntnRgcHS1xA9CnXzQG9DsdVyVchW/WrwPyfgByd2Djh//DNRePx5CefXF65ECM6jsU5w2Mxux77sah73cjP79AKzYb/w6vfO4VaqkOFpAgJBgsKRyNiXelIW1WdW0usuRf2ROXOpbC8nmfIJ/3qfp5TwghPwFKYUJOQj788EN779gIFLTVidzaalo/OKZS/eC/vbbEXgX5taNlCErlL29pKTZ//R3uSnkULVsOQvdul6FH96mIVKkaMcNsu3VLRI8e0xARMVnadegWMU3irjfnIrvfiIjw6XKN7quQTZQYub57Irp2vU62N5imMSprrXH1+omyfzUiIyahW/h1cr2Odz16Rl4v409G9+7XoFvkVYjscSUiuk1At+5XS99kOZ4u5xNNbGSkzBF5LSJ66DgT0LvbVegZfi16dZPxZT4zl2b+ytgREhvRbQp6y1xRsq6eukYdJ/x69IrUNU2RWLm3cNnK+qx71K3cg1xrSeYZcm9yj5HTEa71fntIfLdJsn+txMh13afI8XUSZ2179Jgic14r8ZPknKxT77fHNabPqs8sz0SeU/fIaegaoedlnB6TER5xpbQE9OlzBZo1j5Zf6E5FaIM2uG7q9SgpLYJWNKUUJuTnwftdOi52pLCaSv1/NCqHfYDncDHWrd2AJUuXY8mHH2Pdsizs3PyVCShFIUp9h4EyL3IPFWHJ8vVY/NEnWJa1FqtWrcP+fQfM/6iTD2eUeOTfc18ptm/7Dh9/nGViPlq6Btmffg1TPaGsBCUFByXWi6LD+chZn4PlH61A5vtLzFg7du9BoddrlueVQYuKS7Bn9148PutxdGzfEc/+9RnkbMzBrl3fw1PssxKeZe7DhV7s/P4HLFu+CkuXZGHJ4qX44rMc5OfmoqxYZaxE6v9MlI+gdRs2Y/mKbHz08QosW7YS27duN2v3FRfL8iRA9g8dPIwVK1Zj6bJVyFq5Hkuz5D5zC01dYJ9XHlqZtBIPvt/+LVYvWYlPMldg5fvL8FX2BhQd0j8VIael5ck9+6Wwlj2iEyYkKCwpfKJnAx8JSmFCyIkBpTAhJyH33HMPRo0adcxyOFDSVidza6Odc9uLFeYZMSUN/1v2mb0C8mtHX9XjQwGKcBhFZYW4duoUuOq3kF8cTkHHTiPRvdsliIy4Ct26Xo2e3SchvMvl6NH9cpzaPg6nus/GaaeNQXjnK9E9/Dr0ipyGiC4T0TNyssRfha6dL4O7/QWyTUDb1udLjIwh5zp3uEL2J6Nnt2no0ulyGSNO2ih0PG0cTmt/MSLDp6Bblyno1X06una6CuFdE9C1y4Xo3OU8tGt3Fjqcdp71ErzIiRJ3DXp2vUHWNB3tu16E08JlPaeOQI/2ZyOy/Tj06nw1IjpeZ6SwCuQuEZPQoceVOOW0seh1yjj0bhOPiFMvR3ina6RNRFRPvYcr0S38SlnnJTjt1PHo4L4InWS/02mXyjjXyNqvRY9uU9C14zUy72S5x/MREX6xPJPz0L7dWHSPmCDtChlH71Pm73qlxE00z6JjBxnvtHiJHYPu3S+R+7jUPLuIzlPMM+keMRGnyBh6Pjz8Qrjdo9Cjxzh0DR+JtqcMkO9LG/n+tMT1N9+OQ4UF8r3T1y0RUndYIiEVC1ekIT5SfuGOjEXKe5oSK3h3I3NWImK1X35ZjohJROobOSZhtgJ5Oci4t+Y4Z47Kv8pX7vcf78tC2tVRpgSBu188kufnoEqCWxBrO9K9eTZlIHVqHKLc1vV6LmFmOnLyzGlgRarV72+yLv2XUVtuNfebIXObrFZtpXL9fXIuAelLM5DYzw2XOwoJ83Lk3NFxRrFwjuye8hMGPfSVWp8TZis7Bw4cwC1Jt6Bd23Z48IEHTW3eIo/1p4Y0rsTrM3G6Xz16pvxszXE1U3EEJaDH2Q3oUnTXeHBzRAg5FqzPuyClsHxmp89MCPgMS6j+c7YC5VI2d2kaJurnmsuNqPHJSN8YeKUTtxBZs+S/wcz4Kci0P1tzN+pnb6zpd7kiEDs1FRmbqvxUMXMkxkRY6xuXjIVbt1SRwsH+bDEc6edUdZ/35iJCCDl2KIUJOQlRKez8h8KxyOFAWVud0P0p7aK738PIm56rMMc1d81Dzpbd9uyE6C/XPpSgAPru/NyCHxDRMxKu0CaoF9oOYU164tRTR6Bv1AQM6j9J2rXo3HEsmoQNlH/WuyK0fmeEhIajebPhRogOGTwFpw+bil69LkHLlsPRpMlAhIT0QmhoL7PfuPEgRPVOwOBoGWvAtejT+yq0bDFcxugkY3VEg4Y90azJELRtFYc+Pa9B/z6TET1wEjp3ikOrVjpnB9QL0bjuMl4/tD/lTAwZeB2i+0xHP4lt7h6Oes27olnT09DA1QotZbxWjYcgKvJqDOw3Hf37T0W3Xpcj7JThcNXripbyy0ZLV3c0dg1A65YjMaDvRET1ugyDB01Ej8gL0bZNjMzZDSH1eqJ+aBRaNB+GTh3HYGB/Ga//NTLmJHRwn4vmzQeZsg76TBo1ikLTpgPRvds4DOh/BYYOmST3fKm5zwb1+0qMxoWjYcNeaNMmGv36XoIhgxIxoM8URHS5BE3DhqFRw/4mTsds0bIv2p0yAIOHxqNbZAxate2OTuF98MRfn0OB14uSMkphUrdYvzy74Y6Ml1+QM7Fwfjqy9skJTzbSRssv/ZEJSJ2/EJmLFyL93gTzi3ys/FLu/xU+LwupMfLz0R2HxNkZEpeBOdfHwS1jTnzN+nkU7C/u1nEsYmPciLtjLhbqnHfFGzkc+0B2+ZxBrq3Ge9s8F/ESGzEhFemLMs2a595hzeOesdASI/tykPlaCuKkL/FpjbGFif9+45Fi5nbut9JzMZJB5nbHImmexL0h97PJPlfLlJoXiVr4fD58/vnnOOuss+RzqCEuvvhiHDx40JwrKyszzSFwnxByYmN93gUjhW1pG5OINOfz0/6cjZ+3xY6pDuc6+YyWz/tk/VxblI6U8SqHY5G62v/Ja8W53YgYn4oMHf/FLPP56ZHPxVj9nB2fYn32vjEHifpZrtev8H96IndBkllPxIQ0uT4TGbMTETd6IiaOkXF/jBQ+2s+pmj7vCSHkR0ApTMhJSKAUPhY5HChsqxO7P7bF37UAZybOrjD+H556C4X65zwJCaAMWjiixKjhvKI8nH5GLOo3ao6GjdvLP8enoHu3kUj5w1w8lvYW7vnzixg18jrUq9dJzrVF/YbtZNtSWgeMOPNqPPr4a3jgoX/iD396Cqd1GgRX6ClyrrW0Nia+UVgXzEi6V+JeRdqjr2L6DffJGJ3hCmkisWESY2Uod4sYhb/c/SKefOItPPxwOkaOuhwh9XUMiQlpKttm0lphdNyVuP++f+DxWf/B73//DDpGDYGrcQPzcqcGYQ0QIrFhjTrjmivvwsMPZiD1/lcw4/ZZqN8yXMZpiYaupmgi62vg6oRmzfrg7rufxwMP/AOPPPISxo27TmJOQb0QvcfWsrWexznnXoO0tPm4//5/4qEH09GrV5w573I1lxhdYys0atwRkyYn46GH/4FHH52PxOl/RIuWPeVcW7jqyXghum2FU07tgVtu/QvSHvk3Hkj9F6684veoH6rS+FR5xqfKVsar1xY9esbg0cf+jtQH/or/+30qHnvyGWz9bjdKyvS7x6w5UrdYvzy7kLSo/BdyZcu8ePkFOhkLK/1m7HkvWX6RjsfczdaxiQs4tvAgc2YEoibMhebGBvuLu7OWCnJV2PJcxTmCXVtN95b9dByiYmTeCt2y5rtUTgSss5o/Tpw9S8u8JCB9q91hk/N0pedgZ57FPR1cdvBPxRG8RUVFeOWVV9C2bVv5jAxBREQEli9fbs6pPHbiKIQJObmwPu+CkML251rKUvvY4MHCW92ImpqOmrWwLXsrCVz5RMbccdI/bq59rROXhIXOn7wwZCNtkPRPqDSHNwdzKlxvxbknVYzzLE1BtKz7x0jhYH5OsXwEIaS2oBQ+iVDpx8bmNP3lrrqm52qSw4HStjq5+2PaecmvVRhX23MZy+wZCSEnMoVF2kqhdTgLijyUwqTOqV4kbEH6pfIzbkIaFi7WrKmAZmdTJczXLODdyJikcemyVzPB/uJe/VoE+5d1K/M42LUdYbwasOKTken4jiqSwJYaMzMrSGvDvgwkSmzcc7bGsKXw8RIMKny15ebm4rbbbkO9evVMa9OmDWbNmmUyiJ2MYhXCekwIOXmwPr+s302qtoDPQU8mUtyarZuKhZtyq36W1Ygte6v5vLfmnogMc6KGuHVpRuomO+WJAsh9I1Guj7Ok7ea55nO8atwWzP1RmcLB/ZyiFCaE1BaUwicR1f9QZWOr2vSPaX7wwQf2PznlBIrb6gTvsbbK9YPPnvYY3ss6PllIhJC6R5WNr8zaFvtKUEYlTOoY65fnyuI0C6nV/KwLbO4HsiUuG6lakzfgl/TqCO4X95rj/Osx8wS7tprurRxP7m7krNCyEnOQMiPeri8cEF9FElhz+8VvBQLXKBxnKayit7CwEF9++SWGDx/ul8JNmjTBJZdcgh9++MHEaHMEMiHk5MH6vIvGxLvSkDarcpuLrIA/WbFlQTLinHrq7ijETU1F+uItRymZYMve6j7vK3ze1SCFTYwtfisTeH2NcblYOKPi/MH9bAnu5xSlMCGktqAUPonQkgFsbE4z/+FUqQ0aNAhvvfWW/U9MVQIFbnWSN9g2/s/vVqkfPPmP/8CX2/bYMxFCTgZ8pVZmcKmKG33NXJlm81EMk7qjenFaSXDWSHBxwf3iXnOcM48le4NdW033JmxdiGRTx1J/lkcgdkwcEmfOQdpMLRdzYklhpwyEbvPz8/Hvf//blI4IDQ0182sJiZ49e2LVqlUmxuv1VsgYJoScHNT4eVcT3lzkLE5H2ozyF85VLtlQkaNJYTdSV+tBXUlhLfdQcf7gfrYE+TODUpgQUktQChNyElJZCnft2hXp6en22ZoJlLjVyd5gWvxdb2HEtCcrjPWnv/4XxSVeexZCyMmCx1MMn5phlMFXWoySEv3jkxQ3pO6oXiTYf0x3jFPjsSZq/mO5u1+b6H/jvDVHUpUawNkPVKzhW1Oc88t60gI9Eezaarq3XGRMlesHJWPhdxX/ePKW544mhY9ePiLhRXtVx0kKK072r75Q7s4770T9+vWNDHayhVu2bInZs2cbIRxYRoLZwoScPFT/eRcsHmyZp9dHI22d3VUFW/Y6L+MMoOJndw1S+KjlI2TtWqv9mMtHHO1nS3A/pyiFCSG1BaUwISchjhRu3rw5nnvuObv36ASK3OqE79Haecn/qjCGthfetF4YQwg5CSkDiouKrR1TWZiZwqRuqUkkWC/miUbK0oq/mJuX/bijkGL/wl79C3y2VJAC+ib5KrIhLwspKlirSOEAsWqTPStW+hORsc86DnZt1d+bnTX2p0pZY87Ljo4ohXUtR3rRXCzmbLQ7jpMUdoRwcXExvvnmmwrvQFAxrBnDYWFhuPbaa7F//35/vG6ZKUzIyUNNn+VVWJGGuH6xVeSvZ1E1n9MVsGVv5c8/bzbSYqR/aoYti2uQws7/VJP+Cp/wzmdvzBzrhW/ydY6OVynOI5+psfrZFiCFg/3ZEszPKUphQkhtQSlMyEmISuGHHnrIPgqeQJlbnfQ9Uou79Z8Vrh89/XF88MkX9siEkJMSdTTG0+gX/dMA2ihuSN1Ro0iQX6xT9RdzVwQSZmUgc/FCpM9KNHUoK/wRYyfOHY+U+QslLgNpEyLkulikrral7b6FSNKajjGJmPNGJjLfmIPE0RGYOEnnriqFzZz3pmOhzDn3jji4XW5MnB+gB4JcW/X3pnUpNYvMuVZrCqdiYj83IiJ13QHxubJuWU/0jLmylhxLeFRzv3Ou1zW6EHtvVnkG8XGUwto8Hg9ee+01nHrqqSY7WOdWIaxiuGHDhujTpw+WL1/uj6cQJuTkImgp7Mm2PsMiE5A8z/oMzJiXjHjz+ZlRLnLtzzDnxZ1+2St9em2qfv4tmmuV4nFPDBDFNUnhcrHrHp+C9EXOzwL9PJafFyvK/yefExcxIdXELZT1+WsgB5aBCPJnS1A/p6r7vCeEkB8BpTAhxE+g1K1O/FbXTP3gG5+tcO3UP7+Ir7/ba49KCDlpqSCFmSlM6p4jioS8HGTcm1heb7JfHBJnZWJ35epFFeLciBqfjPRN5b/gK55N6UgeH2XkqbtfPJLn55hf/KtKYVnL0oX+2Aj5ZT9tcWW1IASxthrvTa5Nn+m8WE7WO1rmWLQFueaPN7uRsthZuwfZsyfacc6b9YXcinObNcr1Fe74OElhRctCaBZwSkqKv5awNhXCWkpC97WExAsvvOCvKaxlJCiGCTl5CFoKK7nZmBtQS9gVGVv1s70mKTwhHVkLkhHfz/qfa7FT05BZ4SO6Zims5G7MQOrUWESYzynr+oVbK/68UHI3Vv6ZsRBzdNxKtYGD+dliOOrPqRo+7wkh5BihFCaE+AkUu9UJ4Mpt3O//U6V+8D3PvG3XGCWEnPT4pbBCKUx+XRyT1CB+tHTEV199VaF0hJMtrFuVw40bNzYlJPbu3euXwSqICSEkOI4sewkhhFhQChNC/ATK3eokcGA7785XK8Rr+8dbLGxFyK+KClJY/2cQpTD59UApfOyo4FUp/Pbbb6N169Z+KVxdxnCvXr2wevVqf01hSmFCTiLmztV6d/aBTYsW9o7NT4oJkMJ1PlcAP3cMIYQcI5TChBA/gYK3OhHstLhb/1Eh9twbn8SHq7+yRyGE/GqgFCa/YiiFjx0tA3H48GH87ne/8wtgbbqvWcJOxrD2qTTWl+WqENbrCCEnCe+8AyQmWkLz+eetvr59gUOHysXnT45pbknhs36H3XU+188c8+abVh8hhPwIKIUJIX4CRW91Mnj8n97B2Tc+UyEu8Z6XsXXnfnsEQsivCccJW41SmPy6oBQ+djTrd8uWLYiJifFL4EaNGhkR7GQLO5JY+6+++moUFBSwpjAhJwtr1gBjx9oHwvTpkH/hgc8+s45VfOrxT475Culy7HIPKC8fUWdz/cwx991n7xBCyLEjnyiEEGIRKHsrC2FTP3jqExVi7ntukX0lIeTXSGUpXEYpTAg5Alo64j//+Q9atGhhJLBK4YYNG8KRwnrsvGxO5XCPHj2wfv16c60KZUIIIYQQUntQChNC/AQK30AhPKaa+sEvvf2JfRUh5NdKRSmsf6m0oRQm5NfK0bJ58/LycNddd/mlr5MtrMdOX+C5li1b4umnn6YQJoQQQgipAyiFCSF+AqWvI4Tjbvl7hf6xM57CkrWb7SsIIYQQQiwceRtYA9h5UZxuv/32WwwePNgI3wYNGhj5GyiHHUHsZAtrCYnx48ejsLDQHo0QQgghhNQWlMKEED+B8vfCP/0PZ9/wtwp9N9yXjm93H7CjCSGEEEKq4vV6/VnDKoi1eTweLFiwAM2bNzfC1xHD2px9RwoHyuJu3bohJyeHNYUJIYQQQmoZSmFCiJ9AAXzG1McrHD8w9x07ihBCCCGkKpUzhVXkOjL34MGDSEpKMvLXyQZ2JLDWE3aygx1B7NQa1hISDz/8MEtIEEIIIYTUMpTChBA/gRI4sKUvWmVHEEIIIYRUj8rgwIxezRhWVOh++eWXiIqK8svgJk2amK1mBDdu3LiCENZ9J1tY48aMGWPqERNCCCGEkNqDUpgQ4qeyDI5PmoPl67+xzxJCCCGE1IwK4ZKSEv++loxQdPvWW2+hQ4cOaNq0qWkqe5s1a2ayhFUGO9uwsDBTYkJb69atTUyfPn2wevVqMxYhhBBCCKkdKIUJIX4ChfCM+1/Bzr0H7TOEEEIIIUdGRXBxcbG/1INTW1izfN98801MmDABV111Fa688kpcfvnluPTSS434VRmsL5VTMaw1hK+99lpcdtlluPrqq80106dPx/Lly82YhBBCCCGkdqAUJoT4cYTww39/1+4hhBBCCAkOFcAqhHXroPsqh7ds2WJKSGzdutXsf/3111i1apWRvk4ZCc0OvuOOO/DNN9/gq6++wrZt27B582Zs2LAB+/bts0ckhBBCCCG1AaUwIcSPCuF/vbvGPiKEEEIICZ7KL4NTIey8dE7RYy0l4cjjoqIiZGRkYNiwYRg8eDDGjh3rzwh2xtLrK4tmQgghhBDy06EUJoT4Wblhq71HCCGEEFK7OHJXt05pifz8fKxZswaLFy82GcFOv5ahUHTfqVNMCCGEEEJqD0phQgghhBBCSJ3jZA07Wb+O/FVJrE3lryOOCwsL/XGEEEIIIaT2+UVL4d3zE+ByuY7QEpD+nR38s7EFC2fGI8ptrSnhxS12P6me3UifIM9qQrrsHQdyc5B+xxxk24cnJj/2mdnX3ZtlHx8DJ8VzI4QQQsgvEUf8qiR2ykmoENatlpRwzgXGEkIIIYSQ2uUEkMLRmHhXGtJmVdfmIivXDv65WJoia3Qj/oEMZC7ORPZ3HvsEqZ7jK4Wtf4ZS8SO06C+I4y+FT47nRgghhJBfEo7c1a2WidAsYZW/KoLz8vKMGNZ+RwgrThYxIYQQQgipXU4AKfxLyAaumRNhjb9mft1yk1KYEEIIIb8cVAYHimFtP/zwAz788EO8+uqrWLt2rZHDTkygDHb6CCGEEEJI7XDySOG8HKTPTEBspEuucSEiJgHJ83Nw5ERiR5otRNaseESY61KQmeeczkTa1FjT73JFIHZqKjI2OZnA9rXmnNPKJVruxgyk1nitUtPc5SIvd2kaJvZzm7EjxiUjXa/3bkGGU67CHYWJsyTOHtHPEdetHOW+j8pPWaN9rZP1ui4NsXJttIwVuMLsx2JlzFikrg7srcRRvudZ91r9/hYoR4/6jBQPct5IReLoKLjtMZw5yiNr4ft1VCo9s0pzJsZEmDnd/eJrXFsFjnLvR3xuhBBCCCE/EhW7jujVfX3J3CuvvIJzzjkHvXv3xpVXXonMzEz/eecFc7qvGcSEEEIIIaT2OEmksC2/YhKRNn8hMhcvRPpd8Ubkxc87Uo1f+zq3GxHjU5Gh171oSTvP6jTEuV2ImJCK9EWZyFyUjtQJKt9ikbpCBZoHu1dnIuNPcdIXh5TXJGaxJSQ9K1KN6HSPT7GufWMOEkerLHSuVWqa27mXWMRGJiBV70evj5G+QUlImhSBuDvmYmEN93j0dSs133dw/JQ12tf6BacH2Q9YAjhtnenwi+LYx45U0dZZQ83f89xNzvcnEXMWy7PYZN1hcM8I2PJcvPRFIOHedLkX/T7ORfJ4/T66kbTAeVo/7fsVHJWfWTVz+u/BjZTFlb7PAVI3mHuv6bkRQgghhPwUnGxfRw7v3r0bV1xxBerVq4eQkBA0a9YM//d//+c/r1vnGkphQgghhJDa5eSQwt+lI8HlQspS+9jgwcJb3Yiamo6aFZwtzVxJWFghS3YL5o5zwT1zYSVR6kHmTDdc4+b6x6y6xmykDbIEXoV5vTmYI2OWX1vT3E6/jLnV7hI87yVLnwvRfwrMqJV1jpHYSRlylX0c1LprmjtYfsoa7Wv9glPwZCNVJaquzyvPz9m3T1dLkN/zqmUQgn1G2ZgzJgqx91bMYIYnEyma9esXrT/lWQRL5WdW/ZyQu0ytbm3+42DvvbrnRgghhBDy03GEr9YN3rNnD+Li9H9Eu9CgQQM0bdoUkydPNucCJXCgHCaEEEIIIbXDCSCFVX5V1wJErC3q3ONTsXBTbkWJd0SqEZTKVks4JszSDNTMCs3KoCyfu4oUXpeGaLk2+b2qq8h9I1Fi4zB3sx7VMLfTf2klqbwi1dx3RQkKZP0pYIyg113T3MHyE9ZYw9ye1Zpd7UbcaM0ariw7qyHI73kVuXkM39vqsdc/M9Oe86c8i2Cp/MxqmLOmOEcKH/M/15TChBBCCKldnAxg3e7YsQPnnXee+W8mzRYOCwvDlClTjBQOFMHOMSGEEEIIqT1OACkcjYl3pSFtVuU2F1kB6Y5bFiSbPxZvhLE7CnFTU5G+eMtRSiJUlmg2ttCrubmRutoKrSKFzbWO+K2EPW7qCj2oYe6jrMm6thxT/9WJDXrdNc0dLD9hjTXO7ZG4aHN9QpDlFYL5nleRm0E/IwcPcnfnIEvLP8xOQdJ4u77w0e4nqGcRLJXnqOkZ1hDnSOFjuHdKYUIIIYTUNiqCnSxhzQTeu3evyRTW0hEqhTVT+JprrqkQ68DyEYQQQgghtcvJ86I5xZuLnMXpSJtR/vIx96TK2ZSBHJvQq45fohQ++rprmjtYfsIaa5zbKm2g1x+1dEQgR/me1ySFg/neVpDOkbGIG5OI5NlpSNYSEEe7n6CeRbBUnqOmZ1hDXCUpHMy9UwoTQgghpDbRTF/nxXEqhQsLC02m8MiRI9GwYUMjhlu1aoWrr766Qpaws6/XEEIIIYSQ2uPkksIV8GDLPL0+uvwFZlWoQa5tnos4lwtxzx1dTVZZ41HLR0isKY0QrNizCUYyBr3umuYOlp+wxhqutV7qFo85b8xBvIwRH8Szr0rV73kVuRnsM9qXgUSJi565ELsrfCvtusBHuZ9fpBQ+5n+uKYUJIYQQUnuo3NXsXyfrd9++fRg/frzJEtbWpEkT3Hrrrf7zTrawI4gJIYQQQkjtcXJI4RVpiOsXW0X+ehYlVRCEValJrtlZq4NSkFXhRWweZP0pGu5+Kci0+6uu8SgvmouZgxzTEazYswlKMga77prmDpafssZqrt0814jg2MeyzWH2Y1pXOL76bGuHIL/nVeVmkM/IvpfKNYGxyZLWR7wf5ZcohY/5n2tKYUIIIYTUHip7tTk1gvfv34/77rsPbrcbjRs3Rv/+/ZGenu4vG6GxFMKEEEIIIXXDySGFPdlIjXHBFZmA5HkZ1ouz5iUjXl9ENimjXJzZoi5hvtNTk1yTISU2VuWfjJn2RiYyF6Uj7fo4uF1uTJxfrnurW6NzrXt8CtIXybVvzEHiaLfExSJ1hZN2GqzYswlSMga37prvOzh+yhorX2uLyphUZDuPxpOFVBXrgWUk7LH937sgv+e5CyxJnPTcQmRusqoNB/WM9i1EkpaOcGK0pvC9ExHljkCElqmo8X5sgvx+BUflOWr6/tUQ55fCwf7zUf1zI4QQQgj5KQTWCFZUDm/evBl//vOfMWnSJMybNw+7du3yxzlCmGKYEEIIIaT2OXnKR+RmY25AXVmtAZs4KxO7A99JUVks1ijXLDybMpA6NRYROp7LjajRiUhbXEnD1bDG3I2B10YgdmoaFm4NrEMQrNizOQbJePR1H/m+j85PWWPFa7e8qM8vGilLK5bb8LyXbF7olvCiLSqrfO+EYL7nedmYc7X9crgAWRzM99azKR3JzovlzIvs5Hu4ORfZj0XLcQoyzZJ/+vfr6FSeo6bvXw1xAVJYCebea3puhBBCCCE/FifzV1ug+PV4PP46w4qTSawExhJCCCGEkNrjFy2FCSGEEEIIIScXKn0D6war+NWX0Dn7isYE4vQTQgghhJDa4ZcthefOBe65xz6wadHC3rFhjH1gw5hyGGMf2PzYmGeftQ8IIYQQQn48TsZvYMawymBnX0WwtkA57JxzjgkhhBBCSO3wy5XC77wDJCZa0ur5562+vn2BQ4fKxRVjai9mepxVguGobbBVKuNEua9faoxdXuLorQXSN/3Ma6YUJoQQQshPRKVucXGx2Vfp62QGa9/27dvx1VdfmXrCKoX1nJMprDGBkpgQQgghhNQOv0wpvGYNMHasfSBMny4rlaV+9pl1rOJKjxljURsxXg9yJ09GrvTlrliB3Nxc5H77rXV8zjnWsTaJ8RxpHOVEu3flZ4g52nN2vhemdPHPvWZCCCGEkFpCpa9mC2tbt24dfvvb3+Kaa67Bfffdh61bt9pR5SUjmClMCCGEEFL7uOwtIYQQQgghhNQZgZJXOXjwIO688060bt0aISEh6Ny5M2bPnm0ygxVHBqs8dvoIIYQQQkjtQClMCCGEEEIIqXMcGeyUhNi9ezdGjRplhLC2Jk2aYMqUKf6X0CkaF3hMCCGEEEJqB0phQgghhBBCSJ3jZPuq5NWawfv378fZZ5+N+vXro0GDBmjWrBkmTpxoYjTWqSusONcSQgghhJDagVKYEEIIIYQQUqdolrDWEnayhXW7Z88ejB49Gvpy3Xr16iEsLAyTJ0/2l4woKiryx+q1hBBCCCGk9qAUJoQQQgghhBwXnIxf3e7atQvnnXeeEcJaPkIzhVUKOzEqg5khTAghhBBSN1AKE0IIIYQQQuqcQMGrwnfv3r2Ii4szQlhLSGhN4cTERBOn5xWnnjDlMCGEEEJI7UIpTAghhBBCCKlTVPIWFxebrdNyc3Mxbdo0NGrUyAjhdu3a4eGHHzZxWk/YEcO6ZfkIQgghhJDahVKYEEIIIYQQUudotq+TBazSV2sGv/322zj//PMxZMgQXHPNNVi5cqVfBmuWsHMNM4UJIYQQQmoXSmFCCCGEEEJInaPZvpoFrKjkVTGs4nfTpk3IzMzEtm3bzDmVwnpezwU2QgghhBBSe1AKE0IIIYQQQuocpwyEI31VEOs2sF/lr8pibc41TjwhhBBCCKk9KIUJIYQQQgghdY7KXcXJEK4se7W/sLDQ7Gu/Nu3TLTOFCSGEEEJqF0phQgghhBBCSJ3jZACrDHayhDVDWIVvQUFBhZfJaZ+edzKFCSGEEEJI7UIpTAghhBBCCKlzHBnsSF4VxHv37sW7776L+fPn44MPPkBeXp45p2icI5GDIwupLhdcR2r3ZtmxPx7PujlIjImwxnOnIOt4JTGvSJU5E5D+nX18FDwSHztuLrbYx7XO7kyk3ZuB3fbh8cP6PifMP/4zH5lcLJwRgeT3PPYxIYQQ8suGUpgQQgghhBBS52jmr+KIXs0OfvHFF9GjRw906NABw4cPx/vvv+/PENatc01wYtiWwuOSkDYrrfq24Kcq0i1Iv1TmiEnC3EWZyFycg1z7TJ1zLFLYk43UmGikrqg7QZl1rzyHCemUwoFsnot4dzIyy//fBiGEEPKLhVKYEEIIIYQQclxwRK+TJXzZZZehfv36Juu2SZMmuP322/0vnVN06wjio2NL4VrIBq6Z4zFHDRyDFN4yL77OhS2lcHV4kDnTjehZ2fYxIYQQ8suFUpgQQgghhBBS56jc1fIRzr5K4REjRhghHBISgsaNG2PatGl+EaxNUSHs7B+ZYxO2uUvTkDg6Cm69xh2FuKlpyDySZzRSVmIDWrmYzEXO/GTE93Obfne/eCTNzqomizjIuLwcpM+MR5TbWtvE2dmmHERQUtiTiRS5LmlBwKjOtZsCxnVFIFbuOWufHeMnF1mzk5DglMhwuRE1OhFpS53xdiN9Qvkz0GY9h5pkbeV++/jFLGRcr89fxp8wFznm3NHmVoKVwh7kvJGKifazjhiXbN2/rr3CPyPBzCnsy0La1Dj72dkxi6tZgzxrtysRGVWeKyGEEPLLglKYEEIIIYQQUueo2HVeJqf7u3btwjnnnGNEnErhsLAwzJgxw/+SOSc7uC6ksArWaJcb8XfMRcbiTGS+oXWC5Vp3CjJrqriwLweZiyVO57h+juxnIvs7Dd6NjKkRcm0cEmdnmP6M2YmIc7vgnpQeUNM32LhspJm1xCF53kJkLkpH6oQoTJyUIM/q6FLY816yxCVhYaDTNFI4GrExEYiTtes9O3O7KtQdtjJdA9e4cH6a9WxcsUhbZ8XsXp2JOddL35gUM5b1HI5NCrvdbsTeOhcLF2dg7gJVwsHMrQQnhbfMn2iEs3W/C5F+bwIi3LGIHSTj+f8ZCXJOj8wp17nHJ2PuG1o2JANzpsZKjBspiyv/AyOx8lzj59VZNWdCCCGkVqAUJoQQQgghhNQ5Kna1bIQjeVUKn3vuuUYI16tXD02bNsXkyZP9MQ6Vj2vGkoXBSGFT+uDSQBErbJqDuMhYpK2wj6ul6hyexSlwu+IxZ5Pd4aD1ZQOkYbBxuW8kGiFZsR7wFjs792hSWCVnNfdmpLAL0X/Kkohyds+vJJr3LURyTERV4WrWWFHEVi0fUZOsrdxvP8Mxc+zsYJug565pngD2ZRh5HyvfpwpP0YjigO9fsHM6mdZbrUOLHMwZE4HYWZX/edMXzskck36Ol/ARQgghwUMpTAghhBBCCKlzHBnsZAvv378fI0eORIMGDRAaGooWLVrgiiuuMOccCexkCB+TFK6pBYhcU3PXFYukeVnYckwvBbPnCBgr609y3DsZcxdrBmlgs7OK7djg4mypOyYwe9fCygA+mhTegrljyuf0Y0vhlKX2sYPdn3pEEa5Y9x33XPmqfrIUrrzGGqk8d03zlJO7IEnuKw5zN9sdfrKQEtTclea0JbFmNmdtDdTM1ZP9WLTMnyqjEEIIIb9cKIUJIYQQQgghxwWVvI7g1ZrCF154ockSVjHpvGguUBxrKQnFkcNHxpaN45KQNiutalsQoFnzsjFnglND1oWImAQkzc5A9lFTOysLzar1das0kzF6jHEzMytkuBrWpSH6qFLYWl/0Y5VedFaT/K2p3+tB7tZsaJmEubOSkejU2w2QqXUmhY86d03zlLPlRc2ATpHIytjPt/LcR53Tg+zZCYjQPm2RsUiYMQcZ66pfQ5UMbEIIIeQXCKUwIYQQQggh5LjgCGHd5ubm4uGHH0aXLl1MlnC/fv3w5ptvmnMqgbWpFA4UyUfmKLKxGjzfZSNjXnL5C+eqlG2oTOU5bMlYQY5WxzHGVSeFN89FXJBSuIowDVoKV5Sf7n5xiJuQhJR5qRWynpXal8LBzl3TPOVseS5OxghGCgd/vwbPbmS/MRfJ/hfOVS1RoVAKE0IIORGgFCaEEEIIIYQcF7Q+sLPVpnWFH330Udxyyy14/vnnkZdn1XJwRLATV1dSuAL7MpGiLyGbsRCB72irSOU57HIPruSaX1BnOMa4H10+wlrfj84UNtnILiQ8nY1cK0nbwpOJ5Ar3LTPVIIWrzL07AxN1zKNJ4aDntq4/khQ+UvkIfQmcf6xjuN8qeHOR+SctE1HppX4CpTAhhJATAUphQgghhBBCSJ3jiN7ArTaPx2OOA5sjjxWNccpIHJkaZGMVtiD9+lhETM2oJH/1xWFy/TFJYdgvkHMh4cVKGndrOhJcEYifZ71OLdi43EVJEheNlKWB9ljWPMkdhGi0awr/qdIzCFIK+2VmhReq6ZqSK76gTagqhbORplK90nO1SjkEStzqv0/Bz310KVzTi+ZUrAeOFeycW+YnIjYyERn7zKGfnKc1I7mqFGZNYUIIIScClMKEEEIIIYSQOkdFryOEtWawil6nz8kG1n5txcXF5ho959QXPjrBSmFg92sT4Xa5EXd9GtIXZSJzUTrSpsbClI9Y7WhEu9RABblX3RyOsJXx7piLhYszTUmKhEiJi5Fr/S+yO8Y4dxwSZ2eYOrdp/vrHR88+NS+0q5xpfAyZwrFy7B6djLn6XGTuOTPiEeGOkFbxvi3xGY/UNzKR/Z31zLIf02foRvxd6XJ/C5F+bwIiYiZi4pijS+Hg5w5CCgtb5iXY3+M5yNBnPUvW4nZXFMzBzvldBibKsXt0ItLmL5Q4ubdZieba2AeyK5WPyMXCGXLtEf/nAiGEEPLzQylMCCGEEEIIqXOcLGAVvYpKYZW/Tt1gJxvYyRJ2YjWTODiCl8LKlkWpAbWE3Ygan4z0jYEaL1gprOQia3YS4vup9JXz+iKymenIqWIFg4zz7kamSkcVxq4IxE5NQ9ZrKbJ/dClslZmolNUarBQWcpemlb9ozaxvLrJ277ZE57gA2bx1IZLHWXHuB5ySEXJ/lde9b4t5jkeVwkJwcwcnheVJIGd+sv9ZR4yT7++mhVXmPpb7TQ2oJezuF4/k+TlVxa9deuLo6yOEEEJ+XiiFCSGEEEIIIXWOkxnsNOd48+bNWLduHXbs2GH6ioqKqmQIOyKZBIEnC6mDXEh8g3mqVclCigrbyiU8ahGrTEjVUhOEEELILw1KYUIIIYQQQkid44hdzQB2MoTXrl2LpKQkjB07Fvfddx++/PJLE6eyWOMUPXb2j8rcucA999gHNi1a2Ds2J0vMEdgyL75iluuvDS0L0S8OaavtYxvP0hREu9xVM6ZrjVxkTHUhelall+0RQgghv0AohQkhhBBCCCF1jiOFVQbr/sGDB3HDDTegadOmCAkJQbt27ZCWlmYEsGYJO3JYt861R+Sdd4DEREuePv+81de3L3DoULlkPVliJkywtjXhyUZqTDRSVwRbeuNkIxtpMVoOIgGppgZwJjJmJyJO6wJPSq87Wb55LuLdSVjILGFCCCEnAJTChBBCCCGEkDrHyf51JO++ffsQFxdn6rOGhoaiSZMmmDZtWoUMYaeEhF57RNasAcaOtQ+E6dPlNx35Veezz6xjlax6fLLEfPON3VEznhWpiP01Zwvn5iB9ZoJd39iqAZw0OxO7rdLVdYC+YC4CSQtYtoMQQsiJgfwXBSGEEEIIIYTUPSp5VfBq27NnD0aPHm2EnUphzRieOnWqP5NYcWRwUJnChBBCCCEkaCiFCSGEEEIIIXWOkyXs8XjMVqXwOeecY6Rw/fr1TabwLbfcYsSxE6u1h5WjZgoTQgghhJBjglKYEEIIIYQQUqcECl4Vvtq0fMTIkSNRr169CpnCTj1hRwxrKyoqMtcSQgghhJDagVKYEEIIIYQQUueo5HWEr2737t2LUaNGGSHcsGFDtGjRAlOmTLGjy19I58hhQgghhBBSe1AKE0IIIYQQQuocFbv5+flmX8tB5Obm4sYbb0SbNm3QuHFjdOzYEffdd5+J0/OODGaWMCGEEEJI7UMpTAghhBBCCKlznExhRWWv7n/44Ye44YYbMHbsWNx2223Izs42GcKOCNY4PSaEEEIIIbULpTAhhBBCCCGkzgl8WZwjenX71VdfISsrC9u3bzfiWOOc0hGKbp19QgghhBBSO1AKE0IIIYQQcsJTJn+XoLSsFPo6N6NcS6Wph7VdbBk80lUIX5l0qGPVIHvXZ75a+PfKrABnmGI5YYaTrZG0ZhxtEmGanBQ03mra4VytYtds7C4r3pSI8Md4Uer1wlci/XKuSMYu1XM+WYd2mvWYHtPMWKbpF2vXOSezyVd5EmVF0qRHDs2SpVnndT6P7EiM1eFsqh47F9rHXvlq7k0PrG5nU6EveH7URYQQQgghPwlKYUIIIYQQQk54fPJ3AbxlJTgkR4XapZUatAqD+tQylZwH4MV+FJdKpxpPj9VUcBYZSWrh3yuzpKmqWB3msJzQrUe2Rgr7iqVJj9lKlHSp2tRptanSLTNXq5yVCfWkzqtdxizr3ypYVbNKjI5uxrVO6z14NVjH9+pCC6SnxETq+GYsbSqYdSPNnk32dU+eRJm00hKUymGpBHgltFjm8ELH+kHOH7Yukn4d04ykxxprbazxbYmtx6rWizVSjp2NNv9Oda3ibgCVggghhBBCjhOUwoQQQgghhJzwqPXMg+rOw3JUqI6x3M6acgw+HJDzB6ES1hhPlcLqh40kLVeTRowqthRWEWorW+TLgccWoSZ712tLYScbV7p1LG1WjrHulZ83XTqgNhMfKIV1PumUcyqFLQUs15t55JxP7k/WpJHazFjG5MoocoFmF1uz6VV5sndAxss3cSW2b1Yp7JH1Fvukv0xiSmVcGUOXZ4aSZgYp1VX55C/pLZXZtPSFnNRl62Pzzy9Nn16pOSPIHNW2iruVqPkMIYQQQkhdQSlMCCGEEELICY9mw+bKtthIS/Wa5ottOktKCuHDIdnNh5ZO8BX7LLOpArbUKqagjlPVpG4NpvRCsemzZCuQX2Jyd018mdYF1vRbNapqZG23qddb4+mevYjKUli39iUqVMvMQlUKywk5ryHlUliayufSw9IKjZwutMcp1bRlXX9xmVmKymQfDstV++Dz7Zc1ypi6BIk30rhM119kzScdpfIcfMVedcAmTMWxmdxkSOfLrsplFcty1h5Dn6+u1roH1dqFsqu90qHXBzZCCCGEkF8olMKEEEIIIYSc8KjSzEepKbEgqLBUj1ksmxKVrip3D6O0TKVwmVUNwSfNFp2aQWtcqF5rBK4OoGiQpUFVCmvTusW+Us2itaYxctgur6BYPlRLR2iE06RXT+gF5iJp9kblsZWrrBJaTkq4hmj5iBLdMwuUmUsOyH6B0a95Gq5BJRovF9hjWzWKNVf6oDS5X59Hq0eYc14JKyn1wlumxTKKzX2oSNZrzS3IrhlHd/SFd7Imk1WtD0rXYP1tpHS5FNa/9Q7sA0IIIYSQEwRKYUIIIYQQQk541JLmw1dyyJKkjgiVll9kZbKWlR6SVoASXymKpd9TBhRJ8/rKUFxi5eoaraklFcosCayqE74fpB1CvhyoEIWvEGXeYiNtjS4ukkhNtRUsLapWVdejTYW09kpTsSphmo2r0dqr2yq1h+VyjbFUtB3klb3ifXKiAPly7rCEm+FMxrOcs8e2BK5VGqJMYku1frIMpsnGukTL7WphCM0EtrOepd9TpCUsdDZpunzpk1ATb8bVJuf0ZX2ai63ZxubFdxpnT23hBOuFlRshhBBCyC8HSmFCCCGEEEJOeNRkemRzGD9s/wKfrV6JDRu+xI69h43INTVvffuRf+A7ZK3JxuqcbdgrJwrKpNtXasSmClIjNzW1tkyzZBU5YWrvHkZZST6Kigpx4NBho0/zZEiVyiapWLaOCrXyiXVWFa1WDq3BlGCw8of1eiveyin29xqpa06YEXQk3ddU3uK9XyFn3XJ8snEL9smterVfm1pdY3z1ernKV2BaqeznHtqHLd98ibVr1mDduhx8+mkOtm/7GnmFB2XsUhTKjatX1vs3T8AWvaYJzhTWjq5aKxZrlrReZF2oobp63Vp34wzgnCk/azVCCCGEkJ8fSmFCCCGEEEJOeFRGlqCkYC/mP30/rh4fh8uvuBIvzH8Dh+SsCl8UbMeqD9/E+QlX4Kqku7D6m1wc8gElJZrpq9mzlr60kL0yVbKaHVsq+4XAoS1Y89FC/P31t/F9kVXXVzORTbTuy9YSqJppbBV/UN1r5lY0A7lUc3Qt4WtpUkej6swBUljQOG0mu9dTjNXvvYprEsbiqmm3I3vzfhTpJTphia5Vm8ypL5ArKUBZ/kHkfPEZ/vb833DTjKm49NKLcOGFl+OyhKsw887b8cZbr+PrPTtNxWBTlljH0nmtVGJp+kVLbmgRCavLBGnpDNnVZsU4ec4aaZWR0L8sMexEOs2648qY6axdQgghhJDjBqUwIYQQQgghJzxlKPP5UHL4e9x7x1VoGepC4yaNcMk10/HZLi13IOR/iQUvPQpXo+Zo23ck3l27w5SAsIRlsV9bGkPp06xYvcpU1YUMjM1LXsfki0dj1MXXYP3OAisXWC4q85Ual6oCV8fQEg9WCYcS069xRnoWH5R+q+yEnDXlgHV8FaiWapWZTKaunCjzv3rObL2FRfjfS4/j1KYutOk8AB+t+87MZ8ZVM20yhTVLOA84vANrl7yL62+agdO6RsBVz4XQ0HqoFxKCENlv3aQ+Th8+FH94+AlsP1RsymiU6kJNjQm9IR1UF+eR9RfbOc+CT2aUefRldiXaYVKktQSF9YyspnLYuiPttY70DvT+tOk1ZgI/elSxhxBCCCGk7qEUJoQQQggh5ERHraI6zcN7MOuuK9Hc5ULDxvXQvlt/PJn+IQrVS+Z9ikUvPwhX07ZoP+RCLFr9vS2Fi+X6QhSVlKHQ40NJYQGK8g+bl8mp6CyWsfN/2IF/pt6MDmEuDD7nUnyyLQ+HfTKltKK8PHg8RVbWsQ5XmgetQVxScAieYq8pUWEyivP3oOTwPhyQXX0N3KHCQngK81Ba6jXNV1qC4sJ8lHnyzRryigrNtUYMyw28+1IaurVrhDZdBuPjDXv82cbGPJsmRyWHsO+Lj3HTtReiWetT0LxdF5x51rlISLgUl0+4EBfGn4VeXdqgQf0G6BA1Ehkffoo8vU6fQUmBTJYvz8CD/AJZV5HcQ0mhEdgqoM15fVGdPJT8ghJ5RodQ7JF792p9YksKa25xickmLpV7lnsq0/vSq/Vs9WJY98qPCCGEEEKOD5TChBBCCCGEnOioVfTJ5tAePPK7S9C8ngv1GrrgaubG2CvuxOavvgMOb8CCf9wPV1hrtBsyHu+u2Y9Cuc5XfAibv1iL1974L557bh7Sn3kC/3ktHas2bUeujFmYfwjvvP533HjpWWgR6kK3QbG4Z85LWLhsPfYcyEPm22/iny88i6Wf5iBfSyqU5GLP15/ipXnPI+M/b+Pr3XkoKPJi8yfv4YU5s/Dioo+QuWEL5v7j73j5ny9g+9bNKCkqRHb2Grw6/yW8NPdp/OP5p/Hq669h07bdOChrKPL48P5Ls9C9bQO07jwMH27Yb2Sx5uH6pbBmNxfsw0evzUHH5i6c2qU3pt/+R6xZ9xnyCw7DU3QAe3Z+gdn334UhA6MxZMy1eP4/S804Jrv54A6s+fgdzPvnP/D0M88i/YUX8MF7i7H5+wJLnnsPycP4ARs3bMSCBW/h2b89jrlz/4bX3/wvNny5BfneMiOqC0q06rCuTcWwnSWsGdB2b6AU1q8VFTEhhBBCyPGBUpgQQgghhJATHTWL6h8P7sEjM+ONvG3cugmaduiNpqdE44W//RM4sB6L0h+BK6wNOp4xAe+u3o98uSbn0yxMu+4ynBbeAxHh3TDwtDBEnNYGF918N5Z8uQeHv/8Gt18bjw4t6iGsUQhCm7ZC+x6DcFNKGtZt2oorzj8bbZuG4u4n/or9xV7Asw9vv/I82rdqiaj+Q/Hauytw4HAB7v/NJLOulj2jMeqq6egc3gVnxkTj4w/+h1VZS3H5ZQkI79wBkZ3aoKvMH9mzB26+84/44vsyFHhK8cFLD6JH21C07hyDxRtyUSC3qwUa/FnC3kKZehv+OO1itKvvwkVXXo8vdhWYLF9fWZGEyRW+Q/Dt24q3Xv83MpZ8iV0+GOFbmLcLH7/5HC4fG4P2HdzoEt4TnVqdhn69TsfvH5qHnYe88ObvwoaVi3DdpMsRGdkJ3SPaoWt4R5zWqReuTfwNVq7fhAJZRr7XKidhyV5Zm5aZKK0qhR0h7DSKYUIIIYQcTyiFCSGEEEIIOdFRq6hSOHcPHp8Zj9YNXOjYvw/GT7kNrVp1w4SxF+DAxsV49/Xn4Qpriw5DL8SHnx7AIQ8wf94cDB8UibEXXIynnpyNv92bjN4RHeFqF4XfPvZPlHjysOiVZzB5/Flo3siFLn2HIuWxeViwdAO+2boDl40cjNNahOIPjz6FXF1L4R588O9/omXjxujd/3T8d9nn+OFwIR757WQ0dbngat0Jfc69BI/PfgwvvzAH+3dswaMP3Y/oQYNw9RUJeGrWn5Hy2yS0b38qmrePwN/f+gT5haVY/OL96NkmBK06n4HMjYdMWQet52uksHnRXAEO7vwSFwyIwKkN6mP6b+41L9nzyIPxluZh27av8NWnq/DNykx8uWEDlm8+gNXf5eOQ14c9OzbjjzdchfOG98XNv7kN9z/8CG5PTESrpm1wSu8YfLBqAzy53+G+3yWhWaMwdAsPxxOP3YeHZ92Hc8ddhGFnjsGTz72I3CKrgrA2I3rVV/t0bY76dVq5FC7XxIQQQgghxw9KYUIIIYQQQk501CraUvipmRegTSMX+p9/AV54+2Ocd+ZoRDZvghce/CP+/fLf4WpyCtz9R+Hd1d8hzwusXfouFr7+D6xavQYH9u3Dho/exgXnxcHVshsuvDEFeT6g8MBO/P2B3xjZfPoF1+AbD3BQ5vwq53NcdkZvdGnTAH944mn8oGvJ343FGf9E84aN0KvfcCxa+TX2HyrEw7+5ytQ6DusxCE+9+T68ZUVA8QGg4ABWfPQB3sjIwJavv8DB77/C//6Tjn59+6FRy074Teo85EvoRy/ei95t6qFl5zPxwcY85JlblkVolnCZ3vxhfP/1OpzRsR06Nm6O3977jKlfXAQPDubtxAMP3ItrEy7C9AvjMO2qKxA/9Xbc8sBT2HngIHz5B7H83/Ox6t238fV32/D1t9/gPy8/i1bNGqFBpx6Y/dKryNvzLW6+5mo0CWmNXt0H4P133sIHmf/F629lYP6bb+HDTz7FIU2ULrPqMOsL6Yz49TlrtJutgM05aZTChBBCCPk5oBQmhBBCCCHkREetonrRA9/jqTvGGXk74JKrsHZ3Hp594M/o2diFM6L64K6Zf4QrrB16DDsXCz/5ytTTLT6wE1+uWYpFC/+Hxx5+CNdfNhadTm0HV/MIjL7ut9in7jZvP57+0w1o18iFweOuwYYDMFJ255bNuHZUX7ibuJAy+1nsVbPp2YulC+ajTbMW6NFnOBYs34w9uQV4LPlqtJV1dTljDD7eshcmp7b0EFCUi/z932P5smV44/VX8MSDv8dlF4zEKW3boXGrLpj6u9nIM1L4L+jdxoWWnc/C+xsLbCnskzHk5jVTGAXY/fV6jOvTBR3DmmJ68iP4Xk4Vy8P5ft8WXHzJeWjicqG9NJOx3Kwbhl40Bdv2fg94D6Jsxyasee8tvPzvfyHlL3/GhWfHomFIKBp26YeHn3sR3kO78beH7kG3Dt3RPKwF+veNwDnnjsCM23+Dt95bgk3bfzBSOF+WolLYK828w06fiYphTRv2i2FKYUIIIYT8vFAKE0IIIYQQcqKjVtFI4d34623j0Lq+C5HjJyInrxTfZS1AQv/OaFqvGaL6ng1X/Vboc/oovLd+Mw4Ul+HtV/6OK8aORJ9eUYgZEo2rzh2OyK6d4GrRHWOu/6MpwVB4eD9euDcJLUNdGDjuWqzZCxwuA3Z9swmTR/ZGp2YupDz1PHZp6dzCPcjM+CfaNGuJyL6x+O+KLTiQV4LH7rwS7jAXepxzEbJ2HkKZVvst+QHe3F14+fmnMfLssxHVqxvGnjUAF8Sdjnat2qBhy86Y/sdncNADfPziPUYKt+h8Nt7bWIjDMlWxXwqrcPXi4M6vkDxhNE6R+z997BR8ssVj6vweOLQbjzyagkmXj8LUscMwtHcUXM3744zLbsXOA3twaE8O/nH/7TgnOgI9BvRF7MjROD9mBJo3ao0GnQfjfq3J7N2P3G2f4omHH8KF485D3z4d0aZdU7gatkDnHkNx55/SsOOAz4h2j8ypj6JEv6jtNU3XqGvVbxalMCGEEEJ+XiiFCSGEEEIIOdFR3+iTdnAfnkoeb160NvD8K5Gz34vi/dvx2F0zcEpYfTRw1UdIaCv0HBCDxdnr8fXO7bhkzEg0Cw3ByPMuwT9fmo/Ply3AtZeNhyusO0ZP/B2+l7F/yNuLv/5lupGto8dNRM73pTgo036z9QtcGtsdXVppTeFn8YMazsM78ea82WjetCW69j0Try35BnvyS/HAnVegfUMXYs+9EJv25KMIpSgq3IddOaswqFsntGjWEhOuuBL/XfAqln/8Pwzu0xNhzd24LuUF7PUAmS+mIqqdC626DscHGw+aF8SpBy9zZGupF2X5P+Dfz8xCu8b10KJ9BP7vnjSsWbcehw/vww8/fIv9u77Cx2+9gisuukTurwtGXjQJuzRL+aO30b11A4S3bYFb7vwd3v5fJt57MwOntG6PJp2j8chzL8scP6Dk8LfYt3c/Nn3xBea//DTuvOMGxJxxFuo1aoMufWLw+XbrBXhalkNfcKfZwrq8ClI4QAHrV6eHEEIIIeR4QilMCCGEEELICY66WM2ILTici8dmjkf7EBdGnnsZvtxVgoPFJdj46TJcMrIXmrlcaBDSEv0Hn42la5dhQ84qREV0RtMmrXFn6jPI2fY9PnzreZzRrxtC6kdi/KR7sL0M2FtyAHMeTIQ71IXzYsZg/cZd+Dq/BF/u3oaJFw5H+yYuXH39TGz4Ygc2r3wPSVePR2jDZujQbxTmL/0WOwuAv/zfRLgbyvVnjsK3Ow6YDOTD3kNY9/7r6KAvxju1K+Y89yI2frMZL/z9GUS2b4amTdti0p/TsaMIePfFWejZ1oVW4f2xeMMelMi6SoodoSpPwFuMMk8eNn+2FuefcyZaNG2IU9u1wtVXJmD242l48vFHMevBB3H5pQlo16Y92rXviMlTErFj9068Mv9lNAkJxYDeg/D2wuXIydmKRx/8Mxo3qo8m7Xth9gvpyMvbhgULXsKsJ5/BG/99Bzu//RzffbMeD953D5q2aIvwAbFY9dUuU9ZChbVmDGuisFcWaMRwBQVsOixX7D8ihBBCCDl+UAoTQgghhBBygqNSOL9MWv5hPHTHeJwS4sLwmPPw5Q6PEZR5BXvx+vP3omNTFxqGtkDPPsOwdM1SbN/5FeLPHYUWLdqhz4jxmPHbFFx1QQy6t2+O0NCuiLv4Nnwv16sUnv/8XejVzoXeHbojOfk+/O3fC/DdoX14+pHfo2PrRjilS39cN+1WzEy8EgO7toMrpDFO6RmD15ZbUvie309Gm1AXzh8xCjt2/GAyjQvlrx0bliImshOaN2mFc86/BNNvvQ3njY1Dt3ZN0CSsJa7+3XPYehhY9OKj6NrShZZdeiNz3XaThevz2pq1VHe88Mr9ewsP4f1Fb+KicaMRGX4amjUOlXtWGR6CBvUbolnTlugT1R+TJ0/BW28twGG55sPFi9GjSzec0sqNSy+dittunYlzzj4dLVs2RcM2XfHAE09j9/dfIPX+36Nrr/7o2XcgZt5xA/7w25swcsRwdO3WA0m/uwff7Cs0mcKmVrM0lcJFJfrdUVT9VpXC5UeEEEIIIccPSmFCCCGEEEJOcEzVBi/gKSxA+hN3ID4mAtdOvhlb9nitMgu+fHz/5VLMmHghRgwfhUsnTEZ2zqfIL8rFgoxXcemll6PfiPMx9OxzcMvUy5D6+ztxxhmX4sIr78AuGTzXdxhfZL+FmddfipFDzsBZZ12A5NRHkOv1YMfmVUhOmobBsedhxFljMf2ycbj/97dhaMxZiL96Bv6XvRvfyyKefvz3OOf0CCRNvQG7vz+EXJQivzQPOLgD//rbkzh39HkYFjsKZ55zHu688ze484ZJGHl2HCb97ikjlZcueBEJ5w7DOZdcjaycnSgpVRlsSVVvib60TvZKiuRheOTvg1i6eBGeevxBXDp+LM6MPR1nDB+OM2LOwKRrr8OL/0xHzudfwCfXlPhKsHvXTjz+0CM492xZw7DRGDXqPMy6/25MmTIJQ0eej4dmPw1P0X58s+VzzJL9uLHxOOP0ARgxrD/GxI3EH/54N1Z99rWps2yksGy1tIV+X4pNYWHFUcDaymsKl/cQQgghhBw/KIUJIYQQQgg5wVH5aMoVlJRgT04m1nzwL6xe+zny5ES+9Jeqoizcia2fZmHJh8uxdMU6fH/wAIq8clVxIdauXoP/LVmN9z5ejr3bv0TB/r1YtuxzvLvkM/xQpmPL9b5d2PbZcizP/AgffbQKG7buQoEWMvYdwL6dXyPz49VYuXI9tm1cjcPfb8f7i5fgw9WbsO0wcNALfLd1DZa+9y+sWb4KpTKmytN8r5z0HgLyDmD1J6uR+dFyfCBt/759+GHHFixfnoU3l21Crkxz8NsvsOKD/+L9ZWuwT5atUrjEW1ouU7VGg2YMFxegrDhPjgtRcGgv1q3JwvKlH+K9d97Bxx8uwTdfb5PnVIZSGdPr8xkp7PN5cXDvASz/KAuLF2chS9ZYcPAHfP31V1j44TKszdkErzdf4jzYc/AwVmWvw8eZMt77i7Bi2RLs3P299YI5bbKMIlmbZjKr7PV6TeVjaY7+1cYXzRFCCCHk54VSmBBCCCGEkBMcFYuaEezzlQIl3wNFe41oVEmpYrhUs2i9uRL0gwk2QlXOaYxm15YWF8OjIXqsNRkkQN+JpnJT5a1XI31yvWb2+nwolBNF0l+kJrPsMMpKDsOri9Bjr6yktBhaNSFfmlNjF2UHpcmRTKz+Vl80V1wqo3ulSbzivJjNVyzzlZbImF5zfYGO69Ms4BIUyZiFGiNdpRKst2ZuRE2zml5fsYQeln2TsysDFqFM+sx5HccOM1vpK5W/TKaxGVD7ZNcrfYWFshZZo3TLCBIjK5YL9Rl59eIy2ZP1eIskTvr0+akQ1vM6lGYh6ySl+jzNWwDtZhZLKUwIIYSQnxdKYUIIIYQQQk5wVCqqpLWkcC5QfNA40EKfVdvWCMeSPDlQWVpqXn6mwtenErOwwMhKX1kZ9HLHaqoULrav98qBryRfrlXNrLHSr+ObernaJ7PrJNo0W7ekCMUlpWYOFbgeWYzXd1jGLDQxGlZcViLjyHUqhMtUO/tQomZZ16DN50Wxt8iMXqAL1sXJ6SKZ2CPHGm+aLsE0OW/kt66lWG5J1lvmka21Zksay65sNFNY5XNxcYkcyliy5jK9F7kxzRoukX69pEyCiuWBeEpLUFigT1idtk+eh56UA1mHT4Wy9ut41hKtqRzzrLE+NeF6jTlr+vVy3SvvIYQQQgg5flAKE0IIIYQQcoKjUlHVpEpOFOdDs2pVEBd65VD6jezVbFnN4vWVoMRbBo+6SpWXRSpRS4w8LfVJp8Sqzywt03xYrxnHJ4EqUcvKfNIn15ssXpnThKtYlbFVyOo8pWUoKtQMXZlbAvRFa2Z6GavIq/nB1ry+0mIZQ6Wtrlwlb4n0WfOrmC6T8TRGRpAue10aauxpmfTIevWu9VhOm/RnWb+vSPOSNVAlrlyrUtiWuMbJytYsVfa9Xr1HPSdN7rO0pFjuUTOC5Z5kDXrfRSiQCImzrysq1XnlOej1RXK13F+Z3LPjnDX7WDOMrYeoN6JjW+LbWoBGUQoTQggh5OeFUpgQQgghhJATHBWKKhfNjrdYDrymJILKRtWj5l1nxoKqANYD410tIVmswlJbkVyqcld2ZRyfZvVCpa1EmWNLXmrhCJPhK30mTgWpZXHlpHZKn1pfRQK0fIIqUJ1L9bFujfy1R9NsXHORWak1ifGncqTSWMtTmBIQ0l+sntcM7ZU1aLVkXbf87QxnFql3pk3OmSbzGzkrp/RWJEQrOvi0VoVB1m8m1LVqvAp1+/7M2QIZWlYuBzq83rverxlSpzHj+qAlOsrvRZosqky/F7o4p5lF6nnrqx45jRBCCCHkeEIpTAghhBBCyAmOoyLLTaPslFnZqI6KtM6pnFSTaSlYs6eW1EhhFbB2RrD2W6+Cs8aSEN1YY6kstqSpNu0zMxnxac2pzULP6kxWLV5rT2N0Tr3GirXiVchKvFm/tbH6DkrzmJF0DVaw9uv61BILTr9p+sWZ17lLazSDE+fHjCzNuU7LTZgqynaYlXlsP1JB55Yxdd8JMv1Oh938MlhjA+ewcC5zGiGEEELI8YRSmBBCCCGEkJMNYxrli/ztaEqDU9ZA+sulsMapuJQe3bUuE/QVbyqFZaOXSafulhlJKk2D/H36RfZkx+62v+oMKm41n9g6MqUYHKkqzbpeD2wpLLvla9C+Q9I89rWCOaH9mimsWbtWvLUjzXzRyGOVwopuy9dr9VpSuPzYHtMZxzT9omcDml8KO1c6wRb+S+1GCCGEEHI8oRQmhBBCCCHkZMA2i6ogza5JbbX2HSVpvmphXNmoKtVmMELX6q8ohQusi8tPW33a9MAfK9gX2t2CXqgCVTNvnbrC2qsit9gfqP0mc9iIXq0tHHAPJk7Xoa97C1ivGdfKFNY4vca+QNAdHeEIUtiPE1tqd+tXax3lV+n6LSmszRlTI8uH0sgjtfJIQgghhJBfApTChBBCCCGEnAzY3lGVpZGXto/U7nKhKdiOsoJk1aDAZqJVxmpJCdlUcJu2FNYDJ9702/j3dUdnsDJvy/utDF89LhfNGmfJWEflWmdkT8tayHmN0H5dhjWeZisXm2NdrRnHP4f2OnfoP2sRsGsdaEELS0Zb6DUBUtiU1rDm15GcchB6rvwa3dOxKgxOCCGEEPKLhVKYEEIIIYSQEx11kbahtF6DJh1qMNWdyglVmNbr3qw+jfXKjjaD4zNNgA6kIlflrfWCNdOloea8CuFC2TUHfh+qR6anwo7OasleJ86pEWwSmbXPoPLXUr6qgHV2a/GWgNULVcpqhG71GKUqlq0MXu3zT2nQHT2jzT+xRcCuE+dIYXPKns8voPWtdKWWrDZz2yUhnNGtq8oHdY5qaoQQQgghvwQohQkhhBBCCDnRUdtoDGYZ9JVsJdrht5YqML3SZ2fDap/seE1JBlWdgoRXfYlbgRz6rH690FynB5YU9ufW6kaaPaw1hhnHeqGctRrp8F9/QFohfLKrlSysYM3GteK0gq+KYaNgVQrb06i61dXq6szwPjkqtbS2I3C132r6l57xr8rCCfCjB5UyhY2tDshK9slX6dNjI4VN+Q29L2t0Z1Drq3VNTU3PV8W5khBCCCHk+EEpTAghhBBCyImOYyPlS6HRvXKgxtJYTBWnJdJnlTwwfbLjhb68zcrJ1etV0pqsYKNlD5utxpt+s6NNdxwpbNXVNf1mPGvXcpzmjByrTLXnNXH6ZZ+0AnglxAxnMm89cs4aT/OTdQVmRI2XGO3X+VRs64rNeF49p7rbEsU6spnaNEsKW2LYRFs4AX70oLIUlibddn6z/3npse4aKSxN78q6MxNlvups1TUnqsLUBmdBVc8QQgghhNQllMKEEEIIIYScDBivqBJWZaUc+H2lpS/1qwmx7aQWRLCUqnPsqEnVn5qra/KNrX5nx2T6as6snjOD+y80p/VYQ2wprDNWnFe/qPYtNkOZ4cwJGdOuJaGz6wxGp2qfNZRsLAmrK7Yu03OWzLW9rem3mv6l8zq9NaHnrBh/lD2IylzTZw/hyF1zb9Ks0e1g+6uer645UVZkZWo+QwghhBBSV1AKE0IIIYQQchIRvF6sSUY6/TWNdKRzwVDd9eXHRxv9SOcIIYQQQkhwUAoTQgghhBBCCCGEEELIrwhKYUIIIYQQQgghhBBCCPkVQSlMCCGEEEIIIYQQQgghvyIohQkhhBBCCCGEEEIIIeRXBKUwIYQQQgghhBBCCCGE/IqgFCaEEEIIIYQQQgghhJBfDcD/A8HahWaUpSAYAAAAAElFTkSuQmCC", - "text/plain": [ - "" + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "tags": [ + "header", + "hide-cell" + ] + }, + "outputs": [], + "source": [ + "###############################################################################\n", + "# The Institute for the Design of Advanced Energy Systems Integrated Platform\n", + "# Framework (IDAES IP) was produced under the DOE Institute for the\n", + "# Design of Advanced Energy Systems (IDAES).\n", + "#\n", + "# Copyright (c) 2018-2023 by the software owners: The Regents of the\n", + "# University of California, through Lawrence Berkeley National Laboratory,\n", + "# National Technology & Engineering Solutions of Sandia, LLC, Carnegie Mellon\n", + "# University, West Virginia University Research Corporation, et al.\n", + "# All rights reserved. Please see the files COPYRIGHT.md and LICENSE.md\n", + "# for full copyright and license information.\n", + "###############################################################################" ] - }, - "execution_count": 2, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\best_practices_optimization_doc_4_0.png" - } - }, - "output_type": "execute_result" - } - ], - "source": [ - "from IPython.display import Image\n", - "from pathlib import Path\n", - "\n", - "\n", - "def datafile_path(name):\n", - " return Path(\".\") / name\n", - "\n", - "\n", - "Image(datafile_path(\"AR_PFD.png\"))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 3. Training Surrogates" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Previous Jupyter Notebooks demonstrated the workflow to import data, train surrogate models using [ALAMO](alamo/alamo_flowsheet_optimization_src_doc.md), [PySMO](pysmo/pysmo_flowsheet_optimization_src_doc.md) and Keras, and develop IDAES's validation plots. To keep this notebook simple, this notebook simply loads the surrogate models trained off line.\n", - "\n", - "Note that the training/loading method includes a \"retrain\" argument in case the user wants to retrain all surrogate models. Since the retrain method runs ALAMO, PySMO (Polynomial, Radial Basis Functions, and Kriging basis types) and Keras, it takes about an 1 hr to complete the training for all models.\n", - "\n", - "Each run will overwrite the serialized JSON files for previously trained surrogates if retraining is enforced. To retrain individual surrogates, simply delete the desired JSON before running this notebook (for Keras, delete the folder `keras_surrogate/`)" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loading existing surrogate models and training missing models.\n", - "Any training output will print below; otherwise, models will be loaded without any further output.\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\dkgun\\miniconda3\\envs\\idaes-examples-py311\\Lib\\site-packages\\numpy\\core\\fromnumeric.py:59: FutureWarning: 'DataFrame.swapaxes' is deprecated and will be removed in a future version. Please use 'DataFrame.transpose' instead.\n", - " return bound(*args, **kwds)\n" - ] - } - ], - "source": [ - "from idaes_examples.mod.surrogates.AR_training_methods import (\n", - " train_load_surrogates,\n", - " SurrType,\n", - ")\n", - "\n", - "trained_surr = train_load_surrogates(retrain=False)\n", - "# setting retrain to True will take ~ 1 hour to run, best to load if possible\n", - "# setting retrain to False will only generate missing surrogates (only if JSON/folder doesn't exist)\n", - "# this method trains surrogates and serializes to JSON\n", - "# The return value is a set of surrogate types (instances of SurrType) that were trained\n", - "\n", - "# imports to capture long output\n", - "from io import StringIO\n", - "import sys" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 4. Build and Run IDAES Flowsheet" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This step builds an IDAES flowsheet and imports the surrogate model objects. As shown in the prior three examples, a single model object accounts for all input and output variables, and the JSON model serialized earlier may be imported into a single SurrogateBlock() component. While the serialization method and file structure differs slightly between the ALAMO, PySMO and Keras Python Wrappers, the three are imported similarly into IDAES flowsheets as shown below." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 4.1 Build IDAES Flowsheet\n", - "\n", - "This method builds an instance of the IDAES flowsheet model and solves the flowsheet using IPOPT. The method allows users to select a case and the surrogate model type to be used (i.e., alamo, pysmo, keras). The case argument consists of a list with values for the input variables (in this order, bypass split fraction and natural gas to steam ratio). Then the method fixes the input variables values to solve a square problem with IPOPT. " - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "# Import IDAES and Pyomo libraries\n", - "from pyomo.environ import ConcreteModel, SolverFactory, value, Var, Constraint, Set\n", - "from idaes.core.surrogate.surrogate_block import SurrogateBlock\n", - "from idaes.core.surrogate.alamopy import AlamoSurrogate\n", - "from idaes.core.surrogate.pysmo_surrogate import PysmoSurrogate\n", - "from idaes.core.surrogate.keras_surrogate import KerasSurrogate\n", - "from idaes.core import FlowsheetBlock\n", - "\n", - "\n", - "def build_flowsheet(case, surrogate_type: SurrType = None):\n", - " print(case, \" \", surrogate_type.value)\n", - " # create the IDAES model and flowsheet\n", - " m = ConcreteModel()\n", - " m.fs = FlowsheetBlock(dynamic=False)\n", - "\n", - " # create flowsheet input variables\n", - " m.fs.bypass_frac = Var(\n", - " initialize=0.80, bounds=[0.1, 0.8], doc=\"natural gas bypass fraction\"\n", - " )\n", - " m.fs.ng_steam_ratio = Var(\n", - " initialize=0.80, bounds=[0.8, 1.2], doc=\"natural gas to steam ratio\"\n", - " )\n", - "\n", - " # create flowsheet output variables\n", - " m.fs.steam_flowrate = Var(initialize=0.2, doc=\"steam flowrate\")\n", - " m.fs.reformer_duty = Var(initialize=10000, doc=\"reformer heat duty\")\n", - " m.fs.AR = Var(initialize=0, doc=\"AR fraction\")\n", - " m.fs.C2H6 = Var(initialize=0, doc=\"C2H6 fraction\")\n", - " m.fs.C3H8 = Var(initialize=0, doc=\"C3H8 fraction\")\n", - " m.fs.C4H10 = Var(initialize=0, doc=\"C4H10 fraction\")\n", - " m.fs.CH4 = Var(initialize=0, doc=\"CH4 fraction\")\n", - " m.fs.CO = Var(initialize=0, doc=\"CO fraction\")\n", - " m.fs.CO2 = Var(initialize=0, doc=\"CO2 fraction\")\n", - " m.fs.H2 = Var(initialize=0, doc=\"H2 fraction\")\n", - " m.fs.H2O = Var(initialize=0, doc=\"H2O fraction\")\n", - " m.fs.N2 = Var(initialize=0, doc=\"N2 fraction\")\n", - " m.fs.O2 = Var(initialize=0, doc=\"O2 fraction\")\n", - "\n", - " # create input and output variable object lists for flowsheet\n", - " inputs = [m.fs.bypass_frac, m.fs.ng_steam_ratio]\n", - " outputs = [\n", - " m.fs.steam_flowrate,\n", - " m.fs.reformer_duty,\n", - " m.fs.AR,\n", - " m.fs.C2H6,\n", - " m.fs.C3H8,\n", - " m.fs.C4H10,\n", - " m.fs.CH4,\n", - " m.fs.CO,\n", - " m.fs.CO2,\n", - " m.fs.H2,\n", - " m.fs.H2O,\n", - " m.fs.N2,\n", - " m.fs.O2,\n", - " ]\n", - "\n", - " # create the Pyomo/IDAES block that corresponds to the surrogate\n", - " # call correct PySMO object to use below (will let us avoid nested switches)\n", - "\n", - " # capture long output from loading surrogates (don't need to print it)\n", - " stream = StringIO()\n", - " oldstdout = sys.stdout\n", - " sys.stdout = stream\n", - "\n", - " if surrogate_type == SurrType.ALAMO:\n", - " surrogate = AlamoSurrogate.load_from_file(\"alamo_surrogate.json\")\n", - " m.fs.surrogate = SurrogateBlock()\n", - " m.fs.surrogate.build_model(surrogate, input_vars=inputs, output_vars=outputs)\n", - " elif surrogate_type == SurrType.KERAS:\n", - " keras_surrogate = KerasSurrogate.load_from_folder(\"keras_surrogate\")\n", - " m.fs.surrogate = SurrogateBlock()\n", - " m.fs.surrogate.build_model(\n", - " keras_surrogate,\n", - " formulation=KerasSurrogate.Formulation.FULL_SPACE,\n", - " input_vars=inputs,\n", - " output_vars=outputs,\n", - " )\n", - " elif SurrType.is_pysmo(\n", - " surrogate_type\n", - " ): # surrogate is one of the three pysmo basis options\n", - " surrogate = PysmoSurrogate.load_from_file(\n", - " surrogate_type.value + \"_surrogate.json\"\n", - " )\n", - " m.fs.surrogate = SurrogateBlock()\n", - " m.fs.surrogate.build_model(surrogate, input_vars=inputs, output_vars=outputs)\n", - " else:\n", - " raise ValueError(f\"Unknown surrogate type: {surrogate_type}\")\n", - "\n", - " # revert to standard output\n", - " sys.stdout = oldstdout\n", - "\n", - " # fix input values and solve flowsheet\n", - " m.fs.bypass_frac.fix(case[0])\n", - " m.fs.ng_steam_ratio.fix(case[1])\n", - "\n", - " solver = SolverFactory(\"ipopt\")\n", - " try: # attempt to solve problem\n", - " results = solver.solve(m, tee=True)\n", - " except: # retry solving one more time\n", - " results = solver.solve(m, tee=True)\n", - "\n", - " return (\n", - " value(m.fs.steam_flowrate),\n", - " value(m.fs.reformer_duty),\n", - " value(m.fs.C2H6),\n", - " value(m.fs.CH4),\n", - " value(m.fs.H2),\n", - " value(m.fs.O2),\n", - " )" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 4.2 Model Size/Form Comparison\n", - "\n", - "As mentioned above, as part of best practices the IDAES ML/AI demonstration includes the analysis of model/solver statistics and performance to determine the best surrogate model, including model size, model form, model trainer, etc. This section provides the rigorous analysis of solver performance comparing different surrogate models (ALAMO, PySMO polynomial, PysMO RBF, and PySMO Kriging).\n", - "\n", - "To obtain the results, we run the flowsheet for ten different simulation cases for each surrogate model type. Since the simulation cases are obtained from the training data set we can compare model performance (absolute error of measurement vs predicted output values)." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0.373913 1.073684] pysmo_kriging\n", - "2023-11-02 10:24:52 [INFO] idaes.core.surrogate.pysmo_surrogate: Decode surrogate. type=kriging\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: \n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 13\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 0\n", - "\n", - "Total number of variables............................: 13\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 0\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 13\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 1.69e+04 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 0.00e+00 0.00e+00 -1.0 1.69e+04 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 1\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "\n", - "\n", - "Number of objective function evaluations = 2\n", - "Number of objective gradient evaluations = 2\n", - "Number of equality constraint evaluations = 2\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 2\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 1\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.000\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n", - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0.373913 1.073684] pysmo_rbf\n", - "2023-11-02 10:24:53 [INFO] idaes.core.surrogate.pysmo_surrogate: Decode surrogate. type=rbf\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: \n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 13\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 0\n", - "\n", - "Total number of variables............................: 13\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 0\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 13\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 1.69e+04 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 0.00e+00 0.00e+00 -1.0 1.69e+04 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 1\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "\n", - "\n", - "Number of objective function evaluations = 2\n", - "Number of objective gradient evaluations = 2\n", - "Number of equality constraint evaluations = 2\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 2\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 1\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.000\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n", - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0.373913 1.073684] pysmo_poly\n", - "2023-11-02 10:24:53 [INFO] idaes.core.surrogate.pysmo_surrogate: Decode surrogate. type=poly\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: \n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 13\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 0\n", - "\n", - "Total number of variables............................: 13\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 0\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 13\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 1.69e+04 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 1.11e-16 0.00e+00 -1.0 1.69e+04 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 1\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Constraint violation....: 1.1102230246251565e-16 1.1102230246251565e-16\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 1.1102230246251565e-16 1.1102230246251565e-16\n", - "\n", - "\n", - "Number of objective function evaluations = 2\n", - "Number of objective gradient evaluations = 2\n", - "Number of equality constraint evaluations = 2\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 2\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 1\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.000\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n", - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0.394203 0.936842] pysmo_kriging\n", - "2023-11-02 10:24:53 [INFO] idaes.core.surrogate.pysmo_surrogate: Decode surrogate. type=kriging\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: \n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 13\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 0\n", - "\n", - "Total number of variables............................: 13\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 0\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 13\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 1.42e+04 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 0.00e+00 0.00e+00 -1.0 1.42e+04 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 1\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "\n", - "\n", - "Number of objective function evaluations = 2\n", - "Number of objective gradient evaluations = 2\n", - "Number of equality constraint evaluations = 2\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 2\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 1\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.000\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n", - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0.394203 0.936842] pysmo_rbf\n", - "2023-11-02 10:24:53 [INFO] idaes.core.surrogate.pysmo_surrogate: Decode surrogate. type=rbf\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: \n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 13\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 0\n", - "\n", - "Total number of variables............................: 13\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 0\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 13\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 1.42e+04 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 0.00e+00 0.00e+00 -1.0 1.42e+04 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 1\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "\n", - "\n", - "Number of objective function evaluations = 2\n", - "Number of objective gradient evaluations = 2\n", - "Number of equality constraint evaluations = 2\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 2\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 1\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.000\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n", - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0.394203 0.936842] pysmo_poly\n", - "2023-11-02 10:24:53 [INFO] idaes.core.surrogate.pysmo_surrogate: Decode surrogate. type=poly\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: \n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 13\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 0\n", - "\n", - "Total number of variables............................: 13\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 0\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 13\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 1.43e+04 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 0.00e+00 0.00e+00 -1.0 1.43e+04 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 1\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "\n", - "\n", - "Number of objective function evaluations = 2\n", - "Number of objective gradient evaluations = 2\n", - "Number of equality constraint evaluations = 2\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 2\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 1\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.000\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n", - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0.789855 0.978947] pysmo_kriging\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:24:53 [INFO] idaes.core.surrogate.pysmo_surrogate: Decode surrogate. type=kriging\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: \n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 13\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 0\n", - "\n", - "Total number of variables............................: 13\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 0\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 13\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 8.29e+02 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 0.00e+00 0.00e+00 -1.0 8.29e+02 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 1\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "\n", - "\n", - "Number of objective function evaluations = 2\n", - "Number of objective gradient evaluations = 2\n", - "Number of equality constraint evaluations = 2\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 2\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 1\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.000\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n", - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0.789855 0.978947] pysmo_rbf\n", - "2023-11-02 10:24:54 [INFO] idaes.core.surrogate.pysmo_surrogate: Decode surrogate. type=rbf\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: \n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 13\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 0\n", - "\n", - "Total number of variables............................: 13\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 0\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 13\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 8.31e+02 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 0.00e+00 0.00e+00 -1.0 8.31e+02 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 1\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "\n", - "\n", - "Number of objective function evaluations = 2\n", - "Number of objective gradient evaluations = 2\n", - "Number of equality constraint evaluations = 2\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 2\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 1\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.001\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n", - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0.789855 0.978947] pysmo_poly\n", - "2023-11-02 10:24:54 [INFO] idaes.core.surrogate.pysmo_surrogate: Decode surrogate. type=poly\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: \n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 13\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 0\n", - "\n", - "Total number of variables............................: 13\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 0\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 13\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 8.29e+02 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 0.00e+00 0.00e+00 -1.0 8.29e+02 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 1\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "\n", - "\n", - "Number of objective function evaluations = 2\n", - "Number of objective gradient evaluations = 2\n", - "Number of equality constraint evaluations = 2\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 2\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 1\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.000\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n", - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0.191304 0.936842] pysmo_kriging\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:24:54 [INFO] idaes.core.surrogate.pysmo_surrogate: Decode surrogate. type=kriging\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: \n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 13\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 0\n", - "\n", - "Total number of variables............................: 13\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 0\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 13\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 2.18e+04 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 0.00e+00 0.00e+00 -1.0 2.18e+04 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 1\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "\n", - "\n", - "Number of objective function evaluations = 2\n", - "Number of objective gradient evaluations = 2\n", - "Number of equality constraint evaluations = 2\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 2\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 1\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.000\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n", - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0.191304 0.936842] pysmo_rbf\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:24:54 [INFO] idaes.core.surrogate.pysmo_surrogate: Decode surrogate. type=rbf\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: \n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 13\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 0\n", - "\n", - "Total number of variables............................: 13\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 0\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 13\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 2.18e+04 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 0.00e+00 0.00e+00 -1.0 2.18e+04 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 1\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "\n", - "\n", - "Number of objective function evaluations = 2\n", - "Number of objective gradient evaluations = 2\n", - "Number of equality constraint evaluations = 2\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 2\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 1\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.000\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n", - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0.191304 0.936842] pysmo_poly\n", - "2023-11-02 10:24:54 [INFO] idaes.core.surrogate.pysmo_surrogate: Decode surrogate. type=poly\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: \n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 13\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 0\n", - "\n", - "Total number of variables............................: 13\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 0\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 13\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 2.18e+04 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 1.11e-16 0.00e+00 -1.0 2.18e+04 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 1\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Constraint violation....: 1.1102230246251565e-16 1.1102230246251565e-16\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 1.1102230246251565e-16 1.1102230246251565e-16\n", - "\n", - "\n", - "Number of objective function evaluations = 2\n", - "Number of objective gradient evaluations = 2\n", - "Number of equality constraint evaluations = 2\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 2\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 1\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.001\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n", - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0.231884 0.863158] pysmo_kriging\n", - "2023-11-02 10:24:54 [INFO] idaes.core.surrogate.pysmo_surrogate: Decode surrogate. type=kriging\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: \n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 13\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 0\n", - "\n", - "Total number of variables............................: 13\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 0\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 13\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 1.90e+04 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 0.00e+00 0.00e+00 -1.0 1.90e+04 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 1\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "\n", - "\n", - "Number of objective function evaluations = 2\n", - "Number of objective gradient evaluations = 2\n", - "Number of equality constraint evaluations = 2\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 2\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 1\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.001\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n", - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0.231884 0.863158] pysmo_rbf\n", - "2023-11-02 10:24:54 [INFO] idaes.core.surrogate.pysmo_surrogate: Decode surrogate. type=rbf\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: \n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 13\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 0\n", - "\n", - "Total number of variables............................: 13\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 0\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 13\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 1.90e+04 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 0.00e+00 0.00e+00 -1.0 1.90e+04 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 1\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "\n", - "\n", - "Number of objective function evaluations = 2\n", - "Number of objective gradient evaluations = 2\n", - "Number of equality constraint evaluations = 2\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 2\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 1\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.000\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n", - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0.231884 0.863158] pysmo_poly\n", - "2023-11-02 10:24:55 [INFO] idaes.core.surrogate.pysmo_surrogate: Decode surrogate. type=poly\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: \n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 13\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 0\n", - "\n", - "Total number of variables............................: 13\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 0\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 13\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 1.90e+04 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 0.00e+00 0.00e+00 -1.0 1.90e+04 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 1\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "\n", - "\n", - "Number of objective function evaluations = 2\n", - "Number of objective gradient evaluations = 2\n", - "Number of equality constraint evaluations = 2\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 2\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 1\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.000\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n", - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0.150725 0.978947] pysmo_kriging\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:24:55 [INFO] idaes.core.surrogate.pysmo_surrogate: Decode surrogate. type=kriging\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: \n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 13\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 0\n", - "\n", - "Total number of variables............................: 13\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 0\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 13\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 2.41e+04 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 0.00e+00 0.00e+00 -1.0 2.41e+04 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 1\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "\n", - "\n", - "Number of objective function evaluations = 2\n", - "Number of objective gradient evaluations = 2\n", - "Number of equality constraint evaluations = 2\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 2\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 1\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.000\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n", - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0.150725 0.978947] pysmo_rbf\n", - "2023-11-02 10:24:55 [INFO] idaes.core.surrogate.pysmo_surrogate: Decode surrogate. type=rbf\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: \n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 13\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 0\n", - "\n", - "Total number of variables............................: 13\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 0\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 13\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 2.41e+04 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 0.00e+00 0.00e+00 -1.0 2.41e+04 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 1\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "\n", - "\n", - "Number of objective function evaluations = 2\n", - "Number of objective gradient evaluations = 2\n", - "Number of equality constraint evaluations = 2\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 2\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 1\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.000\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n", - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0.150725 0.978947] pysmo_poly\n", - "2023-11-02 10:24:56 [INFO] idaes.core.surrogate.pysmo_surrogate: Decode surrogate. type=poly\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: \n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 13\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 0\n", - "\n", - "Total number of variables............................: 13\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 0\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 13\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 2.41e+04 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 0.00e+00 0.00e+00 -1.0 2.41e+04 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 1\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "\n", - "\n", - "Number of objective function evaluations = 2\n", - "Number of objective gradient evaluations = 2\n", - "Number of equality constraint evaluations = 2\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 2\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 1\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.000\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n", - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0.728986 0.8 ] pysmo_kriging\n", - "2023-11-02 10:24:56 [INFO] idaes.core.surrogate.pysmo_surrogate: Decode surrogate. type=kriging\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: \n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 13\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 0\n", - "\n", - "Total number of variables............................: 13\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 0\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 13\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 1.84e+03 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 0.00e+00 0.00e+00 -1.0 1.84e+03 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 1\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "\n", - "\n", - "Number of objective function evaluations = 2\n", - "Number of objective gradient evaluations = 2\n", - "Number of equality constraint evaluations = 2\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 2\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 1\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.000\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n", - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0.728986 0.8 ] pysmo_rbf\n", - "2023-11-02 10:24:56 [INFO] idaes.core.surrogate.pysmo_surrogate: Decode surrogate. type=rbf\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: \n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 13\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 0\n", - "\n", - "Total number of variables............................: 13\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 0\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 13\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 1.82e+03 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 0.00e+00 0.00e+00 -1.0 1.82e+03 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 1\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "\n", - "\n", - "Number of objective function evaluations = 2\n", - "Number of objective gradient evaluations = 2\n", - "Number of equality constraint evaluations = 2\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 2\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 1\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.000\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n", - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0.728986 0.8 ] pysmo_poly\n", - "2023-11-02 10:24:57 [INFO] idaes.core.surrogate.pysmo_surrogate: Decode surrogate. type=poly\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: \n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 13\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 0\n", - "\n", - "Total number of variables............................: 13\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 0\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 13\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 1.83e+03 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 0.00e+00 0.00e+00 -1.0 1.83e+03 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 1\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "\n", - "\n", - "Number of objective function evaluations = 2\n", - "Number of objective gradient evaluations = 2\n", - "Number of equality constraint evaluations = 2\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 2\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 1\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.000\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n", - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0.1 1.052632] pysmo_kriging\n", - "2023-11-02 10:24:57 [INFO] idaes.core.surrogate.pysmo_surrogate: Decode surrogate. type=kriging\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: \n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 13\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 0\n", - "\n", - "Total number of variables............................: 13\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 0\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 13\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 2.76e+04 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 0.00e+00 0.00e+00 -1.0 2.76e+04 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 1\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "\n", - "\n", - "Number of objective function evaluations = 2\n", - "Number of objective gradient evaluations = 2\n", - "Number of equality constraint evaluations = 2\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 2\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 1\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.000\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n", - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b" - ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0.1 1.052632] pysmo_rbf\n", - "2023-11-02 10:24:57 [INFO] idaes.core.surrogate.pysmo_surrogate: Decode surrogate. type=rbf\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: \n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 13\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 0\n", - "\n", - "Total number of variables............................: 13\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 0\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 13\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 2.76e+04 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 0.00e+00 0.00e+00 -1.0 2.76e+04 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 1\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "\n", - "\n", - "Number of objective function evaluations = 2\n", - "Number of objective gradient evaluations = 2\n", - "Number of equality constraint evaluations = 2\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 2\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 1\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.001\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n", - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0.1 1.052632] pysmo_poly\n", - "2023-11-02 10:24:58 [INFO] idaes.core.surrogate.pysmo_surrogate: Decode surrogate. type=poly\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: \n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 13\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 0\n", - "\n", - "Total number of variables............................: 13\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 0\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 13\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 2.76e+04 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 0.00e+00 0.00e+00 -1.0 2.76e+04 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 1\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "\n", - "\n", - "Number of objective function evaluations = 2\n", - "Number of objective gradient evaluations = 2\n", - "Number of equality constraint evaluations = 2\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 2\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 1\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.001\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n", - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0.181159 0.915789] pysmo_kriging\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:24:58 [INFO] idaes.core.surrogate.pysmo_surrogate: Decode surrogate. type=kriging\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: \n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 13\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 0\n", - "\n", - "Total number of variables............................: 13\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 0\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 13\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 2.18e+04 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 0.00e+00 0.00e+00 -1.0 2.18e+04 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 1\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "\n", - "\n", - "Number of objective function evaluations = 2\n", - "Number of objective gradient evaluations = 2\n", - "Number of equality constraint evaluations = 2\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 2\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 1\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.000\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n", - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0.181159 0.915789] pysmo_rbf\n", - "2023-11-02 10:24:59 [INFO] idaes.core.surrogate.pysmo_surrogate: Decode surrogate. type=rbf\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: \n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 13\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 0\n", - "\n", - "Total number of variables............................: 13\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 0\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 13\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 2.18e+04 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 0.00e+00 0.00e+00 -1.0 2.18e+04 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 1\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "\n", - "\n", - "Number of objective function evaluations = 2\n", - "Number of objective gradient evaluations = 2\n", - "Number of equality constraint evaluations = 2\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 2\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 1\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.000\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n", - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0.181159 0.915789] pysmo_poly\n", - "2023-11-02 10:24:59 [INFO] idaes.core.surrogate.pysmo_surrogate: Decode surrogate. type=poly\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ML/AI Best Practices: \"Selecting Surrogate Model Form/Size for Optimization\"\n", + "Maintainer: Brandon Paul \n", + "Author: Brandon Paul \n", + "Updated: 2023-06-01 \n", + "\n", + "In this notebook we demonstrate the use of model and solver statistics to select the best surrogate model. For this purpose we trained (offline) different models with ALAMO, PySMO for three basis forms, and TensorFlow Keras. The surrogates are imported into the notebook, and the IDAES flowsheet is constructed and solved." + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: \n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 13\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 0\n", - "\n", - "Total number of variables............................: 13\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 0\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 13\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 2.18e+04 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 1.11e-16 0.00e+00 -1.0 2.18e+04 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 1\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Constraint violation....: 1.1102230246251565e-16 1.1102230246251565e-16\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 1.1102230246251565e-16 1.1102230246251565e-16\n", - "\n", - "\n", - "Number of objective function evaluations = 2\n", - "Number of objective gradient evaluations = 2\n", - "Number of equality constraint evaluations = 2\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 2\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 1\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.000\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n", - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1. Introduction\n", + "\n", + "This example demonstrates autothermal reformer optimization leveraging the ALAMO, PySMO and Keras surrogate trainers, and compares key indicators of model performance. In this notebook, IPOPT will be run with statistics using ALAMO, PySMO Polynomial, PySMO RBF, PySMO Kriging and Keras surrogate models to assess each model type for flowsheet integration and tractability." + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0.668116 1.073684] pysmo_kriging\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2. Problem Statement \n", + "\n", + "Within the context of a larger Natural Gas Fuel Cell (NGFC) system, the autothermal reformer unit is used to generate syngas from air, steam, and natural gas. Two input variables are considered for this example (reformer bypass fraction and fuel to steam ratio). The reformer bypass fraction (also called internal reformation percentage) plays an important role in the syngas final composition and it is typically controlled in this process. The fuel to steam ratio is an important variable that affects the final syngas reaction and heat duty required by the reactor. The syngas is then used as fuel by a solid-oxide fuel cell (SOFC) to generate electricity and heat. \n", + "\n", + "The autothermal reformer is typically modeled using the IDAES Gibbs reactor and this reactor is robust once it is initialized; however, the overall model robustness is affected due to several components present in the reaction, scaling issues for the largrangean multipliers, and Gibbs free energy minimization formulation. Substituting rigorously trained and validated surrogates in lieu of rigorous unit model equations increases the robustness of the problem.\n", + "\n", + "### 2.1. Inputs: \n", + "- Bypass fraction (dimensionless) - split fraction of natural gas to bypass AR unit and feed directly to the power island\n", + "- NG-Steam Ratio (dimensionless) - proportion of natural relative to steam fed into AR unit operation\n", + "\n", + "### 2.2. Outputs:\n", + "- Steam flowrate (kg/s) - inlet steam fed to AR unit\n", + "- Reformer duty (kW) - required energy input to AR unit\n", + "- Composition (dimensionless) - outlet mole fractions of components (Ar, C2H6, C3H8, C4H10, CH4, CO, CO2, H2, H2O, N2, O2)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:24:59 [INFO] idaes.core.surrogate.pysmo_surrogate: Decode surrogate. type=kriging\n" - ] + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "from IPython.display import Image\n", + "from pathlib import Path\n", + "\n", + "\n", + "def datafile_path(name):\n", + " return Path(\".\") / name\n", + "\n", + "\n", + "Image(datafile_path(\"AR_PFD.png\"))" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: \n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 13\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 0\n", - "\n", - "Total number of variables............................: 13\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 0\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 13\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 5.48e+03 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 0.00e+00 0.00e+00 -1.0 5.48e+03 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 1\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "\n", - "\n", - "Number of objective function evaluations = 2\n", - "Number of objective gradient evaluations = 2\n", - "Number of equality constraint evaluations = 2\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 2\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 1\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.000\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n", - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3. Training Surrogates" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0.668116 1.073684] pysmo_rbf\n", - "2023-11-02 10:25:00 [INFO] idaes.core.surrogate.pysmo_surrogate: Decode surrogate. type=rbf\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Previous Jupyter Notebooks demonstrated the workflow to import data, train surrogate models using [ALAMO](alamo/alamo_flowsheet_optimization_src_doc.md), [PySMO](pysmo/pysmo_flowsheet_optimization_src_doc.md) and Keras, and develop IDAES's validation plots. To keep this notebook simple, this notebook simply loads the surrogate models trained off line.\n", + "\n", + "Note that the training/loading method includes a \"retrain\" argument in case the user wants to retrain all surrogate models. Since the retrain method runs ALAMO, PySMO (Polynomial, Radial Basis Functions, and Kriging basis types) and Keras, it takes about an 1 hr to complete the training for all models.\n", + "\n", + "Each run will overwrite the serialized JSON files for previously trained surrogates if retraining is enforced. To retrain individual surrogates, simply delete the desired JSON before running this notebook (for Keras, delete the folder `keras_surrogate/`)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: \n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 13\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 0\n", - "\n", - "Total number of variables............................: 13\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 0\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 13\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 5.49e+03 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 0.00e+00 0.00e+00 -1.0 5.49e+03 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 1\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "\n", - "\n", - "Number of objective function evaluations = 2\n", - "Number of objective gradient evaluations = 2\n", - "Number of equality constraint evaluations = 2\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 2\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 1\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.000\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n", - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b" - ] + "cell_type": "code", + "execution_count": 3, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "from idaes_examples.mod.surrogates.AR_training_methods import (\n", + " train_load_surrogates,\n", + " SurrType,\n", + ")\n", + "\n", + "trained_surr = train_load_surrogates(retrain=False)\n", + "# setting retrain to True will take ~ 1 hour to run, best to load if possible\n", + "# setting retrain to False will only generate missing surrogates (only if JSON/folder doesn't exist)\n", + "# this method trains surrogates and serializes to JSON\n", + "# The return value is a set of surrogate types (instances of SurrType) that were trained\n", + "\n", + "# imports to capture long output\n", + "from io import StringIO\n", + "import sys" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0.668116 1.073684] pysmo_poly\n", - "2023-11-02 10:25:00 [INFO] idaes.core.surrogate.pysmo_surrogate: Decode surrogate. type=poly\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 4. Build and Run IDAES Flowsheet" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: \n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 13\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 0\n", - "\n", - "Total number of variables............................: 13\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 0\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 13\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 5.49e+03 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 0.00e+00 0.00e+00 -1.0 5.49e+03 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 1\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "\n", - "\n", - "Number of objective function evaluations = 2\n", - "Number of objective gradient evaluations = 2\n", - "Number of equality constraint evaluations = 2\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 2\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 1\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.000\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n", - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b" - ] - } - ], - "source": [ - "# Import Auto-reformer training data\n", - "import numpy as np\n", - "import pandas as pd\n", - "\n", - "np.set_printoptions(precision=6, suppress=True)\n", - "csv_data = pd.read_csv(r\"reformer-data.csv\") # 2800 data points\n", - "\n", - "# extracting 10 data points out of 2800 data points, randomly selecting 10 cases to run\n", - "case_data = csv_data.sample(n=10)\n", - "\n", - "# selecting columns that correspond to Input Variables\n", - "inputs = np.array(case_data.iloc[:, :2])\n", - "\n", - "# selecting columns that correspond to Output Variables\n", - "cols = [\"Steam_Flow\", \"Reformer_Duty\", \"C2H6\", \"CH4\", \"H2\", \"O2\"]\n", - "outputs = np.array(case_data[cols])\n", - "\n", - "# For results comparison with minimum memory usage we will extract the values to plot on each pass\n", - "# note that the entire model could be returned and saved on each loop if desired\n", - "\n", - "# create empty dictionaries so we may easily index results as we save them\n", - "# for convenience while plotting, each output variable has its own dictionary\n", - "# indexed by (case number, trainer type)\n", - "# trainers = [\"alamo\", \"pysmo_poly\", \"pysmo_rbf\", \"pysmo_krig\", \"keras\"]\n", - "# temporarily remove keras\n", - "trainers = list(trained_surr - {SurrType.KERAS})\n", - "\n", - "cases = range(len(inputs))\n", - "steam_flow_error = {}\n", - "reformer_duty_error = {}\n", - "conc_C2H6 = {}\n", - "conc_CH4 = {}\n", - "conc_H2 = {}\n", - "conc_O2 = {}\n", - "\n", - "# run flowsheet for each trainer and save results\n", - "i = 0\n", - "for case in inputs: # each case is a value pair (bypass_frac, ng_steam_ratio)\n", - " i = i + 1\n", - " for trainer in trainers:\n", - " [sf, rd, eth, meth, hyd, oxy,] = build_flowsheet(\n", - " case, surrogate_type=trainer\n", - " )\n", - " steam_flow_error[(i, trainer)] = abs(\n", - " (sf - value(outputs[i - 1, 0])) / value(outputs[i - 1, 0])\n", - " )\n", - " reformer_duty_error[(i, trainer)] = abs(\n", - " (rd - value(outputs[i - 1, 1])) / value(outputs[i - 1, 1])\n", - " )\n", - " conc_C2H6[(i, trainer)] = abs(eth - value(outputs[i - 1, 2]))\n", - " conc_CH4[(i, trainer)] = abs(meth - value(outputs[i - 1, 3]))\n", - " conc_H2[(i, trainer)] = abs(hyd - value(outputs[i - 1, 4]))\n", - " conc_O2[(i, trainer)] = abs(oxy - value(outputs[i - 1, 5]))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can visualize these results by plotting a graph for each of the quantities above, creating a data series for each surrogate trainer. Some data series may overlay if values are identical for all cases:" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "scrolled": false - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkIAAAHHCAYAAABTMjf2AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAACQKUlEQVR4nOzdeViUVfvA8e+wg2yCsikK7uK+AO67kpa5lGWbuFa+ZpZt2luZWlpa6ZvyS1sUsywzc2kxKxPFfcVccA0Vlc0FkB1mnt8fj4yMgIAODDD357rmkjnzzPPcwyBzc859ztEoiqIghBBCCGGGLEwdgBBCCCGEqUgiJIQQQgizJYmQEEIIIcyWJEJCCCGEMFuSCAkhhBDCbEkiJIQQQgizJYmQEEIIIcyWJEJCCCGEMFuSCAkhhBDCbEkiJISo9DQaDe+++66pwzA5Pz8/Ro8erb8fERGBRqMhIiLCaNeQ77UwN5IICVEJHT16lEcffZT69etjZ2dHnTp16N+/P4sWLTI4bs6cOaxfv940QRrBu+++i0ajKfK2ZMkSU4dnIDw83CA+Ozs7mjRpwgsvvEBCQoKpwyuT3377TZIdIW6xMnUAQghDu3btonfv3tSrV48JEybg5eVFbGwse/bs4X//+x+TJ0/WHztnzhweffRRhg4darqAjeCzzz7D0dHRoC04ONhE0dzdrFmz8Pf3Jysrix07dvDZZ5/x22+/cezYMRwcHCo0lh49epCZmYmNjU2Znvfbb78RFhZWZDKUmZmJlZV8NAjzIT/tQlQy77//Pi4uLuzfvx9XV1eDxxITE00TVDl79NFHqVWrlqnDKJWBAwfSsWNHAMaPH4+7uzuffPIJGzZs4IknnijyOenp6dSoUcPosVhYWGBnZ2fUcxr7fEJUdjI0JkQlc+7cOVq0aFEoCQLw8PDQf63RaEhPT2fFihX64ZqC9SOXL19m7NixeHp6YmtrS4sWLVi2bJnB+XJycnjnnXfo0KEDLi4u1KhRg+7du7N161aD486fP49Go+Gjjz4iLCyMBg0a4ODgwIABA4iNjUVRFGbPnk3dunWxt7dnyJAhXL9+3ajflzsdPnyYgQMH4uzsjKOjI3379mXPnj36x5OTk7G0tOTTTz/Vt129ehULCwvc3d1RFEXfPnHiRLy8vO4pjj59+gAQExMDwOjRo3F0dOTcuXMMGjQIJycnnnrqKQB0Oh0LFy6kRYsW2NnZ4enpyXPPPceNGzcMzqkoCu+99x5169bFwcGB3r17c/z48ULXLq5GaO/evQwaNIiaNWtSo0YNWrduzf/+9z99fGFhYQAGQ335iqoRKul7DbeHDnfu3MnUqVOpXbs2NWrUYNiwYSQlJZXxuypExZEeISEqmfr167N7926OHTtGy5Ytiz1u5cqVjB8/nqCgIJ599lkAGjZsCEBCQgKdOnVCo9HwwgsvULt2bTZt2sS4ceNITU3lpZdeAiA1NZUvv/ySJ554ggkTJnDz5k2++uorQkJC2LdvH23btjW45rfffktOTg6TJ0/m+vXrzJs3j8cee4w+ffoQERHBG2+8wdmzZ1m0aBGvvvpqocSrOHcmTZaWltSsWbPY448fP0737t1xdnbm9ddfx9ramqVLl9KrVy+2bdtGcHAwrq6utGzZku3bt/Piiy8CsGPHDjQaDdevX+fEiRO0aNECgMjISLp3716qWO907tw5ANzd3fVteXl5hISE0K1bNz766CP9kNlzzz1HeHg4Y8aM4cUXXyQmJobFixdz+PBhdu7cibW1NQDvvPMO7733HoMGDWLQoEEcOnSIAQMGkJOTU2I8f/75Jw899BDe3t5MmTIFLy8voqOj+eWXX5gyZQrPPfccV65c4c8//2TlypUlnq803+uCJk+eTM2aNZkxYwbnz59n4cKFvPDCC6xevbrU31MhKpQihKhU/vjjD8XS0lKxtLRUOnfurLz++uvK5s2blZycnELH1qhRQwkNDS3UPm7cOMXb21u5evWqQfvIkSMVFxcXJSMjQ1EURcnLy1Oys7MNjrlx44bi6empjB07Vt8WExOjAErt2rWV5ORkffv06dMVQGnTpo2Sm5urb3/iiScUGxsbJSsr666vdcaMGQpQ6Fa/fn2D4wBlxowZ+vtDhw5VbGxslHPnzunbrly5ojg5OSk9evTQt02aNEnx9PTU3586darSo0cPxcPDQ/nss88URVGUa9euKRqNRvnf//5311iXL1+uAMpff/2lJCUlKbGxscr333+vuLu7K/b29sqlS5cURVGU0NBQBVCmTZtm8PzIyEgFUL799luD9t9//92gPTExUbGxsVEefPBBRafT6Y978803FcDg/d66dasCKFu3blUURX0//f39lfr16ys3btwwuE7Bc02aNEkp7tf/vX6v878//fr1M7jWyy+/rFhaWhr83AhRmcjQmBCVTP/+/dm9ezcPP/wwR44cYd68eYSEhFCnTh02btxY4vMVRWHt2rUMHjwYRVG4evWq/hYSEkJKSgqHDh0C1J6X/EJbnU7H9evXycvLo2PHjvpjChoxYgQuLi76+/m9AU8//bRBgW1wcDA5OTlcvny5VK957dq1/Pnnn/rbt99+W+yxWq2WP/74g6FDh9KgQQN9u7e3N08++SQ7duwgNTUVgO7du5OQkMCpU6cAteenR48edO/encjISEDtJVIUpdQ9Qv369aN27dr4+voycuRIHB0dWbduHXXq1DE4buLEiQb316xZg4uLC/379zd4Tzp06ICjo6N+OPKvv/7S97oVHLLK78W7m8OHDxMTE8NLL71UaGi14LlKqyzf63zPPvuswbW6d++OVqvlwoULZb6+EBVBhsaEqIQCAwP56aefyMnJ4ciRI6xbt44FCxbw6KOPEhUVRUBAQLHPTUpKIjk5mc8//5zPP/+8yGMKFl2vWLGCjz/+mJMnT5Kbm6tv9/f3L/S8evXqGdzPT4p8fX2LbL+z9qU4PXr0KHWxdFJSEhkZGTRt2rTQY82bN0en0xEbG0uLFi30yU1kZCR169bl8OHDvPfee9SuXZuPPvpI/5izszNt2rQp1fXDwsJo0qQJVlZWeHp60rRpUywsDP+mtLKyom7dugZtZ86cISUlxaDOq6D89yQ/YWjcuLHB47Vr177rcCHcHqa725BqWZTle53vzp+R/JhL+7MgREWTREiISszGxobAwEACAwNp0qQJY8aMYc2aNcyYMaPY5+h0OkDtpQkNDS3ymNatWwPwzTffMHr0aIYOHcprr72Gh4cHlpaWzJ07V/+hWpClpWWR5yuuXSlQkGwKPj4++Pv7s337dvz8/FAUhc6dO1O7dm2mTJnChQsXiIyMpEuXLoWSmeIEBQXpZ40Vx9bWttD5dDodHh4exfZ21a5du3QvqpKrrD8LQhRHEiEhqoj8D9+4uDh9W1HDHbVr18bJyQmtVku/fv3ues4ff/yRBg0a8NNPPxmc626JlqnVrl0bBwcH/XBXQSdPnsTCwsKgh6p79+5s374df39/2rZti5OTE23atMHFxYXff/+dQ4cOMXPmzHKPu2HDhvz111907doVe3v7Yo+rX78+oPYgFRyOSkpKKrFXJb9Y/tixY3d970s7TFbW77UQVZHUCAlRyWzdurXIv55/++03AINhiho1apCcnGxwnKWlJY888ghr167l2LFjhc5TcCpz/l/vBa+3d+9edu/efV+voTxZWloyYMAANmzYwPnz5/XtCQkJrFq1im7duuHs7Kxv7969O+fPn2f16tX6oTILCwu6dOnCJ598Qm5u7j3PGCuLxx57DK1Wy+zZsws9lpeXp38f+/Xrh7W1NYsWLTJ4XxYuXFjiNdq3b4+/vz8LFy4s9HNR8Fz5axrdecydyvq9FqIqkh4hISqZyZMnk5GRwbBhw2jWrBk5OTns2rWL1atX4+fnx5gxY/THdujQgb/++otPPvlEPwwUHBzMBx98wNatWwkODmbChAkEBARw/fp1Dh06xF9//aWfrv7QQw/x008/MWzYMB588EFiYmJYsmQJAQEBpKWlmepbUKL33nuPP//8k27duvGf//wHKysrli5dSnZ2NvPmzTM4Nj/JOXXqFHPmzNG39+jRg02bNmFra0tgYGC5x9yzZ0+ee+455s6dS1RUFAMGDMDa2pozZ86wZs0a/ve///Hoo49Su3ZtXn31VebOnctDDz3EoEGDOHz4MJs2bSqxjsrCwoLPPvuMwYMH07ZtW8aMGYO3tzcnT57k+PHjbN68GVB/bgBefPFFQkJCsLS0ZOTIkUWesyzfayGqJFNNVxNCFG3Tpk3K2LFjlWbNmimOjo6KjY2N0qhRI2Xy5MlKQkKCwbEnT55UevToodjb2xeaWp2QkKBMmjRJ8fX1VaytrRUvLy+lb9++yueff64/RqfTKXPmzFHq16+v2NraKu3atVN++eUXJTQ01GAKe/70+fnz5xtcP3/69po1awza86dS79+//66vNX/6fFJS0l2P444p3YqiKIcOHVJCQkIUR0dHxcHBQendu7eya9euIp/v4eGhAAbfvx07diiA0r1797teu6yvKTQ0VKlRo0axj3/++edKhw4dFHt7e8XJyUlp1aqV8vrrrytXrlzRH6PVapWZM2cq3t7eir29vdKrVy/l2LFjSv369e86fb7ga+vfv7/i5OSk1KhRQ2ndurWyaNEi/eN5eXnK5MmTldq1aysajcZgKv29fq+L+/4UF6MQlYVGUaSCTQghhBDmSWqEhBBCCGG2JBESQgghhNmSREgIIYQQZksSISGEEEKYLUmEhBBCCGG2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xcVFWbdundKoUSPF1tZWGTBggHLx4kWD56xfv15p166dYmtrq/j7+yvvvvuukpubW+z3YMaMGUqbNm0M2iZMmKB4eXkpiqIo0dHRip2dnbJmzRr98fXr19d/5ixYsEDx8/Mr9vwFv0dvvfWW0q9fP317RkaG4uLiorz99ttKwY/777//XgGUjRs3FjrX8OHDFXd3dyUtLe2u11SU298zRVGULVu2KI6Ojsrrr79e7DH5Pv30U4PPVZ1OpzRv3lzp0KGDotVqi7yWTqcrsv1u/z9K+/ld5unzixcvZvv27fj4+NC0aVPat29vcBNCCFG+FEUhIyfPJDelDJsRODo64ujoyPr168nOzr6v1zxt2jQ++OADoqOjad26NQArVqzAxsaGnTt3smTJkmKf26NHDxo0aMDKlSv1bbm5uXz77beMHTtW35aRkcH777/P119/zc6dO0lOTmbkyJH6xyMjIxk1ahRTpkzhxIkTLF26lPDwcN5///0yvRZ7e3v9sFazZs2YO3cuEydOZPPmzcydO5fly5frV0L28vIiLi6O7du3l3jeZ555hsjISP2w09q1a/Hz8yv02bxq1SqaNGlS5Abqr7zyCteuXePPP/8s9etZt24dDz74IG+99RYffvjhXY9NTExk3bp1WFpa6tf9iYqKIjo6mldffRULi6LTkvKcNVnmYumhQ4eWQxhCCCFKKzNXS8A7m01y7ROzQnCwKd1Hh5WVFeHh4UyYMIElS5bQvn17evbsyciRI/XJTGnNmjWL/v37G7Q1btyYefPmler548aNY/ny5bz22msA/Pzzz2RlZfHYY4/pj8nNzWXx4sUEBwcDaqLVvHlz9u3bR1BQEDNnzmTatGmEhoYC0KBBA2bPns3rr7/OjBkzShXHwYMHWbVqFX369NG3TZkyhQ0bNjBo0CAmT55M79699Y+NGDGCzZs307NnT7y8vOjUqRN9+/Zl1KhRhbaN8PDwYODAgYSHh/POO++wbNkyg0Qv3+nTp2nevHmR8eW3nz59ulSvJy0tjREjRvDmm2/yxhtvFHlMSkoKjo6O+tWgAV588UX98jv512ratKn+OYmJiTRo0EB/f968efpZ68ZW5kSotG+2EEII8cgjj/Dggw8SGRnJnj172LRpE/PmzePLL7+kV69epT5Px44dC7V16NCh1M8fPXo0b731Fnv27KFTp06E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", - "text/plain": [ - "
" + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This step builds an IDAES flowsheet and imports the surrogate model objects. As shown in the prior three examples, a single model object accounts for all input and output variables, and the JSON model serialized earlier may be imported into a single SurrogateBlock() component. While the serialization method and file structure differs slightly between the ALAMO, PySMO and Keras Python Wrappers, the three are imported similarly into IDAES flowsheets as shown below." ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\best_practices_optimization_doc_15_0.png" - } - }, - "output_type": "display_data" }, { - "data": { - "image/png": "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", - "text/plain": [ - "
" + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 4.1 Build IDAES Flowsheet\n", + "\n", + "This method builds an instance of the IDAES flowsheet model and solves the flowsheet using IPOPT. The method allows users to select a case and the surrogate model type to be used (i.e., alamo, pysmo, keras). The case argument consists of a list with values for the input variables (in this order, bypass split fraction and natural gas to steam ratio). Then the method fixes the input variables values to solve a square problem with IPOPT. " ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\best_practices_optimization_doc_15_1.png" - } - }, - "output_type": "display_data" }, { - "data": { - "image/png": "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", - "text/plain": [ - "
" + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "# Import IDAES and Pyomo libraries\n", + "from pyomo.environ import ConcreteModel, SolverFactory, value, Var, Constraint, Set\n", + "from idaes.core.surrogate.surrogate_block import SurrogateBlock\n", + "from idaes.core.surrogate.alamopy import AlamoSurrogate\n", + "from idaes.core.surrogate.pysmo_surrogate import PysmoSurrogate\n", + "from idaes.core.surrogate.keras_surrogate import KerasSurrogate\n", + "from idaes.core import FlowsheetBlock\n", + "\n", + "\n", + "def build_flowsheet(case, surrogate_type: SurrType = None):\n", + " print(case, \" \", surrogate_type.value)\n", + " # create the IDAES model and flowsheet\n", + " m = ConcreteModel()\n", + " m.fs = FlowsheetBlock(dynamic=False)\n", + "\n", + " # create flowsheet input variables\n", + " m.fs.bypass_frac = Var(\n", + " initialize=0.80, bounds=[0.1, 0.8], doc=\"natural gas bypass fraction\"\n", + " )\n", + " m.fs.ng_steam_ratio = Var(\n", + " initialize=0.80, bounds=[0.8, 1.2], doc=\"natural gas to steam ratio\"\n", + " )\n", + "\n", + " # create flowsheet output variables\n", + " m.fs.steam_flowrate = Var(initialize=0.2, doc=\"steam flowrate\")\n", + " m.fs.reformer_duty = Var(initialize=10000, doc=\"reformer heat duty\")\n", + " m.fs.AR = Var(initialize=0, doc=\"AR fraction\")\n", + " m.fs.C2H6 = Var(initialize=0, doc=\"C2H6 fraction\")\n", + " m.fs.C3H8 = Var(initialize=0, doc=\"C3H8 fraction\")\n", + " m.fs.C4H10 = Var(initialize=0, doc=\"C4H10 fraction\")\n", + " m.fs.CH4 = Var(initialize=0, doc=\"CH4 fraction\")\n", + " m.fs.CO = Var(initialize=0, doc=\"CO fraction\")\n", + " m.fs.CO2 = Var(initialize=0, doc=\"CO2 fraction\")\n", + " m.fs.H2 = Var(initialize=0, doc=\"H2 fraction\")\n", + " m.fs.H2O = Var(initialize=0, doc=\"H2O fraction\")\n", + " m.fs.N2 = Var(initialize=0, doc=\"N2 fraction\")\n", + " m.fs.O2 = Var(initialize=0, doc=\"O2 fraction\")\n", + "\n", + " # create input and output variable object lists for flowsheet\n", + " inputs = [m.fs.bypass_frac, m.fs.ng_steam_ratio]\n", + " outputs = [\n", + " m.fs.steam_flowrate,\n", + " m.fs.reformer_duty,\n", + " m.fs.AR,\n", + " m.fs.C2H6,\n", + " m.fs.C3H8,\n", + " m.fs.C4H10,\n", + " m.fs.CH4,\n", + " m.fs.CO,\n", + " m.fs.CO2,\n", + " m.fs.H2,\n", + " m.fs.H2O,\n", + " m.fs.N2,\n", + " m.fs.O2,\n", + " ]\n", + "\n", + " # create the Pyomo/IDAES block that corresponds to the surrogate\n", + " # call correct PySMO object to use below (will let us avoid nested switches)\n", + "\n", + " # capture long output from loading surrogates (don't need to print it)\n", + " stream = StringIO()\n", + " oldstdout = sys.stdout\n", + " sys.stdout = stream\n", + "\n", + " if surrogate_type == SurrType.ALAMO:\n", + " surrogate = AlamoSurrogate.load_from_file(\"alamo_surrogate.json\")\n", + " m.fs.surrogate = SurrogateBlock()\n", + " m.fs.surrogate.build_model(surrogate, input_vars=inputs, output_vars=outputs)\n", + " elif surrogate_type == SurrType.KERAS:\n", + " keras_surrogate = KerasSurrogate.load_from_folder(keras_folder_name=\"keras_surrogate\", keras_model_name=\"keras_model\")\n", + " m.fs.surrogate = SurrogateBlock()\n", + " m.fs.surrogate.build_model(\n", + " keras_surrogate,\n", + " formulation=KerasSurrogate.Formulation.FULL_SPACE,\n", + " input_vars=inputs,\n", + " output_vars=outputs,\n", + " )\n", + " elif SurrType.is_pysmo(\n", + " surrogate_type\n", + " ): # surrogate is one of the three pysmo basis options\n", + " surrogate = PysmoSurrogate.load_from_file(\n", + " surrogate_type.value + \"_surrogate.json\"\n", + " )\n", + " m.fs.surrogate = SurrogateBlock()\n", + " m.fs.surrogate.build_model(surrogate, input_vars=inputs, output_vars=outputs)\n", + " else:\n", + " raise ValueError(f\"Unknown surrogate type: {surrogate_type}\")\n", + "\n", + " # revert to standard output\n", + " sys.stdout = oldstdout\n", + "\n", + " # fix input values and solve flowsheet\n", + " m.fs.bypass_frac.fix(case[0])\n", + " m.fs.ng_steam_ratio.fix(case[1])\n", + "\n", + " solver = SolverFactory(\"ipopt\")\n", + " try: # attempt to solve problem\n", + " results = solver.solve(m, tee=True)\n", + " except: # retry solving one more time\n", + " results = solver.solve(m, tee=True)\n", + "\n", + " return (\n", + " value(m.fs.steam_flowrate),\n", + " value(m.fs.reformer_duty),\n", + " value(m.fs.C2H6),\n", + " value(m.fs.CH4),\n", + " value(m.fs.H2),\n", + " value(m.fs.O2),\n", + " )" ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\best_practices_optimization_doc_15_2.png" - } - }, - "output_type": "display_data" }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "Mole fraction predictions displayed with absolute error:\n", - "\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 4.2 Model Size/Form Comparison\n", + "\n", + "As mentioned above, as part of best practices the IDAES ML/AI demonstration includes the analysis of model/solver statistics and performance to determine the best surrogate model, including model size, model form, model trainer, etc. This section provides the rigorous analysis of solver performance comparing different surrogate models (ALAMO, PySMO polynomial, PysMO RBF, and PySMO Kriging).\n", + "\n", + "To obtain the results, we run the flowsheet for ten different simulation cases for each surrogate model type. Since the simulation cases are obtained from the training data set we can compare model performance (absolute error of measurement vs predicted output values)." + ] }, { - "data": { - "image/png": "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", - "text/plain": [ - "
" + "cell_type": "code", + "execution_count": 5, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "# Import Auto-reformer training data\n", + "import numpy as np\n", + "import pandas as pd\n", + "\n", + "np.set_printoptions(precision=6, suppress=True)\n", + "csv_data = pd.read_csv(r\"reformer-data.csv\") # 2800 data points\n", + "\n", + "# extracting 10 data points out of 2800 data points, randomly selecting 10 cases to run\n", + "case_data = csv_data.sample(n=10)\n", + "\n", + "# selecting columns that correspond to Input Variables\n", + "inputs = np.array(case_data.iloc[:, :2])\n", + "\n", + "# selecting columns that correspond to Output Variables\n", + "cols = [\"Steam_Flow\", \"Reformer_Duty\", \"C2H6\", \"CH4\", \"H2\", \"O2\"]\n", + "outputs = np.array(case_data[cols])\n", + "\n", + "# For results comparison with minimum memory usage we will extract the values to plot on each pass\n", + "# note that the entire model could be returned and saved on each loop if desired\n", + "\n", + "# create empty dictionaries so we may easily index results as we save them\n", + "# for convenience while plotting, each output variable has its own dictionary\n", + "# indexed by (case number, trainer type)\n", + "# trainers = [\"alamo\", \"pysmo_poly\", \"pysmo_rbf\", \"pysmo_krig\", \"keras\"]\n", + "# temporarily remove keras\n", + "trainers = list(trained_surr - {SurrType.KERAS})\n", + "\n", + "cases = range(len(inputs))\n", + "steam_flow_error = {}\n", + "reformer_duty_error = {}\n", + "conc_C2H6 = {}\n", + "conc_CH4 = {}\n", + "conc_H2 = {}\n", + "conc_O2 = {}\n", + "\n", + "# run flowsheet for each trainer and save results\n", + "i = 0\n", + "for case in inputs: # each case is a value pair (bypass_frac, ng_steam_ratio)\n", + " i = i + 1\n", + " for trainer in trainers:\n", + " [sf, rd, eth, meth, hyd, oxy,] = build_flowsheet(\n", + " case, surrogate_type=trainer\n", + " )\n", + " steam_flow_error[(i, trainer)] = abs(\n", + " (sf - value(outputs[i - 1, 0])) / value(outputs[i - 1, 0])\n", + " )\n", + " reformer_duty_error[(i, trainer)] = abs(\n", + " (rd - value(outputs[i - 1, 1])) / value(outputs[i - 1, 1])\n", + " )\n", + " conc_C2H6[(i, trainer)] = abs(eth - value(outputs[i - 1, 2]))\n", + " conc_CH4[(i, trainer)] = abs(meth - value(outputs[i - 1, 3]))\n", + " conc_H2[(i, trainer)] = abs(hyd - value(outputs[i - 1, 4]))\n", + " conc_O2[(i, trainer)] = abs(oxy - value(outputs[i - 1, 5]))" ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\best_practices_optimization_doc_15_4.png" - } - }, - "output_type": "display_data" }, { - "data": { - "image/png": "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QsOGDZM8PT1zP1+/fr0ESF988UWe5w0aNEhSqVTStWvX8rw/5ubmeR47c+aMBEg//PDDY/d62M6dOyVA2rRpU57H582bJwHSunXrnvjauLg4CZAGDBiQ+5ibm5s0cODAp96zIFNjT/r/8NZbbz312o8qyNRYVFSUBEizZs167Nybb74pWVlZFeqegvGJESGhVFiwYAG1atV67PEJEyY8czfYu+++y8WLF9m8efMTfzvNj6OjI927d2f58uW8/PLLLFu2jJYtWz62Mwbg5MmT3L17l6lTp2JpaZn7eK9evahTpw6bN2/OXUj8qLVr16LVahk8eHCe32KrVKlCzZo12bNnDx9//PEz433Se6QzbNgwrKys8jxmYWGRe6zRaEhISKBChQrUrl2b06dP555bs2YNzs7OjBkz5rHrFmUh6JYtWwAYP358nscnTJjAnDlz2Lx5Mx06dMh93NfXN3cUBKBSpUrUrl2b0NDQAt3v999/5/fff8/93NLSkvHjx/Pee+/led6j71FwcDAhISF88sknxMbG5nlup06dWLJkCVqtFkmS2L59O/369cPDwyP3OXXr1qVbt265X++TrFmzBj8/v9wp3IcV9f01MTFh7NixeR6fMGECq1evZuvWrXl2ZXXu3BkfH5/czxs2bIidnd0z31/de+Lo6Jjn8eTkZECeZnoS3Tnd9KPueo9eqyi8vLxYuHDhY4+7ubkV+9qP0sWb3wiUo6Mj6enppKWlYW1trfd7C/ohEiGhVGjatClNmjR57HFHR8enbmGfPXs2CxcuZPr06fTs2bPQ9x06dCivvPIKN2/eZP369Xz99df5Pk9XP6V27dqPnatTpw4HDx584j1CQkKQJImaNWvme76g0wRPeo90Ht1RBnLNlu+++44ff/yRsLCwPEnlw1Mi169fp3bt2oVKJJ/mxo0bqNXqx6amqlSpgoODw2P1aB5OLnQcHR2Jj48v0P369u3Lu+++i0qlwtbWlnr16uU7RfLoexQSEgLICdKTJCYmkpmZSXp6er5/h7Vr135mInT9+nUGDhxYkC+lQG7cuIGrq+tjiUjdunVzzz+suO+v9Mi6I919dQlRfp6ULD16raKwsbGhc+fOTzyflZX12JqeSpUqYWJiUuh76eLNL2F92jmh5BCJkFBmLV68mA8++IC3336bTz75pEjXeO6557CwsGDYsGFk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", - "text/plain": [ - "
" + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can visualize these results by plotting a graph for each of the quantities above, creating a data series for each surrogate trainer. Some data series may overlay if values are identical for all cases:" ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\best_practices_optimization_doc_15_5.png" - } - }, - "output_type": "display_data" }, { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkgAAAHHCAYAAABEEKc/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAACNJUlEQVR4nOzdd1zV9ffA8ddl7y1LUXBvERT3XuEoszSzFGdl5si+lS0tzSz7lZZaNlRalplp7twzTUXJrZk4WQKy972f3x9Xrtx7QQHBC3qej8d9wH1/1vncC9zDe6oURVEQQgghhBA6ZqYOQAghhBCispEESQghhBDCgCRIQgghhBAGJEESQgghhDAgCZIQQgghhAFJkIQQQgghDEiCJIQQQghhQBIkIYQQQggDkiAJIYQQQhiQBEkIE1CpVLz77rumDuO+ehjvuYDhvYeHh6NSqbh06VK5nP/SpUuoVCrCw8PL5Xxl0bdvX8aNG1cu5/r1119xc3MjPT29XM5nanl5efj5+fHFF18YbVu8eDE1a9YkJyfHBJGJO5EESVQJp06d4tlnn6V69epYW1vj6+vLM888w6lTp4z2PXz4MC+99BJNmjTB3t6emjVrMmTIEM6fP1+ia7377ruoVCrMzMy4evWq0fbU1FRsbW1RqVS89NJL93xv5cHf3x+VSlXkIzs7+77FsXHjxkqXBBW8nwUPOzs7GjduzNtvv01qaqqpwyuV5cuXM3/+fFOHYWT//v1s2bKF119/3WjblStXeOGFF/D398fa2hpPT08GDhzI/v37izyXWq1mxowZTJw4EQcHB135li1bGDNmDE2bNsXc3Bx/f/8ij9+1a1exvwsqlYpffvnljveSmJjIxx9/TOfOnalWrRouLi60bduWFStWFLl/Tk4Or7/+Or6+vtja2tKmTRu2bt2qt4+lpSVTp05l9uzZRr+PI0eOJDc3l6+++uqOcYn7z8LUAQhxN7///jtPP/00bm5ujBkzhoCAAC5dusSSJUv47bff+OWXX3j88cd1+3/00Ufs37+fwYMH07x5c2JjY1m4cCFBQUEcPHiQpk2blui61tbW/Pzzz7z22mtG8VRGgYGBvPLKK0blVlZW9y2GjRs3smjRoiKTpKysLCwsTPcn58svv8TBwYH09HS2bNnC7Nmz2bFjB/v370elUt3XWIYPH87QoUOxtrYu1XHLly/n5MmTTJkyRa+8Vq1aZGVlYWlpWY5RltzHH39Mjx49qFu3rl75/v376du3LwBjx46lcePGxMbGEh4eTqdOnfjss8+YOHGi3jHr1q3j3LlzPPfcc3rly5cvZ8WKFQQFBeHr63vXmCZNmkTr1q2Nytu1a3fH4w4cOMBbb71F3759efvtt7GwsGDVqlUMHTqU06dP89577+ntP3LkSH777TemTJlCvXr1CA8Pp2/fvuzcuZOOHTvq9hs1ahTTpk1j+fLljB49WlduY2NDWFgYn376KRMnTrzvP4viDhQhKrELFy4odnZ2SsOGDZX4+Hi9bTdu3FAaNmyo2NvbK//995+ufP/+/UpOTo7evufPn1esra2VZ5555q7XnDFjhgIogwYNUgIDA4229+rVS3niiScUQJkwYUKZ7gtQZsyYUaZji1KrVi2lX79+pTomIyOj3K5fYMKECUpl+7NS8H7euHFDr3zQoEEKoPz111/FHlter1F5vd/9+vVTatWqdc/nKU9xcXGKhYWF8u233+qVJyUlKd7e3oqXl5dy4cIFvW2ZmZlKp06dFDMzM2X//v162x599FGlY8eORte5fv26kpubqyjKnV+HnTt3KoCycuXKMt3PxYsXlUuXLumVaTQapXv37oq1tbWSnp6uK//7778VQPn44491ZVlZWUqdOnWUdu3aGZ27f//+SqdOnYzKjxw5ogDK9u3byxSzqBjSxCYqtY8//pjMzEy+/vprqlWrprfNw8ODr776ioyMDObOnasrb9++vVGtSb169WjSpAlnzpwp8bWHDRtGZGQkZ8+e1ZXFxsayY8cOhg0bVuQx8fHxjBkzBi8vL2xsbGjRogXfffddia53/fp1Ro8ejZeXF9bW1jRp0oSlS5eWON476dq1K02bNiUiIoLOnTtjZ2fHm2++CcAff/xBv3798PX1xdramjp16jBr1izUarXRef7++2/69u2Lq6sr9vb2NG/enM8++wzQ/ie9aNEiAL0mjQJF9UE6duwYoaGhODk54eDgQI8ePTh48KDePgX9dfbv38/UqVOpVq0a9vb2PP7449y4caPMr0n37t0BiIqKuutrlJOTw4wZM6hbty7W1tb4+fnx2muvGfUbycnJ4eWXX6ZatWo4Ojry6KOPcu3aNaNrF9cHadOmTXTp0gVHR0ecnJxo3bo1y5cv18W3YcMGLl++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pUuXIo8zNzfniSeeYNWqVZw8edJo+70MZb+bglqDwrUEubm5RksiBAUFERAQwPz580lOTtbbVvjYgg9dw32Kum7v3r35448/9Ia6x8XFsXz5cjp27HjXZp37ZciQIVy/fp1vvvnGaFtWVhYZGRkAhIaGAvD555/r7VOSma979+6No6Mjc+bMMZpp2fD1LWj2vBMfHx8CAwP57rvv9N6LkydPsmXLFt3kjeWhXbt23Lx5U2/4O8Dzzz+Pp6cnr776qtG27OxsRo0ahaIoTJ8+XVceHByMlZUVR44cKbf4ihMcHEzPnj11j8L/RK1YsYJJkybxzDPPFFtzCPDkk0+iVqv1msZzcnJYtmwZbdq0MUryIyIiUKlURf5NOnr0KO3bty+HOxPlRWqQRKVWr149vvvuO5555hmaNWtmNJN2QkICP//8s16/j1deeYW1a9cyYMAAkpKS+PHHH/XOWdR/s3dzpyH6BZ577jm++uorRo4cSUREBP7+/vz222/s37+f+fPn37HD6ocffsjOnTtp06YN48aNo3HjxiQlJXH06FG2bdtmNG9KeWnfvj2urq6EhYUxadIkVCoVP/zwg1GzipmZGV9++SUDBgwgMDCQUaNG4ePjw9mzZzl16hR//vknoP3QAW1H5T59+mBubs7QoUOLvPb777/P1q1b6dixIy+++CIWFhZ89dVX5OTk6M1rZWrDhw/n119/5YUXXmDnzp106NABtVrN2bNn+fXXX/nzzz9p1aoVgYGBPP3003zxxRekpKTQvn17tm/fzoULF+56DScnJ+bNm8fYsWNp3bo1w4YNw9XVlX/++YfMzEzdXFrBwcGsWLGCqVOn0rp1axwcHBgwYECR5/z4448JDQ2lXbt2jBkzRjfM39nZuVyXg+nXrx8WFhZs27ZNbz4gd3d3fvvtN/r160dQUJDRTNoXLlzgs88+00sKbGxs6N27N9u2bdObHwm0zXFr164F4MKFC6SkpPD+++8D0KJFC6PXYe/evUUus9O8efM7NlkfOnSIESNG4O7uTo8ePfjpp5/0trdv3143sKBNmzYMHjyYN954g/j4eOrWrct3332n+/tkaOvWrXTo0EFvagnQJk5JSUk89thjxcYlTMAkY+eEKKXjx48rTz/9tOLj46NYWloq3t7eytNPP13kcOCC4drFPe6muJmXDVHETNpxcXHKqFGj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m1mzZvHaa68xY8aMEsURERHB8uXL6d69u65s8uTJ/PHHH/Tt25eJEyfSrVs33bbBgwfz559/0qVLF7y9vWnbti09evRgxIgRRuuLeXp6EhoaSnh4ONOnT2fp0qV6CWCB8+fP06hRoyLjKyg/f/58ie4nJSUFBwcHFEUhMzMTgEmTJuk+ewt88cUXfPvtt7r96tevz59//ml0vvbt22NWaMLZvXv30rJlyxLFUlYmr0Has2cPAwYMwNfXF5VKVWQb56JFi/D398fGxoY2bdpw6NChMl0rIiICtVqNn5+frux///sfc+bMKWv4QlSsrm+Ab0vIToY1L4BGY+qItLUFvzwDWTfBNwj6z5NO2aLUnnjiCaKjo1m7di2PPPIIu3btIigoiPDw8FKdp1WrVkZlwcHBJT5+5MiRXLhwgYMHDwLaDsZDhgzR+yC3sLCgdevWuucNGzbExcWFM2fOANrO0zNnztRb1b6gb01BclCUEydO4ODggK2tLSEhIbRr146FCxfqtqtUKt566y00Gg1vv/223rHm5uYsW7aMa9euMXfuXKpXr84HH3yg69dkaPTo0YSHh3Px4kUOHDjAM888U2RMSjmtX+/o6EhkZCRHjhzhk08+ISgoqMgatWeeeYbIyEj++ecf9u3bR926denduzdpaWl6+61YsYLIyEjdo3HjxuUS552YvAYpIyODFi1aMHr0aAYNGmS0fcWKFUydOpXFixfTpk0b5s+fT58+fTh37hyenp4ABAYGFtk5b8uWLfj6av+bSkpKYsSIEXzzzTe67X/88Qf169enfv36/PXXXxV0h0LcAwsrGPQtfNUJovbAgYXQYZLp4lEUWPMixJ0Ee0946kewlJXkKw1LO21NjqmuXUo2Njb06tWLXr168c477zB27FhmzJjB3r17Af0P6+JWjzeskSiurDienp4MGDCAZcuWERAQwKZNm0o9qi09PZ333nuvyM8ww5XkC2vQoAFr167FwsICX19frKysjPaxsLDQ+2qoevXqDB8+nOHDhzNr1izq16/P4sWLee+99/T2Cw0N5bnnnmPMmDEMGDAAd3d3o3PVr19fl/QZKiivX79+sfdTmJmZGXXr1gW0tU///fcf48eP12vOBHB2dtbtV7duXZYsWYKPjw8rVqxg7Nixuv38/Px0+90vJk+QQkNDCQ0tfpXvTz/9lHHjxjFq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", - "text/plain": [ - "
" + "cell_type": "code", + "execution_count": 6, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "from matplotlib import pyplot as plt\n", + "\n", + "# create figure/axes for each plot sequentially, plotting each trainer as a separate data series\n", + "\n", + "# Steam Flow Prediction\n", + "fig = plt.figure()\n", + "ax = fig.add_subplot()\n", + "for trainer in trainers:\n", + " # pick out the points that use that trainer and plot them against case number\n", + " sf = [steam_flow_error[(i, j)] for (i, j) in steam_flow_error if j == trainer]\n", + " ax.plot(cases, sf, label=trainer)\n", + "# add info to plot\n", + "ax.set_xlabel(\"Cases\")\n", + "ax.set_ylabel(\"Relative Error\")\n", + "ax.set_title(\"Steam Flow Prediction\")\n", + "ax.legend()\n", + "plt.yscale(\"log\")\n", + "plt.show()\n", + "\n", + "# Reformer Duty Prediction\n", + "fig = plt.figure()\n", + "ax = fig.add_subplot()\n", + "for trainer in trainers:\n", + " # pick out the points that use that trainer and plot them against case number\n", + " rd = [reformer_duty_error[(i, j)] for (i, j) in reformer_duty_error if j == trainer]\n", + " ax.plot(cases, rd, label=trainer)\n", + "# add info to plot\n", + "ax.set_xlabel(\"Cases\")\n", + "ax.set_ylabel(\"Relative Error\")\n", + "ax.set_title(\"Reformer Duty Prediction\")\n", + "ax.legend()\n", + "plt.yscale(\"log\")\n", + "plt.show()\n", + "\n", + "# C2H6 Mole Fraction Prediction\n", + "fig = plt.figure()\n", + "ax = fig.add_subplot()\n", + "for trainer in trainers:\n", + " # pick out the points that use that trainer and plot them against case number\n", + " eth = [conc_C2H6[(i, j)] for (i, j) in conc_C2H6 if j == trainer]\n", + " ax.plot(cases, eth, label=trainer)\n", + "# add info to plot\n", + "ax.set_xlabel(\"Cases\")\n", + "ax.set_ylabel(\"Absolute Error\")\n", + "ax.set_title(\"C2H6 Mole Fraction Prediction (O(1E-2))\")\n", + "ax.legend()\n", + "plt.yscale(\"log\")\n", + "plt.show()\n", + "\n", + "print()\n", + "print(\"Mole fraction predictions displayed with absolute error:\")\n", + "print()\n", + "\n", + "# CH4 Mole Fraction Prediction\n", + "fig = plt.figure()\n", + "ax = fig.add_subplot()\n", + "for trainer in trainers:\n", + " # pick out the points that use that trainer and plot them against case number\n", + " meth = [conc_CH4[(i, j)] for (i, j) in conc_CH4 if j == trainer]\n", + " ax.plot(cases, meth, label=trainer)\n", + "# add info to plot\n", + "ax.set_xlabel(\"Cases\")\n", + "ax.set_ylabel(\"Absolute Error\")\n", + "ax.set_title(\"CH4 Mole Fraction Prediction (O(1E-1))\")\n", + "ax.legend()\n", + "plt.yscale(\"log\")\n", + "plt.show()\n", + "\n", + "# H2 Mole Fraction Prediction\n", + "fig = plt.figure()\n", + "ax = fig.add_subplot()\n", + "for trainer in trainers:\n", + " # pick out the points that use that trainer and plot them against case number\n", + " hyd = [conc_H2[(i, j)] for (i, j) in conc_H2 if j == trainer]\n", + " ax.plot(cases, hyd, label=trainer)\n", + "# add info to plot\n", + "ax.set_xlabel(\"Cases\")\n", + "ax.set_ylabel(\"Absolute Error\")\n", + "ax.set_title(\"H2 Mole Fraction Prediction (O(1E-1))\")\n", + "ax.legend()\n", + "plt.yscale(\"log\")\n", + "plt.show()\n", + "\n", + "# O2 Mole Fraction Prediction\n", + "fig = plt.figure()\n", + "ax = fig.add_subplot()\n", + "for trainer in trainers:\n", + " # pick out the points that use that trainer and plot them against case number\n", + " oxy = [conc_O2[(i, j)] for (i, j) in conc_O2 if j == trainer]\n", + " ax.plot(cases, oxy, label=trainer)\n", + "# add info to plot\n", + "ax.set_xlabel(\"Cases\")\n", + "ax.set_ylabel(\"Absolute Error\")\n", + "ax.set_title(\"O2 Mole Fraction Prediction (O(1E-20))\")\n", + "ax.legend()\n", + "plt.yscale(\"log\")\n", + "plt.show()" ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\best_practices_optimization_doc_15_6.png" - } - }, - "output_type": "display_data" - } - ], - "source": [ - "from matplotlib import pyplot as plt\n", - "\n", - "# create figure/axes for each plot sequentially, plotting each trainer as a separate data series\n", - "\n", - "# Steam Flow Prediction\n", - "fig = plt.figure()\n", - "ax = fig.add_subplot()\n", - "for trainer in trainers:\n", - " # pick out the points that use that trainer and plot them against case number\n", - " sf = [steam_flow_error[(i, j)] for (i, j) in steam_flow_error if j == trainer]\n", - " ax.plot(cases, sf, label=trainer)\n", - "# add info to plot\n", - "ax.set_xlabel(\"Cases\")\n", - "ax.set_ylabel(\"Relative Error\")\n", - "ax.set_title(\"Steam Flow Prediction\")\n", - "ax.legend()\n", - "plt.yscale(\"log\")\n", - "plt.show()\n", - "\n", - "# Reformer Duty Prediction\n", - "fig = plt.figure()\n", - "ax = fig.add_subplot()\n", - "for trainer in trainers:\n", - " # pick out the points that use that trainer and plot them against case number\n", - " rd = [reformer_duty_error[(i, j)] for (i, j) in reformer_duty_error if j == trainer]\n", - " ax.plot(cases, rd, label=trainer)\n", - "# add info to plot\n", - "ax.set_xlabel(\"Cases\")\n", - "ax.set_ylabel(\"Relative Error\")\n", - "ax.set_title(\"Reformer Duty Prediction\")\n", - "ax.legend()\n", - "plt.yscale(\"log\")\n", - "plt.show()\n", - "\n", - "# C2H6 Mole Fraction Prediction\n", - "fig = plt.figure()\n", - "ax = fig.add_subplot()\n", - "for trainer in trainers:\n", - " # pick out the points that use that trainer and plot them against case number\n", - " eth = [conc_C2H6[(i, j)] for (i, j) in conc_C2H6 if j == trainer]\n", - " ax.plot(cases, eth, label=trainer)\n", - "# add info to plot\n", - "ax.set_xlabel(\"Cases\")\n", - "ax.set_ylabel(\"Absolute Error\")\n", - "ax.set_title(\"C2H6 Mole Fraction Prediction (O(1E-2))\")\n", - "ax.legend()\n", - "plt.yscale(\"log\")\n", - "plt.show()\n", - "\n", - "print()\n", - "print(\"Mole fraction predictions displayed with absolute error:\")\n", - "print()\n", - "\n", - "# CH4 Mole Fraction Prediction\n", - "fig = plt.figure()\n", - "ax = fig.add_subplot()\n", - "for trainer in trainers:\n", - " # pick out the points that use that trainer and plot them against case number\n", - " meth = [conc_CH4[(i, j)] for (i, j) in conc_CH4 if j == trainer]\n", - " ax.plot(cases, meth, label=trainer)\n", - "# add info to plot\n", - "ax.set_xlabel(\"Cases\")\n", - "ax.set_ylabel(\"Absolute Error\")\n", - "ax.set_title(\"CH4 Mole Fraction Prediction (O(1E-1))\")\n", - "ax.legend()\n", - "plt.yscale(\"log\")\n", - "plt.show()\n", - "\n", - "# H2 Mole Fraction Prediction\n", - "fig = plt.figure()\n", - "ax = fig.add_subplot()\n", - "for trainer in trainers:\n", - " # pick out the points that use that trainer and plot them against case number\n", - " hyd = [conc_H2[(i, j)] for (i, j) in conc_H2 if j == trainer]\n", - " ax.plot(cases, hyd, label=trainer)\n", - "# add info to plot\n", - "ax.set_xlabel(\"Cases\")\n", - "ax.set_ylabel(\"Absolute Error\")\n", - "ax.set_title(\"H2 Mole Fraction Prediction (O(1E-1))\")\n", - "ax.legend()\n", - "plt.yscale(\"log\")\n", - "plt.show()\n", - "\n", - "# O2 Mole Fraction Prediction\n", - "fig = plt.figure()\n", - "ax = fig.add_subplot()\n", - "for trainer in trainers:\n", - " # pick out the points that use that trainer and plot them against case number\n", - " oxy = [conc_O2[(i, j)] for (i, j) in conc_O2 if j == trainer]\n", - " ax.plot(cases, oxy, label=trainer)\n", - "# add info to plot\n", - "ax.set_xlabel(\"Cases\")\n", - "ax.set_ylabel(\"Absolute Error\")\n", - "ax.set_title(\"O2 Mole Fraction Prediction (O(1E-20))\")\n", - "ax.legend()\n", - "plt.yscale(\"log\")\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 4.3 Comparing Surrogate Optimization\n", - "Extending this analysis, we will run a single optimization scenario for each surrogate model and compare results. As in previous examples detailing workflows for [ALAMO](alamo_flowsheet_optimization_src_doc.md), [PySMO](pysmo_flowsheet_optimization_src_doc.md) and [Keras](keras_flowsheet_optimization_src_doc.md), we will optimize hydrogen production while restricting nitrogen below 34 mol% in the product stream." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "# Import additional Pyomo libraries\n", - "from pyomo.environ import Objective, maximize\n", - "\n", - "\n", - "def run_optimization(surrogate_type=None):\n", - " print(surrogate_type)\n", - " # create the IDAES model and flowsheet\n", - " m = ConcreteModel()\n", - " m.fs = FlowsheetBlock(dynamic=False)\n", - "\n", - " # create flowsheet input variables\n", - " m.fs.bypass_frac = Var(\n", - " initialize=0.80, bounds=[0.1, 0.8], doc=\"natural gas bypass fraction\"\n", - " )\n", - " m.fs.ng_steam_ratio = Var(\n", - " initialize=0.80, bounds=[0.8, 1.2], doc=\"natural gas to steam ratio\"\n", - " )\n", - "\n", - " # create flowsheet output variables\n", - " m.fs.steam_flowrate = Var(initialize=0.2, doc=\"steam flowrate\")\n", - " m.fs.reformer_duty = Var(initialize=10000, doc=\"reformer heat duty\")\n", - " m.fs.AR = Var(initialize=0, doc=\"AR fraction\")\n", - " m.fs.C2H6 = Var(initialize=0, doc=\"C2H6 fraction\")\n", - " m.fs.C3H8 = Var(initialize=0, doc=\"C3H8 fraction\")\n", - " m.fs.C4H10 = Var(initialize=0, doc=\"C4H10 fraction\")\n", - " m.fs.CH4 = Var(initialize=0, doc=\"CH4 fraction\")\n", - " m.fs.CO = Var(initialize=0, doc=\"CO fraction\")\n", - " m.fs.CO2 = Var(initialize=0, doc=\"CO2 fraction\")\n", - " m.fs.H2 = Var(initialize=0, doc=\"H2 fraction\")\n", - " m.fs.H2O = Var(initialize=0, doc=\"H2O fraction\")\n", - " m.fs.N2 = Var(initialize=0, doc=\"N2 fraction\")\n", - " m.fs.O2 = Var(initialize=0, doc=\"O2 fraction\")\n", - "\n", - " # create input and output variable object lists for flowsheet\n", - " inputs = [m.fs.bypass_frac, m.fs.ng_steam_ratio]\n", - " outputs = [\n", - " m.fs.steam_flowrate,\n", - " m.fs.reformer_duty,\n", - " m.fs.AR,\n", - " m.fs.C2H6,\n", - " m.fs.C3H8,\n", - " m.fs.C4H10,\n", - " m.fs.CH4,\n", - " m.fs.CO,\n", - " m.fs.CO2,\n", - " m.fs.H2,\n", - " m.fs.H2O,\n", - " m.fs.N2,\n", - " m.fs.O2,\n", - " ]\n", - "\n", - " # create the Pyomo/IDAES block that corresponds to the surrogate\n", - " # call correct PySMO object to use below (will let us avoid nested switches)\n", - "\n", - " # capture long output from loading surrogates (don't need to print it)\n", - " stream = StringIO()\n", - " oldstdout = sys.stdout\n", - " sys.stdout = stream\n", - "\n", - " if surrogate_type == SurrType.ALAMO:\n", - " surrogate = AlamoSurrogate.load_from_file(\"alamo_surrogate.json\")\n", - " m.fs.surrogate = SurrogateBlock()\n", - " m.fs.surrogate.build_model(surrogate, input_vars=inputs, output_vars=outputs)\n", - " elif surrogate_type == SurrType.KERAS:\n", - " keras_surrogate = KerasSurrogate.load_from_folder(\"keras_surrogate\")\n", - " m.fs.surrogate = SurrogateBlock()\n", - " m.fs.surrogate.build_model(\n", - " keras_surrogate,\n", - " formulation=KerasSurrogate.Formulation.FULL_SPACE,\n", - " input_vars=inputs,\n", - " output_vars=outputs,\n", - " )\n", - " elif SurrType.is_pysmo(\n", - " surrogate_type\n", - " ): # surrogate is one of the three pysmo basis options\n", - " surrogate = PysmoSurrogate.load_from_file(\n", - " surrogate_type.value + \"_surrogate.json\"\n", - " )\n", - " m.fs.surrogate = SurrogateBlock()\n", - " m.fs.surrogate.build_model(surrogate, input_vars=inputs, output_vars=outputs)\n", - " else:\n", - " raise ValueError(f\"Unknown surrogate type: {surrogate_type}\")\n", - "\n", - " # revert to standard output\n", - " sys.stdout = oldstdout\n", - "\n", - " # unfix input values and add the objective/constraint to the model\n", - " m.fs.bypass_frac.unfix()\n", - " m.fs.ng_steam_ratio.unfix()\n", - " m.fs.obj = Objective(expr=m.fs.H2, sense=maximize)\n", - " m.fs.con = Constraint(expr=m.fs.N2 <= 0.34)\n", - "\n", - " solver = SolverFactory(\"ipopt\")\n", - " try: # attempt to solve problem\n", - " results = solver.solve(m, tee=True)\n", - " except: # retry solving one more time\n", - " results = solver.solve(m, tee=True)\n", - "\n", - " return inputs, outputs" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "SurrType.PYSMO_KRG\n", - "2023-11-02 10:25:04 [INFO] idaes.core.surrogate.pysmo_surrogate: Decode surrogate. type=kriging\n" - ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: \n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 39\n", - "Number of nonzeros in inequality constraint Jacobian.: 1\n", - "Number of nonzeros in Lagrangian Hessian.............: 3\n", - "\n", - "Total number of variables............................: 15\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 2\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 13\n", - "Total number of inequality constraints...............: 1\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 1\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 -0.0000000e+00 4.20e+01 2.20e-02 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 -2.2210575e-01 8.98e+00 1.39e-02 -1.7 6.93e+02 - 9.41e-01 1.00e+00h 1\n", - " 2 -3.1543427e-01 4.63e+02 3.09e-02 -2.5 6.13e+03 - 9.54e-01 1.00e+00h 1\n", - " 3 -3.2648096e-01 1.67e+03 1.99e-02 -2.5 1.85e+04 - 5.27e-01 4.45e-01h 1\n", - " 4 -3.2734223e-01 2.21e+02 6.68e-03 -2.5 9.12e+03 - 1.00e+00 1.00e+00h 1\n", - " 5 -3.2603609e-01 3.46e+01 3.14e-04 -2.5 2.48e+01 - 1.00e+00 1.00e+00h 1\n", - " 6 -3.2609557e-01 2.53e-01 3.18e-06 -2.5 1.40e+02 - 1.00e+00 1.00e+00h 1\n", - " 7 -3.3096545e-01 6.96e+01 4.78e-03 -3.8 3.81e+03 - 9.20e-01 1.00e+00h 1\n", - " 8 -3.3154563e-01 3.39e+00 3.75e-04 -3.8 1.11e+03 - 1.00e+00 1.00e+00h 1\n", - " 9 -3.3138393e-01 5.32e-01 1.27e-05 -3.8 3.19e+02 - 1.00e+00 1.00e+00f 1\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 10 -3.3139248e-01 4.61e-04 6.78e-08 -3.8 1.24e+01 - 1.00e+00 1.00e+00h 1\n", - " 11 -3.3167648e-01 1.35e-01 7.35e-04 -5.7 1.71e+02 - 1.00e+00 9.75e-01h 1\n", - " 12 -3.3168623e-01 7.84e-04 7.02e-09 -5.7 1.52e+01 - 1.00e+00 1.00e+00h 1\n", - " 13 -3.3168990e-01 3.58e-05 2.76e-09 -8.6 1.64e+00 - 1.00e+00 1.00e+00h 1\n", - " 14 -3.3168990e-01 4.38e-09 2.72e-13 -8.6 2.99e-03 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 14\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: -3.3168990316632091e-01 -3.3168990316632091e-01\n", - "Dual infeasibility......: 2.7227776253254969e-13 2.7227776253254969e-13\n", - "Constraint violation....: 1.5548231598831156e-11 4.3801264837384224e-09\n", - "Complementarity.........: 2.5059042947426033e-09 2.5059042947426033e-09\n", - "Overall NLP error.......: 2.5059042947426033e-09 4.3801264837384224e-09\n", - "\n", - "\n", - "Number of objective function evaluations = 15\n", - "Number of objective gradient evaluations = 15\n", - "Number of equality constraint evaluations = 15\n", - "Number of inequality constraint evaluations = 15\n", - "Number of equality constraint Jacobian evaluations = 15\n", - "Number of inequality constraint Jacobian evaluations = 15\n", - "Number of Lagrangian Hessian evaluations = 14\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.002\n", - "Total CPU secs in NLP function evaluations = 0.001\n", - "\n", - "EXIT: Optimal Solution Found.\n", - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 4.3 Comparing Surrogate Optimization\n", + "Extending this analysis, we will run a single optimization scenario for each surrogate model and compare results. As in previous examples detailing workflows for [ALAMO](alamo_flowsheet_optimization_src_doc.md), [PySMO](pysmo_flowsheet_optimization_src_doc.md) and [Keras](keras_flowsheet_optimization_src_doc.md), we will optimize hydrogen production while restricting nitrogen below 34 mol% in the product stream." + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "SurrType.PYSMO_RBF\n", - "2023-11-02 10:25:05 [INFO] idaes.core.surrogate.pysmo_surrogate: Decode surrogate. type=rbf\n" - ] + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "# Import additional Pyomo libraries\n", + "from pyomo.environ import Objective, maximize\n", + "\n", + "\n", + "def run_optimization(surrogate_type=None):\n", + " print(surrogate_type)\n", + " # create the IDAES model and flowsheet\n", + " m = ConcreteModel()\n", + " m.fs = FlowsheetBlock(dynamic=False)\n", + "\n", + " # create flowsheet input variables\n", + " m.fs.bypass_frac = Var(\n", + " initialize=0.80, bounds=[0.1, 0.8], doc=\"natural gas bypass fraction\"\n", + " )\n", + " m.fs.ng_steam_ratio = Var(\n", + " initialize=0.80, bounds=[0.8, 1.2], doc=\"natural gas to steam ratio\"\n", + " )\n", + "\n", + " # create flowsheet output variables\n", + " m.fs.steam_flowrate = Var(initialize=0.2, doc=\"steam flowrate\")\n", + " m.fs.reformer_duty = Var(initialize=10000, doc=\"reformer heat duty\")\n", + " m.fs.AR = Var(initialize=0, doc=\"AR fraction\")\n", + " m.fs.C2H6 = Var(initialize=0, doc=\"C2H6 fraction\")\n", + " m.fs.C3H8 = Var(initialize=0, doc=\"C3H8 fraction\")\n", + " m.fs.C4H10 = Var(initialize=0, doc=\"C4H10 fraction\")\n", + " m.fs.CH4 = Var(initialize=0, doc=\"CH4 fraction\")\n", + " m.fs.CO = Var(initialize=0, doc=\"CO fraction\")\n", + " m.fs.CO2 = Var(initialize=0, doc=\"CO2 fraction\")\n", + " m.fs.H2 = Var(initialize=0, doc=\"H2 fraction\")\n", + " m.fs.H2O = Var(initialize=0, doc=\"H2O fraction\")\n", + " m.fs.N2 = Var(initialize=0, doc=\"N2 fraction\")\n", + " m.fs.O2 = Var(initialize=0, doc=\"O2 fraction\")\n", + "\n", + " # create input and output variable object lists for flowsheet\n", + " inputs = [m.fs.bypass_frac, m.fs.ng_steam_ratio]\n", + " outputs = [\n", + " m.fs.steam_flowrate,\n", + " m.fs.reformer_duty,\n", + " m.fs.AR,\n", + " m.fs.C2H6,\n", + " m.fs.C3H8,\n", + " m.fs.C4H10,\n", + " m.fs.CH4,\n", + " m.fs.CO,\n", + " m.fs.CO2,\n", + " m.fs.H2,\n", + " m.fs.H2O,\n", + " m.fs.N2,\n", + " m.fs.O2,\n", + " ]\n", + "\n", + " # create the Pyomo/IDAES block that corresponds to the surrogate\n", + " # call correct PySMO object to use below (will let us avoid nested switches)\n", + "\n", + " # capture long output from loading surrogates (don't need to print it)\n", + " stream = StringIO()\n", + " oldstdout = sys.stdout\n", + " sys.stdout = stream\n", + "\n", + " if surrogate_type == SurrType.ALAMO:\n", + " surrogate = AlamoSurrogate.load_from_file(\"alamo_surrogate.json\")\n", + " m.fs.surrogate = SurrogateBlock()\n", + " m.fs.surrogate.build_model(surrogate, input_vars=inputs, output_vars=outputs)\n", + " elif surrogate_type == SurrType.KERAS:\n", + " keras_surrogate = KerasSurrogate.load_from_folder(keras_folder_name=\"keras_surrogate\", keras_model_name=\"keras_model\")\n", + " m.fs.surrogate = SurrogateBlock()\n", + " m.fs.surrogate.build_model(\n", + " keras_surrogate,\n", + " formulation=KerasSurrogate.Formulation.FULL_SPACE,\n", + " input_vars=inputs,\n", + " output_vars=outputs,\n", + " )\n", + " elif SurrType.is_pysmo(\n", + " surrogate_type\n", + " ): # surrogate is one of the three pysmo basis options\n", + " surrogate = PysmoSurrogate.load_from_file(\n", + " surrogate_type.value + \"_surrogate.json\"\n", + " )\n", + " m.fs.surrogate = SurrogateBlock()\n", + " m.fs.surrogate.build_model(surrogate, input_vars=inputs, output_vars=outputs)\n", + " else:\n", + " raise ValueError(f\"Unknown surrogate type: {surrogate_type}\")\n", + "\n", + " # revert to standard output\n", + " sys.stdout = oldstdout\n", + "\n", + " # unfix input values and add the objective/constraint to the model\n", + " m.fs.bypass_frac.unfix()\n", + " m.fs.ng_steam_ratio.unfix()\n", + " m.fs.obj = Objective(expr=m.fs.H2, sense=maximize)\n", + " m.fs.con = Constraint(expr=m.fs.N2 <= 0.34)\n", + "\n", + " solver = SolverFactory(\"ipopt\")\n", + " try: # attempt to solve problem\n", + " results = solver.solve(m, tee=True)\n", + " except: # retry solving one more time\n", + " results = solver.solve(m, tee=True)\n", + "\n", + " return inputs, outputs" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: \n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 39\n", - "Number of nonzeros in inequality constraint Jacobian.: 1\n", - "Number of nonzeros in Lagrangian Hessian.............: 3\n", - "\n", - "Total number of variables............................: 15\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 2\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 13\n", - "Total number of inequality constraints...............: 1\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 1\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 -0.0000000e+00 4.58e+01 2.28e-02 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 -2.2187269e-01 1.44e+01 1.33e-02 -1.7 6.80e+02 - 9.44e-01 1.00e+00h 1\n", - " 2 -3.1833654e-01 6.49e+02 1.65e-02 -2.5 6.42e+03 - 9.23e-01 1.00e+00h 1\n", - " 3 -3.2904216e-01 1.98e+03 3.27e-03 -2.5 1.61e+04 - 6.11e-01 5.97e-01h 1\n", - " 4 -3.2728772e-01 2.07e+02 3.54e-03 -2.5 8.41e+03 - 1.00e+00 1.00e+00h 1\n", - " 5 -3.2617335e-01 1.27e+01 3.00e-04 -2.5 7.83e+02 - 1.00e+00 1.00e+00h 1\n", - " 6 -3.2612431e-01 5.10e-03 1.28e-06 -2.5 4.03e+01 - 1.00e+00 1.00e+00h 1\n", - " 7 -3.3094622e-01 5.19e+01 4.80e-03 -3.8 3.78e+03 - 9.21e-01 1.00e+00h 1\n", - " 8 -3.3154557e-01 3.78e+00 1.51e-03 -3.8 1.17e+03 - 1.00e+00 9.89e-01h 1\n", - " 9 -3.3138015e-01 4.26e-01 1.61e-05 -3.8 3.24e+02 - 1.00e+00 1.00e+00f 1\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 10 -3.3138995e-01 5.21e-04 8.48e-08 -3.8 1.39e+01 - 1.00e+00 1.00e+00h 1\n", - " 11 -3.3167385e-01 1.35e-01 8.06e-04 -5.7 1.76e+02 - 1.00e+00 9.73e-01h 1\n", - " 12 -3.3168390e-01 1.87e-04 4.24e-08 -5.7 1.52e+01 - 1.00e+00 1.00e+00h 1\n", - " 13 -3.3168758e-01 3.70e-05 1.36e-09 -8.6 1.69e+00 - 1.00e+00 1.00e+00h 1\n", - " 14 -3.3168758e-01 8.00e-10 5.07e-14 -8.6 3.09e-03 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 14\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: -3.3168758389150360e-01 -3.3168758389150360e-01\n", - "Dual infeasibility......: 5.0701311326148040e-14 5.0701311326148040e-14\n", - "Constraint violation....: 2.9648061330219216e-12 8.0035533756017685e-10\n", - "Complementarity.........: 2.5059042476427779e-09 2.5059042476427779e-09\n", - "Overall NLP error.......: 2.5059042476427779e-09 2.5059042476427779e-09\n", - "\n", - "\n", - "Number of objective function evaluations = 15\n", - "Number of objective gradient evaluations = 15\n", - "Number of equality constraint evaluations = 15\n", - "Number of inequality constraint evaluations = 15\n", - "Number of equality constraint Jacobian evaluations = 15\n", - "Number of inequality constraint Jacobian evaluations = 15\n", - "Number of Lagrangian Hessian evaluations = 14\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.004\n", - "Total CPU secs in NLP function evaluations = 0.002\n", - "\n", - "EXIT: Optimal Solution Found.\n", - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b" - ] + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "# create list objects to store data, run optimization\n", + "results = {}\n", + "for trainer in trainers:\n", + " inputs, outputs = run_optimization(trainer)\n", + " for var in inputs:\n", + " results[(var.name, trainer)] = value(var)\n", + " for var in outputs:\n", + " results[(var.name, trainer)] = value(var)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "SurrType.PYSMO_PLY\n", - "2023-11-02 10:25:05 [INFO] idaes.core.surrogate.pysmo_surrogate: Decode surrogate. type=poly\n" - ] + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# print results as a table\n", + "df_index = []\n", + "for var in inputs:\n", + " df_index.append(var.name)\n", + "for var in outputs:\n", + " df_index.append(var.name)\n", + "df_cols = trainers\n", + "\n", + "df = pd.DataFrame(index=df_index, columns=df_cols)\n", + "for i in df_index:\n", + " for j in df_cols:\n", + " df[j][i] = results[(i, j)]\n", + "\n", + "df # display results table" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: \n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 39\n", - "Number of nonzeros in inequality constraint Jacobian.: 1\n", - "Number of nonzeros in Lagrangian Hessian.............: 3\n", - "\n", - "Total number of variables............................: 15\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 2\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 13\n", - "Total number of inequality constraints...............: 1\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 1\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 -0.0000000e+00 5.35e+01 3.24e-02 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 -2.2227750e-01 1.30e+01 1.45e-02 -1.7 6.89e+02 - 9.38e-01 1.00e+00h 1\n", - " 2 -3.1492876e-01 5.64e+02 3.41e-02 -2.5 6.01e+03 - 9.71e-01 1.00e+00h 1\n", - " 3 -3.2714017e-01 2.01e+03 1.99e-02 -2.5 1.39e+04 - 6.00e-01 7.01e-01h 1\n", - " 4 -3.2662426e-01 2.91e+02 5.57e-03 -2.5 7.48e+03 - 1.00e+00 1.00e+00h 1\n", - " 5 -3.2618524e-01 1.47e+01 1.24e-04 -2.5 4.56e+02 - 1.00e+00 1.00e+00h 1\n", - " 6 -3.2612971e-01 4.24e-02 9.16e-07 -2.5 8.41e+01 - 1.00e+00 1.00e+00h 1\n", - " 7 -3.3096494e-01 8.05e+01 4.63e-03 -3.8 3.74e+03 - 9.24e-01 1.00e+00h 1\n", - " 8 -3.3151074e-01 7.83e+00 1.23e-04 -3.8 1.13e+03 - 1.00e+00 1.00e+00h 1\n", - " 9 -3.3138534e-01 5.65e-01 1.09e-05 -3.8 2.55e+02 - 1.00e+00 1.00e+00h 1\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 10 -3.3139357e-01 1.08e-03 3.11e-08 -3.8 1.28e+01 - 1.00e+00 1.00e+00h 1\n", - " 11 -3.3167896e-01 1.27e-01 8.04e-04 -5.7 1.96e+02 - 1.00e+00 9.72e-01h 1\n", - " 12 -3.3168859e-01 1.17e-03 2.28e-08 -5.7 1.38e+01 - 1.00e+00 1.00e+00h 1\n", - " 13 -3.3169228e-01 3.87e-07 1.13e-09 -8.6 1.95e+00 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 13\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: -3.3169227859422723e-01 -3.3169227859422723e-01\n", - "Dual infeasibility......: 1.1339429495425323e-09 1.1339429495425323e-09\n", - "Constraint violation....: 1.4249529091406254e-09 3.8666985346935689e-07\n", - "Complementarity.........: 3.9898113808548269e-09 3.9898113808548269e-09\n", - "Overall NLP error.......: 3.9898113808548269e-09 3.8666985346935689e-07\n", - "\n", - "\n", - "Number of objective function evaluations = 14\n", - "Number of objective gradient evaluations = 14\n", - "Number of equality constraint evaluations = 14\n", - "Number of inequality constraint evaluations = 14\n", - "Number of equality constraint Jacobian evaluations = 14\n", - "Number of inequality constraint Jacobian evaluations = 14\n", - "Number of Lagrangian Hessian evaluations = 13\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.002\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n", - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b" - ] + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } - ], - "source": [ - "# create list objects to store data, run optimization\n", - "results = {}\n", - "for trainer in trainers:\n", - " inputs, outputs = run_optimization(trainer)\n", - " for var in inputs:\n", - " results[(var.name, trainer)] = value(var)\n", - " for var in outputs:\n", - " results[(var.name, trainer)] = value(var)" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
SurrType.PYSMO_KRGSurrType.PYSMO_RBFSurrType.PYSMO_PLY
fs.bypass_frac0.10.10.1
fs.ng_steam_ratio1.1246241.1243051.126451
fs.steam_flowrate1.2265391.2261531.228592
fs.reformer_duty39082.34592539062.17708939131.26643
fs.AR0.0041070.0041070.004107
fs.C2H60.0005180.0005450.000519
fs.C3H80.0001150.0001190.000114
fs.C4H100.0000650.0000680.000065
fs.CH40.0161930.0169910.0162
fs.CO0.1048370.1048560.104419
fs.CO20.0535350.0535280.053561
fs.H20.331690.3316880.331692
fs.H2O0.1489510.1489180.149056
fs.N20.340.340.34
fs.O20.00.0-0.0
\n", - "
" - ], - "text/plain": [ - " SurrType.PYSMO_KRG SurrType.PYSMO_RBF SurrType.PYSMO_PLY\n", - "fs.bypass_frac 0.1 0.1 0.1\n", - "fs.ng_steam_ratio 1.124624 1.124305 1.126451\n", - "fs.steam_flowrate 1.226539 1.226153 1.228592\n", - "fs.reformer_duty 39082.345925 39062.177089 39131.26643\n", - "fs.AR 0.004107 0.004107 0.004107\n", - "fs.C2H6 0.000518 0.000545 0.000519\n", - "fs.C3H8 0.000115 0.000119 0.000114\n", - "fs.C4H10 0.000065 0.000068 0.000065\n", - "fs.CH4 0.016193 0.016991 0.0162\n", - "fs.CO 0.104837 0.104856 0.104419\n", - "fs.CO2 0.053535 0.053528 0.053561\n", - "fs.H2 0.33169 0.331688 0.331692\n", - "fs.H2O 0.148951 0.148918 0.149056\n", - "fs.N2 0.34 0.34 0.34\n", - "fs.O2 0.0 0.0 -0.0" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.16" } - ], - "source": [ - "# print results as a table\n", - "df_index = []\n", - "for var in inputs:\n", - " df_index.append(var.name)\n", - "for var in outputs:\n", - " df_index.append(var.name)\n", - "df_cols = trainers\n", - "\n", - "df = pd.DataFrame(index=df_index, columns=df_cols)\n", - "for i in df_index:\n", - " for j in df_cols:\n", - " df[j][i] = results[(i, j)]\n", - "\n", - "df # display results table" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.5" - } - }, - "nbformat": 4, - "nbformat_minor": 3 -} + "nbformat": 4, + "nbformat_minor": 3 +} \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/surrogates/best_practices_optimization_test.ipynb b/idaes_examples/notebooks/docs/surrogates/best_practices_optimization_test.ipynb index 90a84df6..e8a1a7c0 100644 --- a/idaes_examples/notebooks/docs/surrogates/best_practices_optimization_test.ipynb +++ b/idaes_examples/notebooks/docs/surrogates/best_practices_optimization_test.ipynb @@ -223,7 +223,7 @@ " m.fs.surrogate = SurrogateBlock()\n", " m.fs.surrogate.build_model(surrogate, input_vars=inputs, output_vars=outputs)\n", " elif surrogate_type == SurrType.KERAS:\n", - " keras_surrogate = KerasSurrogate.load_from_folder(\"keras_surrogate\")\n", + " keras_surrogate = KerasSurrogate.load_from_folder(keras_folder_name=\"keras_surrogate\", keras_model_name=\"keras_model\")\n", " m.fs.surrogate = SurrogateBlock()\n", " m.fs.surrogate.build_model(\n", " keras_surrogate,\n", @@ -531,7 +531,7 @@ " m.fs.surrogate = SurrogateBlock()\n", " m.fs.surrogate.build_model(surrogate, input_vars=inputs, output_vars=outputs)\n", " elif surrogate_type == SurrType.KERAS:\n", - " keras_surrogate = KerasSurrogate.load_from_folder(\"keras_surrogate\")\n", + " keras_surrogate = KerasSurrogate.load_from_folder(keras_folder_name=\"keras_surrogate\", keras_model_name=\"keras_model\")\n", " m.fs.surrogate = SurrogateBlock()\n", " m.fs.surrogate.build_model(\n", " keras_surrogate,\n", @@ -635,4 +635,4 @@ }, "nbformat": 4, "nbformat_minor": 3 -} +} \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/surrogates/best_practices_optimization_usr.ipynb b/idaes_examples/notebooks/docs/surrogates/best_practices_optimization_usr.ipynb index 174e9648..ce8cfb48 100644 --- a/idaes_examples/notebooks/docs/surrogates/best_practices_optimization_usr.ipynb +++ b/idaes_examples/notebooks/docs/surrogates/best_practices_optimization_usr.ipynb @@ -223,7 +223,7 @@ " m.fs.surrogate = SurrogateBlock()\n", " m.fs.surrogate.build_model(surrogate, input_vars=inputs, output_vars=outputs)\n", " elif surrogate_type == SurrType.KERAS:\n", - " keras_surrogate = KerasSurrogate.load_from_folder(\"keras_surrogate\")\n", + " keras_surrogate = KerasSurrogate.load_from_folder(keras_folder_name=\"keras_surrogate\", keras_model_name=\"keras_model\")\n", " m.fs.surrogate = SurrogateBlock()\n", " m.fs.surrogate.build_model(\n", " keras_surrogate,\n", @@ -531,7 +531,7 @@ " m.fs.surrogate = SurrogateBlock()\n", " m.fs.surrogate.build_model(surrogate, input_vars=inputs, output_vars=outputs)\n", " elif surrogate_type == SurrType.KERAS:\n", - " keras_surrogate = KerasSurrogate.load_from_folder(\"keras_surrogate\")\n", + " keras_surrogate = KerasSurrogate.load_from_folder(keras_folder_name=\"keras_surrogate\", keras_model_name=\"keras_model\")\n", " m.fs.surrogate = SurrogateBlock()\n", " m.fs.surrogate.build_model(\n", " keras_surrogate,\n", @@ -635,4 +635,4 @@ }, "nbformat": 4, "nbformat_minor": 3 -} +} \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/surrogates/keras_surrogate/keras_model.keras b/idaes_examples/notebooks/docs/surrogates/keras_surrogate/keras_model.keras new file mode 100644 index 00000000..15c3cfb5 Binary files /dev/null and b/idaes_examples/notebooks/docs/surrogates/keras_surrogate/keras_model.keras differ diff --git a/idaes_examples/notebooks/docs/surrogates/keras_surrogate/variables/variables.data-00000-of-00001 b/idaes_examples/notebooks/docs/surrogates/keras_surrogate/variables/variables.data-00000-of-00001 deleted file mode 100644 index 29d80d2b..00000000 Binary files a/idaes_examples/notebooks/docs/surrogates/keras_surrogate/variables/variables.data-00000-of-00001 and /dev/null differ diff --git a/idaes_examples/notebooks/docs/surrogates/keras_surrogate/variables/variables.index b/idaes_examples/notebooks/docs/surrogates/keras_surrogate/variables/variables.index deleted file mode 100644 index 7cb3e1df..00000000 Binary files a/idaes_examples/notebooks/docs/surrogates/keras_surrogate/variables/variables.index and /dev/null differ diff --git a/idaes_examples/notebooks/docs/surrogates/omlt/.mdl_wts.keras b/idaes_examples/notebooks/docs/surrogates/omlt/.mdl_wts.keras new file mode 100644 index 00000000..55b0068b Binary files /dev/null and b/idaes_examples/notebooks/docs/surrogates/omlt/.mdl_wts.keras differ diff --git a/idaes_examples/notebooks/docs/surrogates/omlt/keras_flowsheet_optimization.ipynb b/idaes_examples/notebooks/docs/surrogates/omlt/keras_flowsheet_optimization.ipynb index 955e84d1..16436978 100644 --- a/idaes_examples/notebooks/docs/surrogates/omlt/keras_flowsheet_optimization.ipynb +++ b/idaes_examples/notebooks/docs/surrogates/omlt/keras_flowsheet_optimization.ipynb @@ -250,7 +250,7 @@ "# Train surrogate (calls optimizer on neural network and solves for weights)\n", "model.compile(loss=loss, optimizer=optimizer, metrics=metrics)\n", "mcp_save = tf.keras.callbacks.ModelCheckpoint(\n", - " \".mdl_wts.hdf5\", save_best_only=True, monitor=\"val_loss\", mode=\"min\"\n", + " \".mdl_wts.keras\", save_best_only=True, monitor=\"val_loss\", mode=\"min\"\n", ")\n", "history = model.fit(\n", " x=x, y=y, validation_split=0.2, verbose=1, epochs=1000, callbacks=[mcp_save]\n", @@ -268,7 +268,7 @@ " input_scaler=input_scaler,\n", " output_scaler=output_scaler,\n", ")\n", - "keras_surrogate.save_to_folder(\"keras_surrogate\")\n", + "keras_surrogate.save_to_folder(keras_folder_name=\"keras_surrogate\", keras_model_name=\"keras_model\")\n", "\n", "# revert back to normal output capture\n", "sys.stdout = oldstdout\n", @@ -411,7 +411,7 @@ "\n", "# create the Pyomo/IDAES block that corresponds to the surrogate\n", "# Keras\n", - "keras_surrogate = KerasSurrogate.load_from_folder(\"keras_surrogate\")\n", + "keras_surrogate = KerasSurrogate.load_from_folder(keras_folder_name=\"keras_surrogate\", keras_model_name=\"keras_model\")\n", "m.fs.surrogate = SurrogateBlock()\n", "m.fs.surrogate.build_model(\n", " keras_surrogate,\n", @@ -523,4 +523,4 @@ }, "nbformat": 4, "nbformat_minor": 4 -} \ No newline at end of file +} diff --git a/idaes_examples/notebooks/docs/surrogates/omlt/keras_flowsheet_optimization_doc.ipynb b/idaes_examples/notebooks/docs/surrogates/omlt/keras_flowsheet_optimization_doc.ipynb index 9fd28b4c..603e227a 100644 --- a/idaes_examples/notebooks/docs/surrogates/omlt/keras_flowsheet_optimization_doc.ipynb +++ b/idaes_examples/notebooks/docs/surrogates/omlt/keras_flowsheet_optimization_doc.ipynb @@ -1,2919 +1,526 @@ { - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "tags": [ - "header", - "hide-cell" - ] - }, - "outputs": [], - "source": [ - "###############################################################################\n", - "# The Institute for the Design of Advanced Energy Systems Integrated Platform\n", - "# Framework (IDAES IP) was produced under the DOE Institute for the\n", - "# Design of Advanced Energy Systems (IDAES).\n", - "#\n", - "# Copyright (c) 2018-2023 by the software owners: The Regents of the\n", - "# University of California, through Lawrence Berkeley National Laboratory,\n", - "# National Technology & Engineering Solutions of Sandia, LLC, Carnegie Mellon\n", - "# University, West Virginia University Research Corporation, et al.\n", - "# All rights reserved. Please see the files COPYRIGHT.md and LICENSE.md\n", - "# for full copyright and license information.\n", - "###############################################################################" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Autothermal Reformer Flowsheet Optimization with OMLT (TensorFlow Keras) Surrogate Object\n", - "Maintainer: Brandon Paul \n", - "Author: Brandon Paul \n", - "Updated: 2023-06-01 \n", - "## 1. Introduction\n", - "\n", - "This example demonstrates autothermal reformer optimization leveraging the OMLT package utilizing TensorFlow Keras neural networks. In this notebook, sampled simulation data will be used to train and validate a surrogate model. IDAES surrogate plotting tools will be utilized to visualize the surrogates on training and validation data. Once validated, integration of the surrogate into an IDAES flowsheet will be demonstrated." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 2. Problem Statement \n", - "\n", - "Within the context of a larger NGFC system, the autothermal reformer generates syngas from air, steam and natural gas for use in a solid-oxide fuel cell (SOFC).\n", - "\n", - "## 2.1. Main Inputs: \n", - "- Bypass fraction (dimensionless) - split fraction of natural gas to bypass AR unit and feed directly to the power island\n", - "- NG-Steam Ratio (dimensionless) - proportion of natural relative to steam fed into AR unit operation\n", - "\n", - "## 2.2. Main Outputs:\n", - "- Steam flowrate (kg/s) - inlet steam fed to AR unit\n", - "- Reformer duty (kW) - required energy input to AR unit\n", - "- Composition (dimensionless) - outlet mole fractions of components (Ar, C2H6, C3H8, C4H10, CH4, CO, CO2, H2, H2O, N2, O2)" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABYUAAALDCAYAAABKE28mAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAP+lSURBVHhe7N0PnCP3Xd9/FSj/C6UFOgX6o9seLVeu4IVCV4ADVnDCCUyIwpF6Hz3gEEe4iBAc5RKc7TVko4cDG+Ugl60dnGVNnGixnWgTX9DZONEWc44u+IKuiZ09kgs6EmM24QKiPhzFPcPn9/2M5qsdSTPSSPtP2n098/jmVtrvzHy/35nVWu/96jsxAQAAAAAAAADsGYTCAAAAAAAAALCHEAoDAAAAAAAAwB5CKAwAAAAAAAAAewihMAAAAAAAAADsIYTCAAAAAAAAALCHEAoDAAAAAAAAwB5CKAwAAAAAAAAAewihMAAAAAAAAADsIYTCAAAAAAAAALCHEAoDAAAAAAAAwB5CKAwAAAAAAAAAewihMAAAAAAAAADsIYTCAAAAAAAAALCHEAoDwG71sYdk8nt+R2I9yztk4dNe/bH0tKzeX5T5j3oPR9nnHpf8mx+VNe9hoM8+IqnA87Qkhc96dbA3bcu1cUUKLws6xmAlfvguSby0KDN3PCzFj31GGs96ux9RjScvSuGOoqRuXhDH14+JF5l+vPK9Mn9/VaqfHfFOYDRdeF/bz8Zml9T9V7wDYfe7KLmAa0BL7oJXBQCAAREKA8AuVXlz8JuHzpK450lvizHz2ccl/9JmH0b6DdGzT7nBdeJ609aXPUIojOGMUSjcVa6/S7L316Q+arnqs3Upv+mutiA4rEwu1ryNgAEQCmPTEAoDADYfoTAA7EbPfERmNIQMePPQVW56SKreZmNBQ9Z33SsTvj6M7Buiz1Zl5mbfWBMKY1jjHAp7Jf66R6U2MsHw01J5812B7Qwqmfc/5W0HDIBQGJuGUBgAsPkIhQFgF2p88L2BbxyCy4LkP+ZtOOLqH39Esv6Q1Ssj94bo2StSfttSW3DtFkJhDGsXhMJa4m++KA3vaDvq0w9LMqB9weUuWbjsbQcMglAYm4ZQGACw+QiFAWDXeUpKrwl+4xBWJt92ydt2lI3PG6K1+5cC20kojKHtklBYA9b8x73D7aD6++8NaFtYea+Un/E2BAZBKIxNQygMANh8hMIAsNvUH5V0wJuG2PfcK7k3vyPgeVOuf59URv4+SoTC2MN2OhR+80WvTm+Np67I6sMPSLLH8jXO3Ed2fLZwdXEhsG2x65dk4WO+pSKeeVrqn74ide8hMJDQUJjXdAyKUBgAsPkIhQFgl6k/GDID7tWPSr3HR6ZnPjTqU+EIhbGHjUko3PLkIzIdGgzv/Mzb0BtxvulxrwawCQiFsWkIhQEAm49QGAB2lfBQJ/2gznV7UhZ+Lvj7sTfs/Oy93giFsYeNWyhsVN8WMhtX1zHf4SUkQkPhIfoJhCIUxqYhFAYAbD5CYQDYTUJnAt8rRe/zz7V3hSwhYeqURvoG+1vwhqj+KSnfX5bsK++SxMH2fcYPv0Myb3pYih/7jDQGXFpjy0PhZz4jlfvfJ+nDC+s3s7t+QRIvLUr+/ouyNvRSIM9K/XJVFt5wryRuXhDH14aNjEdPz9al8vaiJL3xdw7eJek3PCzlJwecSvrsU1J98AHJvNQ3Js81Y/LK90nhQo82m2ugZI6f8vVX25A68UDv7Xp59hlZu/CIzOs4+s+Rb/+Jw/dK9u2PSPlyxB+6MQyF5Xz4eqrRf2a35prc9FB4i15L+ml88lHJvXL9Govra8CDNakPeJzGk483x9jX9v03m3a/vSqrYTvzrvOc6XP8uf7+mmv7XT2262uMX4c67aVQWF9L3/U+8xrc/TOgJX5YX1ffJwvm+lzbzE8K1GtSvMO8hr9o/VgTLzLn782PSCX0/DWvsfkT7+i+5u/otd0wnnV/TvLmWEE/J7XI/921Of8N1HjyohR0vDp+N+2/Wa/5shQ+9KmBXz8AAOOLUBgAdpHQwFeXjvDq9LrrfnM2cUQbCqmivrkJr9ez9At2Pvu4zL/mrrawoWd57pLkP9T7hj6hQXDP0jFWfcf0Wak9WJREj/Va3XL9XZJ98El3l1E1PvmIZG8O2FdAcW6+VxY+Gu2dbHD45vXn2c9I4Zag72u5S+Y/GWEfRv2jZUn53mwHlYmXlqXqb7KGyG9f6gpsO4tz8/uk/Dlvmwjq5x/o25bO4txclMInn/b2EGIcQ+EeN9mKEmJs7jU55GtJv/HdgteSlrBz7p2LhhnfeND3tbyu2vzkR599yLNPSjHXp/1BryeffjTSuUm/61MDfQJllF+HhrLNoXDN/B4KPZc/97DUeoR91cW7grczxXmN778hOj39KSn0u4YCSuptj/cJH0N+Zu0fVyO+hqfefqn9OE9dkvmXBtf1l8SbPtI3HA37vd96fYt4rK42BtpgKPy5xyUfoS1uMa9TuYcH+28IAMB4IhQGgF2jJvmbAv7j3pT2sLfHEhL+8LifMQ2Fa++PEKqGlIlXPyyrIdndlofCTz4llTsGe+M9ff9nvB33pmMSGi71KMnFS30Dn/Aw5mnzvfAQInbTQ1Ltuw/T9tK9fUOBVnnR+6Si5+/Zz0jx1QHfDyt2u56eltV7egQyfctd5trvcZAxDIUbH3xv8L5M6RdibP41ufmh8Fa9lrT0CnR7rtn8O5J5vxeW9trH02ZMIgawWuzrSePCAwP1e7e8Dg1l22cK16X0mqDjNUvynpCg73L4H4tjN/V4/fvcR2TGN0N30OLc8kiPoDrkZ1ZD4QFfw+PmenevkSfPSXqAP9q1tgvRMxQe8FgTrz7XM7TfSCjc+NhDPW/+GVbir3u0T5sAAOOOUBgAdgvzH/2TAf9R7186wgpfQmKAN6pjGAr3nEUVsTg3PxD4BnlrQ+G7ZPqWHsFFaHmHLFz29h1io2OSfHut55vmsDBm/p739jxu8l3r4UXoPu7vMVMypMTv+IiUe4VAIcWZ673mduP8+0J+/gYo179XymHhy9iFws9IeS5gP25ZkmKP2ddbc00O+VoSMr5b+VrSEnbO3/Rw+B/2tOh1ZD/9HrqPR3rMjg0p15uxON87jA4u5nXo0157QozD69BQdmL5iKcfl5mQPxC7x+3sks6UDvu57/XHqp7bRS+hQXVoKFyWwsCv4aYfH/yI5IYIsHvdhDc0FH7YtH2IYw0VkpvSKxTu+YmCCCX+umrvZa8AAGONUBgAdonQmzoFzf4NDZgGeBO8oZAq6pubIYOcgABro2+M/CXojdvWhsLDl55h5pObcTzzZvuj4W+ag8OYfqX9DxnD7WOzS/cfV1qevRQ6S3/Q0prh2WlDP29RbV4o3PPnTT/G7tXrsmXX5JCvJQHju9WvJS1Dvh5Mvu2StwNjC15Thiltbeo0Jq9DQwkNhTdehg4CX9Z+zdWWw393xe8In4Vdf/DewG0GLqGzsYf9md3k0uMTVGG/950hP0GgZboUtrzMEKFwzz8QRC/hbQIAjDtCYQDYDZ41bxZC3oQErxPcI/w53COw8RunUPgZs58eb4ziryxL6XJ9/cZFT1+R1Yd7rw2bWm7/SPR2hcKJ3MNS+fTTvrZ+Rsp3vCN8ttv1D4S84a6Hf/xW1xB910WpPe0d5NmnpXbhYcmEzXzqEfINFcZ0vAnvtw9dk3fBd1O4xudqshBlFuSL/Ns9K41PV2Wmx8fpsx8MDp3q7w8JR65/h+Q+5L8hljnGZz8lpV7nKyx8HflQ2PSt/pTUP12T4tvv7bm8QOb9YRHLVl6TQ76WdI7vNryWtAwV6C5I/mPe9irCPlJvq8rq57xrW8f14fdGCr2Td/i2e6Yu1Xf1WMol9PfK+LwODWWHQmGdqV+9I3w2beua++y58JnfPdcgDl+uKv66R6Rqrwv1TJ/zFvoa1v9n1v4+dD37jNQ/9nCkmezx1/m302v+fT1es3wz7ztE+b3f9vPl/p55XOZf2WOms3+mf5vw8Qi7FkInC5jS/nNvxu5yVXLp4LrhbQIAjDtCYQDYBRofCvsI7L1SCpl4GP5mZkHyH/cq9bItobDfMNs09XrjNr3cY2b0U4+HfwS0x5uk0OPZG+SE6RPg9Gpr+E2CQs7Hx8OWG+nxcWFdgzRkPMLOQb8wxg0Q/HfYeeZpqXeMa899hK33W39U0kH1bRliu9T9QbOlngpZw3NBZs6HjGOvICzsGtnpUHiTSs+Zsdt0TarQa6pP+L2tryX9At2gPzrUO8ap32tKyHq/vcIkLYNvZ37evDptxuh1aCg7Fgobz/a4f4AuBfJkj/WH3e97+wkSdt46ZiG3CV3iKqwv4b/ztYSt99tvBvPg24W/xvYOhXtcw9J7LevgP+YP+N9ATz0qmYC6WkLX+e5x08Xg338AgHFHKAwAY6/H2p297hjeIyzo+VFfa0Mh1YBvblzDbKPCZzRNvunxnutQunrc0Cn4jdsWhcI9Z20ZoR/BDg75q4vB4U2/cx/2BwgnJEzrGcb0ChB8wvfRMSuyTV2KPWYLZz8Y9mbdvCl+SfA2oYHhs09L/bOfksrDj8j8He+V9OG7ZH+vnz2jthyyrvduDoX73LBvu65JNVwovM2vJT0D3V5/dPDptY9eM2E/+kD4bPZer0XnB1tDd5xeh4ayk6Gw6nHNOc81JeB5LVFuDth46impfexxKb7rAZk58Q5JvOiuHq/HxrOPy0zAsbQMHArrkhNh5+xz52Q6aBst+geYsB+bHsuYhI11r1A4fK1kT6/QPvD3x2D/DRT6CZZ+M+A/HXLTwX7//QIAGEuEwgAw7p75iGSD/gPelND1SV09AqBeb7iscQmFLz8siYBtotz8yAqd/RYS/G1FKNx/ls4g4xMWfEaYJR72xj5kXcheYUzP8+YTuo/r3yeVHtdp+LGH3K5nYDiYga+RMQ+FE7lHZLVnhrl916Qa6hxv92tJr0A3akAz7GtKr+3ClrtQA12n4/U6NJSdDoWNQW/i59xybovCv0F/h4fX7/UHn17bxd70uFcnyOD/jREeCkdbbiE0uA38HTVY+ypvCq7b+78LVdjPZfgnzwAA44tQGADGXPhHHvv/B3yvWS5933BuKKQa/M3XcNuYPpZC+viSR0LXn+xi3tgHv6kO/kj05ofCEUKSQcYndMZWlHM32BvGYYNZv9B99BnPTd9uo6Gwri974VFZeMO9Eg9bY3Y3hcLPXZD0mx+RypMR0pFtvCbVMOd4219Lhg1m/Xrso+dr/KZvF3Aex+x1aCihofBm/tz202OZiM7SaybtMHSt2k/XpHT/A5JJL4SG08HXVPjvtN5/JN387cKu+dDf9VGD9dBZzUHXxyDtC/v56PPz6wkOlKP8dwgAYNwQCgPAWOuxNmmfj6+7erzxd+Y+0vvj0IO8+e8y+Juv4bYRqd4RvM1AAd+Afd38UHiTx7THeR++3CULl739+wwbzPoNG9KGbtdzttjwx2ujN1fyPlqdfeVd4SFwZ9kVofBdkn3wyf7LKfht4zWphjnH2/5a0mNMogQ7rmGvm9Dt3tF7rdlN6t/wZeteh4YyEqGw8fTjMtPjBonN0msN3CiaN9J0l9F5U1FSN4eHwJ0l+Hoe7nd+r+1mzntVAg1+vNDf9ZFfE3oc86NelZZB2hdedyMl7GarAIDxRSgMAOOsx5vq/h8RVL1CoD4ffxw2bHAN/uZruG02KeALPXZwX/dmKBx8HkLHP8ofLTzDnsPt3k6evSKVPjPi+pZRDYXb+q43NLsiqw8/IKkeYffEqx/us2SEzzZek2qYczz0ddFmgNeS0DEZYMbesNfNdmy3jec89NwN8Do0lFEJhY2GaUs8sC3NEnYDtn7ql6u9P/0QoQT/nA73O387t9vSULjrmJtTdyOFm80BwO5DKAwAY6z2rpCbVW1S6RksDxsauIZ50zbMNjsQ5BiEwus2Y/yH3cd2blc/3zsgjVzGIhT2efpTstDjhn6xF71Xyp/z6vayjdekGuYcb8a1PNBryWac82H3sR3bbeM535xzN4QRCoWl/qhkQm46p2XgtYTNz34hd9fwfwDzleCf0+F+52/ndoTCAIBxRygMAGOrx52rN6v0ukv1hgKLYd60DbONSO2euwK3GSgM6NHXYkDgRSi8bjPCmGH3sV3b9ZuBp2X/zXdJ+g0PyMKDj0v1009LbXnAa2RD10ZUQ4TC6mlz7b0oYBtbXvQ+qfSbMbyN16Qa5trY9teSzTjnw+5jO7YLrbuxslWvQ0MZmVD4ihR7/fHGK9P3R1yr+tnPSKHf/p67IImXFmXm7Y9I6cKnZO3pxwf8HT7c7/zt3C70d/0b+iy/1RJ2zKBPAwzSvvC6GymEwgCw+xAKA8C4Cr0T/maWe6UYlgpvJLB45iOSDdy215u24d7obenNoa5/IPBO9yMfCoeO/+bfdGkzwpjtCnetgbYzYzkTMvsu/sqylC5fkUbAmA58jWzo2ohqyFBYmdejZNB2Xuk7C3Ebr0k1zLWx7a8lm3HOh93Hdmw3Zq9DQxmRULhmXm+izeg17eq1ZrQn9FNK179DZu6/KLWngtaeGvR3+HC/87dzu9DX8cMPR3tN2LIbzT0pC4eD6vZZExwAsOcQCgPAmKouLgT8B//ml+S7Qt5BhL75j/Cmo0egHf6mrSb5kBvl9Hyj9/GHZDJgG23nwqe9On1U3xYy1iHrUdbff29w/VEJhUPfMIbfmGtYmxHGbEu46zPIdqHnutcse6O2HBKqjGsobPQLnnrPQty+a1INdW1s92vJZpzzYfexLduN1+vQUEYhFH4y7JyElBc9JNWeoXzY7+IFyX/MqxLk2cdlpmubZgn+HT7GoXDE14TGB98bsK0pgX9wHqR9z0j5DcF1uVkcAMCPUBgAxtGzl0ID0k0vPxcy4yX0zX+/O3ybt5T3hK+FHP6mLTyw6vlGr8dYTb7p8f4f8TRvqKdDZoKGrrkcFgSMTCgcHpLEFyPPeYxkM8KYYfexHduF1e39MdvwN+zjHAqL1KX0moBtbbnetLXHH4zCxnKzr0k11LWx3a8lm3HOh93HNm23Xed8qPO9GXY6FH52uGWm4ndcCr+eQ8/x+6TiVQk08B+DxzkUjvKaUJfiq4O3DV5+YrD2hbXN2eqbKwIAxgqhMACMo7CPIJvS8+ZwoXqEVKGztsLfoDi3PCK1kJlGjY89JMkeN7sJf9MWHlj1C6GriyFrgZoyvdwjpXrq8fC1Um8yb4DDJtyEBQH9Pma+oRBosDeMjQ+9N+QausvUD18AVgP9iRfdJYlXvlfyulbkhy7K6mefClwiQW1GGDPsPrZju9C6Lwv/Gaif77EG8ViHwsbTH5Fsz5tZ9Xht2KZrUg17bWzra8lmnPNh97FN243T69BQdjQUfkaqd4Rdrzq+nwr/ee81/qHneMH8Lg7Z5tkne65BHPx7f/vC3abBt+sVCmsJ/3TEs+668oP9d9yA7ft0+JI+vT61obOXJw6any1dD/qOh6X4IV0H/ympM8EYAHYlQmEAGDvPSHku+D/0dQ3g0jCZsBH6MUZTJgNnbX1GCi8Jrq8l/rqHpfLp9TeIjc99SkpvW5KJgLr+Ev6mLTywagVNzz4j9U/XpPzJjnkwfe663lz7tb4eKDx9RVYffkBSzw2uryXz/h5zbUKDAPNG+7x3gvQYH7rUHpBtKAQa8A1jnxlkqbdVZfVz6+8C3fN3xztC38Q6ITfW2YwwZth9bMd21TsC6nkl/rpHpGrH0L02L8pCv7v1j3sobOhrSa8+TpdCZlFv0zWphr4ut/O1ZDPO+bD72K7txuh1aCg7GAr3ugFmaxZrr6Ul9I8VQRlv6Dq4plz/Dsl96DMDXf9agn/vj38orCWR8/+30LPS6Pd7IPQPzoO272kJ/2N/Z7uMpz8jlXcVw/9gqZ8a8//3CgBgVyAUBoBx0+PGVmFr3EbSa783Ba8xuBXrGoe/aXuq90fT/SXgjb7eJKpnGDdA6fvxy9C1RztLRzCwoRBo8De0jfPvi9jOfuUdoWuAbkYYsx3hrt8g2/X6Y8pQJewGRZsREPa1OaFwvzAidv29Ugr5AdqOa1Jt5LrctteSzTjn2xXuWkNsNy6vQ0MJDYU3q4SM69Pm90HYzPTr3ytlXxbYay3w4JA9bC3o4UvwOrfbF+42Db5dlFB40BL+B+ch+jXoetI9SvaDQX8hAACMO0JhABgzvUKo4ZaOsHrNQA65gUxoANC/OCEBdK83bbV7wj+63VYCg5anpXJHn1maEUqvj7+3hN5Vv7OYcf24t43aUAg0zBthMyZvjjimPUqvj6JuRhizHeGu30DbPVuTfFj40qcE/wy8TypB19eGro2oNisUNvotIxEahm79Nak2dl1u02vJZpzzYfexrduNx+vQUHYkFO79R5mu0PHZz/Rc2iFoZr/eYHOo69+8JgRtl1oOOndjHAqH9LNfiZvrMezTDcP2q98NQKOU3u0CAIwzQmEAGCu9ZssOv3SE1Qhd39G8wZkL/ljuMG844q97VCrLwW+mer5p67FGXlsJvaHb07J6f4+PR/Yp2u5oH5/sFbC3l7b+bigEGvKN8LNPbSjgmr7nUz3fLG5GGLMt4a7PoNs1LjwgiR4BaHe5SzLv/4w747T7e4P+ASbKtRHVJobCRr9lJEJnnm3xNak2fl1uw2vJZpzzbQ13jWG3G4PXoaHsQCjcK7AN/WNMj5sgBt4g8tnPhN8kLaQ46Yek+vQlyQUd59VB7RrjUNj8N8jq+cF+L/R/TRi2X8+a/067t+/SXWElbv7brx7pv3sAAOOIUBgAxkn9UUkH/Ee7W/otaRBFryUk9COngevcmWZ98H3R3vxcf5dk76+5bzDC3kz1fnMjUitFeXPzvt53Qf/sRVl4wzsiv0lyDi5J/kMh66CG0Y/v3hy8P39J3e/b74ZCoGHfMKpnZe1DD8j0weDtg4pzc1EKH+//V4jNCGO2K9y1htmu8clHJBNhxrA7bp/0wtCQZUYm33ap+X2/zQgI+9rcULjfjMXOj7G327prUm1aSLiVryWbcc63O9zdUJtH+3VoKNsdCvcJd4s9zkHPP/AG3Tjz2bpUeqzv7C+ptz3uBYthf9i+V4pd/wGzfeFu0+Db9QqF3T9Mf/pRyfb77wDffxf1tpHf8ea/0z7+iGR7rN/dVZ47xH/3AADGDqEwAIyR+oP3Bv/HuykbWzpiXeibZ1OC1/3zPHtFKvc/IJmX3iVx301l9A7xqRPvk4WHP9X2pmfYUNj12YtSuKMoKX8Id/2CJA6/QzJ3PCLlyxHH4pnPSPXBh2XmxDsk0RHoxXVfb3q4/aZRg3r2Kak9/LBkX3mX7Pe9Ubd3zV94sCZr/iHdUKCysTeMrmefkbWPPSoLbzJje7i9zc3xvVeybx9gfI3NCGOG3cd2b+c/3wlfsOUc1J+BB6RwoeMN9rPmnAUGOAEByWYEhH1tdihs9FlGonXDqzBbcE2qzbgu22zFa8lmnPPtDnc3o80j+jo0lO0MhfssAxG8RIPfFSn22D55T+d0YY/9fXx4oe2PI3E9T++qSq3jNIX97u/+Y9j2hbtNg2/XNxRWIf8doOOTu//xrvEJtwm/4+VZqV9+XApvf6+kzc+W/7/VtNjXquLHfDcLBADsaoTCAAAAAAAMIFIoDADACCMUBgAAAABgAITCAIBxRygMAAAAAMAACIUBAOOOUBgAAAAAgAEQCgMAxh2hMAAAAAAAAyAUBgCMO0JhAAAAAAAGQCgMABh3hMIAAAAAAAyAUBgAMO4IhQEAAAAAGAChMABg3BEKAwAAAAAwAEJhAMC4IxQGAAAAAAAAgD2EUBgAAAAAAAAA9hBCYQAAAAAAAADYQwiFAQAAAAAAAGAPIRQGAAAAAAAAgD2EUBgAAAAAAAAA9hBCYQAAAAAAAADYQwiFAQAAAAAAAGAPIRQGAAAAAAAAgD2EUBgAAAAAAAAA9hBCYQAAAAAAAADYQwiFAQAAAAAAAGAPIRQGAAAAAAAAgD2EUBgAAAAAAAAA9hBCYQAAAAAAAADYQwiFAQAAAAAAAGAPIRQGAAAAAAAAgD2EUBgAAAAAAAAA9hBCYQAAAAAAAADYQwiFAQAAAAAAAGAPIRQGAAAAAAAAgD2EUBgAAAAAAAAA9hBCYQAAAAAAAADYQwiFAQAAAAAAAGAPIRQGAAAAAAAAgD2EUBgAAAAAAAAA9hBCYQAAAAAAAADYQwiFAQAAsLXO5SQWiwWUCYkfysj8mZo0vKqDq8vqUlbmz3sP0cfmj9faUsqcy5xUvMcAAAAYfYTCAAAA2FpeKDx5eEbyc/n1cjwtiQOO+734rWWpe9UH8kRBUmb73DnvMXrbgvEiFAYAABg/hMIAAADYWl4onFpa857wq0tlNm6+78j0fUHf74NQeDCEwgAAADAIhQEAALC1eobCqir562ISuy5vvlrXuFiU3JGE7He85Sb2xSV1vCCrV70KXctSrAeTfbft5UpF5o8lZUK3c/bL9FxF6mf1WCkpPOHVUdfWpDyXlvi+5jEmptKSW15tWwqjFZiafeaPxFv7TAa1ZYD9lc7lJan1TL9mHmrW2Mh4RTm2y9+PfUnJnq5JjVAYAABg7BAKAwAAYGv1DYVFancmTJ2UFC57T1xakKSGk4dyUjhTlvJKURZuSYpjnnOOlZpLTVxZlfJ9M5Iwz6Vv1zqrzeejbBvmakVyUxp4piS3VJLy8rykb3AkPqWzmX2hcKMqefN8q95KSQqzKTcsjc9WWmFqM8SNm+0nJDVbkJKvnnNreT10HWh/jjj7kpJbLktpqSCVK+YbGxmviMeWKyXJaOBs6uXNsZtjk5Dpw3ru/KGwGUOzbexQQYaY+w0AAIBtQCgMAACArRUhFK6fzrh17LIG1dsTsn8qJ5W2qaoNKd+qaxD7AsiA5RAibxugOjcpMWd6PZxWNij2hcK1xaSpl5VSR8LceCgrTiwpC5eaj5shrun73bXmE57KbHtbBt1f5kxb5zY0XlGPHTY2MzrLm1AYAABgrBAKAwAAYGtFCIVtnX5r3TZD0ayUbfg5wBq5Xdt28ZaxOO6bweup3a3b2lC4JoUXauiZl9KKzrj1FW8mru1r85i+GdCe1vPD7s+/jEUP/ccr6rFrsnBjyNi4s7x7h+0AAAAYLYTCAAAA2FoRQuG1+6bdOp3hbqO+JqvndJmEeZk5lvTWy/WFoj1C4b7bdqnIjLazY1avy+2D3dabCdujOLc1V0cOC3Hbn9/4/qzBxyvqsZv1End2j01zljehMAAAwDghFAYAAMDWihAKV09Omjq+8PJySbK6zq0bTE5I/MaEpI/PS/64t/ZwaMhpRN22U6MsWW1n1FB4tn8MOlAovIH9DT9eUY8dHgrrMhOEwgAAAOOFUBgAAABbq28o7C3bcHBBmpFjXYpHzOPrslJ6on2xgtYN6UJDzgG27RK+fER7GOstpXCjbW+4aKHwRve3kfGKemyWjwAAANhNCIUBAACwtXqGwnWpzMbN9x3JnLZ3OvNmr57oiBmvrcr8QfN8z5BzgG0DBN5MTQPRjm3dm7PFJmXmbHtE2jg7I5POfpl5qPl8tFB4o/vbyHhFP/bqKT1PZl+BN+EjFAYAABgnhMIAAADYWl4oPHl4RvJz+fVyPC3xfRooxiQ+W/HNQK1L6ZguhTAhqbmie9Oz0lJOpg84MrFvohlM2pCzXpKM7vvYgpRWVs2WA2wb5GpZZrRN+1KSWypJ+cyCuyyD4+g+fdu2wlB7nJIU5tKScGLiHC60Zt1GDYU3tr+NjJcR8diteh1j01yywh8Km3r63KGChC8YAgAAgJ1EKAwAAICt5YXCXcXZL4kjWVlYCYgOr65K4bi9UZoj+29IS/5MTeoX8jJpHs+s2Ai5IdVT0169aSnqriJvG+JKRfJH4jLhtXF6riLVuwPCWHOc4ux6sO0cSEh6rixr17zvG5FDYbWB/W1ovFSEY7vqvuOYsUkeL0jpdm0ToTAAAMA4IRQGAAAA+qi5ofAMSyQAAABgVyAUBgAAAFy6DMOExI8VO2a41qRwiJmvAAAA2D0IhQEAAABP/XRGnJgjiaPzUlwpS/lMQXKHdF3euOTO9Vl2AgAAABgThMIAAACAz9pKXtI37BdH18WNTUj8SE6Kj7m3ZAMAAAB2BUJhAAAAAAAAANhDCIUBAAAAAAAAYA8hFAYAAAAAAACAPYRQGAAAAAAAAAD2EEJhAAAAAAAAANhDCIUBAAAwPi4tSDIWk8mTVe+JYLXFpMRiKSk84T2xrdakcCgmsUMF89VeU5PS8aTsd0z/zXlK3V3znt9i9VUp3DIv/qtibSm1g9dAp7pU5tIS36fj4sj+mzKycL7ufS+6xrmcxGM5qXiPo9nAsa+acfWdz4mptORX9t5VDQDAbkQoDAAAgDFSk4WDMYldl28LANtVJX+dqXOkKIPHbpthD4fCZ2fc4DF5W1HKK2WpPtHwvrG1mgFwe1g6OqFwXUrHHIk5CUmfMuNypiC5QxOmbXHJnY8+PvXzeUm64ewgofBGjm1+jqbM8ey2K0WZP5oQx5zf6fsIhgEAGHeEwgAAABgr9eW0xGKTkr/gPdHpQl4mY47MrGxPINlt74bCOxXEBoXCI8O7HrMP+a/HWvMaObhgvuqjsSbluZRMxDQQHjAU3sixz+fcALh927oUj5hte/5RBgAAjANCYQAAAIyXRlmysZg4s8HRWGVWZ0ba4Kwhq8s5Sd+wXxwvVJuYSkl2adV8x/JC3NmSVOaSbvg2MTUjhTvClqCoycKN4cf3h8LVs3mZPmDaE9OP7Wel8Nj63OXwJS78+7dtq0i9x76aovTVcJcESHnLCazXadtblDptvHZ6x20WPQfBY1u+qttEbK/RuFiU3JG4F4xOSPxITooXm7Uqs/Z4XvHOS1BAXX8sfD9WK2C+UpG8revsl+Txgqy67R5M9eSk73pcVz+d6WpfkGb/HEncYsbw7sHC7w0d+1zO1EnIwiXvsafZnuhtAAAAo4lQGAAAAGOmIeVbNfidkXJXeliWGScmk3PNeYy1OzV4nZDUbEFKK2UpLy9I9qZmsJo5bSNOL7h0HJm4KSfFlZIU7q5I/YmCpGIxSS11zPe9tCCJXjOVfftznIRkF0vux/Zn3OP6PrYfaf/evqbiEu+1L2OgvurasEtmX9rXW5NuKJtctPNGo9Tp1JC182UpnkiY4yVk5j5z/BUNkUPG1mwRrb1mz+46ujFxbkjL/LLWm5f0DaaeMy3FJ0TqF+1xzfd1Pxeb23aGwq393DQjhTO+/eg4nlsfx+Z2ZrynbNtMm2ebM3WdW8u+wLoiOfNc7xnha1I8HFLHPc8xmTnrPQ5RPTndWsd3sBnRGzz2VfOztM/0+fCCrHqno35hQabNz1f8tmpXcA8AAMYLoTAAAAC21tWqzN+ss0Ed2X/zvFSHmG3ZJWSJiMZDWYnFkt7sRnPcG/dLfLbSHmB5wbGdUarhmRtcxjJSamub91H5jlCtdmeiz8fn7f5sOyxvPeTW/qLs3+6rPbhs7au1BEDEvnpBdHsY2JDSy8y5OVJo7itKnRDds3PDxjbquensp+dqWbL79ktqcdV9GBSWtrfFW2fajHXbfq6tynzH/pvbdd8kz52B3naMaKGw2/8T/pZ5wv4o0MOgofCGj62zpW8y+9B+eiV5stpjxjgAABgXhMIAAADYUu5H2H2hUviyC4PwQr7j/pmbXsjad51WLyxrbes9Dgj3musX+0PO5nHtTORg3v4CbnRXcz/+Py1F70D99x/etmZAuL6vYB199UJX56aclC7W2wNZK0qdEO1BrApvf7CO9q4VZdpcM/3Cy6CwtK0t7h8RYh3r4zY1z8H6Mgmt7S43H1vdfYvCC7WDrvktD4U3eOyrFcnpTOp9Kcm5M8btjeYmJH13baDrAgAAjB5CYQAAAGyprQmFxVuTNyMlm7xeKUra7D+93BnFNqS+tioVXQbg1IxkbvLWsG0FlT2CS2+frfDMDRd7LR2hvP0F9dNdp9W3fd/999tXTHLnvMeufn0143Y6KwmdjavPO/slcSQnhZVaW4AdpU6Q7uC0Xyjcp73uzc46+9gtKCxta0vI+riujnEMC3/Dnu/N6/8YzhSuzul6xNNd4XjzDxtxmX/MewIAAIwlQmEAAABsra1YPkJ1hMBuYNaxznBbuLkvLokb05I9lZfsjb7g0YZngcFlXUrHzPe8Wb9uwN1z6Qjl7S80yPWHk/32329fjuTONx9G66vnWl1WVwqSP7Z+MznncOfSChHqdOgOTsPHNlJ7A4PvbkFhaVtbdjAU3uiawn5B/bQBrzuOtrjH28ixa+7NDttn4nvqJcmYbQcJswEAwOghFAYAAMCY8paLcAPV5kfl224E5oXGk8dLstaWbHmBVyss6xUKi7dOcVqKV5pLOyTu7L04RWt/x0pu0OvXnGXpm91s9N5/+L6aAaG3r8h9DdKQ2qLuq9cM6Ch1bJsihMJR2xu6fIQGnhMSP9E830FhaVtb+i4fYep5M2K7+9AU9nw/btDvdM/urZ/OtB03iqB+hofCGzk2oTAAALsdoTAAAADGVmNlRhwNVM/qzMeOwNKbAdo1G/LivCR9wZmY/+8VCts1djOzOXOMzpvHBfH21xm66RqtU+b5zrWGe+4/ZF/XqpL37ytqX8/lJXEg3hXsNs5oSOiNX5Q6IbqD05CxjXxummF/1zrRl9uXPwgKS9vb0gzcdb/ts6G9G81NzUvzlnVBfWgKe74v76aI7YF0rTkufde/bhfUz542cGx3+YjO685o/mGj93UAAABGH6EwAAAAxlhFck5M4lNxid3YEXJdKUlGlyfYl5L8clnKum7t7LTsdyZkQpdDaAWPfUJhaUj5Vkccx4kY4nn7M22K25t0Lc9LWm/aFbBGa+/921C42Q93X2cWJNu5r6h9bVSbwbSpl10smnplKS5mJWm2dQ4Xo9cJ0R2choxt5HNjmnMuJ3HTf+emGSmcMXWX85LSOlM5qXpZZ3Pm66Rk7jTjc7EZuXe2pXs/3jmJxSV3bj00jR4Km2uvLcAOo7Oam8dJnzLjeaYguUMTXceNsr+BQ+GNHPtKWbJt14Geo5RMmHrx2Ur3DGIAADBWCIUBAAAw1pozGmOSXOyOaxsXC5K1Ny9zb5iWl9Kluvexerv+cL9Q2OzHnZEcfIxu3v5mK+66uckDGsrpeso5KXUFwk3h+19vW6W1rwmJm36UOxobra9GvSoLvnWCdT3f9FxZ1q5531dR6gSIHAobkdtrNC4WJXck7gaSWjd5vCCr/rWpW+tWm+97wXVQuFt/zLcfbxxLl9vjzc0PhY1ra1KeS3vjaa6FmzKycL5zQZCtCIWNjRy7viqF40nZrwG++f7EVFpyy6tdS5kAAIDxQygMAAAA9HMuJ05AULhpQvffP7AGAAAABkUoDAAAAPTUkPJxp3st4E3Ta/+EwgAAANh8hMIAAABAoJqU5vIyczQhTmyyYw3WzRBl/4TCAAAA2HyEwgAAAECgVZl3b+i2X9KLq1twY60o+ycUBgAAwOYjFAYAAAAAAACAPYRQGAAAAAAAAAD2EEJhAAAAAAAAANhDCIUBAAAAAAAAYA8hFAYAAAAAAACAPYRQGAAAAOPj0oIkYzGZPFn1nghWW0xKLJaSwhPeEzvhak1KpzKSmpowbYmZ4sj+G9KSW16Vulelpb4qhVvmpXevdtBG2ncu5/bfOVyUNe+pdmtSOGTG51Ah8Pv1SyWZP5aS+D4dQy0TEj+UkXzQOG5YXVaXsjJ/3ntorC2lzDG3+lqqS2Uu7fXRXCc3ZWThfMTeXTXn5nhS9jvN8ZmYSkt+JXik+2mYcxWP5aTiPe5Lr4vj6+fGOZCU7NJWnBcAALDZCIUBAAAwRmqycDAmsevyPQLKquSvM3WOFHcunLpakdyUBmUTEj+Slfxc3pSspL2AeMK0reZVVc3gcYAwbpttqH1eKKxh5/R9QWFlWChcl8ptCXF0vA5mZGaxKOWVspTPFCR/LCkTGkLeZK6Dq171zfBEQVJmv7lz3mNj60PhupSOORJzEpI+Zfpo+pc7pNdJXHLnG16dMOZa1+vMbrtSlPmjOmZhYx2ufj4vSTdYjnie7TW+LyW5pZI5dkkKtybd8xWfrUi/lgMAgJ1FKAwAAICxUl9OSyw2KfkL3hOdLuRlMubIzMrOxVLNmcpxyZ3rbkNtUUPG9vbtjVBYw8uMlK54z7cEh8K1O3UMHZm+czUwYGzOao1JvM+s8YEEhMJbzrtesw/5e1lrjsnBhbY/HnQ5n3MD4PZt61I8Yrbt+YcTn8aalOdSbsjePE/RznNrNv5l7wlP87wlZeGS9wQAABhJhMIAAAAYL42yZGMxcWaDo6vKrM66tMFWQ1aXc5K+Yb87g9GdpTuVcj/i7otkmwHcbEkqc80ZqBNTM1K4I2wJipos3Bh+fFWZ7RGuee3f74WZzbq+4t/vWlnyR+JeYKezjnNSvNgZkUbpoy/YvVKR/M1e3X3Nj/trvdpyVpIHzNjFHNl/c97Ua27Xq331x4qS69c+LxSeubsZuDrHSh0zuANC4SslyThBdf0aUj4Rl+TL1mdd2z6WzuUlqUsa7IvLjBeYNi5qWxOtZRb0e6njBVm1M4394bVbmucvcKZwfVWKs3a5Bx3v5rIgnWcmiurJSd/1uq5+OtN93E5umxNdAWzP669Ds64jiVvM9X931PC/LqVbzDX0wkJ3aH1x3g3rtzVYBwAAAyMUBgAAwJhpSPlWDX5npNyZwjXKMuPEZHKuGbg2Zy1OSGq2ICVdemB5QbI3NYPPzGkbN3qhpOPIxE05KerH4O+uSN2bNZpa6vgY/qUFSfSaqWw0ZzPHZeZM/4/w1y+WpXgiYeqnZV7beLHZrsb5vCRMXyYO5aRwprlsQmtZAd8M5Gh9tOFmXOJTtm5R5o/EzXOTknnZtEzckJUFc5zS0kxzGQFvlmpo+7yZus5NM832Lc9L+gY9bscMaS9s1ZCw5oaO7e0KCoWbgagzcLDY7KMjzr6k5Ja1L4VmuO2tRd0aS9P3hVuaSx20gucrq1K+b8ac25ikb9c6zbVxu0Jhu2yCk5QZd9kEu2RD57IJpp55Lmyt5KY1KR4OqeNeZzGZOes9DnLVXO/7TB8OL8iqN6T1Cwsybc5f/LZqpJC6enK6tQaxDdWjhMlh+s7kBwAAI4FQGAAAAFvralXm3ZmpOgN1fnPWgA1ZIqLxUFbWP7pujnvj/u71Tb3geH3GqxdKxjJSamub9zH8rmUNEhE+ml+T0ss0cDXb74tL+vi8FM5UZPVKcEzXHcY11052jnfOlG1I+bjjW1Ygah/tMWKSuts3t9ObtRy7bkYqvr67fYxNS9HreHf7vHWbzdi0zRS9tirzuuazf9kDXyis/WoG8P5lJLpD4eptGi6vHz8q28fMmfZxrt6ekP1Tpv3tg9T844K/XxHWFK7OTTYfdyybsHp757IJ0UJht+8n1ke2JeyPEp105vdNZh96LK8kT1Y7rptous/zgGxg3m/ZCwAAsOMIhQEAALCl3I/H+wKrXssuROeFksfLvjDUC3H7BlJeENfatjuUtJqzHv0f4W8e185E7qd+sSQLx9OScJdl8Pp/YH1mptUVxl32AsE5nYmqs1bXS3PWbp9lBbr6aI/RGWZ6wWVnKHl2pu0YXe1zQ/lYx1q2Tc0x8y1p0BYKG17f1peG6B7/0OUPvKDUjmWzdLaz39isa9bPrs847xsKB113nitFSZttE3cOEod6N04M+pmIEgprCKuzs1s3e7OzlickfXetu419dJ3nQVxdlYXDpi3OdFdgDgAARg+hMAAAALbU1oTC4t3oKiMlOyXSC+XSy51zJBtSX1uVii4LcWpGMjd56+m2QsjwUNjusxXMuWHokB+Nv7omqyt2CQhHppfWw8OuMM4LUsOLI7nzXl1Xvz52hpuWFwp3nhP3+D1CYff73WvZujpD4M7HRvsyEmGhcMBM4XpFFubykvfKzGFv1m7EULhRN+fgnC4rMS8zx5Le+sK++n1D4eZ4BQe/IWPZk9f3IWcKu7OWA0LY5vjGZf4x74mIus5zVOa8uOG0actC15rXAABgFBEKAwAAYGttxfIRqiMEdgOtjnWGa6ez7rq8bpC6Ly6JG9OSPZWX7I3mcZRQWOpSOma+d6Tozmp1A+6+S0f0s9ac0ezkWvsJDl3bw8kw0fpoj9EZmO5MKGxa3RxzdxmJ7vGPuqZwZ5+C+2hcLknWXe/YHEdviHdjwl3SI3+8Y9b1DoTCw68p3LzhYeCs5XpJMmZbN1D2+tTsu1cCr/WA8xzF5YKk9YZ7U+ZcMkMYAICxQSgMAACAMeUtF+EGtt4avLf6AjIvNJ48XpK1ttTMC9NawVivUFi8dYrTUrzSXDqg7/IAa+a4Tu961bn9beFbVxjnBYJ9jxW5j/YYnYHpkKFw3+UjzLY2IAwMhY3WMhJ5yXeOv9cvJyjw9OnsU3AfvevkuqyUnmjfW3PtZF/9vqFw/+Uj2tZsjsD9Q4PTHcQ2g3HfOHbZ+VC4Ya4DvSmhc1N+8/7YAwAAtgWhMAAAAMZWY2VGHA1sz2qI2rGsgxdGds20vDgvybZgrHcobG/alpnNmWP4byQWphlQux+lf6xzKQvjSkmyGix6s49Vdxjn7aPjBnCmMVI5MSnOgRkp6/OR+xgWmA4ZCttw1Oy/LQK1N5qbmpdV76nQUNhoLnNg6ne0VdWWpt3Z5dN3rrbGqc1aSWbc2b+d7QzpY+cSDbat/vp9Q2EN9L0lKzrC2uaN5gZfssHeNLE9YPdmUvdZHzusLc1xHXyZk+7z3MPlgkxrIHy44xoAAABjgVAYAAAAY6wiOScm8am4xG7sCNCulCRjvqc34cov603aSlKYnZb9zoRM6Mfdo4bC0pDyrY44jhPhJnYeLzDTsHNiKi1Zbw3c7JG4TGhA2bEObHNW6KRk7ixJ+WIzAm2cy0lc69r2nylI3r2JmG894sh97BOY9gmFe7XPuWlGCmfMsZfnJe2GtHHJnfMFnD1C4Vb4qW3oGv+GVE8m3bWR9eZ82VMFKenN9pYXZMYdB7ONk5Ds0mprpmxwH3UJEG3XhKTmiu7N+kpLOZk+4Jgx0vWdffW9GbaTxxbMsZphdNc+9eZuU3rspMy03dzNXIdmHNd77o1t6HVl6RISzXFLnzLtM+e5ue50xzgG7e9KWbLaFnP+s4vaNz3/Kfcaa29LNOGhcOex7Zjul9Tx9TWe/aXU948nAABgJxEKAwAAYKw1Z0vGJLnYHdc2LhYka2+65uyXxBENq+reR/bt+sP9QmGzH3dGcvAxQtVXpTiXkdQN3vFNcQ4kJD1blNXOqa+tdZdNvcPFVjsaF4uSs0Gyrsl8Q1ryK+2tjNbHsMA0Wigc1r76Y/72TUhcj325I4rsGQoblxa6ZjX7NZ6oSGE2LYkDGkLqcZrjkF0sSa1jHIP7aFxdlcJxe2M5bxzP1KTuzdKdWbFtbkj1lIbqWq95o7vAfeq5NW2Ka/Bu2qTBv+6vvedRQ2Hj2pqU5+z+TPtuysjC+c6LJGR/pi3rfWu2JbccMru6j8ihsBeeN89HcAk93wAAYCQQCgMAAAD9nMuJExQ2AgAAAGOIUBgAAADoqSHl407bGsB9LSyI/Pqvew88X/M13hce6ngPPLulzu/8jvcAAABgdBEKAwB2tQ984APux1i/4iu+wnsGAKKqSWku761fO9mxvmsPDz4okk43A8S3va353Hd8h8j//b/rISJ1dm8dQmEAADAGCIUBALsaoTCA4a3KvN44zdkv6cX1m5n19OEPizz/+d4D4xd+wfwXt/lP7scfbz7WEFEfU6dpt9YBAAAYcea/XgAA2L0IhQEAAAAAaEcoDADY1TYeCteleKR5J/X0cshqov3urA8AAAAAwAghFAYA7GobDoWvFCUdm5T4lCOxgwtS855uQygMAAAAABgjhMIAgF1to6FwbTFpts9K8fSMe6Op/AXvGwAAAAAAjClCYQDArraxULgmCzfGJHasJPVGWWacmDi3lrtvNtU5U9h9nJLC2aKkDzRvUpVaXPW+CWBTXFuT8lxaEvozZn7+Yvvikp4ry9o17/stdamYevF9zWVgnANJyS6tmmc7NWR1KStJb38TU2nJnQn6bEDUehHZ14snvMcDWFvJS255zXs0YjbwCYrN7NdG9jX0ths4pwAAANuFUBgAsKttKBS+kJdJs23mdDM+qsxqCJSW4hX34brAUNgRx4lLZrEk5eUFKV30vgdgE9SkcFj/4JKQ9KmilFfKUjyVlrj5OXQOF3zLvNSldEx/bickNVuQ0kpJCrMpmTD14rdV2/7AUz0Z99UryvzRhDjm53j6vvZQMGq9yIYOECuSM/1ILW1OeLrphg6FN7NfG9nXBrYlFAYAAGOAUBgAsKttJBRuhsBZKdvkyLzRd8y+um441xl+eI8TtzM7GNgKjZXmci4zZ9vn7TceyroB7cyK9/xaUabNz2LyzvaZvNW5SfMzmpGS/VF21w7vrNeQyglTz5lZfw2IWm8QQweIIx4KD41QGAAAYDsQCgMAdrWhQ+HA5SKqkr8u1n3DuZBQeJiPTQPor3p7QiZiM1LxHrdcLUnGH+Q9UZCUeZx9qD2tXVtKtYV29dOZ4BDP/bSA0/pZjlov1NVVKRxPyn7z2qLLykyfqkojKEC8UpH5Y6nWkhdaN3EkLxX7KQWvX+733OLbvt+2YWw7LjbbqLOpQ5fk0KU7TmVaS2jokhyZU5X2JTkCXxfX9++OQWxC4hH7VT+bl/QN+90/zNk+lXvltb3GqF/7Nzq+QecUAABgxBAKAwB2tWFD4fpy2mznm3Hoac4w7LjhXGD4QSgMbLuOJV/cdcFf6EhsakZKXoDYeKIkM1O6zERRbKZYvU3DwVx3yNwoS9bsL3V3889AUesFq0reHFeXvMjqsjJnCpI7tF+mD7cH1HLV7Ev/IHVDWuaXy1LWJS90TWSz/9hU3uzFaKxJdWXenbWcOKHLZ1RlTV+qomwbxn3dmpT4lCMTh/JSbFuSY32sWkt3xOLe0h3rS3K0Ld0R+Lqo+5+QxNH51v4TGg7bP7SF9EuDcw3dk7csuNuVl00ddyx7zM4OG6Mo7d/o+Lp9JRQGAACjjVAYALCrDRcK16V4xLzJ1zf6IaVtBnFg+EEoDLRcrcr8zTrL05H9N89L9ar3/Kay6wx3BIXXzPNH97f9/O4/Vmyb/VqZNc+/0L8WsdVcQiA224yBo9YL0vxDU9y8LvgbZ9p2SNu0HiDWT2clvq87UKwtJtvqBS1vEH3bAN7rVvuazNK1JEezH91Ld9TPdCzdEfK6OHmi0raWc+es7aB+BY77xXlJ7ItLvufrbMAYRW3/RsbX7Wuf8QYAANhhhMIAgF1tqFD40oIkzTbOsQXRG1i1l6LkDmqI47vhXEj4QSgMNFVP6gx7/blpFqdHeDqcupRv1RvAdYeuxSMT7uzc9lmhjiROlL3lAhpSPm7adajgmw1r+cPeqPWCeNve2LH0jKGha6QA0X1dScjCJe9xQGgZqmvbAG6doCUwzHF0duxtOg9Wb9wX3A93JrQur3Pc+4NZyOvizFnvsdVZL6BfzdBVb9xZkdpAf1Do3NcA7d/I+LqPCYUBAMBoIxQGAOxqw4TCtTsTZpuOJSJ8mjPNYpJc9GKFkPCDUBho2tJQWGcCa/Abi8vMQ22r2obMzhVpnJ1xlyPInGnW3/qZwmvNGcGtwNHHXfIiIEC8WpfahbKUlxckfzzdWsO2V3ja0nfbAKFBptd2Nwzv0Y+2ekbU18Wu5wP6pTPND+k5bvZjYiolmVNFqfbNazv3NUD7NzK+oWMJAAAwOgiFAQC72uChcMjN5Py8m9DFrvPWkIwafgB71VYtH1GvSO4GXTIiKfkLnTFf+Ozc1s+5F+Ju/ZrCPcLISwuS8AeIbQGoGa8bEpI6NiMLs80/RkUPT3ttGyA0yPTa7q4rPECoGvV1sev58DC28URViovZ9RvOBQT+7TY5FI46vqFjCQAAMDoIhQEAu9qgoXBjZcYNG9LL7TMOO7XdcC5q+AFg81wuSUZvNjaVkdJl77k20UPh+ulMcIjn3bjOLnkQtV636MtHNF9bUjJ/of01qFmvd3gafdsA7utW0CckzHGcmEyejLh8xAkvMo/6utj1fHgo3OZKWWb0eMdK3jIgQTr3NUD7NzK+bp8IhQEAwGgjFAYA7GrD3WgOwEi7WpGcGwjnpNJj1nHYTcWay0f4/vhzpShp8zh5pz8qbEjlxGT7jeui1gtQP5MRp6st3s3xWgGiN1u1a4mKupSOa71e4ekg2wbwwtmuG8EtN9ttw+J+N2qzS3JsXiisNwqMy8SRYkf4uyrzN5r+DhQKD9D+jYwvoTAAABgDhMIAgF2NUBjYfaon9aZyMUkczUl+Lt9VFs7ZYG9VFm5ymjeamytIaaUsxVNpSeiN0w77w72GVG/TfTqSvFXrFWX+aMINCaeX2gPgaPWCeAFw66Z3Rcm3liLwzRR2++ZI4pYFt73l5XnJHJwQZ58p/uDRzmw9mJPiSlXWGoNsG8ALZ93tj86bfZqxmtOb8sUkPusPim2QHe+4eV/HmA4dCnf3a+2+aXeME0fzUjhj+nWmIPkj2te45M63h7vtuvcVuf0bGV9CYQAAMAYIhQEAuxqhMLDbeGGd+bkOK/6ZoXJtTcpz6zcDcw4kJXOqLGvXvO+31GV1KSvJA81ZnxNTacmdCQp6o9YL0NaWCYkfyUvlvhnztT9ArEvF1169qVp2sSJrayXJmMetG1watdOmHW49R3Ln9Zno23ax4eyZqswfiTdDUjNW2aVVs9cO2o9TmdYYuPUWq+31hg6Fg/plnjuT860l7Mj+m7JSeCx8jrAVtK9I7TeGHl9CYQAAMAYIhQEAuxqhMABEEBbaAgAAYFciFAYA7GqEwgAQAaEwAADAnkIoDADY1QiFASACQmEAAIA9hVAY2HbNu1nrG6/QMlvx6m4x3gCin8sFmXYiros47PXkbjfc2otrK3nJLfvWDg1AKAwAEfDfBAAAAHsKoTCw7bxQ+GAm8I7pbjkd8YY1G8UbQPRyuSiZKf1DxaiGws2fpbYbSgUgFAYAAAAAoB2hMLDtvFB4u2YDA4O6VpfqUlYSjjdzfavvoE4oDAAAAADAtiIUBrbdYKFw/Wxe0jfsF0e3cfZL4kheyr0zsKYrFZk/lpL4Pi/Y87atXPG+rzpndtpw7mxR0gccd5vU4qr3zajqUjmVkaRub/btHEhK5lTFPOtzbU3K/erYtlxclcLxpEx4fZiea9arn5+X9NSEu/3Ewayp12hup4K23ReX9FxZ1q55dVTP/tZldSnbu41GlPMT6RwOMiYbOD9R2rK2lHLbMHFoXqpnvGMOM1O44zzsd0PmCYkHXoedx+gz/k8UJKV9aJXwNhIKAwAAAADQjlAY2HbRQ+HGuZxMxhxJ3rIgxZWylJc1CDXbOjNS9mWgXa6WJevExLkhLfPLZruVkhTm0hLX407lpepVCw7xHHGcuGQWS+Z4C1K66H0vkpoUDmuINyGp2YKU9LizKTeUjd9WlWaTbZ24pE8Vm23z6jiHC+a7HrctkxKfmpDE0XnTf1Pv1qQbZqZelpH4vpTktW9BY9La1pGJQ3l37Iqnmv13DhellYGG9ndNikcmzD4TXhub2+vMWX8bo5yfaOdwkDEZ/vxEvZ7WlrOSXVptBrDuMTcSCvvP4fo4xg4udPTLf4wI499Yk+qKab85XuKE1qnKmq8PfoTCAAAAAAC0IxQGtl30ULgya+q90BcKqovzktgXl3yPdVvrp7NuaNoZ5NUWk+3hW2CIF5PE7YPODm5qrMyIE3Mk+1B7Ole7MykTUzNSvmratpw2x5iUmbPtdepnsu62Myve815bJk9UvDBZ1WThRjMm2ofL3lNG46Gsec6R3HnvCW/btkDV0HpBx+jsb7MfSZnvDFwvLUjSt32U8xOlzqBjMuz5Gep6co+5kVC48xzamcid1+H646jjb3+WWD4CAAAAAIDBEAoD284LhcOKLyxuhrg6K7Qitavekxvhhm8JWbjkf9wd4rUeD6h6my5pkDM9DFOX0jHTxxt9s0RbqpK/znzveLkZIHptmTnrftOzJoVDpk5nsHm5uZRAez+cgH6YsdfZprd5c6VD+ls5YY7x7VlZ0Nm0baU5M9Weoyjnp3+dwcdk2PMz1PXkHnNjoXD7OTQC660fI+r4EwoDe5n3++BQYf3THztobSUvueVRaAkAAAAQDaEwsO28UPhgRvJz+e5y2hcNXq3K/KHmurlaJqZSkjlVlGrU951X61K7UHaXGcgfT7fWF+4M7UIfD2RNiof7vUH33sTbkLNNxxv8wLaEhADe+rJhIeO6AY5hng8tdgmKKOenb52NjskAhrmeQscyQGf7wtobWM8eY4DxJxQG9rCO18cdFe21CAAAABglhMLAtvNC4QjLR1iNJ6pSXMyu3yAsFpfcue4IsaUt/HNk/w0JSR2bkYVZXaagR2gXFuJFEuUN+kYD0JBjDBoK21BxkGP0EOX8hNfZ6JgMbqDrKXQsA3S2L6y9gfU6QuFI408oDOxdg79Wbx1CYQAAAIwfQmFg2w0eCre5UpYZXVLgWKl5I7AA1blJN2Sbv9Beo7n2bo/QLizEiyh0+YjzOZk4kJKFixGWSjjhbR3YlpAQIDAUnpT8Be9xixl7JyaTJ3stH9GQ8nFzjFi29838wkQ4P+11NjomG9Svve4xtzMUHmT8CYWBvSvg94F9Lbm4KoXjSdmvN7WMTUj8SF4qV7w6qqOe3tQzti8u6bmyrF3z6qi21yYf//Pe7x99jWmW9fr1s/n1P745+yVh2lEmNwYAAMCIIBQGtl3UULgmhaNxmThS7AjrVmVeb7YWGjp6b5Q7193V8PG4475pDQ3tOh8PKPhGcw2pnJhshcX9bqqWOeP1KrAtg4TCATc4W86YY/jC4pD+NvsRk9TdHTGtu3bxhCQX9UZvUc5PtHO4sTGJasjryT1mQCgSpLN9Ye0NrLd+jGjjrwiFgb0rLBSelPjUhCSOzktxpSzFU2lJaDh80PeHt1Y9RyYO5Vv14uZ1wmktT2N0vDa1+J9vrEnVW+88caIo5ZWqrJmX8oapM2lev5O3LLj7Ly+bOlOmHc6M7w9eXh9ivdbiBwAAALYGoTCw7aLPFF67b9oNBRNH81I4Y95UnilI/kjcvIGMS+68fVfZ/aayelLrmO3Mm9GS92Y0c3BCnH2mmGOHhnadjwdWk8JhDZ7jkj6lb45LsnBLwu3D9H32bXZ3ncJsyp2p5Rz2BdmBbRksFHbHwAYDc81jxM24t96Ph/bXtnF9DHW5hZSuyTxlxtm7SVuU8xPtHG5kTKKL1pYO7jGDQuGAMKOzfWHtDaznP0a08W/NpD6YM+e4GcQEIRQGRoAua3Szzpp1ZP/N81KNerPLUGGhcMAfBJdS7a8xXr2211dDP02j7ZtZ8bbuem3ydD3f/QeqyqxpW+cfZy/OS2JfXPKt10RCYQAAAOwcQmFg20UPhVXtTM639qt5M31TVgqP+ed0Br2prEtlbv3GcnpDsexiRdbWSpIxj5OL3ttU741x3xBvIObYpzKSPKChnh47LfmzHXNQr61J2VfHOZA07au2z1QNbMtgoXDuTFXmj8Sb4aoeY2k1wjGs9n7oR4tTxwuy2tGV/ucnWp3hx2Qwkdri5x5zu0NhFXH8T2cl6V7njuTOe092IBQGdl71pC5rpD+rzeIMu4RSS3goPHPWe2wFvuaY14yu11Lz+9kxbbvNv8TQcKFwbTFp6sQlY3731jYcgAMAAACbj1AYwO7TGQBgTyMUBnbedobCw/0hSnXsM6xe1/PdoXD7DV+bf5zNnCpK1VcFAAAA2EmEwgB2n7BgAHsSoTAwArZx+YgNh8J2XeGwel3PB4TCnsYTVXf5m/VPaMRNO0LWugEAAAC2EaEwgB68N8juG9k+ZcOzvjZRWDCw64zp+dlmhMLAbrTRUNh309GW5vIRkyf9y0d019P12aOGwm2ulGVG10EPvVEsAAAAsH0IhQH01KjXpR6ljNKaiXsmFB7T87PNCIWB3WijoXDADemWM+L4Q+ALeZk09dLL/gi35v0xrlcobOocjcvEkWJH+Lsq8zcSCgMAAGA0EAoDAHY1QmFgN9p4KKw3m0scnZfiSlmKcyn3pqTxWX9QXJX8lKnnJGVmqSTlMwXJHZqQ+OFpSbSFwqaezgA+mDP7qsqa2YHOJtalMhJH81I4U3a3zR+Jm2PGJXfeHsF+2sN/o1gAAABgexAKAwB2NUJhYDfaeCicO1OV+SNxNwx2DiQlu7TaPYP3SsUNc7VObF9c0nMVqV8uSKpjreHa6awk92nA60juvPfcmZxvLWFH9t+UlcJj/iMQCgMAAGDnEAoDAHY1QmEAbcLCYwAAAGAPIRQGAOxqhMIA2hAKAwAAAITCAIDdjVAYQBtCYQAAAIBQGACwuxEKA2hDKAwAAAAQCgMAdjdCYQAAAAAA2hEKAwB2NUJhAAAAAADaEQoDAHY1QmEAAAAAANoRCgMAdjVCYQAAAAAA2hEKAwB2nUceeURe+9rXuuVnfuZn3FD4S77kS1rPafnrv/5rrzYAjIgnCpIyr1f6mtVeJiR+KCPzZ+texd2qIrnA/vvKbMWruz3WVvKSW17zHhncqBAAAOwShMIAgF1nbW1NvvRLv7Q7TPDKd33Xd3k1AWCEeKHw5OEZyc/l18uJjCQPOOb1y5HM6d0cDHuh8MFMe//95XTNq7sdmu1JLREKAwCA3YdQGACwK2UymbYg2F8efPBBrxYAjBAvFG4LIa2rFZm5zryGHS5KwHd3CS8U3ubZwOECQmEAAIBdglAYALArhc0W/r7v+z6vBgCMmF6hsKxJ4ZB5HXthQdy5so2yzDgxcQIC1MZDWfN6l5LCE+aBO7PVfH1xVQrHkzKhr4X74pKeK8vatWb9lisVmT+Wkvg+7zXT2S+JI3mpXPG+76mfzUv6hv3i+OqUO5ocpU63AUJh26+zRUnrLGpzjNTiavN7EfthWimVU3YWthnLA0nJnKqYZ42upTz849kxU/jampTD9mN1nIf95ty5y4IEtgsAAGDrEQoDAHatl7/85e4bdH8pl8vedwFgxISGwg1ZW8lJMubI9H3r36vMahiak/YItSHl4+b17kixGUq6YeSkxKccmTiUl+JKWYqn0hI3x3H8s46vliWrIfMNaZlfLkt5pSSFuWa92FReql61htnfpGlH8pYFd1/l5XlJT5k6zoyUG9HrBBs0FHbEceKSWSyZYyxI6aJ5PmI/RGpSOKwh7oSkZgtS0nqzKTc0j99WlUZjTaorpt3mceJE0eynKmvadve4/lDY7icu6VNab30/zmEvwFet8zAhiaPzrfOQ0HD44MJ6PQAAgG1CKAwA2LU+97nPyZd/+Ze7b+C1POc5z/G+AwCb4GpV5m/W2bCO7L95XqpXveeH1TU7tb1ML9akLVO9kHfD17ZZq42yZE3d9LI3T9ULMdsCSkNnE2u7Z1aae6yfzkp8nzcb1qe2mDTbrz9fmTVtsbOVrYvzktgXl7zXjih1gg0aCsckcbs3O9gTtR+NlRm3/9mH2lPq2p1JmZiakbJ7LgOWj+gIhevLafN4UmbOtu+nfqZ9fO12kycqbedwbSnV1i4AAIDtQigMANjVXvGKV7hvxLX8yZ/8ifcsAGxc9eRk6/VFS9BSDgPxQuFeN5pLnqz6QsWq5K9rP279tK6nnpaiXZLADSM7gmNXRXI6o/a29bmzgdztE7JwqfmwGa7q7NyK1EJC8Ch1gnmhcFjxj29HONtXRz+qtwXNsu7ULxSuS+mYadeNQTN9m+cmdrzcPF/edjNn3W+uG7QfAAAAm4RQGACwq9nZws997nO9ZwBgc2xVKBy8pnBdyif0eHGZf8x7yqjOmeda4aYXUh4rNZeOUG7oGDQT1Vuj+FCh/cZ1V+tSu6BLPixI/ni6tS5vK7TU2dGHJlp9nphKSeZUUar+nUSpE8gLhQ9m2kNxW077otd+YWrPfqxJ8bB53Nn3Lv1CYW8MbfDbpmN8w9pLKAwAAHYIoTAAYFPM3nlGpg7PjWT5pu/4ITlw8GWB3xulomMIYIxs0fIRwaGw4S4X0fF997lJyV8wX9dLkjHfz5z23eKsXyhs1xVuC3JNf25ISOrYjCzM6vII3aFl44mqFBez6zeTi8VNnfZoNEqddl4oPMDyEV1haqR+hATiXQiFAQDA7kUoDADYFH92+TOBQecolO+bvi3w+VErOoYA9rBhQmGpycKNMZmcq3pLR2Tbb+bmho5eaNym4i4fMXmyuXyEO+M4lpL5C75A2dC1h/uGllfKMqNLJfhnKHeKUmcTQuGo/QhdPuJ8TiYOpGRBb1rXNxSOsHzECe8IhMIAAGDEEAoDADbNa95yf2DYSelfdOwA7HE9Q+GGVNzlI7oDXncN3+tykjseE+fWjlmrXujYdYOz5Yw4rX15s1o7bw6noedxXcvYhpY1KRyNy8SRYkewuyrzN9rAN0qdMBsNhaP2w4xm4I3mvDFuhcX9QmGz5z43msuc8XpLKAwAAEYMoTAAYNP8n48/0RZ0/thMSV7wujIloOjY+MdKxw7AHhd2o7m5rKSnmksiOEGh6qUFScYccRxHZlbaw0kbOupSComj81JcKUtxLiUT5rn47HpQXD0Zb9a5ZUFKpk55eV4yByfE2WeKL7Rcu2/aDTsTR/NSOGPqnSlI/ohuG5fc+ebeotQJtgkzhSP2ww24D2tQHJf0qaKUV0qycEvCbff0fTYE9mb7HsyZcavKmja967jd+ynMNsfXOewLpwmFAQDAiCEUBgBsqlfk390KOhO/fFdgIEopu2Njx0nHDABsKNwMcf1F18ZNS255NWSWbU0WDpp6zkz70hHKho5nqjJ/JN4MKw8kJbvUua+6VObWb8imN4fLLlZkba25TnFycX3ube1MzrdOsGnbTVkpPNa+tyh1um08FB6kH27dUxlJHmjOIp6YSkv+bEc/Tmcl6e7Lkdx580TQca+tSdm3H3d8F6vt40soDAAARgyhMABgU33oo5dbYaeWHz/xQGAoupeLjol/jHTMAGB4zWUTnKAwldARAAAAAQiFAQCb7qW33dMKPBMve3tgMLqXi46JHR8dKwDYEHf5iKCbyRmEwgAAAAhAKAwA2HR/9OFPtELP+M+8UW76n38YGI7uxaJjoWNix0fHCgCGUT+34K43nNLlDQ4VJOj2dITCAAAACEIoDADYEj//2ne0gs/nvvwdgQHpXiw6FnZcdIwAYFj1M1l3jeCJgzkpX/Ge7EQoDAAAgACEwgCALfHgBz/WCj/jP/sm+Ylff39gSLqXio6BjoUdFx0jAAAAAAC2G6EwAGDLTN+62ApAf+RXC4FB6V4qOgZ2PHRsAAAAAADYCYTCAIAt896V/9MKQb//yG8FBqV7qegY2PHQsQEAAAAAYCcQCgMAtlTqFb/TCkJvfMXvB4ale6Fo3+046JgAAAAAALBTCIUBAFvqngc/3ApDf+Dn3xwYmO6Fon2346BjAgAAAADATiEUBgBsqX/4x3+U5C/PtwLR52XvDQxNd3PRPtv+61jomABAlycKkorFJDaVk2rDe65DZdZ8P5aTive4zVpFCrNpSRxwTB2t58j+G9KSXSzL2jWvTgT18wXJHUnIfkf3Ycq+uKSOzUt5zavgs7aSl9xywDdGVkVy7tgEleZ45ZZXpe7VHlTXeJzLufvOnfMeAwAAjAhCYQDAlrvr/nOtUPQHf2E+MDjdzUX7bPuvYwEAgWwobEr8tqoE5cJhoXBtKS0TZjvnwLRkTxWktFKW8kpRFo5PN8PdqYyULnuVe6gtTYvj7icpmRN5yc/lZeZYsrkPJyG5c/5WNQPW1NIYhsJH58346Bj5yvKCZA9NNMf/ZNWrP4iA8SAUBgAAI4pQGACw5Z5uPCOJo7/dCkaff/zdgeHpbizaV9tvHQMdCwAI5AuFY7G45C94z/sEhcKNh7JukBu/tRw8w/VyQaadmDjHSr1nwDbKMqP1Dhek5j3VUjffu84c++CC73tjHArPBs61NmpSOKRjnJVyyGztcOM4HgAAYK8iFAYAbIs73vXHrXD0+qO3Bwaou7FoX22/dQwAIJQXCqduLzQD2Km8dM5X7Q6Fq5KfCq7rV1tMSfzIvFSvek8EsccPCTVrdyYk5qSldMU8aAuwtaSk8ESznkhdVpeykvSWsXBnHZ+qdAfSVyoyf8y0a5+3D2e/JI7kpaL7t9yZtmbfF1elcDzpzobWetNzzf3Vz89Leqo5u3fiYNbU65fk9guFTT/vTnX0x+jX1rDxCJopfG1Nyqcy/ccHAABgCxEKAwC2xd/83d/L9//MG1sB6Y++ajkwRN1NRfto+6t91zEAgFC+ULZxdkYmzdedyxh0hcIX8m69zZmdWpX8dTpTeEFW+yWUjTWprsxL2hw7caIo5ZWqrLl57JoUj0y4S02kT+nzZSmeSkuicwby1bJk9bkb0jK/rMs3lKQwl5a42V9bwO2GqpMSn5qQxNF5KWq9W5PuzOjUyzIS35eSvG6/rOGw2daZ6TPDt18o3JDycR3jjJTsGERpa9h4dIXCNSkc1jA47o2P2ddsqrn0R9AMbQAAgC1CKAwA2Da/9c5yKyR9zkveGhik7qaifbT91b4D2GWuVmX+5v3i6A3Kbu4zCzeKtpm6DamcmHTDQ/8yEp2h8Np90+axI7nz3hMb1LiQl6SjxzB9uikjM4tFKV+oSSPwRnXdyyU0VmbMeCRl/qL3hHVpQZJmnzMrzcS2fjrrBrpts3GN2mLSHNv3vBeqTp6o+NZYrsnCjdpGU8+3TrIuo9F/LHqEwo26VJcybtjrHC+3jhe5rQHj0RkK15fT5vGkzJxtT67rZ3QJkPXxAQAA2GqEwgCAbfPkX/9dKyTVcvDX3hsYpu6Gon3z91X7DmB3qZ7U0FbDyWZxeixJEEnn8g1XK13LSHSFwksBSx24vPCzo0S64VljTSpLeckcijeXa3DLhCSPFzpmEHeHoJUTpu63Z2Wh8yZu3izaXss2uNwQNSELl/yPYzJz1nvsWmuu+/vCjpm1l5vj17uPweOyXrSfRakFhuAdOtvaNxSuS+mYOcaN/nWZreYs7ZgvjAYAANhKhMIAgG31ht/9w1ZQ+kO/dGdgoLobivbN9lP7DGD32fJQ2OhcRiI4FA6aHVuT0lxe8rYc01mtEUPhNg2pX662loCITZljt2ZEd4agXlhrngsth4umls/VutQulKW8vCD54+nWmr2tdnbMtG3yjnOo0L4vb/wihcJH59cDa1164gbH9C0rxUs9Itl+be0bCnvtDgx+Q/oEAACwRQiFAQDb6s+fuNIKS7Ukbz0dGKqOc9E++fuofQawC23p8hFW+zISQ68pHBiuDuh8zj3W9H32WCGhcJRgU8fuUPMGce5SFTckJHVsRhZmdXkFXzu3KhTuDPCvmufdNYmn25akcEVtK6EwAAAYI4TCAIBt99o7/qAVmP7wSxcCg9VxLton2z/tKwBEEhgKG75lJPK6PIM/FLbLDhwMWpLAJ0IoXJ3T4DMbfqO2K0V3CYj19nWGoPYmbT324anOadCdkvkL7Xe0a64L7GvndoXC6nJBprtmQw/Q1r6hcITlI04EtAsAAGALEAoDALbdx/78r1qhqZYfm/mDwHB1HIv2xd837SsARBIWCht2GQkNGNtDYfO9czn35mjxW0uyFrQWbn1VFo40Z7r2CkybN4kL209DVm/XpSomfTe+6w5B7T5Sd3fEnu56vxOSXFw1D7xQt3NNYA1Njzvt7dzOUNioLU03x+C2qjebd4C29g2FzVZ9bjSXOdMePAMAAGwVQmEAwI549W+/pxWc3pBZDAxYx7FoX2y/tI8AEFmPUFhD2eYyEt2hsKqdzrjBcGxfUjInFqSoa+WeKcj88ZR3s7gJSc1VpHfkaI4xG28ew9kvyWMzzfWIT2QkeaAZgMZnK15Yquws5Zw5XlXW3G/UpHBY6zqSuGVBSqYdxcWspHT9Xd8M3OpJPc56HV3XN3NwQpx9ppjj7FQo7LZf9x2LS+58s6eR2xo0Hl3tt+MTl/SpopRXSlKYbZ4j53Bn8AwAALB1CIUBADviT1c/1QpPtfz4/zgTGLKOU9E++PukfQSAyHqGwsbVsmR1eYOAUNh1ZVVKpzKSmrLr38ZkYiolmbmCVEJ2GWRtZUGyRxKtG6lpoBw/lJH5le6d1E5nJenW89/sri4V0w4bJMf2xSV1vCCrbYm0qTO3frM2bWd2sSJrayXJmMfJRS8e3fZQ2HBnNZs6U3lp3t4vYluNrvEIav+1NSn7xsc5kDT7q/YJ7AEAADYXoTAAYMe8fO6+VoCa+OXfCwxax6kkXvZ7rf5o3wAAAAAAGEWEwgCAHfPBC3/eClG13HTiwcCwdRyKtt3fF+0bAAAAAACjiFAYALCjXvL6pVaQ+txfuTswcB2Hom23/dA+AQAAAAAwqgiFAQA76gN/8metMDX+M3n5idc+FBi6jnLRNmvbbT+0TwAAAAAAjCpCYQDAjvvZE29vBao/8vJ3Bgavo1y0zbb92hcAAAAAAEYZoTAAYMf9wR8/1gpVv//nTsoLfv0DgeHrSBbTVm2zbb/2BQAAAACAUUYoDAAYCS9+1UIrWL3xlqXgAHYEi7bVtlv7AAAAAADAqCMUBgCMhHd/oNoKV3/gyG8HBrCjWLSttt3aBwAAAAAARh2hMABgZLzg5Xe0AtbnveKewBB2lIq20bZX2w4AAAAAwDggFAYAjIx3lh5thaw/mD4VGMSOUtE22vZq2wFsv/qlkswfS0l8X0xiMVP2xSV1LC/Fx+pejeGsreQlt7zmPdoa23EMAAAAIAihMABgZPy/a8/K8469pRW0Pv+V9wWGsaNQtG22ndpmbTuA7dSQ6smkOLGYODekJb9UkvJKWUpLeckcnJBYzJHEbRUZLhquSM7sN7W0lYHtdhwDAAAACEYoDAAYKQvv+WArbL3+F+YDA9lRKNo2205tM4DttXbftDgxR6bvXA0Ifhuyeqd+PybJO2vec4MgFAYAAMDuRigMABgpT/19Q57z8ydbgeuPHn93YCi7k0XbZNunbdU2A9hGjbLMODFxjpV6zASuS+mYIzEnI6Ur3lPnchKLpaTwhPfY8j//REFSMW8pCrd4z9s6F1elcDwpE/q9fXFJz5Vl7Zq7l6aNHMOon81L+ob9bqAdc/ZL4kheyuTGAAAA2GSEwgCAkTN/zx+th66/eHtgMLuTRdtk26dtBbC9Gg9l3TA1+1CfP8icy7nhaua0Fx1HCWwba1JdmZe02S5xoijllaqs6WHcOpMSn3Jk4lBeiitlKZ5KS9zUcw4XpZXbbuAYDVNnMuZI8pYFd//lZVNnSsPhGSm3uromhUMaJOek4j0DAAAADIpQGAAwcv76b59qha5afvTVy4Hh7E6UH331e9rapm0F0MfVqszfrLNfHdl/87xUr3rPD6l2dyo4eO3kzch1bqs2H0cJbF0BSzu4dTQALoh/QQoNqLVfMytearuBY1RmYxJ7Yfv+5eK8JPbFJX/Oe0woDAAAgE1AKAwAGEn5t7+/Fbz+0EveGhjQ7kTRtth2aRsB9Fc9OekGqrY4sxuLM93wNEoo7AWvMXu8DYfCjuRa4axl6upSFpsQPNcWk6ZOXDKLFaltMDgHAAAAeiEUBgCMpE+v/W0rfNVy8NfuDwxpt7NoG/xt0jYC6G+zQ+HanYmOgDXEWlGm9XibNlM46JjezN1DheYSEhs5hs6oPjRh6jXHaWIqJZlTRan6qgAAAACbgVAYADCycm97oC2EHaWibQMQ0SYvH7Glawq7hgiF7brCGzmGp/FEVYqL2fUbzsXikjvXp68AAADAAAiFAQAj6+N/8dnAQHYUirYNwA5plGXG8c3ODdSQ8nFHYrG0FK94T7nB7KTkL3iPPWv3TfcPbEO2deuatkye9M9GHvIYQa6Yvl5n+nqsJF60DQAAAGwYoTAAYKT9j/nTgaHsThZtE4CdpSGrzjxOnqwGhKUNWb1Tvx+T5J2+27ZdyMukeS697N+i5t24LUooHJPJExWz93VryxlzHF8IPPQxTJ2jcZk4Uuzoz6rM30goDAAAgM1FKAwA2NUqlYob5Gj5whe+4D0LYPw1pHoy6Qa/zg1pyS+VpLxSltJSXjIHdV1eRxK3VTqC1Krkp8zrgZOUGa1/piC5QxMSPzwtibbA1tTT2bkHc1JcqcqapsBeKOzu9+i8eb4sxbmUTJjn4rP+oHj4Y9igO3E0L4UzZXfb/JG4OWZccuftEbzlKmI52djKzAAAANjLCIUBALvahz70IS/IicnnP/9571kAu0X9Uknmj6Ukvq/5cx7bF5fUsXkpXQqZV3ul4gatGuZq3fRcReqXC5JqC2xFaqezknT36UjuvHnCC4VzZ6oy723vHEhKdmm1ewbvsMfQ587kfGsJO7L/pqwUHvMfgVAYAAAAG0coDADY1R599FE3yNHy93//996zADAgGwqf8x4DAAAAY4xQGACwq334wx9uhcJPPfWU9ywADIhQGAAAALsIoTAAYFerVqutUPjv/u7vvGcBYECEwgAAANhFCIUBALvahQsXWqFwvc69+wEMiVAYAAAAuwihMABgV/vIRz7SCoX/5m/+xnsWAAAAAIC9i1AYALCrPfbYY61Q+MqVK96zAAAAAADsXYTCAIBd7WMf+1grFP7sZz/rPQsAAAAAwN5FKAwA2NUuXrzYCoXX1ta8ZwEAAAAA2LsIhQEAu9rHP/7xVij85JNPes8CwOiqny9I7khC9jvN167Yvrikjs1LOeDvWmsrecktj9MfvCqS816TQ8tspVnVvblfSgpPNB8CAABg8xAKAwB2tUuXLrWChr/8y7/0ngWA0VRbmhbHvF45B5KSOZGX/FxeZo4lmwGxk5DcuYZXUzUD1tTSGIbCBzNu3wLL6VqzKqEwAADAliEUBgDsap/85CdbofCnP/1p71kAGEGNssw4MXEOF8SLRdfVzfeu0zB1wfe9MQ6F7WzgXgiFAQAAtgyhMABgV6vVaq1Q+C/+4i+8ZwFgBD1RkFSPkLd2Z0JiTlpKV8wDr659fWsPT+uyupSV5AHH/Z476/hUxTzb4UpF5o+lJL7P24ezXxJH8lLR/Vs2mL24KoXjSZnw6k3PNfdXPz8v6akJd/uJg1lTzz+TOcgGQ+Fra1I+lQnv24W8TMYcyZ3zHruqktdA3cmZr3zcuglZuOQ9BgAA2EMIhQEAu85jn3hEHnzkLvlfv/9yedNdL5H//vLvkVt+84fckr8r7T6vRetoXQAYDc3w0jm8IKtdCW6HxppUV+YlHYtJ4kRRyitVWXPz2DUpHplwl5pIn9Lny1I8lZZE5wzkq2XJ6nM3pGV+uWzqlaQwl5a4BrZT+fXw1A1mJyU+NSGJo/NS1Hq3Jt0lLlIvy0h8X0ryuv2yhsMavM5IuWcuvJFQuCaFwxoGx72+mbbMptyger1vZv+mX5MnffFvK0BvD4CrJycldp2vrwAAAHsIoTAAYOx9/gtX5eEPv0sWl2da4e+gRbfVfei+ACCSq1WZv3m/ODFH9t88L9VNePloXMhLUtcP1n3elJGZxaKUL9Skcc2r0KZ7+YjGyoxpT1LmL3pPWJcWJGn2ObPSTGzrp7NuoNu5NENtMdkexLrBbEwmT1RkPeutycKN2kZT77L3lNF4KOu2O3feeyLQ8KFwfTltHk/KzNn21Ll+Juueg2bfGlI+bvZ/qCB2VOqnMxK7Li5xM66Z0zZtb/Zhco5IGAAA7E2EwgCAsfboYw/Ia377xwKD3mGK7kv3CQD9uDNN3RmozeJECTqjaKxJZSkvmUPx5nINbpmQ5PFCxwzi7lC4csLU/fasLKzo7F9/ac4q7hvGukGsb0atFwrPnPUeu9akcMjs64Udax9fbs7IbV+6oZMXCocVf/vaQuG6lI6Z79/oX1PZ8paHOF52g2s3BI5lpOSNVWXWkdiJohTN9q1z5M4e7lxmAgAAYO8gFAYAjKWPfuKsvP6tLw4Mdm899SNy290/Lr+9nHLLW07/lLzt/Te7Rb+2z7/+rqRbN2gfum89BgCE2bJQuE1D6perrSUgYlM5qbRmJHeGwl5Y62tTVzlcbM2gdV2tS+2CLv+wIPnj6db6wq2w1AuF28NT7zi+2bgub5mGSKHwwYzk5/Ld5bQv8m0Lhb1jesFvu472eO3IPqQ1mzOCdYZw7e5UK1RuBsfZPktdAAAA7F6EwgCAsbNUekNXiPuq30rIG+95gdxe+ulWABy16Da6re6jc7/vKb/FOyoAdNiC5SN6Op+TyVhMpu+zUWxIKNwZ1gbRth9q3iDOXarihoSkjs3Iwqwu0bANoXCUAH3YUNgLgt2Qfq0o03aZC/fGctNSXPOWmDhW6r75HgAAwB5BKAwAGBu63q/eIM4f2mbzN7izgoPC3mGK7kv36T+GrjfMWsMAtlp1TkPaHrNXrxTdJSDWQ+DOUNgLOyPMgK3O6SznlMxfaI9Fm+sCj2IoHGH5iBPr+3RncZu6Ve2PvZlcoyxZc+yZFdOGtvWFAQAA9h5CYQDAWPjLz16S/F3ptrD2dQsH5a0Pvjgw3N1I0X3qvv3H0mNrGwBgqzRvEheT+K0lWeu6sVxDVm9Pid5oLX/Be6orFF7fR+rujujUXe93QpKLq+aBF+p2rgmswetxZ0RDYdO6Pjeay5zxhbxmWyc2Lekjpj+t2cVrUjwck8mDSZn07RcAAGAvIhQGAIw8naXbGQhv5uzgsKLH8B9T28CMYQBbpyGV2bgbwsac/ZI8NtNcZ/dERpIHmmFtfLbiWz7BmyF7MCfFlaqsud+oSeGw1nUkccuClFbKUlzMSkrXCvatR1w9qcdZr1NenpfMwQlx9pniD3ZHKBRe71tc0qeKUl4pSWE25d6MzzncEXB7s4K17evLbXgziPX5g0EzjgEAAPYOQmEAwMjzLxmhSzvo+r9BIe5WFD2WfzkJXUoCALbS2sqCZI8kWjd9i8UmJH4oI/MrbRGsq3Y6K0m3niO5896TUpfKqfUgObYvLqnjBVltWy3B1Jlbv7HcxFRKsosVWVsrScY8Ti56kelIhcLGtTUp+/rmHEiadlcD1gb2lpuIJWTB/yGPszPudok7iYQBAMDeRigMABhpnTeV285A2BY9pr8N7/kAN58DAAAAAIwvQmEAwMj66CfOtoWx27FkRFjpXEpC2wYAAAAAwDgiFAYAjKzXv/XFrRBWb/wWFNZuZ/HffE7bBgAAAADAOCIUBgCMpEcfe6AVwOqavm998MWBQe12Fm2Df31hbSMAAAAAAOOGUBgAMHI+/4Wr8prf/rFW+LqTy0Z0Fv8yEtpGbSsAAAAAAOOEUBgAMHIePv+uVvD6qt9KBIazO1m0TbZ9zBYGAAAAAIwbQmEAwMj53eXXtELXN97zgsBgdieLtsm2T9sKAAAAAMA4IRQGAIwcG7hqub3004HB7E4WbZO/jQAAAAAAjBNCYQDASPnoJ862wtZbT/1IYCg7CkXbZtupbQYAAAAAYFwQCgMARsp7PvCWVtg6SjeY6yyvvyvZaueDj9zltR4ANqIiuVhMYoHFkf03pCW3vCp1r/agGhfmJT010dyfMyOVa943dosnCpLqGjct3tgtVYceO7W2kjfjv+Y9AgAAGG+EwgCAkTK/9CutsPW3l1OBgewoFG2bbae2GQA2zguFj85LeaXcXpYXJHuoGejGT1a9+oOoSeGFZt9TGVk4o/scPlweWTYUPpiR/Fx+vZzISMoLw53DC7J61as/kOa5SS0RCgMAgN2BUBgAMFIIhQHsXV4oPFvxHneqSeGQznzNSrnhPRVZv33vAjYUDulj7e5pccz347dVZeDhIxQGAAC7DKEwAGCkvP6tL26FraN4kzlb3nL6p1rtzN+V9loPABvRP7it3Z2SWCwlhSe8J1x1WV3KSvKA05wNeyApmVOV9ZnA53Lu8/7SCjevrUn5VCZ8W+Vub455tihprefsl9Ti6vrzF1elcDwpE7pv873pueb29fPry1VMHMyaep1RbJ92q7BjB+kTCuvxike0/xkp2YPY/beNp+F/vmtZCvP8J8sy45g2Bxyr8VA2eJ8AAAAjhFAYADBSbNCqJSiMHaXibysAbFy/ULgh5eMdoaasSfHIhMSchKRPFd2lJoqn0pLQwPJwQWpa5cqqeX5e0rpvb2mK6hMa0NakcFgD2bi3bUkKsyk33G1tq9yA1BHHiUtmseQuZVG6aJ+flPjUhCTMfou6/a1JdzZu6mUZie9LSX5Zl77QcNgc25nxzXCO0G4VduwgfUNhG9jGZMbeHzRKKNxYk6o3fokT2taqrJl+VGY1pM6Zs+bnnaMjxfZwGwAAYMQQCgMARoo/aA0KYkep+NsKYA+6WpX5m/eLozcyu3leqkOtVevXIxRu1KW6lJG4+b5zvNxa/qCxMmOOn5T5zqD00oIkTbtmVmzN7n3Xl9NuqDtztpXUuupnsm6fWtu6AWlMErd3zND1np88UfEtx1CThRvNcTRQvew9ZTTDWEdy573HUdsdduwgEUJhuZCXSVOnNVM6SijsClg+wt2X6dM577FqlCVr6qWXiYQBAMBoIxQGAIyU2Tt+uhW0jsvyEW+86+e91gPYS6onJ93A0pagpQQG4wW3oWVCkseLUrvmVTcqJ8zz356VBXtDulbxZga32tQZCteldMw8vnFhfVZuS1Xy15nv2fDZC2bbwk/lPd+adetaa657/ELfbF91uRnY2n1EbnfYsYNECYW9OpsSCnvj5D/v9dMZs11aile8JwAAAEYUoTAAYKRwozkA42LLQmFviQe36NILNzgSm8pK8VL7jN5WAOtrQ1c5XDS1VGco7G3rm3W8zvveoUJz2z6hcPvzHdtaXhjbrDtAuzc7FD6fay5vsSmhsLkG5sw10FpCwgvaj5VYOgIAAIw8QmEAwEghFAYwNrZr+Yir5nl3Td7ptiUZQgPYQCMYCkdp9yaHws2ZvL4lHzYYCjeXkJiU/AXzdb0kGVMnc5pIGAAAjD5CYQDASHnPB97SCltff1cyMJAdhaJts+188JG7vNYDwEaEhMLqckGmHfO9qZxUWuGzvfFc1ncDtzCd+46wfMQJr+6mh8IDtHtTQ+G6FI+Y7/tveOfu3wt1fdbumzbPRwiFvTWUJ+eqXuAc5VwAAADsPEJhAMBI+egnzrbC1ltP/UhgIDsKRdtm26ltBoCN6xEKG7WlaXfpg/ht1dbs3uYN22KSursj2nXX8J2Q5KK9QVv3vvvdaC5zxpvxuumh8ADt3sRQuHa3N34nq94zhnfjufYbw9WafYgUCpvai0mJXZeT3PGYOLcGzbwGAAAYPYTCAICR8vkvXG2FrVpG8WZz2iZ/GwFgc/QOhdfDyrjkztvo0Tx32DHPOZK4ZUFKK2UpLmYltc/Ua5tVHLRvu21c0qeKUl4pSWE2JROmnnPYd6O4LQiFI7d7mFD4YEbyc/n1ciIjyQN6rI5+uaqSd5fmSMrMUknKZwqSOzQh8cPTkmgLhb3Z0wdzUlypypo/+b20IEnTD8dxZGaFSBgAAIwHQmEAwMj53eXXtALXN97zgsBgdifLbxZ+otU+bSsAbI5+obDhzqTV4DQv6/Nd61I5tR58xvbFJXW8IKttS9uG7PvampR92zoHkpJdrLbfKG1LQmEVod3DhMJdZULihzKSX15t75d1pSL5I3E3DNc2pOcqUnfHuX2t4drprCQ1tNY1ic97T7pqsnDQPO9flgIAAGDEEQoDAEbOw+ff1QpdX/VbicBgdieLtsm279HHHvBaDQDYm5pBuNMrzAcAABgxhMIAgJGjS0jc+tvrN3K77e4fDwxnd6JoW2y7tI3aVgDAHuYuH9F9szoAAIBRRigMABhJOgPXhq+vzN8gb33wxYEh7XYWbYO2xbaLWcIAsHfVzy1Ifs5bB7lzuQwAAIARRygMABhZs3es39DtdQsHA4Pa7SzaBtsebRsAYO+qn8m66xBPHMxJ+Yr3JAAAwJggFAYAjKyPfuJsK4TVspPLSPiXjdCibQMAAAAAYBwRCgMARtp7PvCWtjD2jfe8IDC03cqix/S3QdsEAAAAAMC4IhQGAIy8+aVfaQWyuqbvdgbDeiz/OsK/u/war1UAAAAAAIwnQmEAwMj7/Beuyhvv+vlWMKtlO5aS6FwyQtugbQEAAAAAYJwRCgMAxsJffvZSVzCsN35764MvDgx0N1J0n/6bymnRY//N33FveQDbo/5YUfLHUhLfF5NYzJR9cUkdm5fyXnkZOpdz+5075z021lbyklv2DUBAnZ1Vl+KR5vlKL9e95zpVJKfnM7A4sv+GtOnjqtnTxgx0/Vxbk/JcWhIHnFbd9FxZ1q5533d57Z6teI+7VWb1WDlTs1397Lxkbtovjm7v7Jfk8YKsbrCDg/181KVyKiNJr+7EVFryK50Vh+2f2bcZO9sO50BSskvbfP7a1KV0zJzHQwVprzr8+Wu5XJBpJyWFJ7zHbRqyupSVpHcN6RjnztS87w0v+jhsQv9Cx25ww5y/+qWSzHdtk5fiYxu9mpq2pU2RXkuiGvKcjmEbtuTcP1GQlO5rKifVhvdch60fv3U7ey2hF0JhAMDY0Fm6/qUktOjSDps5a1j35V8uQosuGcEMYQDboy6V2xJugDZxKCsLy2Upr5SluJiVlPtmKi65cyHv8HaTrsC3+eY8teRLMEYtFL5SlHRsUuJT5k3swQUJjsS8kOHovHte28rygmQPTbh9ip+sevUHNej1U5PCYdNeJyHpU8Vm3VNpiZvtncMFXx+GC0dqS9OmLY4kTH+LZt+lpRlJOqbeVF6G6+Gg/WuYdsXd55v9K8r8Ud3ekekl/xkapn9eiBibkNRsQUorJSnMpmTC7Cd+W9UceRgb+/lvjrept9mh8OWiZKb0+8GhcPWkjrEdB98Y3zdsvDroOGywf0b42A1imPPXMOOXdLdxbkhLfqnkblNaykvmoL4emJ+f2ypmz8ParjZFfS2JaphzOm5t2MJzb0NhU8Jej7Z+/NQoXEvohVAYADB2lkpvaAtttbzqtxLu+r+3l346MOztVXSb3yz8hLuPzv1yUzkA26l2d8p9kzR9d8DbnqurMn/IvIlzMlK64j23ZzTfnLeFwiOmtpg05y4rxdMz5g3wpOQveN9o0y9kMG+G9Ryb/ZTDs79Qg14/jZVmW2fOth+s8VDWPO/IzIp9fohwpFGWGScmcbNN294v5GXS7GtmxXs8gIF/PrxjtV83DSkf18Ah5wumh+jfWlGmzTbJO9vbUp2bNPVMG4ZIcjb0839ZQ6C4xDW83axQ+FpdqktZSWiQr9sHhcLuH0M6x6EhlRNmHJyZbbmOh+6f1XPsohvm/K3d1/zDyfSdQTPMG7J6ZzOs7rzOotquNkV/LYlq8HM6bm3Y0nPvC4U1+A/6fbT14zcq1xJ6IRQGAIylj37irMze8dNdIa6WW0/9iLz+rqS8+T0vcstbTv9UKwDWr+3zWkfrBu1D963HAIBt44VosSPFgDdPngt5SUylJO9/s6Qfs9SPx3sfs9SPsGdOdcy8cWfVpqRwcVUKx5PubEb9KP/0XLNe/fy8pKeas1QnDmZNPd/+g7YN+yhnlLYY9bN5Sd+wvqRA4ki+/WPM/lnAbW9utXjBVNBM4SHGYr8beE1I3LShEhS2RVKThRvNfo6VpO6dR+fWsnnL26l/yNAMcQLCt36GuH6qtyfM+ZxphQItV0uSMe1cD1MHD0fqpzPm8XDhdqAh+rd2OiuJA90BbfWkBrf+gHCIUNG7LrMPtXdwbWn7zl/LVdP+KXO+7q4127lJoXCzLzrDdF6qZ7yfm45+Nc9zQH/dQN5p//mMYqhxGK5/rr5jF9Ew7fa2cfR1o/lMAG9GetgfA3rZxjZFfy2JavBzOlZt2Opz770+pW4vyMx1po0Bn87Y8vEbmWsJvRAKAwDG2qOPPSC3/nYyMNgdpui+dJ8AsN10FowGMJ0hU2/exyxj9uPx6x9hb/uYpRuE6tIGE95H+U29W5sf6Uy9LCPxfSnJ68eKlzUcNm8U/TP8Wts6MnEo7y4DsP5RzqIvQInWlobZn4ZFyVsW3H2FH9MLfBtrUl0xdczjxAndb1XWtJ6/jmvYsWj2x50N2bbsw5o3azcgSOrkBmAxyZxuvvWtzGo70lLseiPfL2TQWax6zO4gs5/hrp8QHf0ZJhyxAVvtSkXmj/X5Y0IEm9K/aw2preTcJSzaP1I9eP/cPwS80JznqRkp2ZzniZLMmGu5/ecimuH711wiw17jdtzbjz9M/8xPwHJ2fY1k9+emO/yt3qbXesDPSKMsWXNMDVsHMdw4DNe/aGMXzTDtjryNGXt9rV7/eYxmJNrU9VoS1bDnNMAItmGrz30rFF5ak8bZGffYncsSbfX4jc61hF4IhQEAY0/X+9UgV9f+DQp6oxTdVvfB2sEAIrtalfmbdbarI/tvnpfqBl8+WjNEL3tPRFBfTpttuj9mWT/T8TFLN9CJyeQJ/0f5vdmtHcdsvpFzJHfee8Lbti1YNbSe/xhR2+K+EX1h+77k4rwk9sUlbwNe75jrgW/zzXnbDKGOOhsbi6AZntFD4WYI7JsVa46hb3K7bzjXI2Ro6Ef1M82w/XjQLOPehrl+gtn1HP0f/ffa3bfYsVqT4mHz+LqEOa+OJG/VtWbLUpyzIf3goelG+2dnvWrZf0upI5getH+ea2asju5vq7P/mOnbEKH3sP3TmbqOb5ZdcLA5ZP/83J8b/89HU+DPs6vHtd7DcOMwXP+ijV00w7S7tU3nLOtOXsDn3DbYStw736ag15KoNuGadY1mG7b63PtDYfPLpbmcS8cyEtFC4eHHb3SuJfRCKAwA2HV02YcHH7nLvSmdll+89fpW+PvGu36+9bzWYYkIAMNqfgR9/Y2hM2D40an5Bi3CG6gW/dil2ebGoJuaVSWvHxm14aIXhM60veR5oWdnoOOur+kLZN1tgz4Gbt4w60dD3Tdy0dvSXHs3LpnFitTCgnSvvdFD4Y2OhdF1zIjsR2Tblovwjtl1w7l+IcOEJI8XpTZEqDj49ROkLuVbmzdmC7yR18GM5OfygSVzUI9vAwYbqHfPFF1bzrSH9BFttH+183qDo5IU5oJuWDRo/1RNikcmZP1mSHZmuiOJE+Xm7NoBDNU/87M67bSfK3c/YaHwQP3r4P58dLbPm9keGKR6xxzwdXG48zxE/yKPXTTDtDv6Nts3lpvXprDXkqg24Zod4TZs9blvD4WNq5WuZSSabdi68Rudawm9EAoDAHa97/3e7zX/IRGTubk57xkA2LjNDoVbM1Ujz+rygrfAWaXe92zAERh4dtSxvDeTrbqBYZDybz9AW3SG9aHm+sVaJqZSkjlVlKq/EV3tbb5pDA+FBzh+4FgYYc/30Zyh3B1yNm841nnDOe/N79F50Tuqu0WXz7jBMW/Ws1K8NPwb3sGvnw4661VDTvPGe+ahAWY4e9oDBm/MA5fBqMiM2degM9823D+f5ix3/0zuQftnz3t3SNH8qLYjmTODxcKD968mCwe7b+TntrPzZ3qI/nUJeR1wt9vEmcLDnedB+zfI2EUzTLtrdyYCx7SLd1PD7fiZ2ZQ29XwtiWqD1+yIt2Grz31XKGx0LiOx1eM3OtcSeiEUBgDset/3fd9n/mMiJr/xG7/hPQMAm2CTl4/Q0EWDqp7r7+ms1AMJSd+5Kg0bvO10KOwuBTBAWzyNJ6pSXMyu33DOvOlrBWxd7W2+OR+9ULguxSPa9vDSPoM4JGTwbnYVc6aHDz1N+we7fnzq5vgaTDtJyV8I2n7QcMSujRwUOPTfV6CN9K9LM5heb8OQ/es1M32r++ddrz3L0P0L4B6v+3Vgs9cUHu48D9i/gcYuoiHaveXryu5Em/q+lkS1gWt2DNqw5ec+IBQ2R21bRmKrx290riX0QigMANj1pqam3P8oue2227xnAGAE6ZtzvdlZjzvFt89wjLBkwgnv7Z5506Wvg+2BZ3BYGxwKd854VeYNm2nvpDvraIC2BLli+q517F3Ku9rbfHMeHgpvdCyMsOd7ubQgSbONc2xhfeZvqxQl53602H/DuWY/AkMG9+Ps5ntT5k36MH9gGPj68VwuSUYD6amMlEID6R7t9nQGDKGzxEw7NSxM3DlgWDhE/6qn4jJxXfdd920b1memDdq/LQiFB+3fldWAa64s80e1XTPNmzhetHsa/Px1cX8+us+nrssbeJ69m0J1LdPSz1DX8YD9G2jsIhqm3XabztfgNnqtOabtQTeu7GO72xTptSSqIa/ZcWnDVp/7wFDY8C0jkT8xZNujGplrCb0QCgMAdr3v//7vN/+xYd7o53LeMwAwmmp36nq7jkwHza7T4NR9k5STqjdppt/N1VofYQ8MPAcJhQNuzOauDbseFkdrS00KR+My0RVSrMq83vRu6FB4o2NhhD3fQzP4DArMm5ptikly0Z7P3iFDbWnaDWjit1XbxjqqQa+f1gzlvkH0EOGIF5h3fkS/efOh8DHrZeCfDzewdLpmqjXH2b/kx+D9C7ve7Ee01wPL6AY+fwHcdnaFMEOcv07uz0dA+HulKGmz72RbyO/NSBzyplCDj8Mm9M8IHrvohjl/a/c1r8XkyWpAcNuQ1Tubrwnt4xvdtrUp8mtJVEOc0zFrw5ae+7BQ2LCvUfq7aWvHb1SuJfRCKAwA2PV+8Ad/0P0Pn9nZWe8ZABhVNSm9TG+oEpOJQ1lZWNYZbM2bYyV0xk3X8gK15h25Y/GOm13F2m+kFRh4DhYKa7CQODrvzqIrzjWP0R74RWuLfZOYOJqXwhnTvzMFyR/xbiJz3ttbV3u92ZcHc+b4VVnTal11NjIWRtfz3viEBkm2TUGzRT12plRrtmq/kMH0wT2mbyzCzlOgwa6f6slm3cTRXOBNlBbO2bfxQ4Qj5sqozOr++103W9e/1jXRdTO4zjYM079VWbjJ2/dcQUrav1PNdrTfxG4r+9ctONgcpn8d3J+PgFDYjGL1tuZ5Tt6q41CU+aMJ92d8esn/k7GV47AJ/TOCx26rz58Zv5NJNxhzbkhLfklviFiW0pLexEzXUjU/P7dVOgK10WtT9NeSqG0f/JyOVxvUFp77HqGw+9rsLiOx1eOntvJawmYgFAYA7HrPec5z3P+4eN3rXuc9AwCjbW1lXjKHErJf37Trmyld83G2KKtB74WurUn5VEaSBzQQ1bpJyS52zMoJDEJD3tiFhMK5M1WZPxJvhqx6jKXVjjerRpS2GLUzOd9awo7svykrhcd8tQLaWzudleS+Zv3cefNEUJ+GHguj63lvfEKCpMbKjNv+fjNC22841z9k0GUkdPzX7xI/yBvwpmjXjxdq67FCynqgMGzo1pDVZXOup/TNf/N8ZLquh63qn0evibm0xN1rJyYTU2nJLXdeu0P2r2Pfbv9OlWXtmvd91xb3r0NwsDns+fNxfz6CQmFVl9Ul8/Pp/dy5Y3ym808lWzkOm9A/I3jstuf81S+VZP5YqnUtxfbFJXVsXkqXgjYatTYN8loSte2DntNxa8O6LTn3PUNh42pZsu61sJXjt25rriVsBkJhAMCu98M//MPuf0S89rWv9Z4BAEQWFqJiG1VkZoA34OOH/u0N4zoOo9jucb6mRqHtjN/GjPP4wY9QGACw6yUSuuZjTE6cOOE9AwCIjFB4x+m6yBO3lmV9uYPdhf7tDeM6DqPY7nG+pkah7Yzfxozz+KEdoTAAYNd77nOf6wYaMzMz3jMAgMgIhXdYXYrHd/Md2Onf3jCu4zCK7R7na2oU2s74bcw4jx86EQoDAHa9G2+80Q00br31Vu8ZAEBkhMIAAAC7DqEwAGDXe/7zn+8GGq9+9au9ZwAAAAAA2LsIhQEAu97BgwfdUPhVr3qV9wwAAAAAAHsXoTAAYNf7sR/7MTcUfuUrX+k9AwAAAADA3kUoDADY9W666SY3FH7FK17hPQMAAAAAwN5FKAwA2PVe8IIXuKHwr/7qr3rPAAAAAACwdxEKAwA2xeydZ2Tq8BxlA0XHEAAAAACArUYoDADYFH92+TOBQScletExBAAAAABgqxEKAwA2zWvecn9g2EnpX3TsAAAAAADYDoTCAIBN838+/kRb0PljMyV5wevKlICiY+MfKx07AAAAAAC2A6EwAGBTvSL/7lbQmfjluwIDUUrZHRs7TjpmAAAAAABsF0JhAMCm+tBHL7fCTi0/fuKBwFB0LxcdE/8Y6ZgBAAAAALBdCIUBAJvupbfd0wo8Ey97e2AwupeLjokdHx0rAAAAAAC2E6EwAGDT/dGHP9EKPeM/80a56X/+YWA4uheLjoWOiR0fHSsAAAAAALYToTAAYEv8/Gvf0Qo+n/vydwQGpHux6FjYcdExAgAAAABguxEKAwC2xIMf/Fgr/Iz/7JvkJ379/YEh6V4qOgY6FnZcdIwAAAAAANhuhMIAgC0zfetiKwD9kV8tBAale6noGNjx0LEBAAAAAGAnEAoDALbMe1f+TysE/f4jvxUYlO6lomNgx0PHBgAAAACAnUAoDADYUqlX/E4rCL3xFb8fGJbuhaJ9t+OgYwIAAAAAwE4hFAYAbKl7HvxwKwz9gZ9/c2BguheK9t2Og44JAAAAAAA7hVAYALCl/uEf/1GSv/y/WoHo87L3Boamu7lon23/dSx0TAAAAAAA2CmEwgCALfd7959rhaI/+AtvCQxOd3P5wV+Yb/VfxwIAAAAAgJ1EKAwA2HJPN56RxNHfbgWjzz/+7sDwdDcW7avtt46BjgUAAAAAADuJUBgAsC3ueNcft8LR64/eHhig7saifbX91jEAAAAAAGCnEQoDALbF3/zd38v3/8wbWwHpj75qOTBE3U1F+2j7q33XMQAAAAAAYKcRCgMAts1vvbPcCkmf85K3Bgapu6loH21/te8AAAAAAIwCQmEAwLZ58q//rhWSajn4a+8NDFN3Q9G++fuqfQcAAAAAYBQQCgMAttUbFv+wFZT+0C/dGRio7oaifbP91D4DAAAAADAqCIUBANvqz5+40gpLtSRvPR0Yqo5z0T75+6h9BgAAAABgVBAKAwC23Wvv+INWYPrDL10IDFbHuWifbP+0rwAAAAAAjBJCYQDAtvvYn/9VKzTV8mMzfxAYro5j0b74+6Z9BQAAAABglBAKAwB2xKt/+z2t4PSGzGJgwDqORfti+6V9BAAAAABg1BAKAwB2xJ+ufqoVnmr58f9xJjBkHaeiffD3SfsIAAAAAMCoIRQGAOyYl8/d1wpQE7/8e4FB6zgV7YPtj/YNAAAAAIBRRCgMANgxH/w/f94KUbXcdOLBwLB1HIq23d8X7RsAAAAAAKOIUBgAsKNe8vqlVpD63F+5OzBwHYeibbf90D4BAAAAADCqCIUBADuq/Cd/1gpT4z+Tl5947UOBoesoF22ztt32Q/sEAAAAAMCoIhQGAOy4nz3x9lag+iMvf2dg8DrKRdts2699AQAAAABglBEKAwB2XOmPH2uFqt//cyflBb/+gcDwdSSLaau22bZf+wIAAAAAwCgjFAYAjIQXv2qhFazeeMtScAA7gkXbatutfQAAAAAAYNQRCgMARsK7P1Bthas/cOS3AwPYUSzaVttu7QMAAAAAAKOOUBgAMDJe8PI7WgHr815xT2AIO0pF22jbq20HAAAAAGAcEAoDAEbGO0uPtkLWH0yfCgxiR6loG217te0AAAAAAIwDQmEAwMj4f9eelecfe0sraH3+K+8LDGNHoWjbWu00bda2AwAAAAAwDgiFAQAjZeE9H2yFrdf/wnxgIDsKRdtm26ltBgAAAABgXBAKAwBGylN/35Af+vmTrcD1+cffHRjK7mT5UdMm2z5tq7YZAAAAAIBxQSgMABg58/f8USt0fc4v3h4YzO5k0TbZ9mlbAQAAAAAYJ4TCAICR89d/e7UVumr50VcvB4azO1G0Lf62aVsBAAAAABgnhMIAgJGUf/v7W8HrD73krYEB7U4UbYttl7YRAAAAAIBxQygMABhJn17721b4OqpF2wgAAAAAwLghFAYAjKzc2x4IDGNHoWjbdsq1a9fkqaeekr/6q7+Sv/3bv5XPfvaz8jd/8zfuv//4j/8on//85916//AP/yDPPvus+7Vu02g05MqVK2493e6v//qv3a+1nq1jfeELX3D3pfW13tWrV+Vzn/uc1Ot191/9nu77mWee8bZo0ue1bU888YTbJi2f+tSn5P/+3//rfs/Sr7XY42g7bNv+7u/+zj2m9k+/52+XHlOLPr+2ttZqn9bVr3VbS+sou73288knn5Snn37ara9t1K91u062X7rNX/zFX8jf//3fu8fTY2mf9F/lb5v/OLpve250zD796U+7fe30//7f/3OLbmPHQMtnPvMZt632XGpf7Lm0dDvd5i//8i/d9uhxtF/+4/i/1j7pedRt9F/dRr/Wdur+/deN0v7o83o+tZ6eQ22Xnn9tW9D42vOp42r3rf3R+jpu2mY/3daeT92/tl/H2o6BttO2R9mv9V/bNj0vdqx1O3ut2br6te2bHkv3b9ujRc+V7sfS+sq2VfejbdH967/2Z0D/tez1Ys+R/qvj6x8zfaz90f1r/c7j6FhofW2P/mt/brS9ytbXf+02ehytZ39mtI16DO2PHVvLjoceW8dM69mx0zbaa0XradFt9Vj6vB5P6+j4ar/1X73u/P2w9LEWfb3R617ra/u0bToO9vzo9/3b6tf2urT90fr2urF9ttvYduq1pvV0GzvO2latp0W303/916mOj702ta4dO399bZ+l22g/tK4eR7fTY+m/9jj+sdavdRt7XerxdFv9Wturx9Cx0zpKt1f6WPfvf/3Ua9VeA0rral/0X92HHkvr2TZpO+1jS+vqMbWuLdoera//6s+dHUPL9kH/tY91nOw46P71fNnjaF0teiz7OqDttD9f2nfdv15zlu7T1gcAANuPUBgAMLI+8anPBgayo1C0bTtB32R/4hOfkJ/7uZ+T7/3e75X/9J/+k3z7t3+7fNu3fZv84A/+oPzqr/5qK+Cyb7T1Tfejjz4qhw4dkuuuu86tq9vs27dP/ut//a8yOzvrhjeWHkPf3P/hH/6h/PRP/7S7zb/9t//Wrf/v/t2/kx/5kR+R//W//pcb7tj6So/3vve9T174whfKd33Xd8l//I//Ub7jO75Dvvu7v1ue97znye233+6GCn4aCiwvL8tP/uRP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", - "text/plain": [ - "" - ] - }, - "execution_count": 2, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_3_0.png" - } - }, - "output_type": "execute_result" + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "tags": [ + "header", + "hide-cell" + ] + }, + "outputs": [], + "source": [ + "###############################################################################\n", + "# The Institute for the Design of Advanced Energy Systems Integrated Platform\n", + "# Framework (IDAES IP) was produced under the DOE Institute for the\n", + "# Design of Advanced Energy Systems (IDAES).\n", + "#\n", + "# Copyright (c) 2018-2023 by the software owners: The Regents of the\n", + "# University of California, through Lawrence Berkeley National Laboratory,\n", + "# National Technology & Engineering Solutions of Sandia, LLC, Carnegie Mellon\n", + "# University, West Virginia University Research Corporation, et al.\n", + "# All rights reserved. Please see the files COPYRIGHT.md and LICENSE.md\n", + "# for full copyright and license information.\n", + "###############################################################################" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Autothermal Reformer Flowsheet Optimization with OMLT (TensorFlow Keras) Surrogate Object\n", + "Maintainer: Brandon Paul \n", + "Author: Brandon Paul \n", + "Updated: 2023-06-01 \n", + "## 1. Introduction\n", + "\n", + "This example demonstrates autothermal reformer optimization leveraging the OMLT package utilizing TensorFlow Keras neural networks. In this notebook, sampled simulation data will be used to train and validate a surrogate model. IDAES surrogate plotting tools will be utilized to visualize the surrogates on training and validation data. Once validated, integration of the surrogate into an IDAES flowsheet will be demonstrated." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 2. Problem Statement \n", + "\n", + "Within the context of a larger NGFC system, the autothermal reformer generates syngas from air, steam and natural gas for use in a solid-oxide fuel cell (SOFC).\n", + "\n", + "## 2.1. Main Inputs: \n", + "- Bypass fraction (dimensionless) - split fraction of natural gas to bypass AR unit and feed directly to the power island\n", + "- NG-Steam Ratio (dimensionless) - proportion of natural relative to steam fed into AR unit operation\n", + "\n", + "## 2.2. Main Outputs:\n", + "- Steam flowrate (kg/s) - inlet steam fed to AR unit\n", + "- Reformer duty (kW) - required energy input to AR unit\n", + "- Composition (dimensionless) - outlet mole fractions of components (Ar, C2H6, C3H8, C4H10, CH4, CO, CO2, H2, H2O, N2, O2)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "from IPython.display import Image\n", + "from pathlib import Path\n", + "\n", + "\n", + "def datafile_path(name):\n", + " return Path(\"..\") / name\n", + "\n", + "\n", + "Image(datafile_path(\"AR_PFD.png\"))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3. Training and Validating Surrogates" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First, let's import the required Python, Pyomo and IDAES modules:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "# Import statements\n", + "import os\n", + "import numpy as np\n", + "import pandas as pd\n", + "import random as rn\n", + "import tensorflow as tf\n", + "\n", + "# Import Pyomo libraries\n", + "from pyomo.environ import (\n", + " ConcreteModel,\n", + " SolverFactory,\n", + " value,\n", + " Var,\n", + " Constraint,\n", + " Set,\n", + " Objective,\n", + " maximize,\n", + ")\n", + "from pyomo.common.timing import TicTocTimer\n", + "\n", + "# Import IDAES libraries\n", + "from idaes.core.surrogate.sampling.data_utils import split_training_validation\n", + "from idaes.core.surrogate.sampling.scaling import OffsetScaler\n", + "from idaes.core.surrogate.keras_surrogate import (\n", + " KerasSurrogate,\n", + " save_keras_json_hd5,\n", + " load_keras_json_hd5,\n", + ")\n", + "from idaes.core.surrogate.plotting.sm_plotter import (\n", + " surrogate_scatter2D,\n", + " surrogate_parity,\n", + " surrogate_residual,\n", + ")\n", + "from idaes.core.surrogate.surrogate_block import SurrogateBlock\n", + "from idaes.core import FlowsheetBlock\n", + "\n", + "# fix environment variables to ensure consist neural network training\n", + "os.environ[\"PYTHONHASHSEED\"] = \"0\"\n", + "os.environ[\"CUDA_VISIBLE_DEVICES\"] = \"\"\n", + "np.random.seed(46)\n", + "rn.seed(1342)\n", + "tf.random.set_seed(62)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3.1 Importing Training and Validation Datasets" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this section, we read the dataset from the CSV file located in this directory. 2800 data points were simulated from a rigorous IDAES NGFC flowsheet using a grid sampling method. For simplicity and to reduce training runtime, this example randomly selects 100 data points to use for training/validation. The data is separated using an 80/20 split into training and validation data using the IDAES `split_training_validation()` method." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "# Import Auto-reformer training data\n", + "np.set_printoptions(precision=6, suppress=True)\n", + "\n", + "csv_data = pd.read_csv(datafile_path(\"reformer-data.csv\")) # 2800 data points\n", + "data = csv_data.sample(n=100) # randomly sample points for training/validation\n", + "\n", + "input_data = data.iloc[:, :2]\n", + "output_data = data.iloc[:, 2:]\n", + "\n", + "# Define labels, and split training and validation data\n", + "input_labels = input_data.columns\n", + "output_labels = output_data.columns\n", + "\n", + "n_data = data[input_labels[0]].size\n", + "data_training, data_validation = split_training_validation(\n", + " data, 0.8, seed=n_data\n", + ") # seed=100" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3.2 Training Surrogates with TensorFlow Keras" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "TensorFlow Keras provides an interface to pass regression settings, build neural networks and train surrogate models. Keras enables the usage of two API formats: Sequential and Functional. While the Functional API offers more versatility, including multiple input and output layers in a single neural network, the Sequential API is more stable and user-friendly. Further, the Sequential API integrates cleanly with existing IDAES surrogate tools and will be utilized in this example.\n", + "\n", + "In the code below, we build the neural network structure based on our training data structure and desired regression settings. Offline, neural network models were trained for the list of settings below, and the options bolded and italicized were determined to have the minimum mean squared error for the dataset:\n", + "\n", + "- Activation function: relu, sigmoid, ***tanh***\n", + "- Optimizer: ***Adam***, RMSprop, SGD\n", + "- Number of hidden layers: 1, ***2***, 4\n", + "- Number of neurons per layer: 10, 20, ***40***\n", + "\n", + "Typically, Sequential Keras models are built vertically; the dataset is scaled and normalized. The network is defined for the input layer, hidden layers, and output layer for the passed activation functions and network/layer sizes. Then, the model is compiled using the passed optimizer and trained using a desired number of epochs. Keras internally validates while training and updates each epoch's model weight (coefficient) values.\n", + "\n", + "Finally, after training the model, we save the results and model expressions to a folder that contains a serialized JSON file. Serializing the model in this fashion enables importing a previously trained set of surrogate models into external flowsheets. This feature will be used later." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "# capture long output (not required to use surrogate API)\n", + "from io import StringIO\n", + "import sys\n", + "\n", + "stream = StringIO()\n", + "oldstdout = sys.stdout\n", + "sys.stdout = stream\n", + "\n", + "# selected settings for regression (best fit from options above)\n", + "activation, optimizer, n_hidden_layers, n_nodes_per_layer = \"tanh\", \"Adam\", 2, 40\n", + "loss, metrics = \"mse\", [\"mae\", \"mse\"]\n", + "\n", + "# Create data objects for training using scalar normalization\n", + "n_inputs = len(input_labels)\n", + "n_outputs = len(output_labels)\n", + "x = input_data\n", + "y = output_data\n", + "\n", + "input_scaler = None\n", + "output_scaler = None\n", + "input_scaler = OffsetScaler.create_normalizing_scaler(x)\n", + "output_scaler = OffsetScaler.create_normalizing_scaler(y)\n", + "x = input_scaler.scale(x)\n", + "y = output_scaler.scale(y)\n", + "x = x.to_numpy()\n", + "y = y.to_numpy()\n", + "\n", + "# Create Keras Sequential object and build neural network\n", + "model = tf.keras.Sequential()\n", + "model.add(\n", + " tf.keras.layers.Dense(\n", + " units=n_nodes_per_layer, input_dim=n_inputs, activation=activation\n", + " )\n", + ")\n", + "for i in range(1, n_hidden_layers):\n", + " model.add(tf.keras.layers.Dense(units=n_nodes_per_layer, activation=activation))\n", + "model.add(tf.keras.layers.Dense(units=n_outputs))\n", + "\n", + "# Train surrogate (calls optimizer on neural network and solves for weights)\n", + "model.compile(loss=loss, optimizer=optimizer, metrics=metrics)\n", + "mcp_save = tf.keras.callbacks.ModelCheckpoint(\n", + " \".mdl_wts.keras\", save_best_only=True, monitor=\"val_loss\", mode=\"min\"\n", + ")\n", + "history = model.fit(\n", + " x=x, y=y, validation_split=0.2, verbose=1, epochs=1000, callbacks=[mcp_save]\n", + ")\n", + "\n", + "# save model to JSON and create callable surrogate object\n", + "xmin, xmax = [0.1, 0.8], [0.8, 1.2]\n", + "input_bounds = {input_labels[i]: (xmin[i], xmax[i]) for i in range(len(input_labels))}\n", + "\n", + "keras_surrogate = KerasSurrogate(\n", + " model,\n", + " input_labels=list(input_labels),\n", + " output_labels=list(output_labels),\n", + " input_bounds=input_bounds,\n", + " input_scaler=input_scaler,\n", + " output_scaler=output_scaler,\n", + ")\n", + "keras_surrogate.save_to_folder(keras_folder_name=\"keras_surrogate\", keras_model_name=\"keras_model\")\n", + "\n", + "# revert back to normal output capture\n", + "sys.stdout = oldstdout\n", + "\n", + "# display first 50 lines and last 50 lines of output\n", + "celloutput = stream.getvalue().split(\"\\n\")\n", + "for line in celloutput[:50]:\n", + " print(line)\n", + "print(\".\")\n", + "print(\".\")\n", + "print(\".\")\n", + "for line in celloutput[-50:]:\n", + " print(line)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3.3 Visualizing surrogates" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now that the surrogate models have been trained, the models can be visualized through scatter, parity, and residual plots to confirm their validity in the chosen domain. The training data will be visualized first to confirm the surrogates fit the data. Then the validation data will be visualized to confirm the surrogates accurately predict new output values." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "# visualize with IDAES surrogate plotting tools\n", + "surrogate_scatter2D(\n", + " keras_surrogate, data_training, filename=\"keras_train_scatter2D.pdf\"\n", + ")\n", + "surrogate_parity(keras_surrogate, data_training, filename=\"keras_train_parity.pdf\")\n", + "surrogate_residual(keras_surrogate, data_training, filename=\"keras_train_residual.pdf\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3.4 Model Validation" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "# visualize with IDAES surrogate plotting tools\n", + "surrogate_scatter2D(\n", + " keras_surrogate, data_validation, filename=\"keras_val_scatter2D.pdf\"\n", + ")\n", + "surrogate_parity(keras_surrogate, data_validation, filename=\"keras_val_parity.pdf\")\n", + "surrogate_residual(keras_surrogate, data_validation, filename=\"keras_val_residual.pdf\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 4. IDAES Flowsheet Integration" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 4.1 Build and Run IDAES Flowsheet" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we will build an IDAES flowsheet and import the surrogate model object. A single Keras neural network model accounts for all input and output variables, and the JSON model serialized earlier may be imported into a single SurrogateBlock() component." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "# create the IDAES model and flowsheet\n", + "m = ConcreteModel()\n", + "m.fs = FlowsheetBlock(dynamic=False)\n", + "\n", + "# create flowsheet input variables\n", + "m.fs.bypass_frac = Var(\n", + " initialize=0.80, bounds=[0.1, 0.8], doc=\"natural gas bypass fraction\"\n", + ")\n", + "m.fs.ng_steam_ratio = Var(\n", + " initialize=0.80, bounds=[0.8, 1.2], doc=\"natural gas to steam ratio\"\n", + ")\n", + "\n", + "# create flowsheet output variables\n", + "m.fs.steam_flowrate = Var(initialize=0.2, doc=\"steam flowrate\")\n", + "m.fs.reformer_duty = Var(initialize=10000, doc=\"reformer heat duty\")\n", + "m.fs.AR = Var(initialize=0, doc=\"AR fraction\")\n", + "m.fs.C2H6 = Var(initialize=0, doc=\"C2H6 fraction\")\n", + "m.fs.C3H8 = Var(initialize=0, doc=\"C3H8 fraction\")\n", + "m.fs.C4H10 = Var(initialize=0, doc=\"C4H10 fraction\")\n", + "m.fs.CH4 = Var(initialize=0, doc=\"CH4 fraction\")\n", + "m.fs.CO = Var(initialize=0, doc=\"CO fraction\")\n", + "m.fs.CO2 = Var(initialize=0, doc=\"CO2 fraction\")\n", + "m.fs.H2 = Var(initialize=0, doc=\"H2 fraction\")\n", + "m.fs.H2O = Var(initialize=0, doc=\"H2O fraction\")\n", + "m.fs.N2 = Var(initialize=0, doc=\"N2 fraction\")\n", + "m.fs.O2 = Var(initialize=0, doc=\"O2 fraction\")\n", + "\n", + "# create input and output variable object lists for flowsheet\n", + "inputs = [m.fs.bypass_frac, m.fs.ng_steam_ratio]\n", + "outputs = [\n", + " m.fs.steam_flowrate,\n", + " m.fs.reformer_duty,\n", + " m.fs.AR,\n", + " m.fs.C2H6,\n", + " m.fs.C4H10,\n", + " m.fs.C3H8,\n", + " m.fs.CH4,\n", + " m.fs.CO,\n", + " m.fs.CO2,\n", + " m.fs.H2,\n", + " m.fs.H2O,\n", + " m.fs.N2,\n", + " m.fs.O2,\n", + "]\n", + "\n", + "# create the Pyomo/IDAES block that corresponds to the surrogate\n", + "# Keras\n", + "keras_surrogate = KerasSurrogate.load_from_folder(keras_folder_name=\"keras_surrogate\", keras_model_name=\"keras_model\")\n", + "m.fs.surrogate = SurrogateBlock()\n", + "m.fs.surrogate.build_model(\n", + " keras_surrogate,\n", + " formulation=KerasSurrogate.Formulation.FULL_SPACE,\n", + " input_vars=inputs,\n", + " output_vars=outputs,\n", + ")\n", + "\n", + "# fix input values and solve flowsheet\n", + "m.fs.bypass_frac.fix(0.5)\n", + "m.fs.ng_steam_ratio.fix(1)\n", + "\n", + "solver = SolverFactory(\"ipopt\")\n", + "results = solver.solve(m, tee=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's print some model results:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "print(\"Steam flowrate = \", value(m.fs.steam_flowrate))\n", + "print(\"Reformer duty = \", value(m.fs.reformer_duty))\n", + "print(\"Mole Fraction Ar = \", value(m.fs.AR))\n", + "print(\"Mole Fraction C2H6 = \", value(m.fs.C2H6))\n", + "print(\"Mole Fraction C3H8 = \", value(m.fs.C3H8))\n", + "print(\"Mole Fraction C4H10 = \", value(m.fs.C4H10))\n", + "print(\"Mole Fraction CH4 = \", value(m.fs.CH4))\n", + "print(\"Mole Fraction CO = \", value(m.fs.CO))\n", + "print(\"Mole Fraction CO2 = \", value(m.fs.CO2))\n", + "print(\"Mole Fraction H2 = \", value(m.fs.H2))\n", + "print(\"Mole Fraction H2O = \", value(m.fs.H2O))\n", + "print(\"Mole Fraction N2 = \", value(m.fs.N2))\n", + "print(\"Mole Fraction O2 = \", value(m.fs.O2))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 4.2 Optimizing the Autothermal Reformer\n", + "Extending this example, we will unfix the input variables and optimize hydrogen production. We will restrict nitrogen below 34 mol% of the product stream and leave all other variables unfixed.\n", + "\n", + "Above, variable values are called in reference to actual objects names; however, as shown below this may be done much more compactly by calling the list objects we created earlier." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "# unfix input values and add the objective/constraint to the model\n", + "m.fs.bypass_frac.unfix()\n", + "m.fs.ng_steam_ratio.unfix()\n", + "m.fs.obj = Objective(expr=m.fs.H2, sense=maximize)\n", + "m.fs.con = Constraint(expr=m.fs.N2 <= 0.34)\n", + "\n", + "# solve the model\n", + "tmr = TicTocTimer()\n", + "status = solver.solve(m, tee=True)\n", + "solve_time = tmr.toc(\"solve\")\n", + "\n", + "# print and check results\n", + "assert abs(value(m.fs.H2) - 0.33) <= 0.01\n", + "assert value(m.fs.N2 <= 0.4 + 1e-8)\n", + "print(\"Model status: \", status)\n", + "print(\"Solve time: \", solve_time)\n", + "for var in inputs:\n", + " print(var.name, \": \", value(var))\n", + "for var in outputs:\n", + " print(var.name, \": \", value(var))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } - ], - "source": [ - "from IPython.display import Image\n", - "from pathlib import Path\n", - "\n", - "\n", - "def datafile_path(name):\n", - " return Path(\"..\") / name\n", - "\n", - "\n", - "Image(datafile_path(\"AR_PFD.png\"))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 3. Training and Validating Surrogates" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "First, let's import the required Python, Pyomo and IDAES modules:" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "# Import statements\n", - "import os\n", - "import numpy as np\n", - "import pandas as pd\n", - "import random as rn\n", - "import tensorflow as tf\n", - "\n", - "# Import Pyomo libraries\n", - "from pyomo.environ import (\n", - " ConcreteModel,\n", - " SolverFactory,\n", - " value,\n", - " Var,\n", - " Constraint,\n", - " Set,\n", - " Objective,\n", - " maximize,\n", - ")\n", - "from pyomo.common.timing import TicTocTimer\n", - "\n", - "# Import IDAES libraries\n", - "from idaes.core.surrogate.sampling.data_utils import split_training_validation\n", - "from idaes.core.surrogate.sampling.scaling import OffsetScaler\n", - "from idaes.core.surrogate.keras_surrogate import (\n", - " KerasSurrogate,\n", - " save_keras_json_hd5,\n", - " load_keras_json_hd5,\n", - ")\n", - "from idaes.core.surrogate.plotting.sm_plotter import (\n", - " surrogate_scatter2D,\n", - " surrogate_parity,\n", - " surrogate_residual,\n", - ")\n", - "from idaes.core.surrogate.surrogate_block import SurrogateBlock\n", - "from idaes.core import FlowsheetBlock\n", - "\n", - "# fix environment variables to ensure consist neural network training\n", - "os.environ[\"PYTHONHASHSEED\"] = \"0\"\n", - "os.environ[\"CUDA_VISIBLE_DEVICES\"] = \"\"\n", - "np.random.seed(46)\n", - "rn.seed(1342)\n", - "tf.random.set_seed(62)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 3.1 Importing Training and Validation Datasets" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In this section, we read the dataset from the CSV file located in this directory. 2800 data points were simulated from a rigorous IDAES NGFC flowsheet using a grid sampling method. For simplicity and to reduce training runtime, this example randomly selects 100 data points to use for training/validation. The data is separated using an 80/20 split into training and validation data using the IDAES `split_training_validation()` method." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\dkgun\\miniconda3\\envs\\idaes-examples-py311\\Lib\\site-packages\\numpy\\core\\fromnumeric.py:59: FutureWarning: 'DataFrame.swapaxes' is deprecated and will be removed in a future version. Please use 'DataFrame.transpose' instead.\n", - " return bound(*args, **kwds)\n" - ] + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.16" } - ], - "source": [ - "# Import Auto-reformer training data\n", - "np.set_printoptions(precision=6, suppress=True)\n", - "\n", - "csv_data = pd.read_csv(datafile_path(\"reformer-data.csv\")) # 2800 data points\n", - "data = csv_data.sample(n=100) # randomly sample points for training/validation\n", - "\n", - "input_data = data.iloc[:, :2]\n", - "output_data = data.iloc[:, 2:]\n", - "\n", - "# Define labels, and split training and validation data\n", - "input_labels = input_data.columns\n", - "output_labels = output_data.columns\n", - "\n", - "n_data = data[input_labels[0]].size\n", - "data_training, data_validation = split_training_validation(\n", - " data, 0.8, seed=n_data\n", - ") # seed=100" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 3.2 Training Surrogates with TensorFlow Keras" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "TensorFlow Keras provides an interface to pass regression settings, build neural networks and train surrogate models. Keras enables the usage of two API formats: Sequential and Functional. While the Functional API offers more versatility, including multiple input and output layers in a single neural network, the Sequential API is more stable and user-friendly. Further, the Sequential API integrates cleanly with existing IDAES surrogate tools and will be utilized in this example.\n", - "\n", - "In the code below, we build the neural network structure based on our training data structure and desired regression settings. Offline, neural network models were trained for the list of settings below, and the options bolded and italicized were determined to have the minimum mean squared error for the dataset:\n", - "\n", - "- Activation function: relu, sigmoid, ***tanh***\n", - "- Optimizer: ***Adam***, RMSprop, SGD\n", - "- Number of hidden layers: 1, ***2***, 4\n", - "- Number of neurons per layer: 10, 20, ***40***\n", - "\n", - "Typically, Sequential Keras models are built vertically; the dataset is scaled and normalized. The network is defined for the input layer, hidden layers, and output layer for the passed activation functions and network/layer sizes. Then, the model is compiled using the passed optimizer and trained using a desired number of epochs. Keras internally validates while training and updates each epoch's model weight (coefficient) values.\n", - "\n", - "Finally, after training the model, we save the results and model expressions to a folder that contains a serialized JSON file. Serializing the model in this fashion enables importing a previously trained set of surrogate models into external flowsheets. This feature will be used later." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "scrolled": false - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\dkgun\\miniconda3\\envs\\idaes-examples-py311\\Lib\\site-packages\\keras\\src\\engine\\training.py:3079: UserWarning: You are saving your model as an HDF5 file via `model.save()`. This file format is considered legacy. We recommend using instead the native Keras format, e.g. `model.save('my_model.keras')`.\n", - " saving_api.save_model(\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "INFO:tensorflow:Assets written to: keras_surrogate\\assets\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:tensorflow:Assets written to: keras_surrogate\\assets\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 1/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 0.3816 - mae: 0.5276 - mse: 0.3816\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 1s 79ms/step - loss: 0.3703 - mae: 0.5194 - mse: 0.3703 - val_loss: 0.3230 - val_mae: 0.4945 - val_mse: 0.3230\n", - "Epoch 2/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 0.3274 - mae: 0.4777 - mse: 0.3274\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 16ms/step - loss: 0.3078 - mae: 0.4684 - mse: 0.3078 - val_loss: 0.2686 - val_mae: 0.4450 - val_mse: 0.2686\n", - "Epoch 3/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 0.2678 - mae: 0.4329 - mse: 0.2678\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 22ms/step - loss: 0.2556 - mae: 0.4217 - mse: 0.2556 - val_loss: 0.2235 - val_mae: 0.3991 - val_mse: 0.2235\n", - "Epoch 4/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 0.2350 - mae: 0.4022 - mse: 0.2350\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 16ms/step - loss: 0.2136 - mae: 0.3798 - mse: 0.2136 - val_loss: 0.1862 - val_mae: 0.3568 - val_mse: 0.1862\n", - "Epoch 5/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 0.1953 - mae: 0.3559 - mse: 0.1953\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 16ms/step - loss: 0.1792 - mae: 0.3424 - mse: 0.1792 - val_loss: 0.1557 - val_mae: 0.3193 - val_mse: 0.1557\n", - "Epoch 6/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 0.1581 - mae: 0.3172 - mse: 0.1581\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 24ms/step - loss: 0.1512 - mae: 0.3100 - mse: 0.1512 - val_loss: 0.1303 - val_mae: 0.2857 - val_mse: 0.1303\n", - "Epoch 7/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 0.1335 - mae: 0.2904 - mse: 0.1335\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 16ms/step - loss: 0.1286 - mae: 0.2829 - mse: 0.1286 - val_loss: 0.1099 - val_mae: 0.2583 - val_mse: 0.1099\n", - "Epoch 8/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 0.1202 - mae: 0.2749 - mse: 0.1202\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 16ms/step - loss: 0.1108 - mae: 0.2615 - mse: 0.1108 - val_loss: 0.0935 - val_mae: 0.2381 - val_mse: 0.0935\n", - "Epoch 9/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 0.1021 - mae: 0.2497 - mse: 0.1021\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 16ms/step - loss: 0.0969 - mae: 0.2445 - mse: 0.0969 - val_loss: 0.0810 - val_mae: 0.2227 - val_mse: 0.0810\n", - "Epoch 10/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 0.0953 - mae: 0.2431 - mse: 0.0953\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 16ms/step - loss: 0.0870 - mae: 0.2324 - mse: 0.0870 - val_loss: 0.0717 - val_mae: 0.2123 - val_mse: 0.0717\n", - "Epoch 11/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 0.0818 - mae: 0.2266 - mse: 0.0818\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 23ms/step - loss: 0.0795 - mae: 0.2228 - mse: 0.0795 - val_loss: 0.0650 - val_mae: 0.2041 - val_mse: 0.0650\n", - "Epoch 12/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 0.0744 - mae: 0.2109 - mse: 0.0744\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 16ms/step - loss: 0.0745 - mae: 0.2165 - mse: 0.0745 - val_loss: 0.0599 - val_mae: 0.1972 - val_mse: 0.0599\n", - "Epoch 13/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 0.0674 - mae: 0.2048 - mse: 0.0674\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 16ms/step - loss: 0.0703 - mae: 0.2108 - mse: 0.0703 - val_loss: 0.0565 - val_mae: 0.1925 - val_mse: 0.0565\n", - "Epoch 14/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 0.0756 - mae: 0.2171 - mse: 0.0756\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 24ms/step - loss: 0.0670 - mae: 0.2056 - mse: 0.0670 - val_loss: 0.0534 - val_mae: 0.1879 - val_mse: 0.0534\n", - "Epoch 15/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 0.0709 - mae: 0.2180 - mse: 0.0709\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 16ms/step - loss: 0.0640 - mae: 0.2005 - mse: 0.0640 - val_loss: 0.0506 - val_mae: 0.1828 - val_mse: 0.0506\n", - "Epoch 16/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 0.0443 - mae: 0.1687 - mse: 0.0443\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 16ms/step - loss: 0.0611 - mae: 0.1949 - mse: 0.0611 - val_loss: 0.0477 - val_mae: 0.1767 - val_mse: 0.0477\n", - "Epoch 17/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 0.0589 - mae: 0.1894 - mse: 0.0589\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 24ms/step - loss: 0.0582 - mae: 0.1889 - mse: 0.0582 - val_loss: 0.0454 - val_mae: 0.1711 - val_mse: 0.0454\n", - "Epoch 18/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 0.0636 - mae: 0.1930 - mse: 0.0636\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 16ms/step - loss: 0.0557 - mae: 0.1833 - mse: 0.0557 - val_loss: 0.0436 - val_mae: 0.1659 - val_mse: 0.0436\n", - "Epoch 19/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 0.0483 - mae: 0.1658 - mse: 0.0483\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 16ms/step - loss: 0.0533 - mae: 0.1778 - mse: 0.0533 - val_loss: 0.0418 - val_mae: 0.1601 - val_mse: 0.0418\n", - "Epoch 20/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 0.0401 - mae: 0.1556 - mse: 0.0401\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 24ms/step - loss: 0.0514 - mae: 0.1727 - mse: 0.0514 - val_loss: 0.0403 - val_mae: 0.1546 - val_mse: 0.0403\n", - "Epoch 21/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 0.0536 - mae: 0.1683 - mse: 0.0536\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 16ms/step - loss: 0.0496 - mae: 0.1681 - mse: 0.0496 - val_loss: 0.0385 - val_mae: 0.1487 - val_mse: 0.0385\n", - "Epoch 22/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 0.0435 - mae: 0.1560 - mse: 0.0435\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 20ms/step - loss: 0.0479 - mae: 0.1630 - mse: 0.0479 - val_loss: 0.0370 - val_mae: 0.1437 - val_mse: 0.0370\n", - "Epoch 23/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 0.0517 - mae: 0.1663 - mse: 0.0517\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 19ms/step - loss: 0.0464 - mae: 0.1589 - mse: 0.0464 - val_loss: 0.0359 - val_mae: 0.1404 - val_mse: 0.0359\n", - "Epoch 24/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 0.0471 - mae: 0.1616 - mse: 0.0471\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 16ms/step - loss: 0.0449 - mae: 0.1550 - mse: 0.0449 - val_loss: 0.0347 - val_mae: 0.1372 - val_mse: 0.0347\n", - "Epoch 25/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 0.0414 - mae: 0.1462 - mse: 0.0414\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 16ms/step - loss: 0.0433 - mae: 0.1511 - mse: 0.0433 - val_loss: 0.0335 - val_mae: 0.1347 - val_mse: 0.0335\n", - ".\n", - ".\n", - ".\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 1.1661e-04 - mae: 0.0080 - mse: 1.1661e-04\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 8ms/step - loss: 1.3688e-04 - mae: 0.0084 - mse: 1.3688e-04 - val_loss: 9.2093e-05 - val_mae: 0.0068 - val_mse: 9.2093e-05\n", - "Epoch 977/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 1.3928e-04 - mae: 0.0085 - mse: 1.3928e-04\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 16ms/step - loss: 1.3427e-04 - mae: 0.0085 - mse: 1.3427e-04 - val_loss: 8.4304e-05 - val_mae: 0.0067 - val_mse: 8.4304e-05\n", - "Epoch 978/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 1.0357e-04 - mae: 0.0081 - mse: 1.0357e-04\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 8ms/step - loss: 1.3646e-04 - mae: 0.0087 - mse: 1.3646e-04 - val_loss: 9.1711e-05 - val_mae: 0.0071 - val_mse: 9.1711e-05\n", - "Epoch 979/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 1.3587e-04 - mae: 0.0084 - mse: 1.3587e-04\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 16ms/step - loss: 1.3732e-04 - mae: 0.0087 - mse: 1.3732e-04 - val_loss: 8.2200e-05 - val_mae: 0.0067 - val_mse: 8.2200e-05\n", - "Epoch 980/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 1.7129e-04 - mae: 0.0094 - mse: 1.7129e-04\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 16ms/step - loss: 1.2526e-04 - mae: 0.0082 - mse: 1.2526e-04 - val_loss: 1.0392e-04 - val_mae: 0.0074 - val_mse: 1.0392e-04\n", - "Epoch 981/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 1.1030e-04 - mae: 0.0075 - mse: 1.1030e-04\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 16ms/step - loss: 1.3412e-04 - mae: 0.0082 - mse: 1.3412e-04 - val_loss: 8.1917e-05 - val_mae: 0.0065 - val_mse: 8.1917e-05\n", - "Epoch 982/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 1.2036e-04 - mae: 0.0083 - mse: 1.2036e-04\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 16ms/step - loss: 1.3123e-04 - mae: 0.0085 - mse: 1.3123e-04 - val_loss: 8.0986e-05 - val_mae: 0.0067 - val_mse: 8.0986e-05\n", - "Epoch 983/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 1.5498e-04 - mae: 0.0090 - mse: 1.5498e-04\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 8ms/step - loss: 1.2668e-04 - mae: 0.0084 - mse: 1.2668e-04 - val_loss: 8.8135e-05 - val_mae: 0.0069 - val_mse: 8.8135e-05\n", - "Epoch 984/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 1.5492e-04 - mae: 0.0090 - mse: 1.5492e-04\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 8ms/step - loss: 1.2770e-04 - mae: 0.0082 - mse: 1.2770e-04 - val_loss: 8.4017e-05 - val_mae: 0.0066 - val_mse: 8.4017e-05\n", - "Epoch 985/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 9.4717e-05 - mae: 0.0074 - mse: 9.4717e-05\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 26ms/step - loss: 1.2767e-04 - mae: 0.0081 - mse: 1.2767e-04 - val_loss: 7.7592e-05 - val_mae: 0.0064 - val_mse: 7.7592e-05\n", - "Epoch 986/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 1.0524e-04 - mae: 0.0075 - mse: 1.0524e-04\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 12ms/step - loss: 1.2811e-04 - mae: 0.0085 - mse: 1.2811e-04 - val_loss: 7.8276e-05 - val_mae: 0.0066 - val_mse: 7.8276e-05\n", - "Epoch 987/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 1.2713e-04 - mae: 0.0084 - mse: 1.2713e-04\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 11ms/step - loss: 1.2328e-04 - mae: 0.0082 - mse: 1.2328e-04 - val_loss: 9.2079e-05 - val_mae: 0.0071 - val_mse: 9.2079e-05\n", - "Epoch 988/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 1.3256e-04 - mae: 0.0082 - mse: 1.3256e-04\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 16ms/step - loss: 1.2592e-04 - mae: 0.0081 - mse: 1.2592e-04 - val_loss: 7.5439e-05 - val_mae: 0.0064 - val_mse: 7.5439e-05\n", - "Epoch 989/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 8.0360e-05 - mae: 0.0070 - mse: 8.0360e-05\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 8ms/step - loss: 1.2697e-04 - mae: 0.0086 - mse: 1.2697e-04 - val_loss: 8.1591e-05 - val_mae: 0.0068 - val_mse: 8.1591e-05\n", - "Epoch 990/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 1.1743e-04 - mae: 0.0082 - mse: 1.1743e-04\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 8ms/step - loss: 1.2365e-04 - mae: 0.0082 - mse: 1.2365e-04 - val_loss: 8.8448e-05 - val_mae: 0.0067 - val_mse: 8.8448e-05\n", - "Epoch 991/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 1.0918e-04 - mae: 0.0075 - mse: 1.0918e-04\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 8ms/step - loss: 1.2486e-04 - mae: 0.0079 - mse: 1.2486e-04 - val_loss: 8.3745e-05 - val_mae: 0.0065 - val_mse: 8.3745e-05\n", - "Epoch 992/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 1.0088e-04 - mae: 0.0076 - mse: 1.0088e-04\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 8ms/step - loss: 1.2131e-04 - mae: 0.0082 - mse: 1.2131e-04 - val_loss: 7.8312e-05 - val_mae: 0.0066 - val_mse: 7.8312e-05\n", - "Epoch 993/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 9.0210e-05 - mae: 0.0075 - mse: 9.0210e-05\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 16ms/step - loss: 1.2277e-04 - mae: 0.0083 - mse: 1.2277e-04 - val_loss: 7.5934e-05 - val_mae: 0.0064 - val_mse: 7.5934e-05\n", - "Epoch 994/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 1.2529e-04 - mae: 0.0084 - mse: 1.2529e-04\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 10ms/step - loss: 1.1942e-04 - mae: 0.0082 - mse: 1.1942e-04 - val_loss: 7.9994e-05 - val_mae: 0.0067 - val_mse: 7.9994e-05\n", - "Epoch 995/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 1.4463e-04 - mae: 0.0086 - mse: 1.4463e-04\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 6ms/step - loss: 1.1739e-04 - mae: 0.0079 - mse: 1.1739e-04 - val_loss: 8.5978e-05 - val_mae: 0.0066 - val_mse: 8.5978e-05\n", - "Epoch 996/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 1.2477e-04 - mae: 0.0077 - mse: 1.2477e-04\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 8ms/step - loss: 1.1918e-04 - mae: 0.0078 - mse: 1.1918e-04 - val_loss: 7.7405e-05 - val_mae: 0.0062 - val_mse: 7.7405e-05\n", - "Epoch 997/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 1.3463e-04 - mae: 0.0084 - mse: 1.3463e-04\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 10ms/step - loss: 1.1708e-04 - mae: 0.0080 - mse: 1.1708e-04 - val_loss: 7.7886e-05 - val_mae: 0.0064 - val_mse: 7.7886e-05\n", - "Epoch 998/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 1.0271e-04 - mae: 0.0075 - mse: 1.0271e-04\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 9ms/step - loss: 1.1993e-04 - mae: 0.0079 - mse: 1.1993e-04 - val_loss: 7.7599e-05 - val_mae: 0.0065 - val_mse: 7.7599e-05\n", - "Epoch 999/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 1.3346e-04 - mae: 0.0085 - mse: 1.3346e-04\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 17ms/step - loss: 1.1611e-04 - mae: 0.0081 - mse: 1.1611e-04 - val_loss: 7.2370e-05 - val_mae: 0.0064 - val_mse: 7.2370e-05\n", - "Epoch 1000/1000\n", - "\r", - "1/3 [=========>....................] - ETA: 0s - loss: 1.4569e-04 - mae: 0.0092 - mse: 1.4569e-04\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 15ms/step - loss: 1.1746e-04 - mae: 0.0083 - mse: 1.1746e-04 - val_loss: 8.1321e-05 - val_mae: 0.0068 - val_mse: 8.1321e-05\n", - "\n" - ] - } - ], - "source": [ - "# capture long output (not required to use surrogate API)\n", - "from io import StringIO\n", - "import sys\n", - "\n", - "stream = StringIO()\n", - "oldstdout = sys.stdout\n", - "sys.stdout = stream\n", - "\n", - "# selected settings for regression (best fit from options above)\n", - "activation, optimizer, n_hidden_layers, n_nodes_per_layer = \"tanh\", \"Adam\", 2, 40\n", - "loss, metrics = \"mse\", [\"mae\", \"mse\"]\n", - "\n", - "# Create data objects for training using scalar normalization\n", - "n_inputs = len(input_labels)\n", - "n_outputs = len(output_labels)\n", - "x = input_data\n", - "y = output_data\n", - "\n", - "input_scaler = None\n", - "output_scaler = None\n", - "input_scaler = OffsetScaler.create_normalizing_scaler(x)\n", - "output_scaler = OffsetScaler.create_normalizing_scaler(y)\n", - "x = input_scaler.scale(x)\n", - "y = output_scaler.scale(y)\n", - "x = x.to_numpy()\n", - "y = y.to_numpy()\n", - "\n", - "# Create Keras Sequential object and build neural network\n", - "model = tf.keras.Sequential()\n", - "model.add(\n", - " tf.keras.layers.Dense(\n", - " units=n_nodes_per_layer, input_dim=n_inputs, activation=activation\n", - " )\n", - ")\n", - "for i in range(1, n_hidden_layers):\n", - " model.add(tf.keras.layers.Dense(units=n_nodes_per_layer, activation=activation))\n", - "model.add(tf.keras.layers.Dense(units=n_outputs))\n", - "\n", - "# Train surrogate (calls optimizer on neural network and solves for weights)\n", - "model.compile(loss=loss, optimizer=optimizer, metrics=metrics)\n", - "mcp_save = tf.keras.callbacks.ModelCheckpoint(\n", - " \".mdl_wts.hdf5\", save_best_only=True, monitor=\"val_loss\", mode=\"min\"\n", - ")\n", - "history = model.fit(\n", - " x=x, y=y, validation_split=0.2, verbose=1, epochs=1000, callbacks=[mcp_save]\n", - ")\n", - "\n", - "# save model to JSON and create callable surrogate object\n", - "xmin, xmax = [0.1, 0.8], [0.8, 1.2]\n", - "input_bounds = {input_labels[i]: (xmin[i], xmax[i]) for i in range(len(input_labels))}\n", - "\n", - "keras_surrogate = KerasSurrogate(\n", - " model,\n", - " input_labels=list(input_labels),\n", - " output_labels=list(output_labels),\n", - " input_bounds=input_bounds,\n", - " input_scaler=input_scaler,\n", - " output_scaler=output_scaler,\n", - ")\n", - "keras_surrogate.save_to_folder(\"keras_surrogate\")\n", - "\n", - "# revert back to normal output capture\n", - "sys.stdout = oldstdout\n", - "\n", - "# display first 50 lines and last 50 lines of output\n", - "celloutput = stream.getvalue().split(\"\\n\")\n", - "for line in celloutput[:50]:\n", - " print(line)\n", - "print(\".\")\n", - "print(\".\")\n", - "print(\".\")\n", - "for line in celloutput[-50:]:\n", - " print(line)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 3.3 Visualizing surrogates" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now that the surrogate models have been trained, the models can be visualized through scatter, parity, and residual plots to confirm their validity in the chosen domain. The training data will be visualized first to confirm the surrogates fit the data. Then the validation data will be visualized to confirm the surrogates accurately predict new output values." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "scrolled": false - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\r", - "1/3 [=========>....................] - ETA: 0s" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 0s/step\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_2.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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ULTOzZdffokbN27g1q1bAIA33ngDX3/9NeLj43H69GlcvHgRn3zyiXFCcb169eDp6YkVK1bgypUr+PTTTysc6nKUf/zjH3B3d8eqVasAFPV6HTp0CF9//TXOnj2L0aNHIysry+Q1YWFhxs/01q1bZfYc/etf/8Lhw4cxZ84cXLhwAZs2bcLKlSvx+uuvO6VdRHLG4IaIMHv2bJMLrEajwfbt25GYmIh9+/bhySefROPGjfHSSy8hNDQUx44ds2i/MTEx2LRpE5566ik0bdoUY8eORUxMDHbs2GHy3levXkVERARq1aoFoGiezBdffIELFy6gc+fOaN26NaZPn46QkBAARUNkSUlJ+OijjxAZGYn58+dj8eLFdvxELFelShXEx8dj4cKFyMvLw1tvvYU2bdogJiYGXbt2Re3atdG3b1+T17z++utwd3dHZGQkatWqVeZ8nDZt2mDHjh3Ytm0bmjdvjunTp2P27NllZoQRkSmNEEK4uhJERERE9sKeGyIiIlIUBjdEZLPiqdolf7766itXV88q165dM9sea1O5ich1OCxFRDYzdwPNOnXqwMfHx4m1qZy//voLV69eLff5sLAwVKnCBFMiOWBwQ0RERIrCYSkiIiJSFAY3REREpCgMboiIiEhRGNwQERGRojC4ISIiIkVhcENERESKwuCGiIiIFIXBDRERESnK/wd+ea1vcF0HogAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_3.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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XWXs1XimLqVgbdOHREQaegdNy5Ytg1Qqxblz59CsWTOtY7NmzUKvXr2wfPlyvP7660brJFFDZKzVbsZejWfO/QAr4j53RGRJegdNu3fvxuuvv14pYAIAT09PzJgxA+vWrWPQRGQExpquMnYAY4lpwbItYFjDiYgsR+9E8F9//RU9e/as9njPnj2RkZFRp04R0b8UigIEBv7RoKesVCrXf/bMK3tf35Piicg66R005efnw83Nrdrjbm5uyM/Pr0ufiKgB0SX3KTfXQyx6qaFJik9OTmbgRERmoff0nCAIsLOrPtaSSCQQBKFOnSKihqOmHKlbt25h586drOFERFbBoKDpgQcegEQiqfY4EZE+asuRMsUWMERE+tI7aNq4caMp+kFE/zD1kn5bxRpORGRpegdNMTExtTcq59NPP8XQoUPh4uKi76WIGiRLLum3dqzhRESWZPDec7p6/vnnER4ejlatWpn6UkT1RkMMiIiIrF2d9p7TBXOciIiIqD4wedBEREREVB8waCIiq2XJpPirV4FDh8r+JCICzJDTRERkKEslxa9fD8TGcssWItLGoImI9KZUKsVA5to1O2RmNkJgYAl8fcv2OTFmIGPupPirV/8NmADNli1AZCQ3CSZq6AwKmkpLS3H06FF07Nixxi1VAKBly5awt7c35DJEZIWUSiWSk5MBACdPdqlUcDI09BQAID4+3uZWASqVSvz4I6BWa/e7tBT46SclnJy4spGoITMop0kqlWLgwIG4fft2rW3Pnj0Lf39/Qy5DRFZIM8KkUrmKARMACIIdvvlmCFQqV612tkITDB47thkSiVrrmESixtGjm7nPHVEDZ3AiePv27fH7778bsy9EZENycz209oIDygKn3Fx3C/WobjRBnmbLFk3gVHHLFlsLBonIeAzOaXr77bfx6quvYt68eQgLC6tU8Vsul9e5c0RkvWrbRNeWccsWIqqKwUHTY489BgAYOnSo1ua9giBAIpGgtLS07r0jIqtV3zfR5ZYtRFSRwUHToUOHjNkPIrIReXl5Wu81Rf8rFv/Py8uDj4+PeTpFRGQGBgdNjzzyiDH7QUQ2oqSkBMC/ieD/pkaWJYIHBV2CQlEgtiMiqi/qVBH8f//7H55++mn07NkTf/31FwDg448/xpEjR4zSOSKyXvUtEZyIqDYGB007duxAZGQknJyccPLkSRQW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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_4.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAk0AAAHHCAYAAACiOWx7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABteUlEQVR4nO3deVxUVf8H8M8wsssMQbIJCqKJuAYpok+u5GhoWVZuGW6hPmAhpWbuWmlWiopploqV5JJaT2oakloqmaGmppkLlCaoDTmgJiJzf3/wmxvDOgyzz+f9es1L594zd86ZgZkv53zPORJBEAQQERERUY0czF0BIiIiImvAoImIiIhIBwyaiIiIiHTAoImIiIhIBwyaiIiIiHTAoImIiIhIBwyaiIiIiHTAoImIiIhIBwyaiIiIiHTAoImIyMakpaVBIpEgNzfX3FUhsikMmoiozo4ePYrExES0bt0a7u7uaNKkCZ577jn89ttvlcr26NEDEokEEokEDg4OkMlkaNmyJUaMGIGMjIw6Pe9XX32F7t27w8fHB25ubmjWrBmee+457N6921BNq+Stt97CF198Uen44cOHMWfOHNy8edNoz13RnDlzxNdSIpHAzc0N4eHhmDFjBgoLCw3yHOnp6UhJSTHItYhsDYMmIqqzt99+G1u3bkXv3r2xdOlSxMfH47vvvkNERAROnz5dqXxgYCA++eQTfPzxx3jnnXfwxBNP4PDhw+jTpw8GDx6MkpKSWp/z3XffxRNPPAGJRIJp06ZhyZIlGDRoEM6fP4+NGzcao5kAag6a5s6da9KgSWPlypX45JNPsHjxYoSFheHNN99E3759YYitRBk0EVWvgbkrQETWJzk5Genp6XBychKPDR48GG3btsXChQvx6aefapWXy+V4/vnntY4tXLgQL730Et5//30EBwfj7bffrvb57t+/j/nz5+Oxxx7DN998U+n89evX69kiy3Hnzh24ubnVWOaZZ57Bgw8+CAAYP348Bg0ahG3btuGHH35AdHS0KapJZJfY00REddalSxetgAkAWrRogdatW+Ps2bM6XUMqlWLZsmUIDw9HamoqVCpVtWX/+usvFBYWomvXrlWe9/Hx0bp/9+5dzJkzBw899BBcXFzg7++Pp59+GhcvXhTLvPvuu+jSpQu8vb3h6uqKyMhIfP7551rXkUgkuH37NtavXy8O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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_5.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlEAAAHHCAYAAACfqw0dAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABy/UlEQVR4nO3de1xUZf4H8M8wcpNwFEgYFIEQL+UFwUTINI0WS1G2WtHKWyrpSomU1xA1LQpvpFim663SvKysq2akoe3+SkIFXLXUxMBLAsoQA8IKyJzfH+wcHWGGYZgLl8/79eKFnPOcc55zIufr83zP95EIgiCAiIiIiBrEytIdICIiImqOGEQRERERGYBBFBEREZEBGEQRERERGYBBFBEREZEBGEQRERERGYBBFBEREZEBGEQRERERGYBBFBEREZEBGEQREbVw27Ztg0QiQW5urqW7QtSiMIgiokY7deoUoqKi8MQTT8DBwQFdunTBmDFj8Ouvv9Zq+8wzz0AikUAikcDKygrt2rVD9+7dMX78eBw9erRB1z148CCGDBmCjh07om3btnjssccwZswYpKSkGOvWavnggw+wf//+WttPnDiBJUuWoLi42GTXftiSJUvEZymRSNC2bVs8/vjjiI2NRUlJiVGusXPnTiQmJhrlXEQtDYMoImq0jz76CPv27cOzzz6Ljz/+GJGRkfj3v/8Nf39/nD9/vlb7zp0744svvsDnn3+OFStWYNSoUThx4gT+9Kc/ISIiAlVVVfVec+XKlRg1ahQkEgkWLFiANWvW4KWXXsLly5exa9cuU9wmAN1B1NKlS80aRKl9+umn+OKLL7B69Wr06NED77//PoYPHw5jLI3KIIpIuzaW7gARNX8xMTHYuXMnbGxsxG0RERHo3bs3PvzwQ3z55Zca7WUyGV577TWNbR9++CHeeustfPLJJ/Dy8sJHH32k9Xr37t3DsmXL8Nxzz+HIkSO19t+6dauRd9R0lJeXo23btjrbvPzyy3BxcQEATJ8+HS+99BKSk5Px008/ISgoyBzdJGqVOBJFRI0WHBysEUABgK+vL5544glcuHBBr3NIpVKsXbsWjz/+OJKSkqBUKrW2LSwsRElJCZ566qk693fs2FHj57t372LJkiXo1q0b7OzsIJfL8eKLL+LKlStim5UrVyI4OBjOzs6wt7dHQEAA/v73v2ucRyKRoKysDNu3bxen0CZNmoQlS5Zgzpw5AABvb29x34M5SF9++SUCAgJgb28PJycnjB07FtevX9c4/zPPPINevXohIyMDgwcPRtu2bbFw4UK9nt+Dhg0bBgDIycnR2e6TTz7BE088AVtbW7i7u2PmzJkaI2nPPPMMvv76a1y9elW8Jy8vrwb3h6il4kgUEZmEIAgoKCjAE088ofcxUqkU48aNw6JFi/DDDz9gxIgRdbbr2LEj7O3tcfDgQbz55ptwcnLSes7q6mqMHDkSqampGDt2LGbNmoXS0lIcPXoU58+fh4+PDwDg448/xqhRo/Dqq6+isrISu3btwl/+8hccOnRI7McXX3yBqVOnYsCAAYiMjAQA+Pj4wMHBAb/++iu++uorrFmzRhwVevTRRwEA77//PhYtWoQxY8Zg6tSpuH37NtatW4fBgwcjKysL7du3F/urUCjw/PPPY+zYsXjttdfg6uqq9/NTUweHzs7OWtssWbIES5cuRUhICGbMmIFLly7h008/xalTp/Djjz/C2toa7777LpRKJW7cuIE1a9YAAB555JEG94eoxRKIiEzgiy++EAAImzdv1tg+ZMgQ4YknntB63D/+8Q8BgPDxxx/rPH9cXJwAQHBwcBCef/554f333xcyMjJqtduyZYsAQFi9enWtfSqVSvxzeXm5xr7KykqhV69ewrBhwzS2Ozg4CBMnTqx1rhUrVggAhJycHI3tubm5glQqFd5//32N7efOnRPatGmjsX3IkCECAGHDhg1a7/tBixcvFgAIly5dEm7fvi3k5OQIn332mWBrayu4uroKZWVlgiAIwtatWzX6duvWLcHGxkb405/+JFRXV4vnS0pKEgAIW7ZsEbeNGDFC8PT01Ks/RK0Np/OIyOguXryImTNnIigoCBMnTmzQseqRjtLSUp3tli5dip07d6Jfv3749ttv8e677yIgIAD+/v4aU4j79u2Di4sL3nzzzVrnkEgk4p/t7e3FP//xxx9QKpV4+umnkZmZ2aD+Pyw5ORkqlQpjxoxBYWGh+OXm5gZfX18cP35co72trS0mT57coGt0794djz76KLy9vfHGG2+ga9eu+Prrr7XmUn333XeorKxEdHQ0rKzufwxMmzYN7dq1w9dff93wGyVqhTidR0RGlZ+fjxEjRkAmk+Hvf/87pFJpg46/c+cOAMDR0bHetuPGjcO4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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_6.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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F97e3sLR0VE4OzuLnj17ijfeeEOUlJTolb99+7Z49dVXha+vr7C3txceHh5i5MiR4tKlS1KZ9evXC39/f+Ho6Cg6duwoNm7cKKUQqOjcuXNiwIABwsnJSQDQS3ewZMkS0aZNG2FnZ1cp3cGOHTtE//79hYuLi3BxcREdO3YU06ZNE+fPn9d7bmpK/3A/Xf1u3LhRY7n7UxzoJCcni44dOwp7e3vh7u4upk6dKv744w+9Mn/++acYO3asaNGihQDAdAdEFciEMMDNlYiIiIgaGc6JIiIiImoABlFEREREDcAgioiIiKgBGEQRERERNQCDKCIiIqIGYBBFRERE1ABMtmlEWq0W165dQ7NmzXjrBCIiIishhEBRURE8PT1hZ1d9fxODKCO6du0avLy8zF0NIiIiaoDffvsNbdu2rXY/gygjatasGYDyF6Gm+4ARERGR5SgsLISXl5f0OV4dBlFGpBvCa968OYMoIiIiK1PbVBxOLCciIiJqAAZRRERERA3AIIqIiIioARhEERERETUAgygiIiKiBmAQRURERNQADKKIiIiIGoBBFBEREVEDMIgiIiIiagBmLLdR+fn5KC0trXa/g4MD3NzcTFgjIiIi28Igygbl5+cjOTm51nLR0dEMpIiIiBqIQZQNqqkHqiHlGjv26hERUVUsYk7U6tWr4ePjA4VCgaCgIPz44481lt++fTs6duwIhUKBbt26Yd++fXr7hRCIi4uDSqWCk5MTQkNDceHChSrPVVJSgoCAAMhkMpw4cULafvDgQYwYMQIqlQouLi4ICAjA5s2bH7itZF10vXrr1q2r9is5ORn5+fnmrioREZmY2YOorVu3IjY2FvHx8Th27Bh69OgBtVqN69evV1n+0KFDiIiIQGRkJI4fP47w8HCEh4fj9OnTUpnExESsXLkSa9asQWZmJlxcXKBWq3Hnzp1K55s1axY8PT2rfJzu3btjx44dOHnyJCZOnIjx48dj7969hmu8iWg0zZCV5QONppm5q2J12KtHRETVkQkhhDkrEBQUhD59+khzeLRaLby8vDB9+nTMmTOnUvnRo0ejuLhYL5jp168fAgICsGbNGggh4OnpiZdffhmvvPIKAECj0cDd3R0pKSkYM2aMdNxnn32G2NhY7NixA126dMHx48cREBBQbV3DwsLg7u6ODRs21KlthYWFUCqV0Gg0aN68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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_7.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkgAAAHHCAYAAABEEKc/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABjzklEQVR4nO3de1xU1fo/8M9wGUCEQUBhuAkB3lJBUBGzNKPQFEU9pVamHs3qSGlYlnlPy1sqmZbZyUsX0q9ppuahFO13KskLoGapiUFACnLJATEBmf37gzNbZpgZZoC5AJ/36zUvmL2fvWftnTmPa6/1LIkgCAKIiIiISGRj6QYQERERWRsmSEREREQamCARERERaWCCRERERKSBCRIRERGRBiZIRERERBqYIBERERFpYIJEREREpIEJEhEREZEGJkhERC3Y9u3bIZFIkJOTY+mmELUqTJCISK9Tp04hISEB9957L5ydnREQEIDHH38cv/32W73YIUOGQCKRQCKRwMbGBq6urujatSsmTZqEw4cPG/W5Bw4cwODBg9GpUye0a9cO99xzDx5//HGkpKQ016XV89Zbb2Hfvn31th8/fhxLlizBjRs3TPbZmpYsWSLeS4lEgnbt2qFHjx5YsGABysrKmuUzkpOTkZSU1CznImptmCARkV6rVq3Cnj178NBDD+Gdd97BjBkz8N///hcRERE4f/58vXg/Pz988skn+Pjjj7FmzRqMGjUKx48fxyOPPILx48ejurq6wc98++23MWrUKEgkEsybNw/r16/HuHHjcPnyZezcudMUlwlAf4K0dOlSsyZIKu+//z4++eQTrFu3Dt26dcObb76JYcOGoTmW0WSCRKSbnaUbQETWLTExEcnJyZBKpeK28ePHo1evXli5ciU+/fRTtXiZTIannnpKbdvKlSvx4osv4r333kNgYCBWrVql8/Pu3LmDZcuW4eGHH8a3335bb//169ebeEXW49atW2jXrp3emH/84x/w9PQEADz33HMYN24c9u7di59++gnR0dHmaCZRm8QeJCLSa+DAgWrJEQCEhobi3nvvxYULFww6h62tLTZs2IAePXpg48aNUCgUOmOLi4tRVlaG++67T+v+Tp06qb2/ffs2lixZgi5dusDR0RFyuRxjx47FlStXxJi3334bAwcOhIeHB5ycnBAZGYkvvvhC7TwSiQQVFRXYsWOH+FhrypQpWLJkCV555RUAQFBQkLiv7pifTz/9FJGRkXBycoK7uzsmTJiAvLw8tfMPGTIEPXv2RHp6Oh544AG0a9cOr7/+ukH3r66hQ4cCALKzs/XGvffee7j33nvh4OAAHx8fzJw5U60HbMiQIfj666/xxx9/iNcUGBhodHuIWiv2IBGR0QRBQGFhIe69916Dj7G1tcXEiROxcOFC/PDDDxgxYoTWuE6dOsHJyQkHDhzACy+8AHd3d53nrKmpwciRI5GamooJEyZg1qxZKC8vx+HDh3H+/HkEBwcDAN555x2MGjUKTz75JKqqqrBz50489thjOHjwoNiOTz75BNOnT0f//v0xY8YMAEBwcDCcnZ3x22+/4fPPP8f69evF3pyOHTsCAN58800sXLgQjz/+OKZPn46ioiK8++67eOCBB5CZmQk3NzexvSUlJRg+fDgmTJiAp556Cl5eXgbfPxVV4ufh4aEzZsmSJVi6dCliYmLw/PPP49KlS3j//fdx6tQp/Pjjj7C3t8f8+fOhUCiQn5+P9evXAwDat29vdHuIWi2BiMhIn3zyiQBA+Oijj9S2Dx48WLj33nt1Hvfll18KAIR33nlH7/kXLVokABCcnZ2F4cOHC2+++aaQnp5eL27r1q0CAGHdunX19imVSvH3W7duqe2rqqoSevbsKQwdOlRtu7OzszB58uR651qzZo0AQMjOzlbbnpOTI9ja2gpvvvmm2vaff/5ZsLOzU9s+ePBgAYCwefNmnddd1+LFiwUAwqVLl4SioiIhOztb+OCDDwQHBwfBy8tLqKioEARBELZt26bWtuvXrwtSqVR45JFHhJqaGvF8GzduFAAIW7duFbeNGDFC6Ny5s0HtIWpr+IiNiIxy8eJFzJw5E9HR0Zg8ebJRx6p6KMrLy/XGLV26FMnJyejTpw+++eYbzJ8/H5GRkYiIiFB7rLdnzx54enrihRdeqHcOiUQi/u7k5CT+/tdff0GhUOD+++9HRkaGUe3XtHfvXiiVSjz++OMoLi4WX97e3ggNDcWxY8fU4h0cHDB16lSjPqNr167o2LEjgoKC8OyzzyIkJARff/21zrFLR44cQVVVFWbPng0bm7t/xT/zzDNwdXXF119/bfyFErVBfMRGRAYrKCjAiBEjIJPJ8MUXX8DW1tao42/evAkAcHFxaTB24sSJmDhxIsrKynDixAls374dycnJiIuLw/nz5+Ho6IgrV66ga9eusLPT/1fZwYMHsXz5cpw5cwaVlZXi9rpJVGNcvnwZgiAgNDRU6357e3u1976+vvXGczVkz549cHV1hb29Pfz8/MTHhrr88ccfAGoTq7qkUinuuececT8R6ccEiYgMolAoMHz4cNy4cQPff/89fHx8jD6HqixASEiIwce4urri4YcfxsMPPwx7e3vs2LEDJ06cwODBgw06/vvvv8eoUaPwwAMP4L333oNcLoe9vT22bduG5ORko6+hLqVSCYlEgv/85z9ak0XNMT11e7IM9cADD4jjnojIfJggEVGDbt++jbi4OPz22284cuQIevToYfQ5ampqkJycjHbt2mHQoEGNakffvn2xY8cOXLt2DUDtIOoTJ06gurq6Xm+Nyp49e+Do6IhvvvkGDg4O4vZt27bVi9XVo6Rre3BwMARBQFBQELp06WLs5ZhE586dAQCXLl3CPffcI26vqqpCdnY2YmJixG1N7UEjas04BomI9KqpqcH48eORlpaG3bt3N6r2Tk1NDV588UVcuHABL774IlxdXXXG3rp1C2lpaVr3/ec//wFw9/HRuHHjUFxcjI0bN9aLFf5XSNHW1hYSiQQ1NTXivpycHK0FIZ2dnbUWg3R2dgaAevvGjh0LW1tbLF26tF7hRkEQUFJSov0iTSgmJgZSqRQbNmxQa9NHH30EhUKhNnvQ2dlZb8kForaMPUhEpNecOXOwf/9+xMXFobS0tF5hSM2ikAqFQoy5desWsrKysHfvXly5cgUTJkzAsmXL9H7erVu3MHDgQAwYMADDhg2Dv78/bty4gX379uH7779HfHw8+vTpAwB4+umn8fHHHyMxMREnT57E/fffj4qKChw5cgT/+te/MHr0aIwYMQLr1q3DsGHD8MQTT+D69evYtGkTQkJCcO7cObXPjoyMxJEjR7Bu3Tr4+PggKCgIUVFRiIyMBADMnz8fEyZMgL29PeLi4hAcHIzly5dj3rx5yMnJQXx8PFxcXJCdnY0vv/wSM2bMwMsvv9yk+2+sjh07Yt68eVi6dCmGDRuGUaNG4dKlS3jvvffQr18/tf9ekZGR2LVrFxITE9GvXz+0b98ecXFxZm0vkdWy5BQ6IrJ+qunpul76Ytu3by+EhoYKTz31lPDtt98a9HnV1dXChx9+KMTHxwudO3cWHBwchHbt2gl9+vQR1qxZI1RWVqrF37p1S5g/f74QFBQk2NvbC97e3sI//vEP4cqVK2LMRx99JISGhgoODg5Ct27dhG3btonT6Ou6ePGi8MADDwhOTk4CALUp/8uWLRN8fX0FGxubelP+9+zZIwwaNEhwdnYWnJ2dhW7dugkzZ84ULl26pHZv9JVA0KRqX1FRkd44zWn+Khs3bhS6desm2NvbC15eXsLzzz8v/PXXX2oxN2/eFJ544gnBzc1NAMAp/0R1SAShGRb0ISIiImpFOAaJiIiISAMTJCIiIiINTJCIiIiINDBBIiIiItLABImIiIhIAxMkIiIiIg0sFNlISqUSV69ehYuLC8v1ExERtRCCIKC8vBw+Pj6wsdHdT8QEqZGuXr0Kf39/SzeDiIiIGiEvLw9+fn469zNBaiQXFxcAtTdY37pSREREZD3Kysrg7+8vfo/rYvEEadOmTVizZg0KCgoQFhaGd999F/3799cZv3v3bixcuBA5OTkIDQ3FqlWr8Oijj4r79+7di82bNyM9PR2lpaXIzMxEeHi4uL+0tBSLFy/Gt99+i9zcXHTs2BHx8fFYtmwZZDKZwe1WPVZzdXVlgkRERNTCNDQ8xqKDtFWLJC5evBgZGRkICwtDbGwsrl+/rjX++PHjmDhxIqZNm4bMzEzEx8cjPj4e58+fF2MqKiowaNAgrFq1Sus5rl69iqtXr+Ltt9/G+fPnsX37dqSkpGDatGkmuUYiIiJqeSy6FltUVBT69euHjRs3Aqgd+Ozv748XXngBr732Wr348ePHo6KiAgcPHhS3DRgwAOHh4di8ebNabE5ODoKCgur1IGmze/duPPXUU6ioqICdnWGdamVlZZDJZFAoFOxBIiIiaiEM/f62WA9SVVUV0tPTERMTc7cxNjaIiYlBWlqa1mPS0tLU4gEgNjZWZ7yhVDdJX3JUWVmJsrIytRcRERG1ThYbg1RcXIyamhp4eXmpbffy8sLFixe1HlNQUKA1vqCgoEntWLZsGWbMmKE3bsWKFVi6dKnR56+pqUF1dXVjm0cNkEqleqdpEhERNYbFB2lbUllZGUaMGIEePXpgyZIlemPnzZuHxMREtWP1TfMXBAEFBQW4ceNGM7WWtLGxsUFQUBCkUqmlm0JERK2IxRIkT09P2NraorCwUG17YWEhvL29tR7j7e1tVLw+5eXlGDZsGFxcXPDll1/C3t5eb7yDgwMcHBwMPr8qOerUqRPatWvHYpImoCrWee3aNQQEBPAeExFRs7FYgiSVShEZGYnU1FTEx8cDqP3CS01NRUJCgtZjoqOjkZqaitmzZ4vbDh8+jOjoaKM+u6ysDLGxsXBwcMD+/fvh6OjY2MvQqqamRkyOPDw8mvXcpK5jx464evUq7ty502CSS0REZCiLPmJLTEzE5MmT0bdvX/Tv3x9JSUmoqKjA1KlTAQBPP/00fH19sWLFCgDArFmzMHjwYKxduxYjRozAzp07cfr0aWzZskU8Z2lpKXJzc3H16lUAwKVLlwDU9j55e3ujrKwMjzzyCG7duoVPP/1UbcB1x44dYWtr2+TrUo05ateuXZPPRfqpHq3V1NQwQSIiomZj0QRp/PjxKCoqwqJFi1BQUIDw8HCkpKSIA7Fzc3PVBuAOHDgQycnJWLBgAV5//XWEhoZi37596Nmzpxizf/9+McECgAkTJgAAFi9ejCVLliAjIwMnTpwAAISEhKi1Jzs7G4GBgc12fXzkY3q8x0REZAoWrYPUkumro3D79m1kZ2cjKCio2R/fkTreayKi1qGkpARVVVU690ul0mYZtmJoHaQ2PYuNiIiILK+kpEQsGq1PQkKC2cb2soAMqZkyZQokEgkkEgns7e3h5eWFhx9+GFu3boVSqTT4PNu3b4ebm5vpGkpERK2Gvp6jxsQ1B/YgWSFzdTPqMmzYMGzbtg01NTUoLCxESkoKZs2ahS+++AL79+83eDkWIiKilorfdFbGGroZHRwcxNpSvr6+iIiIwIABA/DQQw9h+/btmD59OtatW4dt27bh999/h7u7O+Li4rB69Wq0b98e3333nThQXjWIWjVI/pNPPsE777yDS5cuwdnZGUOHDkVSUhI6depkkmshIiJqDD5iszLW2M0IAEOHDkVYWBj27t0LoLaC9YYNG/DLL79gx44dOHr0KObOnQugdrZhUlISXF1dce3aNVy7dg0vv/wygNoSCMuWLcPZs2exb98+5OTkYMqUKWa9FiIiooawB4kM1q1bN5w7dw4A1Ip1BgYGYvny5Xjuuefw3nvvQSqVQiaTQSKR1Kty/s9//lP8/Z577sGGDRvQr18/3Lx5E+3btzfLdRARETWEPUhkMEEQxEdmR44cwUMPPQRfX1+4uLhg0qRJKCkpwa1bt/SeIz09HXFxcQgICICLiwsGDx4MoLbmFRERtU0KhaJZ45oDEyQy2IULFxAUFIScnByMHDkSvXv3xp49e5Ceno5NmzYB0P/or6KiArGxsXB1dcVnn32GU6dO4csvv2zwOCIiat1UK1A0V1xz4CM2MsjRo0fx888/46WXXkJ6ejqUSiXWrl0rVjr/v//7P7V4qVSKmpoatW0XL15ESUkJVq5cCX9/fwDA6dOnzXMBRERktQydHW3OWdTsQaJ6KisrUVBQgD///BMZGRl46623MHr0aIwcORJPP/00QkJCUF1djXfffRe///47PvnkE2zevFntHIGBgbh58yZSU1NRXFyMW7duISAgAFKpVDxu//79WLZsmYWukoiIrIWhdfPMWV+PCRLVk5KSArlcjsDAQAwbNgzHjh3Dhg0b8NVXX8HW1hZhYWFYt24dVq1ahZ49e+Kzzz4TFxRWGThwIJ577jmMHz8eHTt2xOrVq9GxY0ds374du3fvRo8ePbBy5Uq8/fbbFrpKIiIi3bgWWyOZai02a6iD1JJwLTYiopbv2rVr2LJlS4NxM2bMgFwub9JncS22FsrDwwMJCQkWraRNRERkKtpWiyguLrZQa3RjgmSFmPwQEVFrZOhTEoXCBaWlHnB3L4FMVm6GltXHBImIiIjMoqioqMGYjIw+OHBgJATBBhKJEnFxBxERkQmg9gmKuTBBIiIiIrNoqI6RQuEiJkcAIAg2+PrrOCxaFIXAQDuzPmFhgkRERERWobTUQ0yOVGpqJCgv94K5R59wmj8RERFZBXv7SgD1J9c7O5u/LUyQiIiIyCpUVzsAkNTbXlFh/rYwQSIiIiKr4O5eAolEqbbN1hYICTF/W5ggERERkVWQycoRF3cQNja1j9lsbYEPPgD8/MzfFiZIZFbfffcdJBIJbty4YfAxgYGBSEpKMlmbiIjIPAxZbDYiIhNHjmTh2DEgJweYNs307dKGCRKpmTJlCiQSCZ577rl6+2bOnAmJRIIpU6aYv2FERNTiderUSe19fr4cx48PQH6++vIhvXu7Y8gQy/QcqXCaP9Xj7++PnTt3Yv369XBycgJQu+ZZcnIyAgICLNw6IiJqDb78cjTOng1D7aBsAWFhZzFmzFeWbpaIPUhUT0REBPz9/bF3715x2969exEQEIA+ffqI2yorK/Hiiy+iU6dOcHR0xKBBg3Dq1Cm1cx06dAhdunSBk5MTHnzwQeTk5NT7vB9++AH3338/nJyc4O/vjxdffBEVlpiyQEREJqVagy0/X14nOQIACc6eDRN7kvStR2ouTJCsXH4+cOxY7U9z+uc//4lt27aJ77du3YqpU6eqxcydOxd79uzBjh07kJGRgZCQEMTGxqK0tBQAkJeXh7FjxyIuLg5nzpzB9OnT8dprr6md48qVKxg2bBjGjRuHc+fOYdeuXfjhhx+QkJBg+oskIiKLyM3tjPrT+SXIy7OepxRMkKzYRx8BnTsDQ4fW/vzoI/N99lNPPYUffvgBf/zxB/744w/8+OOPeOqpp8T9FRUVeP/997FmzRoMHz4cPXr0wIcffggnJyd89L+Gvv/++wgODsbatWvRtWtXPPnkk/XGL61YsQJPPvkkZs+ejdDQUAwcOBAbNmzAxx9/jNu3b5vvgomIyGwCAv5A/YKQAvz9cy3RHK04BslK5ecDM2YAyv+Vg1AqgWefBWJjzTNorWPHjhgxYgS2b98OQRAwYsQIeHp6ivuvXLmC6upq3HfffeI2e3t79O/fHxcuXAAAXLhwAVFRUWrnjY6OVnt/9uxZnDt3Dp999pm4TRAEKJVKZGdno3v37qa4PCIisiA/v2sICztbbwySn981SzdNxATJSl2+fDc5UqmpAbKyzDeq/5///Kf4qGvTpk0m+YybN2/i2WefxYsvvlhvHweEExG1XmPGfIV+/U4iLy8A/v65VpUcAUyQrFZoKGBjo54kmbua6LBhw1BVVQWJRILY2Fi1fcHBwZBKpfjxxx/RuXNnALWrNJ86dQqzZ88GAHTv3h379+9XO+6nn35Sex8REYFff/0VIZYok0pERBbl53fN6hIjFY5BslJ+fsCWLbVJEWCZaqK2tra4cOECfv31V9iqGvI/zs7OeP755/HKK68gJSUFv/76K5555hncunUL0/5X1eu5557D5cuX8corr+DSpUtITk7G9u3b1c7z6quv4vjx40hISMCZM2dw+fJlfPXVVxykTUREFsUeJCs2bVrtmKOsrNqeI0sUzHJ1ddW5b+XKlVAqlZg0aRLKy8vRt29ffPPNN+jQoQOA2kdke/bswUsvvYR3330X/fv3x1tvvYV//vOf4jl69+6N//f//h/mz5+P+++/H4IgIDg4GOPHjzf5tRERkXlJpdJmjTMliSAImsPIyQBlZWWQyWRQKBT1kojbt28jOzsbQUFBcHR0tFAL2wbeayKilqWkpERvnSOpVAoPDw+Tfb6+7++62INEREREZlM3+cnPr52UFBpq2WVFtOEYJCIiIjI7S9b6MwQTJCIiIjIrXbX+zL1qhD5MkIiIiMis9NX6sxZMkEyI499Nj/eYiKjlUdX6q8vctf4awgTJBOzt7QEAt27dsnBLWj/VTAjNOk1ERGS9rKHWX0M4i80EbG1t4ebmhuvXrwMA2rVrB4lEc9ViaiqlUomioiK0a9cOdnb8o0xE1JJYQ60/ffitYiLe3t4AICZJZBo2NjYICAhgAkpEZGbNUc/Iz8/6EiMVJkgmIpFIIJfL0alTJ1RXV1u6Oa2WVCqFjeaDbCIiMqmSkhJs3LixwbiEhASTFn00JSZIJmZra8vxMURE1Kro6zlqTJw14j+9iYiIqEkUChdkZwdCoXCxdFOaDXuQiIiIqNEyMvrgwIGREAQbSCRKxMUdREREpqWb1WTsQSIiIqJGUShcxOQIAATBBgcOjGwVPUlMkIiIiKhRSks9xORIRRBsUFrqbqEWNR8mSERERNQo7u4lkEjU1wyRSJRwdy+1UIuaj8UTpE2bNiEwMBCOjo6IiorCyZMn9cbv3r0b3bp1g6OjI3r16oVDhw6p7d+7dy8eeeQReHh4QCKR4MyZM/XOcfv2bcycORMeHh5o3749xo0bh8LCwua8LCIiolZPJitHXNxBMUlSjUGSycot3LKms2iCtGvXLiQmJmLx4sXIyMhAWFgYYmNjdRZXPH78OCZOnIhp06YhMzMT8fHxiI+Px/nz58WYiooKDBo0CKtWrdL5uS+99BIOHDiA3bt34//9v/+Hq1evYuzYsc1+fURERK2RVCoVf4+IyMTs2UmYPHk7Zs9OUhugXTeupZEIFlztMyoqCv369ROLTSmVSvj7++OFF17Aa6+9Vi9+/PjxqKiowMGDB8VtAwYMQHh4ODZv3qwWm5OTg6CgIGRmZiI8PFzcrlAo0LFjRyQnJ+Mf//gHAODixYvo3r070tLSMGDAAIPaXlZWBplMBoVCAVdXV2MvnYiIqEVrjkralmDo97fFpvlXVVUhPT0d8+bNE7fZ2NggJiYGaWlpWo9JS0tDYmKi2rbY2Fjs27fP4M9NT09HdXU1YmJixG3dunVDQECA3gSpsrISlZWV4vuysjKDP5OIiKglaqlJUHOwWIJUXFyMmpoaeHl5qW338vLCxYsXtR5TUFCgNb6goMDgzy0oKIBUKoWbm5tR51mxYgWWLl1q8OcQERG1ZJrLiSgULigt9YC7e4naGKOWvJyIPiwUaaB58+ap9V6VlZXB39/fgi0iIiIynbo9R/qKQbbk5UT0sdggbU9PT9ja2tabPVZYWAhvb2+tx3h7exsVr+scVVVVuHHjhlHncXBwgKurq9qLiIiotWvNxSD1sViCJJVKERkZidTUVHGbUqlEamoqoqOjtR4THR2tFg8Ahw8f1hmvTWRkJOzt7dXOc+nSJeTm5hp1HiIiotZM1ZHQUDFIzQ6H1sKij9gSExMxefJk9O3bF/3790dSUhIqKiowdepUAMDTTz8NX19frFixAgAwa9YsDB48GGvXrsWIESOwc+dOnD59Glu2bBHPWVpaitzcXFy9ehVAbfID1PYceXt7QyaTYdq0aUhMTIS7uztcXV3xwgsvIDo62uAZbERERK3dnTt3ANQWgwQEABJxX91ikKq41saiCdL48eNRVFSERYsWoaCgAOHh4UhJSREHYufm5sLG5m7WOnDgQCQnJ2PBggV4/fXXERoain379qFnz55izP79+8UECwAmTJgAAFi8eDGWLFkCAFi/fj1sbGwwbtw4VFZWIjY2Fu+9954ZrpiIiMj6aJut9tdff9V5p54gWa5AkPlYtA5SS8Y6SERE1BpozlbTlJ0diB07JtfbPnnydgQF/YGxY8eiV69epmxiszL0+9viS40QERGR5TQ0C601r7emDxMkIiIiEuXny3H8+ADk58sBNLzemr29vcXaakqsg0RERNSG1Z2F9uWXo3H2bBhqxxsJCAs7izFjvkJERCaCg7NQWuoOd/dStUKRMpnM7G02B/YgERERtWGqWWj5+fI6yREASHD2bJhaT1JQ0B9qyVFrxgSJiIiIkJvbGXVnqtWSIC8vQO9xUqnUZG2yJD5iIyIiIgQE/AHN6fyAAH//XADAgw8+iNDQULVjuFgtERERtWp+ftcQFna23hgkP79rAIAOHTpALpdbtI3mxASJiIioDas7C23MmK/Qr99J5OUFwN8/V0yONOPaAiZIREREbZjmLDQ/v2tqiZGuuNaOg7SJiIiINDBBIiIiasMMnYXWWmer6cJHbERERG2Yh4cHEhIS9C450ppnq+nCBImIiKiNa2vJjyH4iI2IiIhIAxMkIiIiIg1MkIiIiIg0MEEiIiIi0sAEiYiIiEgDEyQiIiIiDUyQiIiIiDQwQSIiIiLSwASJiIiISAMTJCIiIiINTJCIiIiINDBBIiIiItLABImIiIhIAxMkIiIiIg12lm4AERERGa6kpARVVVU690ulUnh4eJixRa0TEyQiIqIWoqSkBBs3bhTfKxQuKC31gLt7CWSycnF7QkICk6QmYoJERETUQtTtOcrI6IP9+0eidrSMEqNGHURERGa9OGocjkEiIiJqYRQKlzrJEQDYYP/+kVAoXCzZrFaFCRIREVELk5fnj/pf4TbIy/OzRHNaJSZIRERELYRCoWjWONKNCRIREVELUV1dDQDw988DIKjtk0iU8PfPV4ujxmOCRERE1MLIZOUYNeoAJBIlgNrkKC7uoNpMNmoazmIjIiJqgSIiMhEcnIXSUne4u5cyOWpmTJCIiIhaCDs79a9tmaxca2KkGUfG4x0kIiKyQnUrZmdm2uHkSSm6dDHsa9vNzc2ELWsbmCARERFZmboVs7/8cjTOng0DIAHgirCw0Rgz5iuLtq8t4CBtIiIiK1NUVAQAyM+X10mOAECCs2fDkJ8vt1jb2gomSERERFZGNU0/N7cz7iZHKhLk5QXoPV4qlZqmYW0IH7ERERFZqYCAP1Bb76hukiTA3z8XAPDggw8iNDRU7RipVMqFapsBEyQiIiIr5ed3DWFhZ+s8ZhMQFnYWfn7XAAAdOnSAXM7HbabABImIiMiKjRnzFfr1O4m8vAD4++eKyRGZFhMkIiIiC6k7lb+uv/76S+29n981JkZmxgSJiIjIAupO5SfrwwSJiIjIAq5fv672/tKlEFy+3AWhob+ha9csg87BitmmwztLRERkAXfu3BF///e/pyI/3x+ABKdP94WfXx6mT9/W4Dk6depkwha2bRavg7Rp0yYEBgbC0dERUVFROHnypN743bt3o1u3bnB0dESvXr1w6NAhtf2CIGDRokWQy+VwcnJCTEwMLl++rBbz22+/YfTo0fD09ISrqysGDRqEY8eONfu1ERER6VJeXruG2qVLIWJyVEuC/Hx/XLoUAgAYMGAAZsyYUe+VkJDA6fwmZNEEadeuXUhMTMTixYuRkZGBsLAwxMbG1ut2VDl+/DgmTpyIadOmITMzE/Hx8YiPj8f58+fFmNWrV2PDhg3YvHkzTpw4AWdnZ8TGxuL27dtizMiRI3Hnzh0cPXoU6enpCAsLw8iRI1FQUGDyayYiIgLu9iBdvtwF2opBZmXV1jdycnKCXC6v92JyZFoWTZDWrVuHZ555BlOnTkWPHj2wefNmtGvXDlu3btUa/84772DYsGF45ZVX0L17dyxbtgwRERHiIDdBEJCUlIQFCxZg9OjR6N27Nz7++GNcvXoV+/btAwAUFxfj8uXLeO2119C7d2+EhoZi5cqVuHXrllqiRUREZA6hob+hthhkXQJCQi5rCyczsViCVFVVhfT0dMTExNxtjI0NYmJikJaWpvWYtLQ0tXgAiI2NFeOzs7NRUFCgFiOTyRAVFSXGeHh4oGvXrvj4449RUVGBO3fu4IMPPkCnTp0QGRmps72VlZUoKytTexERETVV165Z8PPLw90kSYCfX57BA7XJNCyWIBUXF6OmpgZeXl5q2728vHQ+6iooKNAbr/qpL0YikeDIkSPIzMyEi4sLHB0dsW7dOqSkpKBDhw4627tixQrIZDLx5e/vb9wFExER6RARcQZ1E6Ta92RJFh+kbW6CIGDmzJno1KkTvv/+e5w8eRLx8fGIi4vDtWu6i3DNmzcPCoVCfOXl5Zmx1URE1NpUVlYCABQKFxw4MBJ3v5JtcODASCgULmpxZF4WS5A8PT1ha2uLwsJCte2FhYXw9vbWeoy3t7feeNVPfTFHjx7FwYMHsXPnTtx3332IiIjAe++9BycnJ+zYsUNnex0cHODq6qr2IiIiaixnZ2cAQGmpBwRB/etYEGxQWuquFkfmZbEESSqVIjIyEqmpqeI2pVKJ1NRUREdHaz0mOjpaLR4ADh8+LMYHBQXB29tbLaasrAwnTpwQY27dugWgdrxTXTY2NlAqlU2/MCIiIgO4uNT2ELm7l0AiUf/+kUiUcHcvVYsj87LoI7bExER8+OGH2LFjBy5cuIDnn38eFRUVmDp1KgDg6aefxrx588T4WbNmISUlBWvXrsXFixexZMkSnD59GgkJCQBqxxfNnj0by5cvx/79+/Hzzz/j6aefho+PD+Lj4wHUJlkdOnTA5MmTcfbsWfz222945ZVXkJ2djREjRpj9HhARUdtkb28PAJDJyhEXd1BMkiQSJeLiDkImK1eLI/OyaCXt8ePHo6ioCIsWLUJBQQHCw8ORkpIiDrLOzc1V6+kZOHAgkpOTsWDBArz++usIDQ3Fvn370LNnTzFm7ty5qKiowIwZM3Djxg0MGjQIKSkpcHR0BFD7aC8lJQXz58/H0KFDUV1djXvvvRdfffUVwsLCzHsDiIiozZLJZOLvERGZCA7OQmmpO9zdS8XkSDOOzEciCIJm8QUyQFlZGWQyGRQKBccjERGR0a5du4YtW7Y0GDdjxgzI5XIztKhtMPT7u83NYiMiIiJqCBMkIiIiIg1MkIiIiCxAKpU2axw1L4sO0iYiImoNSkpKUFVVBQC4etUG2dl2CAq6Ax+f2plpUqm03uKyHh4eSEhIEI/TRttxZB5MkIiIiJqgpKREXDQ9I6MPDhwYCUGwEafrR0RkAgASEhK0JklknfiIjYiIqAlUPUCqJUNUVbEFQX3JEH09RWR9mCARERE1g4aWDKGWhQkSERFRM2hoyRBqWZggERERNYOGlgyhloWDtImIiJqJviVDqGVhgkRERNSMZLJyJkatAB+xEREREWlggkRERNQErIjdOvERGxERUROwInbrxASJiIioiZj8tD58xEZERESkgT1IREREBmrMorTUMjFBIiIiMkBTFqWllocJEhERUR11e4nqKi4uBqB7Udrg4CzIZOVclLaVYIJERET0P3V7iYDaZKi01APu7iVi8Ud9i9KyQGTrwQSJiIjof+r2/uh6jKZalLZuksRFaVsfzmIjIiLSoOsxmkLhwkVp2wj2IBEREWlo6DEaF6Vt/ZggERFRm9PQQGx39xIASqg/aFF/jMZFaVs3JkhERNSmaA7E1k2i/k6iI4xaJY5BIiKiNsWQafilpR7QTJBUj9gawkVpWwf2IBEREWloaKbagw8+iNDQ0HrHsZJ268EEiYiI2jRttY5UM9U0p/mr9nfs2BFyudySzSYTY4JERERtlr4lQ/TNVHNzc7NQi8lcOAaJiIjaJH21jlRksnIEBf3B2WptEBMkIiJqk/TVOiJigkRERG2KQqEAULfWUV1cMoRqMUEiIqI2RRCEOu8aV+uIU/lbPw7SJiKiNkU1wFpfrSOZrBxjx46Fp6dnveM5lb9tYIJERERtUkO1jjw9PTmVvw3jIzYiImqTVLWOJJLacUiatY6obWMPEhERtVn6ah1R28YEiYiI2jSZrJyJEdVj1CO2/Px8FBcXi++///57PPnkk7j//vvx1FNPIS0trdkbSERERGRuRiVI48aNw08//QQA+OqrrzBkyBDcvHkT9913H27duoXBgwfj4MGDJmkoERFRczB0ij6n8rdtEkG9IIRe7du3x88//4ygoCAMGDAAY8aMwauvviru37hxI7Zu3YqMjAyTNNaalJWVQSaTQaFQwNXV1dLNISIiI5SUlKCqqkrnfk7lb70M/f42agySnZ0dystrn9NmZ2dj+PDhavuHDx+uljARERFZIyY/1BCjHrENHjwYn3/+OQCgT58++O6779T2Hzt2DL6+vs3WOCIiIiJLMKoHaeXKlbj//vtx9epVDBo0CPPnz8epU6fQvXt3XLp0Cbt27cLmzZtN1VYiImqj+EiMzM2oMUgAcOXKFSxYsABff/01bt68CaD20Vu/fv3wyiuvID4+3hTttDocg0REZB4lJSXYuHFjg3EJCQlMkqhBJhmDBADBwcH4/PPPIQgCrl+/DqVSCU9PT9jb2zepwURERNro6zlqTByRIRpdKFIikcDLy6s520JERFTPjRs3DI7j2mnUXIxKkBITEw2KW7duXaMaQ0REpOnOnTtq7/Pz5cjN7YyAgD/g53dNZxxRUxiVIGVmZqq9/+GHHxAZGQknJydxm0QiaZ6WERERAWJ5GQD48svROHs2DIAEgICwsLMYM+arenFETWXUNP9jx46pvRwdHZGcnKy27ejRo0Y1YNOmTQgMDISjoyOioqJw8uRJvfG7d+9Gt27d4OjoiF69euHQoUNq+wVBwKJFiyCXy+Hk5ISYmBhcvny53nm+/vprREVFwcnJCR06dGgzg8uJiFoaVc9Qfr68TnIEABKcPRuG/Hy5WhxRczAqQWpuu3btQmJiIhYvXoyMjAyEhYUhNjYW169f1xp//PhxTJw4EdOmTUNmZibi4+MRHx+P8+fPizGrV6/Ghg0bsHnzZpw4cQLOzs6IjY3F7du3xZg9e/Zg0qRJmDp1Ks6ePYsff/wRTzzxhMmvl4iIGu+337rgbnKkIsHly6GWaA61chZNkNatW4dnnnkGU6dORY8ePbB582a0a9cOW7du1Rr/zjvvYNiwYXjllVfQvXt3LFu2DBEREeL0T0EQkJSUhAULFmD06NHo3bs3Pv74Y1y9ehX79u0DUPsvjFmzZmHNmjV47rnn0KVLF/To0QOPP/64uS6biIgaoX177Y/QnJ1vmrkl1BZYLEGqqqpCeno6YmJi7jbGxgYxMTFIS0vTekxaWppaPADExsaK8dnZ2SgoKFCLkclkiIqKEmMyMjLw559/wsbGBn369IFcLsfw4cPVeqG0qaysRFlZmdqLiIhMT1VGpmvXywA0S/cJ/9sOlpuhZmXUIO1z586pvRcEARcvXhQLRqr07t27wXMVFxejpqamXqkALy8vXLx4UesxBQUFWuMLCgrE/aptumJ+//13AMCSJUuwbt06BAYGYu3atRgyZAh+++03uLu7a/3sFStWYOnSpQ1eFxERNa/27dsDAGSycowadQAHDoyEINhAIlEiLu4gZLJytTii5mBUghQeHg6JRIK6xbdHjhwJAOJ2iUSCmpqa5m1lM1IqlQCA+fPnY9y4cQCAbdu2wc/PD7t378azzz6r9bh58+aplTkoKyuDv7+/6RtMRNTG2dnd/aqKiMhEcHAWSkvd4e5eKiZHmnFETWXUn6bs7Oxm+2BPT0/Y2tqisLBQbXthYSG8vb21HuPt7a03XvWzsLBQrVhYYWEhwsPDAUDc3qNHD3G/g4MD7rnnHuTm5upsr4ODAxwcHAy8OiIiai5ubm5q72WycrXESFccUVMYNQapc+fOBr0MIZVKERkZidTUVHGbUqlEamoqoqOjtR4THR2tFg8Ahw8fFuODgoLg7e2tFlNWVoYTJ06IMZGRkXBwcMClS5fEmOrqauTk5BjcdiIiMh+pVNqscUSGaFR/pFKphI1N/dxKqVQiPz8fAQEBBp0nMTERkydPRt++fdG/f38kJSWhoqICU6dOBQA8/fTT8PX1xYoVKwAAs2bNwuDBg7F27VqMGDECO3fuxOnTp7FlyxYAtY/5Zs+ejeXLlyM0NBRBQUFYuHAhfHx8xDpHrq6ueO6557B48WL4+/ujc+fOWLNmDQDgsccea8ztICIiE/Lw8EBCQoLetdakUikXqqVmZVSCVFZWhunTp+PAgQNwdXXFs88+i8WLF8PW1hYAUFRUhKCgIIPHII0fPx5FRUVYtGgRCgoKEB4ejpSUFHGQdW5urloiNnDgQCQnJ2PBggV4/fXXERoain379qFnz55izNy5c1FRUYEZM2bgxo0bGDRoEFJSUuDo6CjGrFmzBnZ2dpg0aRL+/vtvREVF4ejRo+jQoYMxt4OIiMyEyQ+Zm0SoO+K6AbNmzUJKSgrefPNN3LhxA8uXL0fPnj2xd+9eSKVSceyPaiB0a1ZWVgaZTAaFQgFXV1dLN4eIiIgMYOj3t1FjkPbt24cPPvgA//jHPzB9+nScPn0aRUVFiIuLQ2VlJQCuxUZEREQtn1GP2IqKitQGMnt6euLIkSOIjY3Fo48+in//+9/N3kAiImpdSkpKOJ6IrJ5RCVJAQAAuXLiAoKAgcZuLiwu+/fZbPPLIIxgzZkyzN5CIiFqPkpIScXkofRISEpgkkUUZ9Yjt4YcfxrZt2+ptb9++Pb755hu1gdBERESaNHuOFAoXZGcHQqFw0RtHZG5G9SC98cYbuHbtmtZ9Li4uOHz4MDIyMpqlYURE1HLpeoxWXFws/p6R0afesiEREZnmbCaRTkYlSJmZmUhISMBPP/1Ub+S3QqHAwIED8f777zdrA4mIqGXRfIymULigtNQD7u4lYgVshcJFTI4AQBBscODASAQHZ2mtkk1kbkYlSElJSXjmmWe0TouTyWR49tlnsX79ejzwwAPN1kAiImpZ6vYc6eolKi31EJMjFUGwQWmpOxMksgpGjUE6e/Yshg0bpnP/I488gvT09CY3ioiIWj5dvUQKhQvc3UsgkajXzJNIlHB3L7VEU4nqMSpBKiwshL29vc79dnZ2KCoqanKjiIio5VIoFADQYC9RXNxBMUlS9S6x94ishVGP2Hx9fXH+/HmEhIRo3X/u3DnI5fJmaRgREbVM1dXVACD2EtVNkur2EkVEZCI4OAulpe5wdy9lckRWxagepEcffRQLFy7E7du36+37+++/sXjxYowcObLZGkdERC2XTFaO3r3PAVCtaCWgd+9zaomQTFaOoKA/6iVHUqnUfA0l0sKoHqQFCxZg79696NKlCxISEtC1a1cAwMWLF7Fp0ybU1NRg/vz5JmkoERG1LAqFC86d6w1AtQSVBOfO9cbQoUchk5XjwQcfRGhoaL3jWEmbrIFRCZKXlxeOHz+O559/HvPmzYNqnVuJRILY2Fhs2rQJXl5eJmkoERG1LA2NQerQoQOHZZDVMipBAoDOnTvj0KFD+Ouvv5CVlQVBEBAaGooOHTqYon1ERNTC2NnVfrU0NAZJFUdkjYwag1RXhw4d0K9fP/Tv35/JERERidzc3ACgwZlqqjgia8T0nYiITIYz1ailYoJEREQ66VpTTUXbgGrNGWgyWbnWxIgz1ciaMUEiIiKtDFlTDQASEhLUkiQPDw8kJCQYnVgRWRMmSEREpJUha6ppxqkw+aGWrtGDtImIqG3Qt6YaUWvFBImIiPTSV8+IqLVigkRERHqp6hnVVbeeEVFrxASJiIj0aqieEVFrxEHaRERtRGOm7KuwnhG1NUyQiIjaAM0p+7o8/vjjYoXr4uJitX266hkRtUZMkIiI2gB9PUd1/d///Z/R52bBR2qNmCAREZFBxo4dC09PT7VtLPhIrRUTJCKiNkChUGi8114VWx9PT0/I5XJTNI/I6jBBIiJqA6qrq8XfMzL6YP/+kaidyKzEqFF3q2IDjUueiFobJkhERK2Irplqf/75J4Da5OducgQANti/fySCg7Mgk5XrXVKEqC1hgkRE1EoYMlMtL88f9Uvg2SAvzw9AvtYlRVTJE1FbwkKRRESthKEz1XThkiJEd7EHiYioldI2lsjfPw+AAEAixkkkSvj754u/102SuKQItVVMkIiIWiFdY4lksnKMGnWg3j5VAhUXd1DnPtY7oraECRIRUSujULg0OJZIEKD2U2XOHDcsWlSEnBw7BAbegY9PPwD9WO+I2hwmSERErUxDY4kOHFCfxVY3eerUqRO6dfNCZKR520xkbZggERG1QNqm86vWTnN3L9E5lkhf8lS71prM9I0nagGYIBERtTANTeeXycr1jiXSNxCb44yIajFBIiJqYTR7jrTNVouIyERwcBZKS93h7l4qbpfJyvHGG4VYssQbNTUS2NoKWLWqDE88MZHjjIjqYIJERNSC6at8PXXqwzoXl50yBcjKAkJCJPDzcwPgZu6mE1k1JkhERC1UQ7PV9C0u6+dX+yIi7VhJm4iohWLlayLTYQ8SEZGV0rXwrCGz1YioaZggERFZIUMWnm1othoRNR4TJCIiE9PVE6SibfaYoQvP6pqtRkRNwwSJiMiEDOkJAoCEhIRGT7GvLfBYPzFiTSOixmOCRERkQob2BDUUp63WEQCMHTu23lR+QHuvFBEZjgkSEZGV01frSN9UfiJqPKuY5r9p0yYEBgbC0dERUVFROHnypN743bt3o1u3bnB0dESvXr1w6NAhtf2CIGDRokWQy+VwcnJCTEwMLl++rPVclZWVCA8Ph0QiwZkzZ5rrkoiImoWuWkcKhYuFW0bUulk8Qdq1axcSExOxePFiZGRkICwsDLGxsbh+/brW+OPHj2PixImYNm0aMjMzER8fj/j4eJw/f16MWb16NTZs2IDNmzfjxIkTcHZ2RmxsLG7fvl3vfHPnzoWPj4/Jro+IqClY64jIMiyeIK1btw7PPPMMpk6dih49emDz5s1o164dtm7dqjX+nXfewbBhw/DKK6+ge/fuWLZsGSIiIsRBkIIgICkpCQsWLMDo0aPRu3dvfPzxx7h69Sr27dundq7//Oc/+Pbbb/H222+b+jKJqI1SKBRNilPVOqqLtY6ITM+iCVJVVRXS09MRExMjbrOxsUFMTAzS0tK0HpOWlqYWDwCxsbFifHZ2NgoKCtRiZDIZoqKi1M5ZWFiIZ555Bp988gnatWvXYFsrKytRVlam9iIiakh1dXWj4lQz0FS1jlRJkmatI85UIzINiw7SLi4uRk1NDby8vNS2e3l54eLFi1qPKSgo0BpfUFAg7ldt0xUjCAKmTJmC5557Dn379kVOTk6DbV2xYgWWLl1q0HUREemiazaaJg8PDyQkJIiz2xYtKkJOjh0CA+/Ax6cfgH6cqUZkQm1yFtu7776L8vJyzJs3z+Bj5s2bh8TERPF9WVkZ/P39TdE8IrJixhZ9tLO7+9esvtlodeNU6p5HLgciI5vjCojIEBZNkDw9PWFra4vCwkK17YWFhfD29tZ6jLe3t9541c/CwkK1qa+FhYUIDw8HABw9ehRpaWlwcHBQO0/fvn3x5JNPYseOHfU+18HBoV48EbUtjSn66ObmBkD3bLTg4CzIZOViHBFZB4uOQZJKpYiMjERqaqq4TalUIjU1FdHR0VqPiY6OVosHgMOHD4vxQUFB8Pb2VospKyvDiRMnxJgNGzbg7NmzOHPmDM6cOSOWCdi1axfefPPNZr1GImo9mlL0kbPRiFoWiz9iS0xMxOTJk9G3b1/0798fSUlJqKiowNSpUwEATz/9NHx9fbFixQoAwKxZszB48GCsXbsWI0aMwM6dO3H69Gls2bIFACCRSDB79mwsX74coaGhCAoKwsKFC+Hj44P4+HgAQEBAgFob2rdvDwAIDg6Gn5+fma6ciNoSe/tKAAIASZ2tAuztDUu6iMi8LJ4gjR8/HkVFRVi0aBEKCgoQHh6OlJQUcZB1bm4ubGzu/qtr4MCBSE5OxoIFC/D6668jNDQU+/btQ8+ePcWYuXPnoqKiAjNmzMCNGzcwaNAgpKSkwNHR0ezXR0QEANXVDlBPjgBAgupqzkIjskYWT5CA2uf1CQkJWvd999139bY99thjeOyxx3SeTyKR4I033sAbb7xh0OcHBgZCEASDYomIjKGahq+qZ1T3MVvdekacrk9kXawiQSIiaq3qTtf39S3Dq6/KUFMjga2tgFWryvDEExM5XZ/ICjFBIiJqJGNqGgHAnDnA+PFAVhYQEiKBn58bADeztJWIjMMEiYioEfTVNNLHz6/2RUTWjQkSEbVJxhZ8VG0DGq5pxPFERC2fRODo5EYpKyuDTCaDQqGAq6urpZtDREZoTMHHusceOwY89lj9MUNffFGCIUPA8UREVszQ72/2IBFRm9OUgo8eHh4YMACwsQGUyrvbbW2BqCgPMDciah0sWkmbiKgl8vMDtmypTYqA2p8ffMCxRUStCXuQiIgaYdo0IDZWNSONyRFRa8MEiYjaHIVCofFe+3R9hUKhtui1Js5II2q9mCARUZtTXV0t/q5vun7dOCJqWzgGiYjaLF3T9RUKFwu3jIgsjQkSEbVZpaUeamujAbVJUmmpu4VaRETWggkSEbU5dna1owtUC8jWVXcBWVUcEbU9TJCIqM1xc3MDAMhk5YiLOwhAlSTVjkFSDdRWxRFR28MEiYjaPIlE/ScREfuPiahFaMzaaQ1paE01Imq7mCARkdVrytpp2qgWk9U3SJuLzhK1bUyQiMjqafYc6SrsaOgaax4eHkhISEBOzh188okApfLuszVbWwEvvDAcgYF2XHSWqA1jgkRELYq+wo7G8PCoXVh2yxbg2WeBmhrVmmoSREZ6maDlRNSSMEEiohbDFGOGuKYaEWnDBImIrIaugdjFxcUAGh4z1FhcU42INDFBIiKrYMhAbFVhx7pJUt3CjkREzYV1kIjIKhgywFpV2FFV/Vo1BolT8omoubEHiYhalIiITAQHZ6G01B3u7qVMjojIJJggEZFJ6CvsqFAoIAiC2lIeqnFGd2O0T+UHanuStCVGrFtERM2FCRIRNTtDCzvqom8q/9ixY+Hp6VnvmMZU0iYi0oUJEhE1WkOzzhqjoan8np6ekMvljT4/EZEhmCARUaMY00uk73GZJlNN5SciMgYTJCJqFEOX9TC28jWn8hORNeA0fyIyGV2PyxQKF7WY7OxAcVtDU/k5EJuIzIE9SETUoCtXruDWrVtq2/76668Gj2vocZmu3qWIiEwkJISirKwTAgPvwMenH4B+HIhNRGbDBImI9Lpy5Qo+/fTTRh2r73FZQ4Oxe/Z0g1zOZIiILIOP2IhIL82eI81HYvroe1ymr3eJiMjS2INERHrdvHlT/N3YAdeA7srXDQ3G5lgjIrIkJkhEpFd1dTWA2p6j/fvjAEgA1H8kpou2wo6qStq+vmV49VUZamoksLUVsGpVGZ54YiLHGhGRxTFBIiKD5OX5Q5UcqQiCDfLy/CCTXdBZ68jHx6desqMq9Ni9OzB+PJCVBYSESODn5wbAzbQXQkRkACZIRNRktY/e4iAIEtjYCFi9WoEnnvjboJ4gP7/aFxGRNeEgbSIyiJvbXwAEja0C7O2r/zcuqbZ3SamU4NVX3VBTI+djMiJqsdiDRNTK6FofTaWx43uqqx2g+YgNkKCkpP5stJqa2sdm7BkiopaKCRJRK2Lo+mgJCQkGJ0mOjo4AdM86CwjIrbfd1hYICTGy8UREVoSP2IhaEUPXRzM0DgD8/f0B6K5p5Od3DXFxB2FrW/v4zdYW+OAD9h4RUcvGHiSiVkShUGi81z6zTKFQiDPJGlK3HpGumkYREZlYvvx+lJR0QEgIkyMiavmYIBG1IqqaRYD+oo514xri4eGBhIQEA8Y1dWh8w4mIrAwTJKJWqKF1zozF2WhE1NZwDBJRK8R1zoiImoYJElErpJpxVlfddc6IiEg/JkhErZBMVo7evc/hbmFHAb17n2vU4zUioraIY5CILKw5Czva2dX+L61QuODcud64W9hRgnPnemPo0KOQycrFOCIi0s4qepA2bdqEwMBAODo6IioqCidPntQbv3v3bnTr1g2Ojo7o1asXDh06pLZfEAQsWrQIcrkcTk5OiImJweXLl8X9OTk5mDZtGoKCguDk5ITg4GAsXrzYqNowRM1BVdhxy5Yt2LJlC9as+Rzz5n2LNWs+F7dt3LgRJSUlBp3Pzc0NQMNjkFRxRESkncUTpF27diExMRGLFy9GRkYGwsLCEBsbi+vXr2uNP378OCZOnIhp06YhMzMT8fHxiI+Px/nz58WY1atXY8OGDdi8eTNOnDgBZ2dnxMbG4vbt2wCAixcvQqlU4oMPPsAvv/yC9evXY/PmzXj99dfNcs1EKnX/nGdk9MH69bOxY8dkrF8/GxkZfbTG6aOqWdTQGKS6tY2IiKg+iSAImqtPmlVUVBT69esnLo+gVCrh7++PF154Aa+99lq9+PHjx6OiogIHDx4Utw0YMADh4eHYvHkzBEGAj48P5syZg5dffhlAbVE8Ly8vbN++HRMmTNDajjVr1uD999/H77//blC7y8rKIJPJoFAo4OrqauxlEwEAfv75Z+zduxcKhQvWr58N9X+zKPHSS0mQycoxduxY9OrVy6Bzqh7ZJSc74dVXZaipkcDWVsCqVQo88cTfjV6LjYioNTD0+9uiPUhVVVVIT09HTEyMuM3GxgYxMTFIS0vTekxaWppaPADExsaK8dnZ2SgoKFCLkclkiIqK0nlOoDaJcnfXPQW6srISZWVlai+i5pKX54/6/zvaIC/P+JLUHh4ekMvlmDPHDTk5Ehw7BuTkSDBnjhvkcjmTIyIiA1h0pGZxcTFqamrg5eWltt3LywsXL17UekxBQYHW+IKCAnG/apuuGE1ZWVl499138fbbb+ts64oVK7B06VL9F0RtXnMOuG4Ofn5c9oOIqDHa/FSWP//8E8OGDcNjjz2GZ555RmfcvHnzkJiYKL4vKysTF/EkAu4OuFbJz5cjN7czAgL+gJ/fNXF7QkJCvSTJ3z8PtVPyJeI2iUQJf/98UzebiIi0sGiC5OnpCVtbWxQWFqptLywshLe3t9ZjvL299carfhYWFqotxllYWIjw8HC1465evYoHH3wQAwcOxJYtW/S21cHBAQ4ODgZdF7VNRUVF4u9ffjkaZ8+GoTbhERAWdhZjxnwlxmkmSDJZOUaNOlBv7TTWLSIisgyLjkGSSqWIjIxEamqquE2pVCI1NRXR0dFaj4mOjlaLB4DDhw+L8UFBQfD29laLKSsrw4kTJ9TO+eeff2LIkCGIjIzEtm3bYGNj8Ql91MKVltbOEMvPl9dJjgBAgrNnw5CfL1eL0xQRkYnZs5MwefJ2zJ6dJC4sS0RE5mfxR2yJiYmYPHky+vbti/79+yMpKQkVFRWYOnUqAODpp5+Gr68vVqxYAQCYNWsWBg8ejLVr12LEiBHYuXMnTp8+LfYASSQSzJ49G8uXL0doaCiCgoKwcOFC+Pj4ID4+HsDd5Khz5854++231f7lr6vniqghd+7cAQDk5nZG3UdltSTIywuAn981MQ4A7O3t1aJksnKtvUaacUREZFoWT5DGjx+PoqIiLFq0CAUFBQgPD0dKSoo4yDo3N1etd2fgwIFITk7GggUL8PrrryM0NBT79u1Dz549xZi5c+eioqICM2bMwI0bNzBo0CCkpKTA0dERQG2PU1ZWFrKysuCnMYLVwlUPqAXQNRC7vLw2sQkI+AOa44kAAf7+ufWO6dixo0GfaWgcERE1D4vXQWqpWAepbdIciK3Lv/89Ffn5/lCNQfLzy8P06dsAAA8++CAeeOABtXNa08w3IqLWzNDvb4v3IBFZkrHJiSHL0SgULvjzTz/UHYP0559+UChctD4+Y/JDRGR9mCBRm2Vob5C2afn66FsHjbPSiIhaBk7dojZLszdIoXBBdnYgFAoXvXENaWgdNDs7/ruEiMja8W9qavV0PUbLzs4Wf8/I6FOvBpFqmv2NGzfUamo1RCYrR1zcQZ01jfQtaUNERNaBCRK1aoZUt1YoXMRkBqh9HHbgwEgEB2dBJitXm5ZvqIiITAQHZ6G01B3u7qVqj9Y4I42IyPoxQaJWzZDq1k0ZM6RQuKC01APu7iVqsWPHjoWnp2e9eM5IIyJqGZggUatWXV0NQHd16379TopjhuomSXXHDOmi77Gcp6enUY/liIjIunCQNrUJ+qpbq8YMqQZW61sHTSqVAtD9WE41wFsVR0RELRN7kKhNMKS6tapkqr7SqR4eHkhISMCxY8D69fUfy91332QMGcLaRkRELR0TJLI6umadKRQKVFdXw87ODm5ubvX26xvf4+d3DWFhZ+uNQfLzuyb2Bt3tUFUfpK25DpqHhwcGDABsbABlndn8trZAVJQHmBsREbV8TJDIqhhavFEXfUUdx4z5Cv36nUReXgD8/XPFWWwNDdKWyWT1zuXnB2zZAjz7LFBTU5scffBB7XYiImr5mCCRVTG2KKOxx/v5XRMTI5WGBmnrGk80bRoQGwtkZQEhIUyOiIhaEyZI1KoZUrVaJivHq6/+jjVrglFTI4GtrYBVq8rwxBMTG5yW7+fHxIiIqDVigkRWTVedIUN16tTJoLiXX+6AmTMl/+sNksDPzw2Am9GfR0RErQMTJDKZK1eu4NatWwCAn392RGamM/r0qUCvXrcBAO3atUNwcLDO4/XVGTKUataZvkdvdXuJ2BtEREQAEyQykStXruDTTz8FoKpgHQLNCtYA8NRTT2lNkhpa/sMYnHJPRETGYoJETVJ3Sv7VqzbIzrZDUNAdVFT8CUB/BWs/v2tiD5OmhmaWNfXRGxERkT5MkKjR6k7Jr/847AQiIvRXsNacTVaXvpllzfHojYiISB8mSGQQbT1F1dW/AtD/OMyQCtZ1qabUq5b/0EyEAOh99MYlPoiIqDkwQaIG6e4pug9xcX+hQ4e/dD4OCwr6Q2cFa200B1UvWlSEnBw7BAbegbNzF/z4Y0+tn8UlPoiIqDkxQaIGqZIVXT1FEyZ8Dm29RPb2tcfpqmCtS90kRy4HIiNV77zQvj2X+CAiItNjgkQiXWugFRcXA9A9cPrPP32gbZzRjRtuYjKkrYJ1Y3CJDyIiMgcmSATAsDXQdA2cbt/+pqmbp4ZLfBARkanZNBxCbYEha6CpBk5LJLXPt1QDp7t2vYzaR2x3SSRK+PvnN3jOdu3aNaq9fn7AkCFMjoiIyDTYg9RK6apP5ONTm9w0tMaYLhERmQgOzkJpqTvc3UvFGkSjRh2oN+NMta979+7o3r17vXM1VEmbiIjIUpggtUL66xPdrRmUkJDQqCRJJiuvV5xRV+IEAH5+fujVq1cTroiIiMi8mCC1YLoGVefk5ABoeLmOoqIinQlSYypVa0ucAMDLy8vAKyIiIrIOTJBakPx84PJlIDQUcHJSH1StLaFpaLmO6upqrZ/T2ErVDz/8MFxcXNS28TEaERG1REyQrJyqlyg52Qlz58qgVEpgYyPg1VdvwMGhNkZXQqNvuQ5dGup1Gjt2LDw9Pesd19gxTURERNaICZIVU40lUihckJQ0G4JQW2tIqZRg5cogzJ5d21ujL6HRtlyHvkdmDfU6eXp6Qi6Xm+iKiYiIrAMTJCuQmZmJ8vLapOXChfY4d84VvXuXiYUV9SUtgERvQqNv8HRdqjXMGup14lpnRETUFjBBsrDMzEzs378fAPDll6M11iyzwZgxpxtMWhp6jKZr8HRddddA8/Utw6uvylBTI4GtrYBVq8rwxBMT+RiNiIjaDBaKtDBVz1F+vrxOcgQAEpw9G4b8fLnOAo2qxKd2lXvV4mQNP0bTxcPDA3K5HHPmuCEnR4Jjx4CcHAnmzHGDXC5nckRERG0Ge5CsRG5uZ2hbzywvLwB+ftcafFQmkQCCUPtTk64p+3Z2uv/z+/mxSjUREbVdTJCsREDAH6hdrqNuhiPA3z9XfKftUVlDs870Tdnv1KmTia+KiIioZWKCZCX8/K4hLOysxhiks+JAbV30D+AGDh6ME2e/CYINvv46DosWRSEw0I6PzIiIiHRggmRFxoz5Cv36nUReXgD8/XMbTI4A/bPOSks9oFSqP3OrqZGgvNwLzI2IiIh0Y4JkZfz8rhmUGKnIZOV4440CLFkirzfrrLjYEZ98AiiVd+NtbYGQEBM0nIiIqBVhgtRC9O3bFxEREfW2q6beT5kCZGUBISES+Pm5AXCDXA5s2QI8+yxQU1ObHH3wAQdfExERNYQJkoVprl2mi4+Pj94K1rpmnU2bBsTGqpInJkdERESGYIJkYX369AFwtx6SNi4uLmJcY3DKPhERkXGYIFmBuslPfj5w+TIQGsqkhoiIyFJYSduKfPQR0LkzMHRo7c+PPrJ0i4iIiNomJkhWIj8fmDHj7owzpbJ2cHV+vmXbRURE1BYxQbISly+rT8cHameeZWVZpj1ERERtGRMkKxEaCtho/NdgzSIiIiLLYIJkJfz8amsW2drWvmfNIiIiIsvhLDYrwppFRERE1sEqepA2bdqEwMBAODo6IioqCidPntQbv3v3bnTr1g2Ojo7o1asXDh06pLZfEAQsWrQIcrkcTk5OiImJweXLl9ViSktL8eSTT8LV1RVubm6YNm0abt682ezXZiw/P2DIECZHRERElmTxBGnXrl1ITEzE4sWLkZGRgbCwMMTGxuL69eta448fP46JEydi2rRpyMzMRHx8POLj43H+/HkxZvXq1diwYQM2b96MEydOwNnZGbGxsbh9+7YY8+STT+KXX37B4cOHcfDgQfz3v//FjBkzTH69REREZP0kgiAIlmxAVFQU+vXrh40bNwIAlEol/P398cILL+C1116rFz9+/HhUVFTg4MGD4rYBAwYgPDwcmzdvhiAI8PHxwZw5c/Dyyy8DABQKBby8vLB9+3ZMmDABFy5cQI8ePXDq1Cn07dsXAJCSkoJHH30U+fn58PHxabDdZWVlkMlkUCgUcHV1bY5bQURERCZm6Pe3RXuQqqqqkJ6ejpiYGHGbjY0NYmJikJaWpvWYtLQ0tXgAiI2NFeOzs7NRUFCgFiOTyRAVFSXGpKWlwc3NTUyOACAmJgY2NjY4ceKE1s+trKxEWVmZ2ouIiIhaJ4smSMXFxaipqYGXl5fadi8vLxQUFGg9pqCgQG+86mdDMZ06dVLbb2dnB3d3d52fu2LFCshkMvHl7+9v4FUSERFRS2PxMUgtxbx586BQKMRXXl6epZtEREREJmLRBMnT0xO2trYoLCxU215YWAhvb2+tx3h7e+uNV/1sKEZzEPidO3dQWlqq83MdHBzg6uqq9iIiIqLWyaIJklQqRWRkJFJTU8VtSqUSqampiI6O1npMdHS0WjwAHD58WIwPCgqCt7e3WkxZWRlOnDghxkRHR+PGjRtIT08XY44ePQqlUomoqKhmuz4iIiJqmSxeKDIxMRGTJ09G37590b9/fyQlJaGiogJTp04FADz99NPw9fXFihUrAACzZs3C4MGDsXbtWowYMQI7d+7E6dOnsWXLFgCARCLB7NmzsXz5coSGhiIoKAgLFy6Ej48P4uPjAQDdu3fHsGHD8Mwzz2Dz5s2orq5GQkICJkyYYNAMNiIiImrdLJ4gjR8/HkVFRVi0aBEKCgoQHh6OlJQUcZB1bm4ubOosUjZw4EAkJydjwYIFeP311xEaGop9+/ahZ8+eYszcuXNRUVGBGTNm4MaNGxg0aBBSUlLg6Ogoxnz22WdISEjAQw89BBsbG4wbNw4bNmww34UTERGR1bJ4HaSWinWQiIiIWp4WUQeJiIiIyBpZ/BFbS6XqeGPBSCIiopZD9b3d0AM0JkiNVF5eDgAsGElERNQClZeXQyaT6dzPMUiNpFQqcfXqVbi4uEAikRh9fFlZGfz9/ZGXl9emxzDxPtTifbiL96IW70Mt3oe7eC9qNfU+CIKA8vJy+Pj4qE0C08QepEaysbGBn59fk8/DopO1eB9q8T7cxXtRi/ehFu/DXbwXtZpyH/T1HKlwkDYRERGRBiZIRERERBqYIFmIg4MDFi9eDAcHB0s3xaJ4H2rxPtzFe1GL96EW78NdvBe1zHUfOEibiIiISAN7kIiIiIg0MEEiIiIi0sAEiYiIiEgDEyQiIiIiDUyQTGTTpk0IDAyEo6MjoqKicPLkSZ2xv/zyC8aNG4fAwEBIJBIkJSWZr6FmYMy9+PDDD3H//fejQ4cO6NChA2JiYvTGtyTG3Ie9e/eib9++cHNzg7OzM8LDw/HJJ5+YsbWmZcy9qGvnzp2QSCSIj483bQPNxJj7sH37dkgkErWXo6OjGVtrOsb+ebhx4wZmzpwJuVwOBwcHdOnSBYcOHTJTa03LmHsxZMiQen8mJBIJRowYYcYWm4axfyaSkpLQtWtXODk5wd/fHy+99BJu377dtEYI1Ox27twpSKVSYevWrcIvv/wiPPPMM4Kbm5tQWFioNf7kyZPCyy+/LHz++eeCt7e3sH79evM22ISMvRdPPPGEsGnTJiEzM1O4cOGCMGXKFEEmkwn5+flmbnnzMvY+HDt2TNi7d6/w66+/CllZWUJSUpJga2srpKSkmLnlzc/Ye6GSnZ0t+Pr6Cvfff78wevRo8zTWhIy9D9u2bRNcXV2Fa9euia+CggIzt7r5GXsfKisrhb59+wqPPvqo8MMPPwjZ2dnCd999J5w5c8bMLW9+xt6LkpIStT8P58+fF2xtbYVt27aZt+HNzNj78NlnnwkODg7CZ599JmRnZwvffPONIJfLhZdeeqlJ7WCCZAL9+/cXZs6cKb6vqakRfHx8hBUrVjR4bOfOnVtVgtSUeyEIgnDnzh3BxcVF2LFjh6maaBZNvQ+CIAh9+vQRFixYYIrmmVVj7sWdO3eEgQMHCv/+97+FyZMnt4oEydj7sG3bNkEmk5mpdeZj7H14//33hXvuuUeoqqoyVxPNpql/T6xfv15wcXERbt68aaommoWx92HmzJnC0KFD1bYlJiYK9913X5PawUdszayqqgrp6emIiYkRt9nY2CAmJgZpaWkWbJn5Nce9uHXrFqqrq+Hu7m6qZppcU++DIAhITU3FpUuX8MADD5iyqSbX2HvxxhtvoFOnTpg2bZo5mmlyjb0PN2/eROfOneHv74/Ro0fjl19+MUdzTaYx92H//v2Ijo7GzJkz4eXlhZ49e+Ktt95CTU2NuZptEs3x9+VHH32ECRMmwNnZ2VTNNLnG3IeBAwciPT1dfAz3+++/49ChQ3j00Ueb1BYuVtvMiouLUVNTAy8vL7XtXl5euHjxooVaZRnNcS9effVV+Pj4qP3P0tI09j4oFAr4+vqisrIStra2eO+99/Dwww+burkm1Zh78cMPP+Cjjz7CmTNnzNBC82jMfejatSu2bt2K3r17Q6FQ4O2338bAgQPxyy+/NMvC2ZbQmPvw+++/4+jRo3jyySdx6NAhZGVl4V//+heqq6uxePFiczTbJJr69+XJkydx/vx5fPTRR6Zqolk05j488cQTKC4uxqBBgyAIAu7cuYPnnnsOr7/+epPawgSJrNbKlSuxc+dOfPfdd61mMKoxXFxccObMGdy8eROpqalITEzEPffcgyFDhli6aWZTXl6OSZMm4cMPP4Snp6elm2NR0dHRiI6OFt8PHDgQ3bt3xwcffIBly5ZZsGXmpVQq0alTJ2zZsgW2traIjIzEn3/+iTVr1rToBKmpPvroI/Tq1Qv9+/e3dFPM7rvvvsNbb72F9957D1FRUcjKysKsWbOwbNkyLFy4sNHnZYLUzDw9PWFra4vCwkK17YWFhfD29rZQqyyjKffi7bffxsqVK3HkyBH07t3blM00ucbeBxsbG4SEhAAAwsPDceHCBaxYsaJFJ0jG3osrV64gJycHcXFx4jalUgkAsLOzw6VLlxAcHGzaRptAc/w9YW9vjz59+iArK8sUTTSLxtwHuVwOe3t72Nraitu6d++OgoICVFVVQSqVmrTNptKUPxMVFRXYuXMn3njjDVM20Swacx8WLlyISZMmYfr06QCAXr16oaKiAjNmzMD8+fNhY9O40UQcg9TMpFIpIiMjkZqaKm5TKpVITU1V+9dfW9DYe7F69WosW7YMKSkp6Nu3rzmaalLN9WdCqVSisrLSFE00G2PvRbdu3fDzzz/jzJkz4mvUqFF48MEHcebMGfj7+5uz+c2mOf5M1NTU4Oeff4ZcLjdVM02uMffhvvvuQ1ZWlpgoA8Bvv/0GuVzeYpMjoGl/Jnbv3o3Kyko89dRTpm6myTXmPty6dateEqRKoIWmLDfbpCHepNXOnTsFBwcHYfv27cKvv/4qzJgxQ3BzcxOn5E6aNEl47bXXxPjKykohMzNTyMzMFORyufDyyy8LmZmZwuXLly11Cc3G2HuxcuVKQSqVCl988YXa9NXy8nJLXUKzMPY+vPXWW8K3334rXLlyRfj111+Ft99+W7CzsxM+/PBDS11CszH2XmhqLbPYjL0PS5cuFb755hvhypUrQnp6ujBhwgTB0dFR+OWXXyx1Cc3C2PuQm5sruLi4CAkJCcKlS5eEgwcPCp06dRKWL19uqUtoNo39f2PQoEHC+PHjzd1ckzH2PixevFhwcXERPv/8c+H3338Xvv32WyE4OFh4/PHHm9QOJkgm8u677woBAQGCVCoV+vfvL/z000/ivsGDBwuTJ08W32dnZwsA6r0GDx5s/oabgDH3onPnzlrvxeLFi83f8GZmzH2YP3++EBISIjg6OgodOnQQoqOjhZ07d1qg1aZhzL3Q1FoSJEEw7j7Mnj1bjPXy8hIeffRRISMjwwKtbn7G/nk4fvy4EBUVJTg4OAj33HOP8Oabbwp37twxc6tNw9h7cfHiRQGA8O2335q5paZlzH2orq4WlixZIgQHBwuOjo6Cv7+/8K9//Uv466+/mtQGiSA0pf+JiIiIqPXhGCQiIiIiDUyQiIiIiDQwQSIiIiLSwASJiIiISAMTJCIiIiINTJCIiIiINDBBIiIiItLABImIyMpNmTIF8fHxlm4GUZvCBImIGm3KlCmQSCTiy8PDA8OGDcO5c+cs3bRmUffaVK9BgwaZ7PNycnIgkUhw5swZte3vvPMOtm/fbrLPJaL6mCARUZMMGzYM165dw7Vr15Camgo7OzuMHDnS0s1qNtu2bROv79q1a9i/f7/WuOrqapO1QSaTwc3NzWTnJ6L6mCARUZM4ODjA29sb3t7eCA8Px2uvvYa8vDwUFRVh6NChSEhIUIsvKiqCVCoVV+sODAzEsmXLMHHiRDg7O8PX1xebNm1SO2bdunXo1asXnJ2d4e/vj3/961+4efOmuP+PP/5AXFwcOnToAGdnZ9x77704dOgQAOCvv/7Ck08+iY4dO8LJyQmhoaHYtm2bwdfn5uYmXp+3tzfc3d3Fnp5du3Zh8ODBcHR0xGeffYaSkhJMnDgRvr6+aNeuHXr16oXPP/9c7XxKpRKrV69GSEgIHBwcEBAQgDfffBMAEBQUBADo06cPJBIJhgwZAqD+I7bKykq8+OKL6NSpExwdHTFo0CCcOnVK3P/dd99BIpEgNTUVffv2Rbt27TBw4EBcunTJ4OsmauuYIBFRs7l58yY+/fRThISEwMPDA9OnT0dycjIqKyvFmE8//RS+vr4YOnSouG3NmjUICwtDZmYmXnvtNcyaNQuHDx8W99vY2GDDhg345ZdfsGPHDhw9ehRz584V98+cOROVlZX473//i59//hmrVq1C+/btAQALFy7Er7/+iv/85z+4cOEC3n//fXh6ejbL9araeuHCBcTGxuL27duIjIzE119/jfPnz2PGjBmYNGkSTp48KR4zb948rFy5UmxXcnIyvLy8AECMO3LkCK5du4a9e/dq/dy5c+diz5492LFjBzIyMhASEoLY2FiUlpaqxc2fPx9r167F6dOnYWdnh3/+85/Nct1EbUKTlrolojZt8uTJgq2treDs7Cw4OzsLAAS5XC6kp6cLgiAIf//9t9ChQwdh165d4jG9e/cWlixZIr7v3LmzMGzYMLXzjh8/Xhg+fLjOz929e7fg4eEhvu/Vq5faOeuKi4sTpk6d2qjrAyA4OjqK1+fs7Cx8+eWXQnZ2tgBASEpKavAcI0aMEObMmSMIgiCUlZUJDg4Owocffqg1VnXezMxMte2TJ08WRo8eLQiCINy8eVOwt7cXPvvsM3F/VVWV4OPjI6xevVoQBEE4duyYAEA4cuSIGPP1118LAIS///7bmFtA1GaxB4mImuTBBx/EmTNncObMGZw8eRKxsbEYPnw4/vjjDzg6OmLSpEnYunUrACAjIwPnz5/HlClT1M4RHR1d7/2FCxfE90eOHMFDDz0EX19fuLi4YNKkSSgpKcGtW7cAAC+++CKWL1+O++67D4sXL1YbJP78889j586dCA8Px9y5c3H8+HGjrm/9+vXi9Z05cwYPP/ywuK9v375qsTU1NVi2bBl69eoFd3d3tG/fHt988w1yc3MBABcuXEBlZSUeeugho9pQ15UrV1BdXY377rtP3GZvb4/+/fur3TMA6N27t/i7XC4HAFy/fr3Rn03UljBBIqImcXZ2RkhICEJCQtCvXz/8+9//RkVFBT788EMAwPTp03H48GHk5+dj27ZtGDp0KDp37mzw+XNycjBy5Ej07t0be/bsQXp6ujhGqaqqSvyM33//HZMmTcLPP/+Mvn374t133wUAMVl76aWXcPXqVTz00EN4+eWXDf58b29v8fpCQkLg7Oysdu11rVmzBu+88w5effVVHDt2DGfOnEFsbKzYTicnJ4M/tznY29uLv0skEgC1Y6CIqGFMkIioWUkkEtjY2ODvv/8GAPTq1Qt9+/bFhx9+iOTkZK3jYH766ad677t37w4ASE9Ph1KpxNq1azFgwAB06dIFV69erXcOf39/PPfcc9i7dy/mzJkjJmgA0LFjR0yePBmffvopkpKSsGXLlua8ZNGPP/6I0aNH46mnnkJYWBjuuece/Pbbb+L+0NBQODk5iQPUNUmlUgC1PVG6BAcHQyqV4scffxS3VVdX49SpU+jRo0czXQkR2Vm6AUTUslVWVqKgoABA7YyxjRs34ubNm4iLixNjpk+fjoSEBDg7O2PMmDH1zvHjjz9i9erViI+Px+HDh7F79258/fXXAICQkBBUV1fj3XffRVxcHH788Uds3rxZ7fjZs2dj+PDh6NKlC/766y8cO3ZMTLAWLVqEyMhI3HvvvaisrMTBgwfFfc0tNDQUX3zxBY4fP44OHTpg3bp1KCwsFBMXR0dHvPrqq5g7dy6kUinuu+8+FBUV4ZdffsG0adPQqVMnODk5ISUlBX5+fnB0dIRMJlP7DGdnZzz//PN45ZVX4O7ujoCAAKxevRq3bt3CtGnTTHJdRG0Re5CIqElSUlIgl8shl8sRFRWFU6dOYffu3eIUdQCYOHEi7OzsMHHiRDg6OtY7x5w5c3D69Gn06dMHy5cvx7p16xAbGwsACAsLw7p167Bq1Sr07NkTn332GVasWKF2fE1NDWbOnInu3btj2LBh6NKlC9577z0Atb0y8+bNQ+/evfHAAw/A1tYWO3fuNMm9WLBgASIiIhAbG4shQ4bA29u7XgXshQsXYs6cOVi0aBG6d++O8ePHi+OC7OzssGHDBnzwwQfw8fHB6NGjtX7OypUrMW7cOEyaNAkRERHIysrCN998gw4dOpjkuojaIokgCIKlG0FErVtOTg6Cg4Nx6tQpREREqO0LDAzE7NmzMXv2bMs0johICz5iIyKTqa6uRklJCRYsWIABAwbUS46IiKwVH7ERkcn8+OOPkMvlOHXqVL1xQ5b21ltvoX379lpfw4cPt3TziMjC+IiNiNqk0tLSepWnVZycnODr62vmFhGRNWGCRERERKSBj9iIiIiINDBBIiIiItLABImIiIhIAxMkIiIiIg1MkIiIiIg0MEEiIiIi0sAEiYiIiEgDEyQiIiIiDf8f4ikLXqDU+/gAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_8.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkgAAAHHCAYAAABEEKc/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABkPUlEQVR4nO3de1zTZf8/8Nc2Oakwb1A5CAohHksQVEItzJuapRa/rPBQkreJdUdpmJpHPFSklpGHPPRVse5I89as1Cijuu9SskStLDU1yExBhRiIeWLX7w/uLTYGbLjt89n2ej4eeyCfXZ/PrmuT7b3r8L4UQggBIiIiIjJQSl0BIiIiIrlhgERERERkggESERERkQkGSEREREQmGCARERERmWCARERERGSCARIRERGRCQZIRERERCYYIBERERGZYIBEROTEcnJyoFAoUFxcLHVViFwKAyQiatS3336L9PR09OzZE61atULHjh3x0EMP4eeff65XdtCgQVAoFFAoFFAqlfDz80PXrl3xyCOPYPfu3VY97ocffojExES0b98eLVu2xE033YSHHnoIeXl5tmpaPS+++CK2b99e7/jevXsxb948VFRU2O2xTc2bN8/wXCoUCrRs2RI9evTA7NmzUVlZaZPHyM3NRXZ2tk2uReRqGCARUaMWLVqErVu34u9//ztee+01pKWl4b///S9iY2Nx+PDheuVDQ0Px1ltv4c0338SSJUtw7733Yu/evbjrrruQkpKCa9euNfmYL7/8Mu69914oFArMmDEDr776KkaMGIHjx49j06ZN9mgmgMYDpPnz5zs0QNJbtWoV3nrrLSxduhTdunXDCy+8gCFDhsAW22gyQCJqWAupK0BE8paRkYHc3Fx4enoajqWkpOCWW27BSy+9hH/9619G5dVqNR5++GGjYy+99BKefvppvP766wgPD8eiRYsafLzr169j4cKFuPPOO/HJJ5/Uu//cuXM32CL5uHTpElq2bNlomQceeABt27YFADz++OMYMWIEtm3bhq+//hoJCQmOqCaRW2IPEhE1qn///kbBEQBERUWhZ8+eOHLkiEXXUKlUWLZsGXr06IEVK1ZAq9U2WPbChQuorKzEgAEDzN7fvn17o98vX76MefPmoUuXLvD29kZwcDDuv/9+nDx50lDm5ZdfRv/+/REQEAAfHx/ExcXh3//+t9F1FAoF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SEhfAH1l331NRNJx1GIGZ5sGUFNTYwiO+P5pXz4+PgCAc+fOoX379s0ebmOARPXU/eMNDgbi4iSsDBE5HUcEAM42DUA/56hly5YS18Q96J/na9euNTtAUjZdhIiISF700wAUitqJ2c6y5Q+H1RzDFs8ze5CIiMgpMc8S2RMDJCIiclrMs0T2YtUQ2+nTp3HhwgXD719++SXGjBmD2267DQ8//DAKCgpsXkEiIiKSzqOPPgqFQgGFQgEPDw8EBgbizjvvxPr166HT6Sy+Tk5ODtq0aWO/itqYVQHSiBEj8PXXXwMA3n//fQwaNAgXL17EgAEDcOnSJSQmJmLHjh12qSgREZE774lYVlaGs2fPNngrKyuz22MPGTIEZ8+eRXFxMT766CPccccdmDRpEoYNG4br16/b7XGlZNUQ248//oiePXsCALKysvDiiy9i+vTphvtXrFiBuXPnYtiwYbatJREREdx3T8S6CTIbY68EmV5eXggKCgIAdOjQAbGxsbj11lvx97//HTk5OXjsscewdOlSbNiwAb/88gv8/f0xfPhwLF68GK1bt8YXX3yBcePGAfhrAnVmZibmzZuHt956C6+99hqOHTuGVq1aYfDgwcjOzkb79u1t3g5rWNWD1KJFC1RV1Y71FhUV4e677za6/+6778axY8dsVzsiIiITAQEBCA4ObvDmasERAIsTXzoyQebgwYMRHR2Nbdu2AQCUSiWWLVuGH3/8ERs3bsRnn32GadOmAQD69++P7Oxs+Pn5GXq8nn32WQC1S/EXLlyI7777Dtu3b0dxcTEeffRRh7WjIVb1ICUmJuKdd95Br1690Lt3b3zxxRfo1auX4f7PP/8cHTp0sHkliYiISH66deuG77//HgAwefJkw/Hw8HA8//zzePzxx/H666/D09MTarUaCoXC0BOl949//MPw75tuugnLli1D3759cfHiRbRu3doh7TDHqgDppZdewm233YYzZ85g4MCBmDVrFr799lt0794dx44dw+bNm7F69Wp71ZVkqu7Gkea4Ync3ERHVbu2hHzL79NNPkZWVhaNHj6KyshLXr1/H5cuXcenSpUYTZBYWFmLevHn47rvv8Mcffxgmfp86dQo9evRwSDvMsSpA6t69O/bt24fZs2dj8eLFqK6uxttvv40WLVqgb9++2LRpE5KTk+1UVZIjqcfFiYhIOkeO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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_9.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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Z2fRq1cvMW/ePFFSUqIXX1xcLN5//30RFBQk7O3thY+Pj/j73/8uLly4IMV8+eWXIjQ0VDg4OIjOnTuLVatWSSUEKjt79qx44IEHhJOTkwCgV+5g5syZom3btkIul1crd7B582bRv39/4eLiIlxcXETnzp3FhAkTxLlz5/SuTU3lH6rS9e/69es1xlUtcaCzePFi0blzZ2Fvby+8vb3Fyy+/LG7evKkXc+vWLfH0008Ld3d3AYDlDogqkQnRAIsrEREREbUwnBNFREREZAYmUURERERmYBJFREREZAYmUURERERmYBJFREREZAYmUURERERmYLFNC9Jqtbhy5QpcXV25dAIREVETIYRAYWEh/Pz8IJcbH29iEmVBV65cQUBAgK27QURERGbIysqCv7+/0e1MoizI1dUVQMX/CDWtA0ZERESNR0FBAQICAqTvcWOYRFmQ7haem5sbkygiIqImprapOJxYTkRERGQGJlFEREREZmASRURERGQGzomysfLycpSVldm6G82Wvb09FAqFrbtBRETNEJMoGxFCIDs7G/n5+bbuSrPn7u4OHx8f1uoiIqIGxSTKRnQJlJeXF5ydnfkFbwFCCBQXF+PatWsAAF9fXxv3iIiImhMmUTZQXl4uJVAeHh627k6z5uTkBAC4du0avLy8eGuPiIgaDCeW24BuDpSzs7ONe9Iy6K4z554REVFDYhJlQ7yFZx28zkREZAm8nUdERERNQm5uLkpLS41uVyqVVp0mwySKiIiIGr3c3FwsXry41riEhASrJVK8nUcmee655yCTySCTyWBvbw9vb288/PDDWLlyJbRabZ2Ps3r1ari7u1uuo0RE1KzUNAJlTlxD4EhUE2XLIc3Bgwdj1apVKC8vR05ODnbt2oXXX38d33zzDbZt2wY7O/5ZERFR88dvuybI1kOaDg4O8PHxAQC0bdsWYWFh6NevHx566CGsXr0aL7zwAhYuXIhVq1bhzz//hFqtRmxsLObOnYtWrVrhp59+wvPPPw/g7qTv6dOnY8aMGVi7di0+/fRTnDt3Di4uLhg0aBCSkpLg5eXV4OdBRERUH7yd1wQ1xiHNQYMGoUePHtiyZQsAQC6XY9GiRTh16hTWrFmDH3/8EZMnTwYAREVFISkpCW5ubrh69SquXr2Kt956C0BFGYKZM2fi999/x9atW5GRkYHnnnvOaudB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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_10.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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Lp+hLdrn7J+fsfKtWrUyKPP++++Ltm3bCi8vL3HXXXeJHTt22KdBRtiijampqdLvZ3BwsHj44YfFgQMH7NeoKsxtX9++fessr2frv0GFELWMjxARERFRrTgnioiIiMgCDKKIiIiILMAgioiIiMgCDKKIiIiILMAgioiIiMgCDKKIiIiILMAgioiIiMgCDKKIiNzIl19+CYVCgdLSUkdXhcjpMYgiIpt48sknoVAo8Prrrxts3759OxQKhfRYCIF//vOfiI+Ph7+/Pxo3boy77roLkydPNvlGqNeuXcP06dMRHR0NHx8fNGvWDH379sXHH38slYmMjERGRoZV2mZr+vdOoVDA09MTUVFRmDp1Kq5fv27Wcfr164fU1FSDbT179sSFCxegVqutWGMi98QgiohsxsfHB2+88Qb++OMPo/uFEBgzZgxeeOEFPPzww9i1axeOHj2K9evXw8fHB6+++qpJr/PMM89g27ZtWLFiBY4fP47s7Gw8+uijKC4utmZz7GrgwIG4cOECfv31V7z55ptYu3YtZs+e3eDjenl5ISQkxCCQJSILWfUmMkRE/zNu3DgxePBg0b59ezFlyhRp+0cffST0p5733ntPABAff/yx0WPodDqTXkutVovMzMxa9xu7z5be119/LXr16iV8fHxEeHi4eP7558XVq1el/W+//baIjY0VjRs3FsHBwWL06NGiqKhI2q+/51d2drbo3Lmz8PHxEf379xdFRUVi586don379qJJkyZi9OjRory83KT2jBs3TgwbNsxg29/+9jfRpUsX6fHly5fFqFGjRFhYmPD19RV33323yMrKMjhG9Tbn5+dL9a16L8oPP/xQdOjQQXh5eYlWrVqJxYsXm1RPInfHnigishmVSoV//OMfWLFiBc6dO1dj/3vvvYd27dph6NChRp9vam9JSEgIdu7ciStXrhjdv23bNoSHh2PevHm4cOECLly4AAA4ffo0Bg4ciEceeQSHDx/Gli1b8M033yAlJUV67q1btzB//nz8+OOP2L59OwoKCvDkk0/WeI05c+Zg5cqV2LdvH3777TeMGDECGRkZyMrKwo4dO7Br1y6sWLHCpPZUd+TIEezbtw9eXl7StuvXryM2NhY7duzAkSNHkJycjLFjx+K7774DACxbtgzx8fF4+umnpTZHRETUOHZeXh5GjBiBUaNG4aeffsKcOXMwa9YsZGZmWlRXIrfi6CiOiFxT1d6UHj16iKeeekoIYdgT1b59ezF06FCD502ePFn4+fkJPz8/0aJFC5Ne67///a8IDw8Xnp6e4t577xWpqanim2++MSjTqlUr8eabbxpsS0pKEsnJyQbbvv76a6FUKsWff/5p9LW+//57AUBcuXJFCPFXT9Tnn38ulVmwYIEAIE6fPi1tmzhxotBoNCa1Z9y4cUKlUgk/Pz/h7e0tAAilUik+/PDDOp83aNAg8eKLL0qP+/btKyZPnmxQpnpP1JgxY8QDDzxgUGbKlCmiQ4cOJtWVyJ2xJ4qIbO6NN97Apk2bcOzYsXrLvvLKKzh06BDS09Nx9epVk47fp08f/Prrr8jJycGjjz6Kn3/+Gb1798b8+fPrfN6PP/6IzMxMNG7cWPrRaDTQ6XTIz88HUNlTM2TIELRs2RJNmjRB3759AQBnz541ONY999wj/T84OBiNGjVC69atDbZdvHjRpPYAQP/+/XHo0CHs378f48aNw/jx4/HII49I+ysqKjB//nx07NgRgYGBaNy4MT777LMa9arPsWPHcN999xlsu++++3Dy5ElUVFSYdSwid8Mgiohsrk+fPtBoNJg+fbrB9piYGJw4ccJgW7NmzdCmTRs0b97crNfw9PRE79698fLLL2PXrl2YN28e5s+fj5s3b9b6nKtXr2LixIk4dOiQ9PPjjz/i5MmTiI6ORnl5OTQaDfz9/fHuu+/i+++/x0cffQQANY7r6ekp/V+/qq4qhUIBnU5ncnv8/PzQpk0bdOrUCRs2bMD+/fuxfv16af+iRYuwbNkyvPzyy9izZw8OHToEjUZTZ3uJyLo8HF0BInIPr7/+Ojp37ox27dpJ20aPHo0xY8bg448/xrBhw6z6eh06dMDt27dx/fp1eHl5wcvLq0bPSteuXXH06FG0adPG6DF++uknFBcX4/XXX5fmE/3www9WracplEolZsyYgbS0NIwZMwa+vr7Yu3cvhg0bhscffxwAoNPp8Msvv6BDhw7S84y1ubo777wTe/fuNdi2d+9etG3bFiqVyvqNIXIh7IkiIrvo2LEjHnvsMSxfvlzaNmrUKDz66KMYNWoU5s2bh/3796OgoAD//e9/sWXLFpMv4v369cPatWuRl5eHgoIC7Ny5EzNmzED//v3h7+8PoDJP1FdffYXff/8dly9fBgC8/PLL2LdvH1JSUnDo0CGcPHkSH3/8sTSxvGXLlvDy8sKKFSvw66+/4t///ne9Q4S2Mnz4cKhUKqxatQpAZS/e7t27sW/fPhw7dgwTJ05EUVGRwXMiIyOl9/Ty5ctGe8JefPFF5OTkYP78+fjll1+wadMmrFy5Ei+99JJd2kXkzBhEEZHdzJs3z+BCrlAosGXLFmRkZGDnzp24//770a5dOzz11FOIiIjAN998Y9JxNRoNNm3ahAcffBB33nknnn/+eWg0Grz//vsGr11QUIDo6Gg0a9YMQOU8pv/+97/45Zdf0Lt3b3Tp0gXp6ekICwsDUDm0mJmZiQ8++AAdOnTA66+/jsWLF1vxHTGdh4cHUlJSsHDhQpSXl2PmzJno2rUrNBoN+vXrh5CQECQmJho856WXXoJKpUKHDh3QrFkzo/Olunbtivfffx+bN2/G3XffjfT0dMybN8/oCkQiMqQQQghHV4KIiIjI2bAnioiIiMgCDKKISPaqpiCo/vP11187unpmOXv2bJ3tMTdFARE5DofziEj26roRcYsWLeDr62vH2jTM7du3UVBQUOv+yMhIeHhw4TSRM2AQRURERGQBDucRERERWYBBFBEREZEFGEQRERERWYBBFBEREZEFGEQRERERWYBBFBEREZEFGEQRERERWYBBFBEREZEF/j9atcFfl317EwAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_11.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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V+Hg4CDatWsn+vXrJ95++21RUVGhEV9eXi5eeeUVERgYKOzs7IS3t7f4+9//Li5fvizFbNy4UYSEhAgHBwfRvXt3sWnTJqmEQG3nz58X9957r3BychIANModLF26VHTu3FnI5fJ65Q527twphgwZIpydnYWzs7Po3r27mDlzprhw4YLGvdFX/qEudftu3LihN65uiQO1NWvWiO7duws7Ozvh5eUlnnnmGfHHH39oxJSWlorHHntMuLm5CQAsd0BUi0wIEyyuRERERNTGcE4UERERkRGYRBEREREZgUkUERERkRGYRBEREREZgUkUERERkRGYRBEREREZgcU2zUilUuHatWtwcXHh0glEREQthBACJSUl8PX1hVyuu7+JSZQZXbt2Df7+/tZuBhERERnh6tWr8PPz07mfSZQZubi4AKj5j6BvHTAiIiJqPoqLi+Hv7y99j+vCJMqM1EN4rq6uTKKIiIhamIam4nBiOREREZERmEQRERERGYFJFBEREZEROCfKyqqrq1FVVWXtZrRadnZ2sLGxsXYziIioFWISZSVCCOTl5aGoqMjaTWn13Nzc4O3tzVpdRERkUkyirESdQHl6eqJdu3b8gjcDIQTKy8tx/fp1AICPj4+VW0RERK0JkygrqK6ulhIoDw8PazenVXNycgIAXL9+HZ6enhzaIyIik+HEcitQz4Fq166dlVvSNqjvM+eeERGRKTGJsiIO4VkG7zMREZkDh/OIiIioRSgoKEBlZaXO/fb29hadJsMkioiIiJq9goICrFmzpsG4hIQEiyVSHM4jg0ydOhUymQwymQx2dnbw8vLCAw88gI8//hgqlarR59m8eTPc3NzM11AiImpV9PVAGRNnCuyJaqGs2aU5YsQIbNq0CdXV1cjPz0dqaipmz56Nzz//HLt374atLf9YERFR68dvuxbI2l2aDg4O8Pb2BgB07twZYWFhGDRoEIYPH47NmzdjxowZWLVqFTZt2oTffvsN7u7uiImJwYoVK9C+fXt8//33mDZtGoDbk74XL16MJUuW4NNPP8V7772HCxcuwNnZGcOGDUNSUhI8PT1Nfh1ERERNweG8Fqg5dmkOGzYMffv2xa5duwAAcrkcq1evxtmzZ7Flyxbs378f8+bNAwAMHjwYSUlJcHV1RW5uLnJzc/H8888DqClDsHTpUpw6dQpffvklrly5gqlT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TZuEq6uryM3NlV55eXkWbrXpGXofKioqRP/+/cWDDz4ofvrpJ5GVlSW+//57cfLkSQu33LQMvQ8FBQUafxbOnDkjbGxsxKZNmyzbcDMw9F5s3bpVODg4iK1bt4qsrCzxzTffCB8fH/Hcc881qR1Moqxk4MCBYubMmdL76upq4evrK5YvX97gsV27dm1VSVRT7oUQQty6dUu4uLiILVu2mKuJFtHU+yCEEP369RMLFiwwR/Msxpj7cOvWLTF48GDxz3/+U0yZMqXVJFGG3otNmzYJhUJhodZZjqH34cMPPxR33HGHqKystFQTLaKp/0a8++67wsXFRZSWlpqriRZj6L2YOXOmGDZsmMa2xMREcffddzepHRzOs4LKykpkZGQgKipK2iaXyxEVFYX09HQrtszyTHEvysvLUVVVBXd3d3M10+yaeh+EEEhLS8OFCxdw7733mrOpZmXsfXjttdfg6emJ6dOnW6KZFmHsvSgtLUXXrl3h7++PsWPH4uzZs5ZortkYcx92796NyMhIzJw5E15eXujVqxfeeOMNVFdXW6rZJmeKfys3btyICRMmwNnZ2VzNtAhj7sXgwYORkZEhDfn99ttv2Lt3Lx588MEmtYULEFvBzZs3UV1dDS8vL43tXl5eOH/+vJVaZR2muBcvvvgifH19Nf5CtTTG3gelUonOnTujoqICNjY2+OCDD/DAAw+Yu7lmY8x9+Omnn7Bx40acPHnSAi20HGPuxZ133omPP/4Yffr0gVKpxMqVKzF48GCcPXu2yYuhW4sx9+G3337D/v37MXHiROzduxeXLl3CP/7xD1RVVWHx4sWWaLbJNfXfyiNHjuDMmTPYuHGjuZpoMcbci8ceeww3b97EkCFDIITArVu38PTTT+Pll19uUluYRFGL9uabb2Lbtm34/vvvW80EWkO4uLjg5MmTKC0tRVpaGhITE3HHHXfgvvvus3bTLKKkpASTJk3Chg0b0LFjR2s3x+oiIyMRGRkpvR88eDB69OiBjz76CEuXLrViyyxLpVLB09MT69evh42NDcLDw/Hf//4Xb7/9dotNoppq48aN6N27NwYOHGjtpljF999/jzfeeAMffPABIiIicOnSJcyePRtLly7FwoULjT4vkygr6NixI2xsbJCfn6+xPT8/H97e3lZqlXU05V6sXLkSb775Jr777jv06dPHnM00O2Pv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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_12.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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q+K1114TiYmJolOnTsLT01O0bt1a9O7dW7z00kvi8uXLRuUvXrwonnvuORERESHc3d1FUFCQuO+++8SpU6ekMhs2bBBRUVHC09NTdO3aVWzatElKIVDTsWPHxG233SZatWolABilO1iwYIHo0KGDUCqVddIdvPfee6J///7C29tbeHt7i65du4onnnhCHD9+3Oi1aSj9Q22G+p0/f77BcrVTHBisXr1adO3aVbi7u4vAwEDx+OOPiz///NOozIULF8TYsWOFn5+fAMB0B0Q1KIRogZsrEREREbkYzokiIiIisgCDKCIiIiILMIgiIiIisgCDKCIiIiILMIgiIiIisgCDKCIiIiILMNmmFen1epw9exY+Pj68dQIREZGDEEKgoqICISEhUCrr729iEGVFZ8+eRVhYmL2rQURERBb4448/EBoaWu9+BlFW5OPjA6D6TWjoPmBEREQkH+Xl5QgLC5Ou4/VhEGVFhiE8X19fBlFEREQOprGpOJxYTkRERGQBBlFEREREFmAQRURERGQBBlFEREREFmAQRURERGQBBlFEREREFmAQRURERGQBBlFEREREFmAQRURERGQBZiwnAIBWq8WVK1fq3e/h4YGAgAAb1oiIiEjeGEQRtFotVq9e3Wi51NRUBlJERET/j8N51GAPlCXliIiIXAGDKCIiIiILMIgiIiIisgCDKCIiIiILcGI5EZGZuIqViGpiEEVEZAauYiWi2jicR0RkBq5iJaLaGEQRPDw8WrQcERGRK+BwHiEgIACpqamc60FERNQEDKIIABggERERNRGH84iIiIgswCCKiIiIyAJ2D6LWrFmD8PBweHl5IS4uDt9//32D5bdv346uXbvCy8sLPXr0wO7du432CyEwe/ZsBAcHo1WrVkhISMCJEyeMyjz//PPo168fWrduDT8/vwafT6vVIjQ0FAqFAmVlZZY00eGcOQPs3Vv9s6VotVoUFhbW+9BqtS33ZERERDZg1zlR27ZtQ3p6OtauXYu4uDhkZGRAo9Hg+PHjaN++fZ3y+/btw5gxY7Bo0SIMGzYMmZmZSExMxIEDB3DjjTcCAJYsWYKVK1diy5YtiIiIwKxZs6DRaHDkyBF4eXkBqF6CfP/99yM+Ph4bNmxosI7Jycno2bMn/ve//7X8CyBDGzYAKSmAXg8olcD69UBycvPOKbf8OkyYSJbgKlYi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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_13.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAHHCAYAAABXx+fLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABcuklEQVR4nO3de1zT9eI/8Nc2GCDiuMkdBQE1S1RASfOWYeBRzKOd0PKaZplkhmWZ5SUtzFtk3sq8ZZqe0vqqdbQk+XUqSw9opikJ4YUU1KEDJAHZ+/cHbTLYBgO2AXs9H489ZJ/Pe5+9P5/jkVfvq0QIIUBERERkQ6TWrgARERGRpTEAERERkc1hACIiIiKbwwBERERENocBiIiIiGwOAxARERHZHAYgIiIisjkMQERERGRzGICIiIjI5jAAERE1UVu2bIFEIsH58+etXRWiFocBiMiGHTt2DImJibj33nvh7OyMdu3a4bHHHsPvv/9eo+zAgQMhkUggkUgglUrRpk0bdOrUCePGjcM333xj0vfu27cPAwYMgJeXF1q1aoUOHTrgsccew4EDBxrr1mp466238MUXX9Q4/uOPP2LBggW4efOm2b67ugULFmifpUQiQatWrdClSxe89tprKCwsbJTv2LFjB1JSUhrlWkQtEQMQkQ17++23sXv3bjz00EN49913MXXqVHz33XeIiIjAqVOnapQPCAjAtm3b8NFHH2HZsmUYPnw4fvzxRzz88MNISEhAeXl5rd+5fPlyDB8+HBKJBHPmzME777yDUaNG4dy5c9i5c6c5bhOA8QC0cOFCiwYgjXXr1mHbtm1YuXIlOnfujDfffBNxcXFojC0aGYCIjLOzdgWIyHqSkpKwY8cOyOVy7bGEhAR07doVS5Yswccff6xTXqFQYOzYsTrHlixZghkzZmDt2rUICgrC22+/bfD77ty5g0WLFmHw4MH4+uuva5y/evVqA++o6SgpKUGrVq2Mlnn00Ufh6ekJAHjmmWcwatQo7NmzBz/99BN69+5tiWoS2Sy2ABHZsD59+uiEHwAICwvDvffeizNnztTpGjKZDKtWrUKXLl2wevVqqFQqg2WvX7+OwsJCPPDAA3rPe3l56by/ffs2FixYgI4dO8LR0RG+vr4YOXIksrOztWWWL1+OPn36wMPDA05OToiMjMRnn32mcx2JRIJbt25h69at2m6niRMnYsGCBXjppZcAAMHBwdpzVcfcfPzxx4iMjISTkxPc3d0xevRoXLp0Sef6AwcOxH333Yf09HT0798frVq1wquvvlqn51fVoEGDAAA5OTlGy61duxb33nsvHBwc4Ofnh+nTp+u0YA0cOBBffvklLly4oL2noKAgk+tD1JKxBYiIdAghkJ+fj3vvvbfOn5HJZBgzZgxef/11fP/99xg6dKjecl5eXnBycsK+ffvw3HPPwd3d3eA1KyoqMGzYMKSmpmL06NF4/vnnUVRUhG+++QanTp1CSEgIAODdd9/F8OHD8cQTT6CsrAw7d+7Ev/71L+zfv19bj23btmHKlCno1asXpk6dCgAICQmBs7Mzfv/9d3zyySd45513tK0xbdu2BQC8+eabeP311/HYY49hypQpuHbtGt577z30798fx48fh6urq7a+SqUSQ4YMwejRozF27Fh4e3vX+flpaIKdh4eHwTILFizAwoULERMTg2nTpiEzMxPr1q3DsWPH8MMPP8De3h5z586FSqVCbm4u3nnnHQBA69atTa4PUYsmiIiq2LZtmwAgNm7cqHN8wIAB4t577zX4uc8//1wAEO+++67R68+bN08AEM7OzmLIkCHizTffFOnp6TXKbdq0SQAQK1eurHFOrVZrfy4pKdE5V1ZWJu677z4xaNAgnePOzs5iwoQJNa61bNkyAUDk5OToHD9//ryQyWTizTff1Dn+66+/Cjs7O53jAwYMEADE+vXrDd53VfPnzxcARGZmprh27ZrIyckR77//vnBwcBDe3t7i1q1bQgghNm/erFO3q1evCrlcLh5++GFRUVGhvd7q1asFALFp0ybtsaFDh4r27dvXqT5EtohdYESkdfbsWUyfPh29e/fGhAkTTPqspoWhqKjIaLmFCxdix44d6NGjBw4ePIi5c+ciMjISEREROt1uu3fvhqenJ5577rka15BIJNqfnZyctD/fuHEDKpUK/fr1Q0ZGhkn1r27Pnj1Qq9V47LHHcP36de3Lx8cHYWFhOHz4sE55BwcHTJo0yaTv6NSpE9q2bYvg4GA8/fTTCA0NxZdffmlw7NChQ4dQVlaGmTNnQiq9+8/3U089hTZt2uDLL780/UaJbBS7wIgIAJCXl4ehQ4dCoVDgs88+g0wmM+nzxcXFAAAXF5day44ZMwZjxoxBYWEhfv75Z2zZsgU7duxA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puGll16Cu7s72rVrh6VLl6KkpASTJ082y30R2Sq2ABGRQQcOHICvry98fX0RHR2NY8eO4dNPP9VO4QaAMWPGwM7ODmPGjIGjo2ONa8yaNQv/+9//0KNHDyxevBgrV65EbGwsAKBbt25YuXIl3n77bdx3333Yvn07kpOTdT5fUVGB6dOn45577kFcXBw6duyItWvXAqhsVZkzZw7Cw8PRv39/yGQy7Ny50yzP4rXXXkNERARiY2MxcOBA+Pj41FjB+fXXX8esWbMwb9483HPPPUhISNCOy7Gzs8OqVavw/vvvw8/PD4888oje71myZAlGjRqFcePGISIiAllZWTh48CDc3NzMcl9EtkoihBDWrgQRNV/nz59HSEgIjh07hoiICJ1zQUFBmDlzJmbOnGmdyhERGcAuMCKql/LyciiVSrz22mu4//77a4QfIqKmjF1gRFQvP/zwA3x9fXHs2LEa43as7a233kLr1q31voYMGWLt6hFRE8AuMCJqcQoKCmqsnKzh5OQEf39/C9eIiJoaBiAiIiKyOewCIyIiIpvDAEREREQ2hwGIiIiIbA4DEBEREdkcBiAiIiKyOQxAREREZHMYgIiIiMjmMAARERGRzfn/3O5d/WV5CTgAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_14.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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+1+Dr/Xdd98JAKK8vFwIcb0F6KuvvjLtk56eLgCIvLw807YpU6aIhISEZtVn/PjxQqPRiHbt2gl3d3cBQKjVavH3v/+90ecNHz5cPPfcc6b7gwcPFlOnTjXbp24L0NixY8Vdd91lts/06dNFt27dmlVWIqVjCxARWbRo0SJs2rQJJ06caHLfWbNm4ciRI5g9ezYuXbrUrOMPGjQIv/zyC7KysvDAAw/gp59+wsCBAzF//vxGn/fDDz9g48aNaN++vemWkJAAg8GA/Px8ADUtJCNHjsSNN94ILy8vDB48GABw+vRps2P16NHD9H9/f3+0bdsWXbp0Mdt27ty5ZtUHAO644w4cOXIEBw4cwPjx4zFx4kSMGjXK9Hh1dTXmz5+PW2+9FT4+Pmjfvj12795dr1xNOXHiBG677TazbbfddhtycnJQXV3domMRKREDICKyaNCgQUhISMDMmTPNtkdFReHUqVNm2zp16oTIyEj4+fm16DXc3NwwcOBAvPDCC/jiiy8wb948zJ8/H1VVVRafc+nSJUyZMgVHjhwx3X744Qfk5OQgIiICFRUVSEhIgLe3N95//3189913+OSTTwCg3nHd3NxM/zeO3qpNpVLBYDA0uz7t2rVDZGQkevbsifXr1+PAgQNYt26d6fHXX38db731Fl544QV8/fXXOHLkCBISEhqtLxHZXhupC0BE8rZw4ULExMSga9eupm1jxozB2LFj8emnn+Lee++16et169YN165dw5UrV6DVaqHVauu1aPTu3RvHjx9HZGRkg8f48ccfodfrsXDhQlP+zH//+1+blrM51Go1XnrpJaSmpmLs2LHw9PTE3r17ce+99+KRRx4BABgMBvz888/o1q2b6XkN1bmum2++GXv37jXbtnfvXtx0003QaDS2rwyRi2ELEBE16tZbb8XDDz+MZcuWmbaNHj0aDzzwAEaPHo158+bhwIEDKCgowL///W9s27at2RfgIUOG4O2338ahQ4dQUFCAXbt24aWXXsIdd9wBb29vADXzAP3nP//B77//jgsXLgAAXnjhBezbtw8pKSk4cuQIcnJy8Omnn5qSoG+88UZotVosX74cv/zyC/7xj3802a1mLw8++CA0Gg1WrlwJoKb17Msvv8S+fftw4sQJTJkyBcXFxWbPCQsLM72nFy5caLAF6rnnnkNWVhbmz5+Pn3/+GZs2bcKKFSvw/PPPO6ReRM6OARARNWnevHlmF2GVSoVt27YhIyMDu3btwp133omuXbviscceQ2hoKPbs2dOs4yYkJGDTpk24++67cfPNN+OZZ55BQkICPvzwQ7PXLigoQEREBDp16gSgJm/n3//+N37++WcMHDgQvXr1wuzZsxEUFASgpjtu48aN+Oijj9CtWzcsXLgQS5YsseE70nxt2rRBSkoKFi9ejIqKCrz88svo3bs3EhISMGTIEAQEBOC+++4ze87zzz8PjUaDbt26oVOnTg3mB/Xu3Rsffvghtm7diltuuQWzZ8/GvHnzGhzpRkT1qYQQQupCEBERETkSW4CIiIhIcRgAEZHd1B6mXvf2zTffSF28Fjl9+nSj9WnpMHYikha7wIjIbhpbFDU4OBienp4OLE3rXLt2DQUFBRYfDwsLQ5s2HFhL5CwYABEREZHisAuMiIiIFIcBEBERESkOAyAiIiJSHAZAREREpDgMgIiIiEhxGAARERGR4jAAIiIiIsVhAERERESK8/8qIkx+xYm4gQAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_15.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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R36+B2JibqJFCzUKCoCjR5tArVbqvEbTPcYARERERJIpLQ3Whh8NIeQoLQ0yKQDdPqtMpfJHaWkwgoJKtNdRqfwhl78MtVqmPa9u95iUGICIiIjcWFBQCWQytU4IksnUCAoqNek6dWeLGepSUyqvYd48FV57LbBe95jUGICIiIjckJeXFwBAqbyGlJQv6wUWTavN1atX9b7W0NpADXWpjRhxA8OGBSI3t7blx16LJDIAERERuaHg4GCkpaVpW26mT7+C/HwPBAf/gX/969YA6H/84x96X29ogcTGdKlFRdl/dWgGICIiIjdVN8BERAAJCUBBQRX+9a+GX2togURrdanZGtcBIiIiIoNMXR9I06Umk9XOdb+9S81RsAWIiIiI9DJlfSCVSqX9Pj7+ONq0yUVpaRCCgkp1wk9+fr7e11uy8ao5GICIiIioHlPXB6qurtZ5rFRe03veN998Y/A9zdl41VzsAiMiIqJ6jA1m1sfDw/I2FVM3XrUEW4CIiIjclGbl5rqKi4sBmD6YOTAw0GbltAUGICIiIjd0+8rNt2tofSBnxwBERETkhhrT3WRsMLNmIUVnxQBEREREBo0Z8yBCQkJ0jkk9Y8sWGICIiIjIoJCQEERERNi7GFbHWWBERERkMWfrEmMLEBEREUGl8kdpaTCCgkrMGuh8+95idV29etXgnmJ1SRmiGICIiIjcnCkrPhtjaFxQRESEwXCkwZWgiYiISDKmrvhsLkcbNM0xQERERG5I093U0IrPzja2p7FkQghh70I4mrKyMiiVSqhUKgQEBNi7OERERDZRUlKC/PybSEwMhVot0x5XKAR++OEyYmI8HK7lxhhTPr/ZAkREROSmgoODkZAQhtWrZVAoao8pFMD778uQkBDmVOHHVBwDRERE5ObGjgWSk4HcXCAuDoiKsneJbI8BiIiIiBAV5R7BR4NdYEREROR2GICIiIjI7TAAERERkdthACIiIiK3wwBEREREbocBiIiIiNwOAxARERG5HQYgIiIicjsMQEREROR2GICIiIjI7TAAERERkdthACIiIiK3wwBEREREbocBiIiIiNwOAxARERG5HQYgIiIiktTFi8C+fbV/2gsDEBEREdlcSUkJCgoKsHDhVbRqJdC/P9CqlcDChVdRUFCAkpISScvjIem7ERERkdspKSnB8uXLoVL5IzMzHULIAABq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InJXbAEiIoN2796NiIgIREREoGfPnjhy5Ai2bt2qncINAMOHD4eHhweGDx8OHx+fetd45ZVXcPToUXTr1g1vvfUWFi1ahOTkZABAly5dsGjRIrz77ru466678PHHH2POnDk6r6+pqcGECRPQsWNHDBgwAO3atcN7770HoLZVZcqUKejcuTPuu+8+KBQKbN682SZ1MW3aNMTHxyM5ORn9+vVDeHh4vRWc33zzTbzyyiuYPn06OnbsiGHDhmnH5Xh4eGDp0qV4//330aJFCzz66KN632fu3Ll47LHHMHLkSMTHxyM3Nxdff/01mjVrZpP7InJXMiGEsHchiMh55efno02bNjhy5Aji4+N1nouJiUF6ejrS09PtUzgiIgPYBUZEZqmurkZJSQmmTZuGu+++u174ISJyZOwCIyKzHDhwABEREThy5Ei9cTv29s4776Bp06Z6vwYOHGjv4hGRA2AXGBG5nNLS0norJ2v4+voiMjJS4hIRkaNhACIiIiK3wy4wIiIicjsMQEREROR2GICIiIjI7TAAERERkdthACIiIiK3wwBEREREbocBiIiIiNwOAxARERG5nf8H3BI08jrJcMwAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_16.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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jhyJDRs2YMGCBTh69Ci2bduGp59+GgUFBfZsjlP17NkTubm5OH36NObOnYulS5di4sSJtT6vVqtFYGCgWQglohqy64U1iMgtJCQkiD59+og2bdqIsWPHmo5/8cUXwvi2sXr1agFAbNq0yeI5DAaDVY+l0+lEenp6pbdbum6Q0Y8//igeeOAB4eXlJUJCQsSoUaPElStXTLd/9NFHIioqStSvX18EBASIQYMGifz8fNPtxmsYbdu2TXTo0EF4eXmJhx56SOTn54utW7eKNm3aCB8fHzFo0CBRUlJiVXsSEhLEE088YXbsySefFB07djT9fOnSJTFw4EARHBwsvL29xV133SUyMjLMznF7m7Ozs031LX9tvc8//1y0bdtWaLVa0axZMzFr1iyr6kmkdOwBIiKLNBoN3n//fSxYsADnzp2rcPvq1avRunVrPP744xbvb20vRWBgILZu3Yri4mKLt2/YsAEhISF45513kJubi9zcXADAqVOn0LNnTzz11FP47bffsHbtWuzcuRNJSUmm+968eRNTpkzBr7/+io0bNyInJwfPP/98hceYNGkSFi5ciN27d+PPP/9E//79kZaWhoyMDGzZsgXffPMNFixYYFV7bnfo0CHs3r0bWq3WdOzatWuIiorCli1bcOjQISQmJuK5557Dzz//DACYN28eoqOjMXz4cFObQ0NDK5w7KysL/fv3x8CBA/H7779j0qRJePvtt5Genl6juhIpitQJjIjkp3wvxn333SdeeOEFIYR5D1CbNm3E448/bna/MWPGiHr16ol69eqJJk2aWPVY33//vQgJCREeHh7i3nvvFcnJyWLnzp1mZZo1aybmzp1rdmzYsGEiMTHR7NiPP/4o1Gq1+Pvvvy0+1r59+wQAUVxcLIT4pwfou+++M5WZOnWqACBOnTplOjZixAgRFxdnVXsSEhKERqMR9erVE56engKAUKvV4vPPP6/yfr179xavvvqq6eeYmBgxZswYszK39wANHjxYPPLII2Zlxo4dK9q2bWtVXYmUjD1ARFSl6dOnY9WqVThy5Ei1ZcePH4+DBw9iwoQJuHLlilXnf/DBB3H69GlkZmbi6aefxh9//IFu3bphypQpVd7v119/RXp6OurXr2/6ExcXB4PBgOzsbABlPSTx8fFo2rQpfHx8EBMTAwA4e/as2bnuuece078DAgJQt25dNG/e3OzYhQsXrGoPADz00EM4ePAg9u7di4SEBAwdOhRPPfWU6fbS0lJMmTIFd999N/z8/FC/fn18/fXXFepVnSNHjuD+++83O3b//ffjxIkTKC0ttelcRErDAEREVXrwwQcRFxeH1NRUs+MtW7bEsWPHzI41atQILVq0QOPGjW16DA8PD3Tr1g2vv/46vvnmG7zzzjuYMmUKbty4Uel9rly5ghEjRuDgwYOmP7/++itOnDiBiIgIlJSUIC4uDr6+vvj000+xb98+fPHFFwBQ4bweHh6mfxtXb5WnUqlgMBisbk+9evXQokULtG/fHitWrMDevXuxfPly0+0zZ87EvHnz8Prrr2P79u04ePAg4uLiqmwvEdlXHakrQETyN23aNHTo0AGtW7c2HRs0aBAGDx6MTZs24YknnrDr47Vt2xa3bt3CtWvXoNVqodVqK/RoREZG4vDhw2jRooXFc/z+++8oKCjAtGnTTPNnfvnlF7vW0xpqtRpvvvkmUlJSMHjwYHh7e2PXrl144okn8OyzzwIADAYDjh8/jrZt25ruZ6nNt7vzzjuxa9cus2O7du1Cq1atoNFo7N8YIjfCHiAiqtbdd9+NZ555BvPnzzcdGzhwIJ5++mkMHDgQ77zzDvbu3YucnBx8//33WLt2rdUfwN27d8fSpUuRlZWFnJwcbN26FW+++SYeeugh+Pr6AijbB+iHH37AX3/9hUuXLgEAXn/9dezevRtJSUk4ePAgTpw4gU2bNpkmQTdt2hRarRYLFizA6dOnsXnz5mqH1RylX79+0Gg0WLRoEYCy3rNvv/0Wu3fvxpEjRzBixAjk5+eb3ScsLMz0nF66dMliD9Srr76KzMxMTJkyBcePH8eqVauwcOFCvPbaa05pF5ErYwAiIqu88847Zh/CKpUKa9euRVpaGrZu3YqHH34YrVu3xgsvvIDQ0FDs3LnTqvPGxcVh1apVePTRR3HnnXdi1KhRiIuLw2effWb22Dk5OYiIiECjRo0AlM3b+f7773H8+HF069YNHTt2xIQJExAcHAygbDguPT0d69atQ9u2bTFt2jTMmjXLjs+I9erUqYOkpCTMmDEDJSUleOuttxAZGYm4uDh0794dgYGB6Nu3r9l9XnvtNWg0GrRt2xaNGjWyOD8oMjISn332GdasWYO77roLEyZMwDvvvGNxpRsRmVMJIYTUlSAiIiJyJvYAERERkeIwABGRQ5Vfpn77nx9//FHq6tnk7NmzVbbH1mXsRCQdDoERkUNVdVHUJk2awNvb24m1qZ1bt24hJyen0tvDwsJQpw4X1xK5AgYgIiIiUhwOgREREZHiMAARERGR4jAAERERkeIwABEREZHiMAARERGR4jAAERERkeIwABEREZHiMAARERGR4vw/bkHdGA5ckZQAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_17.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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T57Etm3bkJaWhsTERJw/fx5ubm64evUq2rdvDycn0/+U7d+/H2+//TbOnTuHsrIy3faaIaoxrly5AkEQEBkZWefrzs7Oet8HBwfXqueqz+7du+Hp6QlnZ2e0bt1aN21ozK+//gqgOljV5OLiggceeED3OhGZxoBERA2iVqsxePBg3L59G99++y2CgoLM3od2WYCIiIgGv8fT0xOPPfYYHnvsMTg7O2P79u04efIk+vXr16D3f/vtt3jyySfx6KOP4v3330dgYCCcnZ2xdetWpKWlmX0MNWk0GshkMvzrX/+qMywa1vTUHMlqqEcffVRX90REtsOARET1+uuvv5CYmIiff/4Zhw8fxoMPPmj2PqqqqpCWloaWLVvi4YcfblQ/evbsie3btyMvLw9AdRH1yZMnUVFRUWu0Rmv37t1wc3PDwYMH4erqqtu+devWWm2NjSgZ2x4eHg5BEBAWFoZ27dqZezhW0bZtWwDA5cuX8cADD+i2l5eXIycnB3FxcbptTR1BI3JkrEEiIpOqqqowcuRIZGZmYteuXY1ae6eqqgozZszAxYsXMWPGDHh6ehptW1paiszMzDpf+9e//gXg3vTRiBEjUFhYiPXr19dqK/zfQooKhQIymQxVVVW613Jzc+tcENLd3b3OxSDd3d0BoNZrw4cPh0KhwOLFi2st3CgIAlQqVd0HaUVxcXFwcXHB2rVr9fq0efNmqNVqvbsH3d3dTS65QNSccQSJiEx65ZVX8MUXXyAxMRFFRUW1FoY0XBRSrVbr2pSWliI7Oxt79uzB1atXMWrUKCxZssTk55WWlqJv377o06cPEhISEBISgtu3b2Pv3r349ttvMWzYMPTo0QMA8MILL+Cf//wnkpOTcerUKTzyyCO4e/cuDh8+jL///e946qmnMGTIEKxevRoJCQl47rnncPPmTWzYsAERERH44Ycf9D47Ojoahw8fxurVqxEUFISwsDDExMQgOjoaADBv3jyMGjUKzs7OSExMRHh4ON5++23MnTsXubm5GDZsGDw8PJCTk4PPP/8ckydPxquvvtqk82+u+++/H3PnzsXixYuRkJCAJ598EpcvX8b777+PXr166f33io6Oxs6dO5GcnIxevXrhvvvuQ2Jiok37SyRZYt5CR0TSp7093diXqbb33XefEBkZKYwZM0b4+uuvG/R5FRUVwkcffSQMGzZM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DISrqyvatWuHr776yka9tR5zzkP//v1r/TzIZDIMGTLEhj22HnN/JlJTU9G+fXu0aNECISEhmDVrFv7666+mdUIgi0tPTxdcXFyELVu2CBcuXBBefPFFwcvLSygoKKiz/alTp4RXX31V+PTTT4WAgADhvffes22Hrcjcc/Hcc88JGzZsEM6ePStcvHhRGD9+vKBUKoXr16/buOeWZe55OHLkiLBnzx7hp59+ErKzs4XU1FRBoVAIBw4csHHPLcvc86CVk5MjBAcHC4888ojw1FNP2aazVmbuudi6davg6ekp5OXl6b7y8/Nt3GvLM/c8lJWVCT179hSeeOIJ4bvvvhNycnKEo0ePCufOnbNxzy3L3POgUqn0fhbOnz8vKBQKYevWrbbtuBWYey527NghuLq6Cjt27BBycnKEgwcPCoGBgcKsWbOa1A8GJCvo3bu3MG3aNN33VVVVQlBQkJCSklLve9u2betQAakp50IQBKGyslLw8PAQtm/fbq0u2kRTz4MgCEKPHj2EN9980xrds5nGnIfKykqhb9++wj/+8Q9h3LhxDhOQzD0XW7duFZRKpY16ZzvmnocPPvhAeOCBB4Ty8nJbddEmmvpvxHvvvSd4eHgId+7csVYXbcbcczFt2jRh4MCBetuSk5OFhx56qEn94BSbhZWXlyMrKwtxcXG6bXK5HHFxccjMzBSxZ7ZniXNRWlqKiooKeHt7W6ubVtfU8yAIAjIyMnD58mU8+uij1uyqVTX2PLz11lvw8/PDxIkTbdFNm2jsubhz5w7atm2LkJAQPPXUU7hw4YItums1jTkPX3zxBWJjYzFt2jT4+/ujc+fOeOedd1BVVWWrblucJf6t3Lx5M0aNGgV3d3drddMmGnMu+vbti6ysLN003C+//IKvvvoKTzzxRJP6wofVWlhhYSGqqqrg7++vt93f3x+XLl0SqVfisMS5eO211xAUFKT3P4u9aex5UKvVCA4ORllZGRQKBd5//3089thj1u6u1TTmPHz33XfYvHkzzp07Z4Me2k5jzkX79u2xZcsWdO3aFWq1Gu+++y769u2LCxcuNPnB2WJpzHn45Zdf8M033+D555/HV199hezsbPz9739HRUUFFi5caItuW1xT/608deoUzp8/j82bN1urizbTmHPx3HPPobCwEA8//DAEQUBlZSWmTp2KN954o0l9YUAiyVq2bBnS09Nx9OhRhylGNYeHhwfOnTuHO3fuICMjA8nJyXjggQfQv39/sbtmEyUlJRg7diw++ugj+Pr6it0d0cXGxiI2Nlb3fd++fdGxY0d8+OGHWLJkiYg9sy2NRgM/Pz9s2rQJCoUC0dHR+P3337Fy5Uq7DUhNtXnzZnTp0gW9e/cWuyuiOHr0KN555x28//77iImJQXZ2Nl5++WUsWbIE8+fPb/R+GZAszNfXFwqFAgUFBXrbCwoKEBAQIFKvxNGUc/Huu+9i2bJlOHz4MLp27WrNblpdY8+DXC5HREQEAKB79+64ePEiUlJS7DYgmXserl69itzcXCQmJuq2aTQaAICTkxMuX76M8PBw63baSizx74SzszN69OiB7Oxsa3TRJhpzHgIDA+Hs7AyFQqHb1rFjR+Tn56O8vBwuLi5W7bM1NOXn4e7du0hPT8dbb71lzS7aTGPOxfz58zF27FhMmjQJANClSxfcvXsXkydPxrx58yCXN66aiDVIFubi4oLo6GhkZGTotmk0GmRkZOj99tccNPZcrFixAkuWLMGBAwfQs2dPW3TVqiz1M6HRaFBWVmaNLtqEueehQ4cO+PHHH3Hu3Dnd15NPPokBAwbg3LlzCAkJsWX3LcoSPxNVVVX48ccfERgYaK1uWl1jzsNDDz2E7OxsXVgGgJ9//hmBgYF2GY6Apv087Nq1C2VlZRgzZoy1u2kTjTkXpaWltUKQNkALTXncbJNKvKlO6enpgqurq7Bt2zbhp59+EiZPnix4eXnpbskdO3as8Prrr+val5WVCWfPnhXOnj0rBAYGCq+++qpw9uxZ4cqVK2IdgsWYey6WLVsmuLi4CJ999pneLawlJSViHYJFmHse3nnnHeHrr78Wrl69Kvz000/Cu+++Kzg5OQkfffSRWIdgEeaeB0OOdBebuedi8eLFwsGDB4WrV68KWVlZwqhRowQ3NzfhwoULYh2CRZh7Hq5duyZ4eHgISUlJwuXLl4X9+/cLfn5+wttvvy3WIVhEY//fePjhh4WRI0faurtWZe65WLhwoeDh4SF8+umnwi+//CJ8/fXXQnh4uPDss882qR8MSFaybt06oU2bNoKLi4vQu3dv4cSJE7rX+vXrJ4wbN073fU5OjgCg1le/fv1s33ErMOdctG3bts5zsXDhQtt33MLMOQ/z5s0TIiIiBDc3N6FVq1ZCbGyskJ6eLkKvLc+c82DIkQKSIJh3LmbOnKlr6+/vLzzxxBPCmTNnROi15Zn7M3H8+HEhJiZGcHV1FR544AFh6dKlQmVlpY17bXnmnodLly4JAISvv/7axj21PnPORUVFhbBo0SIhPDxccHNzE0JCQoS///3vwh9//NGkPsgEoSnjT0RERESOhzVIRERERAYYkIiIiIgMMCARERERGWBAIiIiIjLAgERERERkgAGJiIiIyAADEhEREZEBBiQiIokbP348hg0bJnY3iJoVBiQiarTx48dDJpPpvnx8fJCQkIAffvhB7K5ZRM1j0349/PDDVvu83NxcyGQynDt3Tm/7mjVrsG3bNqt9LhHVxoBERE2SkJCAvLw85OXlISMjA05OThg6dKjY3bKYrVu36o4vLy8PX3zxRZ3tKioqrNYHpVIJLy8vq+2fiGpjQCKiJnF1dUVAQAACAgLQvXt3vP766/jtt99w69YtDBw4EElJSXrtb926BRcXF93TukNDQ7FkyRKMHj0a7u7uCA4OxoYNG/Tes3r1anTp0gXu7u4ICQnB3//+d9y5c0f3+q+//orExES0atUK7u7u6NSpE7766isAwB9//IHnn38e999/P1q0aIHIyEhs3bq1wcfn5eWlO76AgAB4e3vrRnp27tyJfv36wc3NDTt27IBKpcLo0aMRHByMli1bokuXLvj000/19qfRaLBixQpERETA1dUVbdq0wdKlSwEAYWFhAIAePXpAJpOhf//+AGpPsZWVlWHGjBnw8/ODm5sbHn74YZw+fVr3+tGjRyGTyZCRkYGePXuiZcuW6Nu3Ly5fvtzg4yZq7hiQiMhi7ty5g08++QQRERHw8fHBpEmTkJaWhrKyMl2bTz75BMHBwRg4cKBu28qVK9GtWzecPXsWr7/+Ol5++WUcOnRI97pcLsfatWtx4cIFbN++Hd988w3mzJmje33atGkoKyvDf/7zH/z4449Yvnw57rvvPgDA/Pnz8dNPP+Ff//oXLl68iA8++AC+vr4WOV5tXy9evIj4+Hj89ddfiI6Oxpdffonz589j8uTJGDt2LE6dOqV7z9y5c7Fs2TJdv9LS0uDv7w8AunaHDx9GXl4e9uzZU+fnzpkzB7t378b27dtx5swZREREID4+HkVFRXrt5s2bh1WrVuH777+Hk5MT/va3v1nkuImahSY96paImrVx48YJCoVCcHd3F9zd3QUAQmBgoJCVlSUIgiD8+eefQqtWrYSdO3fq3tO1a1dh0aJFuu/btm0rJCQk6O135MiRwuDBg41+7q5duwQfHx/d9126dNHbZ02JiYnChAkTGnV8AAQ3Nzfd8bm7uwuff/65kJOTIwAQUlNT693HkCFDhFdeeUUQBEEoLi4WXF1dhY8++qjOttr9nj17Vm/7uHHjhKeeekoQBEG4c+eO4OzsLOzYsUP3enl5uRAUFCSsWLFCEARBOHLkiABAOHz4sK7Nl19+KQAQ/vzzT3NOAVGzxREkImqSAQMG4Ny5czh37hxOnTqF+Ph4DB48GL/++ivc3NwwduxYbNmyBQBw5swZnD9/HuPHj9fbR2xsbK3vL168qPv+8OHDGDRoEIKDg+Hh4YGxY8dCpVKhtLQUADBjxgy8/fbbeOihh7Bw4UK9IvGXXnoJ6enp6N69O+bMmYPjx4+bdXzvvfee7vjOnTuHxx57TPdaz5499dpWVVVhyZIl6NKlC7y9vXHffffh4MGDuHbtGgDg4sWLKCsrw6BBg8zqQ01Xr15FRUUFHnroId02Z2dn9O7dW++cAUDXrl11fw8MDAQA3Lx5s9GfTdScMCARUZO4u7sjIiICERER6NWrF/7xj3/g7t27+OijjwAAkyZNwqFDh3D9+nVs3boVAwcORNu2bRu8/9zcXAwdOhRdu3bF7t27kZWVpatRKi8v133GL7/8grFjx+LHH39Ez549sW7dOgDQhbVZs2bhxo0bGDRoEF599dUGf35AQIDu+CIiIuDu7q537DWtXLkSa9aswWuvvYYjR47g3LlziI+P1/WzRYsWDf5cS3B2dtb9XSaTAaiugSKi+jEgEZFFyWQyyOVy/PnnnwCALl26oGfPnvjoo4+QlpZWZx3MiRMnan3fsWNHAEBWVhY0Gg1WrVqFPn36oF27drhx40atfYSEhGDq1KnYs2cPXnnlFV1AA4D7778f48aNwyeffILU1FRs2rTJkoesc+zYMTz11FMYM2YMunXrhgceeAA///yz7vXIyEi0aNFCV6BuyMXFBUD1SJQx4eHhcHFxwbFjx3TbKioqcPr0aTz44IMWOhIichK7A0Rk38rKypCfnw+g+o6x9evX486dO0hMTNS1mTRpEpKSkuDu7o6nn3661j6OHTuGFStWYNiwYTh06BB27dqFL7/8EgAQERGBiooKrFu3DomJiTh27Bg2btyo9/6ZM2di8ODBaNeuHf744w8cOXJEF7AWLFiA6OhodOrUCWVlZdi/f7/uNUuLjIzEZ599huPHj6NVq1ZYvXo1CgoKdMHFzc0Nr732GubMmQMXFxc89NBDuHXrFi5cuICJEyfCz88PLVq0wIEDB9C6dWu4ublBqVTqfYa7uzteeuklzJ49G97e3mjTpg1WrFiB0tJSTJw40SrHRdQccQSJiJrkwIEDCAwMRGBgIGJiYnD69Gns2rVLd4s6AIwePRpOTk4YPXo03Nzcau3jlVdewffff48ePXrg7bffxurVqxEfHw8A6NatG1avXo3ly5ejc+fO2LFjB1JSUvTeX1VVhWnTpqFjx45ISEhAu3bt8P777wOoHpWZO3cuunbtikcffRQKhQLp6elWORdvvvkmoqKiEB8fj/79+yMgIKDWCtjz58/HK6+8ggULFqBjx44YOXKkri7IyckJa9euxYcffoigoCA89dRTdX7OsmXLMGLECIwdOxZRUVHIzs7GwYMH0apVK6scF1FzJBMEQRC7E0Tk2HJzcxEeHo7Tp08jKipK77XQ0FDMnDkTM2fOFKdzRER14BQbEVlNRUUFVCoV3nzzTfTp06dWOCIikipOsRGR1Rw7dgyBgYE4ffp0rbohsb3zzju477776vwaPHiw2N0jIpFxio2ImqWioqJaK09rtWjRAsHBwTbuERFJCQMSERERkQFOsREREREZYEAiIiIiMsCARERERGSAAYmIiIjIAAMSERERkQEGJCIiIiIDDEhEREREBhiQiIiIiAz8fyk6M1bR7S5uAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_18.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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tGsPyWQaAODaQ0RE5NTYg0RWExt7GJGRp4yuPURERORMGCCRVXHtISIicgUcYiMiIiIywACJiIiIyAADJGoSrj1ERESuiDlI1CRce4iIiFwRAyQ3c/YscPIkEB0NtGtnnXMy+CEiIlfDITY3snIl0KED/torreZ3IiIiqosBkps4exZISwM0Nes4QqMB0tNrjhMREZE+BkhuQKVS4cABlS440qquBg4eVEGlUjmmYkRERBLFAMnFqVQq5ObmYv/+tbptQLRkMg327VuL3NxcBklERES1MEBycdrZZQ3tlVbfLDQiIiJ3w1lsboR7pREREZmHAZKb4V5pREREDeMQGxEREZEBBkhEREREBhggERERERlggERERERkgAGSi1MqlVYtR0RE5A44i83FBQYGIiMjo951jpRKJTecJSIiqoUBkhtg8ENERGQZDrERERERGWCARERERGSAARIRERGRAQZIRERERAYYIBEREREZYIBEREREZIABEhEREZEBBkhEREREBhggERERERngStqNJIQAAFRUVDi4JkRERGQu7XVbex03hQFSI1VWVgIAwsLCHFwTIiIislRlZSX8/f1N3i4TDYVQZJRGo8G5c+fg6+sLmUxmtfNWVFQgLCwMv/32G/z8/Kx2Xilx9Tayfc7P1dvI9jk/V2+jLdsnhEBlZSVCQ0Mhl5vONGIPUiPJ5XK0a9fOZuf38/NzyT/62ly9jWyf83P1NrJ9zs/V22ir9tXXc6TFJG0iIiIiAwyQiIiIiAwwQJIYLy8vzJo1C15eXo6uis24ehvZPufn6m1k+5yfq7dRCu1jkjYRERGRAfYgERERERlggERERERkgAESERERkQEGSEREREQGGCDZwbJlyxAeHg5vb2/Ex8fj66+/rrd8Tk4OOnXqhGbNmiEsLAzPPvss/vzzzyad05as3b7Zs2dDJpPpfcXExNi6GSZZ0r4bN25g7ty5iIyMhLe3N3r06IHt27c36Zz2YO02Suk1/PLLLzFkyBCEhoZCJpNhy5YtDd5nz549iI2NhZeXF6KiorBmzZo6ZaTyGtqifVJ6/QDL21hSUoLRo0ejY8eOkMvlyMzMNFpu48aNiImJgbe3N7p164Zt27ZZv/JmsEX71qxZU+c19Pb2tk0DGmBp+zZv3oy7774brVu3hp+fHxISErBjx4465Wz+PyjIpvLz84VS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sc59evbsKZRKpbj55pvF6tWr65xXKq+hLdonpddPiMa10Vj5Dh066JV5//33RceOHYVSqRRdunQRn3zyiX0aZMAW7cvMzNT9fQYFBYn77rtPbx0he7K0fYmJifWW17L1/6BMCBPjGkRERERuijlIRERERAYYIBEREREZYIBEREREZIABEhEREZEBBkhEREREBhggERERERlggERERERkgAESEZGL2LNnD2QyGS5duuToqhA5PQZIRGSxcePGQSaTYf78+XrHt2zZAplMpvtdCIF//OMfSEhIgJ+fH1q0aIEuXbpg8uTJZm+aefXqVUybNg2RkZHw9vZG69atkZiYiI8++khXJjw8HDk5OVZpm61pnzuZTAZPT09ERERg6tSp+PPPPy06z5133onMzEy9Y/3790dJSQn8/f2tWGMi98QAiYgaxdvbGwsWLMAff/xh9HYhBEaPHo1Jkybhvvvuw6effooff/wRK1euhLe3N1555RWzHuepp57C5s2bsXTpUpw4cQLbt2/HQw89BJVKZc3m2FVKSgpKSkrwyy+/4K233sK7776LWbNmNfm8SqUSwcHBekEqETWSVTcuISK3MHbsWDF48GARExMjpkyZojv+4YcfCu3byvr16wUA8dFHHxk9h0ajMeux/P39xZo1a0zebmzfJq29e/eK2267TXh7e4t27dqJiRMnisuXL+tu/9e//iXi4uJEixYtRFBQkBg1apQoKyvT3a7dQ2r79u2iZ8+ewtvbWwwYMECUlZWJbdu2iZiYGOHr6ytGjRolrly5YlZ7xo4dK+6//369Yw8++KDo1auX7veLFy+KkSNHitDQUNGsWTPRtWtXkZeXp3cOwzYXFRXp6lt7b8MPPvhAdO7cWSiVStGhQwfx5ptvmlVPInfHHiQiahSFQoHXXnsNS5cuxdmzZ+vcvn79enTq1AlDhw41en9zezmCg4Oxbds2VFZWGr198+bNaNeuHebOnYuSkhKUlJQAAE6fPo2UlBQMHz4cR48exYYNG/DVV18hIyNDd98bN25g3rx5+O6777BlyxYUFxdj3LhxdR5j9uzZyM3Nxf79+/Hbb79hxIgRyMnJQV5eHj755BN8+umnWLp0qVntMXTs2DHs378fSqVSd+zPP/9EXFwcPvnkExw7dgxpaWkYM2YMvv76awDA4sWLkZCQgCeffFLX5rCwsDrnLiwsxIgRIzBy5Eh8//33mD17Nl5++WWsWbOmUXUlciuOjtCIyPnU7gXp16+fePzxx4UQ+j1IMTExYujQoXr3mzx5svDx8RE+Pj6ibdu2Zj3WF198Idq1ayc8PT1F7969RWZmpvjqq6/0ynTo0EG89dZbescmTJgg0tLS9I7t3btXyOVy8b///c/oY33zzTcCgKisrBRC/N2D9Nlnn+nKZGdnCwDi9OnTumPp6ekiOTnZrPaMHTtWKBQK4ePjI7y8vAQAIZfLxQcffFDv/QYNGiSee+453e+JiYli8uTJemUMe5BGjx4t7r77br0yU6ZMEZ07dzarrkTujD1IRNQkCxYswNq1a3H8+PEGy86YMQNHjhzBzJkzcfnyZbPOf8cdd+CXX37Brl278NBDD+GHH37A7bffjnnz5tV7v++++w5r1qxBixYtdF/JycnQaDQoKioCUNPDMmTIELRv3x6+vr5ITEwEAJw5c0bvXN27d9f9HBQUhObNm+Pmm2/WO3b+/Hmz2gMAAwYMwJEjR3Dw4EGMHTsW48ePx/Dhw3W3V1dXY968eejWrRsCAgLQokUL7Nixo069GnL8+HHceuutesduvfVWnDx5EtXV1Radi8jdMEAioia54447kJycjGnTpukdj46Oxk8//aR3rHXr1oiKikKbNm0segxPT0/cfvvteOGFF/Dpp59i7ty5mDdvHq5fv27yPpcvX0Z6ejqOHDmi+/ruu+9w8uRJREZG4sqVK0hOToafnx/WrVuHb775Bh9++CEA1Dmvp6en7mft7LPaZDIZNBqN2e3x8fFBVFQUevTogVWrVuHgwYNYuXKl7vY33ngDixcvxgsvvIDdu3fjyJEjSE5Orre9RGRdHo6uABE5v/nz56Nnz57o1KmT7tioUaMwevRofPTRR7j//vut+nidO3dGVVUV/vzzTyiVSiiVyjo9IrGxsfjxxx8RFRVl9Bzff/89VCoV5s+fr8vf+fbbb61aT3PI5XJMnz4dWVlZGD16NJo1a4Z9+/bh/vvvx6OPPgoA0Gg0+Pnnn9G5c2fd/Yy12dAtt9yCffv26R3bt28fOnbsCIVCYf3GELkQ9iARUZN169YNjzzyCJYsWaI7NnLkSDz00EMYOXIk5s6di4MHD6K4uBhffPEFNmzYYPYF+s4778S7776LwsJCFBcXY9u2bZg+fToGDBgAPz8/ADXrIH355Zf4/fffcfHiRQDACy+8gP379yMjIwNHjhzByZMn8dFHH+mStNu3bw+lUomlS5fil19+wX/+858Gh+1s5eGHH4ZCocCyZcsA1PS+7dy5E/v378fx48eRnp6OsrIyvfuEh4frntOLFy8a7cF67rnnsGvXLsybNw8///wz1q5di9zcXDz//PN2aReRM2OARERWMXfuXL2LtEwmw4YNG5CTk4Nt27bhrrvuQqdOnfD4448jLCwMX331lVnnTU5Oxtq1a3HPPffglltuwcSJE5GcnIz3339f77GLi4sRGRmJ1q1bA6jJG/riiy/w888/4/bbb0evXr0wc+ZMhIaGAqgZ7luzZg02btyIzp07Y/78+XjzzTet+IyYz8PDAxkZGXj99ddx5coVvPTSS4iNjUVycjLuvPNOBAcHY9iwYXr3ef7556FQKNC5c2e0bt3aaH5SbGws3n//feTn56Nr166YOXMm5s6da3SmHhHpkwkhhKMrQURERCQl7EEiIiIiMsAAiYgcqvY0fMOvvXv3Orp6Fjlz5ky97bF0mj4ROQ6H2IjIoerbtLZt27Zo1qyZHWvTNFVVVSguLjZ5e3h4ODw8OHmYyBkwQCIiIiIywCE2IiIiIgMMkIiIiIgMMEAiIiIiMsAAiYiIiMgAAyQiIiIiAwyQiIiIiAwwQCIiIiIywACJiIiIyMD/Ay6Jv48apMqfAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_19.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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I0ypdEda2kQIUbNIolotweTJHrh0aR3k8vI2v0cYxwARERGRlqZLrLTUW7s9hoYQUpSWeumUa6sYgIiIiKgeL68SSCS6CyRKJGp4eZVaqUamxQBERERE9cjl5UhI2KUNQZpd4m1ljSCOASIiIqIG2fICiQxAREREpJe+BRLbOnaBERERkd1hACIiIiK7wwBEREREWjKZzKTlWiuOASIiIiItb29vJCcnN7pFRlteBBFgACIiIqI62nq4aQp2gREREZHdYQAiIiIiu8MARERERHaHAYiIiIjsDgMQERER2R0GICIiIrI7DEBERERkcocPA0uW1PzZGnEdICIiIjKpF18ENm688zopCdiwwVq1aViraAFasWIFgoOD4eLigr59++LQoUN6y65Zswb3338/OnTogA4dOiAuLk6nvEqlwtSpU9GzZ0+4ubkhICAAo0ePxuXLly1xK0RERHbt8GHd8APUvG5tLUFWD0CfffYZUlJSMGvWLGRnZyMiIgLx8fG4cuVKg+X37duHkSNHIisrCwcPHoRCocDDDz+MS5cuAQAqKiqQnZ2NGTNmIDs7G+np6cjJycGIESMseVtERER26fvvGz6+f79l69EYiRBCWLMCffv2RZ8+fbB8+XIAgFqthkKhwJtvvol333230fOrq6vRoUMHLF++HKNHj26wzOHDhxEbG4sLFy6gc+fOjV6zrKwMcrkcSqUSHh4ext0QERGRHTt8GIiNrX/80CGgTx/zfrYxv7+t2gJUVVWFI0eOIC4uTntMKpUiLi4OBw8ebNI1KioqoFKp4OXlpbeMUqmERCKBp6dnS6tMREREBvj7G3fcWqwagIqLi1FdXQ1fX1+d476+vigsLGzSNaZOnYqAgACdEFXbrVu3MHXqVIwcOVJvGqysrERZWZnOFxERERnn3Llz2L37jwbf+/bbP3Du3DkL10g/q48Baon58+dj27Zt+PLLL+Hi4lLvfZVKhWeeeQZCCKxatUrvdVJTUyGXy7VfCoXCnNUmIiKyOefOncPmzZvx669fQSJR67wnkahx8uRX2Lx5c6sJQVYNQB07doSDgwOKiop0jhcVFcHPz8/guYsXL8b8+fPx7bffolevXvXe14SfCxcuYM+ePQb7AqdNmwalUqn9ys/Pb94NERER2amKigoAgFxejoSEXdoQJJGokZCwC3J5uU45a7PqOkAy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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_20.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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gSUmJiI+Ph69e/dGnz59kJqaitLSUkycOBEAMGHCBISGhiIpKQkAkJKSggULFiA9PR0RERHGvkKtWrVCq1at4Ovri0GDBmHWrFnw8vJC+/bt8cUXX+Cdd97B8uXLJasnETUsICAACQkJnLyPHKaxEYdStD7au3N2Uzw8PIxXXkJDQ9GrVy/ccccd+Mtf/oK0tDRMmjQJy5cvx4YNG/DLL7/A398fw4cPx9KlS9GqVStkZWUZv7cNHZQXLlyIRYsWYdOmTXj99ddx4sQJeHt745577kFqamq9U904mqQBaPTo0bh06RIWLFiAgoICREdHIyMjw9gx+ty5cyatOWvWrEFFRQVGjhxpchzDEw0AW7Zswbx58/Doo4/iypUraN++PV5++WVOhEgkYww35Ag6nQ5A0yMOdTpdsyfZs4QcO2ffc8896NGjB7Zv345JkybBzc0Nb7zxBiIjI/HLL7/g6aefxuzZs7F69Wr0798fqampWLBgAU6cOAGgumECqL4ys2TJEnTu3BkXL15EYmIiHn/8cezatcthdWmI5J2gExISkJCQUO99WVlZJrfz8vKaPF5QUBA2bNhgg5IREZErMcwbYxhxWLsPkKH1RylreTWlS5cuOHLkCABg5syZxu0RERF46aWXMHXqVKxevRoajQZarRYqlapOH94nnnjC+P8OHTrgjTfewO23345r164ZQ5JUJA9AREREjtCixZ9feb16fY+2bQtw7lw7tGt3DmFh+fXup2RCCOMlrc8++wxJSUk4fvw4iouLcePGDVy/fh1lZWWNTgCZnZ2NRYsW4YcffsDvv/9u7I977tw5dO3a1SH1aIikM0ETERE5ip+fn/H/OTk9sW7dJOzZMwTr1k1CTk7PevdTsmPHjiEyMhJ5eXkYNmwYunfvjm3btiE7OxurVq0C0PhludLSUsTFxcHX1xebN2/Gd999hw8//LDJxzkKYy41iitLE5Gr4bpzTfv888/x448/4tlnn0V2djb0ej3++c9/Gvvlvv/++yb7azQak9XhAeD48eMoKipCcnKycW69//73v46pgBkYgKhBUo9MICKyB7mNApNaeXk5CgoKUFVVhcLCQmRkZCApKQnDhg3DhAkTcPToUVRWVmLFihUYPnw49u/fj7Vr15ocIyIiAteuXUNmZiZ69OiBli1bol27dtBoNFixYgWmTp2Ko0eP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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_21.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAHHCAYAAABXx+fLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABUMElEQVR4nO3deVyUdeIH8M8wcokcgnKjIFhaagIqHiVWtmiKubllmqammSWZ0qF2eKwlXil5p+u1JatbUptWmpK2m1m6KL/yTAzKCxTIQaUAme/vD3ZGBpiBYY7nmXk+79drXus888wz3+dZmucz31MlhBAgIiIiUhAXqQtAREREZG8MQERERKQ4DEBERESkOAxAREREpDgMQERERKQ4DEBERESkOAxAREREpDgMQERERKQ4DEBERESkOAxAREQytnnzZqhUKuTn50tdFCKnwgBEpHBHjhxBSkoK7r77bnh5eaFNmzZ4/PHH8dNPP9XZt1+/flCpVFCpVHBxcYGPjw/uvPNOjB49Gnv37jXrc3fu3InExEQEBgaiefPmaNeuHR5//HHs3r3bWqdWx/z58/HJJ5/U2f7tt99izpw5uHbtms0+u7Y5c+bor6VKpULz5s1x11134Y033kBpaalVPiMjIwPp6elWORaRs2EAIlK4hQsXYseOHXjwwQfx7rvvYuLEifj3v/+NuLg4HD9+vM7+4eHheP/99/H3v/8dixcvxpAhQ/Dtt9/iT3/6E4YPH47KysoGP3PJkiUYMmQIVCoVZs6ciWXLlmHYsGE4e/Ystm3bZovTBGA6AM2dO9euAUhnzZo1eP/997F06VJ06NABb7/9NgYMGABrLNPIAERkXDOpC0BE0kpNTUVGRgbc3Nz024YPH47OnTtjwYIF+OCDDwz29/X1xahRowy2LViwAFOmTMHq1asRGRmJhQsXGv28W7duYd68eXjooYfw5Zdf1nn9ypUrFp6RfJSVlaF58+Ym9/nLX/6CVq1aAQAmTZqEYcOGITMzE9999x169eplj2ISKRJrgIgUrnfv3gbhBwDat2+Pu+++G6dOnWrUMdRqNZYvX4677roLK1euhEajMbpvUVERSktL0adPn3pfDwwMNHj+xx9/YM6cObjjjjvg4eGBkJAQPProozh37px+nyVLlqB3794ICAiAp6cn4uPj8dFHHxkcR6VS4ebNm9iyZYu+2Wns2LGYM2cOXnnlFQBAVFSU/rWafW4++OADxMfHw9PTE/7+/njiiSdw/vx5g+P369cPnTp1QnZ2Nvr27YvmzZvjtddea9T1q+mBBx4AAOTl5Zncb/Xq1bj77rvh7u6O0NBQTJ482aAGq1+/fvjss8/wyy+/6M8pMjLS7PIQOSvWABFRHUIIFBYW4u677270e9RqNUaMGIE333wT33zzDQYNGlTvfoGBgfD09MTOnTvxwgsvwN/f3+gxq6qqMHjwYGRlZeGJJ57Aiy++iOvXr2Pv3r04fvw4oqOjAQDvvvsuhgwZgieffBIVFRXYtm0bHnvsMezatUtfjvfffx8TJkxAjx49MHHiRABAdHQ0vLy88NNPP+Ef//gHli1bpq+Nad26NQDg7bffxptvvonHH38cEyZMwNWrV7FixQr07dsXx44dg5+fn768xcXFGDhwIJ544gmMGjUKQUFBjb5+OrpgFxAQYHSfOXPmYO7cuejfvz+ee+45nDlzBmvWrMGRI0dw8OBBuLq64vXXX4dGo8GFCxewbNkyAECLFi3MLg+R0xJERLW8//77AoDYsGGDwfbExERx9913G33fxx9/LACId9991+TxZ82aJQAILy8vMXDgQPH222+L7OzsOvtt3LhRABBLly6t85pWq9X/u6yszOC1iooK0alTJ/HAAw8YbPfy8hJjxoypc6zFixcLACIvL89ge35+vlCr1eLtt9822P7jjz+KZs2aGWxPTEwUAMTatWuNnndNs2fPFgDEmTNnxNWrV0VeXp547733hLu7uwgKChI3b94UQgixadMmg7JduXJFuLm5iT/96U+iqqpKf7yVK1cKAGLjxo36bYMGDRJt27ZtVHmIlIZNYERk4PTp05g8eTJ69eqFMWPGmPVeXQ3D9evXTe43d+5cZGRkIDY2Fnv27MHrr7+O+Ph4xMXFGTS77dixA61atcILL7xQ5xgqlUr/b09PT/2/f/vtN2g0Gtx33304evSoWeWvLTMzE1qtFo8//jiKior0j+DgYLRv3x779+832N/d3R3jxo0z6zPuvPNOtG7dGlFRUXj22WcRExODzz77zGjfoX379qGiogJTp06Fi8vtr/BnnnkGPj4++Oyzz8w/USIFYhMYEekVFBRg0KBB8PX1xUcffQS1Wm3W+2/cuAEA8Pb2bnDfESNGYMSIESgtLcX333+P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ysvLMWrUKFsX0+aach3KysrqhBxdOBaWLmVqcTdqBdq2bZtwd3cXmzdvFidPnhQTJ04Ufn5++mGro0ePFjNmzNDvX15eLo4dOyaOHTsmQkJCxMsvvyyOHTsmzp49K9UpWIW512HBggXCzc1NfPTRRwbDO69fvy7VKViNuddi/vz54ssvvxTnzp0TJ0+eFEuWLBHNmjUT69evl+oUrMLc61Cbs4wCM/c6zJ07V+zZs0ecO3dOZGdniyeeeEJ4eHiIEydOSHUKVmPutfj111+Ft7e3SElJEWfOnBG7du0SgYGB4q233pLqFKyiqf9t3HvvvWL48OH2Lq7NmHsdZs+eLby9vcU//vEP8fPPP4svv/xSREdHi8cff9zisjAANdGKFStEmzZthJubm+jRo4f47rvv9K8lJiaKMWPG6J/n5eUJAHUeiYmJ9i+4lZlzHdq2bVvvdZg9e7b9C24D5lyL119/XcTExAgPDw/RsmVL0atXL7Ft2zYJSm195lyH2pwlAAlh3nWYOnWqft+goCDx8MMPi6NHj0pQatsw92/i22+/FQkJCcLd3V20a9dOvP322+LWrVt2LrX1mXsdTp8+LQCIL7/80s4ltS1zrkNlZaWYM2eOiI6OFh4eHiIiIkI8//zz4rfffrO4HCohLK1DIiIiInIs7ANEREREisMARERERIrDAERERESKwwBEREREisMARERERIrDAERERESKwwBEREREisMAREQkobFjx2Lo0KFSF4NIcRiAiKheY8eOhUql0j8CAgIwYMAA/PDDD1IXzSpqnpvuce+999rs8/Lz86FSqZCTk2Ow/d1338XmzZtt9rlEVD8GICIyasCAAbh8+TIuX76MrKwsNGvWDIMHD5a6WFazadMm/fldvnwZn376ab37VVZW2qwMvr6+8PPzs9nxiah+DEBEZJS7uzuCg4MRHByMrl27YsaMGTh//jyuXr2KBx54ACkpKQb7X716FW5ubvrVniMjIzFv3jyMGDECXl5eCAsLw6pVqwzes3TpUnTu3BleXl6IiIjA888/jxs3buhf/+WXX5CcnIyWLVvCy8sLd999Nz7//HMAwG+//YYnn3wSrVu3hqenJ9q3b49NmzY1+vz8/Pz05xccHAx/f399Tc327duRmJgIDw8PbN26FcXFxRgxYgTCwsLQvHlzdO7cGf/4xz8MjqfVarFo0SLExMTA3d0dbdq0wdtvvw0AiIqKAgDExsZCpVKhX79+AOo2gZWXl2PKlCkIDAyEh4cH7r33Xhw5ckT/+oEDB6BSqZCVlYVu3bqhefPm6N27N86cOdPo8yYiBiAiaqQbN27ggw8+QExMDAICAjBhwgRkZGSgvLxcv88HH3yAsLAwPPDAA/ptixcvxj333INjx45hxowZePHFF7F371796y4uLli+fDlOnDiBLVu24KuvvsKrr76qf33y5MkoLy/Hv//9b/z4449YuHAhWrRoAQB48803cfLkSXzxxRc4deoU1qxZg1atWlnlfHVlPXXqFJKSkvDHH38gPj4en332GY4fP46JEydi9OjROHz4sP49M2fOxIIFC/TlysjIQFBQEADo99u3bx8uX76MzMzMej/31VdfxY4dO7BlyxYcPXoUMTExSEpKQklJicF+r7/+Ot555x3897//RbNmzfD0009b5byJFMPi5VSJyCmNGTNGqNVq4eXlJby8vAQAERISIrKzs4UQQvz++++iZcuWYvv27fr3dOnSRcyZM0f/vG3btmLAgAEGxx0+fLgYOHCg0c/98MMPRUBAgP55586dDY5ZU3Jyshg3blyTzg+A8PDw0J+fl5eX+Pjjj0VeXp4AINLT0xs8xqBBg8RLL70khBCitLRUuLu7i/Xr19e7r+64x44dM9g+ZswY8cgjjwghhLhx44ZwdXUVW7du1b9eUVEhQkNDxaJFi4QQQuzfv18AEPv27dPv89lnnwkA4vfffzfnEhApGmuAiMio+++/Hzk5OcjJycHhw4eRlJSEgQMH4pdffoGHhwdGjx6NjRs3AgCOHj2K48ePY+zYsQbH6NWrV53np06d0j/ft28fHnzwQYSFhcHb2xujR49GcXExysrKAABTpkzBW2+9hT59+mD27NkGnbCfe+45bNu2DV27dsWrr76Kb7/91qzzW7Zsmf78cnJy8NBDD+lf69atm8G+VVVVmDdvHjp37gx/f3+0aNECe/bswa+//goAOHXqFMrLy/Hggw+aVYaazp07h8rKSvTp00e/zdXVFT169DC4ZgDQpUsX/b9DQkIAAFeuXGnyZxMpDQMQERnl5eWFmJgYxMTEoHv37vjb3/6GmzdvYv369QCACRMmYO/evbhw4QI2bdqEBx54AG3btm308fPz8zF48GB06dIFO3bsQHZ2tr6PUEVFhf4zfv75Z4wePRo//vgjunXrhhUrVgCAPoxNmzYNly5dwoMPPoiXX3650Z8fHBysP7+YmBh4eXkZnHtNixcvxrvvvovp06dj//79yMnJQVJSkr6cnp6ejf5ca3B1ddX/W6VSAajug0REjcMARESNplKp4OLigt9//x0A0LlzZ3Tr1g3r169HRkZGvf1QvvvuuzrPO3bsCADIzs6GVqvFO++8g549e+KOO+7ApUuX6hwjIiICkyZNQmZmJl566SV9AAOA1q1bY8yYMfjggw+Qnp6OdevWWfOU9Q4ePIhHHnkEo0aNwj333IN27drhp59+0r/evn17eHp66juA1+bm5gaguibJmOjoaLi5ueHgwYP6bZWVlThy5AjuuusuK50JEQFAM6kLQETyVV5ejoKCAgDVI65WrlyJGzduIDk5Wb/PhAkTkJKSAi8vL/z5z3+uc4yDBw9i0aJFGDp0KPbu3YsPP/wQn332GQAgJiYGlZWVWLFiBZKTk3Hw4EGsXbvW4P1Tp07FwIEDcccdd+C3337D/v379QFq1qxZiI+Px913343y8nLs2rVL/5q1tW/fHh999BG+/fZbtGzZEkuXLkVhYaE+mHh4eGD69Ol49dVX4ebmhj59+uDq1as4ceIExo8fj8DAQHh6emL37t0IDw+Hh4cHfH19DT7Dy8sLzz33HF555RX4+/ujTZs2WLRoEcrKyjB+/HibnBeRUrEGiIiM2r17N0JCQhASEoKEhAQcOXIEH374oX4INwCMGDECzZo1w4gRI+Dh4VHnGC+99BL++9//IjY2Fm+99RaWLl2KpKQkAMA999yDpUuXYuHChejUqRO2bt2KtLQ0g/dXVVVh8uTJ6NixIwYMGIA77rgDq1evBlBdqzJz5kx06dIFffv2hVqtxrZt22xyLd544w3ExcUhKSkJ/fr1Q3BwcJ0ZnN9880289NJLmDVrFjp27Ijhw4fr++U0a9YMy5cvx3vvvYfQ0FA88sgj9X7OggULMGzYMIwePRpxcXHIzc3Fnj170LJlS5ucF5FSqYQQQupCEJHjys/PR3R0NI4cOYK4uDiD1yIjIzF16lRMnTpVmsIRERnBJjAiapLKykoUFxfjjTfeQM+ePeuEHyIiOWMTGBE1ycGDBxESEoIjR47U6bcjtfnz56NFixb1PgYOHCh18YhIBtgERkROp6SkpM7MyTqenp4ICwuzc4mISG4YgIiIiEhx2ARGREREisMARERERIrDAERERESKwwBEREREisMARERERIrDAERERESKwwBEREREisMARERERIrz/wVyrQ2I5JG+AAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_22.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAHHCAYAAABXx+fLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABUEUlEQVR4nO3deVhUZeM+8HsYGUBkCQRkUxBMU0sF9zKsLCzF/GWp2aK2qG+SC2WGvblkhaYpuVdfFVtIK81ySTPKFjP1RS233ILcABVyQHlVZJ7fH7wzMcAMM8PMnDNz7s91cSlnzpx5nhnx3DyrSgghQERERKQgHlIXgIiIiMjZGICIiIhIcRiAiIiISHEYgIiIiEhxGICIiIhIcRiAiIiISHEYgIiIiEhxGICIiIhIcRiAiIiISHEYgIiIZCwrKwsqlQr5+flSF4XIrTAAESncnj17kJqainbt2sHX1xfNmzfH4MGDcezYsVrn9u7dGyqVCiqVCh4eHvD390fr1q3xxBNPYNu2bVa97oYNG5CUlITQ0FA0btwYLVu2xODBg7FlyxZ7Va2WN998E+vXr691/JdffsH06dNx6dIlh712TdOnTze8lyqVCo0bN0bbtm3x73//G6WlpXZ5jezsbGRmZtrlWkTuhgGISOFmz56NtWvX4p577sE777yDUaNG4ccff0RCQgIOHjxY6/yoqCh8+OGH+OCDDzBnzhwMGDAAv/zyC+677z4MGTIEFRUV9b7m3LlzMWDAAKhUKqSnp2P+/PkYNGgQjh8/jtWrVzuimgDMB6AZM2Y4NQDpLV26FB9++CHmzZuHNm3a4I033kDfvn1hj20aGYCITGskdQGISFppaWnIzs6GRqMxHBsyZAhuvfVWzJo1Cx999JHR+QEBAXj88ceNjs2aNQvjxo3DkiVLEBMTg9mzZ5t8vRs3bmDmzJm499578c0339R6/Pz58w2skXyUl5ejcePGZs95+OGH0bRpUwDAmDFjMGjQIKxbtw6//vorevTo4YxiEikSW4CIFK5nz55G4QcAWrVqhXbt2uHIkSMWXUOtVmPBggVo27YtFi1aBK1Wa/LcixcvorS0FLfffnudj4eGhhp9f/XqVUyfPh0333wzvL29ER4ejoceeggnT540nDN37lz07NkTwcHB8PHxQWJiIj7//HOj66hUKly5cgWrVq0ydDuNGDEC06dPx6RJkwAAsbGxhseqj7n56KOPkJiYCB8fHwQFBWHo0KE4ffq00fV79+6N9u3bIzc3F3feeScaN26MKVOmWPT+VXf33XcDAPLy8syet2TJErRr1w5eXl6IiIjA2LFjjVqwevfujU2bNuGvv/4y1CkmJsbq8hC5K7YAEVEtQggUFRWhXbt2Fj9HrVbj0Ucfxauvvoqff/4Z/fr1q/O80NBQ+Pj4YMOGDXj++ecRFBRk8pqVlZXo378/cnJyMHToUIwfPx5lZWXYtm0bDh48iLi4OADAO++8gwEDBuCxxx7D9evXsXr1ajzyyCPYuHGjoRwffvghnnnmGXTt2hWjRo0CAMTFxcHX1xfHjh3DJ598gvnz5xtaY0JCQgAAb7zxBl599VUMHjwYzzzzDC5cuICFCxfizjvvxL59+xAYGGgob3FxMe6//34MHToUjz/+OMLCwix+//T0wS44ONjkOdOnT8eMGTPQp08f/Otf/8LRo0exdOlS7NmzBzt27ICnpydeeeUVaLVanDlzBvPnzwcANGnSxOryELktQURUw4cffigAiOXLlxsdT0pKEu3atTP5vC+++EIAEO+8847Z60+dOlUAEL6+vuL+++8Xb7zxhsjNza113ooVKwQAMW/evFqP6XQ6w9/Ly8uNHrt+/bpo3769uPvuu42O+/r6iuHDh9e61pw5cwQAkZeXZ3Q8Pz9fqNVq8cYbbxgdP3DggGjUqJHR8aSkJAFALFu2zGS9q5s2bZoAII4ePSouXLgg8vLyxLvvviu8vLxEWFiYuHLlihBCiJUrVxqV7fz580Kj0Yj77rtPVFZWGq63aNEiAUCsWLHCcKxfv36iRYsWFpWHSGnYBUZERv744w+MHTsWPXr0wPDhw616rr6FoayszOx5M2bMQHZ2Njp16oStW7filVdeQWJiIhISEoy63dauXYumTZvi+eefr3UNlUpl+LuPj4/h73///Te0Wi169eqFvXv3WlX+mtatWwedTofBgwfj4sWLhq9mzZqhVatW+P77743O9/LywsiRI616jdatWyMkJASxsbEYPXo04uPjsWnTJpNjh7799ltcv34dEyZMgIfHP/+FP/vss/D398emTZusryiRArELjIgMCgsL0a9fPwQEBODzzz+HWq226vmXL18GAPj5+dV77qOPPopHH30UpaWl2LVrF7KyspCdnY2U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nIz09HSj461atcLRo0eNjoWEhCA+Ph6hoaFWvYanpyd69eqFyZMn45tvvsFrr72GmTNn4vr16yafc/nyZYwePRr79+83fP322284fvw44uLicOXKFSQnJ8Pf3x8ff/wx9uzZgy+++AIAal3X09PT8Hf97K3qVCoVdDqdxfXx9fVFfHw8OnTogBUrVmDXrl1Yvny54fE5c+bgnXfeweTJk/H9999j//79SE5ONltfIrKvRlIXgIjkb9asWejYsSNat25tOPboo49i2LBh+PLLL/Hggw/a9fXatm2LGzdu4OrVq9BoNNBoNLVaNBISEnD48GHEx8fXeY0DBw6guLgYs2bNMoyf+c9//mPXclrCw8MDU6ZMQVpaGoYNGwYfHx/s2LEDDz74IB5//HEAgE6nw7Fjx9C2bVvD8+qqc0233HILduzYYXRsx44duPnmm6FWq+1fGSI3whYgIqrXrbfeisceewwLFiwwHBs6dCgefvhhDB06FK+99hp27dqF/Px8/PDDD1izZo3FN+DevXvj3XffRW5uLvLz87F582ZMmTIFd911F/z9/QFUrQP0448/4uzZs7h48SIAYPLkyfjll1+QmpqK/fv34/jx4/jyyy8Ng6CbN28OjUaDhQsX4s8//8RXX31Vb7eaozzyyCNQq9VYvHgxgKrWs23btuGXX37BkSNHMHr0aBQVFRk9JyYmxvCeXrx4sc4WqBdeeAE5OTmYOXMmjh07hlWrVmHRokV48cUXnVIvIlfGAEREFnnttdeMbsIqlQpr1qxBZmYmNm/ejHvuuQetW7fGU089hejoaPz8888WXTc5ORmrVq3Cfffdh1tuuQXPP/88kpOT8emnnxq9dn5+PuLi4hASEgKgatzODz/8gGPHjqFXr17o1KkTpk6dioiICABV3XFZWVn47LPP0LZtW8yaNQtz58614ztiuUaNGiE1NRVvvfUWrly5gn//+99ISEhAcnIyevfujWbNmmHgwIFGz3nxxRehVqvRtm1bhISE1Dk+KCEhAZ9++ilWr16N9u3bY+rUqXjttdfqnOlGRMZUQgghdSGIiIiInIktQERERKQ4DEBE5FDVp6nX/Prpp5+kLp5VTp06ZbY+1k5jJyLpsAuMiBzK3KaokZGR8PHxcWJpGubGjRvIz883+XhMTAwaNeLkWiJXwABEREREisMuMCIiIlIcBiAiIiJSHAYgIiIiUhwGICIiIlIcBiAiIiJSHAYgIiIiUhwGICIiIlIcBiAiIiJSnP8P7KDUFNLw03cAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_23.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_24.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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h4cLb29v0bx5c3HLLbeIJUuWiPLycqvzr1y5ImbOnCk6duwovLy8RNu2bcWDDz4ozpw5YzlnzZo1okuXLsLb21tERUWJdevWWaaZV/fTTz+J/v37C19fXwHAakr8vHnzRPv27YVara4xJX7r1q3ijjvuEC1atBAtWrQQUVFR4qmnnhInT560emzqWyLgeuby/f777/Wed/00eLMVK1aIqKgo4eXlJYKDg8UTTzwh/vjjD6tzLl++LEaPHi1atWolAHBKPNF1VEI4YNMZIiIiIjfCMUBERESkOAxAREREpDgMQERERKQ4DEBERESkOAxAREREpDgMQERERKQ4XAixFiaTCb/99hv8/Py4nDwREZGbEEKgtLQUISEhUKvrb+NhAKrFb7/9hrCwMKmLQURERI3w66+/IjQ0tN5zGIBq4efnB6DqAaxvXyMiIiKSj5KSEoSFhVnex+vDAFQLc7eXv78/AxAREZGbsWX4CgdBExERkeIwABEREZHiMAARERGR4nAMEBERkYMYjUZUVlZKXQyP5eXlBY1G45BrMQARERE1kRAChYWFuHTpktRF8XitWrVC27Ztm7xOHwMQERFRE5nDT1BQEJo3b85FdJ1ACIErV67gwoULAIB27do16XoMQERERE1gNBot4ScwMFDq4ng0X19fAMCFCxcQFBTUpO4wDoImIiJqAvOYn+bNm0tcEmUwP85NHWvFAEREROQA7PZyDUc9zgxAREREpDgMQERERKQ4DEAylp8P7N9f9S8REZGjPfLII1CpVFCpVPDy8kJwcDDuuusurF27FiaTyebrZGZmolWrVs4rqBNwFphMrVkDJCcDJhOgVgNvvAGMHy91qYiIyBn0ej0qKirqvF2r1TpthtmgQYOwbt06GI1GFBUVISsrC5MnT8b777+PnTt3olkzz4wKnlkrN6bX65GXdw3JyUEwmaoGeplMwMSJAjExFxAR0YzTLImIPIher8eKFSsaPC8lJcUpr//e3t5o27YtAKB9+/bo2bMnbrvtNvzlL39BZmYmHnvsMSxbtgzr1q3DL7/8goCAAAwdOhSLFy9Gy5YtceDAASQlJQH4c4Dy7NmzMWfOHGzYsAGvvvoqTp48iRYtWmDgwIFIT09HUFCQw+thL3aByYj5jyAjI8sSfsyMRhUyMj7EihUroNfrJSohERE5Wn0tP405zxEGDhyI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dGwBIqI6LVq0COvXr8eJEycaPHfmzJk4fvw4Zs2ahcuXL9t0/f79++OXX35BdnY2HnzwQfzwww/o168f5s2bV+/9vvnmG2RmZqJly5aWr8TERJhMJuTm5gKoaiEZOnQoOnToAD8/PwwYMAAAcO7cOatrde/e3fL/4OBgNG/eHJ06dbI6duHCBZvqAwB33nknjh8/jqNHj2LcuHFISkrCAw88YLndaDRi3rx5uPnmmxEQEICWLVvio48+qlGuhpw4cQK333671bHbb78dp06dgtFotOtaRErEAEREderfvz8SExMxY8YMq+NdunTByZMnrY61adMGnTt3RlBQkF0/w8vLC/369cP06dPx8ccf48UXX8S8efNQUVFR530uX76MiRMn4vjx45avb775BqdOnUJkZCTKysqQmJgIf39/bNy4EV999RW2b98OADWu6+XlZfm/efZWdSqVCiaTyeb6tGjRAp07d0aPHj2wdu1aHD16FGvWrLHcvmTJErz66quYPn069u/fj+PHjyMxMbHe+hKR4zWTugBEJG8LFy5ETEwMunbtajk2atQojB49Gh988AGGDRvm0J8XHR2Na9eu4erVq9BqtdBqtTVaNHr27Ikff/wRnTt3rvUa3333HfR6PRYuXGgZP/Of//zHoeW0hVqtxvPPP4/U1FSMHj0avr6+OHToEIYNG4aHH34YAGAymfDzzz8jOjracr/a6ny9G2+8EYcOHbI6dujQIdxwww3QaDSOrwyRh2ELEBHV6+abb8ZDDz2E5cuXW46NHDkSDz74IEaOHIkXX3wRR48eRV5eHj777DNs2bLF5jfg+Ph4vP7668jJyUFeXh727t2L559/HnfeeSf8/f0BVK0D9O9//xvnz5/HxYsXAQDTp0/H4cOHkZKSguPHj+PUqVP44IMPLIOgO3ToAK1Wi4yMDPzyyy/YuXNng91qzvL3v/8dGo0GK1euBFDVevbJJ5/g8OHDOHHiBCZOnIiioiKr+0RERFge04sXL9baAjV16lRkZ2dj3rx5+Pnnn7F+/XqsWLEC//jHP1xSLyJ3xwBERA168cUXrd6EVSoVtmzZgvT0dOzduxd/+ctf0LVrVzz66KMICwvDwYMHbbpuYmIi1q9fj7vvvhs33ngjnn76aSQmJuLdd9+1+tl5eXmIjIxEmzZtAFSN2/nss8/w888/o1+/frjlllswa9YshISEAKjqjsvMzMR7772H6OhoLFy4EEuXLnXgI2K7Zs2aISUlBYsXL0ZZWRn++c9/omfPnkhMTER8fDzatm2L++67z+o+//jHP6DRaBAdHY02bdrUOj6oZ8+eePfdd7F582bcdNNNmDVrFl588cVaZ7oRUU0qIYSQuhBERERErsQWICIiIlIcBiAicprq09Sv//r888+lLp5dzp07V2997J3GTkTSYhcYETlNfZuitm/fHr6+vi4sTdNcu3YNeXl5dd4eERGBZs04sZbIXTAAERERkeKwC4yIiIgUhwGIiIiIFIcBiIiIiBSHAYiIiIgUhwGIiIiIFIcBiIiIiBSHAYiIiIgUhwGIiIiIFOf/Ac3Cvqh1uV0TAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_25.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_26.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHHCAYAAABDUnkqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABaXklEQVR4nO3dd3jT1eIG8DdJJ9CmptBFCy2lMmUUEQoyFQtChUdkCAooWri3FRAVRBwMleFgCsK9QHFUFFmXIUMuBQXlYgEFQWyxBaoFNIW0gJSSnN8f+SUkHWnSZnyTvJ/n6QNJTr45JwHycqZMCCFARERE5CHkrq4AERERkT0x3BAREZFHYbghIiIij8JwQ0RERB6F4YaIiIg8CsMNEREReRSGGyIiIvIoDDdERETkURhuiIiIyKMw3BARuUhGRgZkMhny8/NdXRUij8JwQ+TBjhw5gvT0dLRq1Qp169ZFo0aNMHToUPz6668Vyvbs2RMymQwymQxyuRzBwcFo1qwZnnzySezZs8em1926dSt69OiBsLAw1KlTB02aNMHQoUOxc+dOezWtgrfffhubN2+ucP+hQ4cwY8YMXL161WGvXd6MGTOM76VMJkOdOnXQsmVLvPrqqyguLrbLa2RmZmLhwoV2uRaRp2G4IfJg8+bNw4YNG/DAAw9g0aJFSE1NxYEDB5CYmIiTJ09WKB8dHY2PP/4YH330Ed555x088sgjOHToEB566CEMGzYMZWVl1b7mu+++i0ceeQQymQzTpk3DggULMHjwYOTk5GDdunWOaCYAy+Fm5syZTg03BsuXL8fHH3+M999/H82bN8dbb72Fvn37wh5H+jHcEFXNx9UVICLHmTx5MjIzM+Hn52e8b9iwYbjnnnswd+5cfPLJJ2bllUolnnjiCbP75s6diwkTJmDZsmWIjY3FvHnzqny927dvY/bs2ejTpw92795d4fHLly/XskXScePGDdSpU8dimcceewz169cHAIwfPx6DBw/Gxo0b8f333yMpKckZ1STySuy5IfJgXbp0MQs2AJCQkIBWrVrh9OnTVl1DoVBg8eLFaNmyJZYuXQqNRlNl2b/++gvFxcXo2rVrpY+HhYWZ3b558yZmzJiBu+++GwEBAYiMjMSjjz6Ks2fPGsu8++676NKlC0JDQxEYGIgOHTrgyy+/NLuOTCbD9evXsXbtWuNQ0JgxYzBjxgy89NJLAIC4uDjjY6ZzXD755BN06NABgYGBUKlUGD58OC5cuGB2/Z49e6J169bIzs5G9+7dUadOHbzyyitWvX+mevfuDQDIy8uzWG7ZsmVo1aoV/P39ERUVhbS0NLOep549e2L79u04d+6csU2xsbE214fIU7HnhsjLCCFw6dIltGrVyurnKBQKPP7443jttdfw7bffon///pWWCwsLQ2BgILZu3YrnnnsOKpWqymtqtVoMGDAAe/fuxfDhwzFx4kSUlJRgz549OHnyJOLj4wEAixYtwiOPPIKRI0fi1q1bWLduHYYMGYJt27YZ6/Hxxx/jmWeewX333YfU1FQAQHx8POrWrYtff/0Vn332GRYsWGDsRWnQoAEA4K233sJrr72GoUOH4plnnsGff/6JJUuWoHv37jh27BhCQkKM9VWr1ejXrx+GDx+OJ554AuHh4Va/fwaG0BYaGlplmRkzZmDmzJl48MEH8Y9//ANnzpzB8uXLceTIERw8eBC+vr6YPn06NBoNCgoKsGDBAgBAvXr1bK4PkccSRORVPv74YwFArFq1yuz+Hj16iFatWlX5vE2bNgkAYtGiRRav//rrrwsAom7duqJfv37irbfeEtnZ2RXKrV69WgAQ77//foXHdDqd8fc3btwwe+zWrVuidevWonfv3mb3161bV4wePbrCtd555x0BQOTl5Zndn5+fLxQKhXjrrbfM7j9x4oTw8fExu79Hjx4CgPjwww+rbLepN954QwAQZ86cEX/++afIy8sTK1asEP7+/iI8PFxcv35dCCHEmjVrzOp2+fJl4efnJx566CGh1WqN11u6dKkAIFavXm28r3///qJx48ZW1YfI23BYisiL/PLLL0hLS0NSUhJGjx5t03MNPQMlJSUWy82cOROZmZlo3749du3ahenTp6NDhw5ITEw0GwrbsGED6tevj+eee67CNWQymfH3gYGBxt9fuXIFGo0G3bp1w9GjR22qf3kbN26ETqfD0KFD8ddffxl/IiIikJCQgH379pmV9/f3x1NPPWXTazRr1gwNGjRAXFwcxo0bh6ZNm2L79u1VztX5+uuvcevWLUyaNAly+Z1/np999lkEBwdj+/bttjeUyAt5dbg5cOAAUlJSEBUVBZlMVulKC3uaM2cOOnbsiKCgIISFhWHQoEE4c+aMWZmbN28iLS0NoaGhqFevHgYPHoxLly45tF7kHS5evIj+/ftDqVTiyy+/hEKhsOn5165dAwAEBQVVW/bxxx/HN998gytXrmD37t0YMWIEjh07hpSUFNy8eROAfoimWbNm8PGxPDq+bds2dO7cGQEBAVCpVGjQoAGWL19uce6PNXJyciCEQEJCAho0aGD2c/r06QqTnxs2bFhh/lJ1NmzYgD179iArKwu5ubk4efIkOnToUGX5c+fOAdCHIlN+fn5o0qSJ8XEissyr59xcv34dbdu2xdNPP41HH33U4a+3f/9+pKWloWPHjrh9+zZeeeUVPPTQQzh16hTq1q0LAHj++eexfft2rF+/HkqlEunp6Xj00Udx8OBBh9ePPJdGo0G/fv1w9epVfPPNN4iKirL5Goal402bNrX6OcHBwejTpw/69OkDX19frF27FocPH0aPHj2sev4333yDRx55BN27d8eyZcsQGRkJX19frFmzBpmZmTa3wZROp4NMJsNXX31VadArP4fFtAfJWt27dzfO8yEi5/HqcNOvXz/069evysdLS0sxffp0fPbZZ7h69Spat26NefPmoWfPnjV6vfIbmGVkZCAsLMy4AkOj0WDVqlXIzMw0rqpYs2YNWrRoge+//x6dO3eu0euSd7t58yZSUlLw66+/4uuvv0bLli1tvoZWq0VmZibq1KmD+++/v0b1uPfee7F27VoUFhYC0E/4PXz4MMrKyuDr61vpczZs2ICAgADs2rUL/v7+xvvXrFlToazpUJY198fHx0MIgbi4ONx99922NschGjduDAA4c+YMmjRpYrz/1q1byMvLw4MPPmi8r6p2EZGXD0tVJz09Hd999x3WrVuHn376CUOGDEHfvn2Rk5Njl+sbutUNK0qys7NRVlZm9g9Y8+bN0ahRI3z33Xd2eU3yLlqtFsOGDcN3332H9evX12hvFa1WiwkTJuD06dOYMGECgoODqyx748aNKv+sfvXVVwDuDLkMHjwYf/31F5YuXVqhrPj/Te4UCgVkMhm0Wq3xsfz8/EqHkOvWrVvpRn2GXtHyjz366KNQKBSYOXNmhU31hBBQq9WVN9KBHnzwQfj5+WHx4sVmdVq1ahU0Go3ZKrW6devWemiOyFN5dc+NJefPn8eaNWtw/vx5Yxf+iy++iJ07d2LNmjV4++23a3V9nU6HSZMmoWvXrmjdujUA/ZwIPz8/s+WnABAe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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_27.png" - } - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\r", - "1/3 [=========>....................] - ETA: 0s" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 2ms/step\n" - ] - }, - { - "data": { - "image/png": "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CIIgHDx4UDA3NxcyMzNlz//xxx8CAOH06dOCIAhCcHCw0K9fP0EQBCE6OloICAgQ2rdvL/z444+CIAhCixYthK+++kql2oio5thzQ0Rq+c9//oM7d+4gLi4Offr0QXJyMjp27IjY2NgqX3P+/HksWLBA1vNja2uLMWPGICsrC8XFxQCAw4cP480334Sbmxvq1q2LYcOG4f79+7LngcohpObNm8seOzs7w8PDA7a2tnJtd+/eVfnzDB06FGlpabKf0NBQpcddunQJ7u7ucsNKbdq0gYODAy5dugQA6N69O06cOIGKigocPXoUPXr0QI8ePZCcnIw7d+7g+vXr6NGjh8q1EVHNMNwQkdqsra3Ru3dvzJ07FydPnkRQUBDCwsKqPP7Ro0cIDw+XCxG///47rl27Bmtra2RkZKB///545ZVX8P333+Ps2bOIiYkBAJSWlsrOY2FhIXdeiUSitE0qlar8Wezt7dGiRQvZT8OGDVV+7dO6deuGwsJCnDt3DseOHZMLN0ePHkWjRo3w4osv1vj8RKQaLgkgoufWpk0b2fJvCwsLhQm9HTt2xJUrV9CiRQulrz979iykUimWL18OM7PKf3Pt2rVLqzWrq3Xr1rh16xZu3bol6725ePEi8vLy0KZNGwCAg4MDXnnlFaxevRoWFhZo1aoVnJycEBAQgP3793O+DZGOsOeGiFR2//599OrVC9988w1+++03pKen49tvv8Vnn32GgQMHAqjc+C4pKQnZ2dl4+PAhAGDevHn4+uuvER4ejj/++AOXLl3Cjh07MGfOHABAixYtUFZWhs8//xw3b97Eli1bsHbtWtE+pzK+vr5o164dhg4dinPnzuH06dMIDAxE9+7d0blzZ9lxPXr0wNatW2VBpn79+mjdujV27tzJcEOkIww3RKQyW1tbeHl5YcWKFejWrRvatm2LuXPnYsyYMVi9ejUAYPny5Th06BDc3d3h6ekJAPDz88P+/ftx8OBBdOnSBa+++ipWrFiBJk2aAADat2+PqKgoLFmyBG3btsXWrVsREREh2udURiKRYN++fahXrx66desGX19fNGvWDDt37pQ7rnv37qioqJCbW9OjRw+FNiLSHokgCILYRRARERFpCntuiIiIyKgw3BCRUTp+/Ljc0vOnf4jIeHFYioiM0t9//43bt29X+XxVK7eIyPAx3BAREZFR4bAUERERGRWGGyIiIjIqDDdERERkVBhuiIiIyKgw3BAREZFRYbghIiIio8JwQ0REREaF4YaIiIiMyv8BoCo85YzFrLIAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_30.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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DkZhYWGFoSkvLw8qlQoqlQrr1q1DkyZNkJmZCZVKhcLCQqPVSURElmH//v3Yu3ev9Pipp55CcHCw2SwWbLLQlJKSghs3bqBr165SW3FxMfbv34/ly5cjPj4ehYWFyM7O1hptun79ujTF4+7urnOVW9nVdeX7PHzF3fXr16FQKGBvbw9ra2tYW1vr7fPwVFJ5crkccrm88m/8/5PJZEabJjOFPXv24NSpU5gxYwZSUlJQUlKCL774AlZWpdcWbN68Wau/ra2tzlUP586dw61btxATEyMFzmPHjtXMGyAiIrNRXFyMmJgYrSuyX375ZZ0LxEzNZFfP9e/fH6dOnUJqaqr0061bN4wbN0763cbGBomJidJz0tPTkZmZCaVSCQBQKpU4deqU1tVWCQkJUCgU0tSOUqnU2kdZn7J92NrawtfXV6tPSUkJEhMTpT51XUFBAdRqNf766y/8/vvv+PTTTzF8+HAMGTIE48ePh5eXFx48eIAvv/wSf/75J/71r39h1apVWvto1aoVcnNzkZiYiP/973+4d+8eWrRoAVtbW+l5cXFx+Oijj0z0LomIyBSuX7+Ojz/+WCswzZw50+wCEwDTXz1XXvmr54QQYvLkyaJFixZiz5494tixY0KpVAqlUiltLyoqEh06dBADBgwQqampYvfu3aJJkyYiIiJC6vPnn38KBwcHMWvWLHH27FmxYsUKYW1trXUG/saNG4VcLhexsbHizJkzYtKkScLFxUXrqrzHqezVc5YiMDBQABAARL169USTJk2Ev7+/WL16tSguLpb6LVq0SDRt2lTY29sLlUol/vnPfwoA4s6dO1KfyZMni0aNGgkAIjIyUgghxPr160WrVq2EXC4XSqVSxMXFCQDi+PHjNftGq4El/70TEdWExMREravjYmNja7yGylw9JxNCCBNmNi19+vRBly5dsGTJEgCli1vOnDkTGzZsQEFBAVQqFb766iutabPLly9jypQpSEpKgqOjIwIDAxETE4N69f6eeUxKSsKMGTNw5swZNG/eHB9++CGCgoK0Xnv58uVYuHAh1Go1unTpgmXLlsHPz8/g2jUaDZydnZGTkwOFQqG1LT8/HxkZGfD09LTI87eoavj3TkSkX3Fxsc6aS//4xz9McgHQo76/H2ZWocmSMTTRw/j3TkSk69q1a/j222+12mbNmvXIK60BIC4OiIkBwsOBYcOMV09lQpPJ12kiIiKiuuGXX37RWgPRy8sL48aNM+i5MTFAcnLpn8YMTZXB0ERERETVqqioCJ988olW25gxY+Dt7W3wPsLD/x5pMhWGJiIiIqo2V69exffff6/VNnv2bNjb21dqP8OGmW6EqQxDExEREVWLnTt3at31o23btnj11VdNWNGTYWgiIiIio3rw4AE+/fRTrbZx48bBy8vLRBUZB0MTERERGc3ly5cRGxur1RYeHv5Ed9EwFwxNREREZBQ///wzUlNTpcedOnXCyy+/bLqCjIyhiYiIiJ5IYWEhoqOjtdrGjx8PT09PE1VUPUx27zmi8oKCgjBixAjpcZ8+fTB9+vQn2qcx9kFERI/2559/6gSmiIiIWheYAI400WMEBQVh7dq1AAAbGxu0aNEC48ePx5w5c7RuVWNsP/30E2xsbAzqm5SUhL59++LOnTtwcXGp0j6IiKjyfvzxR6SlpUmPfXx8MMzU6wJUI4YmeqyBAwdizZo1KCgowM6dOxESEgIbGxtERERo9SssLIStra1RXrNhw4ZmsQ8iItKVn5+P//u//9Nqe/PNN9GiRQsTVVQzOD1HjyWXy+Hu7o6WLVtiypQp8Pf3R1xcnDSl9sknn6BZs2bSyq5XrlzBq6++ChcXFzRs2BDDhw/HpUuXpP0VFxcjNDQULi4uaNSoEWbPno2Hb4H48NRaQUEBwsLC4OHhAblcDi8vL3z//fe4dOkS+vbtCwBo0KABZDKZdDPmh/dx584djB8/Hg0aNICDgwMGDRqE8+fPS9tjY2Ph4uKC+Ph4tG3bFk5OThg4cCCysrKkPklJSejRowccHR3h4uKC5557DpcvXzbSkSYiMn8HDhzQCUxz5syp9YEJYGiiKrC3t0dhYSEAIDExEenp6UhISMD27dvx4MEDqFQq1K9fH7/99hsOHjwohY+y53zxxReIjY3F6tWrceDAAdy+fRtbt2595GuOHz8eGzZswLJly3D27Fl8/fXXcHJygoeHB3788UcAQHp6OrKysrB06VK9+wgKCsKxY8cQFxeH5ORkCCEwePBgPHjwQOpz7949fP755/jXv/6F/fv3IzMzE++//z6A0tsAjBgxAi+++CJOnjyJ5ORkTJo0CTKZ7ImPKRGRJYiKikJiYqL0uEePHoiMjKwzp0Jweo4MJoRAYmIi4uPjMW3aNNy8eROOjo747rvvpGm5f//73ygpKcF3330nhYk1a9bAxcUFSUlJGDBgAJYsWYKIiAiMHDkSALBq1SrEx8dX+Lp//PEHNm/ejISEBPj7+wMAnn76aWl72TScq6ur1jlN5Z0/fx5xcXE4ePAgevXqBQBYt24dPDw8sG3bNvzjH/8AULog26pVq9C6dWsAwNSpU7FgwQIApXfCzsnJwZAhQ6Ttbdu2rfyBJCKyMLdv38aXX36p1RYUFISWLVuaqCLT4EiTBYqLA3r1Kv2zJmzfvh1OTk6ws7PDoEGDMHr0aMyfPx8A0LFjR63zmE6cOIELFy6gfv36cHJygpOTExo2bIj8/HxcvHgROTk5yMrKgp+fn/ScevXqoVu3bhW+fmpqKqytrfHiiy9W+T2cPXsW9erV03rdRo0awdvbG2fPnpXaHBwcpEAEAE2bNsWNGzcAlIazoKAgqFQqDB06FEuXLtWauiMiqo0WLlyoE5jCw8PrXGACONJkkWJigOTk0j9r4iKFvn37YuXKlbC1tUWzZs20rppzdHTU6pubmwtfX1+sW7dOZz9NmjSp0utX9qaOT+LhIWaZTKZ1vtWaNWvw7rvvYvfu3di0aRPmzp2LhIQE9OzZs8ZqJCKqKVFRUTptkZGRJqjEPHCkyQKFhwNKZemfNcHR0RFeXl5o0aLFY5cZ6Nq1K86fPw9XV1d4eXlp/Tg7O8PZ2RlNmzbF4cOHpecUFRUhJSWlwn127NgRJSUl2Ldvn97tZSNdxcXFFe6jbdu2KCoq0nrdW7duIT09He3atXvke3qYj48PIiIicOjQIXTo0AHr16+v1POJiMxdZmamTmAqO3+pLmNoskDDhgGHDtXMKFNljRs3Do0bN8bw4cPx22+/ISMjA0lJSXj33Xdx9epVAMB7772HmJgYbNu2DefOncM777yD7OzsCvfZqlUrBAYGYsKECdi2bZu0z82bNwMAWrZsCZlMhu3bt+PmzZvIzc3V2cczzzyD4cOHY+LEiThw4ABOnDiB119/HU899RSGDx9u0HvLyMhAREQEkpOTcfnyZfzyyy84f/48z2siololKioKa9as0WoLCwvDoEGDANT8KSLmhKGJjMrBwQH79+9HixYtMHLkSLRt2xbBwcHIz8+HQqEAAMycORNvvPEGAgMDoVQqUb9+/cfem2jlypV45ZVX8M4776BNmzaYOHEi8vLyAABPPfUUoqKiEB4eDjc3N0ydOlXvPtasWQNfX18MGTIESqUSQgjs3LnT4Ks+HBwccO7cOYwaNQrPPvssJk2ahJCQELz99tuVOEJEROZJCFHhdJydnZ30uPwpInWNTDy8QA5ViUajgbOzM3JycqRwUCY/Px8ZGRnw9PTU+uBR7ca/dyKyFBcuXNA5F/WFF15Av379AJSOKsXE/H1aSNnv5jjjUVmP+v5+GE8EJyIiqsP0jS5FRERoXRldfnTJXE8PqQmcniMiIqqDHjUd9/AtsWr6AiRzxZEmIiKiOubs2bPSxTRl/P398dxzz+ntP2xY3R1dKo+hiYiIqA7RN7r0wQcfPHZJGWJoqlE8575u4d83EZmTkpISfPTRRzrtdX3tpcpgaKoBZZe037t3r0ZXtybTKrtBsbW1tYkrIaK67sSJE9i2bZtW2+DBg9G9e3fTFGShGJpqgLW1NVxcXKR7mDk4OEg3s6XaqaSkBDdv3oSDgwOHvInIpPRNx82dO5f/Q1cF/Ne8hri7uwOAFJyo9rOyskKLFi0YkInIJIqLi/Hxxx/rtHM6ruoYmmqITCZD06ZN4erqigcPHpi6HKoBtra2sLLiqh5EVPN++eUXJCcna7W9/PLL6NSpk4kqqh0YmmqYtbU1h0SJiKja6JuOmzdvHke9jYChiYiIqBYoLCxEdHS0Tjun44yHoYmIiMjCrV69GleuXNFqGzRoEHr06GGiimonnnBBRERkwaKionQC07x586BW90CvXqU32yXjYGgiIiKyQLm5uXrPX4qPj8R//iPTuskuGQen54iIiCyMvrDk7++PWbOek4JSePjff5JxMDQRERFZkEddHVc+KPEmu8bH0ERERGQBbt26heXLl+u0l786jkGpejE0ERERmTl9o0tKpRIDBgxAXJz26BJVH4YmIiIiM6YvMPn4RGL+fCA/H1onfDM0VS+GJiIiIjOUlZWFb775Rqc9MjISvXqBJ3ybAEMTERGRmdE3utS/f388//zzAMATvk2EoYmIiMiM6AtMD98KhUHJNBiaiIiIzMClS5ewdu1anXbeO858MDQRERGZmL7RpaFDh6Jr164mqIYqwtBERERkQhVdHce8ZH5Meu+5lStXolOnTlAoFFAoFFAqldi1a5e0vU+fPpDJZFo/kydP1tpHZmYmAgIC4ODgAFdXV8yaNQtFRUVafZKSktC1a1fI5XJ4eXkhNjZWp5YVK1agVatWsLOzg5+fH44cOVIt75mIiAgAzp07pzcwzZ8fyfvFmSmTjjQ1b94cMTExeOaZZyCEwNq1azF8+HAcP34c7du3BwBMnDgRCxYskJ7j4OAg/V5cXIyAgAC4u7vj0KFDyMrKwvjx42FjY4NPP/0UAJCRkYGAgABMnjwZ69atQ2JiIt566y00bdoUKpUKALBp0yaEhoZi1apV8PPzw5IlS6BSqZCeng5XV9caPCJERFQX6AtLr776Ks6fbwulkssHmCuZEEKYuojyGjZsiIULFyI4OBh9+vRBly5dsGTJEr19d+3ahSFDhuDatWtwc3MDAKxatQphYWG4efMmbG1tERYWhh07diAtLU163pgxY5CdnY3du3cDAPz8/NC9e3dpefqSkhJ4eHhg2rRpCDfwk6vRaODs7IycnBwoFIonOAJERFSbGXJ1HNWcynx/m3R6rrzi4mJs3LgReXl5UCqVUvu6devQuHFjdOjQAREREbh37560LTk5GR07dpQCEwCoVCpoNBqcPn1a6uPv76/1WiqVCsnJyQCAwsJCpKSkaPWxsrKCv7+/1EefgoICaDQarR8iIqKKHD58mIHJwpn8RPBTp05BqVQiPz8fTk5O2Lp1K9q1awcAeO2119CyZUs0a9YMJ0+eRFhYGNLT0/HTTz8BANRqtVZgAiA9VqvVj+yj0Whw//593LlzB8XFxXr7nDt3rsK6o6Oj9X74iYiIHqbv+2L8+PHw9PQ0QTVUVSYPTd7e3khNTUVOTg5++OEHBAYGYt++fWjXrh0mTZok9evYsSOaNm2K/v374+LFi2jdurUJqwYiIiIQGhoqPdZoNPDw8DBhRUREZI70BabCwkgwL1kek4cmW1tbeHl5AQB8fX1x9OhRLF26FF9//bVOXz8/PwDAhQsX0Lp1a7i7u+tc5Xb9+nUAgLu7u/RnWVv5PgqFAvb29rC2toa1tbXePmX70Ecul0Mul1fy3RIRUV2xc+dOHD16VKd9/vxIlDsLhSyI2ZzTVKakpAQFBQV6t6WmpgIAmjZtCgBQKpU4deoUbty4IfVJSEiAQqGQpviUSiUSExO19pOQkCCdN2VrawtfX1+tPiUlJUhMTNQ6t4qIiMhQUVFROoFp/Pjx8PGJ5NVxFsykI00REREYNGgQWrRogbt372L9+vVISkpCfHw8Ll68iPXr12Pw4MFo1KgRTp48iRkzZqB3797o1KkTAGDAgAFo164d3njjDXz22WdQq9WYO3cuQkJCpFGgyZMnY/ny5Zg9ezYmTJiAPXv2YPPmzdixY4dUR2hoKAIDA9GtWzf06NEDS5YsQV5eHt58802THBciIrJcjzrZ29OT94yzZCYNTTdu3MD48eORlZUFZ2dndOrUCfHx8XjppZdw5coV/Prrr1KA8fDwwKhRozB37lzp+dbW1ti+fTumTJkCpVIJR0dHBAYGaq3r5OnpiR07dmDGjBlYunQpmjdvju+++05aowkARo8ejZs3b2LevHlQq9Xo0qULdu/erXNyOBERUUVWr16NK1eu6LTz6rjaw+zWabJUXKeJiKju0je65O09EWPGNDNBNVQZlfn+NvmJ4ERERJZKCKE1u1GGo0u1E0MTERFRFSxatAh3797VaWdgqr0YmoiIiCpJ33Tc1KlT0ahRIxNUQzWFoYmIiMhAnI6r2xiaiIiIDFDRrbMYmOoOhiYiIqLH0BeYQkNDUb9+fRNUQ6bC0ERERFSB4uJifPzxxzrtHF2qmxiaiIiI9OB0HD2MoYmIiOgh+gJTWFgY7OzsTFANmQuGJiIiov+voKAAMTExOu0cXSKAoYmIiAgAp+Po8RiaiIioztMXmD744APUq8evSfqblakLICIiqklxcUCvXqV/5ubm6g1MkZGRDEykg58IIiKqU2bPBtLTgePHo3D8uO52TsdRRRiaiIioTpHJgPnzdUeXPvzwQ1hZcQKGKsbQREREdcatW7cwZsxynXaOLpEhGJqIiKhO0Hfukp2dHcLCwkxQDVkihiYiIqq14uKAmBhApdINTPPmzYNMJjNBVWSpGJqIiKjWWrnyL6hU3+m0czqOqoKhiYiIaqWoqCj07KndplAoMGPGDNMURBaPoYmIiGqditZeInoSDE1ERFRrnDt3Dps2bdJpZ2AiY2BoIiKiWkHf6JKrqyumTJligmqoNmJoIiIii8fpOKoJDE1ERGSxjh07hh07dui0MzBRdWBoIiIii6RvdKlt27Z49dVXTVAN1QUMTUREZHE4HUemwNBERERmLS4OCAsDhABmzNgLtXq/Th8GJqoJDE1ERGTWYmKAc+eA+fOjoFZrb/Pz88PAgQNNUxjVOQxNRERk1sLDgePHOR1HpsfQREREZmvz5s04e/asTjsDE5kCQxMREZklfSd7v/TSS+jVq5cJqiFiaCIiIjMQFwfMng3IZMD//R+n48g8MTQREZHJxcQA6enAlCkrcfz4DZ3tDExkDhiaiIjI5Co62XvYsGHw8fExQUVEuqxMXQAREdU9cXFAr16lfwIVT8cxMJE54UgTERHVuJgYIDm5NCwdP667ndNxZI4YmoiIqMZVNB03evRotGnTxgQVET0eQxMREdU4Xh1HloihiYiIaoy+tZcABiayDAxNRERUI/QFpqCgILRs2dIE1RBVHkMTERFVKyEEFixYoNPO0SWyNAxNRERUbTgdR7UJQxMREVULfYFpypQpcHV1NUE1RE+OoYmIiIyqqKgIn3zyiU47R5fI0pl0RfCVK1eiU6dOUCgUUCgUUCqV2LVrl7Q9Pz8fISEhaNSoEZycnDBq1Chcv35dax+ZmZkICAiAg4MDXF1dMWvWLBQVFWn1SUpKQteuXSGXy+Hl5YXY2FidWlasWIFWrVrBzs4Ofn5+OHLkSLW8ZyKi2iwqKoqBiWotk4am5s2bIyYmBikpKTh27Bj69euH4cOH4/Tp0wCAGTNm4D//+Q+2bNmCffv24dq1axg5cqT0/OLiYgQEBKCwsBCHDh3C2rVrERsbi3nz5kl9MjIyEBAQgL59+yI1NRXTp0/HW2+9hfj4eKnPpk2bEBoaisjISPz+++/o3LkzVCoVbtzQvWkkERHpp286bsaMGQxMVGvIhBDC1EWU17BhQyxcuBCvvPIKmjRpgvXr1+OVV14BAJw7dw5t27ZFcnIyevbsiV27dmHIkCG4du0a3NzcAACrVq1CWFgYbt68CVtbW4SFhWHHjh1IS0uTXmPMmDHIzs7G7t27AQB+fn7o3r07li9fDgAoKSmBh4cHpk2bhvDwcIPq1mg0cHZ2Rk5ODhQKhTEPCRGRWbt37x4WLlyo086wRJagMt/fZnPD3uLiYmzcuBF5eXlQKpVISUnBgwcP4O/vL/Vp06YNWrRogeTkZABAcnIyOnbsKAUmAFCpVNBoNNJoVXJystY+yvqU7aOwsBApKSlafaysrODv7y/10aegoAAajUbrh4ioromKimJgojrD5CeCnzp1CkqlEvn5+XBycsLWrVvRrl07pKamwtbWFi4uLlr93dzcoFarAQBqtVorMJVtL9v2qD4ajQb379/HnTt3UFxcrLfPuXPnKqw7Ojq6wktpiYjqAn3/BoaFhcHOzs4E1RBVP5OPNHl7eyM1NRWHDx/GlClTEBgYiDNnzpi6rMeKiIhATk6O9HPlyhVTl0REVCPu3LmjNzBFRkYyMFGtZvKRJltbW3h5eQEAfH19cfToUSxduhSjR49GYWEhsrOztUabrl+/Dnd3dwCAu7u7zlVuZVfXle/z8BV3169fh0KhgL29PaytrWFtba23T9k+9JHL5ZDL5VV700REFiIuDoiJAcLDgWHDuFgl1W0mH2l6WElJCQoKCuDr6wsbGxskJiZK29LT05GZmQmlUgkAUCqVOHXqlNZVbgkJCVAoFGjXrp3Up/w+yvqU7cPW1ha+vr5afUpKSpCYmCj1ISKqq2JigOTk0j/1Baa5c+cyMFGdYdKRpoiICAwaNAgtWrTA3bt3sX79eiQlJSE+Ph7Ozs4IDg5GaGgoGjZsCIVCgWnTpkGpVKJnz54AgAEDBqBdu3Z444038Nlnn0GtVmPu3LkICQmRRoEmT56M5cuXY/bs2ZgwYQL27NmDzZs3Y8eOHVIdoaGhCAwMRLdu3dCjRw8sWbIEeXl5ePPNN01yXIiIzEV4OPDVV9egVH6rs41hieoak4amGzduYPz48cjKyoKzszM6deqE+Ph4vPTSSwCAxYsXw8rKCqNGjUJBQQFUKhW++uor6fnW1tbYvn07pkyZAqVSCUdHRwQGBmrdGNLT0xM7duzAjBkzsHTpUjRv3hzfffcdVCqV1Gf06NG4efMm5s2bB7VajS5dumD37t06J4cTEdU1x49HQd+gOwMT1UVmt06TpeI6TURU2+ibjps3bx5kMpkJqiGqHha5ThMREdW8uDigV6/SP8ucP3++wqvjGJioLqv0SJO1tTWysrJ07lJ969YtuLq6ori42KgFWgqONBGRJWrTBkhPB7y9gXPneHUc1T2V+f6u9DlNFWWsgoIC2NraVnZ3RERkQmUDRzKZ/sDEsET0N4ND07JlywAAMpkM3333HZycnKRtxcXF2L9/P9q0aWP8ComIyOjK1l8aORI4fz4F7dtv1+nDwESkzeDQtHjxYgClI02rVq2CtbW1tM3W1hatWrXCqlWrjF8hEREZXdn6SypVFNq3193OwESky+DQlJGRAQDo27cvfvrpJzRo0KDaiiIiouoVHl66nMDDGJaIKlbpq+f27t3LwEREZEEevkIuLi6OgYmoCip9IviECRMeuX316tVVLoaIiIyv/K1Q9IUlgIGJyBCVDk137tzRevzgwQOkpaUhOzsb/fr1M1phRET05OLigNu3S5cWUKk4ukT0JCodmrZu3arTVlJSgilTpqB169ZGKYqIiIwjJgZ4/vnv4eFxVWcbAxNR5RhlRXArKyuEhoZKV9gREZF5UKmidAKTg4MDAxNRFRjthr0XL15EUVGRsXZHRERPiItVEhlXpUNTaGio1mMhBLKysrBjxw4EBgYarTAiIqqazz//HHl5eTrtDExET6bSoen48eNaj62srNCkSRN88cUXj72yjoiIjKtsZe/wcGDYMP2jS88++yzGjh1rguqIapdK37CX9OMNe4nIFMrfcHfsWE7HEVVWtd6wt8yNGzeQnp4OAPD29oarq2tVd0VERFUkkwHz53PtJaKaUOnQpNFoEBISgg0bNqCkpAQAYG1tjdGjR2PFihVwdnY2epFERKTfmDG6gUmpVGLAgAEmqIaodqv0kgMTJ07E4cOHsWPHDmRnZyM7Oxvbt2/HsWPH8Pbbb1dHjUREdd7Dt0IBKr46joGJqHpU+pwmR0dHxMfH4/nnn9dq/+233zBw4EC9V2zUBTyniYiqU69epbdCUSr1r+wNcDqOqCqq9ZymRo0a6Z2Cc3Z25o18iYiqSXh46VVy+gJT//79df5HloiMr9LTc3PnzkVoaCjUarXUplarMWvWLHz44YdGLY6IqK56eDpu2LCK7x3HwERUMyo9Pefj44MLFy6goKAALVq0AABkZmZCLpfjmWee0er7+++/G69SM8fpOSIyJk7HEdWMap2eGz58OGQyWZWLIyKix3vUdNyoUaPQoUMHE1RFVLdxcUsj4UgTERmTEAILFizQaefoEpFxVetI09NPP42jR4+iUaNGWu3Z2dno2rUr/vzzz8rukoiIytG3lADAwERkapU+EfzSpUsoLi7WaS8oKMDVq1eNUhQRUV1g6NpLQUFBDExEZsDgkaa4cv9Vx8fHay07UFxcjMTERHh6ehq3OiKiWiwmpvRk75gYYNCgB/j00091+jAsEZkPg89psrIqHZSSyWR4+Ck2NjZo1aoVvvjiCwwZMsT4VVoAntNERJUVF1fxyd4AAxNRTaiWc5rK7jPn6emJo0ePonHjxk9WJRFRHTdsGHD8uG5gmjp1qs55o0RkepU+ETwjI6M66iAiqlPy8vLw+eef67RzdInIfFU6NOm7BLa8efPmVbkYIqK6gFfHEVmmSoemrVu3aj1+8OABMjIyUK9ePbRu3ZqhiYjoEfQFpvfffx+Ojo4mqIaIKqPSoen48eM6bRqNBkFBQXj55ZeNUhQRUW3zv//9DytWrNBp5+gSkeUw2orgp06dwtChQ3Hp0iVj7M7i8Oo5IqoIp+OIzFe1rghekZycHOTk5Bhrd0REtYK+wPTBBx+gXj2j/fNLRDWk0v/VLlu2TOuxEAJZWVn417/+hUGDBhmtMCIiS3bp0iWsXbtWp52jS0SWq9KhafHixVqPrays0KRJEwQGBiIiIsJohRERWYKyBSrDw0vXXQI4HUdUWxntnKa6juc0EdVNvXqV3gpFqQQOHdIfmObNmweZTGaC6ojocar9nKbs7GxcuHABAODl5QUXF5eq7IaIyOL17QucOgX0738CUVHbdLZzdImo9rCqTOdLly4hICAAjRs3hp+fH/z8/NC4cWMMGTKkzl41R0R12969wPvvR6FevW062xiYiGoXg0early5gp49e8LGxgYfffQR2rZtCwA4c+YMVq5cCaVSiaNHj6J58+bVViwRkbnRd7NdhiWi2sngc5qCg4Nx4cIFxMfHw87OTmvb/fv3MXDgQDzzzDP47rvvqqVQc8dzmojqln379iEpKUmnnYGJyLJUyzlNu3fvxqZNm3QCEwDY29vjo48+wpgxYypfLRGRheHVcUR1k8Gh6X//+x9atWpV4fann34at2/fNkZNRERmp2xpAU7HEdVdBp8I3rRpU5w5c6bC7WlpaXB3dzdKUURE5mbHjp8YmIjqOIND04gRI/D+++/j5s2bOttu3LiBsLAwjBgxolIvHh0dje7du6N+/fpwdXXFiBEjkJ6ertWnT58+kMlkWj+TJ0/W6pOZmYmAgAA4ODjA1dUVs2bNQlFRkVafpKQkdO3aFXK5HF5eXoiNjdWpZ8WKFWjVqhXs7Ozg5+eHI0eOVOr9EFHtFBUVhWbNTum0MzAR1S0GT89FRkZi586daN26NV5//XW0adMGQgicPXsW69evh7u7O+bNm1epF9+3bx9CQkLQvXt3FBUVYc6cORgwYADOnDkDR0dHqd/EiROxYMEC6bGDg4P0e3FxMQICAuDu7o5Dhw4hKysL48ePh42NDT799FMAQEZGBgICAjB58mSsW7cOiYmJeOutt9C0aVOoVCoAwKZNmxAaGopVq1bBz88PS5YsgUqlQnp6OlxdXSv1voio9tB3/hLDElHdVKkVwe/cuYM5c+Zg06ZNyM7OBgC4uLjg1VdfxaeffoqGDRs+UTE3b96Eq6sr9u3bh969ewMoHWnq0qULlixZovc5u3btwpAhQ3Dt2jW4ubkBAFatWoWwsDDcvHkTtra2CAsLw44dO5CWliY9b8yYMcjOzsbu3bsBAH5+fujevTuWL18OACgpKYGHhwemTZuG8PDwx9bOq+eIapfly5fj1q1bOu0MTES1S2W+vyu1uGWDBg2wcuVK3Lp1C2q1Gmq1Grdu3cKqVaueODABQE5ODgDo7GvdunVo3LgxOnTogIiICNy7d0/alpycjI4dO0qBCQBUKhU0Gg1Onz4t9fH399fap0qlQnJyMgCgsLAQKSkpWn2srKzg7+8v9XlYQUEBNBqN1g8R1Q5RUVEMTESko0q3UZHJZEafsiopKcH06dPx3HPPoUOHDlL7a6+9hpYtW6JZs2Y4efIkwsLCkJ6ejp9++gkAoFartQITAOmxWq1+ZB+NRoP79+/jzp07KC4u1tvn3LlzeuuNjo6u8LJjIrIscXHA7NmATAaMGcPpOCLSr0qhqTqEhIQgLS0NBw4c0GqfNGmS9HvHjh3RtGlT9O/fHxcvXkTr1q1rukxJREQEQkNDpccajQYeHh4mq4eIqi4mBhg7lmsvEdGjmUVomjp1KrZv3479+/c/9jYsfn5+AIALFy6gdevWcHd317nK7fr16wAgLYHg7u4utZXvo1AoYG9vD2tra1hbW+vtU9EyCnK5HHK53PA3SURmS99SAg0aNMC7775rgmqIyFxV6pwmYxNCYOrUqdi6dSv27NkDT0/Pxz4nNTUVQOm6UQCgVCpx6tQp3LhxQ+qTkJAAhUKBdu3aSX0SExO19pOQkAClUgkAsLW1ha+vr1afkpISJCYmSn2IqHaq6Oo4BiYiephJR5pCQkKwfv16/Pzzz6hfv750DpKzszPs7e1x8eJFrF+/HoMHD0ajRo1w8uRJzJgxA71790anTp0AAAMGDEC7du3wxhtv4LPPPoNarcbcuXMREhIijQRNnjwZy5cvx+zZszFhwgTs2bMHmzdvxo4dO6RaQkNDERgYiG7duqFHjx5YsmQJ8vLy8Oabb9b8gSGiasdboRBRZRm05MCyZcsM3mFl/u9MJpPpbV+zZg2CgoJw5coVvP7660hLS0NeXh48PDzw8ssvY+7cuVqXBV6+fBlTpkxBUlISHB0dERgYiJiYGNSr93cmTEpKwowZM3DmzBk0b94cH374IYKCgrRed/ny5Vi4cCHUajW6dOmCZcuWSdOBj8MlB4gsh77A1LZtW7z66qsmqIaITKky398GhSZDps2A0hD0559/GlZlLcPQRGTeeO84ItKnMt/fBk3PZWRkGKUwIiJTOX48Cv//BgBaGJiIyFBVPqepsLAQGRkZaN26tdY0GBGRudE3Hff888+jf//+JqiGiCxVpa+eu3fvHoKDg+Hg4ID27dsjMzMTADBt2jTExMQYvUAioidR0dVxDExEVFmVDk0RERE4ceIEkpKSYGdnJ7X7+/tj06ZNRi2OiKiqoqKieLNdIjKqSs+rbdu2DZs2bULPnj21rn5r3749Ll68aNTiiIiqQl9YGjZsGHx8fExQDRHVFpUOTTdv3tR737m8vLwKlxAgIqoJQggsWLBAp52jS0RkDJUOTd26dcOOHTswbdo0AH+vtfTdd99x9WwiMhkuVklE1a3SoenTTz/FoEGDcObMGRQVFWHp0qU4c+YMDh06hH379lVHjUREj6QvML3xxht4+umnTVANEdVWlT4R/Pnnn0dqaiqKiorQsWNH/PLLL3B1dUVycjJ8fX2ro0YiIr2KiooqPNmbgYmIjM2gFcHp8bgiOFHN4nQcERmD0VcE12g0Br84AwMRVTd9gWnKlCl6L1IhIjIWg0KTi4uLwVfGFRcXP1FBRET6xMUBX3xxD/36LdTZxtElIqoJBoWmvXv3Sr9funQJ4eHhCAoKkq6WS05Oxtq1axEdHV09VRJRnXf8eBT69dNtZ2AioppS6XOa+vfvj7feegtjx47Val+/fj2++eYbJCUlGbM+i8Fzmoiqj77puJkzZ8LJyckE1RBRbVKZ7+9KhyYHBwecOHECzzzzjFb7H3/8gS5duuDevXuVr7gWYGgiMp64OCAmBujb9xZsbZfrbOfoEhEZS2W+vyu95ICHhwe+/fZbnfbvvvsOHh4eld0dEZGOmBhApYpiYCIis1LpxS0XL16MUaNGYdeuXfDz8wMAHDlyBOfPn8ePP/5o9AKJqO5RqXSn4+bMmQMbGxsTVENEVKrSI02DBw/G+fPnMXToUNy+fRu3b9/G0KFD8ccff2Dw4MHVUSMR1RFXrlypcLFKBiYiMjUubmkkPKeJ6MlwsUoiMgWjL275sOzsbHz//fc4e/YsAKB9+/aYMGECnJ2dq7I7Iqrj9AWmDz/8EFZWlR4MJyKqNpX+F+nYsWNo3bo1Fi9eLE3PLVq0CK1bt8bvv/9eHTUSUS11+vTpCqfjGJiIyNxUenruhRdegJeXF7799lvUq1c6UFVUVIS33noLf/75J/bv318thZo7Ts8RVQ6n44jIHFTrOk329vY4fvw42rRpo9V+5swZdOvWjes0MTQRPVZFo0tERDWtWs9pUigUyMzM1AlNV65cQf369Su7OyKqQw4ePIhff/1Vp52BiYgsQaVD0+jRoxEcHIzPP/8cvXr1AlD6D+GsWbN0bq1CRFSG03FEZOkqHZo+//xzyGQyjB8/HkVFRQAAGxsbTJkyBTExMUYvkIgsH6fjiKg2qPI6Tffu3cPFixcBAK1bt4aDg4NRC7M0PKeJSNd//vMfvVfVMjARkbmo9nWagNIb93bs2LGqTyeiWo7TcURU2xgcmiZMmGBQv9WrV1e5GCKyfHFxwPHjnI4jotrH4NAUGxuLli1bwsfHB7zzChHp8/333+Pq1as67fHxkWBmIiJLZ3BomjJlCjZs2ICMjAy8+eabeP3119GwYcPqrI2ILEhF03Hx8ZEID6/hYoiIqkGlTgQvKCjATz/9hNWrV+PQoUMICAhAcHAwBgwYAJlMVp11mj2eCE51Ga+OIyJLVa0rgpe5fPkyYmNj8c9//hNFRUU4ffo0nJycqlRwbcDQRHVNXBxw7NgnsLYu0tnGwERElqJGrp6zsrKCTCaDEALFxcVV3Q0RWajjx6Ngba3d1rBhQ0ybNs00BRERVbNK3Ua8oKAAGzZswEsvvYRnn30Wp06dwvLly5GZmVmnR5mI6hp903Hx8ZEMTERUqxk80vTOO+9g48aN8PDwwIQJE7BhwwY0bty4OmsjIjPDk72JqC4z+JwmKysrtGjRAj4+Po886funn34yWnGWhOc0UW2nLzB17NgRI0eONEE1RETGUS3nNI0fP77OXyFHVFfx6jgiokoubklEdQtvhUJE9LcqXz1HRLWbvsD04osvok+fPjVfDBGRGWBoIiIdnI4jItLF0EREEk7HERFVjKGJiADoD0wjRoxA586dTVANEZH5qdTilkRU+wghKlys8vJlBiYiojIcaSKqwx61WGVyMhATAwwbVsNFERGZKZOONEVHR6N79+6oX78+XF1dMWLECKSnp2v1yc/PR0hICBo1agQnJyeMGjUK169f1+qTmZmJgIAAODg4wNXVFbNmzUJRkfZNRJOSktC1a1fI5XJ4eXnpXUJhxYoVaNWqFezs7ODn54cjR44Y/T0TmQt9geno0fHw8Sld3VupBFf5JiIqx6Shad++fQgJCcF///tfJCQk4MGDBxgwYADy8vKkPjNmzMB//vMfbNmyBfv27cO1a9e0ViAuLi5GQEAACgsLcejQIaxduxaxsbGYN2+e1CcjIwMBAQHo27cvUlNTMX36dLz11luIj4+X+mzatAmhoaGIjIzE77//js6dO0OlUuHGjRs1czCIakhxcXGF03E7dnhKo0uHDnGUiYioPINvo1ITbt68CVdXV+zbtw+9e/dGTk4OmjRpgvXr1+OVV14BAJw7dw5t27ZFcnIyevbsiV27dmHIkCG4du0a3NzcAACrVq1CWFgYbt68CVtbW4SFhWHHjh1IS0uTXmvMmDHIzs7G7t27AQB+fn7o3r07li9fDgAoKSmBh4cHpk2bhnAD/nebt1EhS/Coq+Pi4kqn48LDGZaIqO6ozPe3WZ0InpOTAwBo2LAhACAlJQUPHjyAv7+/1KdNmzZo0aIFkpOTAQDJycno2LGjFJgAQKVSQaPR4PTp01Kf8vso61O2j8LCQqSkpGj1sbKygr+/v9TnYQUFBdBoNFo/ROZMX2B65513pOUEOLpERPRoZhOaSkpKMH36dDz33HPo0KEDAECtVsPW1hYuLi5afd3c3KBWq6U+5QNT2faybY/qo9FocP/+ffzvf/9DcXGx3j5l+3hYdHQ0nJ2dpR8PD4+qvXGiapafn1/hYpVNmjQxQUVERJbJbK6eCwkJQVpaGg4cOGDqUgwSERGB0NBQ6bFGo2FwIrPDxSqJiIzHLELT1KlTsX37duzfvx/NmzeX2t3d3VFYWIjs7Gyt0abr16/D3d1d6vPwVW5lV9eV7/PwFXfXr1+HQqGAvb09rK2tYW1trbdP2T4eJpfLIZfLq/aGiWqAvsA0c+ZMODk5maAaIiLLZ9LpOSEEpk6diq1bt2LPnj3w9PTU2u7r6wsbGxskJiZKbenp6cjMzIRSqQQAKJVKnDp1Susqt4SEBCgUCrRr107qU34fZX3K9mFrawtfX1+tPiUlJUhMTJT6EFmKnJycCqfjGJiIiKrOpCNNISEhWL9+PX7++WfUr19fOn/I2dkZ9vb2cHZ2RnBwMEJDQ9GwYUMoFApMmzYNSqUSPXv2BAAMGDAA7dq1wxtvvIHPPvsMarUac+fORUhIiDQSNHnyZCxfvhyzZ8/GhAkTsGfPHmzevBk7duyQagkNDUVgYCC6deuGHj16YMmSJcjLy8Obb75Z8weGqIo4HUdEVH1MuuSATCbT275mzRoEBQUBKD2JdebMmdiwYQMKCgqgUqnw1VdfaU2bXb58GVOmTEFSUhIcHR0RGBiImJgY1Kv3dyZMSkrCjBkzcObMGTRv3hwffvih9Bplli9fjoULF0KtVqNLly5YtmwZ/Pz8DHovXHKATE1fYIqIiICtra0JqiEisgyV+f42q3WaLBlDE5mKWq3G119/rdMeHx/JNZeIiB6jMt/fZnEiOBFVDe8dR0RUcxiaiCyUvsDUpcuHCA+3wt27gLc37x1HRGRMDE1EFub8+fNYv369TruPTyRiYoBz50ofK5UcZSIiMiaGJiILUtF03Pz5kVAqS0eWwsIAITjKRERkbAxNRBZCX2CaN28e/vMfmRSYhg3j6BIRUXVhaCIyc8ePH0dcXJxOe/kb7TIoERFVP4YmIjPGxSqJiMyHSW+jQkQV0xeY5s+PRHw8AxMRkSlwpInIzOzduxf79+/Xaffx+ftkbyIiqnkMTURm5FHTcXpOayIiohrE0ERkJvQFpvLnLsXEgKt8ExGZEEMTkYn9+OOPSEtL02l/+GTv8PDSwMTpOSIi02BoIjIhfaNLNjY2mDNnjk47lxYgIjIthiYiE3ncdBwREZkXhiaiGrZs2TLcuXNHp52BiYjIvDE0EdUgfaNLzZs3R3BwsAmqISKiymBoIqohnI4jIrJsDE1E1Yy3QiEiqh0Ymoiqkb7A1KFDB4waNcoE1RAR0ZPgveeIqklF03GjRo1CXBzQqxe4yjcRkQXhSBORkRkyHcfVvYmILA9DE5ER6QtML774Ivr06aPVxtW9iYgsD0MTkZFU5uo4ru5NRGR5GJqInhCvjiMiqhsYmoiegL7ANHz4cHTp0qXmiyEiomrF0ERUBUIILFiwQKedo0tERLUXQxNRJXE6joiobmJoIqoEfYFp3Lhx8PLyMkE1RERUkxiaiAxQUlKCjz76SKedo0tERHUHQxPRYzxuOi4u7u81l7iMABFR7cXQRPQI+gLT5MmT4ebmJj3m6t5ERHUD7z1HpEdBQYHewBQfH4nDh9202sLDAaWSq3sTEdV2MiGEMHURtYFGo4GzszNycnKgUChMXQ49gYqm4+LjI5GcXBqQDh2q4aKIiKhaVOb7m9NzROXoC0yhoaGoX78+fHx4vzgiorqMoYkIQG5uLr744gud9vJXx/F+cUREdRtDE9V5XKySiIgMwdBEdZq+wBQREQFbW1sTVENEROaMV89RnXTr1q0Kr47bvdsWcXFAr16lazAREREBHGmiOqii6biNGyNx7lzpyd4A114iIiJtDE1Up+gfXfoQyclW8PbWXm+JV8oREVF5DE1UJ1y9ehXff/+9TntkZKTWUgLlR5U4wkREROUxNFGt97ir47iUABERGYKhiWo1fYFp3rx5kMlkJqiGiIgsGUMT1Urp6enYuHGjTjvXXiIioqrikgNU60RFRT0yMHE5ASIiqgqThqb9+/dj6NChaNasGWQyGbZt26a1PSgoCDKZTOtn4MCBWn1u376NcePGQaFQwMXFBcHBwcjNzdXqc/LkSbzwwguws7ODh4cHPvvsM51atmzZgjZt2sDOzg4dO3bEzp07jf5+qfrpm46LjIzUGmGKifl7OQEiIiJDmTQ05eXloXPnzlixYkWFfQYOHIisrCzpZ8OGDVrbx40bh9OnTyMhIQHbt2/H/v37MWnSJGm7RqPBgAED0LJlS6SkpGDhwoWYP38+vvnmG6nPoUOHMHbsWAQHB+P48eMYMWIERowYgbS0NOO/aaoWx44dqzAwPSw8XHtpASIiIkPIhBDC1EUAgEwmw9atWzFixAipLSgoCNnZ2TojUGXOnj2Ldu3a4ejRo+jWrRsAYPfu3Rg8eDCuXr2KZs2aYeXKlfjggw+gVqulW2OEh4dj27ZtOHfuHABg9OjRyMvLw/bt26V99+zZE126dMGqVasMql+j0cDZ2Rk5OTlQKBRVOAJUVfrCkpWVFT788EMTVENERJakMt/fZn9OU1JSElxdXeHt7Y0pU6bg1q1b0rbk5GS4uLhIgQkA/P39YWVlhcOHD0t9evfurXUvMZVKhfT0dNy5c0fq4+/vr/W6KpUKycnJFdZVUFAAjUaj9UM1r6LRJQYmIiIyNrO+em7gwIEYOXIkPD09cfHiRcyZMweDBg1CcnIyrK2toVar4erqqvWcevXqoWHDhlCr1QAAtVoNT09PrT5ubm7StgYNGkCtVktt5fuU7UOf6OjoCtf/oeqXmJiIAwcO6LTz6jgiIqouZh2axowZI/3esWNHdOrUCa1bt0ZSUhL69+9vwsqAiIgIhIaGSo81Gg08PDxMWFHdoS+surq6YsqUKSaohoiI6gqzDk0Pe/rpp9G4cWNcuHAB/fv3h7u7O27cuKHVp6ioCLdv34a7uzsAwN3dHdevX9fqU/b4cX3Ktusjl8shl8uf+D1R5egLTD4+kVzRm4iIqp3Zn9NU3tWrV3Hr1i00bdoUAKBUKpGdnY2UlBSpz549e1BSUgI/Pz+pz/79+/HgwQOpT0JCAry9vdGgQQOpT2JiotZrJSQkQKlUVvdbIgP98MMPegPT/PmRXDqAiIhqhElDU25uLlJTU5GamgoAyMjIQGpqKjIzM5Gbm4tZs2bhv//9Ly5duoTExEQMHz4cXl5eUKlUAIC2bdti4MCBmDhxIo4cOYKDBw9i6tSpGDNmDJo1awYAeO2112Bra4vg4GCcPn0amzZtwtKlS7Wm1t577z3s3r0bX3zxBc6dO4f58+fj2LFjmDp1ao0fE9IVFRWF06dPa7W1a9cOPj6RXDqAiIhqjElD07Fjx+Dj4wMfHx8AQGhoKHx8fDBv3jxYW1vj5MmTGDZsGJ599lkEBwfD19cXv/32m9a02Lp169CmTRv0798fgwcPxvPPP6+1BpOzszN++eUXZGRkwNfXFzNnzsS8efO01nLq1asX1q9fj2+++QadO3fGDz/8gG3btqFDhw41dzBIr4qujvvHP/5hgmqIiKguM5t1miwd12kyrm+++QZZWVk67ZGRkYiLK13N+84d4Ny50oUqDx0yQZFERGTxKvP9bVEnglPdoG906bnnnpPW0iq7DYq3N1f2JiKimsPQRGbFkFuhhIeXBqfwcPCqOSIiqjEMTWQWPvnkExQVFem061usctgwhiUiIqp5DE1kcvpGlwYPHozu3buboBoiIiL9GJrIpAyZjiMiIjIHDE1kEhXdt6/81XE8Z4mIiMwJQxPVOH2BafTo0WjTpg2Av6+Oi4lhaCIiIvNhUbdRIcsmhKhwOq4sMAGlI0xcSoCIiMwNR5qoRlQ0HRcfHwkfH+0RJV4dR0RE5ogjTVTt9AWmiRMnIj4+UpqGIyIiMncMTVRtSkpKKpyOa9asGafhiIjIonB6jqrFo66OK8NpOCIisiQMTWR0+gJTYeE0fPJJQxNUQ0REZBycniOjKSoq0huY5s+PxLJlDExERGTZONJERlHRdFxaWiScnIB3363hgoiIiIyMoYmemL7A9OOPs3DqlAOUSuDuXRMURUREZGScnqMqy8/Pr3A67sEDB14ZR0REtQpHmqhKKpqO27AhEm3aAP/3f7wyjoiIaheGJjJY2Y10VSrdwPTBBx+gXr16KLeiABERUa3C0EQGW7QoFyrVFzrtkUxKRERUB/CcJgJQOorUq1fpn/pERUWhb1/dwBQfz8BERER1A0MTASiddqvoPnD6zl/q0uVDxMdH8kRvIiKqMzg9RwBKr3KLidG+2i07OxtLly7V6Vs2HTd8eE1VR0REZHoMTQRA+z5wcXHA8eO6o0tNmjTBO++8U8OVERERmQeGJtKhLzDNmzcPMpnMBNUQERGZB4Ymkty+fRtffvmlTjuvjiMiImJoqvMetfZSp06d8PLLL5ugKiIiIvPD0FTHhYUBY8boBiaOLhEREWljaKrDcnJyMGbMEp12BiYiIiJdDE111IoVK/C///1Pq23w4MHo3r27iSoiIiIybwxNdZC+xSo5ukRERPRoDE11CK+OIyIiqjqGplqk7Eq48PC/F6oss3DhQty7d0+rbcKECfDw8KjBComIiCwX7z1Xi1R0/7ioqCidwBQZGcnAREREVAkMTbVIeDigVP59/7gbN27w/CUiIiIj4fSchXt4Sq5sWk5fWHr77bfh7u5ewxUSERHVDgxNFiwuDhg3DsjNLQ1OjwpMHF0iIiJ6MgxNFiwmpjQwOTmVjjT99ddf+O6777T62NjYYM6cOSaqkIiIqPZgaLJg4eF/T8399ddKHD9+Q2t7SEgIGjdubKLqiIiIaheeCG4B4uKAXr1K/yxv2DDg0CHg+PEo3LihHZgiIyMZmIiIiIyII00WoPxSAuXXX7pz5w6WLVum1bdDhw4YNWpUDVdIRERU+zE0WYDy03Bljh07hh07dmj1mzlzJpycnGq4OiIiorqBockClF9KAADWrVuHCxcuaPXh1XFERETVi6HJgty7dw8LFy7Uahs+fDi6dOlimoKIiIjqEIYmC3HmzBls2bJFq23u3LmwtrY2UUVERER1i0mvntu/fz+GDh2KZs2aQSaTYdu2bVrbhRCYN28emjZtCnt7e/j7++P8+fNafW7fvo1x48ZBoVDAxcUFwcHByM3N1epz8uRJvPDCC7Czs4OHhwc+++wznVq2bNmCNm3awM7ODh07dsTOnTuN/n6rau3atVqB6YUXXkBkZCQDExERUQ0yaWjKy8tD586dsWLFCr3bP/vsMyxbtgyrVq3C4cOH4ejoCJVKhfz8fKnPuHHjcPr0aSQkJGD79u3Yv38/Jk2aJG3XaDQYMGAAWrZsiZSUFCxcuBDz58/HN998I/U5dOgQxo4di+DgYBw/fhwjRozAiBEjkJaWVn1v3kDXrl3DpUuXpMeTJ09Gv379TFcQERFRXSXMBACxdetW6XFJSYlwd3cXCxculNqys7OFXC4XGzZsEEIIcebMGQFAHD16VOqza9cuIZPJxF9//SWEEOKrr74SDRo0EAUFBVKfsLAw4e3tLT1+9dVXRUBAgFY9fn5+4u233za4/pycHAFA5OTkGPwcQ+Tm5op///vfYvny5aKoqMio+yYiIqrrKvP9bbaLW2ZkZECtVsPf319qc3Z2hp+fH5KTkwEAycnJcHFxQbdu3aQ+/v7+sLKywuHDh6U+vXv3hq2trdRHpVIhPT0dd+7ckfqUf52yPmWvo09BQQE0Go3WT3VwdHTEuHHjEBISwuk4IiIiEzLb0KRWqwEAbm5uWu1ubm7SNrVaDVdXV63t9erVQ8OGDbX66NtH+deoqE/Zdn2io6Ph7Ows/Xh4eFT2LRIREZEFMdvQZO4iIiKQk5Mj/Vy5csXUJREREVE1MtvQ5O7uDgC4fv26Vvv169elbe7u7jr3XCsqKsLt27e1+ujbR/nXqKhP2XZ95HI5FAqF1g8RERHVXmYbmjw9PeHu7o7ExESpTaPR4PDhw1AqlQAApVKJ7OxspKSkSH327NmDkpIS+Pn5SX3279+PBw8eSH0SEhLg7e2NBg0aSH3Kv05Zn7LXISIiIjJpaMrNzUVqaipSU1MBlJ78nZqaiszMTMhkMkyfPh0ff/wx4uLicOrUKYwfPx7NmjXDiBEjAABt27bFwIEDMXHiRBw5cgQHDx7E1KlTMWbMGDRr1gwA8Nprr8HW1hbBwcE4ffo0Nm3ahKVLlyI0NFSq47333sPu3bvxxRdf4Ny5c5g/fz6OHTuGqVOn1vQhISIiInNVA1fzVWjv3r0CgM5PYGCgEKJ02YEPP/xQuLm5CblcLvr37y/S09O19nHr1i0xduxY4eTkJBQKhXjzzTfF3bt3tfqcOHFCPP/880Iul4unnnpKxMTE6NSyefNm8eyzzwpbW1vRvn17sWPHjkq9l+pacoCIiIiqT2W+v2VCCGHCzFZraDQaODs7Iycnh+c3ERERWYjKfH+b7TlNREREROaEoYmIiIjIAAxNRERERAZgaCIiIiIyAEMTERERkQEYmoiIiIgMwNBEREREZIB6pi6gtihb7kqj0Zi4EiIiIjJU2fe2IctWMjQZyd27dwEAHh4eJq6EiIiIKuvu3btwdnZ+ZB+uCG4kJSUluHbtGurXrw+ZTPbE+9NoNPDw8MCVK1e4wvhj8FgZjsfKcDxWhuOxMhyPVeXUxPESQuDu3bto1qwZrKwefdYSR5qMxMrKCs2bNzf6fhUKBf/DMhCPleF4rAzHY2U4HivD8VhVTnUfr8eNMJXhieBEREREBmBoIiIiIjIAQ5OZksvliIyMhFwuN3UpZo/HynA8VobjsTIcj5XheKwqx9yOF08EJyIiIjIAR5qIiIiIDMDQRERERGQAhiYiIiIiAzA0ERERERmAoclI9u/fj6FDh6JZs2aQyWTYtm2b1nYhBObNm4emTZvC3t4e/v7+OH/+vFaf27dvY9y4cVAoFHBxcUFwcDByc3O1+pw8eRIvvPAC7Ozs4OHhgc8++0ynli1btqBNmzaws7NDx44dsXPnTqO/3yf1uOMVFBQEmUym9TNw4ECtPnXheEVHR6N79+6oX78+XF1dMWLECKSnp2v1yc/PR0hICBo1agQnJyeMGjUK169f1+qTmZmJgIAAODg4wNXVFbNmzUJRUZFWn6SkJHTt2hVyuRxeXl6IjY3VqWfFihVo1aoV7Ozs4OfnhyNHjhj9PVeVIceqT58+Op+ryZMna/WpC8cKAFauXIlOnTpJiwYqlUrs2rVL2s7P1d8ed6z4udIvJiYGMpkM06dPl9os/nMlyCh27twpPvjgA/HTTz8JAGLr1q1a22NiYoSzs7PYtm2bOHHihBg2bJjw9PQU9+/fl/oMHDhQdO7cWfz3v/8Vv/32m/Dy8hJjx46Vtufk5Ag3Nzcxbtw4kZaWJjZs2CDs7e3F119/LfU5ePCgsLa2Fp999pk4c+aMmDt3rrCxsRGnTp2q9mNQGY87XoGBgWLgwIEiKytL+rl9+7ZWn7pwvFQqlVizZo1IS0sTqampYvDgwaJFixYiNzdX6jN58mTh4eEhEhMTxbFjx0TPnj1Fr169pO1FRUWiQ4cOwt/fXxw/flzs3LlTNG7cWEREREh9/vzzT+Hg4CBCQ0PFmTNnxJdffimsra3F7t27pT4bN24Utra2YvXq1eL06dNi4sSJwsXFRVy/fr1mDsZjGHKsXnzxRTFx4kStz1VOTo60va4cKyGEiIuLEzt27BB//PGHSE9PF3PmzBE2NjYiLS1NCMHPVXmPO1b8XOk6cuSIaNWqlejUqZN47733pHZL/1wxNFWDh0NASUmJcHd3FwsXLpTasrOzhVwuFxs2bBBCCHHmzBkBQBw9elTqs2vXLiGTycRff/0lhBDiq6++Eg0aNBAFBQVSn7CwMOHt7S09fvXVV0VAQIBWPX5+fuLtt9826ns0popC0/Dhwyt8Tl09Xjdu3BAAxL59+4QQpZ8jGxsbsWXLFqnP2bNnBQCRnJwshCgNqFZWVkKtVkt9Vq5cKRQKhXRsZs+eLdq3b6/1WqNHjxYqlUp63KNHDxESEiI9Li4uFs2aNRPR0dHGf6NG8PCxEqL0y638P+APq6vHqkyDBg3Ed999x8+VAcqOlRD8XD3s7t274plnnhEJCQlax6Y2fK44PVcDMjIyoFar4e/vL7U5OzvDz88PycnJAIDk5GS4uLigW7duUh9/f39YWVnh8OHDUp/evXvD1tZW6qNSqZCeno47d+5Ifcq/TlmfstexJElJSXB1dYW3tzemTJmCW7duSdvq6vHKyckBADRs2BAAkJKSggcPHmi9hzZt2qBFixZan62OHTvCzc1N6qNSqaDRaHD69Gmpz6OOQ2FhIVJSUrT6WFlZwd/f32KOVZl169ahcePG6NChAyIiInDv3j1pW109VsXFxdi4cSPy8vKgVCr5uXqEh49VGX6u/hYSEoKAgACd91MbPle8YW8NUKvVAKD1ISh7XLZNrVbD1dVVa3u9evXQsGFDrT6enp46+yjb1qBBA6jV6ke+jqUYOHAgRo4cCU9PT1y8eBFz5szBoEGDkJycDGtr6zp5vEpKSjB9+nQ899xz6NChA4DS92FrawsXFxetvg9/tvS9x7Jtj+qj0Whw//593LlzB8XFxXr7nDt3zmjv0Vj0HSsAeO2119CyZUs0a9YMJ0+eRFhYGNLT0/HTTz8BqHvH6tSpU1AqlcjPz4eTkxO2bt2Kdu3aITU1lZ+rh1R0rAB+rsrbuHEjfv/9dxw9elRnW23494qhiczSmDFjpN87duyITp06oXXr1khKSkL//v1NWJnphISEIC0tDQcOHDB1KWavomM1adIk6feOHTuiadOm6N+/Py5evIjWrVvXdJkm5+3tjdTUVOTk5OCHH35AYGAg9u3bZ+qyzFJFx6pdu3b8XP1/V65cwXvvvYeEhATY2dmZupxqwem5GuDu7g4AOlcIXL9+Xdrm7u6OGzduaG0vKirC7du3tfro20f516ioT9l2S/X000+jcePGuHDhAoC6d7ymTp2K7du3Y+/evWjevLnU7u7ujsLCQmRnZ2v1f/izVdXjoFAoYG9vj8aNG8Pa2tqij5U+fn5+AKD1uapLx8rW1hZeXl7w9fVFdHQ0OnfujKVLl/JzpUdFx0qfuvq5SklJwY0bN9C1a1fUq1cP9erVw759+7Bs2TLUq1cPbm5uFv+5YmiqAZ6ennB3d0diYqLUptFocPjwYWlOXKlUIjs7GykpKVKfPXv2oKSkRPoPUKlUYv/+/Xjw4IHUJyEhAd7e3mjQoIHUp/zrlPUpP/duia5evYpbt26hadOmAOrO8RJCYOrUqdi6dSv27NmjM93o6+sLGxsbrfeQnp6OzMxMrc/WqVOntEJmQkICFAqFNL3wuONga2sLX19frT4lJSVITEy0mGOlT2pqKgBofa7qwrGqSElJCQoKCvi5MkDZsdKnrn6u+vfvj1OnTiE1NVX66datG8aNGyf9bvGfqyc6jZwkd+/eFcePHxfHjx8XAMSiRYvE8ePHxeXLl4UQpUsOuLi4iJ9//lmcPHlSDB8+XO+SAz4+PuLw4cPiwIED4plnntG6hD47O1u4ubmJN954Q6SlpYmNGzcKBwcHnUvo69WrJz7//HNx9uxZERkZaVaX0Jd51PG6e/eueP/990VycrLIyMgQv/76q+jatat45plnRH5+vrSPunC8pkyZIpydnUVSUpLW5cz37t2T+kyePFm0aNFC7NmzRxw7dkwolUqhVCql7WWX8A4YMECkpqaK3bt3iyZNmui9hHfWrFni7NmzYsWKFXov4ZXL5SI2NlacOXNGTJo0Sbi4uGhd5WJKjztWFy5cEAsWLBDHjh0TGRkZ4ueffxZPP/206N27t7SPunKshBAiPDxc7Nu3T2RkZIiTJ0+K8PBwIZPJxC+//CKE4OeqvEcdK36uHu3hKwst/XPF0GQke/fuFQB0fgIDA4UQpcsOfPjhh8LNzU3I5XLRv39/kZ6errWPW7duibFjxwonJyehUCjEm2++Ke7evavV58SJE+L5558XcrlcPPXUUyImJkanls2bN4tnn31W2Nraivbt24sdO3ZU2/uuqkcdr3v37okBAwaIJk2aCBsbG9GyZUsxceJEnQ97XThe+o4RALFmzRqpz/3798U777wjGjRoIBwcHMTLL78ssrKytPZz6dIlMWjQIGFvby8aN24sZs6cKR48eKDVZ+/evaJLly7C1tZWPP3001qvUebLL78ULVq0ELa2tqJHjx7iv//9b3W87Sp53LHKzMwUvXv3Fg0bNhRyuVx4eXmJWbNmaa2nI0TdOFZCCDFhwgTRsmVLYWtrK5o0aSL69+8vBSYh+Lkq71HHip+rR3s4NFn650omhBBPNlZFREREVPvxnCYiIiIiAzA0ERERERmAoYmIiIjIAAxNRERERAZgaCIiIiIyAEMTERERkQEYmoiIiIgMwNBERGbt4MGD6NixI2xsbDBixAhTl0NEdRhDExFVm6CgIMhkMshkMtjY2MDT0xOzZ89Gfn6+wfsIDQ1Fly5dkJGRgdjY2OortgbFxsZKx8Xa2hoNGjSAn58fFixYgJycnErvTyaTYdu2bcYvlIi0MDQRUbUaOHAgsrKy8Oeff2Lx4sX4+uuvERkZafDzL168iH79+qF58+ZwcXGpUg2FhYVVel5VCCFQVFT02H4KhQJZWVm4evUqDh06hEmTJuGf//wnunTpgmvXrtVApURUWQxNRFSt5HI53N3d4eHhgREjRsDf3x8JCQkASu88Hh0dDU9PT9jb26Nz58744YcfAACXLl2CTCbDrVu3MGHCBMhkMmmkad++fejRowfkcjmaNm2K8PBwraDSp08fTJ06FdOnT0fjxo2hUqmQlJQEmUyG+Ph4+Pj4wN7eHv369cONGzewa9cutG3bFgqFAq+99hru3bsn7etRNQKQ9rtr1y74+vpCLpfjwIEDjz0uMpkM7u7uaNq0Kdq2bYvg4GAcOnQIubm5mD17ttSvVatWWLJkidZzu3Tpgvnz50vbAeDll1+GTCZDq1atcOnSJVhZWeHYsWNaz1uyZAlatmyJkpKSx9ZHRLoYmoioxqSlpeHQoUOwtbUFAERHR+Of//wnVq1ahdOnT2PGjBl4/fXXsW/fPnh4eCArKwsKhQJLlixBVlYWRo8ejb/++guDBw9G9+7dceLECaxcuRLff/89Pv74Y63XWrt2LWxtbXHw4EGsWrVKap8/fz6WL1+OQ4cO4cqVK3j11VexZMkSrF+/Hjt27MAvv/yCL7/8Uur/qBrLCw8PR0xMDM6ePYtOnTpV6fi4urpi3LhxiIuLQ3FxsUHPOXr0KABgzZo1yMrKwtGjR9GqVSv4+/tjzZo1Wn3XrFmDoKAgWFnxn36iKnniW/4SEVUgMDBQWFtbC0dHRyGXywUAYWVlJX744QeRn58vHBwcxKFDh7SeExwcLMaOHSs9dnZ21rqD+Zw5c4S3t7coKSmR2lasWCGcnJxEcXGxEKL0zuo+Pj5a+927d68AIH799VepLTo6WgAQFy9elNrefvttoVKphBDCoBrL9rtt2zaDj8uaNWuEs7Oz3m0rV64UAMT169eFEEK0bNlSLF68WKtP586dRWRkpPQYgNi6datWn02bNokGDRqI/Px8IYQQKSkpQiaTiYyMDIPrJCJt9UwZ2Iio9uvbty9WrlyJvLw8LF68GPXq1cOoUaNw+vRp3Lt3Dy+99JJW/8LCQvj4+FS4v7Nnz0KpVEImk0ltzz33HHJzc3H16lW0aNECAODr66v3+eVHgdzc3ODg4ICnn35aq+3IkSMAgAsXLhhcY7du3R51GAwmhAAArfdXFSNGjEBISAi2bt2KMWPGIDY2Fn379pWm84io8hiaiKhaOTo6wsvLCwCwevVqdO7cGd9//z06dOgAANixYweeeuoprefI5XKjvK4+NjY20u9lV/WVJ5PJpHN+cnNzDa6xoterrLNnz0KhUKBRo0YAACsrKylIlXnw4MFj92Nra4vx48djzZo1GDlyJNavX4+lS5capUaiuoqhiYhqjJWVFebMmYPQ0FD88ccfkMvlyMzMxIsvvmjwPtq2bYsff/wRQghpNObgwYOoX78+mjdvbtR627VrV6Uaq+rGjRtYv349RowYIZ131KRJE2RlZUl9NBoNMjIytJ5nY2Oj9xyot956Cx06dMBXX32FoqIijBw5snrfAFEtx9BERDXqH//4B2bNmoWvv/4a77//PmbMmIGSkhI8//zzyMnJwcGDB6FQKBAYGKj3+e+88w6WLFmCadOmYerUqUhPT0dkZCRCQ0ONfoJz/fr1q1SjIYQQUKvVEEIgOzsbycnJ+PTTT+Hs7IyYmBipX79+/RAbG4uhQ4fCxcUF8+bNg7W1tda+WrVqhcTERDz33HOQy+Vo0KABgNKA2bNnT4SFhWHChAmwt7evcr1ExNBERDWsXr16mDp1Kj777DNkZGSgSZMmiI6Oxp9//gkXFxd07doVc+bMqfD5Tz31FHbu3IlZs2ahc+fOaNiwIYKDgzF37txqqfejjz6qdI2G0Gg0aNq0KWQyGRQKBby9vREYGIj33nsPCoVC6hcREYGMjAwMGTIEzs7O+Oijj3RGmr744guEhobi22+/xVNPPYVLly5J28qWMpgwYcIT1UtEgEw8PFlORES1xkcffYQtW7bg5MmTpi6FyOJxsQ4iolooNzcXaWlpWL58OaZNm2bqcohqBYYmIiIja9++PZycnPT+rFu3rkZqmDp1Knx9fdGnTx9OzREZCafniIiM7PLlyxUuC+Dm5ob69evXcEVEZAwMTUREREQG4PQcERERkQEYmoiIiIgMwNBEREREZACGJiIiIiIDMDQRERERGYChiYiIiMgADE1EREREBmBoIiIiIjLA/wP/WpTdqY8xMQAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_31.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_32.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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I1SJiYmwtrZWv2ZnZwdfX18kJiYav0IiImqQ/Px87N69W6udo1JExqd3oMrLywMADB48GAcPHkTLv89oJCIik8FLfERNq95zqI4dO9YYdRARkZHoClOxsbGQSCQiVEPUPNQ7UL300kt1vr5jx44GF0NERA331ltvobi4WKudo1JEja/eger333/X+LmiogJnz55FcXExHn/8caMVRkRE+tM1KtW+fXtMmjRJhGqImp96B6pPP/1Uq02lUuGVV15Bp06djFIUERHpR6VSYfny5VrtHJUialoSobaFperp4sWLGDRoEG7evGmM3Zk8pVIJNzc3lJSUwNXVVexyiKgZ4sRzovprrM9voz165urVq6isrDTW7oiISIe6Hmo8ZcoUeHl5iVAVEdU7UEVFRWn8LAgCbt68ic8++wwRERFGK4yIiLS9995FyGT7tdo5KkUkrnoHqtzcXI2frays0LZtW6xdu/ahdwASEVHDxcXF4bHHtNsZpojEx3WoiIhMXEoKkJurfYmPQYrIdDR4DtWtW7dw8eJFAEDXrl3h4eFhtKKIiKgaJ54TmYd6ByqlUokZM2Zg3759UKlUAABra2uMHTsWW7ZsgZubm9GLJCJqjnSFqc6dO+P5558XoRoiqotVfTeYPHkysrOz8dlnn6G4uBjFxcVITU3FyZMnMXXq1MaokYioWUhJAUJDgeTkCp1hSi6XM0wRmah6r0Pl7OyM9PR0DBgwQKP9+PHjGDZsGEpLS41aoKniOlREZGyhobqXQwB4iY/IWExmHarWrVvrvKzn5uaGli1bGqUoIqLmSFeYmjFjBtq0aSNCNURUH/W+5Ld48WJERUVBoVCo2xQKBV577TUsWbLEqMURETUH33//fa2X+BimiMxDvS/59e7dG1euXEFZWRnat28PACgoKIC9vT38/f01+p46dcp4lZoYXvIjImPgXXxETctkLvmNHj0aEonEaAUQETVXusJU795yjBolQjFEZBCjPRy5ueEIFRE1VG2jUkuXyhESAmRmNnFBRM1IY31+13sOVceOHfHbb79ptRcXF6Njx45GKYqIyFLpClPdu3dH797VYSo6WoSiiMhg9b7kl5+fj6qqKq32srIy/Prrr0YpiojIkqSkAGvWPMCQIW9qvfbXuVK81EdkvvQOVCkpKepfp6enayydUFVVhYyMDPj5+Rm3OiIiC5Cb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PUJ18uRJyGQyODo6ol+/fgCA77//Hn/88Qe++OILPPbYY41SqKnhCBWRbhyVIiJTZjKX/P71r3+hc+fOePfdd2FjUz3AVVlZiZdffhk///wzvvnmG6MVZ8oYqIi06QpTUqkUU6dOFaEaIiJtJhOoHB0dkZubi4CAAI32n376CX369OE6VETNUGVlJVauXKnVzlEpIjI1JjOHytXVFQUFBVqB6tq1a3BxcTFaYURkHniJj4ioAYFq7NixiIyMxJo1axAaGgoA+O677/Daa69pPY6GiCybrjA1depUSKVSEaohIhJPvQPVmjVrIJFIMGHCBFRWVgIAbG1t8corryAhIcHoBRKR6cnOzkZaWppWO0eliKi5avA6VPfv38fVq1cBAJ06dYKTk5NRCzN1nENFzRUv8RGROTOZOVQ1nJyc0LNnT6MVQkSmT1eYWrpUjq5dAeYpImrO9A5UL730kl79duzY0eBiiMg01TYqtX9/dYqScK1OImrm9A5Uu3btQocOHdC7d2/waTVEzYeuMNWiRQfMmzcRvXsDCQlAdLQIhRERmRC9A9Urr7yCffv2IS8vD5MmTcILL7yAVq1aNWZtRCSisrIynTea/HWu1KhR1V9ERM1dvSall5WV4eDBg9ixYwcyMzMxYsQIREZGYujQoZA0szF/TkonS8aJ50RkqUxmpfQav/zyC3bt2oU9e/agsrIS586dQ4sWLYxWmKljoCJLpStMbdo0E23btsb/PQ+diMhsmdxdflZWVpBIJBAEAVVVVUYriIjEcezYMZ3P4ty3T47ffgPatBGhKCIiM2FVn85lZWXYt28f/vOf/6BLly748ccfsXnzZhQUFDSr0SkiSxMXF6czTMnlcqxaBYSEAKtWiVAYEZGZ0HuEavr06di/fz98fHzw0ksvYd++fWjD/7ISmT1dl/g48ZyIqH70nkNlZWWF9u3bo3fv3nVOQD948KDRijNlnENF5o4Tz4moORJ9DtWECROa3Z18RJZKV5jq0aMHxowZI0I1RETmr14LexKReSstLcWaNWu02jkqRURkmAbf5UdE5qW2S3y9ezNMEREZioGKqBnQFaZeffVVzv8jIjISBioiC/a///0Pp06d0mrnJT4iIuNioCKyULyLj4io6TBQEVmgh60tRURExsVARWRBOCpFRCSOej16prFs2bIFvr6+cHBwQHBwME6c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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_33.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlEAAAHHCAYAAACfqw0dAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABYCUlEQVR4nO3de1hU1eI+8HdAYEAEVOSmKKSklnyFUBGOpRYnLA3pqmSKyVGPl8wwDU1B0pLjLdNMslI85S0riWMKIVmWEF5Cy2taEN4GMQUSFXRm/f7gx85xBpwZB/YMvJ/nmQdn7bX3XrM15m2ttddWCCEEiIiIiMgoNnI3gIiIiMgaMUQRERERmYAhioiIiMgEDFFEREREJmCIIiIiIjIBQxQRERGRCRiiiIiIiEzAEEVERERkAoYoIiIiIhMwRBFRs6dQKDB37ly5myEZPXo0/Pz85G4GEd0BQxQRWaS0tDQoFArppVQqce+992Ly5MkoKSlp0HPn5uZi7ty5KCsrM+txBwwYoPWZ2rRpg969e2PNmjXQaDRmOcdbb72F9PR0sxyLiOrXQu4GEBHV54033oC/vz+uX7+OH374AatWrcL27dtx+PBhODk5meUc165dQ4sWf/86zM3NRXJyMkaPHg03NzeznKNWhw4dsGDBAgBAaWkp/vvf/yIuLg6//vorUlJS7vr4b731Fp555hlER0ff9bGIqH4MUURk0R577DH06tULAPCvf/0Lbdu2xdKlS/Hll18iJibG5ONqNBpUV1dDqVRCqVSaq7l35OrqihdeeEF6P378eHTt2hXvvvsu5s2bBzs7u0ZrCxHdHQ7nEZFVefjhhwEAhYWFAIDFixcjPDwcbdu2haOjI0JCQvDZZ5/p7KdQKDB58mSsX78e999/PxwcHJCZmSltq50TNXfuXEyfPh0A4O/vLw29FRUVoX///ujZs6fednXt2hWRkZFGfx4nJyf07dsXlZWVKC0trbNeZWUlpk2bBl9fXzg4OKBr165YvHgxhBBan7GyshLr1q2T2j169Gij20REhmFPFBFZld9++w0A0LZtWwDAO++8g6ioKIwYMQLV1dXYtGkTnn32WWzbtg2DBw/W2vebb77Bp59+ismTJ8Pd3V3v5O2nnnoKv/76KzZu3Ii3334b7u7uAIB27dph5MiRGDt2LA4fPowePXpI++zbtw+//vorZs+ebdJn+v3332Fra1vn0KEQAlFRUdi1axfi4uIQFBSErKwsTJ8+HWfPnsXbb78NAPj444/xr3/9C3369MG4ceMAAJ07dzapTURkAEFEZIHWrl0rAIidO3eK0tJScfr0abFp0ybRtm1b4ejoKM6cOSOEEOLq1ata+1VXV4sePXqIhx9+WKscgLCxsRFHjhzRORcAkZSUJL1ftGiRACAKCwu16pWVlQmlUilee+01rfIpU6aIli1biitXrtT7mfr37y+6desmSktLRWlpqTh27JiYMmWKACCeeOIJqV5sbKzo1KmT9D49PV0AEPPnz9c63jPPPCMUCoU4deqUVNayZUsRGxtbbzuIyDw4nEdEFi0iIgLt2rWDr68vhg8fDmdnZ2zduhXt27cHADg6Okp1L1++jPLycjz44IP46aefdI7Vv39/3HfffSa3xdXVFUOHDsXGjRulYTS1Wo3NmzcjOjoaLVu2vOMxjh8/jnbt2qFdu3bo3r07VqxYgcGDB2PNmjV17rN9+3bY2tpiypQpWuXTpk2DEAI7duww+TMRkek4nEdEFm3lypW499570aJFC3h6eqJr166wsfn7//+2bduG+fPn4+DBg6iqqpLKFQqFzrH8/f3vuj2jRo3C5s2b8f333+Ohhx7Czp07UVJSgpEjRxq0v5+fHz744ANp2YaAgAB4eHjUu88ff/wBHx8ftGrVSqu8e/fu0nYianwMUURk0fr06SPdnXe777//HlFRUXjooYfw3nvvwdvbG3Z2dli7di02bNigU//WXitTRUZGwtPTE5988gkeeughfPLJJ/Dy8kJERIRB+7ds2dLgukRk2TicR0RW6/PPP4dSqURWVhbGjBmDxx57zCwBRV8vVi1bW1s8//zz+Oyzz3D58mWkp6cjJiYGtra2d33eunTq1Annzp3DX3/9pVV+/PhxaXut+tpORObFEEVEVsvW1hYKhQJqtVoqKyoquusVu2vnNtW1YvnIkSNx+fJljB8/HleuXNFa96khPP7441Cr1Xj33Xe1yt9++20oFAo89thjUlnLli3NvtI6EenH4TwislqDBw/G0qVLMWjQIDz//PO4cOECVq5ciS5duuDnn382+bghISEAgNdffx3Dhw+HnZ0dnnjiCSlcBQcHo0ePHtiyZQu6d++OBx54wCyfpy5PPPEEBg4ciNdffx1FRUXo2bMn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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_34.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlEAAAHHCAYAAACfqw0dAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABeqElEQVR4nO3deVxU5f4H8M8MyC5w3VgMhXLDJSFQhFuiyQ0NF8q6ipqApN1S07AUDEFcgsw9TSpTtDSXFkQzzAtaFhMqguZuqaHpIIqA4pX1/P7gx8lxZnBYzzB83q8XL+KZZ858z8nk0/M85zkyQRAEEBEREVGtyKUugIiIiKg5YogiIiIiqgOGKCIiIqI6YIgiIiIiqgOGKCIiIqI6YIgiIiIiqgOGKCIiIqI6YIgiIiIiqgOGKCIiIqI6YIgiohZPJpNh/vz5UpchCgkJgbOzs9RlENEjMEQRkV5KTEyETCYTv8zMzNCtWzdMmzYNubm5jfrZ6enpmD9/PgoKChr0uIMGDVI5pzZt2qBfv37YsGEDKisrG+Qz3nvvPSQlJTXIsYioZsZSF0BEVJMFCxbAxcUF9+/fx88//4x169Zh7969OHnyJCwsLBrkM/73v//B2Pjvvw7T09MRGxuLkJAQ2NraNshnVHvssccQFxcHAMjLy8PmzZsRFhaG8+fPIz4+vt7Hf++99/DSSy8hMDCw3sciopoxRBGRXhs2bBg8PT0BAK+++iratm2L5cuXY9euXQgKCqrzcSsrK1FaWgozMzOYmZk1VLmPZGNjgwkTJog/v/baa+jevTvWrFmDhQsXolWrVk1WCxHVD6fziKhZefbZZwEAly5dAgAsXboUPj4+aNu2LczNzeHh4YGvvvpK7X0ymQzTpk3Dli1b0KtXL5iamiIlJUV8rXpN1Pz58/HOO+8AAFxcXMSpt8uXL8PX1xd9+/bVWFf37t3h7+9f6/OxsLDAgAEDUFxcjLy8PK39iouLMWvWLDg5OcHU1BTdu3fH0qVLIQiCyjkWFxdj06ZNYt0hISG1romIdMORKCJqVv744w8AQNu2bQEAq1atwsiRIzF+/HiUlpZi27ZtePnll7Fnzx4EBASovDctLQ07duzAtGnT0K5dO42Lt1988UWcP38eX375JVasWIF27doBANq3b49XXnkFkydPxsmTJ9G7d2/xPUeOHMH58+cRFRVVp3O6ePEijIyMtE4dCoKAkSNH4sCBAwgLC4Obmxv27duHd955B3/99RdWrFgBAPj888/x6quvon///pgyZQoA4IknnqhTTUSkA4GISA9t3LhRACD897//FfLy8oQrV64I27ZtE9q2bSuYm5sLV69eFQRBEO7du6fyvtLSUqF3797Cs88+q9IOQJDL5cKpU6fUPguAEBMTI/78wQcfCACES5cuqfQrKCgQzMzMhDlz5qi0v/nmm4KlpaVw9+7dGs/J19dX6NGjh5CXlyfk5eUJZ86cEd58800BgDBixAixX3BwsNC5c2fx56SkJAGAsGjRIpXjvfTSS4JMJhN+//13sc3S0lIIDg6usQ4iahicziMivebn54f27dvDyckJY8eOhZWVFb799lt07NgRAGBubi72vX37NgoLC/HMM8/g2LFjasfy9fVFz54961yLjY0NRo0ahS+//FKcRquoqMD27dsRGBgIS0vLRx7j7NmzaN++Pdq3bw9XV1d8+OGHCAgIwIYNG7S+Z+/evTAyMsKbb76p0j5r1iwIgoDvv/++zudERHXH6Twi0mtr165Ft27dYGxsDDs7O3Tv3h1y+d///7dnzx4sWrQI2dnZKCkpEdtlMpnasVxcXOpdz8SJE7F9+3YcOnQIAwcOxH//+1/k5ubilVde0en9zs7O+PTTT8VtG7p27YoOHTrU+J4///wTjo6OaN26tUq7q6ur+DoRNT2GKCLSa/379xfvznvYoUOHMHLkSAwcOBAfffQRHBwc0KpVK2zcuBFbt25V6//gqFVd+fv7w87ODl988QUGDhyIL774Avb29vDz89Pp/ZaWljr3JSL9xuk8Imq2vv76a5iZmWHfvn2YNGkShg0b1iABRdMoVjUjIyOMGzcOX331FW7fvo2kpCQEBQXByMio3p+rTefOnXHt2jXcuXNHpf3s2bPi69Vqqp2IGhZDFBE1W0ZGRpDJZKioqBDbLl++XO8du6vXNmnbsfyVV17B7du38dprr+Hu3bsq+z41hueffx4VFRVYs2aNSvuKFSsgk8kwbNgwsc3S0rLBd1onIs04nUdEzVZAQACWL1+OoUOHYty4cbhx4wbWrl2LLl264MSJE3U+roeHBwDg3XffxdixY9GqVSuMGDFCDFfu7u7o3bs3du7cCVdXVzz11FMNcj7ajBgxAoMHD8a7776Ly5cvo2/f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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_35.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAHHCAYAAABXx+fLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABQf0lEQVR4nO3deVxUZf8//teALArKoMgayqZibiAoQZqWJHiXaNmdWgmoabl7oymUgriBRkqm6fejt2GWS92Z8jADk6QyKcslc80FUovNBVBUQOb8/uDH6DQHZWBmziyv5+MxD51rzly8z3FiXl3Xdc6RCYIggIiIiMiMWEhdABEREZG+MQARERGR2WEAIiIiIrPDAERERERmhwGIiIiIzA4DEBEREZkdBiAiIiIyOwxAREREZHYYgIiIiMjsMAARkdGSyWRYsGCB1GUoxcbGwsvLS+oyiKgRGICISKsyMjIgk8mUD1tbW3Tu3BlTp05FcXGxTn/2wYMHsWDBApSVlWm134EDB6rsU9u2bdGnTx9s3LgRCoVCKz9j6dKl2Llzp1b6IqJHayF1AURkmhYuXAhvb2/cvXsXBw4cwNq1a7Fnzx6cOHECrVq10srPuHPnDlq0uP9r7ODBg0hOTkZsbCzkcrlWfka9xx57DCkpKQCA0tJSfPzxxxg/fjz++OMPpKamNrv/pUuX4qWXXsLw4cOb3RcRPRoDEBHpxJAhQxAcHAwAeP3119GuXTusWLECu3btwujRo5vcr0KhQHV1NWxtbWFra6utch/JwcEBr732mvL5G2+8gS5dumD16tVYtGgRrKys9FYLETUfp8CISC+eeeYZAEB+fj4AIC0tDWFhYWjXrh1atmyJoKAg/O9//1N7n0wmw9SpU/Hpp5+iW7dusLGxQVZWlvK1+jVACxYswFtvvQUA8Pb2Vk5XFRQUYMCAAejVq5doXV26dEFERITG+9OqVSs88cQTqKysRGlpaYPbVVZWYtasWfD09ISNjQ26dOmCtLQ0CIKgso+VlZXYtGmTsu7Y2FiNayKixuMIEBHpxYULFwAA7dq1AwC8//77iIqKwquvvorq6mps27YN//73v7F7924899xzKu/99ttv8dlnn2Hq1KlwcnISXWj84osv4o8//sDWrVuxcuVKODk5AQDat2+PMWPGYMKECThx4gS6d++ufM8vv/yCP/74A/PmzWvSPl28eBGWlpYNTrcJgoCoqCjs378f48ePR0BAALKzs/HWW2/hr7/+wsqVKwEAmzdvxuuvv46+ffti4sSJAABfX98m1UREjSQQEWnRRx99JAAQ9u3bJ5SWlgqXL18Wtm3bJrRr105o2bKlcOXKFUEQBOH27dsq76uurha6d+8uPPPMMyrtAAQLCwvh5MmTaj8LgJCUlKR8/u677woAhPz8fJXtysrKBFtbW2Hu3Lkq7dOnTxfs7OyEW7duPXSfBgwYIPj7+wulpaVCaWmpcPr0aWH69OkCAGHo0KHK7WJiYoSOHTsqn+/cuVMAICxevFilv5deekmQyWTC+fPnlW12dnZCTEzMQ+sgIu3hFBgR6UR4eDjat28PT09PjBo1Cvb29vjyyy/h4eEBAGjZsqVy2xs3bqC8vBz9+/fHkSNH1PoaMGAAHn/88SbX4uDggGHDhmHr1q3Kqafa2lps374dw4cPh52d3SP7OHPmDNq3b4/27duja9eu+OCDD/Dcc89h48aNDb5nz549sLS0xPTp01XaZ82aBUEQ8PXXXzd5n4ioeTgFRkQ6sWbNGnTu3BktWrSAi4sLunTpAguL+//PtXv3bixevBjHjh1DVVWVsl0mk6n15e3t3ex6oqOjsX37dvzwww946qmnsG/fPhQXF2PMmDGNer+XlxfWr1+vPLW/U6dOcHZ2fuh7/vzzT7i7u6N169Yq7V27dlW+TkTSYAAiIp3o27ev8iywf/rhhx8QFRWFp556Ch9++CHc3NxgZWWFjz76CFu2bFHb/sHRoqaKiIiAi4sLPvnkEzz11FP45JNP4OrqivDw8Ea9387OrtHbEpHh4xQYEendF198AVtbW2RnZ2PcuHEYMmSIVsKF2OhRPUtLS7zyyiv43//+hxs3bmDnzp0YPXo0LC0tm/1zG9KxY0f8/fffuHnzpkr7mTNnlK/Xe1jtRKR9DEBEpHeWlpaQyWSora1VthUUFDT7Ssj1a3kauhL0mDFjcOPGDbzxxhu4deuWynV9dOFf//oXamtrsXr1apX2lStXQiaTYciQIco2Ozs7rV/BmogaxikwItK75557DitWrEBkZCReeeUVlJSUYM2aNfDz88Px48eb3G9QUBAA4J133sGoUaNgZWWFoUOHKoNRYGAgunfvjs8//xxdu3ZF7969tbI/DRk6dCiefvppvPPOOygoKECvXr2wd+9e7Nq1CzNnzlQ51T0oKAj79u3DihUr4O7uDm9vb4SEhOi0PiJzxhEgItK7Z555Bv/9739RVFSEmTNnYuvWrVi2bBleeOGFZvXbp08fLFq0CL/99htiY2MxevRotYsURkdHA0CjFz83h4WFBTIzMzFz5kzs3r0bM2fOxKlTp/Duu+9ixYoVKtuuWLECQUFBmDdvHkaPHo21a9fqvD4icyYThAcuR0pEZOLef/99/Oc//0FBQQE6dOggdTlEJBEGICIyG4IgoFevXmjXrh32798vdTlEJCGuASIik1dZWYnMzEzs378fv//+O3bt2iV1SUQkMY4AEZHJKygogLe3N+RyOSZPnowlS5ZIXRIRSYwBiIiIiMwOzwIjIiIis8MARERERGaHi6BFKBQK/P3332jdujUvT09ERGQkBEHAzZs34e7urnLzZTEMQCL+/vtveHp6Sl0GERERNcHly5fx2GOPPXQbBiARrVu3BlB3ANu0aSNxNURERNQYFRUV8PT0VH6PPwwDkIj6aa82bdowABERERmZxixf4SJoIiIiMjsMQERERGR2GICIiIjI7HANUDPU1taipqZG6jJIx6ysrGBpaSl1GUREpEUMQE0gCAKKiopQVlYmdSmkJ3K5HK6urrwuFBGRiWAAaoL68OPs7IxWrVrxS9GECYKA27dvo6SkBADg5uYmcUVERKQNDEAaqq2tVYafdu3aSV0O6UHLli0BACUlJXB2duZ0GBGRCeAiaA3Vr/lp1aqVxJWQPtX/e3PNFxGRaWAAaiJOe5kX/nsTEZkWBiAiIiIyOwxAREREZHYYgMxIbGwsZDIZZDIZrKys4OLigmeffRYbN26EQqFodD8ZGRmQy+W6K5SIiEjHGIDMTGRkJAoLC1FQUICvv/4aTz/9NGbMmIHnn38e9+7dk7o8IiIyA3fu3JG6BAYgc2NjYwNXV1d4eHigd+/eePvtt7Fr1y58/fXXyMjIAACsWLECPXr0gJ2dHTw9PTF58mTcunULAJCbm4uxY8eivLxcOZq0YMECAMDmzZsRHByM1q1bw9XVFa+88ory+jlEREQVFRVITk7G8uXLsXPnTklrMYgAtGbNGnh5ecHW1hYhISE4dOhQg9vu2LEDwcHBkMvlsLOzQ0BAADZv3qyyzYNTPfWPyMhIndUvCAKqq6v1/hAEQSv1P/PMM+jVqxd27NgBALCwsMCqVatw8uRJbNq0Cd9++y3mzJkDAAgLC0N6ejratGmDwsJCFBYWYvbs2QDqThFftGgRfvvtN+zcuRMFBQWIjY3VSo1ERGTcjhw5gpUrVyqfOzg4SFiNAVwIcfv27YiLi8O6desQEhKC9PR0RERE4OzZs3B2dlbbvm3btnjnnXfg7+8Pa2tr7N69G2PHjoWzszMiIiKU20VGRuKjjz5SPrexsdHZPtTU1CAlJUVn/TckISEB1tbWWunL398fx48fBwDMnDlT2e7l5YXFixfjzTffxIcffghra2s4ODhAJpPB1dVVpY9x48Yp/+7j44NVq1ahT58+uHXrFuzt7bVSJxERGRdBEPDhhx/i6tWryrZnn30WYWFhElZlAAFoxYoVmDBhAsaOHQsAWLduHb766its3LgR8fHxatsPHDhQ5fmMGTOwadMmHDhwQCUA1U/1UOMIgqC81s2+ffuQkpKCM2fOoKKiAvfu3cPdu3dx+/bth14A8vDhw1iwYAF+++033LhxQ7mw+tKlS3j88cf1sh9ERGQ4ysrK8P7776u0TZs2DW3btpWoovskDUDV1dU4fPgwEhISlG0WFhYIDw9HXl7eI98vCAK+/fZbnD17FsuWLVN5LTc3F87OznB0dMQzzzyDxYsX6+zWFVZWVir7oC9WVlZa6+v06dPw9vZGQUEBnn/+eUyaNAlLlixB27ZtceDAAYwfPx7V1dUNBqDKykpEREQgIiICn376Kdq3b49Lly4hIiIC1dXVWquTiIiMw6FDh/D1118rn8vlckyfPt1gLiwraQC6evUqamtr4eLiotLu4uKCM2fONPi+8vJyeHh4oKqqCpaWlvjwww/x7LPPKl+PjIzEiy++CG9vb1y4cAFvv/02hgwZgry8PNH7OFVVVaGqqkr5vKKiQqP9kMlkWpuKksK3336L33//Hf/5z39w+PBhKBQKvPfee7CwqFsi9tlnn6lsb21tjdraWpW2M2fO4Nq1a0hNTYWnpycA4Ndff9XPDhARkcEQBAErV67EzZs3lW3/+te/0KdPHwmrUif5FFhTtG7dGseOHcOtW7eQk5ODuLg4+Pj4KKfHRo0apdy2R48e6NmzJ3x9fZGbm4tBgwap9ZeSkoLk5GR9lS+pqqoqFBUVoba2FsXFxcjKykJKSgqef/55REdH48SJE6ipqcEHH3yAoUOH4scff8S6detU+vDy8lIe+169eqFVq1bo0KEDrK2t8cEHH+DNN9/EiRMnsGjRIon2koiIpPDHH39g69atKm0zZ86UfMGzGEnPAnNycoKlpSWKi4tV2ouLix+6fsfCwgJ+fn4ICAjArFmz8NJLLz10EbKPjw+cnJxw/vx50dcTEhJQXl6ufFy+fLlpO2QEsrKy4ObmBi8vL0RGRmL//v1YtWoVdu3aBUtLS/Tq1QsrVqzAsmXL0L17d3z66adqxzYsLAxvvvkmRo4cifbt22P58uVo3749MjIy8Pnnn+Pxxx9Hamoq0tLSJNpLIiLSt+XLl6uEH2dnZyQmJhpk+AEAmaCtc6mbKCQkBH379sUHH3wAAFAoFOjQoQOmTp0qughazLhx43Dx4kXk5uaKvn7lyhV06NABO3fuRFRU1CP7q6iogIODA8rLy9GmTRuV1+7evYv8/Hx4e3vD1ta2UfWR8eO/OxGRuHv37mHJkiUqbT4+PhgzZozea3nY9/c/ST4FFhcXh5iYGAQHB6Nv375IT09HZWWl8qyw6OhoeHh4KEchUlJSEBwcDF9fX1RVVWHPnj3YvHkz1q5dCwC4desWkpOTMWLECLi6uuLChQuYM2cO/Pz8VM4SIyIiouY5ceIEvvjiC5W2iRMnws3NTaKKGk/yADRy5EiUlpYiMTERRUVFCAgIQFZWlnJh9KVLl5SLcYG6s40mT56MK1euoGXLlvD398cnn3yCkSNHAgAsLS1x/PhxbNq0CWVlZXB3d8fgwYOxaNEinV4LiIiIyJyIrZ1NTEw0mLO8HkXyKTBDxCkw+if+uxMR1amurlZbG9q1a1e8/PLLElV0n1FNgREREZFxOHz4MHbv3q3SNnnyZLRv316iiprOIO4FRkRERIYtOTlZLfwkJSVpHH4yM4GwsLo/pcQRICIiImrQzZs3sWLFCpW23r17Y+jQoU3qLzUVyMur+7MRJ2brDAMQERERiVqxYoXKFZ0BYPr06XB0dGxyn/HxdeGnkVe60RkGICIiIlIjdpZXUlJSs/uNipJ25KceAxAREREplZSUKK+t9yBthB9DwkXQpHWxsbEYPny48vnAgQMxc+bMZvWpjT6IiOjhkpOT1cLPxIkTNQo/hrLI+VEYgMxIbGwsZDKZ8u71fn5+WLhwIe7du6fTn7tjx45G3xg1NzcXMpkMZWVlTe6DiIg019CUl6ZXdX5wkbMh4xSYmYmMjMRHH32kvI3IlClTYGVlhYSEBJXtqqurYW1trZWf2bZtW4Pog4iI1F2+fBkbN25UabO2tlb7XmgsQ1nk/CgcATIzNjY2cHV1RceOHTFp0iSEh4cjMzNTOW21ZMkSuLu7o0uXLgDq/sN4+eWXIZfL0bZtWwwbNgwFBQXK/mpraxEXFwe5XI527dphzpw5+OfFxf85fVVVVYW5c+fC09MTNjY28PPzw3//+18UFBTg6aefBgA4OjpCJpMhNjZWtI8bN24gOjoajo6OaNWqFYYMGYJz584pX8/IyIBcLkd2dja6du0Ke3t7REZGorCwULlNbm4u+vbtCzs7O8jlcjz55JP4888/tXSkiYgMX3Jyslr4mTp1apPDD1C3wPngQcNY6PwwDEBmrmXLlqiurgYA5OTk4OzZs/jmm2+we/du1NTUICIiAq1bt8YPP/yAH3/8URkk6t/z3nvvISMjAxs3bsSBAwdw/fp1fPnllw/9mdHR0di6dStWrVqF06dP4//9v/8He3t7eHp6Km+qd/bsWRQWFuL9998X7SM2Nha//vorMjMzkZeXB0EQ8K9//Qs1NTXKbW7fvo20tDRs3rwZ33//PS5duoTZs2cDqLt78fDhwzFgwAAcP34ceXl5mDhxotHcw4aIqLkamvJq166d6PbGsransTgFZqYEQUBOTg6ys7Mxbdo0lJaWws7ODhs2bFBOfX3yySdQKBTYsGGDMhh89NFHkMvlyM3NxeDBg5Geno6EhAS8+OKLAIB169YhOzu7wZ/7xx9/4LPPPsM333yD8PBwAICPj4/y9fqpLmdnZ8jlctE+zp07h8zMTPz4448ICwsDAHz66afw9PTEzp078e9//xsAUFNTg3Xr1sHX1xdA3f/VLFy4EEDd/WLKy8vx/PPPK1/v2rWr5geSiMjInDt3Dlu2bFFpc3JywpQpU0S3z8ysm9K6fh04e1b6CxhqCwOQhOo/VPHx+vsw7d69G/b29qipqYFCocArr7yCBQsWYMqUKejRo4fKup/ffvsN58+fR+vWrVX6uHv3Li5cuIDy8nIUFhYiJCRE+VqLFi0QHBysNg1W79ixY7C0tMSAAQOavA+nT59GixYtVH5uu3bt0KVLF5w+fVrZ1qpVK2W4AQA3NzeUlJQAqAtasbGxiIiIwLPPPovw8HC8/PLLGi/2IyIyJmKjPnFxcWq/5x9Uv6jZ3x8IDTX8tT2NxQAkISkuB/70009j7dq1sLa2hru7O1q0uP8RsLOzU9n21q1bCAoKwqeffqrWT1NvfNeyZcsmva8prKysVJ7LZDKVYPbRRx9h+vTpyMrKwvbt2zFv3jx88803eOKJJ/RWIxGRvjT1woYPLmo2hZGfelwDJKH4eP2naTs7O/j5+aFDhw4q4UdM7969ce7cOTg7O8PPz0/l4eDgAAcHB7i5ueHnn39WvufevXs4fPhwg3326NEDCoUC3333nejr9SNQtbW1DfbRtWtX3Lt3T+XnXrt2DWfPnsXjjz/+0H36p8DAQCQkJODgwYPo3r272rAwEZGx++mnn9TCj52dXaOv7WMsi5o1xQAkIUP/UL366qtwcnLCsGHD8MMPPyA/Px+5ubmYPn06rly5AgCYMWMGUlNTsXPnTpw5cwaTJ09Wu4bPg7y8vBATE4Nx48Zh586dyj4/++wzAEDHjh0hk8mwe/dulJaW4tatW2p9dOrUCcOGDcOECRNw4MAB/Pbbb3jttdfg4eGBYcOGNWrf8vPzkZCQgLy8PPz555/Yu3cvzp07x3VARGRSkpOT1dZlzp49W3lCiDljAKIGtWrVCt9//z06dOiAF198EV27dsX48eNx9+5dtGnTBgAwa9YsjBkzBjExMQgNDUXr1q3xwgsvPLTftWvX4qWXXsLkyZPh7++PCRMmoLKyEgDg4eGB5ORkxMfHw8XFBVOnThXt46OPPkJQUBCef/55hIaGQhAE7NmzR23a62H7dubMGYwYMQKdO3fGxIkTMWXKFLzxxhsaHCEiIsMkCEKDU17/XO5grmRCQ6tVzVhFRQUcHBxQXl6u/KKvd/fuXeTn58Pb2xu2trYSVUj6xn93IjIW+/btw48//qjS5u7ujgkTJkhUkf487Pv7n7gImoiIyESIjfrEx8fDxsZGgmoMGwMQERGRkautrcXixYvV2k3tDu7axABERERkxL788kscP35cpa1r1654+eWXJarIODAAERERGSmxKa933nnnkZc5IQagJuPacfPCf28iMiQ1NTVYunSpWjunvBqPAUhD9adZ3759W69XNSZp3b59G4D61aWJiPRt06ZNKCgoUGnr27cvhgwZIk1BRooBSEOWlpaQy+XKe0q1atWKdxA3YYIg4Pbt2ygpKYFcLoelpaXUJRGRGROb8kpMTOT3UBMwADWBq6srAChDEJk+uVyu/HcnItK3O3fuYPny5WrtnPJqOgagJpDJZHBzc4OzszNqamqkLod0zMrKiiM/RCSZ999/X+0WQ4MGDUK/fv2kKchEMAA1g6WlJb8YiYhIZzjlpTu8FxgREZGBqaioaPBeXs0NP5mZQFhY3Z/mjCNAREREBmThwoVql94YOnQoevfurZX+U1OBvLy6P6OitNKlUWIAIiIiMhANjfpoU3x8XfiJj9dqt0aHAYiIiEhihYWF+L//+z+1dl2c5RUVZd4jP/UYgIiIiCQkNurzwgsvoGfPnhJUYz64CJqIiEgiYuEnMDAJb77Z0+wXKesaR4CIiIj07OLFi9i8ebNae1JSEsLCuEhZHxiAiIiI9Ehs1OfVV1+Fn58fAC5S1hcGICIiIj1pzFleXKSsHwxAREREOnbixAl88cUXau28l5d0GICIiIh0SGzU5/XXX4eHh4cE1VA9gzgLbM2aNfDy8oKtrS1CQkJw6NChBrfdsWMHgoODIZfLYWdnh4CAALWFZIIgIDExEW5ubmjZsiXCw8Nx7tw5Xe8GERGRioamvBh+pCd5ANq+fTvi4uKQlJSEI0eOoFevXoiIiEBJSYno9m3btsU777yDvLw8HD9+HGPHjsXYsWORnZ2t3Gb58uVYtWoV1q1bh59//hl2dnaIiIjA3bt39bVbRERkxn766Se9XNWZmk4m/POGI3oWEhKCPn36YPXq1QAAhUIBT09PTJs2DfGNXALfu3dvPPfcc1i0aBEEQYC7uztmzZqF2bNnAwDKy8vh4uKCjIwMjBo16pH9VVRUwMHBAeXl5WjTpk3Td46IiMyOWPCZOnUq2rVrJ0E15kWT729JR4Cqq6tx+PBhhIeHK9ssLCwQHh6OvLy8R75fEATk5OTg7NmzeOqppwAA+fn5KCoqUunTwcEBISEhDfZZVVWFiooKlQcREZGmGhr1YfgxPJIGoKtXr6K2thYuLi4q7S4uLigqKmrwfeXl5bC3t4e1tTWee+45fPDBB3j22WcBQPk+TfpMSUmBg4OD8uHp6dmc3SIiIjOza9cu0fCTnc0pL0NllGeBtW7dGseOHcOtW7eQk5ODuLg4+Pj4YODAgU3qLyEhAXFxccrnFRUVDEFERNQoYsGnW7eZWLHCgRczNGCSBiAnJydYWlqiuLhYpb24uBiurq4Nvs/CwkJ5xcyAgACcPn0aKSkpGDhwoPJ9xcXFcHNzU+kzICBAtD8bGxvY2Ng0c2+IiMicCIKAhQsXqrXXL3R+6SV9V0SakHQKzNraGkFBQcjJyVG2KRQK5OTkIDQ0tNH9KBQKVFVVAQC8vb3h6uqq0mdFRQV+/vlnjfokIiISk5kJzJ276qHhhwyf5FNgcXFxiImJQXBwMPr27Yv09HRUVlZi7NixAIDo6Gh4eHggJSUFQN16neDgYPj6+qKqqgp79uzB5s2bsXbtWgCATCbDzJkzsXjxYnTq1Ane3t6YP38+3N3dMXz4cKl2k4iITMTRo8lo1Uq1rUePt5CW1gqBgbyNhbGQPACNHDkSpaWlSExMRFFREQICApCVlaVcxHzp0iVYWNwfqKqsrMTkyZNx5coVtGzZEv7+/vjkk08wcuRI5TZz5sxBZWUlJk6ciLKyMvTr1w9ZWVmwtbXV+/4REZFpqKmpwdKlS9XaeQd34yT5dYAMEa8DRERE9TIz60Z9xNRPeWVm3r+DOwOQdDT5/pZ8BIiIiMiQiYWfhIQEWFtbK5/zDu7GhwGIiIhIRGVlJdLS0tTaudDZNDAAERER/YPYtX0Ahh9TwgBERET0ALHwM3/+fJUTcsj4MQAREREBuHbtmvLG3A/iqI9pYgAiIiKzJzbq07JlS8yZM0eCakgfGICIiMisiYWfxMREyGQyCaohfWEAIiIis3T58mVs3LhRrZ1TXuaBAYiIiMyO2KhPx44dERsbq/9iSBIMQEREZFbEwg9HfcwPAxAREZmFU6dO4fPPP1drZ/gxTwxARERk8sRGfXr37o2hQ4dKUA0ZAgYgIiIyaZzyIjEMQEREZJLy8vKwd+9etXaGHwIYgIiIyASJjfqEh4fjySeflKAaMkQMQEREZFI45UWNwQBEREQmYc+ePfjll1/U2hl+SAwDEBERGT2xUZ8RI0age/fuElRDxoABiIiIjBqnvKgpGICIiMgoffzxx8jPz1drZ/ihxmAAIiIioyM26hMbG4uOHTtKUA0ZIwYgIiIyGoIgYOHChWrtHPUhTTEAERGRUUhLS0NlZaVaO8MPNYWF1AUQERE9KDMTCAur+7NecnKyWviZMmUKww81GQMQEREZlNRUIC+v7k+FQtHgWV5OTk4SVEemggGIiIgMSnw8EBoKREQkY9GiRWqvc9SHtIFrgIiIyKBERQFHj6qP+syaNQv29vYSVESmiCNAREQkmX+u96murm5wyovhh7SJI0BERCSZB9f7iI36AJzyIt1gACIiIsnEx9eFn4gI9fCTkJAAa2trCaoic8AAREREknn66Zs4enSFWjtHfUjXGICIiEgSYmt9AIYf0g8GICIi0pnMzLoprvj4urO76omFn/nz58PCgufmkH4wABERkdbVB5/r14GzZ+v+HhUFlJSUYO3atWrbc9SH9E0mCIIgdRGGpqKiAg4ODigvL0ebNm2kLoeIyOiEhdWd3eXvDzg61o0A8Swv0jVNvr85AkRERFpXf3ZX/dSX2JRXYmIiZDKZBNURcQRIFEeAiIi04+LFi9i8ebNaO0d9SBc4AkRERJITG/VxcXHBm2++KUE1RKoYgIiISOsaup0FkaEwiPMN16xZAy8vL9ja2iIkJASHDh1qcNv169ejf//+cHR0hKOjI8LDw9W2j42NhUwmU3lERkbqejeIiMxeXl4eww8ZBckD0Pbt2xEXF4ekpCQcOXIEvXr1QkREBEpKSkS3z83NxejRo7F//37k5eXB09MTgwcPxl9//aWyXWRkJAoLC5WPrVu36mN3iIhMXmZm3dldXbvev4kpUDfqs3fvXpVtO3fuzPBDBknyRdAhISHo06cPVq9eDQBQKBTw9PTEtGnTEB8f/8j319bWwtHREatXr0Z0dDSAuhGgsrIy7Ny5s0k1cRE0EVHD6k9xB4DQUODgQU55kWHQ5Ptb0hGg6upqHD58GOHh4co2CwsLhIeHI6/+v65HuH37NmpqatC2bVuV9tzcXDg7O6NLly6YNGkSrl271mAfVVVVqKioUHkQEdF9mZl1wSczs+7U9i5d6kaBXnllN8MPGSVJA9DVq1dRW1sLFxcXlXYXFxcUFRU1qo+5c+fC3d1dJURFRkbi448/Rk5ODpYtW4bvvvsOQ4YMQW1trWgfKSkpcHBwUD48PT2bvlNERCYoNbVu1Kf+is5nzgCjRiXj2rXDKtv16dOH4YeMglGfBZaamopt27YhNzcXtra2yvZRo0Yp/96jRw/07NkTvr6+yM3NxaBBg9T6SUhIQFxcnPJ5RUUFQxAR0QMevLAhwCkvMn6SjgA5OTnB0tISxcXFKu3FxcVwdXV96HvT0tKQmpqKvXv3omfPng/d1sfHB05OTjh//rzo6zY2NmjTpo3Kg4iI7ouKqlvrc+XKhww/ZBIkDUDW1tYICgpCTk6Osk2hUCAnJwehoaENvm/58uVYtGgRsrKyEBwc/Mifc+XKFVy7dg1ubm5aqZuIyBwlJyejtLRUpS0yMpLhh4yS5FNgcXFxiImJQXBwMPr27Yv09HRUVlZi7NixAIDo6Gh4eHggJSUFALBs2TIkJiZiy5Yt8PLyUq4Vsre3h729PW7duoXk5GSMGDECrq6uuHDhAubMmQM/Pz9ERERItp9ERMaMoz5kaiQPQCNHjkRpaSkSExNRVFSEgIAAZGVlKRdGX7p0CRYW9weq1q5di+rqarz00ksq/SQlJWHBggWwtLTE8ePHsWnTJpSVlcHd3R2DBw/GokWLYGNjo9d9IyIydmLBB2D4IeMn+XWADBGvA0REJB5+Xn75ZXTt2lWCaogejTdDJSKiJhMEAQsXLlRr56gPmRIGICIiUuKUF5kLBiAiIgIgHn7Gjx+Pxx57TIJqiHSLAYiIyMzV1tZi8eLFau0c9SFTxgBERGTGOOVF5ooBiIjITImFnxkzZkAul+u/GCI9YwAiIjIzd+7cwfLly9XaOepD5kTSW2EQEZH2ZWYCYWF1f/5TcnIyww8ROAJERGRyUlOBvLy6P6Oi7reLTXnNnTsXtra2eqyOyDBwBIiIyMTExwOhoXV/AsD169cbvJcXww+ZK44AERGZmKio+yM/PMuLSJzGAcjS0hKFhYVwdnZWab927RqcnZ1RW1urteKIiKjpxMLP/PnzVW4wTWSuNA5ADd07taqqCtbW1s0uiIiImufPP/9ERkaGWjtHfYjua3QAWrVqFQBAJpNhw4YNsLe3V75WW1uL77//Hv7+/tqvkIiIGo1TXkSN0+gAtHLlSgB1I0Dr1q2DpaWl8jVra2t4eXlh3bp12q+QiIgapaGFzkSkrtEBKD8/HwDw9NNPY8eOHXB0dNRZUURE1HjHjh3Drl271NoZfogapvEaoP379+uiDiIiagJOeRE1jcYBaNy4cQ99fePGjU0uhoiIGo9TXkRNp3EAunHjhsrzmpoanDhxAmVlZXjmmWe0VhgREYnLycnBgQMH1NoZfogaT+MA9OWXX6q1KRQKTJo0Cb6+vlopioiIxImN+rRr1w5Tp06VoBoi4yUTGrqwj4bOnj2LgQMHorCwUBvdSaqiogIODg4oLy9HmzZtpC6HiAgAp7yIHkWT72+t3QrjwoULuHfvnra6IyKi/9+WLVtw7tw5tXaGH6Km0zgAxcXFqTwXBAGFhYX46quvEBMTo7XCiIhIfNSne/fuGDFihATVEJkOjQPQ0aNHVZ5bWFigffv2eO+99x55hhgREanLzARSU+vu3l5/E1OAU15EuqS1NUCmhGuAiEifwsKAvDwgNBQ4eBB49913cfv2bbXtGH6IHk4va4BKSkpw9uxZAECXLl3U7g5PRESNEx9/fwRIbNTnmWeeQf/+/SWojMh0WWj6hoqKCowZMwbu7u4YMGAABgwYAA8PD7z22msoLy/XRY1ERCYtKqpu5OfoUfEpL4YfIu3TOABNmDABP//8M7766iuUlZWhrKwMu3fvxq+//oo33nhDFzUSEZm05ORkrvch0jON1wDZ2dkhOzsb/fr1U2n/4YcfEBkZicrKSq0WKAWuASIifRELPl5e/0ZMzOMSVENk3HS6Bqhdu3ZwcHBQa3dwcOAd4omIGkkQBCxcuFCtnaM+RPqh8RTYvHnzEBcXh6KiImVbUVER3nrrLcyfP1+rxRERmYLMzLozvTIz654nJycz/BBJTOMpsMDAQJw/fx5VVVXo0KEDAODSpUuwsbFBp06dVLY9cuSI9irVI06BEZE21Z/mbm8PzJ6tPuU1btw4eHp6SlAZkWnR6RTYsGHDIJPJmlwcEZG5iY8HoqPv4T//WaL2Gkd9iKTBCyGK4AgQEWmT2EJngOGHSNt0OgLk4+ODX375Be3atVNpLysrQ+/evXHx4kVNuyQiMlli4WfGjBmQy+X6L4aIlDQOQAUFBaitrVVrr6qqwpUrV7RSFBGRsausrERaWppaO0d9iAxDowNQZv3pCwCys7NVToWvra1FTk4OvL29tVsdEZER4pQXkeFrdAAaPnw4AEAmkyEmJkblNSsrK3h5eeG9997TanFERMZGLPzMnTsXtra2ElRDRA1pdABSKBQAAG9vb/zyyy9wcnLSWVFERMampKQEa9euVWvnqA+RYdL4Qoj5+flaDz9r1qyBl5cXbG1tERISgkOHDjW47fr169G/f384OjrC0dER4eHhatsLgoDExES4ubmhZcuWCA8Px7lz57RaMxFRveTkZIYfIiOj8SJosauXPigxMVGj/rZv3464uDisW7cOISEhSE9PR0REBM6ePQtnZ2e17XNzczF69GiEhYXB1tYWy5Ytw+DBg3Hy5El4eHgAAJYvX45Vq1Zh06ZN8Pb2xvz58xEREYFTp05xGJqItEpsymv+/PmwsND4/y+JSI+adCXoB9XU1CA/Px8tWrSAr6+vxld/DgkJQZ8+fbB69WoAdVNtnp6emDZtGuLj4x/5/traWjg6OmL16tWIjo6GIAhwd3fHrFmzMHv2bABAeXk5XFxckJGRgVGjRj2yT14HiIge5ezZs9i2bZtaO0d9iKSj0+sAHT16VPQHxsbG4oUXXtCor+rqahw+fBgJCQnKNgsLC4SHhyMvL69Rfdy+fRs1NTVo27YtgLopuqKiIoSHhyu3cXBwQEhICPLy8kQDUFVVFaqqqlT2h4ioITzLi8j4aRyAxLRp0wbJyckYOnQoxowZ0+j3Xb16FbW1tXBxcVFpd3FxwZkzZxrVx9y5c+Hu7q4MPPU3aRXr88EbuD4oJSWlwV9oREQPEvtdweBDZHy0NkldXl6O8vJybXXXKKmpqdi2bRu+/PLLZq3tSUhIUNZfXl6Oy5cva7FKIjIFBw8eZPghMiEajwCtWrVK5bkgCCgsLMTmzZsxZMgQjfpycnKCpaUliouLVdqLi4vh6ur60PempaUhNTUV+/btQ8+ePZXt9e8rLi6Gm5ubSp8BAQGifdnY2MDGxkaj2onIfHDKi8j0aByAVq5cqfLcwsIC7du3R0xMjMpansawtrZGUFAQcnJylBdaVCgUyMnJwdSpUxt83/Lly7FkyRJkZ2cjODhY5TVvb2+4uroiJydHGXgqKirw888/Y9KkSRrVR0TEUR8i06RxAMrPz9dqAXFxcYiJiUFwcDD69u2L9PR0VFZWYuzYsQCA6OhoeHh4ICUlBQCwbNkyJCYmYsuWLfDy8lKu67G3t4e9vT1kMhlmzpyJxYsXo1OnTsrT4N3d3ZUhi4joUb744gucOHFCrZ3hh8g0NGkRdFlZGc6fPw8A8PPza9ZdjUeOHInS0lIkJiaiqKgIAQEByMrKUi5ivnTpksr1NNauXYvq6mq89NJLKv0kJSVhwYIFAIA5c+agsrISEydORFlZGfr164esrCxeA4iIGoVTXkSmT6PrABUUFGDKlCnIzs5G/dtkMhkiIyOxevVqeHl56apOveJ1gIjMF6e8iIyXTq4DdPnyZTzxxBOwsrLCokWL0LVrVwDAqVOnsHbtWoSGhuKXX37BY4891rzqiYgkkJ6eLnomK8MPkWlq9AjQ+PHjcf78eWRnZ6tNJd25cweRkZHo1KkTNmzYoJNC9YkjQESmLzMTSE0F4uOBo0fVR306duyI2NhY/RdGRE2mkxGgrKwsbN++XXQdTcuWLbFo0aJG3WaCiEgqD4ae1FQgL088/HDUh8j0NToAXb169aFrfHx8fHD9+nVt1EREpBP1oSc1FYiISEZEhPo2DD9E5qHRV4J2c3PDqVOnGnz9xIkTj7x4IRGRlOLjgdDQuvDzT6GhoQw/RGak0QFo+PDhmD17NkpLS9VeKykpwdy5c3mdHSIySJmZQFhY3d/Fwk9SUhIGDx6s56qISEqNXgR948YNhISEoKioCK+99hr8/f0hCAJOnz6NLVu2wNXVFT/99JPyruzGjIugiUxLWJh48AE45UVkSnSyCNrR0RE///wz3n77bWzbtg1lZWUAALlcjldeeQVLly41ifBDRKZHLPw8//zzCAoKkqAaIjIEGl0IsZ4gCMqpsPbt20Mmk2m9MClxBIjINAiCgIULF6q1c9SHyDTpZAToQTKZDM7Ozk0qjohIH3g7CyJ6mCYFICIiQyYWfmJiYkzmdj1E1HwMQERkMmpqarB06VK1do76ENE/MQARkUnglBcRaYIBiIiMnlj4mTZtGs9MJaIGNSoArVq1qtEdTp8+vcnFEBFp4ubNm1ixYoVaO0d9iOhRGnUavLe3d+M6k8lw8eLFZhclNZ4GT2T4OOVFRP+k9dPg8/PztVIYEZE2iIWfuXPnwtbWVoJqiMgYNXkNUHV1NfLz8+Hr64sWLbiUiIh07++//8b69evV2jnqQ0SaavTNUOvdvn0b48ePR6tWrdCtWzdcunQJQN2Cw9TUVK0XSEQE1I36MPwQkbZoHIASEhLw22+/ITc3V2W4OTw8HNu3b9dqcUREgPiU1/z58xl+iKjJNJ672rlzJ7Zv344nnnhC5R5g3bp1w4ULF7RaHBGZtxMnTuCLL75Qa2fwIaLm0jgAlZaWit4HrLKy0uRuikpE0uFZXkSkSxoHoODgYHz11VeYNm0aAChDz4YNGxAaGqrd6ojILImFHwYfItImjQPQ0qVLMWTIEJw6dQr37t3D+++/j1OnTuHgwYP47rvvdFEjEZm4zEwgNRUYM2YfSkp+VHud4YeItE3jRdD9+vXDsWPHcO/ePfTo0QN79+6Fs7Mz8vLyEBQUpIsaicjEpaYCERHJDD9EpDdNuoCPr6+v6OmoRERNERGhPuWVnZ2E+HgJiiEis9CoAFRRUdHoDnnrCCJqrE8//RTnz59Xa09KSgIHfohIlxoVgORyeaPP8KqtrW1WQURkHniWFxFJqVEBaP/+/cq/FxQUID4+HrGxscqzvvLy8rBp0yakpKTopkoiMik8y4uIpNaou8E/aNCgQXj99dcxevRolfYtW7bg//7v/5Cbm6vN+iTBu8ET6cZ7772HW7duqbUz/BCRNmjy/a3xWWB5eXkIDg5Waw8ODsahQ4c07Y6IzERycrJa+LGz82T4ISJJaByAPD09Rc8A27BhAzw9PbVSFBGZloamvGbPHidBNURETTgNfuXKlRgxYgS+/vprhISEAAAOHTqEc+fOid6zh4jMFxc6E5Gh0ngNEABcuXIFH374Ic6cOQMA6Nq1K958802TGQHiGiCi5hMLP/369cOgQYMkqIaIzIEm399NCkCmjgGIqHl4lhcRSUGT7+8mXQm6rKwM//3vf3H69GkAQLdu3TBu3Dg4ODg0pTsiMhGc8iIiY6HxCNCvv/6KiIgItGzZEn379gUA/PLLL7hz5w727t2L3r1766RQfeIIEJFmMjOBo0fVw88LL7yAnj17SlAREZkjnU6B9e/fH35+fli/fj1atKgbQLp37x5ef/11XLx4Ed9//33TKzcQDEBEjScIAhYuXKjWzlEfItI3nV4H6Ndff8XcuXOV4QcAWrRogTlz5uDXX3/VuNg1a9bAy8sLtra2CAkJeei1hE6ePIkRI0bAy8sLMpkM6enpatssWLAAMplM5eHv769xXUT0aMnJyQw/RGSUNA5Abdq0waVLl9TaL1++jNatW2vU1/bt2xEXF4ekpCQcOXIEvXr1QkREBEpKSkS3v337Nnx8fJCamgpXV9cG++3WrRsKCwuVjwMHDmhUFxE9mth6n3HjxjH8EJFR0DgAjRw5EuPHj8f27dtx+fJlXL58Gdu2bRO9PcajrFixAhMmTMDYsWPx+OOPY926dWjVqhU2btwoun2fPn3w7rvvYtSoUbCxsWmw3xYtWsDV1VX5cHJy0qguImpYTU1Ng2d5mcqlMIjI9Gl8FlhaWhpkMhmio6Nx7949AICVlRUmTZqE1NTURvdTXV2Nw4cPIyEhQdlmYWGB8PBw5OXlaVqWinPnzsHd3R22trYIDQ1FSkoKOnTo0Kw+iYhneRGR6dA4AFlbW+P9999HSkoKLly4AADw9fVFq1atNOrn6tWrqK2thYuLi0q7i4uL8gKLTRESEoKMjAx06dIFhYWFSE5ORv/+/XHixIkGp+iqqqpQVVWlfF5RUdHkn09kqsTCz8yZM3n5CyIySk26DhAAtGrVCj169NBmLVoxZMgQ5d979uyJkJAQdOzYEZ999hnGjx8v+p6UlJQG/8+WyNzdvHkTK1asUGvnqA8RGbNGB6Bx4xp308KG1u/8k5OTEywtLVFcXKzSXlxc/NAFzpqSy+Xo3Lkzzp8/3+A2CQkJiIuLUz6vqKjgWgYicMqLiExXowNQRkYGOnbsiMDAQGjj7hnW1tYICgpCTk4Ohg8fDgBQKBTIycnB1KlTm91/vVu3buHChQsYM2ZMg9vY2Ng8dFE1kTkSCz8JCQmwtraWoBoiIu1qdACaNGkStm7divz8fIwdOxavvfYa2rZt26wfHhcXh5iYGAQHB6Nv375IT09HZWUlxo4dCwCIjo6Gh4cHUlJSANQtnD516pTy73/99ReOHTsGe3t7+Pn5AQBmz56NoUOHomPHjvj777+RlJQES0tLjc9QIzJXf/31FzZs2KDWzlEfIjIlGl0JuqqqCjt27MDGjRtx8OBBPPfccxg/fjwGDx4MmUzWpAJWr16Nd999F0VFRQgICMCqVasQEhICABg4cCC8vLyQkZEBACgoKIC3t7daHwMGDEBubi4AYNSoUfj+++9x7do1tG/fHv369cOSJUvg6+vb6Jp4JWgyV5zyIiJjppe7wf/555/IyMjAxx9/jHv37uHkyZOwt7dvUsGGhgGIzJFY+Jk/fz4sLDS+XBgRkSR0eisM5RstLCCTySAIAmpra5vaDRFJKDMTePHFE6LhJzAwCf36WSAzU4LCiIh0TKMAVFVVha1bt+LZZ59F586d8fvvv2P16tW4dOmSyYz+EJmTo0eT0avXF2rtSUlJSE0F8vIADa5vSkRkNBq9CHry5MnYtm0bPD09MW7cOGzdupW3mCAyYg3dzqJefHxd+ImP12dVRET60eg1QBYWFujQoQMCAwMfuuB5x44dWitOKlwDRKbs22+/xQ8//KDWzoXORGTsNPn+bvQIUHR0dJPP9CIiw8CzvIiI6mh0IUQiMl4NTXllZgJhYXVTXVFREhRGRCSBJt8LjIiMwyeffKK8cfGD6kd9HlzszABEROaCF/ggMmHJyclq4cfKykptsXNoKBc7E5F54QgQkYl61Fle9aKiOPJDROaHAYjIxKSkpKC6ulqtnQudiYjuYwAiMiFioz6+vr547bXXJKiGiMhwMQARmYiGbmfB6S0iInUMQERGjtf2ISLSHAMQkRETCz/9+vXDoEGDJKiGiMh4MAARGanGnuVFRETqGICIjAynvIiImo8BiMiIiIWfF198ET169JCgGiIi48UARGQEBEHAwoUL1do56kNE1DQMQEQGrqEpr+zsJAQG8irORERNwXuBERkwsfAzbtw4ZGcnKW9gSkREmmMAIjJAVVVVDZ7l5enpyRuYEhE1E6fAiAxMQ1NegYFJCAurCz28gSkRUfMwABEZELHwM2PGDMjlcoSFQTntxfBDRNQ8nAIjMgA3btxocMpLLpcDAKe9iIi0iCNARBJr7IUNOe1FRKQ9HAEikpBY+Nm3Lx6Bgby+DxGRLnEEiEgCf/75JzIyMtTak5KSwGsbEhHpHgMQkZ7xXl5ERNJjACLSI7Hwk5iYCJlMJkE1RETmiwGISA8OHz6M3bt3q7XzdhZERNJgACLSsYfdy4vX9SEikgYDEJEONXRtHwAIDKwLP7yuDxGR/jEAEenA7t27cfjwYbX2Bxc687o+RETSYQAi0jKe5UVEZPgYgIi06GFTXkREZDgYgIi04IMPPsD169fV2hl+iIgMEwMQUTNxyouIyPgwABE1g1j4CQxM4uJmIiIDxwBE1AQNjfosWJCE0FCe3UVEZOgkvxv8mjVr4OXlBVtbW4SEhODQoUMNbnvy5EmMGDECXl5ekMlkSE9Pb3afRJoSCz/Ozs4IDKwLP7yuDxGR4ZM0AG3fvh1xcXFISkrCkSNH0KtXL0RERKCkpER0+9u3b8PHxwepqalwdXXVSp9EmmjoLK9JkyYhKgo4eJCjP0RExkAmCIIg1Q8PCQlBnz59sHr1agCAQqGAp6cnpk2bhvhH/G+0l5cXZs6ciZkzZ2qtz3oVFRVwcHBAeXk52rRpo/mOkcnhQmciIsOnyfe3ZCNA1dXVOHz4MMLDw+8XY2GB8PBw5OXl6bXPqqoqVFRUqDyI6omFn+DgYIYfIiIjJlkAunr1Kmpra+Hi4qLS7uLigqKiIr32mZKSAgcHB+XD09OzST+fTE9DZ3ktWfIcMjMlKIiIiLSCZ4EBSEhIQFxcnPJ5RUUFQ5CZe9iUV1gYeBd3IiIjJ1kAcnJygqWlJYqLi1Xai4uLG1zgrKs+bWxsYGNj06SfSaZHLPwMHToUvXv3BlB3lhfv4k5EZNwkmwKztrZGUFAQcnJylG0KhQI5OTkIDQ01mD7JfCgUigbP8qoPPwB4thcRkQmQdAosLi4OMTExCA4ORt++fZGeno7KykqMHTsWABAdHQ0PDw+kpKQAqFvkfOrUKeXf//rrLxw7dgz29vbw8/NrVJ9EYniWFxGReZE0AI0cORKlpaVITExEUVERAgICkJWVpVzEfOnSJVhY3B+k+vvvvxEYGKh8npaWhrS0NAwYMAC5ubmN6pPon8TCT2xsLDp27ChBNUREpA+SXgfIUPE6QObh7t27WLZsmVo7R32IiIyTJt/fPAuMzFJDU16BgQw/RETmgAGIzI5Y+JkxYwbkcrn+iyEiIkkwAJHZuHbtmvIWKQ/ilBcRkflhACKzwLO8iIjoQQxAZPLEwk9CQgKsra0lqIaIiAyBZBdCJNK1ixcvioaf7Owkhh8iIjPHESAySQ1NeWVnJ/EWFkRExABEpkcs/CQmJkImk4FLfoiICGAAIhNy+PBh7N69W62dC52JiOifuAaITEJycrJo+Nm2jeGHiIjUcQSIjJ7YlNfWrUk4exbo0kWCgoiIyOAxAJHR2rNnD3755Re19qSkJAQGAqmp4IJnIiISxQBERulRFzaMiqp7EBERiWEAIqMjFn640JmIiDTBAERGY8OGDfjrr7/U2hl+iIhIUwxAZBTERn1qaqywePHbElRDRETGjqfBk8ETCz8LFiThf/9TDz+ZmUBYWN2fREREDeEIEBmshhY6BwYmITRU/Ayv1FQgL6/uTy6CJiKihjAAkUESCz+dO3fG6NGjATQcbuLjefo7ERE9GgMQGZzmnOXF09+JiKgxGIDIYDzq2j5ERETawgBEBkEs/AwcOBADBgyQoBoiIjJ1DEAkOV7YkIiI9I0BiCTDKS8iIpIKAxBJQiz8jBw5Ev7+/hJUQ0RE5oYBiPRKoVBg0aJFau2BgUlg9iEiIn1hACK94ZQXEREZCgYg0gux8PPmm2/CxcVFgmqIiMjcMQCRTlVVVSE1NVWtnaM+REQkJd4MlXQmOTlZo/DDG5kSEZG+cASIdEJsymv27Nmws7Nr8D28kSkREekLR4BIq65fv97ghQ0fFn6AuhuYNnSXdyIiIm3iCBBpTXPP8uKNTImISF84AkRaIRZ+PvvsHQQGcrEzEREZHgYgapb8/HzR8JOdnYRTp1pAZA00ERGR5DgFRk32sCmvwMC6xcxcz0NERIaIAYiaRCz8JCYmQiaTAeB6HiIiMmwMQKSRjz46ikuX1C/UwwsbEhGRMWEAokbjvbyIiMhUGMQi6DVr1sDLywu2trYICQnBoUOHHrr9559/Dn9/f9ja2qJHjx7Ys2ePyuuxsbGQyWQqj8jISF3ugskTCz9paUmormb4ISIi4yN5ANq+fTvi4uKQlJSEI0eOoFevXoiIiEBJSYno9gcPHsTo0aMxfvx4HD16FMOHD8fw4cNx4sQJle0iIyNRWFiofGzdulUfu2Ny9u3b1+CFDW/eBJYskaAoIiKiZpIJgiBIWUBISAj69OmD1atXAwAUCgU8PT0xbdo0xIucQjRy5EhUVlZi9+7dyrYnnngCAQEBWLduHYC6EaCysjLs3LmzSTVVVFTAwcEB5eXlaNOmTZP6MAWc8iIiImOiyfe3pCNA1dXVOHz4MMLDw5VtFhYWCA8PR15enuh78vLyVLYHgIiICLXtc3Nz4ezsjC5dumDSpEm4du1ag3VUVVWhoqJC5WHuGhr1YfghIiJTIGkAunr1Kmpra+Hi4qLS7uLigqKiItH3FBUVPXL7yMhIfPzxx8jJycGyZcvw3XffYciQIaitrRXtMyUlBQ4ODsqHp6dnM/fMeG3fvr3BCxsSERGZCpM8C2zUqFHKv/fo0QM9e/aEr68vcnNzMWjQILXtExISEBcXp3xeUVFhliFILPi0bOmKnTvf4AUNiYjIpEgagJycnGBpaYni4mKV9uLiYri6uoq+x9XVVaPtAcDHxwdOTk44f/68aACysbGBjY1NE/bAdDQ05QUAc+bouxoiIiLdknQKzNraGkFBQcjJyVG2KRQK5OTkIDQ0VPQ9oaGhKtsDwDfffNPg9gBw5coVXLt2DW5ubtop3ISkpq55aPghIiIyRZKfBh8XF4f169dj06ZNOH36NCZNmoTKykqMHTsWABAdHY2EhATl9jNmzEBWVhbee+89nDlzBgsWLMCvv/6KqVOnAgBu3bqFt956Cz/99BMKCgqQk5ODYcOGwc/PDxEREZLso6FKTk5GVdVVlbb27UMQGJiEsDAgU/2Cz0RERCZB8jVAI0eORGlpKRITE1FUVISAgABkZWUpFzpfunQJFhb3c1pYWBi2bNmCefPm4e2330anTp2wc+dOdO/eHQBgaWmJ48ePY9OmTSgrK4O7uzsGDx6MRYsWmf0014MeNuoTFgbk5dXdzJT38yIiIlMk+XWADJEpXweooWv7ZGcnIT6+LvBkZt6/kzsDEBERGQtNvr8ZgESYagASCz8jRozAxIndkZcHhIYCBw9KUBgREZEWaPL9LfkUGOnHw6a84uPvj/gQERGZAwYgE9eY21lERXGqi4iIzAsDkAkTCz9jx45Fhw4dJKiGiIjIcEh+Gjxpn0KhaPB2Fgw/REREHAEyOY86y4uIiIgYgEyKWPiZMWMG5HI5eGFnIiKi+xiATEBNTQ2WLl2q1s7bWRAREYljADJyjTnLi4iIiFQxABmpd94BrK3Vw0/PnnPxwgu2ElRERERkPHgWmBG6c+eOaPhZsCAJ777L8ENERPQoDEBGJjk5GcuXL1drr65Ogr098PTT6u/JzATv7k5ERPQABiAjIrbeZ+/e+QgMTML+/cCtW8D+/ervS029f3d3IiIi4hogo1BeXo709HS19qSkJJXT2xu6nxfv9UVERKSKd4MXYUh3gxcb9fH29kZ0dLQE1RARERkuTb6/OQVmwMTCT2JiIuTyaK7pISIiagYGIAN09epV0fCTlJQEmUzGNT1ERETNxDVABkYs+Dz55JMIDw9XPueaHiIiouZhADIgDY36/FNUVN2DiIiImoYByAC8804prK0/VGvn7SyIiIh0gwFIYp9++imsrc+rtB0//gK++KKnRBURERGZPgYgCYlNeWVnJ3FtDxERkY4xAOlZZibw/vvX8dRTH6i0W1tbIyEhAZz1IiIi0j0GID374otdeOqpYyptjz8+Df/+d1tpCiIiIjJDDEB6VFpaCh+fYyptXOhMRESkfwxAenTt2jXl3xWKzkhOHi1hNUREROaLAUiP/P398d13M5Gb2xpPPGEBkTXQREREpAcMQHo2c6YD7t7lVZyJiIikxACkZ7yKMxERkfR4M1QiIiIyOwxAREREZHYYgIiIiMjsMAARERGR2WEAIiIiIrPDAERERERmhwGIiIiIzA4DEBEREZkdBiAiIiIyOwxAREREZHYYgIiIiMjsMAARERGR2WEAIiIiIrPDu8GLEAQBAFBRUSFxJURERNRY9d/b9d/jD8MAJOLmzZsAAE9PT4krISIiIk3dvHkTDg4OD91GJjQmJpkZhUKBv//+G61bt4ZMJpO6HMlUVFTA09MTly9fRps2baQuR1I8FvfxWNThcbiPx+I+Hov7pDgWgiDg5s2bcHd3h4XFw1f5cARIhIWFBR577DGpyzAYbdq0Mfv/kOvxWNzHY1GHx+E+Hov7eCzu0/exeNTITz0ugiYiIiKzwwBEREREZocBiBpkY2ODpKQk2NjYSF2K5Hgs7uOxqMPjcB+PxX08FvcZ+rHgImgiIiIyOxwBIiIiIrPDAERERERmhwGIiIiIzA4DEBEREZkdBiAzsmbNGnh5ecHW1hYhISE4dOjQQ7f//PPP4e/vD1tbW/To0QN79uxReT02NhYymUzlERkZqctd0BpNjsXJkycxYsQIeHl5QSaTIT09vdl9GhJtH4sFCxaofS78/f11uAfao8mxWL9+Pfr37w9HR0c4OjoiPDxcbXtBEJCYmAg3Nze0bNkS4eHhOHfunK53Qyu0fSzM5ffFjh07EBwcDLlcDjs7OwQEBGDz5s0q25jL56Ixx0LSz4VAZmHbtm2CtbW1sHHjRuHkyZPChAkTBLlcLhQXF4tu/+OPPwqWlpbC8uXLhVOnTgnz5s0TrKyshN9//125TUxMjBAZGSkUFhYqH9evX9fXLjWZpsfi0KFDwuzZs4WtW7cKrq6uwsqVK5vdp6HQxbFISkoSunXrpvK5KC0t1fGeNJ+mx+KVV14R1qxZIxw9elQ4ffq0EBsbKzg4OAhXrlxRbpOamio4ODgIO3fuFH777TchKipK8Pb2Fu7cuaOv3WoSXRwLc/l9sX//fmHHjh3CqVOnhPPnzwvp6emCpaWlkJWVpdzGXD4XjTkWUn4uGIDMRN++fYUpU6Yon9fW1gru7u5CSkqK6PYvv/yy8Nxzz6m0hYSECG+88YbyeUxMjDBs2DCd1KtLmh6LB3Xs2FH0S785fUpJF8ciKSlJ6NWrlxar1I/m/hveu3dPaN26tbBp0yZBEARBoVAIrq6uwrvvvqvcpqysTLCxsRG2bt2q3eK1TNvHQhDM8/dFvcDAQGHevHmCIJj350IQVI+FIEj7ueAUmBmorq7G4cOHER4ermyzsLBAeHg48vLyRN+Tl5ensj0AREREqG2fm5sLZ2dndOnSBZMmTcK1a9e0vwNa1JRjIUWf+qDLus+dOwd3d3f4+Pjg1VdfxaVLl5pbrk5p41jcvn0bNTU1aNu2LQAgPz8fRUVFKn06ODggJCTE5D8X/zwW9czt94UgCMjJycHZs2fx1FNPATDfz4XYsagn1eeCN0M1A1evXkVtbS1cXFxU2l1cXHDmzBnR9xQVFYluX1RUpHweGRmJF198Ed7e3rhw4QLefvttDBkyBHl5ebC0tNT+jmhBU46FFH3qg67qDgkJQUZGBrp06YLCwkIkJyejf//+OHHiBFq3bt3csnVCG8di7ty5cHd3V35B1P+38qj/jgyNLo4FYF6/L8rLy+Hh4YGqqipYWlriww8/xLPPPgvA/D4XDzsWgLSfCwYgarJRo0Yp/96jRw/07NkTvr6+yM3NxaBBgySsjKQ0ZMgQ5d979uyJkJAQdOzYEZ999hnGjx8vYWW6k5qaim3btiE3Nxe2trZSlyOpho6FOf2+aN26NY4dO4Zbt24hJycHcXFx8PHxwcCBA6UuTe8edSyk/FxwCswMODk5wdLSEsXFxSrtxcXFcHV1FX2Pq6urRtsDgI+PD5ycnHD+/PnmF60jTTkWUvSpD/qqWy6Xo3Pnzib7uUhLS0Nqair27t2Lnj17Ktvr32dOn4uGjoUYU/59YWFhAT8/PwQEBGDWrFl46aWXkJKSAsD8PhcPOxZi9Pm5YAAyA9bW1ggKCkJOTo6yTaFQICcnB6GhoaLvCQ0NVdkeAL755psGtweAK1eu4Nq1a3Bzc9NO4TrQlGMhRZ/6oK+6b926hQsXLpjk52L58uVYtGgRsrKyEBwcrPKat7c3XF1dVfqsqKjAzz//bJKfi4cdCzHm9PtCoVCgqqoKgPl9Lv7pwWMhRq+fC0mWXpPebdu2TbCxsREyMjKEU6dOCRMnThTkcrlQVFQkCIIgjBkzRoiPj1du/+OPPwotWrQQ0tLShNOnTwtJSUkqp8HfvHlTmD17tpCXlyfk5+cL+/btE3r37i106tRJuHv3riT72FiaHouqqirh6NGjwtGjRwU3Nzdh9uzZwtGjR4Vz5841uk9DpYtjMWvWLCE3N1fIz88XfvzxRyE8PFxwcnISSkpK9L5/mtD0WKSmpgrW1tbC//73P5VTeG/evKmyjVwuF3bt2iUcP35cGDZsmNGc7qzNY2FOvy+WLl0q7N27V7hw4YJw6tQpIS0tTWjRooWwfv165Tbm8rl41LGQ+nPBAGRGPvjgA6FDhw6CtbW10LdvX+Gnn35SvjZgwAAhJiZGZfvPPvtM6Ny5s2BtbS1069ZN+Oqrr5Sv3b59Wxg8eLDQvn17wcrKSujYsaMwYcIEg//Cr6fJscjPzxcAqD0GDBjQ6D4NmbaPxciRIwU3NzfB2tpa8PDwEEaOHCmcP39ej3vUdJoci44dO4oei6SkJOU2CoVCmD9/vuDi4iLY2NgIgwYNEs6ePavHPWo6bR4Lc/p98c477wh+fn6Cra2t4OjoKISGhgrbtm1T6c9cPhePOhZSfy5kgiAIuh9nIiIiIjIcXANEREREZocBiIiIiMwOAxARERGZHQYgIiIiMjsMQERERGR2GICIiIjI7DAAERERkdlhACIiIiKzwwBEREavqKgI06ZNg4+PD2xsbODp6YmhQ4cq71vk5eWF9PR0tfctWLAAAQEBon1u27YNMpkMw4cP113hRCSZFlIXQETUHAUFBXjyySchl8vx7rvvokePHqipqUF2djamTJmCM2fONKnP2bNno3///jqomIgMAQMQERm1yZMnQyaT4dChQ7Czs1O2d+vWDePGjdO4v9raWrz66qtITk7GDz/8gLKyMi1WS0SGglNgRGS0rl+/jqysLEyZMkUl/NSTy+Ua97lw4UI4Oztj/PjxWqiQiAwVR4CIyGidP38egiDA39//kdvOnTsX8+bNU2mrrq7G448/rnx+4MAB/Pe//8WxY8e0XSoRGRgGICIyWoIgNHrbt956C7GxsSptq1atwvfffw8AuHnzJsaMGYP169fDyclJm2USkQFiACIio9WpUyfIZLJGLXR2cnKCn5+fSlvbtm2Vf79w4QIKCgowdOhQZZtCoQAAtGjRAmfPnoWvr6+WKiciqXENEBEZrbZt2yIiIgJr1qxBZWWl2uuaLGD29/fH77//jmPHjikfUVFRePrpp3Hs2DF4enpqsXIikhpHgIjIqK1ZswZPPvkk+vbti4ULF6Jnz564d+8evvnmG6xduxanT59uVD+2trbo3r27Slv9Iup/thOR8WMAIiKj5uPjgyNHjmDJkiWYNWsWCgsL0b59ewQFBWHt2rVSl0dEBkomaLKKkIiIiMgEcA0QERERmR0GICIiIjI7DEBERERkdhiAiIiIyOwwABEREZHZYQAiIiIis8MARERERGaHAYiIiIjMDgMQERERmR0GICIiIjI7DEBERERkdhiAiIiIyOz8f2edV5k6BPqwAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_36.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAHHCAYAAABXx+fLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABKe0lEQVR4nO3de1xU1f7/8feAAqKCqSiaIFom3r5qqAjnlNnXb2imcrocs4uXLK3MNDKPmIloBZaamabdTE8XtU5eOGaSmV2li7fKvJemFSB6VBITFPbvD37OaZzBGJyZzcy8no8HD5o1ezafvbN4u9baa1kMwzAEAADgRwLMLgAAAMDTCEAAAMDvEIAAAIDfIQABAAC/QwACAAB+hwAEAAD8DgEIAAD4HQIQAADwOwQgAADgdwhAALyWxWLRlClTzC7DaujQoYqJiTG7DACVQAAC4FKLFi2SxWKxfoWEhOiKK67QAw88oPz8fLf+7I0bN2rKlCk6fvy4S897zTXX2FxT/fr11bVrVy1cuFBlZWUu+RlPPvmkVq5c6ZJzAfhzNcwuAIBvmjp1qlq0aKHTp0/rs88+0/z587VmzRpt375doaGhLvkZv//+u2rU+O//xjZu3Kj09HQNHTpU9erVc8nPOKdZs2bKyMiQJBUUFOif//ynhg8frj179igzM/Oiz//kk0/q5ptvVnJy8kWfC8CfIwABcIs+ffqoS5cukqS7775bDRo00KxZs7Rq1SoNGjSoyuctKytTSUmJQkJCFBIS4qpy/1R4eLjuuOMO6+uRI0eqdevWmjt3rqZNm6aaNWt6rBYAF48hMAAece2110qS9u/fL0maMWOGEhMT1aBBA9WqVUtxcXH617/+Zfc5i8WiBx54QG+88YbatWun4OBgrV271vreuTlAU6ZM0SOPPCJJatGihXW46sCBA+rRo4c6duzosK7WrVsrKSnJ6esJDQ1V9+7dVVRUpIKCggqPKyoq0sMPP6yoqCgFBwerdevWmjFjhgzDsLnGoqIiLV682Fr30KFDna4JQOXRAwTAI3744QdJUoMGDSRJzz77rPr376/bb79dJSUlWrp0qW655RatXr1affv2tfnshx9+qLfeeksPPPCAGjZs6HCi8Y033qg9e/ZoyZIleuaZZ9SwYUNJUkREhO68807dc8892r59u9q3b2/9zNdff609e/Zo0qRJVbqmH3/8UYGBgRUOtxmGof79+2vDhg0aPny4OnXqpOzsbD3yyCP65Zdf9Mwzz0iSXnvtNd19993q1q2bRowYIUm67LLLqlQTgEoyAMCFXn31VUOS8cEHHxgFBQXGoUOHjKVLlxoNGjQwatWqZfz888+GYRjGqVOnbD5XUlJitG/f3rj22mtt2iUZAQEBxvfff2/3syQZaWlp1tdPP/20IcnYv3+/zXHHjx83QkJCjH/84x827Q8++KBRu3Zt4+TJkxe8ph49ehixsbFGQUGBUVBQYOzcudN48MEHDUlGv379rMcNGTLEaN68ufX1ypUrDUnG448/bnO+m2++2bBYLMa+ffusbbVr1zaGDBlywToAuA5DYADcolevXoqIiFBUVJRuvfVW1alTRytWrNCll14qSapVq5b12GPHjunEiRO66qqrtGXLFrtz9ejRQ23btq1yLeHh4RowYICWLFliHXoqLS3VsmXLlJycrNq1a//pOXbt2qWIiAhFRESoTZs2eu6559S3b18tXLiwws+sWbNGgYGBevDBB23aH374YRmGoffee6/K1wTg4jAEBsAt5s2bpyuuuEI1atRQ48aN1bp1awUE/PfvXKtXr9bjjz+ubdu2qbi42NpusVjsztWiRYuLrmfw4MFatmyZPv30U1199dX64IMPlJ+frzvvvLNSn4+JidFLL71kfbS/VatWatSo0QU/89NPP6lp06aqW7euTXubNm2s7wMwBwEIgFt069bN+hTY+T799FP1799fV199tZ5//nk1adJENWvW1Kuvvqo333zT7vg/9hZVVVJSkho3bqzXX39dV199tV5//XVFRkaqV69elfp87dq1K30sgOqPITAAHvfOO+8oJCRE2dnZuuuuu9SnTx+XhAtHvUfnBAYG6rbbbtO//vUvHTt2TCtXrtSgQYMUGBh40T+3Is2bN9evv/6q3377zaZ9165d1vfPuVDtAFyPAATA4wIDA2WxWFRaWmptO3DgwEWvhHxuLk9FK0HfeeedOnbsmEaOHKmTJ0/arOvjDtdff71KS0s1d+5cm/ZnnnlGFotFffr0sbbVrl3b5StYA6gYQ2AAPK5v376aNWuWevfurdtuu02HDx/WvHnzdPnll+vbb7+t8nnj4uIkSY8++qhuvfVW1axZU/369bMGo86dO6t9+/Z6++231aZNG1155ZUuuZ6K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6CIQgAAAwJ9avny5vvvuO+vrdu3a6eabbzaxootDAAIAABU6ffq0pk+fbtM2ePBgtWjRwqSKXIMABAAAHNq1a5eWLVtm0zZx4kSXbsVkFgIQAACwYRiGFi9erJ9++snaFh8fr969e5tYlWsRgAAAgNWvv/6ql156yaZtxIgRatKkiUkVuQdbYcDlhg4dquTkZOvra665RmPHjr2oc7riHACAC3vllVfsws+kSZN8LvxI9AD5laFDh2rx4sWSpJo1ayo6OlqDBw/WxIkTVaOG+/4oLF++vNLjxR999JF69uypY8eOqV69elU6BwDAOWVlZXYbWIeGhuqRRx4xqSL3IwD5md69e+vVV19VcXGx1qxZo1GjRqlmzZpKTU21Oa6kpERBQUEu+Zn169evFucAANj77rvvtHz5cpu2O+64Q5dddplJFXkGQ2B+Jjg4WJGRkWrevLnuu+8+9erVS1lZWdZhqyeeeEJNmzZV69atJUmHDh3S3//+d9WrV0/169fXgAEDdODAAev5SktLlZKSonr16qlBgwYaP368zt9f9/zhq+LiYv3jH/9QVFSUgoODdfnll+uVV17RgQMH1LNnT0nSJZdcIovFoqFDhzo8x7FjxzR48GBdcsklCg0NVZ8+fbR3717r+4sWLVK9evWUnZ2tNm3aqE6dOurdu7dyc3Otx3z00Ufq1q2bateurXr16ukvf/mLzYQ/APB16enpduFn8uTJPh9+JAKQ36tVq5ZKSkokSevXr9fu3bu1bt06rV69WmfOnFFSUpLq1q2rTz/9VJ9//rk1SJz7zMyZM7Vo0SItXLhQn332mf7zn/9oxYoVF/yZgwcP1pIlSzRnzhzt3LlTL7zwgurUqaOoqCi98847kqTdu3crNzdXzz77rMNzDB06VJs2bVJWVpZycnJkGIauv/56nTlzxnrMqVOnNGPGDL322mv65JNPdPDgQY0bN06SdPbsWSUnJ6tHjx769ttvlZOToxEjRlRqDxsA8HanT59Wenq6TVtkZKTS0tJksViUlVW+Y3tWlkkFegBDYH7KMAytX79e2dnZGj16tAoKClS7dm29/PLL1qGv119/XWVlZXr55ZetweDVV19VvXr19NFHH+m6667T7NmzlZqaqhtvvFGStGDBAmVnZ1f4c/fs2aO33npL69atU69evSRJLVu2tL5/bqirUaNGNnOA/mjv3r3KysrS559/rsTEREnSG2+8oaioKK1cuVK33HKLpPL9ahYsWGD9m8wDDzygqVOnSpIKCwt14sQJ3XDDDdb327Rp4/yNBAAv8+9//1tbtmyxaTt/yCszU8rJKf9u9qal7kIPkMk8nbJXr16tOnXqKCQkRH369NHAgQM1ZcoUSVKHDh1s5v1888032rdvn+rWras6deqoTp06ql+/vk6fPq0ffvhBJ06cUG5uruLj462fqVGjhrp06VLhz9+2bZsCAwPVo0ePKl/Dzp07VaNGDZuf26BBA7Vu3Vo7d+60toWGhtr8B92kSRMdPnxYUnnQGjp0qJKSktSvXz89++yzNsNjAOCL0tPT7cJPWlqa3ZDXhAlSQkL5d19FADLZH1O2J/Ts2VPbtm3T3r179fvvv2vx4sWqXbu2JFm/n3Py5EnFxcVp27ZtNl979uzRbbfdVqWf78kN885/asxisdjMT3r11VeVk5OjxMRELVu2TFdccYW++OILj9UHAJ5y7NgxuyGvsLAwpaWlOfyLeP/+0saNvtv7IxGATOfplF27dm1dfvnlio6O/tNH36+88krt3btXjRo10uWXX27zFR4ervDwcDVp0kRffvml9TNnz57V5s2bKzxnhw4dVFZWpo8//tjh++d6oEpLSys8R5s2bXT27Fmbn3v06FHt3r1bbdu2veA1na9z585KTU3Vxo0b1b59e7355ptOfR4AqrsXX3xRc+bMsWm777779NBDD0ny/F/EqwsCkMmqc8q+/fbb1bBhQw0YMECffvqp9u/fr48++kgPPvigfv75Z0nSmDFjlJmZqZUrV2rXrl26//77dfz48QrPGRMToyFDhuiuu+7SypUrred86623JEnNmzeXxWLR6tWrVVBQoJMnT9qdo1WrVhowYIDuueceffbZZ/rmm290xx136NJLL9WAAQMqdW379+9XamqqcnJy9NNPP+n999/X3r17mQcEwKekp6fbDe+npaWpUaNG1tf+MNzlCAEIFQoNDdUnn3yi6Oho3XjjjWrTpo2GDx+u06dPKywsTJL08MMP684779SQIUOUkJCgunXr6m9/+9sFzzt//nzdfPPNuv/++xUbG6t77rlHRUVFkqRLL71U6enpmjBhgho3bqwHHnjA4TleffVVxcXF6YYbblBCQoIMw9CaNWsqvVhiaGiodu3apZtuuklX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CffH+/BXJZMEBQUpLi5O69evt7aVlZVp/fr1SkhIcPiZhIQEm+Mlad26dQ6Pf+WVVxQXF6eOHTu6tnAv5o57fubMGZ05c8au1yEwMFBlZWUuvgLv5O4/6+Hh4YqIiNDevXu1adMmDRgwwLUX4IWqcs/NOKcv4f54IbNnYfuzpUuXGsHBwcaiRYuMHTt2GCNGjDDq1atn5OXlGYZhGHfeeacxYcIE6/Gff/65UaNGDWPGjBnGzp07jbS0NLtHsg3DME6cOGGEhoYa8+fP9+j1eAN33PMePXoY7dq1MzZs2GD8+OOPxquvvmqEhIQYzz//vMevr7pyx31/6623jA0bNhg//PCDsXLlSqN58+bGjTfe6PFrq66cvefFxcXG1q1bja1btxpNmjQxxo0bZ2zdutXYu3dvpc/p79xxz3/77TfrMZKMWbNmGVu3bjV++uknj1+fryEAmey5554zoqOjjaCgIKNbt27GF198YX2vR48expAhQ2yOf+utt4wrrrjCCAoKMtq1a2e8++67dud84YUXjFq1ahnHjx93d/leydX3PDc31xg6dKjRtGlTIyQkxGjdurUxc+ZMo6yszBOX4zVcfd+fffZZo1mzZkbNmjWN6OhoY9KkSUZxcbEnLsVrOHPP9+/fb0iy++rRo0elzwnX3/MNGzY4POb8/17gPIthGIbn+50AAADMwxwgAADgdwhAAADA7xCAAACA3yEAAQAAv0MAAgAAfocABAAA/A4BCAAA+B0CEAAA8DsEIAA+KS8vT6NHj1bLli0VHBysqKgo9evXz2avpo0bN+r666/XJZdcopCQEHXo0EGzZs1SaWmpiZUD8AQCEACfc+DAAcXFxenDDz/U008/re+++05r165Vz549NWrUKEnSihUr1KNHDzVr1kwbNmzQrl27NGbMGD3++OO69dZbxSL5gG9jKwwAPuf666/Xt99+q927d6t27do27x0/flw1a9ZU8+bN1aNHD73zzjs27//73/9W//79tXTpUg0cONCTZQPwIHqAAPiU//znP1q7dq1GjRplF34kqV69enr//fd19OhRjRs3zu79fv366YorrtCSJUs8US4AkxCAAPiUffv2yTAMxcbGVnjMnj17JElt2rRx+H5sbKz1GAC+iQAEwKc4M6rPDADAfxGAAPiUVq1ayWKxaNeuXRUec8UVV0iSdu7c6fD9nTt3Wo8B4JsIQAB8Sv369ZWUlKR58+apqKjI7v3jx4/ruuuuU/369TVz5ky797OysrR3714NGjTIE+UCMAkBCIDPmTdvnkpLS9WtWze988472rt3r3bu3Kk5c+YoISFBtWvX1gsvvKBVq1ZpxIgR+vbbb3XgwAG98sorGjp0qG6++Wb9/e9/N/syALgRj8ED8Em5ubl64okntHr1auXm5ioiIkJxcXF66KGHdM0110iSPv30Uz3xxBPKycnR6dOn1apVKw0bNkxjx45VYGCguRcAwK0IQAAAwO8wBAYAAPwOAQgAAPgdAhAAAPA7BCAAAOB3CEAAAMDvEIAAAIDfIQABAAC/QwACAAB+hwAEAAD8DgEIAAD4HQIQAADwOwQgAADgd/4f7/JDYN9Sfx0AAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_37.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_38.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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5kzB09NTsLW1FV577TXhwoUL+jodndLmtTL1v9t1QSIIgqD7cSYiIiIiw8E1QERERGR2GICIiIjI7DAAERERkdlhACIiIiKzwwBEREREZocBiIiIiMwOAxARERGZHQYgIiIiMjsMQERkcqKiotCvXz+l9qysLEgkEjx8+BBZWVno27cv6tWrBwcHBwQEBOCbb77Rf7FEJAoGICIySwcPHkSbNm3w3Xff4dSpUxg2bBgiIyOxa9cusUsjIj2wErsAIiIxTJ8+XeH1xIkTsXv3bmzbtg29evUSqSoi0heOABER/U9BQQHc3d3FLoOI9IAjQERkknbt2gVHR0eFNqlUWuXxW7duxeHDh/Hll1/qujQiMgAMQERkkrp27YqVK1cqtP3+++947733lI7NzMzEsGHDsHr1arRq1UpfJRKRiBiAiMgkOTg4oEmTJgptN27cUDrul19+Qe/evbF48WJERkbqqzwiEhnXABGR2crKykLPnj0xf/58jBo1SuxyiEiPOAJERGYpMzMTvXr1wsSJE/HWW28hLy8PAGBjY8OF0ERmgCNARGSWNmzYgJKSEiQlJaFevXryrwEDBohdGhHpgUQQBEHsIoiIiIj0iSNAREREZHYYgIiIiMjsMAARERGR2WEAIiIiIrPDAERERERmhwGIiIiIzA4DEBEREZkdBiAiIiIyOwxAREREZHYYgIiIiMjsMAARERGR2WEAIiIiIrPz/zDGW0sb9rbaAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_39.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAk0AAAHHCAYAAACiOWx7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABKwUlEQVR4nO3deVyU5f7/8feALKICruCCoulxz8iF1E5mecKORbZap1LUk5WYEtVJzCS1hNJyT9vUTllapzK+lnKURHMr13I3S9NMXEohxQDh/v3hzzlNM+gMznDPwOv5ePDQueaeaz63dzrvruu6r7EYhmEIAAAAF+VndgEAAAC+gNAEAADgBEITAACAEwhNAAAATiA0AQAAOIHQBAAA4ARCEwAAgBMITQAAAE4gNAEAADiB0ATAZ1ksFj333HNml2GVkJCg6Ohos8sA4CGEJgBuNW/ePFksFutPcHCw/vKXv2jYsGE6evSoR9977dq1eu6553Tq1Cm39nv99dfbnFOtWrXUuXNnzZkzRyUlJW55jwkTJmjRokVu6QuAZ1QxuwAAFdO4cePUtGlT/f7771q9erVmzZqlzz//XNu3b1dISIhb3uPs2bOqUuV//4ytXbtWY8eOVUJCgsLDw93yHhc0atRIaWlpkqTjx4/r3//+twYPHqy9e/cqPT39svufMGGC7rrrLvXt2/ey+wLgGYQmAB5x8803q1OnTpKkf/7zn6pdu7ZeeeUVffrpp7rvvvvK3G9JSYkKCwsVHBys4OBgd5V7SWFhYXrggQesjx9++GG1bNlSM2bM0Pjx4xUQEFButQAwB9NzAMrFDTfcIEnav3+/JGnSpEnq1q2bateurapVq6pjx476z3/+Y/c6i8WiYcOGaf78+Wrbtq2CgoK0dOlS63MX1jQ999xzeuqppyRJTZs2tU6lHThwQD169FCHDh0c1tWyZUvFxcW5fD4hISG65pprdObMGR0/frzU486cOaMnnnhCUVFRCgoKUsuWLTVp0iQZhmFzjmfOnNHbb79trTshIcHlmgB4FiNNAMrF999/L0mqXbu2JGnq1KmKj4/X/fffr8LCQi1YsEB33323Fi9erD59+ti89osvvtAHH3ygYcOGqU6dOg4XW99xxx3au3ev3n//fU2ePFl16tSRJNWtW1cPPvigHnroIW3fvl3t2rWzvmbDhg3au3evRo8eXaZz+uGHH+Tv71/qVKBhGIqPj9eKFSs0ePBgXXXVVcrMzNRTTz2lw4cPa/LkyZKkd955R//85z/VpUsXDRkyRJJ0xRVXlKkmAB5kAIAbzZ0715BkLF++3Dh+/Lhx6NAhY8GCBUbt2rWNqlWrGj/99JNhGIaRn59v87rCwkKjXbt2xg033GDTLsnw8/MzduzYYfdekozU1FTr44kTJxqSjP3799scd+rUKSM4ONh4+umnbdqHDx9uVKtWzTh9+vRFz6lHjx5Gq1atjOPHjxvHjx83du3aZQwfPtyQZNx6663W4wYMGGA0adLE+njRokWGJOP555+36e+uu+4yLBaLsW/fPmtbtWrVjAEDBly0DgDmYnoOgEf06tVLdevWVVRUlO69915Vr15dn3zyiRo2bChJqlq1qvXYkydPKjc3V3/961+1efNmu7569OihNm3alLmWsLAw3XbbbXr//fet02LFxcVauHCh+vbtq2rVql2yj927d6tu3bqqW7euWrdurenTp6tPnz6aM2dOqa/5/PPP5e/vr+HDh9u0P/HEEzIMQ0uWLCnzOQEof0zPAfCImTNn6i9/+YuqVKmiiIgItWzZUn5+//v/tMWLF+v555/X1q1bVVBQYG23WCx2fTVt2vSy6+nfv78WLlyoL7/8Utddd52WL1+uo0eP6sEHH3Tq9dHR0XrjjTes2yi0aNFC9erVu+hrfvzxRzVo0EA1atSwaW/durX1eQC+g9AEwCO6dOlivXvuz7788kvFx8fruuuu06uvvqr69esrICBAc+fO1XvvvWd3/B9HpcoqLi5OERERevfdd3Xdddfp3XffVWRkpHr16uXU66tVq+b0sQAqJqbnAJS7jz76SMHBwcrMzNSgQYN08803uyWQOBqlusDf31//+Mc/9J///EcnT57UokWLdN9998nf3/+y37c0TZo00c8//6zffvvNpn337t3W5y+4WO0AvAOhCUC58/f3l8ViUXFxsbXtwIEDl70j9oW1SaXtCP7ggw/q5MmTevjhh3X69GmbfZc84e9//7uKi4s1Y8YMm/bJkyfLYrHo5ptvtrZVq1bN7TuZA3AvpucAlLs+ffrolVdeUe/evfWPf/xDx44d08yZM9W8eXN9++23Ze63Y8eOkqRnnnlG9957rwICAnTrrbdaw1RMTIzatWunDz/8UK1bt9bVV1/tlvMp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pi0z81mNHMn4ygWEpkqmd+/emjt3rgoKCvT5558rMTFRAQEBSklJsTmusLBQgYGBbnnPWrVqeUUfAAB7JSUlGj9+vE1b3bp1NXToUKWmmlSUlyI+VjJBQUGKjIxUkyZN9Oijj6pXr17KyMiwTqm98MILatCggVq2bClJOnTokO655x6Fh4erVq1auu2223TgwAFrf8XFxUpOTlZ4eLhq166tf/3rX/rzd0D/eWqtoKBATz/9tKKiohQUFKTmzZvrrbfe0oEDB6w7ytasWVMWi0UJCQkO+zh58qT69++vmjVrKiQkRDfffLO+++476/Pz5s1TeHi4MjMz1bp1a1WvXl29e/e2uWU2OztbXbp0UbVq1RQeHq7u3bvrxx9/dNOfNAB4v++//94uMCUkJGjo0KEmVeTdCE2VXNWqVVVYWChJysrK0p49e7Rs2TItXrxYRUVFiouLU40aNfTll19qzZo11vBx4TUvv/yy5s2bpzlz5mj16tX69ddfbTY/c6R///56//33NW3aNO3atUuvvfaaqlevrqioKH300UeSpD179ujIkSOaOnWqwz4SEhK0ceNGZWRkaN26dTIMQ3//+99VVFRkPSY/P1+TJk3SO++8o1WrVungwYN68sknJUnnzp1T37591aNHD3377bdat26dhgwZIovFctl/pgDgC6ZMmaJ3333Xpm3MmDFq0qSJSRV5P6bnKinDMJSVlaXMzEw99thjOn78uKpVq6Y333zTOi337rvvqqSkRG+++aY1TMydO1fh4eHKzs7WTTfdpClTpiglJUV33HGHJGn27NnKzMws9X337t2rDz74QMuWLVOvXr0kSc2aNbM+f2Earl69ejZrmv7ou+++U0ZGhtasWaNu3bpJkubPn6+oqCgtWrRId999tySpqKhIs2fP1hVXXCFJGjZsmHWBY15ennJzc3XLLbdYn2/durXrf5AA4GPOnTunF154waatUaNGGjx4sEkV+Q5GmkyWkSF163b+1/KwePFiVa9eXcHBwbr55pvVr18/Pffcc5Kk9u3b26xj+uabb7Rv3z7VqFFD1atXV/Xq1VWrVi39/vvv+v7775Wbm6sjR44oNjbW+poqVaqoU6dOpb7/1q1b5e/vrx49epT5HHbt2qUqVarYvG/t2rXVsmVL7dq1y9oWEhJiDUSSVL9+fesix1q1aikhIUFxcXG6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oLy4PD2XnJxs89gwDB05ckSfffaZBgwY4LbCAKAyu7B26ckn87Vt20S752NiUsUAE1C+XA5NW7ZssXns5+enunXr6uWXX77knXUAAOdcWOy9bZv9c0zHAeZgnyYA8EKO7o5bseIJZWdXd3A0gPLgcmi64NixY9qzZ48kqWXLlqpXr57bigKAyuqXX37RjBkz7NozM1M1cqQJBQGwcjk05eXlKTExUe+//75KSkokSf7+/urXr59mzpypsLAwtxcJABVdRoa0ZUvpd8cxIweYz+W75x566CF99dVX+uyzz3Tq1CmdOnVKixcv1saNG/Xwww97okYAqPAcBaZRo0axfgnwIi7v01StWjVlZmbq2muvtWn/8ssv1bt3b505c8atBZqBfZoAlJcff/xR8+bNs2snLAGu8/Tnt8vTc7Vr13Y4BRcWFqaaNWu6pSgAqAzYrBLwLS5Pz40ePVrJycnKycmxtuXk5Oipp57Ss88+69biAKCichSYMjPHsFkl4MVcnp6LiYnRvn37VFBQoMaNG0uSDh48qKCgILVo0cLm2M2bN7uv0nLE9BwAT9m2bZs+/vhju3ZGl4DL53XTc7fddpssFovbCwGAiuxid8cxugT4BpdD03PPPef2ImbOnKmJEycqJydHHTp00PTp09WlSxeHx+7YsUNjxozRpk2b9OOPP2ry5MlKSkqyOSYtLU0ff/yxdu/erapVq6pbt2568cUX1bJlS7fXDgDOcBSYGF0CfIvLa5qaNWumX375xa791KlTatasmcsFLFy4UMnJyUpNTdXmzZvVoUMHxcXF6dixYw6Pz8/PV7NmzZSenq7IyEiHx6xcuVKJiYlav369li1bpqKiIt10000V4s4+AL4lOzvb4folAhPge1xe0+Tn56ecnBy7HcCPHj2qqKgoFRYWulRAbGysOnfubN0Bt6SkRFFRUXrsscc08hLb30ZHRyspKclupOnPjh8/rnr16mnlypW67rrrLlkTa5oAXI4LX7br6KtQJAIT4Cles6YpIyPD+vvMzEybbQeKi4uVlZWlpk2buvTmhYWF2rRpk1JSUqxtfn5+6tWrl9atW+dSXxeTm5srSapVq5bD5wsKClRQUGB9nJeX57b3BlD5lBaYYmJSFR9vQkEA3MLp0NS3b19JksVi0YABA2yeCwgIUHR0tF5++WWX3vzEiRMqLi5WRESE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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_40.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_41.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_42.png" - } - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\r", - "1/3 [=========>....................] - ETA: 0s" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "3/3 [==============================] - 0s 0s/step\n" - ] - }, - { - "data": { - "image/png": "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fX3h6+uL0NBQHDlyBCkpKdL0fAAYNWoUWrRogVGjRkGhUNQ5xquvvoqjR4+id+/eeOutt7B8+XJER0cDAHr16oXly5djyZIl6NGjBz777DMkJiZqvb+mpgZTp05Ft27dMGzYMHTp0gUffPABgFutO7Nnz0bPnj0xaNAg2NvbIykpySB1MXfuXDz44IOIjo5GZGQkfHx86qw0Pm/ePLz66quYP38+unXrhtjYWGmcUosWLfD+++9j/fr1aNu2LUaOHFnveRYvXoynn34aY8aMwYMPPoizZ8/i22+/RatWrQxyXUS2SCaEEKYOgogoPz8fHTt2xJEjR/Dggw9q7QsICMDMmTMxc+ZM0wRHRFQPducRkUlVV1fj8uXLmDt3Lvr3718ngSIiMlfsziMikzp48CB8fX1x5MiROuOYTO2dd96Bq6trva/hw4ebOjwiMjF25xERNeDKlSt1Vviu5eTkBD8/PyNHRETmhEkUERERkQ7YnUdERESkAyZRRERERDpgEkVERESkAyZRRERERDpgEkVERESkAyZRRERERDpgEkVERESkAyZRRERERDr4f6rClA174G8DAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_45.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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wsfHR3peZmYmGjduDODppFbPT2j15MkT3Lt3r9RJiBwdHeHo6GiAOyIiIiJzY9KanZycHNjYqIdga2uLwsJCAEBgYCC8vb2RkJAg7c/KysKxY8cQFhYGAAgLC8P9+/dx4sQJ6ZhDhw6hsLAQLVq0MMJdEBERkTkzac1Oly5dMHfuXNSsWRMvvfQSTp06hYULF+K9994D8HR2zlGjRmHOnDmoW7cuAgMDMXXqVNSoUQNdu3YFAAQFBaFjx44YOnQoVq5cifz8fMTExKBXr14VGolFRERE8mbSZGfp0qWYOnUqhg8fjlu3bqFGjRr417/+hWnTpknHfPzxx3j48CGGDRuG+/fvo1WrVti7dy+cnJykYzZt2oSYmBh06NABNjY26NGjB5YsWWKKWyIiIiIzY9J5dswF59khIiKyPBYxzw4RERGRoTHZISIiIlljskNERESyxmSHiIiIZI3JDhEREckakx0iIiKSNSY7REREJGtMdoiIiEjWmOwQERGRrDHZISIiIlljskNERESyxmSHiIiIZI3JDhEREckakx0iIiKSNSY7REREJGtMdoiIiEjWmOwQERGRrDHZISIiIlljskNERESyxmSHiIiIZI3JDhEREckakx0iIiKSNSY7REREJGtMdoiIiEjWmOwQERGRrDHZISIiIlljskNERESyxmSHiIiIZI3JDhEREckakx0iIiKSNSY7REREJGtMdoiIiEjWmOwQERGRrDHZISIiIlljskNERESyxmSHiIiIZI3JDhEREckakx0iIiKSNSY7REREJGtMdoiIiEjWmOwQERGRrDHZISIiIlljskNERESyxmSHiIiIZI3JDhEREckakx0iIiKSNSY7REREJGtMdoiIiEjWmOwQERGRrDHZISIiIlljskNERESyxmSHiIiIZI3JDhEREckakx0iIiKSNSY7REREJGtMdoiIiEjWmOwQERGRrDHZISIiIlljskNEREQGk67KRWLqHaSrck0Wg53JrkxERESyti35KibtOINCAdgogNjuIejZrKbR42DNDhEREelduipXSnQAoFAAk3ecNUkND5MdIiIi0ru0Ow+lRKdIgRC4cifH6LEw2SEiIiK9C6zuAhuF+jZbhQIB1SsZPRYmO0RERKR3PkpnxHYPga3iacZjq1BgXvcG8FE6Gz0WdlAmIiIig+jZrCZa1/PAlTs5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T084Oztj7969eOGFF+Dk5ASlUql2DRcXF3zwwQcYP348qlatipo1a2LBggXIycnB4MGDDXJfRNaINTtEJNm7dy98fHzg4+ODFi1aIDk5Gdu3b5eGTQNA7969YWdnh969e8PJyanYOcaOHYtff/0VTZo0wZw5c7Bw4UJERUUBABo1aoSFCxdi/vz5aNCgATZt2oTY2Fi15xcUFGDEiBEICgpCx44dUa9ePSxfvhzA09qSSZMmoWHDhmjdujVsbW2xdetWg5TFlClT8PLLLyMqKgpt27aFt7d3sZmPp06dirFjx2LatGkICgpCz549pX40dnZ2WLJkCVatWoUaNWrgrbfeKvE6cXFx6NGjB/r374+XX34Zly5dwr59+1ClShWD3BeRNVIIIYSpgyAiy3HlyhXUrl0bycnJePnll9X2BQQEYNSoURg1apRpgiMiKgGbsYioQvLz83H37l1MmTIFLVu2LJboEBGZKzZjEVGFHD16FD4+PkhOTi7Wz8bU5s2bh8qVK5f46NSpk6nDIyITYzMWEVm8e/fuFZtxuIizszN8fX2NHBERmRMmO0RERCRrbMYiIiIiWWOyQ0RERLLGZIeIiIhkjckOERERyRqTHSIiIpI1JjtEREQka0x2iIiISNaY7BAREZGs/X+x+X5shbnhZwAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_46.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAioAAAHHCAYAAACRAnNyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABADklEQVR4nO3deXhU1f3H8c8kIQuBBAIJCRiIrIIEUDZZZFEUEamAVUREsFJ/KhQVrYpLgaoEd1oXtIhBRYGKYKm7oGgVrQFEAZUKgqCEJQgJIXEIyfn9QZkaspBlZu6ZmffreeaBuXNz5zt3ts+ce865LmOMEQAAgIXCnC4AAACgIgQVAABgLYIKAACwFkEFAABYi6ACAACsRVABAADWIqgAAABrEVQAAIC1CCoAAMBaBBUAtTZ9+nS5XK4qretyuTR9+nSf1jNgwAANGDDA2u0BqDqCChBE5s+fL5fL5blERESoWbNmGj9+vH766Seny7NOWlpaqf2VlJSks88+W8uWLfPK9gsKCjR9+nStWrXKK9sDQhFBBQhCf/7zn/Xiiy/q6aef1pAhQ7RgwQL1799fv/zyi0/u7+6771ZhYaFPtu1rXbp00YsvvqgXX3xRt956q3bt2qWRI0fq6aefrvW2CwoKNGPGDIIKUAsRThcAwPuGDBmibt26SZImTJigxo0b64EHHtDy5ct12WWXef3+IiIiFBERmB8nzZo105VXXum5ftVVV6l169Z67LHHdN111zlYGQCJFhUgJJx99tmSpK1bt5Za/u233+q3v/2tEhISFB0drW7dumn58uWl1ikqKtKMGTPUpk0bRUdHq1GjRurbt6/ee+89zzrl9VFxu926+eablZiYqPr16+s3v/mNfvzxxzK1jR8/XmlpaWWWl7fNzMxMnXPOOUpKSlJUVJQ6dOigOXPmVGtfnExycrLat2+vbdu2Vbre3r17dc0116hJkyaKjo5W586d9fzzz3tu3759uxITEyVJM2bM8Bxe8nX/HCDYBOZPIADVsn37dklSw4YNPcs2bdqkPn36qFmzZrrjjjsUGxurv//97xo+fLheffVVjRgxQtKxwJCRkaEJEyaoR48eysvL05o1a7Ru3Tqdd955Fd7nhAkTtGDBAl1xxRXq3bu33n//fQ0dOrRWj2POnDk6/fTT9Zvf/EYRERH65z//qRtuuEElJSWaOHFirbZ9XFFRkXbu3KlGjRpVuE5hYaEGDBigLVu2aNKkSTr11FP1yiuvaPz48Tp48KBuvPFGJSYmas6cObr++us1YsQIjRw5UpLUqVMnr9QJhAwDIGhkZmYaSWbFihVm3759ZufOnWbJkiUmMTHRREVFmZ07d3rWPffcc016err55ZdfPMtKSkpM7969TZs2bTzLOnfubIYOHVrp/U6bNs38+uNk/fr1RpK54YYbSq13xRVXGElm2rRpnmXjxo0zLVq0OOk2jTGmoKCgzHqDBw82LVu2LLWsf//+pn///pXWbIwxLVq0MOeff77Zt2+f2bdvn/nyyy/N5ZdfbiSZP/zhDxVub/bs2UaSWbBggWfZkSNHTK9evUy9evVMXl6eMcaYffv2lXm8AKqHQz9AEBo0aJASExOVmpqq3/72t4qNjdXy5ct1yimnSJJ+/vlnvf/++7rssst06NAh5eTkKCcnR/v379fgwYP13XffeUYJNWjQQJs2bdJ3331X5ft/8803JUmTJ08utfymm26q1eOKiYnx/D83N1c5OTnq37+/vv/+e+Xm5tZom++++64SExOVmJiozp0765VXXtHYsWP1wAMPVPg3b775ppKTkzV69GjPsjp16mjy5MnKz8/Xhx9+WKNaAJQVNEHlo48+0rBhw9S0aVO5XC699tprPr2/48fPf3057bTTfHqfQFU9+eSTeu+997RkyRJdeOGFysnJUVRUlOf2LVu2yBije+65x/Mlffwybdo0Scf6YEjHRhAdPHhQbdu2VXp6uv74xz/qq6++qvT+f/jhB4WFhalVq1allrdr165Wj+uTTz7RoEGDFBsbqwYNGigxMVF33nmnJNU4qPTs2VPvvfeeVqxYodWrVysnJ0cvvPBCqVB0oh9++EFt2rRRWFjpj9D27dt7bgfgHUHTR+Xw4cPq3Lmzfve733mOBfva6aefrhUrVniuB+qoBwSfHj16eEb9DB8+XH379tUVV1yhzZs3q169eiopKZEk3XrrrRo8eHC522jdurUkqV+/ftq6dav+8Y9/6N1339Wzzz6rxx57TE8//bQmTJhQ61ormiiuuLi41PWtW7fq3HPP1WmnnaZHH31UqampioyM1JtvvqnHHnvM85iqq3Hjxho0aFCN/haA7wXNN+uQIUM0ZMiQCm93u9266667tHDhQh08eFAdO3bUAw88UKvZJiMiIpScnFzjvwf8ITw8XBkZGRo4cKCeeOIJ3XHHHWrZsqWkY4crqvIlnZCQoKuvvlpXX3218vPz1a9fP02fPr3CoNKiRQuVlJRo69atpVpRNm/eXGbdhg0b6uDBg2WWn9gq8c9//lNut1vLly9X8+bNPcs/+OCDk9bvbS1atNBXX32lkpKSUq0q3377red2qeIQBqDqgubQz8lMmjRJn376qRYtWqSvvvpKl156qS644IJqHXc/0XfffaemTZuqZcuWGjNmjHbs2OHFigHvGTBggHr06KHZs2frl19+UVJSkgYMGKBnnnlG2dnZZdbft2+f5//79+8vdVu9evXUunVrud3uCu/v+I+Gv/71r6WWz549u8y6rVq1Um5ubqnDSdnZ2WVmhw0PD5ckGWM8y3Jzc5WZmVlhHb5y4YUXavfu3Vq8eLFn2dGjR/X444+rXr166t+/vySpbt26klRuEANQNUHTolKZHTt2KDMzUzt27FDTpk0lHWvyfvvtt5WZmamZM2dWe5s9e/bU/Pnz1a5dO2VnZ2vGjBk6++yztXHjRtWvX9/bDwGotT/+8Y+69NJLNX/+fF133XV68skn1bdvX6Wnp+v3v/+9WrZsqT179ujTTz/Vjz/+qC+//FKS1KFDBw0YMEBdu3ZVQkKC1qxZoyVLlmjSpEkV3leXLl00evRoPfXUU8rNzVXv3r21cuVKbdmypcy6l19+uW6//XaNGDFCkydPVkFBgebMmaO2bdtq3bp1nvXOP/98RUZGatiwYfq///s/5efna+7cuUpKSio3bPnStddeq2eeeUbjx4/X2rVrlZaWpiVLluiTTz7R7NmzPZ8BMTEx6tChgxYvXqy2bdsqISFBHTt2VMeOHf1aLxDQnB525AuSzLJlyzzXX3/9dSPJxMbGlrpERESYyy67zBhjzDfffGMkVXq5/fbbK7zPAwcOmLi4OPPss8/6+uEBFTo+PDkrK6vMbcXFxaZVq1amVatW5ujRo8YYY7Zu3Wquuuoqk5ycbOrUqWOaNWtmLrroIrNkyRLP3913332mR48epkGDBiYmJsacdtpp5v777zdHjhzxrFPeUOLCwkIzefJk06hRIxMbG2uGDRtmdu7cWe5w3Xfffdd07NjRREZGmnbt2pkFCxaUu83ly5ebTp06mejoaJOWlmYeeOAB89xzzxlJZtu2bZ71qjM8+WRDryva3p49e8zVV19tGjdubCIjI016errJzMws87erV682Xbt2NZGRkQxVBmrAZcyv2lGDhMvl0rJlyzR8+HBJ0uLFizVmzBht2rTJ03x8XL169ZScnKwjR47o+++/r3S7jRo18sw0WZ7u3btr0KBBysjIqPVjAAAAIXLo54wzzlBxcbH27t3rmUr8RJGRkbUaXpyfn6+tW7dq7NixNd4GAAAoLWiCSn5+fqnj39u2bdP69euVkJCgtm3basyYMbrqqqv0yCOP6IwzztC+ffu0cuVKderUqUbTet96660aNmyYWrRooV27dmnatGkKDw8vNQEUAAConaA59LNq1SoNHDiwzPJx48Zp/vz5Kioq0n333acXXnhBP/30kxo3bqyzzjpLM2bMUHp6erXv7/LLL9dHH32k/fv3KzExUX379tX9999fZoIrAABQc0ETVAAAQPAJmXlUAABA4CGoAAAAawV0Z9qSkhLt2rVL9evXZ6pqAAAChDFGhw4dUtOmTcuc3PNEAR1Udu3apdTUVKfLAAAANbBz506dcsopla4T0EHl+DTVO3fuVFxcnMPVAACAqsjLy1NqamqVTjkT0EHl+OGeuLg4ggoAAAGmKt026EwLAACsRVABAADWIqgAAABrBXQflaoqLi5WUVGR02U4qk6dOmXOHA0AgO2COqgYY7R7924dPHjQ6VKs0KBBAyUnJzPnDAAgYAR1UDkeUpKSklS3bt2Q/YI2xqigoEB79+6VJKWkpDhcEQAAVRO0QaW4uNgTUho1auR0OY6LiYmRJO3du1dJSUkcBgIABISg7Ux7vE9K3bp1Ha7EHsf3Raj31wEABI6gDSrHherhnvKwLwAAgSbogwoAAAhcBBUAAGAtgorFPv30U4WHh2vo0KGllm/fvl0ul8tzSUhIUP/+/fWvf/3LoUoBAMEoO7dQq7fmKDu30LEaCCoWmzdvnv7whz/oo48+0q5du8rcvmLFCmVnZ+ujjz5S06ZNddFFF2nPnj0OVAoACDaLs3aoz6z3dcXcf6vPrPe1OGuHI3UQVCyVn5+vxYsX6/rrr9fQoUM1f/78Mus0atRIycnJ6tixo+68807l5eXp3//+t/+LBQAElezcQk1dukEl5tj1EiPduXSjIy0rBJUq8nfz19///neddtppateuna688ko999xzMsaUu25hYaFeeOEFSVJk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SkqKufnmm2tdS1AHlR49epiJEyd6rhcXF5umTZuajIyMk/5tixYtgiao1GY/GGPM0aNHTf369c3zzz/vqxL9prb7whhjzjjjDHP33Xf7ojy/qcl+OHr0qOndu7d59tlnzbhx44IiqFR3P2RmZpr4+Hg/Vedf1d0Xc+bMMS1btjRHjhzxV4l+UdvPiMcee8zUr1/f5Ofn+6pEv6jufpg4caI555xzSi2bMmWK6dOnT61rCdpDP0eOHNHatWs1aNAgz7KwsDANGjRIn376qYOV+Zc39kNBQYGKioqUkJDgqzL9orb7whijlStXavPmzerXr58vS/Wpmu6HP//5z0pKStI111zjjzJ9rqb7IT8/Xy1atFBqaqouvvhibdq0yR/l+lRN9sXy5cvVq1cvTZw4UU2aNFHHjh01c+ZMFRcX+6tsr/PG5+W8efN0+eWXKzY21ldl+lxN9kPv3r21du1az+Gh77//Xm+++aYuvPDCWtcT0CclrExOTo6Ki4vVpEmTUsubNGmib7/91qGq/M8b++H2229X06ZNS71oA1FN90Vubq6aNWsmt9ut8PBwPfXUUzrvvPN8Xa7P1GQ/fPzxx5o3b57Wr1/vhwr9oyb7oV27dnruuefUqVMn5ebm6uGHH1bv3r21adMmr5wg1Sk12Rfff/+93n//fY0ZM0ZvvvmmtmzZohtuuEFFRUWaNm2aP8r2utp+Xn7++efauHGj5s2b56sS/aIm++GKK65QTk6O+vbtK2OMjh49quuuu0533nlnresJ2qAC75g1a5YWLVqkVatWBVWnweqoX7++1q9fr/z8fK1cuVJTpkxRy5YtNWDAAKdL84tDhw5p7Nixmjt3rho3bux0OY7q1auXevXq5bneu3dvtW/fXs8884zuvfdeByvzv5KSEiUlJelvf/ubwsPD1bVrV/3000966KGHAjao1Na8efOUnp6uHj16OF2K361atUozZ87UU089pZ49e2rLli268cYbde+99+qee+6p1baDNqg0btxY4eHh2rNnT6nle/bsUXJyskNV+V9t9sPDDz+sWbNmacWKFerUqZMvy/SLmu6LsLAwtW7dWpLUpUsXffPNN8rIyAjYoFLd/bB161Zt375dw4YN8ywrKSmRJEVERGjz5s1q1aqVb4v2AW98RtSpU0dnnHGGtmzZ4osS/aYm+yIlJUV16tRReHi4Z1n79u21e/duHTlyRJGRkT6t2Rdq85o4fPiwFi1apD//+c++LNEvarIf7rnnHo0dO1YTJkyQJKWnp+vw4cO69tprdddddyksrOY9TYK2j0pkZKS6du2qlStXepaVlJRo5cqVpX4RBbua7ocHH3xQ9957r95++21169bNH6X6nLdeEyUlJXK73b4o0S+qux9OO+00bdiwQevXr/dcfvOb32jgwIFav369UlNT/Vm+13jj9VBcXKwNGzYoJSXFV2X6RU32RZ8+fbRlyxZPaJWk//znP0pJSQnIkCLV7jXxyiuvyO1268orr/R1mT5Xk/1QUFBQJowcD7GmtqcUrHV3XIstWrTIREVFmfnz55uvv/7aXHvttaZBgwae4YRjx441d9xxh2d9t9ttvvjiC/PFF1+YlJQUc+utt5ovvvjCfPfdd049BK+o7n6YNWuWiYyMNEuWLCk17O7QoUNOPQSvqe6+mDlzpnn33XfN1q1bzddff20efvhhExERYebOnevUQ/CK6u6HEwXLqJ/q7ocZM2aYd955x2zdutWsXbvWXH755SY6Otps2rTJqYfgNdXdFzt27DD169c3kyZNMps3bzavv/66SUpKMvfdd59TD8Eravre6Nu3rxk1apS/y/WZ6u6HadOmmfr165uFCxea77//3rz77rumVatW5rLLLqt1LUEdVIwx5vHHHzfNmzc3kZGRpkePHuazzz7z3Na/f38zbtw4z/Vt27YZSWUu/fv393/hXlad/dCiRYty98O0adP8X7gPVGdf3HXXXaZ169YmOjraNGzY0PTq1cssWrTIgaq9rzr74UTBElSMqd5+uOmmmzzrNmnSxFx44YVm3bp1DlTtG9V9Taxevdr07NnTREVFmZYtW5r777/fHD161M9Ve19198O3335rJJl3333Xz5X6VnX2Q1FRkZk+fbpp1aqViY6ONqmpqeaGG24wBw4cqHUdLmNq2yYDAADgG0HbRwUAAAQ+ggoAALAWQQUAAFiLoAIAAKxFUAEAANYiqAAAAGsRVAAAgLUIKgBQBePHj9fw4cOdLgMIOQQVIMCNHz9eLpfLc2nUqJEuuOACffXVV06X5hW/fmzHL3379vXZ/W3fvl0ul0vr168vtfwvf/mL5s+f77P7BVA+ggoQBC644AJlZ2crOztbK1euVEREhC666CKny/KazMxMz+PLzs7W8uXLy12vqKjIZzXEx8erQYMGPts+gPIRVIAgEBUVpeTkZCUnJ6tLly664447tHPnTu3bt0/nnHOOJk2aVGr9ffv2KTIy0nN21LS0NN17770aPXq0YmNj1axZMz355JOl/ubRRx9Venq6YmNjlZqaqhtuuEH5+fme23/44QcNGzZMDRs2VGxsrE4//XS9+eabkqQDBw5ozJgxSkxMVExMjNq0aaPMzMwqP74GDRp4Hl9ycrISEhI8LR+LFy9W//79FR0drZdeekn79+/X6NGj1axZM9WtW1fp6elauHBhqe2VlJTowQcfVOvWrRUVFaXmzZvr/vvvlySdeuqpkqQzzjhDLpdLAwYMkFT20I/b7dbkyZOVlJSk6Oho9e3bV1lZWZ7bV61aJZfLpZUrV6pbt26qW7euevfurc2bN1f5cQMgqABBJz8/XwsWLFDr1q3VqFEjTZgwQS+//LLcbrdnnQULFqhZs2Y655xzPMseeughde7cWV988YXuuOMO3XjjjXrvvfc8t4eFhemvf/2rNm3apOeff17vv/++brvtNs/tEydOlNvt1kcffaQNGzbogQceUL169SRJ99xzj77++mu99dZb+uabbzRnzhw1btzYK4/3eK3ffPONBg8erF9++UVdu3bVG2+8oY0bN+raa6/V2LFj9fnnn3v+ZurUqZo1a5anrpdffllNmjSRJM96K1asUHZ2tpYuXVru/d5222169dVX9fzzz2vdunVq3bq1Bg8erJ9//rnUenfddZceeeQRrVmzRhEREfrd737nlccNhIxan9YQgKPGjRtnwsPDTWxsrImNjTWSTEpKilm7dq0xxpjCwkLTsGFDs3jxYs/fdOrUyUyfPt1zvUWLFuaCCy4otd1Ro0aZIUOGVHi/r7zyimnUqJHnenp6eqlt/tqwYcPM1VdfXaPHJ8lER0d7Hl9sbKxZtmyZ52zns2fPPuk2hg4dam655RZjjDF5eXkmKirKzJ07t9x1j2/3iy++KLX812eMzs/PN3Xq1DEvvfSS5/YjR46Ypk2bmgcffNAYY8wHH3xgJJkVK1Z41nnjjTeMJFNYWFidXQCENFpUgCAwcOBArV+/XuvXr9fnn3+uwYMHa8iQIfrhhx8UHR2tsWPH6rnnnpMkrVu3Ths3btT48eNLbaNXr15lrn/zzTee6ytWrNC5556rZs2aqX79+ho7dqz279+vgoICSdLkyZN13333qU+fPpo2bVqpzrzXX3+9Fi1apC5duui2227T6tWrq/X4HnvsMc/jW79+vc477zzPbd26dSu1bnFxse69916lp6crISFB9erV0zvvvKMdO3ZIkr755hu53W6de+651arh17Zu3aqioiL16dPHs6xOnTrq0aNHqX0mSZ06dfL8PyUlRZK0d+/eGt83EGoIKkAQiI2NVevWrdW6dWt1795dzz77rA4fPqy5c+dKkiZMmKD33ntPP/74ozIzM3XOOeeoRYsWVd7+9u3bddFFF6lTp0569dVXtXbtWk8fliNHjnju4/vvv9fYsWO1YcMGdevWTY8//rgkeULTzTffrF27duncc8/VrbfeWuX7T05O9jy+1q1bKzY2ttRj/7WHHnpIf/nLX3T77bfrgw8+0Pr16zV48GBPnTExMVW+X2+oU6eO5/8ul0vSsT4yAKqGoAIEIZfLpbCwMBUWFkqS0tPT1a1bN82dO1cvv/xyuf0kPvvsszLX27dvL0lau3atSkpK9Mgjj+iss85S27ZttWvXrjLbSE1N1XXXXaelS5fqlltu8QQlSUpMTNS4ceO0YMECzZ49W3/729+8+ZA9PvnkE1188cW68sor1blzZ7Vs2VL/+c9/PLe3adNGMTExno7EJ4qMjJR0rGWmIq1atVJkZKQ++eQTz7KioiJlZWWpQ4cOXnokACQpwukCANSe2+3W7t27JR0bYfPEE08oPz9fw4YN86wzYcIETZo0SbGxsRoxYkSZbXzyySd68MEHNXz4cL333nt65ZVX9MYbb0iSWrduraKiIj3++OMaNmyYPvnkEz399NOl/v6mm27SkCFD1LZtWx04cEAffPCBJ+j86U9/UteuXXX66afL7Xbr9ddf99zmbW3atNGSJUu0evVqNWzYUI8++qj27NnjCRDR0dG6/fbbddtttykyMlJ9+vTRvn37tGnTJl1zzTVKSkpSTEyM3n77bZ1yyimKjo5WfHx8qfuIjY3V9ddfrz/+8Y9KSEhQ8+bN9eCDD6qgoEDXXHONTx4XEKpoUQGCwNtvv62UlBSlpKSoZ8+eysrK0iuvvOIZWitJo0ePVkREhEaPHq3o6Ogy27jlllu0Zs0anXHGGbrvvvv06KOPavDgwZKkzp0769FHH9UDDzygjh076qWXXlJGRkapvy8uLtbEiRPVvn17XXDBBWrbtq2eeuopScdaKaZOnapOnTqpX79+Cg8P16JFi3yyL+6++26deeaZGjx4sAYMGKDk5OQyM8rec889uuWWW/SnP/1J7du316hRozz9RiIiIvTXv/5VzzzzjJo2baqLL7643PuZNWuWLrnkEo0dO1ZnnnmmtmzZonfeeUcNGzb0yeMCQpXLGGOcLgKA723fvl2tWrVSVlaWzjzzzFK3paWl6aabbtJNN93kTHEAUAEO/QBBrqioSPv379fdd9+ts846q0xIAQCbcegHCHKffPKJUlJSlJWVVaZfidNmzpypevXqlXsZMmSI0+UBsACHfgA45ueffy4zk+txMTExatasmZ8rAmAbggoAALAWh34AAIC1CCoAAMBaBBUAAGAtggoAALAWQQUAAFiLoAIAAKxFUAEAANYiqAAAAGv9P6MKlppbEFMfAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_47.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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exg7dizWr1+PX375BZ999hkAQKFQYNasWXjrrbfQrVs3hISEYP78+QgMDERsbCwAoFevXhg9ejSmT5+O1NRU1NTUYObMmZgwYQICAwMBAGvXroWnpydCQ0OhVCrxyy+/YN68eRg/fjw8PT0BAG+88QbuuecedO3aFeXl5ViyZAlOnz6NadOm2bgViYiIyBHZvdAaP348Ll68iAULFkCv1yMsLAzbtm2TBrOfOXMGbm6/d7wNGTIEX331FV577TW88sor6NatG7777jv07dtXipk7dy6uXLmCxMRElJeXY9iwYdi2bZvZZKJr167FzJkzMWrUKLi5ueGxxx7D8uXLpfUeHh5499138d///hdCCHTq1AkzZ87Eiy++KMX89ttvmD59OvR6Pdq2bYuBAwciKysLvXv3lrPJiIiIyEkohBDC3km0VEajEWq1GgaDAb6+vvZOh4iIiJrAku9vnnVIREREJBMWWkREREQyYaFFREREJBMWWkREREQyYaFFREREJBMWWkREREQyYaFFREREJBMWWkREREQyYaFFREREJBMWWkREREQyYaFFREREJBMWWkREREQyYaFFREREJBMWWkREREQyYaFFREREJBMWWkREREQyYaFFREREJBMWWkREREQyYaFFREREJBMWWkREREQyYaFFREREJBMWWkREREQyYaFFREREJBMWWkREREQyYaFFREREJBMWWkREREQyYaFFREREJBMWWkREREQyYaFFREREJBMWWkREREQyYaFFREREJBOHKLRWrFiB4OBgqFQqREREYO/evY3Gb9iwAT179oRKpUJoaCi2bt1qtl4IgQULFkCn08Hb2xvR0dE4fvy4WUxZWRni4+Ph6+sLjUaDhIQEVFRUSOuPHTuGkSNHIiAgACqVCp07d8Zrr72Gmpoai3IhIiKilsvuhVZaWhpmz56N5ORk5Ofno3///oiJicGFCxfqjc/KykJcXBwSEhKwb98+xMbGIjY2FocOHZJiFi9ejOXLlyM1NRU5OTnw8fFBTEwMrl69KsXEx8ejoKAA6enp2Lx5M3bt2oXExERpvaenJyZNmoTt27fj2LFjWLZsGVauXInk5GSLciEiIqIWTNhZeHi4mDFjhnS/trZWBAYGipSUlHrjH3/8cTF27FizZREREeKpp54SQghhMpmEVqsVS5YskdaXl5cLpVIp1q1b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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_48.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAioAAAHHCAYAAACRAnNyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABB0UlEQVR4nO3de3zP9f//8ft7YwfDHLbZMOZMGcophxzKJyGJz6ckiUp9Ch/prIOkMDrIpz5SqVAqPhWfj0/5lHP9UF8LqwiFMZ/MYaXNbGa25+8PH+9Pbzu+t/fh9X6/b9fLZZeLvd+vvd+P99P7cH8/Ty+bMcYIAADAgoK8XQAAAEBJCCoAAMCyCCoAAMCyCCoAAMCyCCoAAMCyCCoAAMCyCCoAAMCyCCoAAMCyCCoAAMCyCCoAKu3pp5+WzWYr17E2m01PP/20W+vp06eP+vTpY9nbA1B+BBXAjyxatEg2m83+U6VKFTVo0EBjxozRzz//7O3yLCchIcGhvWJiYnTllVdqxYoVLrn9nJwcPf3009q4caNLbg8IRAQVwA8988wzevfdd/Xaa69pwIABWrJkiXr37q0zZ8645f6efPJJ5ebmuuW23a1Dhw5699139e677+qhhx7SkSNHNGzYML322muVvu2cnBxNmzaNoAJUQhVvFwDA9QYMGKBOnTpJksaOHauoqCjNnj1bK1eu1E033eTy+6tSpYqqVPHNt5MGDRro1ltvtf9+2223qXnz5nrppZd0zz33eLEyABI9KkBAuPLKKyVJ+/fvd7h8z549+tOf/qQ6deooLCxMnTp10sqVKx2Oyc/P17Rp09SiRQuFhYWpbt266tmzp9asWWM/prg5Knl5ebr//vsVHR2tGjVq6Prrr9d//vOfIrWNGTNGCQkJRS4v7jYXLlyoq666SjExMQoNDdUll1yi+fPnO9UWZYmNjVWbNm2Umppa6nHHjx/XnXfeqXr16iksLEzt27fX4sWL7dcfPHhQ0dHRkqRp06bZh5fcPT8H8De++RUIgFMOHjwoSapdu7b9sl27dqlHjx5q0KCBJk+erIiICP3973/XDTfcoI8//lhDhw6VdD4wJCUlaezYserSpYuysrL0zTffaPv27frDH/5Q4n2OHTtWS5Ys0S233KLu3btr/fr1GjRoUKUex/z583XppZfq+uuvV5UqVfSvf/1L48aNU2FhocaPH1+p274gPz9fhw8fVt26dUs8Jjc3V3369NG+ffs0YcIENWnSRB9++KHGjBmj3377Tffdd5+io6M1f/583XvvvRo6dKiGDRsmSWrXrp1L6gQChgHgNxYuXGgkmbVr15oTJ06Yw4cPm48++shER0eb0NBQc/jwYfuxV199tUlMTDRnzpyxX1ZYWGi6d+9uWrRoYb+sffv2ZtCgQaXe79SpU83v305SUlKMJDNu3DiH42655RYjyUydOtV+2ejRo03jxo3LvE1jjMnJySlyXP/+/U3Tpk0dLuvdu7fp3bt3qTUbY0zjxo3NNddcY06cOGFOnDhhvv32W3PzzTcbSeYvf/lLibc3d+5cI8ksWbLEftnZs2dNt27dTPXq1U1WVpYxxpgTJ04UebwAnMPQD+CH+vXrp+joaMXHx+tPf/qTIiIitHLlSjVs2FCS9Ouvv2r9+vW66aabdOrUKWVkZCgjI0O//PKL+vfvr59++sm+SqhWrVratWuXfvrpp3Lf/6pVqyRJEydOdLh80qRJlXpc4eHh9n9nZmYqIyNDvXv31oEDB5SZmVmh21y9erWio6MVHR2t9u3b68MPP9SoUaM0e/bsEv9m1apVio2N1YgRI+yXVa1aVRMnTlR2dra++OKLCtUCoCi/CSpffvmlBg8erPr168tms+kf//iHW+/vwvj5739at27t1vsEymvevHlas2aNPvroIw0cOFAZGRkKDQ21X79v3z4ZYzRlyhT7h/SFn6lTp0o6PwdDOr+C6LffflPLli2VmJiohx9+WN99912p93/o0CEFBQWpWbNmDpe3atWqUo9r8+bN6tevnyIiIlSrVi1FR0fr8ccfl6QKB5WuXbtqzZo1Wrt2rbZs2aKMjAy98847DqHoYocOHVKLFi0UFOT4FtqmTRv79QBcw2/mqJw+fVrt27fXHXfcYR8LdrdLL71Ua9eutf/uq6se4H+6dOliX/Vzww03qGfPnrrlllu0d+9eVa9eXYWFhZKkhx56SP379y/2Npo3by5J6tWrl/bv369//vOfWr16td5880299NJLeu211zR27NhK11rSRnEFBQUOv+/fv19XX321WrdurTlz5ig+Pl4hISFatWqVXnrpJftjclZUVJT69etXob8F4H5+88k6YMAADRgwoMTr8/Ly9MQTT+iDDz7Qb7/9prZt22r27NmV2m2ySpUqio2NrfDfA54QHByspKQk9e3bV3/72980efJkNW3aVNL54YryfEjXqVNHt99+u26//XZlZ2erV69eevrpp0sMKo0bN1ZhYaH279/v0Iuyd+/eIsfWrl1bv/32W5HLL+6V+Ne//qW8vDytXLlSjRo1sl++YcOGMut3tcaNG+u7775TYWGhQ6/Knj177NdLJYcwAOXnN0M/ZZkwYYK++uorLV26VN99951uvPFGXXvttU6Nu1/sp59+Uv369dW0aVONHDlSaWlpLqwYcJ0+ffqoS5cumjt3rs6cOaOYmBj16dNHr7/+utLT04scf+LECfu/f/nlF4frqlevrubNmysvL6/E+7vwpeHll192uHzu3LlFjm3WrJkyMzMdhpPS09OL7A4bHBwsSTLG2C/LzMzUwoULS6zDXQYOHKijR49q2bJl9svOnTunV155RdWrV1fv3r0lSdWqVZOkYoMYgPLxmx6V0qSlpWnhwoVKS0tT/fr1JZ3v8v7ss8+0cOFCzZw50+nb7Nq1qxYtWqRWrVopPT1d06ZN05VXXqmdO3eqRo0arn4IQKU9/PDDuvHGG7Vo0SLdc889mjdvnnr27KnExETdddddatq0qY4dO6avvvpK//nPf/Ttt99Kki655BL16dNHHTt2VJ06dfTNN9/oo48+0oQJE0q8rw4dOmjEiBF69dVXlZmZqe7du2vdunXat29fkWNvvvlmPfrooxo6dKgmTpyonJwczZ8/Xy1bttT27dvtx11zzTUKCQnR4MGD9ec//1nZ2dlasGCBYmJiig1b7nT33Xfr9ddf15gxY7Rt2zYlJCToo48+0ubNmzV37lz7e0B4eLguueQSLVu2TC1btlSdOnXUtm1btW3b1qP1Aj7N28uO3EGSWbFihf33Tz75xEgyERERDj9VqlQxN910kzHGmN27dxtJpf48+uijJd7nyZMnTc2aNc2bb77p7ocHlOjC8uTk5OQi1xUUFJhmzZqZZs2amXPnzhljjNm/f7+57bbbTGxsrKlatapp0KCBue6668xHH31k/7vp06ebLl26mFq1apnw8HDTunVrM2PGDHP27Fn7McUtJc7NzTUTJ040devWNREREWbw4MHm8OHDxS7XXb16tWnbtq0JCQkxrVq1MkuWLCn2NleuXGnatWtnwsLCTEJCgpk9e7Z5++23jSSTmppqP86Z5cllLb0u6faOHTtmbr/9dhMVFWVCQkJMYmKiWbhwYZG/3bJli+nYsaMJCQlhqTJQATZjfteP6idsNptWrFihG264QZK0bNkyjRw5Urt27bJ3H19QvXp1xcbG6uzZszpw4ECpt1u3bl37TpPF6dy5s/r166ekpKRKPwYAABAgQz+XXXaZCgoKdPz4cftW4hcLCQmp1PLi7Oxs7d+/X6NGjarwbQAAAEd+E1Sys7Mdxr9TU1OVkpKiOnXqqGXLlho5cqRuu+02vfjii7rssst04sQJrVu3Tu3atavQtt4PPfSQBg8erMaNG+vIkSOaOnWqgoODHTaAAgAAleM3Qz8bN25U3759i1w+evRoLVq0SPn5+Zo+fbreeecd/fzzz4qKitIVV1yhadOmKTEx0en7u/nmm/Xll1/ql19+UXR0tHr27KkZM2YU2eAKAABUnN8EFQAA4H8CZh8VAADgewgqAADAsnx6Mm1hYaGOHDmiGjVqsFU1AAA+whijU6dOqX79+kVO7nkxnw4qR44cUXx8vLfLAAAAFXD48GE1bNiw1GN8Oqhc2Kb68OHDqlmzpperAQAA5ZGVlaX4+PhynXLGp4PKheGemjVrElQAAPAx5Zm2wWRaAABgWQQVAABgWQQVAABgWT49R6W8CgoKlJ+f7+0y/EbVqlWLnIUaAAB38OugYozR0aNH9dtvv3m7FL9Tq1YtxcbGsn8NAMCt/DqoXAgpMTExqlatGh+qLmCMUU5Ojo4fPy5JiouL83JFAAB/5rdBpaCgwB5S6tat6+1y/Ep4eLgk6fjx44qJiWEYCADgNn47mfbCnJRq1ap5uRL/dKFdmfsDAHAnvw0qFzDc4x60KwDAE/w+qAAAAN9FUAEAAJZFULGoo0eP6i9/+YuaNm2q0NBQxcfHa/DgwVq3bp0k6c9//rOaNWum8PBwRUdHa8iQIdqzZ4/97w8ePCibzaaUlJQit92nTx9NmjTJ/nt2drYmTJighg0bKjw8XJdccolee+01dz9EAIAFpGfmasv+DKVn5nq7lGL57aofX3bw4EH16NFDtWrV0vPPP6/ExETl5+fr888/1/jx47Vnzx517NhRI0eOVKNGjfTrr7/q6aef1jXXXKPU1FSnV+E88MADWr9+vZYsWaKEhAStXr1a48aNU/369XX99de76VECALxtWXKaHlv+vQqNFGSTkoYlanjnRt4uywFBxYLGjRsnm82mrVu3KiIiwn75pZdeqjvuuEOSdPfdd9svT0hI0PTp09W+fXsdPHhQzZo1c+r+tmzZotGjR6tPnz7223799de1detWggoA+Kn0zFx7SJGkQiM9vnynerWMVlxkuHeL+x2GfsrJU11jv/76qz777DONHz/eIaRcUKtWrSKXnT59WgsXLlSTJk0UHx/v9H12795dK1eu1M8//yxjjDZs2KAff/xR11xzTUUeAgDAB6RmnLaHlAsKjNHBjBzvFFQCelTKwZNdY/v27ZMxRq1bty7z2FdffVWPPPKITp8+rVatWmnNmjUKCQlxOKZ79+4KCnLMo7m5uerQoYP991deeUV33323GjZsqCpVqigoKEgLFixQr169XPKYAADW0yQqQkE2OYSVYJtNCVH/238sPTNXqRmn1SQqwmu9LPSolKGkrjF39awYY8o+6L9GjhypHTt26IsvvlDLli1100036cyZMw7HLFu2TCkpKQ4/nTp1cjjmlVde0ddff62VK1dq27ZtevHFFzV+/HitXbvWJY8JAGA9cZHhShqWqOD/7osVbLNp5rC29kCyLDlNPWat1y0L/k89Zq3XsuQ0r9RJj0oZSusac0e6bNGihWw2m8MKnpJERkYqMjJSLVq00BVXXKHatWtrxYoVGjFihP2Y+Ph4NW/e3OHvLmyBL53vXXn88ce1YsUKDRo0SJLUrl07paSk6IUXXlC/fv1c9MgAAFYzvHMj9WoZrYMZOUqIqmb/XLPS/BV6VMpwoWvs9y7uGnOlOnXqqH///po3b55Onz5d5PqSzgRtjJExRnl5eU7dX35+vvLz84sMDwUHB6uwsNCp2wIA+J64yHB1a1bXIYBYaf4KQaUMZXWNucO8efNUUFCgLl266OOPP9ZPP/2k3bt36+WXX1a3bt104MABJSUladu2bUpLS9OWLVt04403Kjw8XAMHDnTqvmrWrKnevXvr4Ycf1saNG5WamqpFixbpnXfe0dChQ930CAEAVubpL+mlYeinHErqGnOXpk2bavv27ZoxY4YefPBBpaenKzo6Wh07dtT8+fMVFham//f//p/mzp2rkydPql69eurVq5e2bNmimJgYp+9v6dKleuyxxzRy5Ej9+uuvaty4sWbMmKF77rnHDY8OAGB1F76kP758pwqM8ciX9JLYjDOzNy0mKytLkZGR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6qv6wx/+4O5y3aYi7bBp0ya99dZbSklJ8UCFnlGRdmjVqpXefvtttWvXTpmZmXrhhRfUvXt37dq1yyUnSPWWirTFgQMHtH79eo0cOVKrVq3Svn37NG7cOOXn52vq1KmeKNvlKvt+uXXrVu3cuVNvvfWWu0r0iIq0wy233KKMjAz17NlTxhidO3dO99xzjx5//PFK1+O3QQWuMWvWLC1dulQbN270q0mDzqhRo4ZSUlKUnZ2tdevW6YEHHlDTpk3Vp08fb5fmEadOndKoUaO0YMECRUVFebscr+rWrZu6detm/7179+5q06aNXn/9dT377LNerMzzCgsLFRMTozfeeEPBwcHq2LGjfv75Zz3//PM+G1Qq66233lJiYqK6dOni7VI8buPGjZo5c6ZeffVVde3aVfv27dN9992nZ599VlOmTKnUbfttUImKilJwcLCOHTvmcPmxY8cUGxvrpao8rzLt8MILL2jWrFlau3at2rVr584yPaKibREUFKTmzZtLkjp06KDdu3crKSnJZ4OKs+2wf/9+HTx4UIMHD7ZfVlhYKEmqUqWK9u7dq2bNmrm3aDdwxXtE1apVddlll2nfvn3uKNFjKtIWcXFxqlq1qoKDg+2XtWnTRkePHtXZs2cVEhLi1prdoTLPidOnT2vp0qV65pln3FmiR1SkHaZMmaJRo0Zp7NixkqTExESdPn1ad999t5544gkFBVV8ponfzlEJCQlRx44dtW7dOvtlhYWFWrduncM3In9X0XZ47rnn9Oyzz+qzzz5Tp06dPFGq27nqOVFYWKi8vDx3lOgRzrZD69at9f333yslJcX+c/3116tv375KSUlRfHy8J8t3GVc8HwoKCvT9998rLi7OXWV6REXaokePHtq3b589tErSjz/+qLi4OJ8MKVLlnhMffvih8vLydOutt7q7TLerSDvk5OQUCSMXQqyp7CkFKz0d18KWLl1qQkNDzaJFi8wPP/xg7r77blOrVi37csJRo0aZyZMn24/Py8szO3bsMDt27DBxcXHmoYceMjt27DA//fSTtx6CSzjbDrNmzTIhISHmo48+clh2d+rUKW89BJdxti1mzpxpVq9ebfbv329++OEH88ILL5gqVaqYBQsWeOshuISz7XAxf1n142w7TJs2zXz++edm//79Ztu2bebmm282YWFhZteuXd56CC7jbFukpaWZGjVqmAkTJpi9e/eaTz75xMTExJjp06d76yG4REVfGz179jTDhw/3dLlu42w7TJ061dSoUcN88MEH5sCBA2b16tWmWbNm5qabbqp0LX4dVIwx5pVXXjGNGjUyISEhpkuXLubrr7+2X9e7d28zevRo+++pqalGUpGf3r17e75wF3OmHRo3blxsO0ydOtXzhbuBM23xxBNPmObNm5uwsDBTu3Zt061bN7N06VIvVO16zrTDxfwlqBjjXDtMmjTJfmy9evXMwIEDzfbt271QtXs4+5zYsmWL6dq1qwkNDTVNmzY1M2bMMOfOnfNw1a7nbDvs2bPHSDKrV6/2cKXu5Uw75Ofnm6effto0a9bMhIWFmfj4eDNu3Dhz8uTJStdhM6ayfTIAAADu4bdzVAAAgO8jqAAAAMsiqAAAAMsiqAAAAMsiqAAAAMsiqAAAAMsiqAAAAMsiqABAOYwZM0Y33HCDt8sAAg5BBfBxY8aMkc1ms//UrVtX1157rb777jtvl+YSv39sF3569uzptvs7ePCgbDabUlJSHC7/61//qkWLFrntfgEUj6AC+IFrr71W6enpSk9P17p161SlShVdd9113i7LZRYuXGh/fOnp6Vq5cmWxx+Xn57uthsjISNWqVctttw+geAQVwA+EhoYqNjZWsbGx6tChgyZPnqzDhw/rxIkTuuqqqzRhwgSH40+cOKGQkBD72VETEhL07LPPasSIEYqIiFCDBg00b948h7+ZM2eOEhMTFRERofj4eI0bN07Z2dn26w8dOqTBgwerdu3aioiI0KWXXqpVq1ZJkk6ePKmRI0cqOjpa4eHhatGihRYuXFjux1erVi3744uNjVWdOnXsPR/Lli1T7969FRYWpvfee0+//PKLRowYoQYNGqhatWpKTEzUBx984HB7hYWFeu6559S8eXOFhoaqUaNGmjFjhiSpSZMmkqTLLrtMNptNffr0kVR06CcvL08TJ05UTEyMwsLC1LNnTyUnJ9uv37hxo2w2m9atW6dOnTqpWrVq6t69u/bu3Vvuxw2AoAL4nezsbC1ZskTNmzdX3bp1NXbsWL3//vvKy8uzH7NkyRI1aNBAV111lf2y559/Xu3bt9eOHTs0efJk3XfffVqzZo39+qCgIL388svatWuXFi9erPXr1+uRRx6xXz9+/Hjl5eXpyy+/1Pfff6/Zs2erevXqkqQpU6bohx9+0L///W/t3r1b8+fPV1RUlEse74Vad+/erf79++vMmTPq2LGjPv30U+3cuVN33323Ro0apa1bt9r/5rHHHtOsWbPsdb3//vuqV6+eJNmPW7t2rdLT07V8+fJi7/eRRx7Rxx9/rMWLF2v79u1q3ry5+vfvr19//dXhuCeeeEIvvviivvnmG1WpUkV33HGHSx43EDAqfVpDAF41evRoExwcbCIiIkxERISRZOLi4sy2bduMMcbk5uaa2rVrm2XLltn/pl27dubpp5+2/964cWNz7bXXOtzu8OHDzYABA0q83w8//NDUrVvX/ntiYqLDbf7e4MGDze23316hxyfJhIWF2R9fRESEWbFihf1s53Pnzi3zNgYNGmQefPBBY4wxWVlZJjQ01CxYsKDYYy/c7o4dOxwu//0Zo7Ozs03VqlXNe++9Z7/+7Nmzpn79+ua5554zxhizYcMGI8msXbvWfsynn35qJJnc3FxnmgAIaPSoAH6gb9++SklJUUpKirZu3ar+/ftrwIABOnTokMLCwjRq1Ci9/fbbkqTt27dr586dGjNmjMNtdOvWrcjvu3fvtv++du1aXX311WrQoIFq1KihUaNG6ZdfflFOTo4kaeLEiZo+fbp69OihqVOnOkzmvffee7V06VJ16NBBjzzyiLZs2eLU43vppZfsjy8lJUV/+MMf7Nd16tTJ4diCggI9++yzSkxMVJ06dVS9enV9/vnnSktLkyTt3r1beXl5uvrqq52q4ff279+v/Px89ejRw35Z1apV1aVLF4c2k6R27drZ/x0XFydJOn78eIXvGwg0BBXAD0RERKh58+Zq3ry5OnfurDfffFOnT5/WggULJEljx47VmjVr9J///EcLFy7UVVddpcaNG5f79g8ePKjrrrtO7dq108cff6xt27bZ57CcPXvWfh8HDhzQqFGj9P3336tTp0565ZVXJMkemu6//34dOXJEV199tR566KFy339sbKz98TVv3lwREREOj/33nn/+ef31r3/Vo48+qg0bNiglJUX9+/e31xkeHl7u+3WFqlWr2v9ts9kknZ8jA6B8CCqAH7LZbAoKClJubq4kKTExUZ06ddKCBQv0/vvvFztP4uuvvy7ye5s2bSRJ27ZtU2FhoV588UVdccUVatmypY4cOVLkNuLj43XPPfdo+fLlevDBB+1BSZKio6M1evRoLVmyRHPnztUbb7zhyodst3nzZg0ZMkS33nqr2rdvr6ZNm+rHH3+0X9+iRQuFh4fbJxJfLCQkRNL5npmSNGvWTCEhIdq8ebP9svz8fCUnJ+uSSy5x0SMBIElVvF0AgMrLy8vT0aNHJZ1fYfO3v/1N2dnZGjx4sP2YsWPHasKECYqIiNDQoUOL3MbmzZv13HPP6YYbbtCaNWv04Ycf6tNPP5UkNW/eXPn5+XrllVc0ePBgbd68Wa+99prD30+aNEkDBgxQy5YtdfLkSW3YsMEedJ566il17NhRl156qfLy8vTJJ5/Yr3O1Fi1a6KOPPtKWLVtUu3ZtzZkzR8eOHbMHiLCwMD366KN65JFHFBISoh49eujEiRPatWuX7rzzTsXExCg8PFyfffaZGjZsqLCwMEVGRjrcR0REhO699149/PDDqlOnjho1aqTnnntOOTk5uvPOO93yuIBARY8K4Ac+++wzxcXFKS4uTl27dlVycrI+/PBD+9JaSRoxYoSqVKmiESNGKCwsrMhtPPjgg/rmm2902WWXafr06ZozZ4769+8vSWrfvr3mzJmj2bNnq23btnrvvfeUlJTk8PcFBQUaP3682rRpo2uvvVYtW7bUq6++Kul8L8Vjjz2mdu3aqVevXgoODtbSpUvd0hZPPvmkLr/8cvXv3199+vRRbGxskR1lp0yZogcffFBPPfWU2rRpo+HDh9vnjVSpUkUvv/yyXn/9ddWvX19Dhgwp9n5mzZqlP/7xjxo1apQuv/xy7du3T59//rlq167tlscFBCqbMcZ4uwgA7nfw4EE1a9ZMycnJuvzyyx2uS0hI0KRJkzRp0iTvFAcAJWDoB/Bz+fn5+uWXX/Tkk0/qiiuuKBJSAMDKGPoB/NzmzZsVFxen5OTkIvNKvG3mzJmqXr16sT8DBgzwdnkALIChHwBe8+uvvxbZyfWC8PBwNWjQwMMVAbAaggoAALAshn4AAIBlEVQAAIBlEVQAAIBlEVQAAIBlEVQAAIBlEVQAAIBlEVQAAIBlEVQAAIBl/X917GNJnQdDCQAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_49.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAioAAAHHCAYAAACRAnNyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABFKUlEQVR4nO3deXhU9d3+8XuSkIWQhC0hAcMOghBAWZRFFkURLS7wVEREQLRVQ1HUVrBawC24Ia1FtKiBp6hQFSy1bixSf4KWNQoUqSABlLApZAiEAZPv7w+ejAxZyExm5pyZeb+uK5fOmTMznzkkZ+75bsdhjDECAACwoSirCwAAAKgMQQUAANgWQQUAANgWQQUAANgWQQUAANgWQQUAANgWQQUAANgWQQUAANgWQQUAANgWQQVAjU2dOlUOh6Na+zocDk2dOjWg9fTv31/9+/e37fMBqD6CChBG5s6dK4fD4f6JiYlRkyZNNGbMGH3//fdWl2c7zZs39zheaWlpuvTSS7V48WK/PP/x48c1depUrVy50i/PB0QiggoQhh599FH99a9/1UsvvaTBgwdr/vz56tevn06cOBGQ13v44YdVXFwckOcOtC5duuivf/2r/vrXv+qBBx7Q3r17NXToUL300ks1fu7jx49r2rRpBBWgBmKsLgCA/w0ePFjdunWTJN1+++1q2LChnnrqKS1ZskQ33nij318vJiZGMTGheTpp0qSJbrnlFvftW2+9Va1bt9bzzz+vO++808LKAEi0qAAR4dJLL5Uk7dixw2P7119/rf/5n/9R/fr1FR8fr27dumnJkiUe+5w6dUrTpk1TmzZtFB8frwYNGqhPnz5aunSpe5+Kxqi4XC5NnDhRqampSkpK0rXXXqvvvvuuXG1jxoxR8+bNy22v6Dlzc3N12WWXKS0tTXFxcbrgggs0e/Zsr47FuaSnp6t9+/bauXNnlfsdOHBA48aNU6NGjRQfH6/OnTtr3rx57vvz8/OVmpoqSZo2bZq7eynQ43OAcBOaX4EAeCU/P1+SVK9ePfe2LVu2qHfv3mrSpIkmTZqkxMRE/e1vf9P111+vd955RzfccIOk04EhJydHt99+u3r06CGn06l169Zpw4YNuuKKKyp9zdtvv13z58/XzTffrF69emnFihW65ppravQ+Zs+erQ4dOujaa69VTEyM/vGPf+juu+9WaWmpsrOza/TcZU6dOqU9e/aoQYMGle5TXFys/v37a/v27Ro/frxatGiht956S2PGjNGRI0d0zz33KDU1VbNnz9Zdd92lG264QUOHDpUkderUyS91AhHDAAgbubm5RpJZtmyZOXjwoNmzZ495++23TWpqqomLizN79uxx73v55ZebrKwsc+LECfe20tJS06tXL9OmTRv3ts6dO5trrrmmytedMmWKOfN0kpeXZySZu+++22O/m2++2UgyU6ZMcW8bPXq0adas2Tmf0xhjjh8/Xm6/QYMGmZYtW3ps69evn+nXr1+VNRtjTLNmzcyVV15pDh48aA4ePGi+/PJLc9NNNxlJ5je/+U2lzzdz5kwjycyfP9+97eTJk6Znz56mTp06xul0GmOMOXjwYLn3C8A7dP0AYWjgwIFKTU1VZmam/ud//keJiYlasmSJzjvvPEnSjz/+qBUrVujGG2/U0aNHdejQIR06dEg//PCDBg0apG+++cY9S6hu3brasmWLvvnmm2q//vvvvy9JmjBhgsf2e++9t0bvKyEhwf3/hYWFOnTokPr166dvv/1WhYWFPj3nxx9/rNTUVKWmpqpz58566623NGrUKD311FOVPub9999Xenq6RowY4d5Wq1YtTZgwQUVFRfrXv/7lUy0AyguboPLpp59qyJAhaty4sRwOh959992Avl5Z//mZP+3atQvoawLVNWvWLC1dulRvv/22rr76ah06dEhxcXHu+7dv3y5jjB555BH3h3TZz5QpUySdHoMhnZ5BdOTIEbVt21ZZWVn67W9/q6+++qrK19+1a5eioqLUqlUrj+3nn39+jd7XqlWrNHDgQCUmJqpu3bpKTU3VQw89JEk+B5WLL75YS5cu1bJly7R69WodOnRI//u//+sRis62a9cutWnTRlFRnqfQ9u3bu+8H4B9hM0bl2LFj6ty5s2677TZ3X3CgdejQQcuWLXPfDtVZDwg/PXr0cM/6uf7669WnTx/dfPPN2rZtm+rUqaPS0lJJ0gMPPKBBgwZV+BytW7eWJPXt21c7duzQ3//+d3388cd65ZVX9Pzzz+ull17S7bffXuNaK1sorqSkxOP2jh07dPnll6tdu3aaMWOGMjMzFRsbq/fff1/PP/+8+z15q2HDhho4cKBPjwUQeGHzyTp48GANHjy40vtdLpd+//vf680339SRI0fUsWNHPfXUUzVabTImJkbp6ek+Px4IhujoaOXk5GjAgAH685//rEmTJqlly5aSTndXVOdDun79+ho7dqzGjh2roqIi9e3bV1OnTq00qDRr1kylpaXasWOHRyvKtm3byu1br149HTlypNz2s1sl/vGPf8jlcmnJkiVq2rSpe/snn3xyzvr9rVmzZvrqq69UWlrq0ary9ddfu++XKg9hAKovbLp+zmX8+PH6/PPPtWDBAn311Vf65S9/qauuusqrfvezffPNN2rcuLFatmypkSNHavfu3X6sGPCf/v37q0ePHpo5c6ZOnDihtLQ09e/fXy+//LIKCgrK7X/w4EH3///www8e99WpU0etW7eWy+Wq9PXKvjT86U9/8tg+c+bMcvu2atVKhYWFHt1JBQUF5VaHjY6OliQZY9zbCgsLlZubW2kdgXL11Vdr3759WrhwoXvbTz/9pBdeeEF16tRRv379JEm1a9eWpAqDGIDqCZsWlars3r1bubm52r17txo3bizpdJP3hx9+qNzcXD355JNeP+fFF1+suXPn6vzzz1dBQYGmTZumSy+9VJs3b1ZSUpK/3wJQY7/97W/1y1/+UnPnztWdd96pWbNmqU+fPsrKytIdd9yhli1bav/+/fr888/13Xff6csvv5QkXXDBBerfv7+6du2q+vXra926dXr77bc1fvz4Sl+rS5cuGjFihF588UUVFhaqV69eWr58ubZv315u35tuukkPPvigbrjhBk2YMEHHjx/X7Nmz1bZtW23YsMG935VXXqnY2FgNGTJEv/71r1VUVKQ5c+YoLS2twrAVSL/61a/08ssva8yYMVq/fr2aN2+ut99+W6tWrdLMmTPd54CEhARdcMEFWrhwodq2bav69eurY8eO6tixY1DrBUKa1dOOAkGSWbx4sfv2e++9ZySZxMREj5+YmBhz4403GmOM2bp1q5FU5c+DDz5Y6WsePnzYJCcnm1deeSXQbw+oVNn05LVr15a7r6SkxLRq1cq0atXK/PTTT8YYY3bs2GFuvfVWk56ebmrVqmWaNGlifvGLX5i3337b/bjHH3/c9OjRw9StW9ckJCSYdu3amSeeeMKcPHnSvU9FU4mLi4vNhAkTTIMGDUxiYqIZMmSI2bNnT4XTdT/++GPTsWNHExsba84//3wzf/78Cp9zyZIlplOnTiY+Pt40b97cPPXUU+a1114zkszO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rF/96lcaNWqU1qxZ437M5MmTNX36dHddb7zxhho1aiRJ7v2WLVumgoICLVq0qMLX/d3vfqd33nlH8+bN04YNG9S6dWsNGjRIP/74o8d+v//97/Xcc89p3bp1iomJ0W233eaX9w1EjBpf1hCApUaPHm2io6NNYmKiSUxMNJJMRkaGWb9+vTHGmOLiYlOvXj2zcOFC92M6depkpk6d6r7drFkzc9VVV3k87/Dhw83gwYMrfd233nrLNGjQwH07KyvL4znPNGTIEDN27Fif3p8kEx8f735/iYmJZvHixe6rnc+cOfOcz3HNNdeY+++/3xhjjNPpNHFxcWbOnDkV7lv2vBs3bvTYfuYVo4uKikytWrXM66+/7r7/5MmTpnHjxubpp582xhjzySefGElm2bJl7n3++c9/GkmmuLjYm0MARDRaVIAwMGDAAOXl5SkvL09r1qzRoEGDNHjwYO3atUvx8fEaNWqUXnvtNUnShg0btHnzZo0ZM8bjOXr27Fnu9tatW923ly1bpssvv1xNmjRRUlKSRo0apR9++EHHjx+XJE2YMEGPP/64evfurSlTpngM5r3rrru0YMECdenSRb/73e+0evVqr97f888/735/eXl5uuKKK9z3devWzWPfkpISPfbYY8rKylL9+vVVp04dffTRR9q9e7ckaevWrXK5XLr88su9quFMO3bs0KlTp9S7d2/3tlq1aqlHjx4ex0ySOnXq5P7/jIwMSdKBAwd8fm0g0hBUgDCQmJio1q1bq3Xr1urevbteeeUVHTt2THPmzJEk3X777Vq6dKm+++475ebm6rLLLlOzZs2q/fz5+fn6xS9+oU6dOumdd97R+vXr3WNYTp486X6Nb7/9VqNGjdKmTZvUrVs3vfDCC5LkDk0TJ07U3r17dfnll+uBBx6o9uunp6e731/r1q2VmJjo8d7P9Mwzz+iPf/yjHnzwQX3yySfKy8vToEGD3HUmJCRU+3X9oVatWu7/dzgckk6PkQFQPQQVIAw5HA5FRUWpuLhYkpSVlaVu3bppzpw5euONNyocJ/HFF1+Uu92+fXtJ0vr161VaWqrnnntOl1xyidq2bau9e/eWe47MzEzdeeedWrRoke6//353UJKk1NRUjR49WvPnz9fMmTP1l7/8xZ9v2W3VqlW67rrrdMstt6hz585q2bKl/vvf/7rvb9OmjRISEtwDic8WGxsr6XTLTGVatWql2NhYrVq1yr3t1KlTWrt2rS644AI/vRMAkhRjdQEAas7lcmnfvn2STs+w+fOf/6yioiINGTLEvc/tt9+u8ePHKzExUTfccEO551i1apWefvppXX/99Vq6dKneeust/fOf/5QktW7dWqdOndILL7ygIUOGaNWqVXrppZc8Hn/vvfdq8ODBatu2rQ4fPqxPPvnEHXT+8Ic/qGvXrurQoYNcLpfee+89933+1qZNG7399ttavXq16tWrpxkzZmj//v3uABEfH68HH3xQv/vd7xQbG6vevXvr4MGD2rJli8aNG6e0tDQlJCToww8/1Hnnnaf4+HilpKR4vEZiYqLuuusu/fa3v1X9+vXVtGlTPf300zp+/LjGjRsXkPcFRCpaVIAw8OGHHyojI0MZGRm6+OKLtXbtWr311lvuqbWSNGLECMXExGjEiBGKj48v9xz333+/1q1bpwsvvFCPP/64ZsyYoUGDBkmSOnfurBkzZuipp55Sx44d9frrrysnJ8fj8SUlJcrOzlb79u111VVXqW3btnrxxRclnW6lmDx5sjp16qS+ffsqOjpaCxYsCMixePjhh3XRRRdp0KBB6t+/v9LT08utKPvII4/o/vvv1x/+8Ae1b99ew4cPd48biYmJ0Z/+9Ce9/PLLaty4sa677roKX2f69OkaNmyYRo0apYsuukjbt2/XRx99pHr16gXkfQGRymGMMVYXASDw8vPz1apVK61du1YXXXSRx33NmzfXvffeq3vvvdea4gCgEnT9AGHu1KlT+uGHH/Twww/rkksuKRdSAMDO6PoBwtyqVauUkZGhtWvXlhtXYrUnn3xSderUqfBn8ODBVpcHwAbo+gFgmR9//LHcSq5lEhIS1KRJkyBXBMBuCCoAAMC26PoBAAC2RVABAAC2RVABAAC2RVABAAC2RVABAAC2RVABAAC2RVABAAC2RVABAAC29f8B7hlmH7CEsTgAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_50.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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dKX9iYiIiMj5cAwSERERkQkmSEREREQmmCARERERmWCCRERERGSCCRIRERGRCSZIRERERCaYIBERERGZYIJERCRzc+bMQXJysr3DIOpWmCARUafNmTMHCoVC2vr27YsJEybg22+/tXdoFvHLa2veEhMTrfZ85eXlUCgUKC0tNdr/xz/+ETt27LDa8xJRS0yQiKhLJkyYgMrKSlRWVqKgoABubm546KGH7B2WxWzfvl26vsrKSuzdu7fVctevX7daDCqVCj4+PlY7PxG1xASJiLrEw8MDarUaarUaUVFRSE9Px/nz51FdXY17770XCxcuNCpfXV0Nd3d36W7dISEhePHFFzFjxgx4eXkhKCgI2dnZRse89tpriIiIgJeXF4KDg/Hkk0/i6tWr0uP//ve/MXnyZPj6+sLLywu333479u/fDwD46aef8Oijj6Jfv37w9PREWFgYtm/f3uHr8/Hxka5PrVajT58+UktPXl4exo4dC6VSiQ8++AA//vgjZsyYgaCgIPTs2RMRERH485//bHQ+g8GADRs2YMiQIfDw8MCAAQPwhz/8AQAQGhoKALjzzjuhUCgwbtw4AC272BoaGvDUU0+hf//+UCqVSExMxNGjR6XHv/jiCygUChQUFCAmJgY9e/ZEQkICTp061eHrJurumCARkcVcvXoV77//PoYMGYK+ffvisccew86dO9HQ0CCVef/99xEUFIR7771X2vfKK68gMjISJSUlSE9Px+LFi3HgwAHpcRcXF2zevBknTpzAu+++i4MHD2L58uXS4wsWLEBDQwO+/PJLfPfdd3j55ZfRq1cvAMDq1avxz3/+E//zP/+D77//Hm+++Sb8/Pwscr3NsX7//ffQaDS4du0aoqOj8fHHH+P48eOYP38+Zs6ciSNHjkjHrFixAuvXr5fi2rlzJ/z9/QFAKvfZZ5+hsrISu3fvbvV5ly9fjo8++gjvvvsuiouLMWTIEGg0Gly6dMmo3HPPPYeNGzfi2LFjcHNzw3/9139Z5LqJuoUu3eqWiLq12bNnC1dXV+Hl5SW8vLwEABEQECCKioqEEELU19cLX19fkZeXJx1zxx13iLVr10o/Dxw4UEyYMMHovCkpKWLixIltPu+uXbtE3759pZ8jIiKMzvlLkydPFnPnzu3U9QEQSqVSuj4vLy/x17/+VZSVlQkAIisr65bnmDRpkli6dKkQQoja2lrh4eEhtm3b1mrZ5vOWlJQY7Z89e7aYMmWKEEKIq1evih49eogPPvhAeryxsVEEBgaKDRs2CCGE+PzzzwUA8dlnn0llPv74YwFA1NfXm1MFRN0WW5CIqEvGjx+P0tJSlJaW4siRI9BoNJg4cSL+/e9/Q6lUYubMmXjnnXcAAMXFxTh+/DjmzJljdI74+PgWP3///ffSz5999hnuu+8+BAUFoXfv3pg5cyZ+/PFH1NXVAQCeeuoprFu3DmPGjEFGRobRIPEnnngCubm5iIqKwvLly3Ho0CGzrm/Tpk3S9ZWWluL++++XHouJiTEq29TUhBdffBERERHo06cPevXqhU8++QQVFRUAgO+//x4NDQ247777zIrhl86ePYvr169jzJgx0r4ePXogNjbWqM4A4I477pD+HxAQAAC4ePFip5+bqDthgkREXeLl5YUhQ4ZgyJAhGDVqFP70pz9Br9dj27ZtAIDHHnsMBw4cwH/+8x9s374d9957LwYOHNjh85eXl+Ohhx7CHXfcgY8++ghFRUXSGKXGxkbpOc6dO4eZM2fiu+++Q0xMDF5//XUAkJK1p59+GhcuXMB9992HZcuWdfj51Wq1dH1DhgyBl5eX0bX/0iuvvII//vGPePbZZ/H555+jtLQUGo1GitPT07PDz2sJPXr0kP6vUCgA3BwDRUS3xgSJiCxKoVDAxcUF9fX1AICIiAjExMRg27Zt2LlzZ6vjYP7v//6vxc8jRowAABQVFcFgMGDjxo0YPXo0hg4digsXLrQ4R3BwMB5//HHs3r0bS5culRI0AOjXrx9mz56N999/H1lZWdi6daslL1ny9ddfY8qUKfjd736HyMhIDBo0CP/617+kx8PCwuDp6SkNUDfl7u4O4GZLVFsGDx4Md3d3fP3119K+69ev4+jRoxg5cqSFroSI3OwdABE5toaGBmi1WgA3Z4xt2bIFV69exeTJk6Uyjz32GBYuXAgvLy/8+te/bnGOr7/+Ghs2bEBycjIOHDiAXbt24eOPPwYADBkyBNevX8frr7+OyZMn4+uvv0ZOTo7R8UuWLMHEiRMxdOhQ/PTTT/j888+lBGvNmjWIjo7G7bffjoaGBuzbt096zNLCwsLw4Ycf4tChQ/D19cVrr72GqqoqKXFRKpV49tlnsXz5cri7u2PMmDGorq7GiRMnkJqaiv79+8PT0xP5+fm47bbboFQqoVKpjJ7Dy8sLTzzxBJ555hn06dMHAwYMwIYNG1BXV4fU1FSrXBdRd8QWJCLqkvz8fAQEBCAgIABxcXE4evQodu3aJU1RB4AZM2bAzc0NM2bMgFKpbHGOpUuX4tixY7jzzjuxbt06vPbaa9BoNACAyMhIvPbaa3j55ZcRHh6ODz74AJmZmUbHNzU1YcGCBRgxYgQmTJiAoUOH4o033gBws1VmxYoVuOOOO3DPPffA1dUVubm5VqmLVatW4a677oJGo8G4ceOgVqtbrIC9evVqLF26FGvWrMGIESOQkpIijQtyc3PD5s2b8dZbbyEwMBBTpkxp9XnWr1+PadOmYebMmbjrrrtw5swZfPLJJ/D19bXKdRF1RwohhLB3EETk3MrLyzF48GAcPXoUd911l9FjISEhWLJkCZYsWWKf4IiIWsEuNiKymuvXr+PHH3/EqlWrMHr06BbJERGRXLGLjYis5uuvv0ZAQACOHj3aYtyQvb300kvo1atXq9vEiRPtHR4R2Rm72IioW7p06VKLlaebeXp6IigoyMYREZGcMEEiIiIiMsEuNiIiIiITTJCIiIiITDBBIiIiIjLBBImIiIjIBBMkIiIiIhNMkIiIiIhMMEEiIiIiMsEEiYiIiMjE/wN9EeUsytKKEQAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_51.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAloAAAHHCAYAAABnS/bqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABalUlEQVR4nO3de1hU1f4/8PcADgMog4YwgwcFRbyimAqBFprUWGSSlWim6NHsoqUHPaaV0kXDNMssj5SmdrooWlYe9ZiG+u1JCBWlvB81vFSAojGjiKDM+v3hj10TAzLAnj0zvF/PMw+y92f2fGY5zP7MWmvWVgkhBIiIiIio0bkpnQARERGRq2KhRURERCQTFlpEREREMmGhRURERCQTFlpEREREMmGhRURERCQTFlpEREREMmGhRURERCQTFlpEREREMmGhRURN3ssvvwyVSlWnWJVKhZdfflnWfAYMGIABAwY47PGIqO5YaBGRw1i9ejVUKpV08/DwQJs2bTB27Fj8+uuvSqfncEJCQizaKyAgAHfeeSe+/PLLRjn+1atX8fLLL2PXrl2NcjyipoiFFhE5nFdffRUff/wx0tPTcd999+GTTz5BXFwcrl27JsvjvfTSSygrK5Pl2HKLjIzExx9/jI8//hjTp0/Hb7/9hmHDhiE9Pb3Bx7569SpeeeUVFlpEDeChdAJERH913333oU+fPgCACRMmwN/fH2+88QY2btyI4cOHN/rjeXh4wMPDOd8O27Rpg8cff1z6fcyYMQgLC8Pbb7+Np556SsHMiAhgjxYROYE777wTAHDq1CmL7ceOHcMjjzyCVq1aQaPRoE+fPti4caNFzPXr1/HKK6+gY8eO0Gg0uO2229C/f39s375dirE2R6u8vBz/+Mc/0Lp1a7Ro0QIPPvggfvnll2q5jR07FiEhIdW2WzvmqlWrcPfddyMgIACenp7o2rUrli1bZlNb3IpOp0OXLl2Qn59fa9z58+cxfvx4BAYGQqPRoGfPnvjoo4+k/adPn0br1q0BAK+88oo0PCn3/DQiV+OcH+GIqEk5ffo0AKBly5bStsOHD6Nfv35o06YNZs6cCR8fH6xbtw6JiYn44osv8NBDDwG4WfCkpaVhwoQJiIqKgslkwr59+7B//37cc889NT7mhAkT8Mknn+Cxxx5DbGwsduzYgYSEhAY9j2XLlqFbt2548MEH4eHhgf/85z945plnYDabMWnSpAYdu8r169dx7tw53HbbbTXGlJWVYcCAATh58iQmT56M0NBQrF+/HmPHjkVJSQmmTJmC1q1bY9myZXj66afx0EMPYdiwYQCAHj16NEqeRE2GICJyEKtWrRIAxLfffisuXLggzp07Jz7//HPRunVr4enpKc6dOyfFDho0SERERIhr165J28xms4iNjRUdO3aUtvXs2VMkJCTU+ripqaniz2+HeXl5AoB45plnLOIee+wxAUCkpqZK25KTk0W7du1ueUwhhLh69Wq1OIPBINq3b2+xLS4uTsTFxdWasxBCtGvXTtx7773iwoUL4sKFC+LHH38UI0aMEADEs88+W+PxFi9eLACITz75RNpWUVEhYmJiRPPmzYXJZBJCCHHhwoVqz5eIbMOhQyJyOPHx8WjdujWCg4PxyCOPwMfHBxs3bsTf/vY3AMClS5ewY8cODB8+HJcvX0ZxcTGKi4tx8eJFGAwGnDhxQvqWop+fHw4fPowTJ07U+fG3bNkCAHjuuecstk+dOrVBz8vLy0v6t9FoRHFxMeLi4vDzzz/DaDTW65jbtm1D69at0bp1a/Ts2RPr16/H6NGj8cYbb9R4ny1btkCn02HkyJHStmbNmuG5557DlStX8H//93/1yoWIquPQIRE5nKVLlyI8PBxGoxErV67Ed999B09PT2n/yZMnIYTA7NmzMXv2bKvHOH/+PNq0aYNXX30VQ4cORXh4OLp3747Bgwdj9OjRtQ6BnTlzBm5ubujQoYPF9k6dOjXoee3evRupqanIzs7G1atXLfYZjUZotVqbjxkdHY25c+dCpVLB29sbXbp0gZ+fX633OXPmDDp27Ag3N8vP2l26dJH2E1HjYKFFRA4nKipK+tZhYmIi+vfvj8ceewzHjx9H8+bNYTabAQDTp0+HwWCweoywsDAAwF133YVTp07h66+/xrZt27BixQq8/fbbSE9Px4QJExqca00LnVZWVlr8furUKQwaNAidO3fGW2+9heDgYKjVamzZsgVvv/229Jxs5e/vj/j4+Hrdl4jkx0KLiByau7s70tLSMHDgQLz33nuYOXMm2rdvD+DmcFddioxWrVph3LhxGDduHK5cuYK77roLL7/8co2FVrt27WA2m3Hq1CmLXqzjx49Xi23ZsiVKSkqqbf9rr9B//vMflJeXY+PGjWjb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Wi6uqvvU/f8vlWCP7tOlS5eisrISUVFR+OKLL3DixAkcPXoUS5YsQUxMDHx8fPD+++/j66+/xsSJE/HTTz/h9OnT+PDDDzF27Fg88sgjGD58uGz5ERER2QvX0WoCkvq2xV3hrWXpPrWmffv22L9/P+bNm4dp06ahoKAArVu3Ru/evbFs2TIAwCOPPIKdO3di3rx5uPPOO3Ht2jV07NgRL774IqZOnco1tIiIyCVwjpaC7DFHyxWxbYiISEmco0VERETkAFhoEREREcmEhRYRERGRTFhoEREREcmEhZaD43cVqmObEBGRs2Ch5aCaNWsGALh61f4XwHR0VW1S1UZERESOiutoOSh3d3f4+fnh/PnzAABvb+8mv7aUEAJXr17F+fPn4efnB3d3d6VTIiIiqhULLQem0+kAQCq26CY/Pz+pbYiIiBwZCy0HplKpoNfrERAQgOvXryudjkNo1qwZe7KIiMhpsNByAu7u7iwuiIiInBAnwxMRERHJhIUWERERkUxYaBERERHJhIUWERERkUxYaBERERHJhIUWERERkUxYaBERERHJhIUWERERkUxYaBERERHJhIUWERERkUxYaBERERHJhIUWERERkUxYaBERERHJhIUWERERkUxYaBERERHJhIUWERERkUxYaBERERHJhIUWERERkUxYaBERERHJhIUWERERkUxYaBERERHJhIUWERERkUxYaBERERHJhIUWERERkUwUL7SWLl2KkJAQaDQaREdHY8+ePbXGr1+/Hp07d4ZGo0FERAS2bNlisV8IgTlz5kCv18PLywvx8fE4ceKERcy8efMQGxsLb29v+Pn5WX0clUpV7bZ27VqLmF27duH222+Hp6cnwsLCsHr1apufPxEREbkuRQutjIwMpKSkIDU1Ffv370fPnj1hMBhw/vx5q/FZWVkYOXIkxo8fjwMHDiAxMRGJiYk4dOiQFLNgwQIsWbIE6enpyMnJgY+PDwwGA65duybFVFRU4NFHH8XTTz9da36rVq1CQUGBdEtMTJT25efnIyEhAQMHDkReXh6mTp2KCRMm4JtvvmlYoxAREZHrEAqKiooSkyZNkn6vrKwUQUFBIi0tzWr88OHDRUJCgsW26Oho8eSTTwohhDCbzUKn04mFCxdK+0tKSoSnp6dYs2ZNteOtWrVKaLVaq48FQHz55Zc15j5jxgzRrVs3i21JSUnCYDDUeJ+/MhqNAoAwGo11vg8REREpy5bzt2I9WhUVFcjNzUV8fLy0zc3NDfHx8cjOzrZ6n+zsbIt4ADAYDFJ8fn4+CgsLLWK0Wi2io6NrPGZtJk2aBH9/f0RFRWHlypUQQtQ5F2vKy8thMpksbkREROS6PJR64OLiYlRWViIwMNBie2BgII4dO2b1PoWFhVbjCwsLpf1V22qKqatXX30Vd999N7y9vbFt2zY888wzuHLlCp577rlaczGZTCgrK4OXl1e1Y6alpeGVV16xKQ8iIiJyXooVWo5u9uzZ0r979eqF0tJSLFy4UCq06mPWrFlISUmRfjeZTAgODm5QnkREROS4FBs69Pf3h7u7O4qKiiy2FxUVQafTWb2PTqerNb7qpy3HrKvo6Gj88ssvKC8vrzUXX19fq71ZAODp6QlfX1+LGxEREbkuxQottVqN3r17IzMzU9pmNpuRmZmJmJgYq/eJiYmxiAeA7du3S/GhoaHQ6XQWMSaTCTk5OTUes67y8vLQsmVLeHp61ikXIiIiIkWHDlNSUpCcnIw+ffogKioKixcvRmlpKcaNGwcAGDNmDNq0aYO0tDQAwJQpUxAXF4dFixYhISEBa9euxb59+/DBBx8AuLn21dSpUzF37lx07NgRoaGhmD17NoKCgiyWZjh79iwuXbqEs2fPorKyEnl5eQCAsLAwNG/eHP/5z39QVFSEO+64AxqNBtu3b8frr7+O6dOnS8d46qmn8N5772HGjBn4+9//jh07dmDdunXYvHmzfRqPiIiIHJ/8X4Ks3bvvvivatm0r1Gq1iIqKEj/88IO0Ly4uTiQnJ1vEr1u3ToSHhwu1Wi26desmNm/ebLHfbDaL2bNni8DAQOHp6SkGDRokjh8/bhGTnJwsAFS77dy5UwghxH//+18RGRkpmjdvLnx8fETPnj1Fenq6qKystDjOzp07RWRkpFCr1aJ9+/Zi1apVNj13Lu9ARETkfGw5f6uE+NOaBWRXJpMJWq0WRqOR87WIiIichC3nb8UvwUNERETkqlhoEREREcmEhRYRERGRTFhoEREREcmEhRYRERGRTFhoEREREcmEhRYRERGRTFhoEREREcmEhRYRERGRTFhoEREREcmEhRYRERGRTFhoEREREcmEhRYRERGRTFhoEREREcmEhRYRERGRTFhoEREREcmEhRYRERGRTFhoEREREcmEhRYRERGRTFhoEREREcmEhRYRERGRTFhoEREREcmEhRYRERGRTFhoEREREcmEhRYRERGRTFhoEREREcmEhRYRERGRTFhoEREREcmEhRYRERGRTFhoEREREcmEhRYRERGRTFhoEREREcmEhRYRERGRTFhoEREREcmEhRYRERGRTFhoEREREcmEhRYRERGRTBQvtJYuXYqQkBBoNBpER0djz549tcavX78enTt3hkajQUREBLZs2WKxXwiBOXPmQK/Xw8vLC/Hx8Thx4oRFzLx58xAbGwtvb2/4+flVe4wff/wRI0eORHBwMLy8vNClSxe88847FjG7du2CSqWqdissLKxfQxAREZHLUbTQysjIQEpKClJTU7F//3707NkTBoMB58+ftxqflZWFkSNHYvz48Thw4AASExORmJiIQ4cOSTELFizAkiVLkJ6ejpycHPj4+MBgMODatWtSTEVFBR599FE8/fTTVh8nNzcXAQEB+OSTT3D48GG8+OKLmDVrFt57771qscePH0dBQYF0CwgIaGCrEBERkatQCSGEUg8eHR2Nvn37SgWM2WxGcHAwnn32WcycObNafFJSEkpLS7Fp0yZp2x133IHIyEikp6dDCIGgoCBMmzYN06dPBwAYjUYEBgZi9erVGDFihMXxVq9ejalTp6KkpOSWuU6aNAlHjx7Fjh07ANzs0Ro4cCB+//13q71idWEymaDVamE0GuHr61uvYxAREZF92XL+VqxHq6KiArm5uYiPj/8jGTc3xMfHIzs72+p9srOzLeIBwGAwSPH5+fkoLCy0iNFqtYiOjq7xmHVlNBrRqlWratsjIyOh1+txzz33YPfu3Q16DCIiInItHko9cHFxMSorKxEYGGixPTAwEMeOHbN6n8LCQqvxVfOiqn7WFlMfWVlZyMjIwObNm6Vter0e6enp6NOnD8rLy7FixQoMGDAAOTk5uP32260ep7y8HOXl5dLvJpOp3jkRERGR41Os0HIWhw4dwtChQ5Gamop7771X2t6pUyd06tRJ+j02NhanTp3C22+/jY8//tjqsdLS0vDKK6/InjMRERE5BsWGDv39/eHu7o6ioiKL7UVFRdDpdFbvo9Ppao2v+mnLMWtz5MgRDBo0CBMnTsRLL710y/ioqCicPHmyxv2zZs2C0WiUbufOnbM5JyIiInIeihVaarUavXv3RmZmprTNbDYjMzMTMTExVu8TExNjEQ8A27dvl+JDQ0Oh0+ksYkwmE3Jycmo8Zk0OHz6MgQMHIjk5GfPmzavTffLy8qDX62vc7+npCV9fX4sbERERuS5Fhw5TUlKQnJyMPn36ICoqCosXL0ZpaSnGjRsHABgzZgzatGmDtLQ0AMCUKVMQFxeHRYsWISEhAWvXrsW+ffvwwQcfAABUKhWmTp2KuXPnomPHjggNDcXs2bMRFBSExMRE6XHPnj2LS5cu4ezZs6isrEReXh4AICwsDM2bN8ehQ4dw9913w2AwICUlRZrf5e7ujtatWwMAFi9ejNDQUHTr1g3Xrl3DihUrsGPHDmzbts1OrUdEREQOTyjs3XffFW3bthVqtVpERUWJH374QdoXFxcnkpOTLeLXrVsnwsPDhVqtFt26dRObN2+22G82m8Xs2bNFYGCg8PT0FIMGDRLHjx+3iElOThYAqt127twphBAiNTXV6v527dpJx3jjjTdEhw4dhEajEa1atRIDBgwQO3bssOm5G41GAUAYjUab7kdERETKseX8reg6Wk0d19EiIiJyPk6xjhYRERGRq2OhRURERCQTFlpEREREMmGhRURERCQTFlpEREREMmGhRURERCQTFlpEREREMmGhRURERCQTFlpEREREMmGhRURERE6rwFiGrFPFKDCWKZ2KVYpeVJqIiIiovjL2nsWsDQdhFoCbCkgbFoGkvm2VTssCe7SIiIjI6RQYy6QiCwDMAnhhwyGH69lioUVEREROJ7+4VCqyqlQKgdPFV5VJqAYstIiIiMjphPr7wE1luc1dpUKIv7cyCdWAhRYRERE5Hb3WC2nDIuCuulltuatUeH1Yd+i1XgpnZomT4YmIiMgpJfVti7vCW+N08VWE+Hs7XJEFsNAiIiIiJ6bXejlkgVWFQ4dEREREMmGhRURERCQTFlpEREREMmGhRURERCQTFlpEREREMmGhRURERCQTFlpEREREMmGhRURERCQTFlpEREREMmGhRURERCQTFlpEREREMmGhRURERCQTFlpEREREMmGhRURERCQTFlpEREREMmGhRURERCQTFlpEREREMmGhRURERCQTFlrk8gqMZcg6VYwCY5nSqRARURPjoXQCRHLK2HsWszYchFkAbiogbVgEkvq2VTotIiJqItijRS6rwFgmFVkAYBbACxsO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8HD89ttv1Y4RHByMp556Chs2bMC0adOkQg8AWrdujeTkZHzyySdYvHgxPvjgg8Z8ypLdu3dj6NChePzxx9GzZ0+0b98e//vf/6T9HTt2hJeXl/RFgL9Sq9UAbvaM1aRDhw5Qq9XYvXu3tO369evYu3cvunbt2kjPhIg8lE6AiAi4+Q24wsJCADe/4ffee+/hypUrGDJkiBQzYcIETJ48GT4+PnjooYeqHWP37t1YsGABEhMTsX37dqxfvx6bN28GAISFheH69et49913MWTIEOzevRvp6ekW9586dSruu+8+hIeH4/fff8fOnTulQm3OnDno3bs3unXrhvLycmzatEna19g6duyIzz//HFlZWWjZsiXeeustFBUVSQWQRqPB888/jxkzZkCtVqNfv364cOECDh8+jPHjxyMgIABeXl7YunUr/va3v0Gj0UCr1Vo8ho+PD55++mn885//RKtWrdC2bVssWLAAV69exfjx42V5XkRNEXu0iMghbN26FXq9Hnq9HtHR0di7dy/Wr18vLU0AACNHjoSHhwdGjhwJjUZT7RjTpk3Dvn370KtXL8ydOxdvvfUWDAYDAKBnz55466238MYbb6B79+749NNPkZaWZnH/yspKTJo0CV26dMHgwYMRHh6Of/3rXwBu9hLNmjULPXr0wF133QV3d3esXbtWlrZ46aWXcPvtt8NgMGDAgAHQ6XTVVnSfPXs2pk2bhjlz5qBLly5ISkqS5k15eHhgyZIleP/99xEUFIShQ4dafZz58+fj4YcfxujRo3H77bfj5MmT+Oabb9CyZUtZnhdRU6QSQgilkyAiqovTp0+jQ4cO2Lt3L26//XaLfSEhIZg6dSqmTp2qTHJERFZw6JCIHN7169dx8eJFvPTSS7jjjjuqFVlERI6KQ4dE5PB2794NvV6PvXv3VptXpbTXX38dzZs3t3q77777lE6PiBTGoUMioga4dOlStZXUq3h5eaFNmzZ2zoiIHAkLLSIiIiKZcOiQiIiISCYstIiIiIhkwkKLiIiISCYstIiIiIhkwkKLiIiISCYstIiIiIhkwkKLiIiISCYstIiIiIhk8v8Afom5qlfap8AAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_52.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlEAAAHHCAYAAACfqw0dAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABPDklEQVR4nO3deXxU1cH/8e8kIQuBJCCQBAwkLBGUsMgSAwooqUEtgmiFSCnwoGhFrUUfBRVxB5EqohSsC7RuIEorRYoiYP0BMcQAsiMgCCIBAjIBEgJkzu8PHkbHLCQ3mS3zeb9eeUHuPXPn3DM3M98559x7bcYYIwAAAFRJkLcrAAAA4I8IUQAAABYQogAAACwgRAEAAFhAiAIAALCAEAUAAGABIQoAAMACQhQAAIAFhCgAAAALCFEAarUnnnhCNputUmVtNpueeOIJt9anT58+6tOnj89uD0DlEaIAeMScOXNks9mcPyEhIWrWrJlGjBih/fv3e7t6PicxMdGlvZo0aaKrrrpK//znP2tk+4WFhXriiSf0xRdf1Mj2gEBEiALgUU899ZTefvttzZo1S9ddd53eeecd9e7dW6dOnXLL8z322GMqKipyy7bdrVOnTnr77bf19ttv68EHH9SPP/6oQYMGadasWdXedmFhoZ588klCFFANId6uAIDAct1116lr166SpNtvv12NGjXS888/r4ULF+rWW2+t8ecLCQlRSIh/vtU1a9ZMv//9752//+EPf1Dr1q310ksv6a677vJizQBI9EQB8LKrrrpKkrRr1y6X5du2bdMtt9yihg0bKjw8XF27dtXChQtdypw5c0ZPPvmk2rRpo/DwcF100UW68sortXTpUmeZsuZEFRcX689//rMaN26s+vXr68Ybb9QPP/xQqm4jRoxQYmJiqeVlbXP27Nm65ppr1KRJE4WFhenSSy/VzJkzq9QWFxIXF6d27dpp9+7dFZY7dOiQRo0apdjYWIWHh6tjx476+9//7ly/Z88eNW7cWJL05JNPOocM3T0fDKht/PPrGYBaY8+ePZKkBg0aOJdt3rxZPXv2VLNmzTRu3DhFRkbqgw8+0MCBA/XRRx/ppptuknQuzEyaNEm33367unfvroKCAn399ddau3atfvOb35T7nLfffrveeecd3XbbberRo4eWL1+uG264oVr7MXPmTF122WW68cYbFRISon//+9+6++675XA4NGbMmGpt+7wzZ85o3759uuiii8otU1RUpD59+mjnzp265557lJSUpPnz52vEiBE6duyY/vSnP6lx48aaOXOm/vjHP+qmm27SoEGDJEkdOnSokXoCAcMAgAfMnj3bSDKff/65OXz4sNm3b5/58MMPTePGjU1YWJjZt2+fs2zfvn1NSkqKOXXqlHOZw+EwPXr0MG3atHEu69ixo7nhhhsqfN6JEyeaX77VrV+/3kgyd999t0u52267zUgyEydOdC4bPny4adGixQW3aYwxhYWFpcplZGSYli1buizr3bu36d27d4V1NsaYFi1amGuvvdYcPnzYHD582HzzzTdmyJAhRpK59957y93etGnTjCTzzjvvOJedPn3apKWlmXr16pmCggJjjDGHDx8utb8AqobhPAAelZ6ersaNGyshIUG33HKLIiMjtXDhQl188cWSpKNHj2r58uW69dZbdfz4ceXn5ys/P19HjhxRRkaGduzY4TybLyYmRps3b9aOHTsq/fyLFy+WJN13330uy++///5q7VdERITz/3a7Xfn5+erdu7e+++472e12S9v87LPP1LhxYzVu3FgdO3bU/PnzNWzYMD3//PPlPmbx4sWKi4tTZmamc1mdOnV033336cSJE/rvf/9rqS4ASmM4D4BHzZgxQ8nJybLb7Xrrrbf05ZdfKiwszLl+586dMsZowoQJmjBhQpnbOHTokJo1a6annnpKAwYMUHJystq3b69+/fpp2LBhFQ5Lff/99woKClKrVq1cll9yySXV2q9Vq1Zp4sSJysrKUmFhocs6u92u6OjoKm8zNTVVzzzzjGw2m+rWrat27dopJiamwsd8//33atOmjYKCXL8jt2vXzrkeQM0gRAHwqO7duzvPzhs4cKCuvPJK3Xbbbdq+fbvq1asnh8MhSXrwwQeVkZFR5jZat24tSerVq5d27dqljz/+WJ999pneeOMNvfTSS5o1a5Zuv/32ate1vIt0lpSUuPy+a9cu9e3bV23bttWLL76ohIQEhYaGavHixXrppZec+1RVjRo1Unp6uqXHAnA/QhQArwkODtakSZN09dVX69VXX9W4cePUsmVLSeeGoCoTIBo2bKiRI0dq5MiROnHihHr16qUnnnii3BDVokULORwO7dq1y6X3afv27aXKNmjQQMeOHSu1/Ne9Of/+979V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u3Z67bXX9PTTT3uxZp7lcDjUpEkT/e1vf1NwcLC6dOmi/fv364UXXvDbEFVdb775plJSUtS9e3dvV8UrvvjiCz333HP661//qtTUVO3cuVN/+tOf9PTTT2vChAmWt0uI8oJGjRopODhYBw8edFl+8OBBxcXFealW3lGdtpg6daomT56szz//XB06dHBnNd3OajsEBQWpdevWkqROnTpp69atmjRpkt+GqKq2w65du7Rnzx7179/fuczhcEiSQkJCtH37drVq1cq9lXaTmnifqFOnjjp37qydO3e6o4oeYaUd4uPjVadOHQUHBzuXtWvXTnl5eTp9+rRCQ0PdWmd3qM7xcPLkSc2dO1dPPfWUO6voMVbaYsKECRo2bJhuv/12SVJKSopOnjyp0aNH69FHH1VQkLXZTcyJ8oLQ0FB16dJFy5Ytcy5zOBxatmyZy7fIQGC1LaZMmaKnn35aS5YsUdeuXT1RVbeqqWPC4XCouLjYHVX0iKq2Q9u2bbVx40atX7/e+XPjjTfq6quv1vr165WQkODJ6teomjgmSkpKtHHjRsXHx7urmm5npR169uypnTt3OgO1JH377beKj4/3ywAlVe94mD9/voqLi/X73//e3dX0CCttUVhYWCoonQ/Zpjq3EK7WtHRYNnfuXBMWFmbmzJljtmzZYkaPHm1iYmKcpyMPGzbMjBs3zlm+uLjYrFu3zqxbt87Ex8ebBx980Kxbt87s2LHDW7tQY6raFpMnTzahoaHmww8/dDl99/jx497ahRpR1XZ47rnnzGeffWZ27dpltmzZYqZOnWpCQkLM66+/7q1dqBFVbYdfq01n51W1LZ588knz6aefml27dpnc3FwzZMgQEx4ebjZv3uytXagRVW2HvXv3mvr165t77rnHbN++3SxatMg0adLEPPPMM97ahRph9W/jyiuvNIMHD/Z0dd2qqm0xceJEU79+ffP++++b7777znz22WemVatW5tZbb61WPQhRXvTKK6+Y5s2bm9DQUNO9e3fz1VdfOdf17t3bDB8+3Pn77t27jaRSP7179/Z8xd2gKm3RokWLMtti4sSJnq94DatKOzz66KOmdevWJjw83DRo0MCkpaWZuXPneqHWNa8q7fBrtSlEGVO1trj//vudZWNjY831119v1q5d64Va17yqHhOrV682qampJiwszLRs2dI8++yz5uzZsx6udc2rajts27bNSDKfffaZh2vqflVpizNnzpgnnnjCtGrVyoSHh5uEhARz9913m59++qladbAZU51+LAAAgMDEnCgAAAALCFEAAAAWEKIAAAAsIEQBAABYQIgCAACwgBAFAABgASEKAADAAkIUANQCI0aM0MCBA71dDSCgEKIAuNWIESNks9mcPxdddJH69eunDRs2eLtqNeKX+3b+58orr3Tb8+3Zs0c2m03r1693Wf7yyy9rzpw5bnteAKURogC4Xb9+/XTgwAEdOHBAy5YtU0hIiH772996u1o1Zvbs2c79O3DggBYuXFhmuTNnzritDtHR0YqJiXHb9gGURogC4HZhYWGKi4tTXFycOnXqpHHjxmnfvn06fPiwrrnmGt1zzz0u5Q8fPqzQ0FDnXdoTExP19NNPKzMzU5GRkWrWrJlmzJjh8pgXX3xRKSkpioyMVEJCgu6++26dOHHCuf77779X//791aBBA0VGRuqyyy7T4sWLJUk//fSThg4dqsaNGysiIkJt2rTR7NmzK71/MTExzv2Li4tTw4YNnT1G8+bNU+/evRUeHq53331XR44cUWZmppo1a6a6desqJSVF77//vsv2HA6HpkyZotatWyssLEzNmzfXs88+K0lKSkqSJHXu3Fk2m019+vSRVHo4r7i4WPfdd5+aNGmi8PBwXXnllcrJyXGu/+KLL2Sz2bRs2TJ17dpVdevWVY8ePbR9+/ZK7zcQ6AhRADzqxIkTeuedd9S6dWtddNFFuv322/Xee++puLjYWeadd95Rs2bNdM011ziXvfDCC+rYsaPWrVuncePG6U9/+pOWLl3qXB8UFKTp06dr8+bN+vvf/67ly5froYcecq4fM2aMiouL9eWXX2rjxo16/vnnVa9ePUnShAkTtGXLFv3nP//R1q1bNXPmTDVq1KhG9vd8Xbdu3aqMjAydOnVKXbp00SeffKJNmzZp9OjRGjZsmNasWeN8zPjx4zV58mRnvd577z3FxsZKkrPc559/rgMHDmjBggVlPu9DDz2kjz76SH//+9+1du1atW7dWhkZGTp69KhLuUcffVR/+ctf9PXXXyskJET/8z//UyP7DQSEat2+GAAuYPjw4SY4ONhERkaayMhII8nEx8eb3NxcY4wxRUVFpkGDBmbevHnOx3To0ME88cQTzt9btGhh+vXr57LdwYMHm+uuu67c550/f7656KKLnL+npKS4bPOX+vfvb0aOHGlp/ySZ8PBw5/5FRkaaf/7zn2b37t1Gkpk2bdoFt3HDDTeYBx54wBhjTEFBgQkLCzOvv/56mWXPb3fdunUuy4cPH24GDBhgjDHmxIkTpk6dOubdd991rj99+rRp2rSpmTJlijHGmBUrVhhJ5vPPP3eW+eSTT4wkU1RUVJUmAAIWPVEA3O7qq6/W+vXrtX79eq1Zs0YZGRm67rrr9P333ys8PFzDhg3TW2+9JUlau3atNm3apBEjRrhsIy0trdTvW7dudf7++eefq2/fvmrWrJnq16+vYcOG6ciRIyosLJQk3XfffXrmmWfUs2dPTZw40WVi+x//+EfNnTtXnTp10kMPPaTVq1dXaf9eeukl5/6tX79ev/nNb5zrunbt6lK2pKRETz/9tFJSUtSwYUPVq1dPn376qfbu3StJ2rp1q4qLi9W3b98q1eGXdu3apTNnzqhnz57OZXXq1FH37t1d2kySOnTo4Px/fHy8JOnQoUOWnxsIJIQoAG4XGRmp1q1bq3Xr1urWrZveeOMNnTx5Uq+//rok6fbbb9fSpUv1ww8/aPbs2brmmmvUokWLSm9/z549+u1vf6sOHTroo48+Um5urnPO1OnTp53P8d1332nYsGHauHGjunbtqldeeUWSnIHuz3/+s3788Uf17dtXDz74YKWfPy4uzrl/rVu3VmRkpMu+/9ILL7ygl19+WQ8//LBWrFih9evXKyMjw1nPiIiISj9vTahTp47z/zabTdK5OVkALowQBcDjbDabgoKCVFRUJElKSUlR165d9frrr+u9994rc17OV199Ver3du3aSZJyc3PlcDj0l7/8RVdccYWSk5P1448/ltpGQkKC7rrrLi1YsEAPPPCAM8RJUuPGjTV8+HC98847mjZtmv72t7/V5C47rVq1SgMGDNDvf/97dezYUS1bttS3337rXN+mTRtFREQ4J9X/WmhoqKRzPVrladWqlUJDQ7Vq1SrnsjNnzignJ0eXXnppDe0JgBBvVwBA7VdcXKy8vDxJ586Ee/XVV3XixAn179/fWeb222/XPffco8jISN10002ltrFq1SpNmTJFAwcO1NKlSzV//nx98sknkqTWrVvrzJkzeuWVV9S/f3+tWrVKs2bNcnn8/fffr+uuu07Jycn66aeftGLFCmcIe/zxx9WlSxdddtllKi4u1qJFi5zralqbNm304YcfavXq1WrQoIFefPFFHTx40BluwsPD9fDDD+uhhx5SaGioevbsqcOHD2vz5s0aNWqUmjRpooiICC1ZskQXX3yxwsPDFR0d7fIckZGR+uMf/6j//d//VcOGDdW8eXNNmTJFhYWFGjVqlFv2CwhE9EQBcLslS5YoPj5e8fHxSk1NVU5OjubPn+88PV+SMjMzFRISoszMTIWHh5faxgMPPKCvv/5anTt31jPPPKMXX3xRGRkZkqSOHTvqxRdf1PPPP6/27dvr3Xff1aRJk1weX1JSojFjxqhdu3bq16+fkpOT9de//lXSud6d8ePHq0OHDurVq5eCg4M1d+5ct7TFY489pssvv1wZGRnq06eP4uLiSl1pfMKECXrggQf0+OOPq127dho8eLBznlJISIimT5+u1157TU2bNtWAAQPKfJ7Jkyfr5ptv1rBhw3T55Zdr586d+vTTT9WgQQO37BcQiGzGGOPtSgDAnj171KpVK+Xk5Ojyyy93WZeYmKj7779f999/v3cqBwBlYDgPgFedOXNGR44c0WOPPaYrrriiVIACAF/FcB4Ar1q1apXi4+OVk5NTah6Ttz333HOqV69emT/XXXedt6sHwMsYzgOAchw9erTUFb7Pi4iIULNmzTxcIwC+hBAFAABgAcN5AAAAFhCiAAAALCBEAQAAWECIAgAAsIAQBQAAYAEhCgAAwAJCFAAAgAWEKAAAAAv+P/D2Tz9RrklhAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_53.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkgAAAHHCAYAAABEEKc/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABFvklEQVR4nO3deXxU1cH/8e8kkEwIEJZANgOJLAUlEEsgBKiApk9URKO2DdiyPSCPCwoCRaAstqJB3HhQFMUKvhSEotTHUkrFAO1Loey0gksBoaCQQFQmkkDA5Pz+4Mfg3Cxkm/3zfr3mhblzZubc68y933vOuefajDFGAAAAcArxdgUAAAB8DQEJAADAgoAEAABgQUACAACwICABAABYEJAAAAAsCEgAAAAWBCQAAAALAhIAAIAFAQmA33r00Udls9lqVNZms+nRRx91a30GDhyogQMH+uz7Aag5AhKAelu2bJlsNpvz0ahRIyUkJGjUqFH66quvvF09n5OUlOSyvdq2bauf/OQn+uMf/9gg719SUqJHH31UmzdvbpD3A4IRAQlAg/nd736nN954Q4sXL9bNN9+sN998UwMGDNC5c+fc8nkzZ87U2bNn3fLe7paamqo33nhDb7zxhqZMmaLjx4/rzjvv1OLFi+v93iUlJfrtb39LQALqoZG3KwAgcNx8881KS0uTJI0dO1bR0dF68skn9d577+kXv/hFg39eo0aN1KiRf+7GEhIS9Ktf/cr594gRI9SxY0c999xzuvfee71YMwASLUgA3OgnP/mJJOnQoUMuyz/77DP97Gc/U6tWrWS325WWlqb33nvPpcyFCxf029/+Vp06dZLdblfr1q3Vv39/bdiwwVmmsjFIpaWlevjhh9WmTRs1a9ZMt912m7788ssKdRs1apSSkpIqLK/sPZcuXaobbrhBbdu2VXh4uK655hq99NJLtdoWVxIbG6uuXbvq8OHD1ZY7efKkxowZo5iYGNntdvXo0UOvv/668/kjR46oTZs2kqTf/va3zm48d4+/AgKNf556AfALR44ckSS1bNnSuWz//v3q16+fEhISNG3aNEVGRuoPf/iDsrOz9c477+iOO+6QdDGo5ObmauzYserdu7eKioq0c+dO7d69Wz/96U+r/MyxY8fqzTff1N13362+fftq48aNGjx4cL3W46WXXtK1116r2267TY0aNdKf/vQn3X///SovL9cDDzxQr/e+5MKFCzp27Jhat25dZZmzZ89q4MCBOnjwoMaPH6/k5GStXr1ao0aN0unTpzVhwgS1adNGL730ku677z7dcccduvPOOyVJ3bt3b5B6AkHDAEA9LV261EgyH3zwgTl16pQ5duyYefvtt02bNm1MeHi4OXbsmLPsjTfeaFJSUsy5c+ecy8rLy03fvn1Np06dnMt69OhhBg8eXO3nzpkzx/xwN7Z3714jydx///0u5e6++24jycyZM8e5bOTIkaZ9+/ZXfE9jjCkpKalQLisry1x99dUuywYMGGAGDBhQbZ2NMaZ9+/bmv/7rv8ypU6fMqVOnzD//+U8zdOhQI8k8+OCDVb7fggULjCTz5ptvOpedP3/eZGRkmKZNm5qioiJjjDGnTp2qsL4AaocuNgANJjMzU23atFFiYqJ+9rOfKTIyUu+9956uuuoqSdI333yjjRs36he/+IW+++47FRYWqrCwUF9//bWysrJ04MAB51VvLVq00P79+3XgwIEaf/66deskSQ899JDL8okTJ9ZrvSIiIpz/7XA4VFhYqAEDBuiLL76Qw+Go03u+//77atOmjdq0aaMePXpo9erVGj58uJ588skqX7Nu3TrFxsZq2LBhzmWNGzfWQw89pDNnzuhvf/tbneoCoCK62AA0mEWLFqlz585yOBx67bXX9Pe//13h4eHO5w8ePChjjGbNmqVZs2ZV+h4nT55UQkKCfve73+n2229X586d1a1bN910000aPnx4tV1F//nPfxQSEqIOHTq4LP/Rj35Ur/X66KOPNGfOHG3dulUlJSUuzzkcDkVFRdX6PdPT0zV37lzZbDY1adJEXbt2VYsWLap9zX/+8x916tRJISGu57Zdu3Z1Pg+gYRCQADSY3r17O69iy87OVv/+/XX33Xfr888/V9OmTVVeXi5JmjJlirKysip9j44dO0qSrr/+eh06dEj/93//p/fff1+vvvqqnnvuOS1evFhjx46td12rmmCyrKzM5e9Dhw7pxhtvVJcuXfTss88qMTFRYWFhWrdunZ577jnnOtVWdHS0MjMz6/RaAO5HQALgFqGhocrNzdWgQYP0wgsvaNq0abr66qslXewWqkk4aNWqlUaPHq3Ro0frzJkzuv766/Xoo49WGZDat2+v8vJyHTp0yKXV6PPPP69QtmXLljp9+nSF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2Q33xRdfaN26dbrlllvqVRduVtvACgsLVVZWppiYGJflMTEx+uyzz7xUK+9oiG3xyCOPKD4+3uXH4m/quh0cDocSEhJUWlqq0NBQvfjii/rpT3/q7uq6VV22xYcffqjf//732rt3rwdq6Bl12Q4/+tGP9Nprr6l79+5yOBx6+umn1bdvX+3fv79BbpztDXXZDl988YU2btyoX/7yl1q3bp0OHjyo+++/XxcuXNCcOXM8UW23qO/+cvv27dq3b59+//vfu6uKHlGX7XD33XersLBQ/fv3lzFG33//ve69917NmDGjXnUhIMFnzZs3TytXrtTmzZsDZjBqbTRr1kx79+7VmTNnlJeXp0mTJunqq6/WwIEDvV01j/nuu+80fPhwLVmyRNHR0d6ujldlZGQoIyPD+Xffvn3VtWtXvfzyy3rssce8WDPPKi8vV9u2bfXKK68oNDRUPXv21FdffaWnnnrKrwNSff3+979XSkqKevfu7e2qeNzmzZv1xBNP6MUXX1R6eroOHjyoCRMm6LHHHtOsWbPq/L4EpAYWHR2t0NBQFRQUuCwvKChQbGysl2rlHfXZFk8//bTmzZunDz74QN27d3dnNd2urtshJCREHTt2lCSlpqbq008/VW5url8HpNpui0OHDunIkSMaMmSIc1l5ebkkqVGjRvr888/VoUMH91baDRpiP9G4cWNdd911OnjwoDuq6BF12Q5xcXFq3LixQkNDncu6du2q/Px8nT9/XmFhYW6ts7vU5ztRXFyslStX6ne/+507q+gRddkOs2bN0vDhwzV27FhJUkpKioqLizVu3Dj95je/UUhI3UYTMQapgYWFhalnz57Ky8tzLisvL1deXp7L2V8wqOu2mD9/vh577DGtX79eaWlpnqiqWzXUd6K8vFylpaXuqKLH1HZbdOnSRR9//LH27t3rfNx2220aNGiQ9u7dq8TERE9Wv8E0xHeirKxMH3/8seLi4txVTbery3bo16+fDh486AzKkvTvf/9bcXFxfhuOpPp9J1avXq3S0lL96le/cnc13a4u26GkpKRCCLoUoE19bjdbryHeqNTKlStNeHi4WbZsmfnkk0/MuHHjTIsWLZyX5A4fPtxMmzbNWb60tNTs2bPH7Nmzx8TFxZkpU6aYPXv2mAMHDnhrFRpMbbfFvHnzTFhYmHn77bddLl/97rvvvLUKDaK22+GJJ54w77//vjl06JD55JNPzNNPP20aNWpklixZ4q1VaDC13RZWgXIVW223w29/+1vz17/+1Rw6dMjs2rXLDB061NjtdrN//35vrUKDqO12OHr0qGnWrJkZP368+fzzz83atWtN27Ztzdy5c721Cg2mrr+N/v37m5ycHE9X121qux3mzJljmjVrZt566y3zxRdfmPfff9906NDB/OIXv6hXPQhIbvL888+bdu3ambCwMNO7d2/zj3/8w/ncgAEDzMiRI51/Hz582Eiq8BgwYIDnK+4GtdkW7du3r3RbzJkzx/MVb2C12Q6/+c1vTMeOHY3dbjctW7Y0GRkZZuXKlV6otXvUZltYBUpAMqZ222HixInOsjExMeaWW24xu3fv9kKtG15tvw9btmwx6enpJjw83Fx99dXm8ccfN99//72Ha+0etd0Wn332mZFk3n//fQ/X1L1qsx0uXLhgHn30UdOhQwdjt9tNYmKiuf/++823335brzrYjKlP+xMAAEDgYQwSAACABQEJAADAgoAEAABgQUACAACwICABAABYEJAAAAAsCEgAAAAWBCQA8HGjRo1Sdna2t6sBBBUCEoA6GzVqlGw2m/PRunVr3XTTTfrXv/7l7ao1iB+u26VH//793fZ5R44ckc1m0969e12W/+///q+WLVvmts8FUBEBCUC93HTTTTpx4oROnDihvLw8NWrUSLfeequ3q9Vgli5d6ly/EydO6L333qu03IULF9xWh6ioKLVo0cJt7w+gIgISgHoJDw9XbGysYmNjlZqaqmnTpunYsWM6deqUbrjhBo0fP96l/KlTpxQWFua8W3dSUpIee+wxDRs2TJGRkUpISNCiRYtcXvPss88qJSVFkZGRSkxM1P33368zZ844n//Pf/6jIUOGqGXLloqMjNS1116rdevWSZK+/fZb/fKXv1SbNm0UERGhTp06aenSpTVevxYtWjjXLzY2Vq1atXK29KxatUoDBgyQ3W7X8uXL9fXXX2vYsGFKSEhQkyZNlJKSorfeesvl/crLyzV//nx17NhR4eHhateunR5//HFJUnJysiTpuuuuk81m08CBAyVV7GIrLS3VQw89pLZt28put6t///7asWOH8/nNmzfLZrMpLy9PaWlpatKkifr27avPP/+8xusNBDsCEoAGc+bMGb355pvq2LGjWrdurbFjx2rFihUqLS11lnnzzTeVkJCgG264wbnsqaeeUo8ePbRnzx5NmzZNEyZM0IYNG5zPh4SEaOHChdq/f79ef/11bdy4UVOnTnU+/8ADD6i0tFR///vf9fHHH+vJJ59U06ZNJUmzZs3SJ598or/85S/69NNP9dJLLyk6OrpB1vdSXT/99FNlZWXp3Llz6tmzp/785z9r3759GjdunIYPH67t27c7XzN9+nTNmzfPWa8VK1YoJiZGkpzlPvjgA504cUJr1qyp9HOnTp2qd955R6+//rp2796tjh07KisrS998841Lud/85jd65plntHPnTjVq1Ej//d//3SDrDQSFet3qFkBQGzlypAkNDTWRkZEmMjLSSDJxcXFm165dxhhjzp49a1q2bGlWrVrlfE337t3No48+6vy7ffv25qabbnJ535ycHHPzzTdX+bmrV682rVu3dv6dkpLi8p4/NGTIEDN69Og6rZ8kY7fbnesXGRlp/vjHP5rDhw8bSWbBggVXfI/BgwebyZMnG2OMKSoqMuHh4WbJkiWVlr30vnv27HFZPnLkSHP77bcbY4w5c+aMady4sVm+fLnz+fPnz5v4+Hgzf/58Y4wxmzZtMpLMBx984Czz5z//2UgyZ8+erc0mAIIWLUgA6mXQoEHau3ev9u7dq+3btysrK0s333yz/vOf/8hut2v48OF67bXXJEm7d+/Wvn37NGrUKJf3yMjIqPD3p59+6vz7gw8+0I033qiEhAQ1a9ZMw4cP19dff62SkhJJ0kMPPaS5c+eqX79+mjNnjssg8fvuu08rV65Uamqqpk6dqi1bttRq/Z577jnn+u3du1c//elPnc+lpaW5lC0rK9Njjz2mlJQUtWrVSk2bNtVf//pXHT16VJL06aefqrS0VDfeeGOt6vBDhw4d0oULF9SvXz/nssaNG6t3794u20ySunfv7vzvuLg4SdLJkyfr/NlAMCEgAaiXyMhIdezYUR07dlSvXr306quvqri4WEuWLJEkjR07Vhs2bNCXX36ppUuX6oYbblD79u1r/P5HjhzRrbfequ7du+udd97Rrl27nGOUzp8/7/yML774QsOHD9fHH3+stLQ0Pf/885LkDGsPP/ywjh8/rhtvvFFTpkyp8efHxsY6169jx46KjIx0Wfcfeuqpp/S///u/euSRR7Rp0ybt3btXWVlZznpGRETU+HMbQuPGjZ3/bbPZJF0cAwXgyghIABqUzWZTSEiIzp49K0lKSUlRWlqalixZohUrVlQ6DuYf//hHhb+7du0qSdq1a5fKy8v1zDPPqE+fPurcubOOHz9e4T0SExN17733as2aNZo8ebIzoElSmzZtNHLkSL355ptasGCBXnnllYZcZaePPvpIt99+u371q1+pR48euvrqq/Xvf//b+XynTp0UERHhHKBuFRYWJuliS1RVOnTooLCwMH300UfOZRcuXNCOHTt0zTXXNNCaAGjk7QoA8G+lpaXKz8+XdPGKsRdeeEFnzpzRkCFDnGXGjh2r8ePHKzIyUnfccUeF9/joo480f/58ZWdna8OGDVq9erX+/Oc/S5I6duyoCxcu6Pnnn9eQIUP00UcfafHixS6vnzhxom6++WZ17txZ3377rTZt2uQMWLNnz1bPnj117bXXqrS0VGvXrnU+19A6deqkt99+W1u2bFHLli317LPPqqCgwBlc7Ha7HnnkEU2dOlVhYWHq16+fTp06pf3792vMmDFq27atIiIitH79el111VWy2+2Kiopy+YzIyEjdd999+vWvf61WrVqpXbt2mj9/vkpKSjRmzBi3rBcQjGhBAlAv69evV1xcnOLi4pSenq4dO3Zo9erVzkvUJWnYsGFq1KiRhg0bJrvdXuE9Jk+erJ07d+q6667T3Llz9eyzzyorK0uS1KNHDz377LN68skn1a1bNy1fvly5ubkury8rK9MDDzygrl276qabblLnzp314osvSrrYKjN9+nR1795d119/vUJDQ7Vy5Uq3bIuZM2fqxz/+sbKysjRw4EDFxsZWmAF71qxZmjx5smbPnq2uXbsqJyfHOS6oUaNGWrhwoV5++WXFx8fr9ttvr/Rz5s2bp7vuukvDhw/Xj3/8Yx08eFB//etf1bJlS7esFxCMbMYY4+1KAAhsR44cUYcOHbRjxw79+Mc/dnkuKSlJEydO1MSJE71TOQCoBF1sANzmwoUL+vrrrzVz5kz16dOnQjgCAF9FFxsAt/noo48UFxenHTt2VBg35G1PPPGEmjZtWunj5ptv9nb1AHgZXWwAgtI333xTYebpSyIiIpSQkODhGgHwJQQkAAAAC7rYAAAALAhIAAAAFgQkAAAACwISAACABQEJAADAgoAEAABgQUACAACwICABAABY/D+1U38Zrb52BwAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_54.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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39w6duyIn3/+GQaDwag36sSJE9J6oOGASERNxzlRRKSogQMHIjo6GitWrMC1a9fg5+eHgQMHYs2aNSguLq5T/sKFC9L/L168aLSudevWCAsLQ1VVVYP7e+CBBwAAK1euNFq+YsWKOmU7d+4MvV6Pn3/+WVpWXFxc567hzs7OAAAhhLRMr9dj3bp1DdbDUh588EHodDpkZGRIy27cuIF3330XrVu3Rnx8PADAw8MDAOoNiUTUNOyJIiLF/f3vf8cjjzyC9evX4+mnn8aqVavQv39/RERE4Mknn0SnTp1QUlKCrKwsnD17Fv/9738BAHfddRcGDhyIqKgotG3bFgcOHMAXX3yB5557rsF9RUZGYuzYsXj//feh1+sRFxeHzMxM5Ofn1yk7ZswYvPTSS3jooYcwffp0XL16FatXr0aXLl1w8OBBqdz9998PV1dXDB8+HE899RSuXLmCtWvXws/Pr94gaElTp07FmjVrMHHiROTm5iIkJARffPEF9u7dixUrVqBNmzYAbk6Ev+uuu5CRkYEuXbqgbdu26N69O7p3727V+hLZNaUvDyQix1B7i4OcnJw662pqakTnzp1F586dxY0bN4QQQpw+fVqMHz9eaLVa0apVKxEUFCSGDRsmvvjiC+l9ixcvFtHR0cLb21u4u7uLrl27itdff11UV1dLZeq7HUFlZaWYPn26aNeunfD09BTDhw8XZ86cqfeS/507d4ru3bsLV1dXceedd4qNGzfWu82tW7eKHj16CLVaLUJCQsSbb74pPv74YwFAFBQUSOVMucXB7W7f0ND2SkpKxKRJk4Svr69wdXUVERERYt26dXXeu2/fPhEVFSVcXV15uwMiGVRC3NL/TERERERNwjlRRERERDIwRBERERHJwBBFREREJANDFBEREZEMDFFEREREMjBEEREREcnAm21akMFgwLlz59CmTRs+YoGIiMhOCCHw+++/IzAwsM7DvG/FEGVB586dQ3BwsNLVICIiIhnOnDmDO+64o8H1DFEWVPt4hTNnzsDLy0vh2hAREVFTlJeXIzg4WDqPN4QhyoJqh/C8vLwYooiIiOzM7abicGI5ERERkQwMUUREREQyMEQRERERycA5UQqrqanB9evXla6GXXF1dW30klMiIiJrYIhSiBACOp0OZWVlSlfF7jg5OSE0NBSurq5KV4WIiBwYQ5RCagOU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MRWLKS8vh0ajgV6vh5eXl7T82rVrKCgoQGhoqBTs5MrIKcK8LUdQI4TU3WnJOVETJ05EWVkZvvrqK6Pl33//PQYNGoTLly/j0KFDGDZsGGbMmIHp06dLZVxdXaVgdPHiRcTExMDd3R1Lly5F9+7dUVBQgPnz5+PkyZPIyspCp06d6q2DOduPiIjozxo6f/+Z4j1R1Dy22N25YcMGXL16FampqdIwLADEx8fj+++/BwC0a9cOP/30E1577TU89dRT0Ol0aNu2LR544AFs3LgRHTpYdnI8ERFRc7EnyoKs0RPliNh+RERkSU3tiXL4+0QRERERycEQRURERCQDQxQRERGRDAxRRERERDIwRCmIc/rlYbsREZEtYIhSQKtWrQAAV6/a1oMU7UV1dTUAwNnZWeGaEBGRI+N9ohTg7OwMb29vnD9/HgDg4eEB1f+eD0SNMxgMuHDhAjw8PODiwh9fIiJSDs9CCql91EltkKKmc3JyQocOHRg8iYhIUQxRClGpVAgICICfnx+uX7+udHXsiqurq9HzFImIiJTAEKUwZ2dnzu0hIiKyQ/w4T0RERCQDQxQRERGRDAxRRERERDIwRBERERHJwBBFREREJANDFBEREZEMDFFEREREMjBEEREREcnAEEVEREQkA0MUERERkQwMUUREREQyMEQRERERycAQRURERCQDQxQRERGRDAxRRERERDIwRBERERHJwBBFREREJANDFBEREZEMDFFEREREMjBEEREREcnAEEVEREQkA0MUERERkQwMUUREREQyMEQRERERycAQRURERCQDQxQRERGRDAxRRERERDIwRBERERHJwBBFREREJANDFBEREZEMDFFEREREMjBEEREREcnAEEVEREQkA0MUERERkQwMUUREREQyMEQRERERycAQRURERCQDQxQRERGRDAxRRERERDIwRBERERHJwBBFREREJANDFBEREZEMDFFEREREMjBEEREREcnAEEVEREQkg02EqFWrViEkJARqtRoxMTHYv39/o+U3b96Mrl27Qq1WIyIiAtu3bzdaL4TAwoULERAQAHd3dyQkJODUqVPS+sLCQkyePBmhoaFwd3dH586dkZKSgurqaqPt/Pzzz7j33nuhVqsRHByMpUuXmu+giYiISLZifSX2nS5Fsb5SsTooHqIyMjIwa9YspKSk4ODBg+jZsycS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BDw9PREcHIxnn30WV65ckdb/+uuvGD58OHx8fODp6Ym7774b27dvBwBcvnwZjz/+ONq3bw93d3eEh4dj3bp1TT4+b29v6fi0Wi3atm0r9RhlZGQgPj4earUan376KS5evIixY8ciKCgIHh4eiIiIwGeffWa0PYPBgKVLlyIsLAxubm7o0KEDXn/9dQBAaGgoAKBXr15QqVQYOHAggLrDeVVVVZg+fTr8/PygVqvRv39/5OTkSOu///57qFQqZGZmonfv3vDw8EBcXBxOnjzZ5OMmcnQMUURkVVeuXMHGjRsRFhaGdu3aYcqUKdi0aROqqqqkMhs3bkRQUBDuu+8+admyZcvQs2dPHDp0CMnJyZgxYwZ27dolrXdycsLKlStx9OhRbNiwAbt378acOXOk9dOmTUNVVRV++OEHHD58GG+++SZat24NAFiwYAGOHTuGf//73zh+/DhWr14NX19fsxxvbV2PHz+OxMREXLt2DVFRUfjmm29w5MgRTJ06FePGjcP+/ful98ydOxdLliyR6rVp0yb4+/sDgFTuu+++Q3FxMbZs2VLvfufMmYMvv/wSGzZswMGDBxEWFobExERcunTJqNzLL7+Mt99+GwcOHICLiwv+9re/meW4iRxCsx5fTER0GxMmTBDOzs7C09NTeHp6CgAiICBA5ObmCiGEqKysFD4+PiIjI0N6T48ePcQrr7wifd2xY0cxZMgQo+2OHj1aPPDAAw3ud/PmzaJdu3bS1xEREUbbvNXw4cPFpEmTZB0fAKFWq6Xj8/T0FP/85z9FQUGBACBWrFhx220MHTpUvPjii0IIIcrLy4Wbm5tYu3ZtvWVrt3vo0CGj5RMmTBAjR44UQghx5coV0apVK/Hpp59K66urq0VgYKBYunSpEEKIPXv2CADiu+++k8p88803AoCorKw0pQmIHBZ7oojI4gYNGoS8vDzk5eVh//79SExMxAMPPIBff/0VarUa48aNw8cffwwAOHjwII4cOYKJEycabSM2NrbO18ePH5e+/u677zB48GAEBQWhTZs2GDduHC5evIirV68CAKZPn47FixejX79+SElJMZrY/swzzyA9PR2RkZGYM2cO9u3bZ9LxLV++XDq+vLw8/OUvf5HW9e7d26hsTU0NFi1ahIiICLRt2xatW7fGt99+i6KiIgDA8ePHUVVVhcGDB5tUh1udPn0a169fR79+/aRlrVq1QnR0tFGbAUCPHj2k/wcEBAAAzp8/L3vfRI6EIYqILM7T0xNhYWEICwtDnz598OGHH6KiogJr164FAEyZMgW7du3C2bNnsW7dOtx3333o2LFjk7dfWFiIYcOGoUePHvjyyy+Rm5srzZmqrq6W9vHLL79g3LhxOHz4MHr37o13330XAKRA98ILL+DcuXMYPHgwZs+e3eT9a7Va6fjCwsLg6elpdOy3WrZsGf7xj3/gpZdewp49e5CXl4fExESpnu7u7k3erzm0atVK+r9KpQJwc04WEd0eQxQRWZ1KpYKTkxMqKysBABEREejduzfWrl2LTZs21Tsv56effqrzdbdu3QAAubm5MBgMePvtt9G3b1906dIF586dq7ON4OBgPP3009iyZQtefPFFKcQBQPv27TFhwgRs3LgRK1aswAcffGDOQ5bs3bsXI0eOxBNPPIGePXuiU6dO+L//+z9pfXh4ONzd3aVJ9X/m6uoK4GaPVkM6d+4MV1dX7N27V1p2/fp15OTk4K677jLTkRCRi9IVIKKWr6qqCjqdDsDNK+Hee+89XLlyBcOHD5fKTJkyBc899xw8PT3x0EMP1dnG3r17sXTpUiQlJWHXrl3YvHkzvvnmGwBAWFgYrl+/jnfffRfDhw/H3r17kZaWZvT+mTNn4oEHHkCXLl1w+fJl7NmzRwphCxcuRFRUFO6++25UVVVh27Zt0jpzCw8PxxdffIF9+/bBx8cH77zzDkpKSqRwo1ar8dJLL2HOnDlwdXVFv379cOHCBRw9ehSTJ0+Gn58f3N3dsWPHDtxxxx1Qq9XQaDRG+/D09MQzzzyDv//972jbti06dOiApUuX4urVq5g8ebJFjovIEbEniogsbseOHQgICEBAQABiYmKQk5ODzZs3S5fnA8DYsWPh4uKCsWPHQq1W19nGiy++iAMHDqBXr15YvHgx3nnnHSQmJgIAevbsiXfeeQdvvvkmunfvjk8//RSpqalG76+pqcG0adPQrVs3DBkyBF26dMH7778P4Gbvzty5c9GjRw8MGDAAzs7OSE9Pt0hbzJ8/H/fccw8SExMxcOBAaLXaOncaX7BgAV588UUsXLgQ3bp1w+jRo6V5Si4uLli5ciXWrFmDwMBAjBw5st79LFmyBH/9618xbtw43HPPPcjPz8e3334LHx8fixwXkSNSCSGE0pUgIiosLETnzp2Rk5ODe+65x2hdSEgIZs6ciZkzZypTOSKienA4j4gUdf36dVy8eBHz589H37596wQoIiJbxeE8IlLU3r17ERAQgJycnDrzmJT2xhtvoHXr1vW+HnjgAaWrR0QK43AeEVEDLl26VOcO37Xc3d0RFBRk5RoRkS1hiCIiIiKSgcN5RERERDIwRBERERHJwBBFREREJANDFBEREZEMDFFEREREMjBEEREREcnAEEVEREQkA0MUERERkQz/DyzYFMBe6QwnAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_55.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkgAAAHHCAYAAABEEKc/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABOOUlEQVR4nO3de1yUZcL/8e+AwiApHlBOoZBiWqKUKIKWWuyDZSbVbmitp8fyaTtp6Bq6HrIszLJY041yN+2pTDJdnzLXzbB2XyXr2TYtXTVNS0BJHRIVFe7fH/6YmuEghznC5/16zUu555p7rvuCmfnOdV33dZsMwzAEAAAAKx93VwAAAMDTEJAAAADsEJAAAADsEJAAAADsEJAAAADsEJAAAADsEJAAAADsEJAAAADsEJAAAADsEJAAeK2nnnpKJpOpVmVNJpOeeuopp9Zn0KBBGjRokMfuD0DtEZAANNiyZctkMpmst2bNmikiIkJjx47VDz/84O7qeZyoqCib9urQoYNuuukm/fWvf3XI/s+ePaunnnpKn332mUP2BzRFBCQADvP000/rrbfeUnZ2tm677Ta9/fbbGjhwoM6fP++U55sxY4bOnTvnlH07W1xcnN566y299dZbmjJlio4dO6a7775b2dnZDd732bNnNWfOHAIS0ADN3F0BAI3Hbbfdpvj4eEnSAw88oODgYD3//PP64IMPdO+99zr8+Zo1a6ZmzbzzbSwiIkK//e1vrT+PHj1aXbp00csvv6yHHnrIjTUDINGDBMCJbrrpJknSwYMHbbbv3btXv/71r9W2bVuZzWbFx8frgw8+sClz8eJFzZkzRzExMTKbzWrXrp0GDBigDRs2WMtUNQeptLRUTzzxhNq3b6+WLVvqzjvv1Pfff1+pbmPHjlVUVFSl7VXtc+nSpbrlllvUoUMH+fv767rrrtOrr75ap7a4ktDQUHXv3l2HDh2qsdzx48c1fvx4hYSEyGw2q1evXnrzzTet9x8+fFjt27eXJM2ZM8c6jOfs+VdAY+OdX70AeIXDhw9Lktq0aWPdtmfPHvXv318RERHKyMhQYGCg3nvvPaWmpmrVqlW66667JF0OKpmZmXrggQfUt29fFRcXa9u2bdqxY4d+9atfVfucDzzwgN5++23dd999SkpK0saNGzV06NAGHcerr76q66+/XnfeeaeaNWumDz/8UA8//LDKy8v1yCOPNGjfFS5evKijR4+qXbt21ZY5d+6cBg0apAMHDujRRx9VdHS0Vq5cqbFjx+r06dOaOHGi2rdvr1dffVW/+93vdNddd+nuu++WJPXs2dMh9QSaDAMAGmjp0qWGJOOTTz4xTpw4YRw9etR4//33jfbt2xv+/v7G0aNHrWVvvfVWIzY21jh//rx1W3l5uZGUlGTExMRYt/Xq1csYOnRojc87e/Zs45dvY7t27TIkGQ8//LBNufvuu8+QZMyePdu6bcyYMUanTp2uuE/DMIyzZ89WKpeSkmJcc801NtsGDhxoDBw4sMY6G4ZhdOrUyfiv//ov48SJE8aJEyeML7/80hgxYoQhyXjssceq3V9WVpYhyXj77bet2y5cuGAkJiYaV111lVFcXGwYhmGcOHGi0vECqBuG2AA4THJystq3b6/IyEj9+te/VmBgoD744ANdffXVkqSTJ09q48aNuvfee/XTTz+pqKhIRUVF+vHHH5WSkqL9+/dbz3pr3bq19uzZo/3799f6+detWydJevzxx222T5o0qUHHFRAQYP2/xWJRUVGRBg4cqG+//VYWi6Ve+/z444/Vvn17tW/fXr169dLKlSs1atQoPf/889U+Zt26dQoNDdXIkSOt25o3b67HH39cZ86c0T/+8Y961QVAZQyxAXCYxYsXq2vXrrJYLHrjjTf0z3/+U/7+/tb7Dxw4IMMwNHPmTM2cObPKfRw/flwRERF6+umnNXz4cHXt2lU9evTQkCFDNGrUqBqHir777jv5+Pioc+fONtuvvfbaBh3XF198odmzZysvL09nz561uc9isSgoKKjO+0xISNDcuXNlMpnUokULde/eXa1bt67xMd99951iYmLk42P73bZ79+7W+wE4BgEJgMP07dvXehZbamqqBgwYoPvuu0/79u3TVVddpfLycknSlClTlJKSUuU+unTpIkm6+eabdfDgQf3f//2fPv74Y/35z3/Wyy+/rOzsbD3wwAMNrmt1C0yWlZXZ/Hzw4EHdeuut6tatm1566SVFRkbKz89P69at08svv2w9proKDg5WcnJyvR4LwPkISACcwtfXV5mZmRo8eLAWLVqkjIwMXXPNNZIuDwvVJhy0bdtW48aN07hx43TmzBndfPPNeuqpp6oNSJ06dVJ5ebkOHjxo02u0b9++SmXbtGmj06dPV9pu3wvz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AAC8j9vXQfJWrIMEAID38Yp1kAAAADwRAQkAALhFvuWcNh0sUr7lnLurUonb5yABAICmJ2frEU1b/ZXKDcnHJGXeHau0Ph2v/EAXoQcJAAC4VL7lnDUcSVK5IU1fvdujepIISAAAwKUOFZVYw1GFMsPQ4aKz7qlQFQhIAADApaKDA+Vjst3mazIpKthzLh5PQAIAAC4VFhSgzLtj5Wu6nJJ8TSY9d3cPhQUFuLlmP2OSNgAAcLm0Ph11c9f2Olx0VlHBLTwqHEkEJAAA4CZhQQEeF4wqMMQGAABgh4AEAABgh4AEAABgh4AEAABgh4AEAABgh4AEAABgh4AEAABgh4AEAABgh4AEAABgh4AEAABgh4AEAABgh4AEAABgh4AEAABgh4AEAABgh4AEAABgh4AEAABgh4AEAABgh4AEAABgh4AEAABgh4AEAABgh4AEAABgp84Bad26dXrggQc0depU7d271+a+U6dO6ZZbbnFY5QAAANyhTgFp+fLluvPOO1VQUKC8vDzdcMMNeuedd6z3X7hwQf/4xz8cXkkAAABXalaXwi+88IJeeuklPf7445Kk9957T//93/+t8+fPa/z48U6pIAAAgKvVKSDt379fw4YNs/587733qn379rrzzjt18eJF3XXXXQ6vIAAAgKvVKSC1atVKhYWFio6Otm4bPHiw1q5dqzvuuEPff/+9wysIAADganWag9S3b1/97W9/q7R94MCB+vDDD5WVleWoegEAALhNnQLSE088IbPZXOV9gwYN0ocffqjRo0c7pGIAAADuYjIMw3B3JbxRcXGxgoKCZLFY1KpVK3dXBwAA1EJtP7/rNAfJx8dHJpOpxjImk0mXLl2qy24BAAA8Sp0C0l//+tdq78vLy9PChQtVXl7e4EoBAAC4U50C0vDhwytt27dvnzIyMvThhx/q/vvv19NPP+2wygEAALhDva/FduzYMT344IOKjY3VpUuXtGvXLr355pvq1KmTI+sHAADgcnUOSBaLRU8++aS6dOmiPXv2KDc3Vx9++KF69OhR70osXrxYUVFRMpvNSkhI0JYtW2osv3LlSnXr1k1ms1mxsbFat26dzf2GYWjWrFkKCwtTQECAkpOTtX//fpsyd955pzp27Ciz2aywsDCNGjVKx44dq/cxAACAxqNOAWn+/Pm65pprtHbtWr377rvatGmTbrrp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a7OPxMTESj9/88031p8/+eQT3XrrrYqIiFDLli01atQo/fjjjzp79qwk6fHHH9fcuXPVv39/zZ4922aS+O9+9zutWLFCcXFxmjp1qjZt2lSn43v55Zetx7dr1y796le/st4XHx9vU7asrEzPPPOMYmNj1bZtW1111VX6+9//riNHjkiSvvnmG5WWlurWW2+tUx1+6eDBg7p48aL69+9v3da8eXP17dvXps0kqWfPntb/h4WFSZKOHz9e7+cGmhICEoAGCQwMVJcuXdSlSxf16dNHf/7zn1VSUqIlS5ZIkh544AFt2LBB33//vZYuXapbbrlFnTp1qvX+Dx8+rDvuuEM9e/bUqlWrtH37duscpQsXLlif49tvv9WoUaP01VdfKT4+Xq+88ookWcPaE088oWPHjunWW2/VlClTav38oaGh1uPr0qWLAgMDbY79l1544QX98Y9/1JNPPqlPP/1Uu3btUkpKirWeAQEBtX5eR2jevLn1/yaTSdLlOVAAroyABMChTCaTfHx8dO7cOUlSbGys4uPjtWTJEi1fvrzKeTD/+te/Kv3cvXt3SdL27dtVXl6uBQsWqF+/furatauOHTtWaR+RkZF66KGHtHr1ak2ePNka0CSpffv2GjNmjN5++21lZWXp9ddfd+QhW33xxRcaPny4fvvb36pXr1665ppr9J///Md6f0xMjAICAqwT1O35+flJutwTVZ3OnTvLz89PX3zxhXXbxYsXtXXrVl133XUOOhIAzdxdAQDerbS0VAUFBZIunzG2aNEinTlzRsOGDbOWeeCBB/Too48qMDBQd911V6V9fPHFF5o/f75SU1O1YcMGrVy5Uh999JEkqUuXLrp48aJeeeUVDRs2TF988YWys7NtHj9p0iTddttt6tq1q06dOqVPP/3UGrBmzZql3r176/rrr1dpaanWrl1rvc/RYmJi9P7772vTpk1q06aNXnrpJRUWFlqDi9ls1pNPPqmpU6fKz89P/fv314kTJ7Rnzx6NHz9eHTp0UEBAgNavX6+rr75aZrNZQUFBNs8RGBio3/3ud/r973+vtm3bqmPHjpo/f77Onj2r8ePHO+W4gKaIHiQADbJ+/XqFhYUpLCxMCQkJ2rp1q1auXGk9RV2SRo4cqWbNmmnkyJEym82V9jF58mRt27ZNN9xwg+bOnauXXnpJKSkpkqRevXrppZde0vPPP68ePXronXfeUWZmps3jy8rK9Mgjj6h79+4aMmSIunbtqj/96U+SLvfKTJs2TT179tTNN98sX19frVixwiltMWPGDN14441KSUnRoEGDFBoaWmkF7JkzZ2ry5MmaNWuWunfvrrS0NOu8oGbNmmnhwoV67bXXFB4eruHDh1f5PPPmzdM999yjUaNG6cYbb9SBAwf097//XW3atHHKcQFNkckwDMPdlQDQuB0+fFidO3fW1q1bdeONN9rcFxUVpUmTJmnSpEnuqRwAVIEhNgBOc/HiRf3444+aMWOG+vXrVykcAYCnYogNgNN88cUXCgsL09atWyvNG3K35557TldddVWVt9tuu83d1QPgZgyxAWiSTp48WWnl6QoBAQGKiIhwcY0AeBICEgAAgB2G2AAAAOwQkAAAAOwQkAAAAOwQkAAAAOwQkAAAAOwQkAAAAOwQkAAAAOwQkAAAAOz8P5emJAH8ocmOAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_56.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHHCAYAAABDUnkqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABIDElEQVR4nO3deXxU9b3/8fckkIUACRCyEANhVZSwlJAYUBaNRlRapK0ULFtFf1Zwo1YWBcSF4J62IChVaFUkhWJLKxfBINeHwpXNXBWRymZQk0BcEiAxCcn5/cHN6JiFTDIz58yZ1/PxmMeDnJyZ+cyXgXnPdzsOwzAMAQAA2ESQ2QUAAAB4EuEGAADYCuEGAADYCuEGAADYCuEGAADYCuEGAADYCuEGAADYCuEGAADYCuEGAADYCuEGgCkefPBBORyOJp3rcDj04IMPerWekSNHauTIkZZ9PABNR7gBAtzq1avlcDict1atWikhIUFTp07VF198YXZ5lpOUlOTSXjExMbr88sv12muveeTxy8rK9OCDD2r79u0eeTwgEBFuAEiSHnroIb300ktasWKFRo8erZdfflkjRozQd99955Xne+CBB1ReXu6Vx/a2gQMH6qWXXtJLL72ke++9V19++aXGjRunFStWtPixy8rKtGjRIsIN0AKtzC4AgDWMHj1aKSkpkqTp06crOjpajz32mDZu3Kgbb7zR48/XqlUrtWrln/8FJSQk6Ne//rXz58mTJ6tXr1565plndNttt5lYGQCJnhsADbj88sslSYcPH3Y5/sknn+gXv/iFOnbsqLCwMKWkpGjjxo0u51RVVWnRokXq3bu3wsLC1KlTJ1122WXaunWr85z65txUVFTonnvuUefOndWuXTv99Kc/1eeff16ntqlTpyopKanO8foec9WqVbriiisUExOj0NBQXXzxxVq+fLlbbXE+cXFx6tu3r44ePdroeSdOnNDNN9+s2NhYhYWFacCAAfrLX/7i/P2xY8fUuXNnSdKiRYucQ1/enm8E2I1/fm0C4HXHjh2TJHXo0MF5bP/+/Ro2bJgSEhI0Z84cRURE6G9/+5vGjh2rv//977rhhhsknQsZWVlZmj59ulJTU1VaWqo9e/Zo3759uuqqqxp8zunTp+vll1/WxIkTNXToUG3btk3XXXddi17H8uXLdckll+inP/2pWrVqpX/961+6/fbbVVNToxkzZrTosWtVVVXp+PHj6tSpU4PnlJeXa+TIkTp06JBmzpyp7t27a926dZo6daq+/fZb3XXXXercubOWL1+u3/72t7rhhhs0btw4SVL//v09UicQMAwAAW3VqlWGJOPNN980Tp48aRw/ftxYv3690blzZyM0NNQ4fvy489wrr7zSSE5ONr777jvnsZqaGmPo0KFG7969nccGDBhgXHfddY0+78KFC40f/heUl5dnSDJuv/12l/MmTpxoSDIWLlzoPDZlyhSjW7du531MwzCMsrKyOudlZmYaPXr0cDk2YsQIY8SIEY3WbBiG0a1bN+Pqq682Tp48aZw8edL43//9X+NXv/qVIcm44447Gny87OxsQ5Lx8ssvO49VVlYa6enpRtu2bY3S0lLDMAzj5MmTdV4vAPcwLAVAkpSRkaHOnTsrMTFRv/jFLxQREaGNGzfqggsukCR9/fXX2rZtm2688UadOnVKxcXFKi4u1ldffaXMzEx9+umnztVVUVFR2r9/vz799NMmP/+mTZskSXfeeafL8bvvvrtFrys8PNz555KSEhUXF2vEiBE6cuSISkpKmvWYW7ZsUefOndW5c2cNGDBA69at06RJk/TYY481eJ9NmzYpLi5OEyZMcB5r3bq17rzzTp0+fVr//d//3axaANQV0OHm7bff1pgxY9SlSxc5HA794x//8OrzZWVlaciQIWrXrp1iYmI0duxYHTx40OWc559/XiNHjlT79u3lcDj07bfferUmoNayZcu0detWrV+/Xtdee62Ki4sVGhrq/P2hQ4dkGIbmz5/v/GCvvS1cuFDSuTkl0rmVV99++6369Omj5ORk/f73v9cHH3zQ6PN/9tlnCgoKUs+ePV2OX3jhhS16Xe+++64yMjIUERGhqKgode7cWfPmzZOkZoebtLQ0bd26VW+++aZ27Nih4uJi/fWvf3UJUj/22WefqXfv3goKcv1vt2/fvs7fA/CMgJ5zc+bMGQ0YMEC/+c1vnGPb3vTf//3fmjFjhoYMGaKzZ89q3rx5uvrqq/Xxxx8rIiJC0rlloNdcc42uueYazZ071+s1AbVSU1Odq6XGjh2ryy67TBMnTtTBgwfVtm1b1dTUSJLuvfdeZWZm1vsYvXr1kiQNHz5chw8f1j//+U9t2bJFf/7zn/XMM89oxYoVmj59eotrbWjzv+rqapefDx8+rCuvvFIXXXSRnn76aSUmJiokJESbNm3SM88843xN7oqOjlZGRkaz7gvA+wI63IwePVqjR49u8PcVFRW6//779eqrr+rbb79Vv3799NhjjzV719HNmze7/Lx69WrFxMRo7969Gj58uKTvu+DZ4wJmCg4OVlZWlkaNGqWlS5dqzpw56tGjh6RzQylN+WDv2LGjpk2bpmnTpun06dMaPny4HnzwwQbDTbdu3VRTU6PDhw+79Nb8uHdTOjfJub5ezR/3fvzrX/9SRUWFNm7cqK5duzqPv/XWW+et39O6deumDz74QDU1NS69N5988onz91LDwQ1A0wX0sNT5zJw5Uzt37tTatWv1wQcf6Je//KWuueYat+YRNKa2S7xjx44eeTzAk0aOHKnU1FRlZ2fru+++U0xMjEaOHKnnnntOBQUFdc4/efKk889fffWVy+/atm2rXr16qaKiosHnq/2i8cc//tHleHZ2dp1ze/bsqZKSEpehroKCgjq7BAcHB0uSDMNwHispKdGqVasarMNbrr32WhUWFionJ8d57OzZs/rTn/6ktm3basSIEZKkNm3aSBJD0kALBHTPTWPy8/O1atUq5efnq0uXLpLOdcdv3rxZq1at0uLFi1v0+DU1Nbr77rs1bNgw9evXzxMlAx73+9//Xr/85S+1evVq3XbbbVq2bJkuu+wyJScn65ZbblGPHj1UVFSknTt36vPPP9f//u//SpIuvvhijRw5UoMHD1bHjh21Z88erV+/XjNnzmzwuQYOHKgJEybo2WefVUlJiYYOHarc3FwdOnSozrm/+tWvNHv2bN1www268847VVZWpuXLl6tPnz7at2+f87yrr75aISEhGjNmjP7f//t/On36tFauXKmYmJh6A5o33XrrrXruuec0depU7d27V0lJSVq/fr3effddZWdnq127dpLOTYC++OKLlZOToz59+qhjx47q168f/08A7jB7uZZVSDJee+0158///ve/DUlGRESEy61Vq1bGjTfeaBiGYRw4cMCQ1Oht9uzZ9T7fbbfdZnTr1s1lme0PvfXWW4Yk45tvvvH0SwVc1C4F3717d53fVVdXGz179jR69uxpnD171jAMwzh8+LAxefJkIy4uzmjdurWRkJBgXH/99cb69eud93vkkUeM1NRUIyoqyggPDzcuuugi49FHHzUqKyud59S3bLu8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jVtuucWIiooyioqK6j1/165dxr333mu8+uqrRlxcnPHMM8/4tmAvcbcdJk6caCxbtsx4//33jQMHDhhTp041IiMjjc8//9zHlXueu23x1ltvGRs2bDA+/vhj49ChQ0Z2drYRHBxsbN682ceVe5a77VDr6NGjRkJCgnH55ZcbP/vZz3xTrBe52w6rVq0y2rdvbxQUFDhvhYWFPq7aO9xti4qKCiMlJcW49tprjXfeecc4evSosX37diMvL8/HlXuWu+3w1VdfubwfPvroIyM4ONhYtWqVbwv3MHfb4ZVXXjFCQ0ONV155xTh69KjxxhtvGPHx8cY999zT4loINz+SmppqzJgxw/lzdXW10aVLFyMrK+u89+3WrZttwk1L2sEwDOPs2bNGu3btjL/85S/eKtFnWtoWhmEYgwYNMh544AFvlOczzWmHs2fPGkOHDjX+/Oc/G1OmTLFFuHG3HVatWmVERkb6qDrfcrctli9fbvTo0cOorKz0VYk+0dL/I5555hmjXbt2xunTp71Vok+42w4zZswwrrjiCpdjs2bNMoYNG9biWhiW+oHKykrt3btXGRkZzmNBQUHKyMjQzp07TazMtzzRDmVlZaqqqlLHjh29VaZPtLQtDMNQbm6uDh48qOHDh3uzVK9qbjs89NBDiomJ0c033+yLMr2uue1w+vRpdevWTYmJifrZz36m/fv3+6Jcr2pOW2zcuFHp6emaMWOGYmNj1a9fPy1evFjV1dW+KtvjPPH/5QsvvKBf/epXioiI8FaZXtecdhg6dKj27t3rHLo6cuSINm3apGuvvbbF9QTchTMbU1xcrOrqasXGxrocj42N1SeffGJSVb7niXaYPXu2unTp4vJG90fNbYuSkhIlJCSooqJCwcHBevbZZ3XVVVd5u1yvaU47vPPOO3rhhReUl5fngwp9ozntcOGFF+rFF19U//79VVJSoieffFJDhw7V/v37PXIRX7M0py2OHDmibdu26aabbtKmTZt06NAh3X777aqqqtLChQt9UbbHtfT/y127dumjjz7SCy+84K0SfaI57TBx4kQVFxfrsssuk2EYOnv2rG677TbNmzevxfUQbuBxS5Ys0dq1a7V9+3ZbTZx0R7t27ZSXl6fTp08rNzdXs2bNUo8ePTRy5EizS/OJU6dOadKkSVq5cqWio6PNLsdU6enpSk9Pd/48dOhQ9e3bV88995wefvhhEyvzvZqaGsXExOj5559XcHCwBg8erC+++EJPPPGE34ablnrhhReUnJys1NRUs0vxue3bt2vx4sV69tlnlZaWpkOHDumuu+7Sww8/rPnz57fosQk3PxAdHa3g4GAVFRW5HC8qKlJcXJxJVfleS9rhySef1JIlS/Tmm2+qf//+3izTJ5rbFkFBQerVq5ckaeDAgTpw4ICysrL8Nty42w6HDx/WsWPHNGbMGOexmpoaSVKrVq108OBB9ezZ07tFe4En/o9o3bq1Bg0apEOHDnmjRJ9pTlvEx8erdevWCg4Odh7r27evCgsLVVlZqZCQEK/W7A0teU+cOXNGa9eu1UMPPeTNEn2iOe0wf/58TZo0SdOnT5ckJScn68yZM7r11lt1//33Kyio+TNnmHPzAyEhIRo8eLByc3Odx2pqapSbm+vyzcvumtsOjz/+uB5++GFt3rxZKSkpvijV6zz1nqipqVFFRYU3SvQJd9vhoosu0ocffqi8vDzn7ac//alGjRqlvLw8JSYm+rJ8j/HE+6G6uloffvih4uPjvVWmTzSnLYYNG6ZDhw45g64k/ec//1F8fLxfBhupZe+JdevWqaKiQr/+9a+9XabXNacdysrK6gSY2uBrtPSyly2ekmwza9euNUJDQ43Vq1cbH3/8sXHrrbcaUVFRzqWbkyZNMubMmeM8v6Kiwnj//feN999/34iPjzfuvfde4/333zc+/fRTs16CR7jbDkuWLDFCQkKM9evXuyxxPHXqlFkvwWPcbYvFixcbW7ZsMQ4fPmx8/PHHxpNPPmm0atXKWLlypVkvwSPcbYcfs8tqKXfbYdGiRcYbb7xhHD582Ni7d6/xq1/9yggLCzP2799v1kvwGHfbIj8/32jXrp0xc+ZM4+DBg8a///1vIyYmxnjkkUfMegke0dx/G5dddpkxfvx4X5frNe62w8KFC4127doZr776qnHkyBFjy5YtRs+ePY0bb7yxxbUQburxpz/9yejatasREhJipKamGv/zP//j/N2IESOMKVOmOH8+evSoIanObcSIEb4v3MPcaYdu3brV2w4LFy70feFe4E5b3H///UavXr2MsLAwo0OHDkZ6erqxdu1aE6r2PHfa4cfsEm4Mw712uPvuu53nxsbGGtdee62xb98+E6r2DnffEzt27DDS0tKM0NBQo0ePHsajjz5qnD171sdVe5677fDJJ58YkowtW7b4uFLvcqcdqqqqjAcffNDo2bOnERYWZiQmJhq333678c0337S4DodhtLTvBwAAwDqYcwMAAGyFcAMAAGyFcAMAAGyFcAMAAGyFcAMAAGyFcAMAAGyFcAMAAGyFcAMAXjR16lSNHTvW7DKAgEK4AQLU1KlT5XA4nLdOnTrpmmuu0QcffGB2aR7xw9dWe7vsssu89nzHjh2Tw+FQXl6ey/E//OEPWr16tdeeF0BdhBsggF1zzTUqKChQQUGBcnNz1apVK11//fVml+Uxq1atcr6+goICbdy4sd7zqqqqvFZDZGSkoqKivPb4AOoi3AABLDQ0VHFxcYqLi9PAgQM1Z84cHT9+XCdPntQVV1yhmTNnupx/8uRJhYSEOK/8m5SUpIcfflgTJkxQRESEEhIStGzZMpf7PP3000pOTlZERIQSExN1++236/Tp087ff/bZZxozZow6dOigiIgIXXLJJdq0aZMk6ZtvvtFNN92kzp07Kzw8XL1799aqVaua/PqioqKcry8uLk4dO3Z09rDk5ORoxIgRCgsL0yuvvKKvvvpKEyZMUEJCgtq0aaPk5GS9+uqrLo9XU1Ojxx9/XL169VJoaKi6du2qRx99VJLUvXt3SdKgQYPkcDg0cuRISXWHpSoqKnTnnXcqJiZGYWFhuuyyy7R7927n77dv3y6Hw6Hc3FylpKSoTZs2Gjp0qA4ePNjk1w0EOsINAEnS6dOn9fLLL6tXr17q1KmTpk+frjVr1qiiosJ5zssvv6yEhARdccUVzmNPPPGEBgwYoPfff19z5szRXXfdpa1btzp/HxQUpD/+8Y/av3+//vKXv2jbtm267777nL+fMWOGKioq9Pbbb+vDDz/UY489prZt20qS5s+fr48//lj/9V//pQMHDmj58uWKjo72yOutrfXAgQPKzMzUd999p8GDB+v111/XRx99pFtvvVWTJk3Srl27nPeZO3eulixZ4qxrzZo1io2NlSTneW+++aYKCgq0YcOGep/3vvvu09///nf95S9/0b59+9SrVy9lZmbq66+/djnv/vvv11NPPaU9e/aoVatW+s1vfuOR1w0EhBZfehOAX5oyZYoRHBxsREREGBEREYYkIz4+3ti7d69hGIZRXl5udOjQwcjJyXHep3///saDDz7o/Llbt27GNddc4/K448ePN0aPHt3g865bt87o1KmT8+fk5GSXx/yhMWPGGNOmTWvW65NkhIWFOV9fRESE8dprrxlHjx41JBnZ2dnnfYzrrrvO+N3vfmcYhmGUlpYaoaGhxsqVK+s9t/Zx33//fZfjP7wa+unTp43WrVsbr7zyivP3lZWVRpcuXYzHH3/cMAzDeOuttwxJxptvvuk85/XXXzckGeXl5e40ARCw6LkBAtioUaOUl5envLw87dq1S5mZmRo9erQ+++wzhYWFadKkSXrxxRclSfv27dNHH32kqVOnujxGenp6nZ8PHDjg/PnNN9/UlVdeqYSEBLVr106TJk3SV199pbKyMknSnXfeqUceeUTDhg3TwoULXSY0//a3v9XatWs1cOBA3XfffdqxY4dbr++ZZ55xvr68vDxdddVVzt+lpKS4nFtdXa2HH35YycnJ6tixo9q2bas33nhD+fn5kqQDBw6ooqJCV155pVs1/NDhw4dVVVWlYcOGOY+1bt1aqampLm0mSf3793f+OT4+XpJ04sSJZj83EEgIN0AAi4iIUK9evdSrVy8NGTJEf/7zn3XmzBmtXLlSkjR9+nRt3bpVn3/+uVatWqUrrrhC3bp1a/LjHzt2TNdff7369++vv//979q7d69zTk5lZaXzOY4cOaJJkybpww8/VEpKiv70pz9JkjNo3XPPPfryyy915ZVX6t57723y88fFxTlfX69evRQREeHy2n/oiSee0B/+8AfNnj1bb731lvLy8pSZmemsMzw8vMnP6wmtW7d2/tnhcEg6N+cHwPkRbgA4ORwOBQUFqby8XJKUnJyslJQUrVy5UmvWrKl33sf//M//1Pm5b9++kqS9e/eqpqZGTz31lC699FL16dNHX375ZZ3HSExM1G233aYNGzbod7/7nTNcSVLnzp01ZcoUvfzyy8rOztbzzz/vyZfs9O677+pnP/uZfv3rX2vAgAHq0aOH/vOf/zh/37t3b4WHhzsnU/9YSEiIpHM9QA3p2bOnQkJC9O677zqPVVVVaffu3br44os99EoAtDK7AADmqaioUGFhoaRzK5OWLl2q06dPa8yYMc5zpk+frpkzZyoiIkI33HBDncd499139fjjj2vs2LHaunWr1q1bp9dff12S1KtXL1VVVelPf/qTxowZo3fffVcrVqxwuf/dd9+t0aNHq0+fPvrmm2/01ltvOcPRggULNHjwYF1yySWqqKjQv//9b+fvPK13795av369duzYoQ4dOujpp59WUVGRM3SEhYVp9uzZuu+++xQSEqJhw4bp5MmT2r9/v26++WbFxMQoPDxcmzdv1gUXXKCwsDBFRka6PEdERIR++9vf6ve//706duyorl276vHHH1dZWZluvvlmr7wuIBDRcwMEsM2bNys+Pl7x8fFKS0vT7t27tW7dOucyZkmaMGGCWrVqpQkTJigsLKzOY/zud7/Tnj17NGjQID3yyCN6+umnlZmZKUkaMGCAnn76aT322GPq16+fXnnlFWVlZbncv7q6WjNmzFDfvn11zTXXqE+fPnr22WclnesNmTt3rvr376/hw4crODhYa9eu9UpbPPDAA/rJT36izMxMjRw5UnFxcXV2Fp4/f75+97vfacGCBerbt6/Gjx/vnAfTqlUr/fGPf9Rzzz2nLl266Gc/+1m9z7NkyRL9/Oc/16RJk/STn/xEhw4d0htvvKEOHTp45XUBgchhGIZhdhEArOvYsWPq2bOndu/erZ/85Ccuv0tKStLdd9+tu+++25ziAKAeDEsBqFdVVZW++uorPfDAA7r00kvrBBsAsCqGpQDU691331V8fLx2795dZ56M2RYvXqy2bdvWexs9erTZ5QEwGcNSAPzO119/XWdH31rh4eFKSEjwcUUArIRwAwAAbIVhKQAAYCuEGwAAYCuEGwAAYCuEGwAAYCuEGwAAYCuEGwAAYCuEGwAAYCuEGwAAYCv/H0ZOxd1hfr7PAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_57.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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2uHo0aPQaDRavVGnTp2StgN1B4hEpD/OiSIis4qIiEBISAhWrFiBGzduoFWrVoiIiMC6detQVFRUK/+lS5ek/1++fFlrm4uLCzp27Iiqqqo6j/fYY48BAD744AOt9BUrVtTK26FDB6jVahw9elRKKyoqqrVquL29PQBACCGlqdVqbNy4sc56mMrjjz+O4uJiJCcnS2m3b9/GypUr4eLigvDwcACAs7MzAOgMEolIP+yJIiKzmzlzJv76178iKSkJL774IlavXo0BAwYgKCgIkyZNQvv27VFSUoKsrCz89ttvOHLkCAAgMDAQERER6NWrF1q0aIGff/4ZX3zxBV555ZU6jxUcHIwxY8bgH//4B9RqNfr164eMjAycPXu2Vt7Ro0fjjTfewJNPPompU6eioqICa9asQefOnZGTkyPlGzp0KJRKJf7yl7/ghRdewPXr17F+/Xq0atVKZyBoSpMnT8a6devw3HPPITs7G35+fvjiiy/w448/YsWKFXjggQcA3JkIHxgYiOTkZHTu3BktWrRAt27d0K1btwatL5FVM/flgURkG2qWODh06FCtbdXV1aJDhw6iQ4cO4vbt20IIIc6dOyfGjx8vvLy8hIODg/Dx8RFPPPGE+OKLL6T93nzzTRESEiKaNWsmnJycREBAgHjrrbfEzZs3pTy6liOorKwUU6dOFS1bthRNmzYVf/nLX8SFCxd0XvL/zTffiG7dugmlUim6dOkiPv30U51l7tixQzz00ENCpVIJPz8/sWTJErFhwwYBQOTl5Un5DFni4F7LN9RVXklJiZgwYYJwd3cXSqVSBAUFiY0bN9baNzMzU/Tq1UsolUoud0Akg0KIu/qfiYiIiEgvnBNFREREJAODKCIiIiIZGEQRERERycAgioiIiEgGBlFEREREMjCIIiIiIpKBi22akEajQWFhIR544AHeYoGIiMhKCCFw7do1tG7dutbNvO/GIMqECgsL4evra+5qEBERkQwXLlxAmzZt6tzOIMqEam6vcOHCBbi6upq5NkRERKSPsrIy+Pr6St/jdWEQZUI1Q3iurq4MooiIiKzMvabicGI5ERERkQwMooiIiIhkYBBFREREJAPnRJmZRqPBzZs3zV0NMjMHBwfY29ubuxpERGQABlFmdPPmTeTl5UGj0Zi7KmQBmjVrBi8vL64pRkRkJRhEmYkQAkVFRbC3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448/LnJychquUXcxtH3h4eH15q9h6r9BhRB1jI8QERERUZ04J4qIiIhIBgZRRERERDIwiCIiIiKSgUEUERERkQwMooiIiIhkYBBFREREJAODKCIiIiIZGEQREdmQvXv3QqFQ4OrVq+auCpHVYxBFRCbx3HPPQaFQYPHixVrp27Ztg0KhkJ4LIbB+/XqEhYXB1dUVLi4uePDBBzFt2jS9b4RaUVGBWbNmoUOHDlCpVPDw8EB4eDi2b98u5fHz88OKFSuM0jZTq3ntFAoFHBwc4O/vj9dffx03btwwqJyIiAhMnz5dK61fv34oKiqCm5ubEWtMZJsYRBGRyahUKixZsgR//PGHzu1CCIwdOxZTp07F448/jm+++Qa//PILPvroI6hUKrz55pt6HefFF19EamoqVq5ciVOnTmH37t14+umncfnyZWM2p0E9+uijKCoqwvnz57F8+XKsW7cOCQkJ912uUqmEl5eXViBLRDIZ9SYyRET/FRsbK5544gkREBAgZs6cKaV/+eWXoubU8/nnnwsAYvv27TrL0Gg0eh3Lzc1NJCUl1bld1322avzwww9iwIABQqVSiTZt2ogpU6aI69evS9s//vhj0atXL+Hi4iI8PT3FmDFjRElJibS95p5fu3fvFsHBwUKlUonBgweLkpISkZaWJgICAsQDDzwgxowZI8rLy/VqT2xsrBgxYoRW2siRI0WPHj2k56WlpWL06NGidevWwsnJSXTr1k1s3rxZq4w/tzkvL0+q7933ovziiy9EYGCgUCqVol27duLdd9/Vq55Eto49UURkMvb29nj77bexcuVK/Pbbb7W2f/755+jSpQuGDx+uc399e0u8vLyQlpaGa9eu6dyempqKNm3aYOHChSgqKkJRUREA4Ny5c3j00Ufx1FNP4ejRo0hOTsb+/fvxyiuvSPveunULixYtwpEjR7Bt2zbk5+fjueeeq3WM+fPnY9WqVcjMzMSFCxcwatQorFixAps3b8auXbvwzTffYOXKlXq158+OHz+OzMxMKJVKKe3GjRvo1asXdu3ahePHj2Py5MkYN24cDh48CAB4//33ERYWhkmTJklt9vX1rVV2dnY2Ro0ahdGjR+PYsWOYP38+5s6di6SkJFl1JbIp5o7iiKhxurs3pW/fvuJvf/ubEEK7JyogIEAMHz5ca79p06aJpk2biqZNmwofHx+9jrVv3z7Rpk0b4eDgIHr37i2mT58u9u/fr5WnXbt2Yvny5VppEydOFJMnT9ZK++GHH4SdnZ2orKzUeaxDhw4JAOLatWtCiP/1RH377bdSnsTERAFAnDt3Tkp74YUXRFRUlF7tiY2NFfb29qJp06bC0dFRABB2dnbiiy++qHe/YcOGiddee016Hh4eLqZNm6aV5889UWPHjhVDhgzRyjNz5kwRGBioV12JbBl7oojI5JYsWYJNmzbh5MmT98z797//HYcPH8a8efNw/fp1vcofNGgQzp8/j4yMDDz99NM4ceIEBg4ciEWLFtW735EjR5CUlAQXFxfpERUVBY1Gg7y8PAB3emr+8pe/oG3btnjggQcQHh4OACgoKNAq66GHHpL+7+npCWdnZ7Rv314r7eLFi3q1BwAGDx6Mw4cP48CBA4iNjcWECRPw1FNPSdurq6uxaNEiBAUFoUWLFnBxccHXX39dq173cvLkSfTv318rrX///jhz5gyqq6sNKovI1jCIIiKTGzRoEKKiojBr1iyt9E6dOuH06dNaaR4eHujYsSNatWpl0DEcHBwwcOBAvPHGG/jmm2+wcOFCLFq0CDdv3qxzn+vXr+OFF17A4cOHpceRI0dw5swZdOjQAeXl5YiKioKrqys+++wzHDp0CF9++SUA1CrXwcFB+n/NVXV3UygU0Gg0erenadOm6NixI7p3744NGzbgwIED+Oijj6Tt77zzDt5//3288cYb+O6773D48GFERUXV214iMq4m5q4AEdmGxYsXIzg4GF26dJHSxowZg7Fjx2L79u0YMWKEUY8XGBiI27dv48aNG1AqlVAqlbV6Vnr27IlffvkFHTt21FnGsWPHcPnyZSxevFiaT/Tzzz8btZ76sLOzw+zZsxEXF4exY8fCyckJP/74I0aMGIFnn30WAKDRaPCf//wHgYGB0n662vxnXbt2xY8//qiV9uOPP6Jz586wt7c3fmOIGhH2RBFRgwgKCsIzzzyDDz74QEobPXo0nn76aYwePRoLFy7EgQMHkJ+fj3379iE5OVnvL/GIiAisW7cO2dnZyM/PR1paGmbPno3BgwfD1dUVwJ11or7//nv8/vvvKC0tBQC88cYbyMzMxCuvvILDhw/jzJkz2L59uzSxvG3btlAqlVi5ciXOnz+PHTt23HOI0FT++te/wt7eHqtXrwZwpxcvPT0dmZmZOHnyJF544QWUlJRo7ePn5ye9pqWlpTp7wl577TVkZGRg0aJF+M9//oNNmzZh1apVmDFjRoO0i8iaMYgiogazcOFCrS9yhUKB5ORkrFixAmlpaXjkkUfQpUsX/O1vf4Ovry/279+vV7lRUVHYtGkThg4diq5du2LKlCmIiorC1q1btY6dn5+PDh06wMPDA8CdeUz79u3Df/7zHwwcOBA9evTAvHnz0Lp1awB3hhaTkpKQkpKCwMBALF68GO+++64RXxH9NWnSBK+88gqWLl2K8vJyzJkzBz179kRUVBQiIiLg5eWF6OhorX1mzJgBe3t7BAYGwsPDQ+d8qZ49e2Lr1q3YsmULunXrhnnz5mHhwoU6r0AkIm0KIYQwdyWIiIiIrA17ooiIiIhkYBBFRBbv7iUI/vz44YcfzF09gxQUFNTbHkOXKCAi8+FwHhFZvPpuROzj4wMnJ6cGrM39uX37NvLz8+vc7ufnhyZNeOE0kTVgEEVEREQkA4fziIiIiGRgEEVEREQkA4MoIiIiIhkYRBERERHJwCCKiIiISAYGUUREREQyMIgiIiIikoFBFBEREZEM/w9+Hd2F3TWa6AAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_58.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_59.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAioAAAHHCAYAAACRAnNyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA/6UlEQVR4nO3deXQUVeL+/6eTkIUlQSBAAgFkF9kUgUFEQNGIqAgqqwq4OyAqoyOgI4uOgdFRHET06yBxBRQBGWUQN0DABVCURZHVoIYlDiSsAZL7+8Nf+mOTBNJJuutW9/t1Tp+TVFdX31tVXf30rXurPMYYIwAAAAtFOF0AAACA4hBUAACAtQgqAADAWgQVAABgLYIKAACwFkEFAABYi6ACAACsRVABAADWIqgAAABrEVQAlNn48ePl8XhKNK/H49H48eMDWp5u3bqpW7du1i4PQMkRVIAQkp6eLo/H431ERUWpTp06Gjp0qH755Reni2edBg0a+KyvmjVrqkuXLpo/f365LP/IkSMaP368li5dWi7LA8IRQQUIQRMnTtRrr72mF154QT179tTrr7+url276tixYwF5v0ceeURHjx4NyLIDrW3btnrttdf02muv6YEHHtCvv/6qvn376oUXXijzso8cOaIJEyYQVIAyiHK6AADKX8+ePXXBBRdIkm677TbVqFFDkydP1sKFC9WvX79yf7+oqChFRbnzcFKnTh3deOON3v9vvvlmNW7cWM8884zuuusuB0sGQKJFBQgLXbp0kSRt27bNZ/oPP/yg66+/XtWqVVNsbKwuuOACLVy40GeeEydOaMKECWrSpIliY2NVvXp1XXTRRfrwww+98xTVRyU3N1f333+/EhMTVaVKFV1zzTX6+eefC5Vt6NChatCgQaHpRS1z5syZuuSSS1SzZk3FxMSoRYsWmj59ul/r4kxq166tc845Rzt27DjtfHv37tWtt96qWrVqKTY2Vm3atNErr7zifX7nzp1KTEyUJE2YMMF7einQ/XOAUOPOn0AA/LJz505J0llnneWdtnHjRnXu3Fl16tTR6NGjValSJb311lu69tpr9c4776hPnz6Sfg8MaWlpuu2229ShQwfl5ORozZo1+vrrr3XZZZcV+5633XabXn/9dQ0aNEgXXnihPvnkE/Xq1atM9Zg+fbrOPfdcXXPNNYqKitJ//vMf/fnPf1Z+fr6GDx9epmUXOHHihHbt2qXq1asXO8/Ro0fVrVs3bd26VSNGjNDZZ5+tt99+W0OHDtWBAwd07733KjExUdOnT9fdd9+tPn36qG/fvpKk1q1bl0s5gbBhAISMmTNnGknmo48+Mvv27TO7du0yc+fONYmJiSYmJsbs2rXLO++ll15qWrVqZY4dO+adlp+fby688ELTpEkT77Q2bdqYXr16nfZ9x40bZ/54OFm3bp2RZP785z/7zDdo0CAjyYwbN847bciQIaZ+/fpnXKYxxhw5cqTQfKmpqaZhw4Y+07p27Wq6du162jIbY0z9+vXN5Zdfbvbt22f27dtnvv32WzNgwAAjydxzzz3FLm/KlClGknn99de9044fP246depkKleubHJycowxxuzbt69QfQH4h1M/QAjq0aOHEhMTlZKSouuvv16VKlXSwoULVbduXUnS//73P33yySfq16+fDh48qKysLGVlZem3335TamqqtmzZ4h0lVLVqVW3cuFFbtmwp8fsvWrRIkjRy5Eif6ffdd1+Z6hUXF+f9Ozs7W1lZWeratau2b9+u7OzsUi1zyZIlSkxMVGJiotq0aaO3335bN910kyZPnlzsaxYtWqTatWtr4MCB3mkVKlTQyJEjdejQIS1btqxUZQFQWMgEleXLl+vqq69WcnKyPB6PFixYEND3Kzh//sdH8+bNA/qeQElNmzZNH374oebOnasrr7xSWVlZiomJ8T6/detWGWP0t7/9zfslXfAYN26cpN/7YEi/jyA6cOCAmjZtqlatWunBBx/Ud999d9r3/+mnnxQREaFGjRr5TG/WrFmZ6rVy5Ur16NFDlSpVUtWqVZWYmKixY8dKUqmDSseOHfXhhx/qo48+0qpVq5SVlaVXX33VJxSd6qefflKTJk0UEeF7CD3nnHO8zwMoHyHTR+Xw4cNq06aNbrnlFu+54EA799xz9dFHH3n/d+uoB4SeDh06eEf9XHvttbrooos0aNAgbd68WZUrV1Z+fr4k6YEHHlBqamqRy2jcuLEk6eKLL9a2bdv07rvvasmSJfr3v/+tZ555Ri+88IJuu+22Mpe1uAvF5eXl+fy/bds2XXrppWrevLmefvpppaSkKDo6WosWLdIzzzzjrZO/atSooR49epTqtQACL2S+WXv27KmePXsW+3xubq4efvhhzZo1SwcOHFDLli01efLkMl1tMioqSrVr1y7164FgiIyMVFpamrp3767nnntOo0ePVsOGDSX9frqiJF/S1apV07BhwzRs2DAdOnRIF198scaPH19sUKlfv77y8/O1bds2n1aUzZs3F5r3rLPO0oEDBwpNP7VV4j//+Y9yc3O1cOFC1atXzzv9008/PWP5y1v9+vX13XffKT8/36dV5YcffvA+LxUfwgCUXMic+jmTESNG6PPPP9fs2bP13Xff6YYbbtAVV1zh13n3U23ZskXJyclq2LChBg8erIyMjHIsMVB+unXrpg4dOmjKlCk6duyYatasqW7duunFF19UZmZmofn37dvn/fu3337zea5y5cpq3LixcnNzi32/gh8N//rXv3ymT5kypdC8jRo1UnZ2ts/ppMzMzEJXh42MjJQkGWO807KzszVz5sxiyxEoV155pXbv3q05c+Z4p508eVJTp05V5cqV1bVrV0lSxYoVJanIIAagZEKmReV0MjIyNHPmTGVkZCg5OVnS703eixcv1syZM/XEE0/4vcyOHTsqPT1dzZo1U2ZmpiZMmKAuXbpow4YNqlKlSnlXASizBx98UDfccIPS09N11113adq0abrooovUqlUr3X777WrYsKH27Nmjzz//XD///LO+/fZbSVKLFi3UrVs3tWvXTtWqVdOaNWs0d+5cjRgxotj3atu2rQYOHKjnn39e2dnZuvDCC/Xxxx9r69atheYdMGCAHnroIfXp00cjR47UkSNHNH36dDVt2lRff/21d77LL79c0dHRuvrqq3XnnXfq0KFDeumll1SzZs0iw1Yg3XHHHXrxxRc1dOhQrV27Vg0aNNDcuXO1cuVKTZkyxXsMiIuLU4sWLTRnzhw1bdpU1apVU8uWLdWyZcuglhdwNaeHHQWCJDN//nzv/++9956RZCpVquTziIqKMv369TPGGPP9998bSad9PPTQQ8W+5/79+018fLz597//HejqAcUqGJ68evXqQs/l5eWZRo0amUaNGpmTJ08aY4zZtm2bufnmm03t2rVNhQoVTJ06dcxVV11l5s6d633d448/bjp06GCqVq1q4uLiTPPmzc3f//53c/z4ce88RQ0lPnr0qBk5cqSpXr26qVSpkrn66qvNrl27ihyuu2TJEtOyZUsTHR1tmjVrZl5//fUil7lw4ULTunVrExsbaxo0aGAmT55sXn75ZSPJ7NixwzufP8OTzzT0urjl7dmzxwwbNszUqFHDREdHm1atWpmZM2cWeu2qVatMu3btTHR0NEOVgVLwGPOHdtQQ4fF4NH/+fF177bWSpDlz5mjw4MHauHGjt/m4QOXKlVW7dm0dP35c27dvP+1yq1ev7r3SZFHat2+vHj16KC0trcx1AAAAYXLq57zzzlNeXp727t3rvZT4qaKjo8s0vPjQoUPatm2bbrrpplIvAwAA+AqZoHLo0CGf8987duzQunXrVK1aNTVt2lSDBw/WzTffrH/+858677zztG/fPn388cdq3bp1qS7r/cADD+jqq69W/fr19euvv2rcuHGKjIz0uQAUAAAom5A59bN06VJ179690PQhQ4YoPT1dJ06c0OOPP65XX31Vv/zyi2rUqKE//elPmjBhglq1auX3+w0YMEDLly/Xb7/9psTERF100UX6+9//XugCVwAAoPRCJqgAAIDQEzbXUQEAAO5DUAEAANZydWfa/Px8/frrr6pSpQqXqgYAwCWMMTp48KCSk5ML3dzzVK4OKr/++qtSUlKcLgYAACiFXbt2qW7duqedx9VBpeAy1bt27VJ8fLzDpQEAACWRk5OjlJSUEt1yxtVBpeB0T3x8PEEFAACXKUm3DTrTAgAAaxFUAACAtQgqAADAWq7uowIAgG3y8vJ04sQJp4vhqAoVKigyMrJclkVQAQCgHBhjtHv3bh04cMDpolihatWqql27dpmvc0ZQAQCgHBSElJo1a6pixYpheyFSY4yOHDmivXv3SpKSkpLKtDyCCgAAZZSXl+cNKdWrV3e6OI6Li4uTJO3du1c1a9Ys02kgOtMCAFBGBX1SKlas6HBJ7FGwLsraX4egAgBAOQnX0z1FKa91QVABAADWIqgAAABrEVQckJl9VKu2ZSkz+6jTRQEAQJL0+eefKzIyUr169fKZvnPnTnk8Hu+jWrVq6tq1qz777LOglIugEmRzVmeo86RPNOilL9V50ieaszrD6SIBAKAZM2bonnvu0fLly/Xrr78Wev6jjz5SZmamli9fruTkZF111VXas2dPwMtFUAmizOyjGjNvvfLN7//nG2nsvA20rAAAHHXo0CHNmTNHd999t3r16qX09PRC81SvXl21a9dWy5YtNXbsWOXk5OjLL78MeNkIKkG0I+uwN6QUyDNGO7OOOFMgAICVgt1F4K233lLz5s3V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TZkypVzqFmgF687j8ahChQo6++yz9de//lXHjh3zazndunXTfffd5zPtwgsvVGZmphISEsqxxEB4IqgALhcbG6vJkydr//79RT5vjNGgQYM0cuRIXXnllVqyZIk2bdqkGTNmKDY2Vo8//niJ3ueuu+7SvHnzNHXqVP3www9avHixrr/+ev3222/lWZ2guuKKK5SZmant27frmWee0Ysvvqhx48aVebnR0dGqXbu2T1gEUErlekF+AEE1ZMgQc9VVV5nmzZubBx980Dt9/vz5puDjPWvWLCPJvPvuu0UuIz8/v0TvlZCQYNLT04t9vqj7ghT47LPPzEUXXWRiY2NN3bp1zT333GMOHTrkff7VV1817dq1M5UrVza1atUyAwcONHv27PE+X3CPksWLF5u2bdua2NhY0717d7Nnzx6zaNEi07x5c1OlShUzcOBAc/jw4RLVZ8iQIaZ3794+0/r27WvOO+887/9ZWVlmwIABJjk52cTFxZmWLVuaN99802cZp9Z5x44d3vL+8d5Zc+fONS1atDDR0dGmfv365qmnnipROYFwR4sK4HKRkZF64oknNHXqVP3888+Fnp81a5aaNWuma665psjXl/RXf+3atbVo0SIdPHiwyOfnzZununXrauLEicrMzFRmZqYkadu2bbriiit03XXX6bvvvtOcOXO0YsUKjRgxwvvaEydO6LHHHtO3336rBQsWaOfOnRo6dGih9xg/fryee+45rVq1Srt27VK/fv00ZcoUvfnmm3r//fe1ZMkSTZ06tUT1OdWGDRu0atUqRUdHe6cdO3ZM7dq10/vvv68NGzbojjvu0E033aSvvvpKkvTss8+qU6dOuv322711TklJKbTstWvXql+/fhowYIDWr1+v8ePH629/+5vS09NLVVYgrDidlACU3h9bBf70pz+ZW265xRjj26LSvHlzc8011/i87t577zWVKlUylSpVMnXq1CnRey1btszUrVvXVKhQwVxwwQXmvvvuMytWrPCZp379+uaZZ57xmXbrrbeaO+64w2faZ599ZiIiIszRo0eLfK/Vq1cbSebgwYPGmP9rUfnoo4+886SlpRlJZtu2bd5pd955p0lNTS1RfYYMGWIiIyNNpUqVTExMjJFkIiIizNy5c0/7ul69epm//OUv3v+7du1q7r33Xp95Tm1RGTRokLnssst85nnwwQdNixYtSlRWIJzRogKEiMmTJ+uVV17R999/f8Z5H374Ya1bt06PPvqoDh06VKLlX3zxxdq+fbs+/vhjXX/99dq4caO6dOmixx577LSv+/bbb5Wenq7KlSt7H6mpqcrPz9eOHTsk/d7icPXVV6tevXqqUqWKunbtKknKyMjwWVbr1q29f9eqVUsVK1ZUw4YNfabt3bu3RPWRpO7du2vdunX68ssvNWTIEA0bNkzXXXed9/m8vDw99thjatWqlapVq6bKlSvrgw8+KFSuM/n+++/VuXNnn2mdO3fWli1blJeX59eygHBDUAFCxMUXX6zU1FSNGTPGZ3qTJk20efNmn2mJiYlq3Lixatas6dd7VKhQQV26dNFDDz2kJUuWaOLEiXrsscd0/PjxYl9z6NAh3XnnnVq3bp338e2332rLli1q1KiRDh8+rNTUVMXHx+uNN97Q6tWrNX/+fEkqtNwKFSp4/y4YrfNHHo9H+fn5Ja5PpUqV1LhxY7Vp00Yvv/yyvvzyS82YMcP7/JNPPqlnn31WDz30kD799FOtW7dOqampp60vgPIV5XQBAJSfSZMmqW3btmrWrJl32sCBAzVo0CC9++676t27d7m+X4sWLXTy5EkdO3ZM0dHRio6OLtRCcP7552vTpk1q3LhxkctYv369fvvtN02aNMnbv2PNmjXlWs6SiIiI0NixYzVq1CgNGjRIcXFxWrlypXr37q0bb7xRkpSfn68ff/xRLVq08L6uqDqf6pxzztHKlSt9pq1cuVJNmzZVZGRk+VcGCCG0qAAhpFWrVho8eLD+9a9/eacNGDBA119/vQYMGKCJEyfqyy+/1M6dO7Vs2TLNmTOnxF+U3bp104svvqi1a9dq586dWrRokcaOHavu3bsrPj5e0u/XUVm+fLl++eUXZWVlSZIeeughrVq1SiNGjNC6deu0ZcsWvfvuu97OtPXq1VN0dLSmTp2q7du3a+HChWc8nRQoN9xwgyIjIzVt2jRJv7dGffjhh1q1apW+//573XnnndqzZ4/Paxo0aOBdp1lZWUW26PzlL3/Rxx9/rMcee0w//vijXnnlFT333HN64IEHglIvwM0IKkCImThxos+Xpcfj0Zw5czRlyhQtWrRIl156qZo1a6ZbbrlFKSkpWrFiRYmWm5qaqldeeUWXX365zjnnHN1zzz1KTU3VW2+95fPeO3fuVKNGjZSYmCjp934ly5Yt048//qguXbrovPPO06OPPqrk5GRJv5+GSk9P19tvv60WLVpo0qRJeuqpp8pxjZRcVFSURowYoX/84x86fPiwHnnkEZ1//vlKTU1Vt27dVLt2bV177bU+r3nggQcUGRmpFi1aKDExscj+K+eff77eeustzZ49Wy1bttSjjz6qiRMnFjmyCYAvjzHGOF0IAACAotCiAgAArEVQASBJPsOHT3189tlnThfPLxkZGaetj7/DiwE4h1M/ACTptDcnrFOnjuLi4oJYmrI5efKkdu7cWezzDRo0UFQUgx4BNyCoAAAAa3HqBwAAWIugAgAArEVQAQAA1iKoAAAAaxFUAACAtQgqAADAWgQVAABgLYIKAACw1v8HniK3IJFxsyoAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_60.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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H//4R4wcORLr16/HDz/8gL/+9a8AAIVCgenTp+ODDz5A586dERwcjNmzZyMgIABRUVEAgO7du2P48OGYPHkyVq5ciTt37mDatGkYN24cAgICAABffPEF3NzcEBISArVajR9++AEzZszA2LFj4ebmBgCYP38+Hn/8cXTq1AklJSVYtGgRzp8/j5dffrmR9yIRERE5IrsnWmPHjsW1a9cwZ84cGAwGhIaGIi0tTRrMfuHCBSiV/+t4GzBgANauXYtZs2Zh5syZ6Ny5M7Zs2YJevXpJMe+88w7KysoQHx+PkpISDBo0CGlpaRaTiX7xxReYNm0ahg0bBqVSieeeew5Lly6Vlru6uuKjjz7Cf//7Xwgh0L59e0ybNg1vvPGGFPPTTz9h8uTJMBgMeOihh9C3b19kZmaiR48ecu4yIiIichIKIYSwdyWaK5PJBK1WC6PRCE9PT3tXh4iIiOrAlu9vXnVIREREJBMmWkREREQyYaJFREREJBMmWkREREQyYaJFREREJBMmWkREREQyYaJFREREJBMmWkREREQyYaJFREREJBMmWkREREQyYaJFREREJBMmWkREREQyYaJFREREJBMmWkREREQyYaJFREREJBMmWkREREQyYaJFREREJBMmWkREREQyYaJFREREJBMmWkREREQyYaJFREREJBMmWkREREQyYaJFREREJBMmWkREREQyYaJFREREJBMmWkREREQyYaJFREREJBMmWkREREQyYaJFREREJBMmWkREREQyYaJFREREJBOHSLRWrFiBoKAgaDQahIeHY//+/bXGb9y4Ed26dYNGo0FISAh27NhhsVwIgTlz5sDf3x/u7u6IjIzEqVOnLGKKi4sRExMDT09PeHl5IS4uDqWlpdLykydPYujQofD19YVGo0GHDh0wa9Ys3Llzx6a6EBERUfNl90QrNTUVCQkJSEpKQl5eHnr37g29Xo+rV69ajc/MzER0dDTi4uJw4MABREVFISoqCkeOHJFiFi5ciKVLl2LlypXIzs6Gh4cH9Ho9KioqpJiYmBgcPXoU6enp2LZtG/bs2YP4+HhpuZubGyZOnIidO3fi5MmTWLJkCVavXo2kpCSb6kJERETNmLCzsLAwMXXqVOl5ZWWlCAgIEMnJyVbjx4wZI0aOHGlRFh4eLqZMmSKEEMJsNgs/Pz+xaNEiaXlJSYlQq9Vi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hg0bJk6ePGkRc/36dREdHS1atmwpPD09RWxsrLhx44a0fNKkSQJAtUdERIQUM336dKnevr6+YsSIESIvL6/O7ZYr0Vq//7wITtwm2r+7TQQnbhPr959v0O0TERE1Z7Z8fyuEEKLG7i6SlclkglarhdFobLDxWgXGcgxcsMtiwLqLQoG9iUN5eo+IiKgB2PL9zasOmxheFUhEROQ4mGg1MbwqkIiIyHEw0WpieFUgERGR43C1dwWo4Y3t3w5PdPHBuaKbCPJuwSSLiIjITphoNVH+WncmWERERHbGU4dEREREMmGiRURERCQTJlpEREREMmGiRURERCQTJlpEREREMmGiRURERCQTJlpEREREMmGiRURERCQTJlpE91FgLEfmmSIUGMvtXRUiInIynBmeqBapORcwY/NhmAWgVADJo0Mwtn87e1eLiIicBHu0iGpQYCyXkiwAMAtg5uYj7NkiIqI6synRunTpEoqKiqTn//nPfxATE4PBgwfjhRdeQFZWVoNXkMhe8ovKpCSrSqUQOFd00z4VIiIip2NTovXcc8/h+++/BwBs3boVQ4YMQWlpKQYOHIibN28iIiIC27Ztk6WiRI0t2NsDSoVlmYtCgSDvFvapEBEROR2FEELcP+xnLVu2xOHDhxEcHIzHH38czz77LN59911p+fLly/Hpp58iLy9Plso2NSaTCVqtFkajEZ6envauDlmRmnMBMzcfQaUQcFEo8OHoXhyjRUTUzNny/W3TYHhXV1fcuHEDAJCfn4+nn37aYvnTTz9tkXgRObux/dvhiS4+OFd0E0HeLeCvdbd3lYiIyInYdOowIiIC69atAwD06dMHu3fvtlj+7bffom3btg1WOSJH4K91h67jw0yyiIjIZjb1aC1YsACDBw/GlStXMGjQILz33nvIyclB9+7dcfLkSaSmpmLlypVy1ZWIiIjIqdg0RgsAzpw5g1mzZmH79u0oLS0F8PMpxf79++Ptt99GVFSUHPVskjhGi4iIyPnY8v1tc6JVRQiBq1evwmw2w9vbG25ubvWqbHPGRIuIiMj5yDYY/pcUCgV8fX3ruzoRERFRk2dTopWQkFCnuD/96U/1qgwRERFRU2JTonXgwAGL53v37kXfvn3h7v6/q7EUCsW9qxERERE1SzYlWt9++63F81atWmHt2rXo0KFDg1aKiIiIqCngTaWJiIiI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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_61.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAioAAAHHCAYAAACRAnNyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABA6UlEQVR4nO3de1xUdeL/8feA3ETBVFRQFMVbKmmZmlpedk1KM8stNd0y2+6a2l1ry1uFtm1ZZua2m9paShctd3NN08yULmbZ3fKCYkUmpSCKqPD5/eGX+TUBwsAc5pyZ1/Px4KGcOXPm85lhzrznczsuY4wRAACADYX4uwAAAADlIagAAADbIqgAAADbIqgAAADbIqgAAADbIqgAAADbIqgAAADbIqgAAADbIqgAAADbIqgAqLZp06bJ5XJVal+Xy6Vp06ZZWp5+/fqpX79+tj0egMojqAABZNGiRXK5XO6fWrVqqWnTprr22mv1ww8/+Lt4tpOUlOTxfDVq1EgXXHCBVqxY4ZPjHz16VNOmTdOGDRt8cjwgGBFUgAA0Y8YM/fvf/9azzz6riy++WEuWLFHfvn117NgxSx7vr3/9qwoKCiw5ttW6dOmif//73/r3v/+tu+66Sz/++KOGDRumZ599ttrHPnr0qKZPn05QAaqhlr8LAMD3Lr74Yp177rmSpOuvv14NGzbU7NmztXLlSg0fPtznj1erVi3VquXM00nTpk315z//2f37Nddco9atW+uJJ57QzTff7MeSAZBoUQGCwgUXXCBJ2rVrl8f27du364orrlD9+vUVGRmpc889VytXrvTY58SJE5o+fbratGmjyMhINWjQQOeff77Wrl3r3qesMSqFhYW6/fbbFRcXp7p16+rSSy/V999/X6ps1157rZKSkkptL+uYCxcu1B/+8Ac1atRIERER6tChg+bPn+/Vc1GRJk2a6Mwzz1RmZuZp9/v555/1l7/8RY0bN1ZkZKQ6d+6sxYsXu2/fs2eP4uLiJEnTp093dy9ZPT4HCDTO/AoEwCt79uyRJJ1xxhnubV999ZV69+6tpk2bavLkyYqOjtbLL7+syy67TK+99pouv/xySacCQ1pamq6//np1795deXl5+vjjj/XJJ5/owgsvLPcxr7/+ei1ZskSjRo1Sr169tH79eg0ePLha9Zg/f746duyoSy+9VLVq1dJ//vMf3XrrrSouLta4ceOqdewSJ06c0L59+9SgQYNy9ykoKFC/fv20c+dOjR8/Xi1bttQrr7yia6+9VocOHdLEiRMVFxen+fPn65ZbbtHll1+uYcOGSZLOOussn5QTCBoGQMBYuHChkWTefvttc+DAAbNv3z7z6quvmri4OBMREWH27dvn3vePf/yjSUlJMceOHXNvKy4uNr169TJt2rRxb+vcubMZPHjwaR936tSp5renk23bthlJ5tZbb/XYb9SoUUaSmTp1qnvbmDFjTIsWLSo8pjHGHD16tNR+qampplWrVh7b+vbta/r27XvaMhtjTIsWLczAgQPNgQMHzIEDB8xnn31mRo4caSSZ2267rdzjzZkzx0gyS5YscW87fvy46dmzp6lTp47Jy8szxhhz4MCBUvUF4B26foAANGDAAMXFxSkxMVFXXHGFoqOjtXLlSjVr1kyS9Ouvv2r9+vUaPny4Dh8+rJycHOXk5OiXX35RamqqduzY4Z4lVK9ePX311VfasWNHpR9/1apVkqQJEyZ4bJ80aVK16hUVFeX+f25urnJyctS3b1/t3r1bubm5VTrmmjVrFBcXp7i4OHXu3FmvvPKKrr76as2ePbvc+6xatUpNmjTRVVdd5d4WFhamCRMmKD8/X++++26VygKgtIAJKhs3btSQIUOUkJAgl8ul119/3dLHK+k//+1P+/btLX1MoLLmzZuntWvX6tVXX9WgQYOUk5OjiIgI9+07d+6UMUYPPPCA+0O65Gfq1KmSTo3BkE7NIDp06JDatm2rlJQU3X333fr8889P+/h79+5VSEiIkpOTPba3a9euWvXavHmzBgwYoOjoaNWrV09xcXG67777JKnKQaVHjx5au3at3n77bWVkZCgnJ0cvvPCCRyj6vb1796pNmzYKCfE8hZ555pnu2wH4RsCMUTly5Ig6d+6s6667zt0XbLWOHTvq7bffdv/u1FkPCDzdu3d3z/q57LLLdP7552vUqFH69ttvVadOHRUXF0uS7rrrLqWmppZ5jNatW0uS+vTpo127dumNN97QmjVr9M9//lNPPPGEnn32WV1//fXVLmt5C8UVFRV5/L5r1y798Y9/VPv27fX4448rMTFR4eHhWrVqlZ544gl3nbzVsGFDDRgwoEr3BWC9gPlkvfjii3XxxReXe3thYaHuv/9+LV26VIcOHVKnTp00e/bsaq02WatWLTVp0qTK9wdqQmhoqNLS0tS/f389/fTTmjx5slq1aiXpVHdFZT6k69evr7Fjx2rs2LHKz89Xnz59NG3atHKDSosWLVRcXKxdu3Z5tKJ8++23pfY944wzdOjQoVLbf98q8Z///EeFhYVauXKlmjdv7t7+zjvvVFh+X2vRooU+//xzFRcXe7SqbN++3X27VH4IA1B5AdP1U5Hx48fr/fff17Jly/T555/ryiuv1EUXXeRVv/vv7dixQwkJCWrVqpVGjx6trKwsH5YY8J1+/fqpe/fumjNnjo4dO6ZGjRqpX79+WrBggbKzs0vtf+DAAff/f/nlF4/b6tSpo9atW6uwsLDcxyv50vDUU095bJ8zZ06pfZOTk5Wbm+vRnZSdnV1qddjQ0FBJkjHGvS03N1cLFy4stxxWGTRokH766Selp6e7t508eVJz585VnTp11LdvX0lS7dq1JanMIAagcgKmReV0srKytHDhQmVlZSkhIUHSqSbv1atXa+HChXrkkUe8PmaPHj20aNEitWvXTtnZ2Zo+fbouuOACffnll6pbt66vqwBU2913360rr7xSixYt0s0336x58+bp/PPPV0pKim644Qa1atVK+/fv1/vvv6/vv/9en332mSSpQ4cO6tevn7p27ar69evr448/1quvvqrx48eX+1hdunTRVVddpWeeeUa5ubnq1auX1q1bp507d5bad+TIkbr33nt1+eWXa8KECTp69Kjmz5+vtm3b6pNPPnHvN3DgQIWHh2vIkCG66aablJ+fr+eee06NGjUqM2xZ6cYbb9SCBQt07bXXauvWrUpKStKrr76qzZs3a86cOe5zQFRUlDp06KD09HS1bdtW9evXV6dOndSpU6caLS/gaP6edmQFSWbFihXu3//73/8aSSY6Otrjp1atWmb48OHGGGO++eYbI+m0P/fee2+5j3nw4EETExNj/vnPf1pdPaBcJdOTt2zZUuq2oqIik5ycbJKTk83JkyeNMcbs2rXLXHPNNaZJkyYmLCzMNG3a1FxyySXm1Vdfdd/voYceMt27dzf16tUzUVFRpn379ubhhx82x48fd+9T1lTigoICM2HCBNOgQQMTHR1thgwZYvbt21fmdN01a9aYTp06mfDwcNOuXTuzZMmSMo+5cuVKc9ZZZ5nIyEiTlJRkZs+ebZ5//nkjyWRmZrr382Z6ckVT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P8gYo3feeUffffedBg4cWJUqVBotKgGE6cz+FQjfFCvbGhcIdUVp3nYZejvgP5AHedf0e2Lnzp0yxqh9+/YV7vvMM8/onnvu0ZEjR9SuXTutXbu21GqxvXr1KjWduKCgQF26dHH/PnfuXN14441q1qyZatWqpZCQED333HPq06ePT+pUHoJKAAnkk4DdBUJIrOyJNhDqivJ502VodbBxCn+8J7xZVH706NG68MILlZ2drccee0zDhw/X5s2bPRZhS09P15lnnlnqfr81d+5cffDBB1q5cqVatGihjRs3aty4cUpISNCAAQOqV6HTIKgEkEA9CTiB00OiNydau9Y1mMZmWV1Xb8bFWRlsnMIf74k2bdrI5XJ5zOApT2xsrGJjY9WmTRudd955OuOMM7RixQpdddVV7n0SExPVunVrj/tFRf3/shcUFOi+++7TihUrNHjwYEnSWWedpW3btumxxx4jqKByAvUk4AROD4nenGjtWNdg6oqyY12tCjZO4Y/3RP369ZWamqp58+ZpwoQJpcapHDp0qMxxKsYYGWNUWFjo1eOdOHFCJ06cKNU9FBoaquLiYq/L7w1bDKadN2+ekpKSFBkZqR49euijjz7yd5Eca0S35to0ub+W3nCeNk3u7/cTWLBw+po33gyitFtdA32A5m8FSl3ttG6ML/jrPTFv3jwVFRWpe/fueu2117Rjxw598803euqpp9SzZ0/t3r1baWlp2rp1q7KyspSRkaErr7xSUVFRGjRokFePFRMTo759++ruu+/Whg0blJmZqUWLFumFF17Q5ZdfblENT/F7i0p6erruuOMOPfvss+rRo4fmzJmj1NRUffvtt2rUqJG/i+dITr/uhlM5+Zuit61xdqqrXbuirBBMdXUaf7wnWrVqpU8++UQPP/yw7rzzTmVnZysuLk5du3bV/PnzFRkZqffee09z5szRwYMH1bhxY/Xp00cZGRlV+nxdtmyZpkyZotGjR+vXX39VixYt9PDDD+vmm2+2oHb/n8t4MyLHAj169FC3bt309NNPS5L7Spa33XabJk+efNr7enOZaAAVy84tsEX48EZ2boF6z1pfqtl90+T+jqlDZQVTXWvCsWPHlJmZqZYtW1br6r4o2+meX28+v/3a9XP8+HFt3brVYxBOSEiIBgwYoPfff9+PJQOCkxOb5O3WFWWlYKorUMKvXT85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pzFjxpi+ffuWuk+XLl1MeHi4adWqlVm4cGGp49rp9bOijk5/Dcvav0WLFh77vPzyy6Zt27YmPDzcdOzY0bz55ps1U6HfsaJ+kyZNcv99Nm7c2AwaNMhjDZKa5m0d+/bte9r9S1j9PnQZU047PwAAgJ8F/BgVAADgXAQVAABgWwQVAABgWwQVAABgWwQVAABgWwQVAABgWwQVAABgWwQVAPCxDRs2yOVy6dChQ/4uCuB4BBXAwa699lq5XC7NmjXLY/vrr78ul8vl/t0Yo+eee049e/ZUTEyM6tSpo44dO2rixImVvkDa0aNHNWXKFCUnJysyMlJxcXHq27ev3njjDfc+SUlJmjNnjk/qZrWS587lciksLEwtW7bUPffco2PHjnl1nH79+mnSpEke23r16qXs7GzFxsb6sMRAcCKoAA4XGRmp2bNn6+DBg2XebozRqFGjNGHCBA0aNEhr1qzR119/rX/961+KjIzUQw89VKnHufnmm7V8+XLNnTtX27dv1+rVq3XFFVfol19+8WV1atRFF12k7Oxs7d69W0888YQWLFigqVOnVvu44eHhatKkiUdYBFBFPl2QH0CNGjNmjLnkkktM+/btzd133+3evmLFClPy9l66dKmRZN54440yj1FcXFypx4qNjTWLFi0q9/ayrgtS4r333jPnn3++iYyMNM2aNTO33Xabyc/Pd9/+wgsvmK5du5o6deqYxo0bm6uuusrs37/ffXvJNUpWr15tunTpYiIjI03//v3N/v37zapVq0z79u1N3bp1zVVXXWWOHDlSqfqMGTPGDB061GPbsGHDzNlnn+3+PScnx4wcOdIkJCSYqKgo06lTJ/PSSy95HOP3dc7MzHSX97fXznr11VdNhw4dTHh4uGnRooV57LHHKlVOINjRogI4XGhoqB555BHNnTtX33//fanbly5dqnbt2unSSy8t8/6V/dbfpEkTrVq1SocPHy7z9uXLl6tZs2aaMWOGsrOzlZ2dLUnatWuXLrroIv3pT3/S559/rvT0dG3atEnjx4933/fEiROaOXOmPvvsM73++uvas2ePrr322lKPMW3aND399NPKyMjQvn37NHz4cM2ZM0cvvfSS3nzzTa1Zs0Zz586tVH1+78svv1RGRobCw8Pd244dO6auXbvqzTff1Jdffqkbb7xRV199tT766CNJ0pNPPqmePXvqhhtucNc5MTGx1LG3bt2q4cOHa+TIkfriiy80bdo0PfDAA1q0aFGVygoEFX8nJQBV99tWgfPOO89cd911xhjPFpX27dubSy+91ON+EydONNHR0SY6Oto0bdq0Uo/17rvvmmbNmpmwsDBz7rnnmkmTJplNmzZ57NOiRQvzxBNPeGz7y1/+Ym688UaPbe+9954JCQkxBQUFZT7Wli1bjCRz+PBhY8z/b1F5++233fukpaUZSWbXrl3ubTfddJNJTU2tVH3GjBljQkNDTXR0tImIiDCSTEhIiHn11VdPe7/BgwebO++80/173759zcSJEz32+X2LyqhRo8yFF17osc/dd99tOnToUKmyAsGMFhUgQMyePVuLFy/WN998U+G+999/v7Zt26YHH3xQ+fn5lTp+nz59tHv3bq1bt05XXHGFvvrqK11wwQWaOXPmae/32WefadGiRapTp477JzU1VcXFxcrMzJR0qsVhyJAhat68uerWrau+fftKkrKysjyOddZZZ7n/37hxY9WuXVutWrXy2Pbzzz9Xqj6S1L9/f23btk0ffvihxowZo7Fjx+pPf/qT+/aioiLNnDlTKSkpql+/vurUqaO33nqrVLkq8s0336h3794e23r37q0dO3aoqKjIq2MBwYagAgSIPn36KDU1VVOmTPHY3qZNG3377bce2+Li4tS6dWs1atTIq8cICwvTBRdcoHvvvVdr1qzRjBkzNHPmTB0/frzc++Tn5+umm27Stm3b3D+fffaZduzYoeTkZB05ckSpqamKiYnRiy++qC1btmjFihWSVOq4YWFh7v+XzNb5LZfLpeLi4krXJzo6Wq1bt1bnzp31/PPP68MPP9S//vUv9+1/+9vf9OSTT+ree+/VO++8o23btik1NfW09QXgW7X8XQAAvjNr1ix16dJF7dq1c2+76qqrNGrUKL3xxhsaOnSoTx+vQ4cOOnnypI4dO6bw8HCFh4eXaiE455xz9PXXX6t169ZlHuOLL77QL7/8olmzZrnHd3z88cc+LWdlhISE6L777tMdd9yhUaNGKSoqSps3b9bQoUP15z//WZJUXFys7777Th06dHDfr6w6/96ZZ56pzZs3e2zbvHmz2rZtq9DQUN9XBgggtKgAASQlJUWjR4/WU0895d42cuRIXXHFFRo5cqRmzJihDz/8UHv27NG7776r9PT0Sn9Q9uvXTwsWLNDWrVu1Z88erVq1Svfdd5/69++vmJgYSafWUdm4caN++OEH5eTkSJLuvfdeZWRkaPz48dq2bZt27NihN954wz2Ytnnz5goPD9fcuXO1e/durVy5ssLuJKtceeWVCg0N1bx58ySdao1au3atMjIy9M033+imm27S/v37Pe6TlJTkfk5zcnLKbNG58847tW7dOs2cOVPfffedFi9erKefflp33XVXjdQLcDKCChBgZsyY4fFh6XK5lJ6erjlz5mjVqlX64x//qHbt2um6665TYmKiNm3aVKnjpqamavHixRo4cKDOPPNM3XbbbUpNTdXLL7/s8dh79uxRcnKy4uLiJJ0aV/Luu+/qu+++0wUXXKCzzz5bDz74oBISEiSd6oZatGiRXnnlFXXo0EGzZs3SY4895sNnpPJq1aql8ePH69FHH9WRI0f017/+Veecc45SU1PVr18/NWnSRJdddpnHfe666y6FhoaqQ4cOiouLK3P8yjnnnKOXX35Zy5YtU6dOnfTggw9qxowZZc5sAuDJZYwx/i4EAABAWWhRAQAAtkVQASBJHtOHf//z3nvv+bt4XsnKyjptfbydXgzAf+j6ASBJp704YdOmTRUVFVWDpamekydPas+ePeXenpSUpFq1mPQIOAFBBQAA2BZdPwAAwLYIKgAAwLYIKgAAwLYIKgAAwLYIKgAAwLYIKgAAwLYIKgAAwLYIKgAAwLb+H5iIB0rB2/f5AAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_62.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAioAAAHHCAYAAACRAnNyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABE1klEQVR4nO3deXhTZd7/8U9a6MLSshUKWCj7viiLw6KAohUZREFZRcANRxAEdQQdZXEpzDiIDyL6c0ZgRkUU2WZEFEFEFmVHQFQolKKWpQoNSynY3r8/fJqH0BaStsk5Sd6v68oFOblz8r1z0pxv7u04jDFGAAAANhRmdQAAAACFIVEBAAC2RaICAABsi0QFAADYFokKAACwLRIVAABgWyQqAADAtkhUAACAbZGoAAAA2yJRAVBskyZNksPh8Kisw+HQpEmTfBpP165d1bVrV9vuD4DnSFSAIDJ37lw5HA7XrVSpUqpZs6aGDRumn376yerwbCcxMdHt/apataquu+46LV68uET2f/bsWU2aNElr1qwpkf0BoYhEBQhCU6ZM0b///W+9/vrr6tGjh95++2116dJF586d88nr/eUvf1FWVpZP9u1rrVu31r///W/9+9//1uOPP66ff/5Zffr00euvv17sfZ89e1aTJ08mUQGKoZTVAQAoeT169FDbtm0lSffff7+qVKmiadOmadmyZerXr1+Jv16pUqVUqlRgfp3UrFlTd999t+v+Pffco/r16+vll1/WQw89ZGFkACRaVICQcN1110mSUlJS3LZ/9913uvPOO1WpUiVFRUWpbdu2WrZsmVuZCxcuaPLkyWrQoIGioqJUuXJlde7cWStXrnSVKWiMSnZ2tsaOHau4uDiVL19et912m3788cd8sQ0bNkyJiYn5the0zzlz5uiGG25Q1apVFRkZqaZNm2r27NlevRdXEh8fryZNmujgwYOXLXfs2DHdd999qlatmqKiotSqVSvNmzfP9Xhqaqri4uIkSZMnT3Z1L/l6fA4QbALzJxAAr6SmpkqSKlas6Nq2Z88ederUSTVr1tT48eNVtmxZvf/++7r99tv14Ycf6o477pD0e8KQnJys+++/X+3bt5fT6dSWLVu0bds23XTTTYW+5v3336+3335bgwYNUseOHbV69Wr17NmzWPWYPXu2mjVrpttuu02lSpXSf/7zHz388MPKzc3VyJEji7XvPBcuXNDhw4dVuXLlQstkZWWpa9eu2r9/v0aNGqU6derogw8+0LBhw3Ty5EmNGTNGcXFxmj17tv70pz/pjjvuUJ8+fSRJLVu2LJE4gZBhAASNOXPmGEnms88+M8ePHzeHDx82CxcuNHFxcSYyMtIcPnzYVfbGG280LVq0MOfOnXNty83NNR07djQNGjRwbWvVqpXp2bPnZV934sSJ5uKvkx07dhhJ5uGHH3YrN2jQICPJTJw40bVt6NChpnbt2lfcpzHGnD17Nl+5pKQkU7duXbdtXbp0MV26dLlszMYYU7t2bXPzzTeb48ePm+PHj5udO3eaAQMGGEnmkUceKXR/M2bMMJLM22+/7dp2/vx506FDB1OuXDnjdDqNMcYcP348X30BeIeuHyAIde/eXXFxcUpISNCdd96psmXLatmyZbrqqqskSb/++qtWr16tfv366dSpU8rIyFBGRoZ++eUXJSUlad++fa5ZQhUqVNCePXu0b98+j19/+fLlkqTRo0e7bX/00UeLVa/o6GjX/zMzM5WRkaEuXbrowIEDyszMLNI+P/30U8XFxSkuLk6tWrXSBx98oCFDhmjatGmFPmf58uWKj4/XwIEDXdtKly6t0aNH6/Tp0/riiy+KFAuA/IImUVm7dq169eqlGjVqyOFwaMmSJT59vbz+84tvjRs39ulrAp6aNWuWVq5cqYULF+rWW29VRkaGIiMjXY/v379fxhg988wzrpN03m3ixImSfh+DIf0+g+jkyZNq2LChWrRooSeeeELffPPNZV//0KFDCgsLU7169dy2N2rUqFj1Wr9+vbp3766yZcuqQoUKiouL01NPPSVJRU5Urr32Wq1cuVKfffaZNmzYoIyMDP3rX/9yS4oudejQITVo0EBhYe5foU2aNHE9DqBkBM0YlTNnzqhVq1a69957XX3BvtasWTN99tlnrvuBOusBwad9+/auWT+33367OnfurEGDBun7779XuXLllJubK0l6/PHHlZSUVOA+6tevL0m6/vrrlZKSoqVLl+rTTz/VP/7xD7388st6/fXXdf/99xc71sIWisvJyXG7n5KSohtvvFGNGzfW9OnTlZCQoIiICC1fvlwvv/yyq07eqlKlirp3716k5wLwvaA5s/bo0UM9evQo9PHs7Gw9/fTTmj9/vk6ePKnmzZtr2rRpxVptslSpUoqP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GjXSW2+9paVLl+rtt99Wbm6uOnbsqB9//NHq0IrkpZde0unTp9WvXz9J/vseDfpEpSjWrFmjF198Ua+99pq2bdumRYsW6aOPPtJzzz1ndWglxpM69ujRQ3fddZdatmyppKQkLV++XCdPntT7779vYeSeeeWVV9SgQQM1btxYERERGjVqlIYPH37Fy4kHCk/qF8jHD7/jGAa2Dh066J577lHr1q3VpUsXLVq0SHFxcXrjjTesDs1r7777riZPnqz3339fVatW9etrl/Lrq1mgSpUqCg8P19GjR922Hz16VPHx8QU+55lnntGQIUN0//33S5JatGihM2fO6MEHH9TTTz9dpH36ki/qWNAJvUKFCmrYsKH2799f8pW4jKLULy4uTkuWLNG5c+f0yy+/qEaNGho/frzq1q1b5H36ii/qVxCrjl9RxMfHF/h+xMTEKDo6WuHh4bY5fkV1pToWJJCOoScKew8C5Rh6q3Tp0rr66qsD7vi99957uv/++/XBBx+4dfP463s0OH5eXkZERITatGmjVatWubbl5uZq1apV6tChQ4HPOXv2bL4TdXh4uCTJGFOkffqSL+pYkNOnTyslJUXVq1cvocg9U5z3OyoqSjVr1tRvv/2mDz/8UL179y72PkuaL+pXEKuOX1F06NDB7f2QpJUrV7reDzsdv6K6Uh0LEkjH0BNFeQ8CWU5Ojnbt2hVQx2/+/PkaPny45s+fr549e7o95re/wxIblmtj7733nomMjDRz58413377rXnwwQdNhQoVXNPEhgwZYsaPH+8qP3HiRFO+fHkzf/58c+DAAfPpp5+aevXqmX79+nm8T3/zRR0fe+wxs2bNGnPw4EGzfv160717d1OlShVz7Ngx29fvq6++Mh9++KFJSUkxa9euNTfccIOpU6eOOXHihMf79Cdf1M9Ox+/UqVNm+/btZvv27UaSmT59utm+fbs5dOiQMcaY8ePHmyFDhrjK503dfeKJJ8zevXvNrFmzCpyebJfjZ4xv6hjIx9AY4yrfpk0bM2jQILN9+3azZ88e1+Pr1683pUqVMi+99JLZu3evmThxomXTk31Rv8mTJ5tPPvnEpKSkmK1bt5oBAwaYqKgotzL+5G0d33nnHVOqVCkza9YstynWJ0+edJXxx99hSCQqxhgzc+ZMU6tWLRMREWHat29vvvrqK9djXbp0MUOHDnXdv3Dhgpk0aZKpV6+eiYqKMgkJCebhhx92OwlcaZ9WKOk69u/f31SvXt1ERESYmjVrmv79+5v9+/f7sUbuvKnfmjVrTJMmTUxkZKSpXLmyGTJkiPnpp5+82qe/lXT97HT8Pv/8cyMp3y2vTkOHDjVdunTJ95zWrVubiIgIU7duXTNnzpx8+7XT8fNFHQP9GBZUvnbt2m5l3n//fdOwYUMTERFhmjVrZj766CP/VOgSvqjfo48+6vp8VqtWzdx6661ua5D4m7d17NKly2XL5/H136HDmELa+QEAACwW9GNUAABA4CJRAQAAtkWiAgAAbItEBQAA2BaJCgAAsC0SFQAAYFskKgAAwLZIVACghK1Zs0YOh0MnT560OhQg4JGoAAFs2LBhcjgcmjp1qtv2JUuWyOFwuO4bY/Tmm2+qQ4cOiomJUbly5dSsWTONGTPG4wuknT17VhMmTFC9evUUFRWluLg4denSRUuXLnWVSUxM1IwZM0qkbr6W9945HA6VLl1aderU0Z///GedO3fOq/107dpVjz76qNu2jh07Kj09XbGxsSUYMRCaSFSAABcVFaVp06bpxIkTBT5ujNGgQYM0evRo3Xrrrfr000/17bff6p///KeioqL0/PPPe/Q6Dz30kBYtWqSZM2fqu+++04oVK3TnnXfql19+Kcnq+NUtt9yi9PR0HThwQC+//LLeeOMNTZw4sdj7jYiIUHx8vFuyCKCISnRBfgB+NXToUPPHP/7RNG7c2DzxxBOu7YsXLzZ5f97z5883kszSpUsL3Edubq5HrxUbG2vmzp1b6OMFXRckz5dffmk6d+5soqKizFVXXWUeeeQRc/r0adfj//rXv0ybNm1MuXLlTLVq1czAgQPN0aNHXY/nXaNkxYoVpnXr1iYqKsp069bNHD161Cxfvtw0btzYlC9f3gwcONCcOXPGo/oMHTrU9O7d221bnz59zNVXX+26n5GRYQYMGGBq1KhhoqOjTfPmzc27777rto9L63zw4EFXvBdfO2vhwoWmadOmJiIiwtSuXdu89NJLHsUJhDpaVIAAFx4erhdffFEzZ87Ujz/+mO/x+fPnq1GjRrrtttsKfL6nv/rj4+O1fPlynTp1qsDHFy1apKuuukpTpkxRenq60tPTJUkpKSm65ZZb1LdvX33zzTdasGCB1q1bp1GjRrmee+HCBT333HPauXOnlixZotTUVA0bNizfa0yaNEmvvvqqNmzYoMOHD6tfv36aMWOG3n33XX300Uf69NNPNXPmTI/qc6ndu3drw4YNioiIcG07d+6c2rRpo48++ki7d+/Wgw8+qCFDhmjTpk2SpFdeeUUdOnTQAw884KpzQkJCvn1v3bpV/fr104ABA7Rr1y5NmjRJzzzzjObOnVukWIGQYnWmBKDoLm4V+MMf/mDuvfdeY4x7i0rjxo3Nbbfd5va8MWPGmLJly5qyZcuamjVrevRaX3zxhbnqqqtM6dKlTdu2bc2jjz5q1q1b51amdu3a5uWXX3bbdt9995kHH3zQbduXX35pwsLCTFZWVoGvtXnzZiPJnDp1yhjzfy0qn332matMcnKykWRSUlJc20aMGGGSkpI8qs/QoUNNeHi4KVu2rImMjDSSTFhYmFm4cOFln9ezZ0/z2GOPue536dLFjBkzxq3MpS0qgwYNMjfddJNbmSeeeMI0bdrUo1iBUEaLChAkpk2bpnnz5mnv3r1XLPv0009rx44devbZZ3X69GmP9n/99dfrwIEDWrVqle68807t2bNH1113nZ577rnLPm/nzp2aO3euypUr57olJSUpNzdXBw8elPR7i0OvXr1Uq1YtlS9fXl26dJEkpaWlue2rZcuWrv9Xq1ZNZcqUUd26dd22HTt2zKP6SFK3bt20Y8cOff311xo6dKiGDx+uvn37uh7PycnRc889pxYtWqhSpUoqV66cPvnkk3xxXcnevXvVqVMnt22dOnXSvn37lJOT49W+gFBDogIEieuvv15JSUmaMGGC2/YGDRro+++/d9sWFxen+vXrq2rVql69RunSpXXdddfpySef1KeffqopU6boueee0/nz5wt9zunTpzVixAjt2LHDddu5c6f27dunevXq6cyZM0pKSlJMTIzeeecdbd68WYsXL5akfPstXbq06/95s3Uu5nA4lJub63F9ypYtq/r166tVq1Z666239PXXX+uf//yn6/G//e1veuWVV/Tkk0/q888/144dO5SUlHTZ+gIoWaWsDgBAyZk6dapat26tRo0aubYNHDhQgwYN0tKlS9W7d+8Sfb2mTZvqt99+07lz5xQREaGIiIh8LQTXXHONvv32W9WvX7/AfezatUu//PKLpk6d6hrfsWXLlhKN0xNhYWF66qmnNG7cOA0aNEjR0dFav369evfurbvvvluSlJubqx9++EFNmzZ1Pa+gOl+qSZMmWr9+vdu29evXq2HDhgoPDy/5ygBBhBYVIIi0aNFCgwcP1v/8z/+4tg0YMEB33nmnBgwYoClTpujrr79WamqqvvjiCy1YsMDjE2XXrl31xhtvaOvWrUpNTdXy5cv11FNPqVu3boqJiZH0+zoqa9eu1U8//aSMjAxJ0pNPPqkNGzZo1KhR2rFjh/bt26elS5e6BtPWqlVLERERmjlzpg4cOKBly5ZdsTvJV+666y6Fh4dr1qxZkn5vjVq5cqU2bNigvXv3asSIETp69KjbcxITE13vaUZGRoEtOo899phWrVql5557Tj/88IPmzZunV199VY8//rhf6gUEMhIVIMhMmTLF7WTpcDi0YMECzZgxQ8uXL9eNN96oRo0a6d5771VCQoLWrVvn0X6TkpI0b9483XzzzWrSpIkeeeQRJSUl6f3333d77dTUVNWrV09xcXGSfh9X8sUXX+iHH37Qddddp6uvvlrPPvusatSoIen3bqi5c+fqgw8+UNOmTTV16lS99NJLJfiOeK5UqVIaNWqU/vrXv+rMmTP6y1/+omuuuUZJSUnq2rWr4uPjdfvtt7s95/HHH1d4eLiaNm2quLi4AsevXHPNNXr//ff13nvvqXnz5nr22Wc1ZcqUAmc2AXDnMMYYq4MAAAAoCC0qAADAtkhUAEiS2/ThS29ffvml1eF5JS0t7bL18XZ6MQDr0PUDQJIue3HCmjVrKjo62o/RFM9vv/2m1NTUQh9PTExUqVJMegQCAYkKAACwLbp+AACAbZGoAAAA2yJRAQAAtkWiAgAAbItEBQAA2BaJCgAAsC0SFQAAYFskKgAAwLb+P9J7UhE56GFLAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_63.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_64.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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2HHT+je3jh074ueff4bRaDTp1Tp27Ji0Hag/iSSixuMcLSKyeUOGDEFERASWLVuGqqoqtGvXDkOGDMHKlStRXFxcJ/78+fPS///44w+Tba1bt0aXLl1w9erVep/vwQcfBAAsX77cpHzZsmV1Yjt37gy9Xo+ff/5ZKisuLq6zOruzszMAQAghlen1eqxevbreesjloYceQklJCTIyMqSy69evY8WKFWjdujWio6MBAO7u7gBgNpEkosZhjxYRKcKLL76IJ598Eunp6XjmmWeQmpqKQYMGISwsDE8//TQ6deqE0tJS5OTk4Ndff8WBAwcAAD169MCQIUPQt29ftG3bFvv27cOXX36JadOm1ftc4eHhGD16NP73f/8Xer0eAwYMQFZWFk6cOFEndtSoUXj55Zfx2GOP4YUXXsCVK1fw/vvvIyQkBPn5+VLc/fffD7VajUceeQRTpkzB5cuX8eGHH6Jdu3Zmk0U5TZ48GStXrsRTTz2FvLw8BAUF4csvv8Tu3buxbNky3HbbbQD+nLzfo0cPZGRkICQkBG3btkWvXr3Qq1evFq0vkaJZ+2uPRES1apd32Lt3b51tNTU1onPnzqJz587i+vXrQgghTp48KcaPHy/8/PxEq1atRPv27cXDDz8svvzyS2m/N954Q0RERAgvLy/h5uYmQkNDxcKFC0V1dbUUY24phsrKSvHCCy+I22+/XXh4eIhHHnlEnD171uxyB1u3bhW9evUSarVadOvWTXz22Wdmj7lp0yZx5513Co1GI4KCgsSbb74pVq1aJQCIoqIiKc6S5R1utnRFfccrLS0VEyZMEN7e3kKtVouwsDCxevXqOvtmZ2eLvn37CrVazaUeiJpAJcRf+rGJiIiIqNlwjhYRERGRTJhoEREREcmEiRYRERGRTJhoEREREcmEiRYRERGRTJhoEREREcmEC5ZakdFoxO+//47bbruNt7ogIiJSCCEELl26hICAgDo3Z78REy0r+v333xEYGGjtahAREVETnD17FnfccUeDMUy0rKj2Nhdnz56Fp6enlWtDREREjWEwGBAYGChdxxvCRMuKaocLPT09mWgREREpTGOm/XAyPBEREZFMmGgRERERyYSJFhEREZFMOEeLiIiIYDQaUV1dbe1q2Ay1Wn3TpRsag4kWERGRg6uurkZRURGMRqO1q2IznJycEBwcDLVafUvH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okVERES3qHZaifP/XyahpaaVpKamoqamBhEREfjqq69QWFiIo0ePYvny5YiKioKHhwdWrlyJjRs3YvLkyfj5559x6tQpfPzxx3jqqafwxBNPYOTIkbLWketoERER0S2L798B94T4tOi0kk6dOiE/Px8LFy7EjBkzUFxcDB8fH/Tt2xfvv/8+AOCJJ57Ajh07sHDhQgwePBhVVVXo2rUrXn31VSQmJsp+j0fO0bIiJc/RIiIi+9Acc7TsEedoEREREdk4JlpEREREMmGiRURERCQTJlpEREREMmGiRURERFZdPd0WNdf5YKJFRETkwJydnQH8eWs5+j+156P2/DQV19EiIiJyYC4uLnB3d8f58+fRqlUrk3sMOyqj0Yjz58/D3d0dLi63liox0SIiInJgKpUK/v7+KCoqwunTp61dHZvh5OSEDh063PKCpky0iIiIHJxarUbXrl05fPgXarW6WXr3mGgRERERnJycuDK8DDgQS0RERCQTJlpEREREMmGiRURERCQTJlpEREREMmGiRURERCQTJlpEREREMmGiRURERCQTJlpEREREMmGiRURERCQTJlpEREREMmGiRURERCQTJlpEREREMmGiRURERCQTJlpEREREMmGiRURERCQTJlpEREREMmGiRURERCQTJlpEREREMmGiRURERCQTJlpEREREMmGiRURERCQTJlpEREREMmGiRURERCQTJlpEREREMrF6opWamoqgoCBoNBpERkZiz549DcavX78eoaGh0Gg0CAsLQ2Zmpsl2IQTmzp0Lf39/uLm5ISYmBoWFhSYxCxcuxIABA+Du7g4vLy+zz6NSqeo81q5daxKzc+dO9OnTB66urujSpQvS09Mtbj8RERHZL6smWhkZGUhKSkJycjLy8/PRu3dv6HQ6nDt3zmx8dnY2Ro8ejYkTJ2L//v2Ii4tDXFwcDh06JMUsXrwYy5cvR1paGnJzc+Hh4QGdToeqqiopprq6Gk8++SSeffbZBuu3evVqFBcXS4+4uDhpW1FREWJjYzF06FAUFBQgMTERkyZNwnfffXdrJ4WIiIjsh7CiiIgIMXXqVOnnmpoaERAQIFJSUszGjxw5UsTGxpqURUZGiilTpgghhDAajcLPz08sWbJE2l5eXi5cXV3FmjVr6hxv9erVQqvVmn0uAOLrr7+ut+4vvfSS6Nmzp0lZfHy8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Imqs2ut2Y9Z8Z6JlRZcuXQIABAYGWrkmREREZKlLly5Bq9U2GMNb8FiR0WjE77//jttuuw0qlapZj20wGBAYGIizZ8/a5e197L19gP23ke1TPntvI9unfHK1UQiBS5cuISAgAE5ODc/CYo+WFTk5OeGOO+6Q9Tk8PT3t9gME2H/7APtvI9unfPbeRrZP+eRo4816smpxMjwRERGRTJhoEREREcmEiZadcnV1RXJyMlxdXa1dFVnYe/sA+28j26d89t5Gtk/5bKGNnAxPREREJBP2aBERERHJhIkWERERkUyYaBERERHJhIkWERERkUyYaClEamoqgoKCoNFoEBkZiT179jQYv2zZMnTr1g1ubm4IDAzE//zP/6CqquqWjim35m7jvHnzoFKpTB6hoaFyN6NelrTv2rVrWLBgATp37gyNRoPevXtjy5Ytt3RMuTV3+2zp9du1axceeeQRBAQEQKVS4ZtvvrnpPjt37kSfPn3g6uqKLl26ID09vU6MLb1+crRRya9hcXExxowZg5CQEDg5OSExMdFs3Pr16xEaGgqNRoOwsDBkZmY2f+UbQY72paen13n9NBqNPA1oBEvbuGHDBtx3333w8fGBp6cnoqKi8N1339WJk/tzyERLATIyMpCUlITk5GTk5+ejd+/e0Ol0OHfunNn4L774ArNmzUJycjKOHj2Kjz/+GBkZGXjllVeafEy5ydFGAOjZsyeKi4ulx48//tgSzanD0va99tprWLlyJVasWIEjR47gmWeewWOPPYb9+/c3+ZhykqN9gO28fhUVFejduzdSU1MbFV9UVITY2FgMHToUBQUFSExMxKRJk0x+ydvS6wfI00ZAua/h1atX4ePjg9deew29e/c2G5OdnY3Ro0dj4sSJ2L9/P+Li4hAXF4dDhw41Z9UbRY72AX+uqP7X1+/06dPNVWWLWdrGXbt24b777kNmZiby8vIwdOhQPPLIIy3/e1SQzYuIiBBTp06Vfq6pqREBAQEiJSXFbPzUqVPFvffea1KWlJQkBg4c2ORjyk2ONiYnJ4vevXvLUl9LWdo+f39/8d5775mUjRgxQowdO7bJx5STHO2zpdfvrwCIr7/+usGYl156SfTs2dOkLD4+Xuh0OulnW3r9btRcbVTya/hX0dHRYvr06XXKR44cKWJjY03KIiMjxZQpU26xhremudq3evVqodVq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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_65.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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OX//+9918uRJLV68WK1atXJu/+yzz85b/9rWunVrbdy4UQ6Hw6U3avv27c79UvUBEUDNMScKgFf1799fvXr10ksvvaQTJ06oefPm6t+/v15//XUVFhZWKv/TTz85/3/w4EGXfY0bN1a7du108uTJau/vhhtukCS98sorLttfeumlSmXbtm0ru92ujRs3OrcVFhZWWjU8MDBQkmSMcW6z2+166623qq2Hp9x4440qKipSbm6uc9uZM2c0a9YsNW7cWP369ZMkNWrUSJKqDIkAaoaeKABe9/vf/1633367cnJydPfdd2v27Nm66qqrlJKSorvuuktt2rRRcXGx8vLy9MMPP+jrr7+WJHXq1En9+/dXjx491LRpU/3rX//Se++9p3vvvbfa++rWrZsyMzP1P//zP7Lb7erdu7eWL1+unTt3Vio7YsQIPfLII7rlllt0//336/jx43rttdeUnJysdevWOctdf/31CgkJ0U033aSJEyfq6NGj+tOf/qTmzZtXGQQ9acKECXr99dc1duxYFRQUKDExUe+9955Wr16tl156SU2aNJH0y0T4Tp06KTc3V8nJyWratKm6dOmiLl261Gl9Ab/m7dMDATQMFUscrF27ttK+8vJy07ZtW9O2bVtz5swZY4wxu3btMnfccYeJi4szwcHBpmXLluY3v/mNee+995y3+8Mf/mB69eploqOjTXh4uOnYsaN55plnzKlTp5xlqlqOoKyszNx///3m4osvNhEREeamm24y+/btq/KU/08//dR06dLFhISEmA4dOpi33367ymMuXrzYXHbZZSYsLMwkJiaaZ5991rz55ptGktm9e7eznDtLHJxv+YbqjldcXGzGjRtnmjVrZkJCQkxKSop56623Kt12zZo1pkePHiYkJITlDgALbMb8qv8ZAAAANcKcKAAAAAsIUQAAABYQogAAACwgRAEAAFhAiAIAALCAEAUAAGABi216kMPh0I8//qgmTZpwiQUAAPyEMUZHjhxRixYtKl3M+9cIUR70448/KiEhwdvVAAAAFuzbt0+XXHJJtfsJUR5UcXmFffv2KTIy0su1AQAANVFaWqqEhATn53h1CFEeVDGEFxkZSYgCAMDPnG8qDhPLAQAALCBEAQAAWECIAgAAsIA5UV5WXl6u06dPe7safiM4OFiBgYHergYAAIQobzHGqKioSIcPH/Z2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aHjPVt6uFoA6Rk8UALih0F7mDFCS5DDSows30yMFNECEKABww+6SY84AVaHcGO0pOe6dCgHwGkIUALghqVmEAmyu2wJtNiU2a+SdCgHwGkIUALghPipc04emKND2S5IKtNn0x6FdFB8V7uWaAahrTCwHADcN79lKfZNjtKfkuBKbNSJAAQ0UIQoALIiPCic8AQ0cw3kAAAAWEKIAAAAsIEQ1AKysDABA7WNOVD3HysoAAHgGPVH1GCsrAwDgOYSoeoyVlQEA8BxCVD3GysoAAHgOIaoeY2VlAAA8h4nl9RwrKwMA4BmEqAaAlZUBAKh9bg3nnT59Wg8//LDatWunXr166c0333TZX1xcrMDAwFqtIAAAgC9yK0Q988wz+utf/6q7775b119/vSZPnqyJEye6lDHGVHNrAACA+sOt4bx33nlHf/7zn/Wb3/xGkjR27FjdcMMNGjdunLNXymaznesQAAAA9YJbPVH79+9Xly5dnL+3a9dOn3/+udasWaPRo0ervLy81isIAADgi9wKUXFxcdq1a5fLtpYtW+qzzz7T2rVrNXbs2NqsG7yEa+0BAHB+boWoa665Ru+++26l7S1atNCKFSu0e/fuWqsYvCN37V71mbFCI/+Urz4zVih37V5vVwkAAJ/k1pyoJ554Qtu3b69yX8uWLfXFF19o2bJltVIx1L3qrrXXNzmGJRIAADiLWyGqdevWat26dbX7W7RooTFjxlxwpeAd57rWHiEKAABXli77smDBAg0dOlRdunRRly5dNHToUL333nu1XTfUMa61BwBAzbkVohwOh4YPH67hw4dr69atateundq1a6ctW7Zo+PDhGjFiBOtE+TGutQcAQM25NZz38ssv6x//+IcWL17sXCuqwuLFizVu3Di9/PLLmjRpUm3WEXWIa+0BAFAzNuNG19Fll12mSZMm6be//W2V+9944w29/PLL2rhxY61V0J+VlpYqKipKdrtdkZGR3q4OAACogZp+frs1nLdjxw6lp6dXuz89PV07duxw55AAAAB+ya0QFR4ersOHD1e7v7S0VGFhYRdaJwAAAJ/nVohKS0vTa6+9Vu3+2bNnKy0t7YIrBQAA4OvcClGPPfaY3njjDQ0bNkxfffWVSktLZbfb9eWXX+r222/Xm2++qccee8ztSsyePVuJiYkKCwtTamqqvvrqq3OWX7BggTp2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NklJSaasrMxZZuDAgaZ79+4mPz/frFq1yrRv395kZmY69x8+fNjExsaa0aNHm82bN5t58+aZRo0amddff73GbbPb7UaSsdvtF/IQAQCAOlTTz2+vhyhjjJk1a5Zp1aqVCQkJMb169TJffvmlc1+/fv3MmDFjXMrPnz/fJCcnm5CQENO5c2fz8ccfu+x3OBzmiSeeMLGxsSY0NNRce+215ptvvnEpc/DgQZOZmWkaN25sIiMjzbhx48yRI0dcynz99dfmqquuMqGhoaZly5ZmxowZbrWLEAUAgP+p6ee319eJqs9YJwoAAP9T089vzs4DAACwgBAFAABgASEKAADAAkIUAACABYQoAAAACwhRAAAAFhCiAAAALCBEAQAAWODVCxDXdxXrmJaWlnq5JgAAoKYqPrfPtx45IcqDjhw5IklKSEjwck0AAIC7jhw5oqioqGr3c9kXD3I4HPrxxx/VpEkT2Wy2WjtuaWmpEhIStG/fvnp5OZn63j6p/rexvrdPqv9tpH3+r7630ZPtM8boyJEjatGihQICqp/5RE+UBwUEBOiSSy7x2PEjIyPr5RujQn1vn1T/21jf2yfV/zbSPv9X39voqfadqweqAhPLAQAALCBEAQAAWECI8kOhoaHKzs5WaGiot6viEfW9fVL9b2N9b59U/9tI+/xffW+jL7SPieUAAAAW0BMFAABgASEKAADAAkIUAACABYQoAAAACwhRPmL27NlKTExUWFiYUlNT9dVXX52z/EsvvaQOHTooPDxcCQkJ+q//+i+dOHHigo7pSbXdvieffFI2m83lp2PHjp5uRrXcad/p06c1bdo0tW3bVmFhYeratauWLl16QcesC7XdRl96DleuXKmbbrpJLVq0kM1m04cffnje23z++ee6/PLLFRoaqnbt2iknJ6dSGV95Dj3RPn9+/goLCzVy5EglJycrICBAkyZNqrLcggUL1LFjR4WFhSklJUVLliyp/crXkCfamJOTU+k5DAsL80wDzsPd9i1cuFDXXXedYmJiFBkZqbS0NH3yySeVynn6PUiI8gG5ubmaPHmysrOztW7dOnXt2lUZGRk6cOBAleXfffddZWVlKTs7W9u2bdMbb7yh3NxcPfroo5aP6UmeaJ8kde7cWYWFhc6fVatW1UVzKnG3fY8//rhef/11zZo1S1u3btXdd9+tW265RevXr7d8TE/zRBsl33kOjx07pq5du2r27Nk1Kr97924NGjRIAwYM0IYNGzRp0iTdeeedLn/Efek59ET7JP99/k6ePKmYmBg9/vjj6tq1a5Vl1qxZo8zMTI0fP17r16/XkCFDNGTIEG3evLk2q15jnmij9Mtq379+Dr///vvaqrJb3G3fypUrdd1112nJkiUqKCjQgAEDdNNNN9X931EDr+vVq5e55557nL+Xl5ebFi1amOnTp1dZ/p577jHXXHONy7bJkyebPn36WD6mJ3mifdnZ2aZr164eqa+73G1ffHy8efXVV122DR061IwaNcryMT3NE230pefw1ySZDz744JxlHn74YdO5c2eXbcOHDzcZGRnO333tOaxQW+3z5+fv1/r162ceeOCBStuHDRtmBg0a5LItNTXVTJw48QJreOFqq41vvfWWiYqKqrV61RZ321ehU6dO5qmnnnL+XhfvQXqivOzUqVMqKChQenq6c1tAQIDS09OVl5dX5W169+6tgoICZ7fkd999pyVLlujGG2+0fExP8UT7KuzYsUMtWrRQmzZtNGrUKO3du9dzDamGlfadPHmyUpd5eHi481u8Lz1/VutzvjZW8IXn0Iq8vDyXx0OSMjIynI+Hrz2H7jpf+yr46/NXEzV9DPzd0aNH1bp1ayUkJGjw4MHasmWLt6tkicPh0JEjR9S0aVNJdfceJER5WUlJicrLyxUbG+uyPTY2VkVFRVXeZuTIkZo2bZquuuoqBQcHq23bturfv79zuMvKMT3FE+2TpNTUVOXk5Gjp0qV67bXXtHv3bl199dU6cuSIR9tzNivty8jI0AsvvKAdO3bI4XBo2bJlWrhwoQoLCy0f05M80UbJd55DK4qKiqp8PEpLS1VWVuZzz6G7ztc+yb+fv5qo7jHwh+evpjp06KA333xTixYt0ttvvy2Hw6HevXvrhx9+8HbV3DZz5kwdPXpUw4YNk1R3f0cJUX7o888/1x//+Ef9z//8j9atW6eFCxfq448/1tNPP+3tqtWKmrTvhhtu0O23367LLrtMGRkZWrJkiQ4fPqz58+d7seY18/LLL6t9+/bq2LGjQkJCdO+992rcuHEKCKg/b8eatNGfn0Pw/NUHaWlpuuOOO9StWzf169dPCxcuVExMjF5//XVvV80t7777rp566inNnz9fzZs3r9P7DqrTe0MlzZo1U2BgoIqLi122FxcXKy4ursrbPPHEExo9erTuvPNOSVJKSoqOHTumCRMm6LHHHrN0TE/xRPuqChvR0dFKTk7Wzp07a78R52ClfTExMfrwww914sQJHTx4UC1atFBWVpbatGlj+Zie5Ik2VsVbz6EVcXFxVT4ekZGRCg8PV2BgoE89h+46X/uq4k/PX01U9xj4w/NnVXBwsLp37+5Xz+G8efN05513asGCBS5Dd3X1d7T+fPX1UyEhIerRo4eWL1/u3OZwOLR8+XKlpaVVeZvjx49XChKBgYGSJGOMpWN6iifaV5WjR49q165dio+Pr6Wa18yFPNZhYWFq2bKlzpw5o/fff1+DBw++4GN6gifaWBVvPYdWpKWluTwekrRs2TLn4+Frz6G7zte+qvjT81cTVh4Df1deXq5Nmzb5zXM4d+5cjRs3TnPnztWgQYNc9tXZe7DWpqjDsnnz5pnQ0FCTk5Njtm7daiZMmGCio6NNUVGRMcaY0aNHm6ysLGf57Oxs06RJEzN37lzz3XffmU8//dS0bdvWDBs2rMbH9Pf2Pfjgg+bzzz83u3fvNqtXrzbp6emmWbNm5sCBAz7fvi+//NK8//77ZteuXWblypXmmmuuMUlJSebnn3+u8THrmifa6EvP4ZEjR8z69evN+vXrjSTzwgsvmPXr15vvv//eGGNMVlaWGT16tLP8d999Zxo1amR+//vfm23btpnZs2ebwMBAs3TpUmcZX3oOPdE+f37+jDHO8j169DAjR44069evN1u2bHHuX716tQkKCjIzZ84027ZtM9nZ2SY4ONhs2rSpTttWwRNtfOqpp8wnn3xidu3aZQoKCsyIESNMWFiYS5m64m773nnnHRMUFGRmz55tCgsLnT+HDx92lqmL9yAhykfMmjXLtGrVyoSEhJhevXqZL7/80rmvX79+ZsyYMc7fT58+bZ588knTtm1bExYWZhISEszvfvc7lw+o8x2zrtV2+4YPH27i4+NNSEiIadmypRk+fLjZuXNnHbbIlTvt+/zzz82ll15qQkNDzcUXX2xGjx5t9u/f79YxvaG22+hLz+Fnn31mJFX6qWjTmDFjTL9+/Srdplu3biYkJMS0adPGvPXWW5WO6yvPoSfa5+/PX1XlW7du7VJm/vz5Jjk52YSEhJjOnTubjz/+uG4aVAVPtHHSpEnO12dsbKy58cYbzbp16+quUb/ibvv69et3zvIVPP0etBlTzfgIAAAAqsWcKAAAAAsIUQAAABYQogAAACwgRAEAAFhAiAIAALCAEAUAAGABIQoAAMACQhQANCCff/65bDabDh8+7O2qAH6PEAXAI8aOHSubzaYZM2a4bP/www9ls9mcvxtj9Kc//UlpaWmKjIxU48aN1blzZz3wwAM1vhDq8ePHNWXKFLVt21ZhYWGKiYlRv379tGjRImeZxMREvfTSS7XSNk+reOxsNpuCg4OVlJSkhx9+WCdOnHDrOP3799ekSZNctvXu3VuFhYWKioqqxRoDDRMhCoDHhIWF6dlnn9XPP/9c5X5jjEaOHKn7779fN954oz799FNt3bpVb7zxhsLCwvSHP/yhRvdz9913a+HChZo1a5a2b9+upUuX6rbbbtPBgwdrszl1auDAgSosLNR3332nF198Ua+//rqys7Mv+LghISGKi4tzCbIALKrVi8gAwP83ZswY85vf/MZ07NjR/P73v3du/+CDD0zFn565c+caSWbRokVVHsPhcNTovqKiokxOTk61+6u6zlaFf/7zn+aqq64yYWFh5pJLLjH33XefOXr0qHP/X//6V9OjRw/TuHFjExsbazIzM01xcbFzf8U1v5YuXWq6detmwsLCzIABA0xxcbFZsmSJ6dixo2nSpInJzMw0x44dq1F7xowZYwYPHuyybejQoaZ79+7O30tKSsyIESNMixYtTHh4uOnSpYt59913XY5xdpt3797trO+vr0X53nvvmU6dOpmQkBDTunVrM3PmzBrVE2jo6IkC4DGBgYH64x//qFmzZumHH36otH/u3Lnq0KGDbr755ipvX9Pekri4OC1ZskRHjhypcv/ChQt1ySWXaNq0aSosLFRhYaEkadeuXRo4cKBuvfVWbdy4Ubm5uVq1apXuvfde521Pnz6tp59+Wl9//bU+/PBD7dmzR2PHjq10H08++aReffVVrVmzRvv27dOwYcP00ksv6d1339XHH3+sTz/9VLNmzapRe862efNmrVmzRiEhIc5tJ06cUI8ePfTxxx9r8+bNmjBhgkaPHq2vvvpKkvTyyy8rLS1Nd911l7PNCQkJlY5dUFCgYcOGacSIEdq0aZOefPJJPfHEE8rJybFUV6BB8XaKA1A//bo35corrzS//e1vjTGuPVEdO3Y0N998s8vtHnjgARMREWEiIiJMy5Yta3RfX3zxhbnkkktMcHCwueKKK8ykSZPMqlWrXMq0bt3avPjiiy7bxo8fbyZMmOCy7Z///KcJCAgwZWVlVd7X2rVrjSRz5MgRY8y/e6L+8Y9/OMtMnz7dSDK7du1ybps4caLJyMioUXvGjBljAgMDTUREhAkNDTWSTEBAgHnvvffOebtBgwaZBx980Pl7v379zAMPPOBS5uyeqJEjR5rrrrvOpczvf/9706lTpxrVFWjI6IkC4HHPPvus/vKXv2jbtm3nLfvYY49pw4YNmjp1qo4ePVqj4/ft21ffffedli9frttuu01btmzR1Vdfraeffvqct/v666+Vk5Ojxo0bO38yMjLkcDi0e/duSb/01Nx0001q1aqVmjRpon79+kmS9u7d63Ksyy67zPn/2NhYNWrUSG3atHHZduDAgRq1R5IGDBigDRs2KD8/X2PGjNG4ceN06623OveXl5fr6aefVkpKipo2barGjRvrk08+qVSv89m2bZv69Onjsq1Pnz7asWOHysvL3ToW0NAQogB4XN++fZWRkaEpU6a4bG/fvr2++eYbl20xMTFq166dmjdv7tZ9BAcH6+qrr9YjjzyiTz/9VNOmTdPTTz+tU6dOVXubo0ePauLEidqwYYPz5+uvv9aOHTvUtm1bHTt2TBkZGYqMjNQ777yjtWvX6oMPPpCkSscNDg52/r/irLpfs9lscjgcNW5PRESE2rVrp65du+rNN99Ufn6+3njjDef+559/Xi+//LIeeeQRffbZZ9qwYYMyMjLO2V4AtSvI2xUA0DDMmDFD3bp1U4cOHZzbMjMzNXLkSC1atEiDBw+u1fvr1KmTzpw5oxMnTigkJEQhISGVelYuv/xybd26Ve3atavyGJs2bdLBgwc1Y8YM53yif/3rX7Vaz5oICAjQo48+qsmTJ2vkyJEKDw/X6tWrNXjwYP3Hf/yHJMnhcOjbb79Vp06dnLerqs1nu/TSS7V69WqXbatXr1ZycrICAwNrvzFAPUJPFIA6kZKSolGjRumVV15xbhsxYoRuu+02jRgxQtOmTVN+fr727NmjL774Qrm5uTX+EO/fv79ef/11FRQUaM+ePVqyZIkeffRRDRgwQJGRkZJ+WSdq5cqV2r9/v0pKSiRJjzzyiNasWaN7771XGzZs0I4dO7Ro0SLnxPJWrVopJCREs2bN0nfffafFixefd4jQU26//XYFBgZq9uzZkn7pxVu2bJnWrFmjbdu2aeLEiSouLna5TWJiovMxLSkpqbIn7MEHH9Ty5cv19NNP69tvv9Vf/vIXvfrqq3rooYfqpF2APyNEAagz06ZNc/kgt9lsys3N1UsvvaQlS5bo2muvVYcOHfTb3/5WCQkJWrVqVY2Om5GRob/85S+6/vrrdemll+q+++5TRkaG5s+f73Lfe/bsUdu2bRUTEyPpl3lMX3zxhb799ltdffXV6t69u6ZOnaoWLVpI+mVoMScnRwsWLFCnTp00Y8YMzZw5sxYfkZoLCgrSvffeq+eee07Hjh3T448/rssvv1wZGRnq37+/4uLiNGTIEJfbPPTQQwoMDFSnTp0UExNT5Xypyy+/XPPnz9e8efPUpUsXTZ06VdOmTavyDEQArmzGGOPtSgAAAPgbeqIAAAAsIEQB8Hm/XoLg7J9//vOf3q6eW/bu3XvO9ri7RAEA72E4D4DPO9eFiFu2bKnw8PA6rM2FOXPmjPbs2VPt/sTERAUFceI04A8IUQAAABYwnAcAAGABIQoAAMACQhQAAIAFhCgAAAALCFEAAAAWEKIAAAAsIEQBAABYQIgCAACw4P8BM3z29WDGu3IAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_66.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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w4cPV1tu7YX529/+ppMnT+rll19Wu3btPMtfe+2109bf39q3b69//etfqqys9OpF+uijjzzPS7WHPwD1xxwkAAEzYMAA9enTR3PnztWJEyfUpk0bDRgwQI8//rgKCwurlT906JDn31999ZXXcy1btlTHjh118uTJWt/vZz/7mSRp3rx5Xsvnzp1brWyHDh1UWlqqf/3rX55lhYWF1a5mHR4eLkkyxniWlZaWavHixbXWI1CuvPJKFRUVafny5Z5l3333nebPn6+WLVsqKytLktSiRQtJqjEAAqgfepAABNTdd9+tG2+8UUuWLNHtt9+uhQsXqn///urevbvGjBmj8847T8XFxdqyZYs+//xzvfvuu5Kkrl27asCAAerZs6dat26td955R88//7zGjRtX63ulp6dr2LBh+vOf/6zS0lL169dPGzdu1CeffFKt7NChQ3XPPffouuuu05133qljx47pscceU+fOnbVjxw5PuZ/+9KeKiIjQ1Vdfrdtuu01Hjx7Vk08+qTZt2tQY8gJp7Nixevzxx3XLLbdo+/btSk1N1fPPP6+33npLc+fO1VlnnSXp+0nlXbt21fLly9W5c2e1bt1a3bp1U7du3Rq1voCjBfs0OgDOV3Wa/7Zt26o9V1FRYTp06GA6dOhgvvvuO2OMMXv37jUjRowwiYmJpnnz5qZt27bmqquuMs8//7zndQ888IDp06ePadWqlYmKijJdunQxv/vd78ypU6c8ZWo6Jf/48ePmzjvvNOecc46Jjo42V199tTlw4ECNp72vX7/edOvWzURERJjzzz/fPPPMMzWu8+WXXzYXXXSRcbvdJjU11Tz44IPmqaeeMpJMQUGBp5wvp/mf7hIGta2vuLjYjBo1ysTFxZmIiAjTvXt3s3jx4mqv3bx5s+nZs6eJiIjglH+gAVzG/KDfGAAAAMxBAgAAsCIgAQAAWBCQAAAALAhIAAAAFgQkAAAACwISAACABReKbKDKykp9+eWXOuuss7isPwAADmGM0ZEjR5ScnFztxs8/REBqoC+//FIpKSnBrgYAAGiAAwcO6Nxzz631eQJSA1Vd0v/AgQOKiYkJcm0AAEB9lJWVKSUlxXMcrw0BqYGqhtViYmIISAAAOMzppscwSRsAAMCCgAQAAGBBQAIAALBgDhIAAE1AZWWlTp06FexqBF3z5s0VHh5+xushIAEA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1erWrZunzOTJk1VeXq6xY8fq8OHD6t+/v9atWye3293o7QMAAM4T9OsgORXXQQIAwHkccR0kAAAAOyIgAQAAWBCQAMCisPS4Nu8tUWHp8WBXBUCQBH2SNgDYyfJt+zV11XuqNFKYS8of3F15vdud/oUAmhR6kADgPwpLj3vCkSRVGmnaqt30JAEhiIAEAP9RUFLuCUdVKozRvpJjwakQgKAhIAHAf6TFRSvM5b0s3OVSalyL4FQIQNAQkADgP5Jio5Q/uLvCXd+npHCXS78f3E1JsVFBrhmAxsYkbQD4gbze7XR553jtKzmm1LgWhCMgRBGQAMAiKTaKYASEOIbYAAAALAhIAAAAFgQkAAAACwISAACABQEJAADAgoAEAABgQUACAACwICABAABYEJAAAAAsCEgAAAAWBCQAAAALAhIAAIAFAQkAAMCCgAQAAGBBQAIAALAgIAEAAFgQkAAAACwISAAAABYEJAAAAAsCEgAAgAUBCQAAwIKABAAAYEFAAgAAsCAgAQAAWBCQAAAALAhIAAAAFgQkAAAACwISAACABQEJAADAgoAEAABgQUACAACwICABAABYEJAAAAAsCEgAAAAWBCQAAAALAhIAAIAFAQkAAMCCgAQAAGBBQAIAALAgIAEAAFgQkAAAACwISAAAABYEJAAAAAsCEgAAgAUBCQAAwIKABAAAYEFAAgAAsCAgAQAAWBCQAAAALAhIAAAAFgQkAAAACwISAACABQEJAADAgoAEAABgQUACAACwICABAABY2CIgLVy4UKmpqXK73crIyNDbb79dZ/mVK1eqS5cucrvd6t69u9auXev1vDFGM2fOVFJSkqKiopSdna09e/Z4lbnmmmvUrl07ud1uJSUl6eabb9aXX37p97aFmsLS49q8t0SFpceDXRUAABos6AFp+fLlmjhxombNmqUdO3aoR48eysnJ0cGDB2ssv3nzZg0bNkyjR4/Wzp07lZubq9zcXO3evdtT5qGHHtK8efO0aNEibd26VdHR0crJydGJEyc8ZQYOHKgVK1bo448/1gsvvKC9e/fqhhtuCHh7m7Ll2/br0jmvaviTW3XpnFe1fNv+YFcJAIAGcRljTDArkJGRod69e2vBggWSpMrKSqWkpOiOO+7QlClTqpXPy8tTeXm51qxZ41nWt29fpaena9GiRTLGKDk5WXfddZcmTZok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AQAAvjpy5IhiY2NrfZ57sTVQZWWlvvzyS5111llyuVx+W29ZWZlSUlJ04MCBJnuPt6beRtrnfE29jU29fVLTbyPtazhjjI4cOaLk5GSFhdU+04gepAYKCwvTueeeG7D1x8TENMk/+h9q6m2kfc7X1NvY1NsnNf020r6GqavnqAqTtAEAACwISAAAABYEJJuJjIzUrFmzFBkZGeyqBExTbyPtc76m3sam3j6p6beR9gUek7QBAAAs6EECAACwICABAABYEJAAAAAsCEgAAAAWBKRGsHDhQqWmpsrtdisjI0Nvv/12neXnzp2r888/X1FRUUpJSdFvfvMbnThx4ozWGUj+bt+9994rl8vl9ejSpUugm1EnX9r47bffavbs2erQoYPcbrd69OihdevWndE6A83f7bPTNnzjjTd09dVXKzk5WS6XS6tXrz7tazZt2qRLLrlEkZGR6tixo5YsWVKtjF22XyDaZ6ftJ/nexsLCQg0fPlydO3dWWFiYJkyYUGO5lStXqkuXLnK73erevbvWrl3r/8rXQyDat2TJkmrb0O12B6YBp+Fr+1atWqWf/OQnio+PV0xMjDIzM/X3v/+9WrmA/x80CKhly5aZiIgI89RTT5n333/fjBkzxrRq1coUFxfXWP7ZZ581kZGR5tlnnzUFBQXm73//u0lKSjK/+c1vGrzOQApE+2bNmmUuvPBCU1hY6HkcOnSosZpUja9tnDx5sklOTjavvPKK2bt3r/nzn/9s3G632bFjR4PXGUiBaJ+dtuHatWvNb3/7W7Nq1Sojybz44ot1lv/0009NixYtzMSJE80HH3xg5s+fb8LDw826des8Zey0/QLRPjttP2N8b2NBQYG58847zdNPP23S09PN+PHjq5V56623THh4uHnooYfMBx98YKZPn26aN29u3nvvvcA0og6BaN/ixYtNTEyM1zYsKioKTANOw9f2jR8/3jz44IPm7bffNv/+97/N1KlTTfPmzRt9H0pACrA+ffqYX//6157fKyoqTHJyssnPz6+x/K9//Wvzox/9yGvZxIkTzaWXXtrgdQZSINo3a9Ys06NHj4DUtyF8bWNSUpJZsGCB17LBgwebm266qcHrDKRAtM9u27BKfXbOkydPNhdeeKHXsry8PJOTk+P53U7b74f81T67bj9j6tfGH8rKyqoxQAwZMsQMGjTIa1lGRoa5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xRVXqLCwUJ9++qkeffRRPf7445o1a9YZrzciIkKJiYleIRVAA/n1xiUAQsLIkSPNVVddZbp06WLuvvtuz/IXX3zRVO1WnnvuOSPJvPTSSzWuo7Kysl7vFRsba5YsWVLr8zXdt6nKP/7xD9O/f3/jdrvNueeea+644w5z9OhRz/P/7//9P9OzZ0/TsmVLk5CQYIYNG2aKi4s9z1fdQ2rdunUmPT3duN1uM3DgQFNcXGzWrl1runTpYs466ywzbNgwU15eXq/2jBw50lx77bVeywYPHmwuvvhiz+8lJSVm6NChJjk52URFRZlu3bqZpUuXeq3D2uaCggJPfX94b8Pnn3/edO3a1URERJj27dubhx9+uF71BEIdPUgAGiQ8PFy///3vNX/+fH3++efVnn/uued0/vnn65prrqnx9fXt5UhMTNTatWt15MiRGp9ftWqVzj33XM2ePVuFhYUqLCyUJO3du1dXXHGFrr/+ev3rX//S8uXL9eabb2rcuHGe13777be6//779e6772r16tXat2+fbrnllmrvce+992rBggXavHmzDhw4oCFDhmju3LlaunSpXnnlFa1fv17z58+vV3usdu/erc2bNysiIsKz7MSJE+rZs6deeeUV7d69W2PHjtXNN9+st99+W5L0pz/9SZmZmRozZoynzSkpKdXWvX37dg0ZMkRDhw7Ve++9p3vvvVczZszQkiVLGlRXIKQEO6EBcJ4f9oL07dvX/OIXvzDGePcgdenSxVxzzTVerxs/fryJjo420dHRpm3btvV6r9dff92ce+65pnnz5qZXr15mwoQJ5s033/Qq0759e/Poo496LRs9erQZO3as17J//OMfJiwszBw/frzG99q2bZuRZI4cOWKM+W8P0v/93/95yuTn5xtJZu/evZ5lt912m8nJyalXe0aOHGnCw8NNdHS0iYyMNJJMWFiYef755+t83aBBg8xdd93l+T0rK8uMHz/eq4y1B2n48OHmJz/5iVeZu+++23Tt2rVedQVCGT1IAM7Igw8+qKeffloffvjhacv+9re/1a5duzRz5kwdPXq0Xuu//PLL9emnn2rjxo264YYb9P777+uyyy7T/fffX+fr3n33XS1ZskQtW7b0PHJyclRZWamCggJJ3/ewXH311WrXrp3OOussZWVlSZL279/vta6LLrrI8++EhAS1aNFC5513nteygwcP1qs9kjRw4EDt2rVLW7du1ciRIzVq1Chdf/31nucrKip0//33q3v37mrdurVatmypv//979XqdToffvihLr30Uq9ll156qfbs2aOKigqf1gWEGgISgDNy+eWXKycnR1OnTvVa3qlTJ3388cdey+Lj49WxY0e1adPGp/do3ry5LrvsMt1zzz1av369Zs+erfvvv1+nTp2q9TVHjx7Vbbfdpl27dnke7777rvbs2aMOHTqovLxcOTk5iomJ0bPPPqtt27bpxRdflKRq623evLnn31Vnn/2Qy+VSZWVlvdsTHR2tjh07qkePHnrqqae0detW/c///I/n+T/84Q/605/+pHvuuUevvfaadu3apZycnDrbC8C/mgW7AgCcb86cOUpPT9f555/vWTZs2DANHz5cL730kq699lq/vl/Xrl313Xff6cSJE4qIiFBERES1HpFLLrlEH3zwgTp27FjjOt577z199dVXmjNnjmf+zjvvvOPXetZHWFiYpk2bpokTJ2r48OGKiorSW2+9pWuvvVY///nPJUmVlZX697//ra5du3peV1ObrS644AK99dZbXsveeustde7cWeHh4f5vDNCE0IME4Ix1795dN910k+bNm+dZNnToUN1www0aOnSoZs+era1bt2rfvn16/fXXtXz58nofoAcMGKDHH39c27dv1759+7R27VpNmzZNAwcOVExMjKTvr4P0xhtv6IsvvlBJSYkk6Z577tHmzZs1btw47dq1S3v27NFLL73kmaTdrl07RUREaP78+fr000/18ssvn3bYLlBuvPFGhYeHa+HChZK+733bsGGDNm/erA8//FC33XabiouLvV6Tmprq+UxLSkpq7MG66667tHHjRt1///3697//raeffloLFizQpEmTGqVdgJMRkAD4xezZs70O0i6XS8uXL9fcuXO1du1a/fjHP9b555+vX/ziF0pJSdGbb75Zr/Xm5OTo6aef1k9/+lNdcMEFuuOOO5STk6MVK1Z4vfe+ffvUoUMHxcfHS/p+3tDrr7+uf//737rssst08cUXa+bMmUpOTpb0/XDfkiVLtHLlSnXt2lVz5szRww8/7MdPpP6aNWumcePG6aGHHlJ5ebmmT5+uSy65RDk5ORowYIASExOVm5vr9ZpJkyYpPDxcXbt2VXx8fI3zky655BKtWLFCy5YtU7du3TRz5kzNnj27xjP1AHhzGWNMsCsBAABgJ/QgAQAAWBCQAATVD0/Dtz7+8Y9/BLt6Ptm/f3+d7fH1NH0AwcMQG4CgquumtW3btlVUVFQj1ubMfPfdd9q3b1+tz6empqpZM04eBpyAgAQAAGDBEBsAAIAFAQkAAMCCgAQAAGBBQAIAALAgIAEAAFgQkAAAACwISAAAABYEJAAAAIv/Dy/hDhuGMq91AAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_67.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_68.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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8/bbb+vYsWN666231KlTJ1f6e++9d9ryN7TOnTvrX//6l5xOp1sr0hdffOHaLtUc/AGoO8YgAfCZgQMHql+/fpo/f76OHj2qc889VwMHDtSzzz6r4uLiKvn379/v+v8PP/zgtq1Nmzbq2rWrjh07VuPzXXvttZKkBQsWuKXPnz+/St4uXbrI4XDoX//6lyutuLi4ymrWwcHBkiRjjCvN4XDoxRdfrLEcvnLdddeppKREubm5rrQTJ05o4cKFatOmjVJTUyVJrVq1kqRqA0AAdUMLEgCfevDBB3XbbbdpyZIluvfee7V48WINGDBAiYmJuvvuu3X++eertLRUBQUF+vbbb/Xxxx9Lknr06KGBAweqd+/eateunTZv3qzXXntN48aNq/G5kpKSNGzYMP31r3+Vw+FQ//79lZ+fr6+++qpK3qFDh+qhhx7STTfdpPvuu0+HDx/WM888o27dumnr1q2ufL/+9a8VEhKi66+/Xvfcc48OHTqk559/Xueee261QZ4vjR07Vs8++6zuvPNObdmyRXFxcXrttde0fv16zZ8/X2eddZakU4PKe/ToodzcXHXr1k3t2rVTz5491bNnz0YtL2Bp/p5GB8D6Kqf5b9q0qcq2kydPmi5dupguXbqYEydOGGOM2bVrlxk5cqSJiooyLVu2NB07djS/+c1vzGuvvebab+7cuaZfv36mbdu2JiwszHTv3t38+c9/NsePH3flqW5K/pEjR8x9991nzjnnHNO6dWtz/fXXm71791Y77f3dd981PXv2NCEhIeaCCy4wL7/8crXHfOutt8zFF19s7Ha7iYuLM48++qh54YUXjCRTVFTkyufNNP/TLWFQ0/FKS0vN6NGjTfv27U1ISIhJTEw0L774YpV9N2zYYHr37m1CQkKY8g/Ug82YX7QbAwAAgDFIAAAAngiQAAAAPBAgAQAAeCBAAgAA8ECABAAA4IEACQAAwAMLRdaT0+nU999/r7POOotl/QEAsAhjjA4ePKiYmJgqN37+JQKkevr+++8VGxvr72IAAIB62Lt3r84777watxMg1VPlkv579+5VeHi4n0sDAADqory8XLGxsa7v8ZoQINVTZbdaeHg4ARIAABZzuuExDNIGAADwQIAEAADggQAJAADAA2OQAABoApxOp44fP+7vYvhdy5YtFRwcfMbHIUACAMDijh8/rqKiIjmdTn8XJSC0bdtWUVFRZ7ROIQESAAAWZoxRcXGxgoODFRsbW+vih02dMUaHDx/Wvn37JEnR0dH1PhYBEgAAFnbixAkdPnxYMTExatWqlb+L43dhYWGSpH379uncc8+td3db8w0zAQBoAk6ePClJCgkJ8XNJAkdloPjzzz/X+xgESAAANAHcF/Q/GuK1IEACAADwQIAEAADggQCpmSl2HNGGXWUqdhzxd1EAAM3cnXfeKZvNpnnz5rmlr1q1ytVN9v777+vGG29UdHS0WrduraSkJL3yyis+LxsBUjOSu2mPLp+3TsOfL9Tl89Ypd9MefxcJANDM2e12Pfroo/rpp5+q3b5hwwZdfPHFev311/Wvf/1Lo0eP1siRI7V69WqflosAqZkodhzR1JWfyGlO/e000rSVO2hJAgD4VVpamqKiopSdnV3t9mnTpunhhx9W//791aVLF02YMEHXXHONVq5c6dNyESA1E0VlFa7gqNJJY7S77LB/CgQACDj+GIYRHBysRx55RAsXLtS3335bp30cDofatWvn03IRIDUT8e1bK8hj1mOwzaa49iwqBgDw7zCMm266SUlJScrKyjpt3uXLl2vTpk0aPXq0T8tEgNRMREeEKfvmRAX/36C3YJtNj9zcU9ERYX4uGQDA3wJhGMajjz6ql156SZ9//nmNed577z2NHj1azz//vC666CKflodbjTQjQ/p20pXdOmh32WHFtW9FcAQAkFT7MIzG+q648sorlZ6erqlTp+rOO++ssv2DDz7Q9ddfr6efflojR470eXkIkJqZ6IgwAiMAgJvKYRi/DJL8MQxj3rx5SkpK0gUXXOCW/v777+s3v/mNHn30UY0dO7ZRykIXGwAAzVygDMNITEzUHXfcoQULFrjS3nvvPQ0ePFj33XefbrnlFpWUlKikpEQ//vijT8tCCxIAAAiYYRhz5sxRbm6u6++XXnpJhw8fVnZ2tttSAKmpqXr//fd9Vg6bMcacPhs8lZeXKyIiQg6HQ+Hh4f4uDgCgmTp69KiKiooUHx8vu93u7+IEhNpek7p+f9PFBgAA4IEACQAAwAMBEgAAgAcCJAAAAA8ESAAANAHMufqPhngtCJAAALCw4OBgSdLx48f9XJLAcfjwqRuxt2zZst7HYB0kAAAsrEWLFmrVqpX279+vli1bKiio+bZ9GGN0+PBh7du3T23btnUFj/VBgAQAgIXZbDZFR0erqKhI33zzjb+LExDatm2rqKioMzoGARIAABYXEhKihIQEutl0qlvtTFqOKhEgAQDQBAQFBbGSdgPye0fl4sWLFRcXJ7vdruTkZG3cuLHW/CtWrFD37t1lt9uVmJiovLw8t+3GGM2cOVPR0dEKCwtTWlqadu7cWeU477zzjpKTkxUWFqazzz5bGRkZDVktAABgYX4NkHJzc5WZmamsrCxt3bpVvXr1Unp6uvbt21dt/g0bNmjYsGEaM2aMtm3bpoyMDGVkZGjHjh2uPI899pgWLFignJwcFRYWqnXr1kpPT9fRo0ddeV5//XWNGDFCo0eP1scff6z169dr+PDhPq8vAACwBr/erDY5OVl9+/bVokWLJElOp1OxsbEaP368pkyZUiX/kCFDVFFRodWrV7vSLrvsMiUlJSknJ0fGGMXExOiBBx7QpEmTJEkOh0ORkZFasmSJhg4dqhMnTiguLk6zZ8/WmDFj6l12blYLAID1BPzNao8fP64tW7YoLS3tP4UJClJaWpoKCgqq3aegoMAtvySlp6e78hcVFamkpMQtT0REhJKTk115tm7dqu+++05BQUG65JJLFB0drWuvvdatFao6x44dU3l5udsDAAA0TX4LkMrKynTy5ElFRka6pUdGRqqkpKTafUpKSmrNX/lvbXm+/vprSdKsWbM0ffp0rV69WmeffbYGDhyoH3/8scbyZmdnKyIiwvWIjY31orYAAMBK/D5Iu7E5nU5J0p/+9Cfdcsst6t27t1588UXZbDatWLGixv2mTp0qh8Pheuzdu7exigwAABqZ3wKk9u3bKzg4WKWlpW7ppaWlNS7uFBUVVWv+yn9ryxMdHS1J6tGjh2t7aGiozj//fO3Zs6fG8oaGhio8PNztAQAAmia/BUghISHq3bu38vPzXWlOp1P5+flKSUmpdp+UlBS3/JK0du1aV/74+HhFRUW55SkvL1dhYaErT+/evRUaGqovv/zSlefnn3/W7t271blz5warHwAAsC6/LhSZmZmpUaNGqU+fPurXr5/mz5+viooKjR49WpI0cuRIdezYUdnZ2ZKkCRMmKDU1VU8++aQGDx6sZcuWafPmzXruuecknVpufeLEiZo7d64SEhIUHx+vGTNmKCYmxrXOUXh4uO69915lZWUpNjZWnTt31uOPPy5Juu222xr/RQAA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vg6SVbEOEgAA1mOJdZAAAAACEQESAAAWUOw4og27ylTsOOLvojQLfh+DBAAAape7aY+mrvxETiMF2aTsmxM1pG+n0++IeqMFCQCAAFbsOOIKjiTJaaRpK3fQkuRjBEgAAASworIKV3BU6aQx2l122D8FaiYIkAAACGDx7VsryOaeFmyzKa49N1r3JQIkAAACWHREmLJvTlSw7VSUFGyz6ZGbeyo6IszPJWvaGKQNAECAG9K3k67s1kG7yw4rrn0rgqNGQIAEAIAFREeEERg1IrrYAAAAPBAgAQAAeCBAAgAA8ECABAAA4IEACQAAwAMBEgAAgAcCJAAAAA8ESAAAAB4IkAAAADwQIAEAAHggQAIAAPBAgAQAAOCBAAkAAMADARIAAIAHAiQAAAAPBEgAAAAeCJAAAAA8ECABAAB4IEACAADwQIAEAADggQAJAADAg9cBUl5enu666y5NnjxZX3zxhdu2n376SVdddVWDFQ4AAMAfvAqQli5dqhtuuEElJSUqKCjQJZdcoldeecW1/fjx4/rggw8avJAAAACNqYU3mR9//HE99dRTuu+++yRJy5cv1+9+9zsdPXpUY8aM8UkBAQAAGptXAdLOnTt1/fXXu/6+/fbb1aFDB91www36+eefddNNNzV4AQEAABqbVwFSeHi4SktLFR8f70obNGiQVq9erd/85jf69ttvG7yAAAAAjc2rMUj9+vXT//zP/1RJT01N1dtvv6358+c3VLkAAAD8xqsA6f7775fdbq9228CBA/X2229r5MiRDVIwAAAAf7EZY4y/C2FF5eXlioiIkMPhUHh4uL+LAwAA6qCu399ejUEKCgqSzWarNY/NZtOJEye8OSwAAEBA8SpAeuONN2rcVlBQoAULFsjpdJ5xoQAAAPzJqwDpxhtvrJL25ZdfasqUKXr77bd1xx13aM6cOQ1WOAAAAH+o973Yvv/+e919991KTEzUiRMntH37dr300kvq3LlzQ5YPAACg0XkdIDkcDj300EPq2rWrPv30U+Xn5+vtt99Wz549612IxYsXKy4uTna7XcnJydq4cWOt+VesWKHu3bvLbrcrMTFReXl5btuNMZo5c6aio6MVFhamtLQ07dy50y3PDTfcoE6dOslutys6OlojRozQ999/X+86AACApsOrAOmxxx7T+eefr9WrV+vVV1/Vhg0bdMUVV5xR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7RxWqsuH8+TJk81FF13kljZkyBCTnp7u+juQzt8vNVT9AvX8GVO3Ov5SampqtQHE7bffbgYPHuyWlpycbO65554zLOGZaaj6vfjiiyYiIqLBytVQvK1fpR49epjZs2e7/m6M9yBdbD50/PhxbdmyRWlpaa60oKAgpaWlqaCgoNp9+vfvry1btriaCr/++mvl5eXpuuuuq/cxfcUX9au0c+dOxcTE6Pzzz9cdd9yhPXv2+K4itahPHY8dO1alKTssLEwfffRRvY/pK76oX6VAOYfeKigocHs9JCk9Pd31egTS+auP09WvklXPX13V9XWwskOHDqlz586KjY3VjTfeqE8//dTfRaoXp9OpgwcPql27dpIa7z1IgORDZWVlOnnypCIjI93SIyMjVVJSUu0+w4cP15w5czRgwAC1bNlSXbp00cCBAzVt2rR6H9NXfFE/SUpOTtaSJUu0Zs0aPfPMMyoqKtIVV1yhgwcP+rQ+1alPHdPT0/XUU09p586dcjqdWrt2rVauXKni4uJ6H9NXfFE/KbDOobdKSkqqfT3Ky8t15MiRgDp/9XG6+knWPn91VdPrYIVzWBcXXHCBXnjhBb355pt6+eWX5XQ61b9/f3377bf+LprXnnjiCR06dEi33367pMb7DCVACjDvv/++HnnkEf31r3/V1q1btXLlSr3zzjt6+OGH/V20BlGX+l177bW67bbbdPHFFys9PV15eXk6cOCAli9f7seS191f/vIXJSQkqHv37goJCdG4ceM0evRoBQU1jbdbXepn9XPY3HH+rC8lJUUjR45UUlKSUlNTtXLlSnXo0EHPPvusv4vmlaVLl2r27Nlavny5zj333EZ97haN+mzNTPv27RUcHKzS0lK39NLSUkVFRVW7z4wZMzRixAjdddddkqTExERVVFRo7Nix+tOf/lSvY/qKL+pXXRDRtm1bdevWTV999VXDV+I06lPHDh06aNWqVTp69Kh++OEHxcTEaMqUKTr//PPrfUxf8UX9quPPc+itqKioal+P8PBwhYWFKTg4OGDOX32crn7VsdL5q6uaXgcrnMP6aNmypS655BJLncNly5bprrvu0ooVK9y60xrrM7Rp/KQNUCEhIerdu7fy8/NdaU6nU/n5+UpJSal2n8OHD1cJEoKDgyVJxph6HdNXfFG/6hw6dEi7du1SdHR0A5W87s7k9bbb7erYsaNOnDih119/XTfeeOMZH7Oh+aJ+1fHnOfRWSkqK2+shSWvXrnW9HoF0/urjdPWrjpXOX13V53WwspMnT+qTTz6xzDl89dVXNXr0aL366qsaPHiw27ZGew822HBvVGvZsmUmNDTULFmyxHz22Wdm7Nixpm3btq7pliNGjDBTpkxx5c/KyjJnnXWWefXVV83XX39t3n33XdOlSxdz++231/mYVq/fAw88YN5//31TVFRk1q9fb9LS0kz79u3Nvn37Gr1+xnhfx3/+85/m9ddfN7t27TIffvihueqqq0x8fLz56aef6nzMxuSL+gXSOTx48KDZtm2b2bZtm5FknnrqKbNt2zbzzTffGGOMmTJlihkxYoQrf+U0+AcffNB8/vnnZvHixdVO8w+U8+eL+gXS+TPG+zoaY1z5e/fubYYPH262bdtmPv30U9f29evXmxYtWpgnnnjCfP755yYrK8tv0/x9Ub/Zs2ebv//972bXrl1my5YtZujQocZut7vlaSze1u+VV14xLVq0MIsXL3ZbpuDAgQOuPI3xHiRAagQLFy40nTp1MiEhIaZfv37mn//8p2tbamqqGTVqlOvvn3/+2cyaNct06dLF2O12Exsba/7whz+4ffmc7piNraHrN2TIEBMdHW1CQkJMx44dzZAhQ8xXX33ViDWqyps6vv/+++bCCy80oaGh5pxzzjEjRoww3333nVfHbGwNXb9AOofvvfeekVTlUVmnUaNGmdTU1Cr7JCUlmZCQEHP++eebF198scpxA+X8+aJ+gXT+jKlfHavL37lzZ7c8y5cvN926dTMhISHmoosuMu+8807jVMiDL+o3ceJE1/UZGRlprrvuOrd1hBqTt/VLTU2tNX8lX78HbcbU0K8BAADQTDEGCQAAwAMBEgAAgAcCJAAAAA8ESAAAAB4IkAAAADwQIAEAAHggQAIAAPBAgAQATcT7778vm82mAwcO+LsogOURIAHw2p133imbzaZ58+a5pa9atUo2m831tzFGzz//vFJSUhQeHq42bdrooosu0oQJE+p808zDhw9r6tSp6tKli+x2uzp06KDU1FS9+eabrjxxcXGaP39+g9TN1ypfO5vNppYtWyo+Pl6TJ0/W0aNHvTrOwIEDNXHiRLe0/v37q7i4WBEREQ1YYqB5IkACUC92u12PPvqofvrpp2q3G2M0fPhw3Xfffbruuuv07rvv6rPPPtN//dd/yW63a+7cuXV6nnvvvVcrV67UwoUL9cUXX2jNmjW69dZb9cMPPzRkdRrVNddco+LiYn399dd6+umn9eyzzyorK+uMjxsSEqKoqCi3IBVAPTXojUsANAujRo0yv/nNb0z37t3Ngw8+6Ep/4403TOXHyquvvmokmTfffLPaYzidzjo9V0REhFmyZEmN26u7b1Olf/zjH2bAgAHGbreb8847z4wfP94cOnTItf2///u/Te/evU2bNm1MZGSkGTZsmCktLXVtr7yH1Jo1a0xSUpKx2+1m0KBBprS01OTl5Znu3bubs846ywwbNsxUVFTUqT6jRo0yN954o1vazTffbC655BLX32VlZWbo0KEmJibGhIWFmZ49e5qlS5e6HcOzzkVFRa7y/vLehq+99prp0aOHCQkJMZ07dzZPPPFEncoJNHe0IAGol+DgYD3yyCNauHChvv322yrbX331VV1wwQW64YYbqt2/rq0cUVFRysvL08GDB6vdvnLlSp133nmaM2eOiouLVVxcLEnatWuXrrnmGt1yyy3617/+pdzcXH300UcaN26ca9+ff/5ZDz/8sD7++GOtWrVKu3fv1p133lnlOWbNmqVFixZpw4YN2rt3r26//XbNnz9fS5cu1TvvvKN3331XCxcurFN9PO3YsUMbNmxQSEiIK+3o0aPq3bu33nnnHe3YsUNjx47ViBEjtHHjRknSX/7yF6WkpOjuu+921Tk2NrbKsbds2aLbb79dQ4cO1SeffKJZs2ZpxowZWrJkSb3KCjQr/o7QAFjPL1tBLrvsMvO73/3OGOPegtS9e3dzww03uO03YcIE07p1a9O6dWvTsWPHOj3XBx98YM477zzTsmVL06dPHzNx4kTz0UcfueXp3Lmzefrpp93SxowZY8aOHeuW9o9//MMEBQWZI0eOVPtcmzZtMpLMwYMHjTH/aUH63//9X1ee7OxsI8ns2rXLlXbPPfeY9PT0OtVn1KhRJjg42LRu3dqEhoYaSSYoKMi89tprte43ePBg88ADD7j+Tk1NNRMmTHDL49mCNHz4cPOrX/3KLc+DDz5oevToUaeyAs0ZLUgAzsijjz6ql156SZ9//vlp8/7pT3/S9u3bNXPmTB06dKhOx7/yyiv19ddfKz8/X7feeqs+/fRTXXHFFXr44Ydr3e/jjz/WkiVL1KZNG9cjPT1dTqdTRUVFkk61sFx//fXq1KmTzjrrLKWmpkqS9uzZ43asiy++2PX/yMhItWrVSueff75b2r59++pUH0kaNGiQtm/frsLCQo0aNUqjR4/WLbfc4tp+8uRJPfzww0pMTFS7du3Upk0b/f3vf69SrtP5/PPPdfnll7ulXX755dq5c6dOnjzp1bGA5oYACcAZufLKK5Wenq6pU6e6pSckJOjLL790S+vQoYO6du2qc88916vnaNmypa644go99NBDevfddzVnzhw9/PDDOn78eI37HDp0SPfcc4+2b9/uenz88cfauXOnunTpooqKCqWnpys8PFyvvPKKNm3apDfeeEOSqhy3ZcuWrv9Xzj77JZvNJqfTWef6tG7dWl27dlWvXr30wgsvqLCwUP/1X//l2v7444/rL3/5ix566CG999572r59u9LT02utL4CG1cLfBQBgffPmzVNSUpIuuOACV9qwYcM0fPhwvfnmm7rxxhsb9Pl69OihEydO6OjRowoJCVFISEiVFpFLL71Un332mbp27VrtMT755BP98MMPmjdvnmv8zubNmxu0nHURFBSkadOmKTMzU8OHD1dYWJjWr1+vG2+8Ub/97W8lSU6nU//+97/Vo0cP137V1dnThRdeqPXr17ulrV+/Xt26dVNwcHDDVwZoQmhBAnDGEhMTdccdd2jBggWutKFDh+rWW2/V0KFDNWfOHBUWFmr37t364IMPlJubW+cv6IEDB+rZZ5/Vli1btHv3buXl5WnatGkaNGiQwsPDJZ1aB+nDDz/Ud999p7KyMknSQw89pA0bNmjcuHHavn27du7cqTfffNM1SLtTp04KCQnRwoUL9fXXX+utt946bbedr9x2220KDg7W4sWLJZ1qfVu7dq02bNigzz//XPfcc49KS0vd9omLi3O9pmVlZdW2YD3wwAPKz8/Xww8/rH//+9966aWXtGjRIk2aNKlR6gVYGQESgAYxZ84cty9pm82m3NxczZ8/X3l5ebr66qt1wQUX6He/+51iY2P10Ucf1em46enpeumll/TrX/9aF154ocaPH6/09HQtX77c7bl3796tLl26qEOHDpJOjRv64IMP9O9//1tXXHGFLrnkEs2cOVMxMTGSTnX3LVmyRCtWrFCPHj00b948PfHEEw34itRdixYtNG7cOD322GOqqKjQ9OnTdemllyo9PV0DBw5UVFSUMjIy3PaZNGmSgoOD1aNHD3Xo0KHa8UmXXnqpli9frmXLlqlnz56aOXOm5syZU+1MPQDubMYY4+9CAAAABBJakAAAADwQIAHwq19Ow/d8/OMf//B38byyZ8+eWuvj7TR9AP5DFxsAv6rtprUdO3ZUWFhYI5bmzJw4cUK7d++ucXtcXJxatGDyMGAFBEgAAAAe6GIDAADwQIAEAADggQAJAADAAwESAACABwIkAAAADwRIAAAAHgiQAAAAPBAgAQAAePj/8q+WDD250XYAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_69.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHHCAYAAABDUnkqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABIi0lEQVR4nO3deXxU9b3/8fckkIUlYUlIQgyEVUAQkK0RZWmjES1KUUHwCmJxuYKiVMuislkJti54BUG9FWxVCGIQe+UiNIhU4comrqhsMRGTQBQS1gQy398f/DJ1zEImzOTMnHk9H495QM58z5nvd9bP+XyX4zDGGAEAANhEiNUVAAAA8CaCGwAAYCsENwAAwFYIbgAAgK0Q3AAAAFshuAEAALZCcAMAAGyF4AYAANgKwQ0AALAVghsAlpg1a5YcDkeNyjocDs2aNcun9Rk0aJAGDRrkt8cDUHMEN0CQW7p0qRwOh+tWr149JSYm6vbbb9fBgwetrp7fSU5Odnu+WrRooSuvvFKrVq3yyvFPnjypWbNmaePGjV45HhCMCG4ASJLmzJmjv//971q8eLGGDBmi1157TQMHDtTp06d98niPPvqoTp065ZNj+1qPHj3097//XX//+9/10EMP6YcfftDw4cO1ePHiCz72yZMnNXv2bIIb4ALUs7oCAPzDkCFD1Lt3b0nS+PHjFRMToyeffFLvvPOORowY4fXHq1evnurVC8yvoMTERP3Hf/yH6+8xY8aoffv2evbZZ3XPPfdYWDMAEpkbAFW48sorJUn79u1z2/7111/rpptuUrNmzRQREaHevXvrnXfecStz5swZzZ49Wx06dFBERISaN2+uK664QuvXr3eVqWzMTUlJiR588EHFxsaqcePGuv766/X9999XqNvtt9+u5OTkCtsrO+aSJUv061//Wi1atFB4eLi6dOmiRYsWefRcnE98fLw6d+6sAwcOVFvu0KFD+v3vf6+4uDhFRESoe/fuevXVV133Z2dnKzY2VpI0e/ZsV9eXr8cbAXYTmKdNAHwuOztbktS0aVPXti+//FL9+/dXYmKipk6dqoYNG2rFihUaNmyY3nrrLf3ud7+TdC7ISE9P1/jx49W3b18VFxdr+/bt2rlzp6666qoqH3P8+PF67bXXNHr0aF1++eXasGGDrrvuugtqx6JFi3TJJZfo+uuvV7169fSPf/xD9957r5xOpyZMmHBBxy535swZ5ebmqnnz5lWWOXXqlAYNGqS9e/dq4sSJatOmjd58803dfvvtOnr0qCZNmqTY2FgtWrRI//mf/6nf/e53Gj58uCTp0ksv9Uo9gaBhAAS1JUuWGEnmn//8pzl8+LDJzc01K1euNLGxsSY8PNzk5ua6yv7mN78x3bp1M6dPn3Ztczqd5vLLLzcdOnRwbevevbu57rrrqn3cmTNnmp9/Be3atctIMvfee69budGjRxtJZubMma5tY8eONa1btz7vMY0x5uTJkxXKpaWlmbZt27ptGzhwoBk4cGC1dTbGmNatW5urr77aHD582Bw+fNh8+umn5pZbbjGSzH333Vfl8ebPn28kmddee821rbS01KSkpJhGjRqZ4uJiY4wxhw8frtBeAJ6hWwqAJCk1NVWxsbFKSkrSTTfdpIYNG+qdd97RRRddJEn66aeftGHDBo0YMULHjh1TYWGhCgsL9eOPPyotLU179uxxza5q0qSJvvzyS+3Zs6fGj79mzRpJ0v333++2/YEHHrigdkVGRrr+X1RUpMLCQg0cOFD79+9XUVFRrY65bt06xcbGKjY2Vt27d9ebb76p2267TU8++WSV+6xZs0bx8fEaNWqUa1v9+vV1//336/jx4/rggw9qVRcAFQV1cLNp0yYNHTpULVu2lMPh0Ntvv+3Tx0tPT1efPn3UuHFjtWjRQsOGDdM333zjVuall17SoEGDFBUVJYfDoaNHj/q0TkC5hQsXav369Vq5cqWuvfZaFRYWKjw83HX/3r17ZYzRY4895vphL7/NnDlT0rkxJdK5mVdHjx5Vx44d1a1bNz388MP67LPPqn387777TiEhIWrXrp3b9osvvviC2vXRRx8pNTVVDRs2VJMmTRQbG6vp06dLUq2Dm379+mn9+vX65z//qc2bN6uwsFB/+9vf3AKpX/ruu+/UoUMHhYS4f+127tzZdT8A7wjqMTcnTpxQ9+7ddccdd7j6tn3pgw8+0IQJE9SnTx+dPXtW06dP19VXX62vvvpKDRs2lHRuGug111yja665RtOmTfN5nYByffv2dc2WGjZsmK644gqNHj1a33zzjRo1aiSn0ylJeuihh5SWllbpMdq3by9JGjBggPbt26fVq1dr3bp1+u///m89++yzWrx4scaPH3/Bda1q8b+ysjK3v/ft26ff/OY36tSpk5555hklJSUpLCxMa9as0bPPPutqk6diYmKUmppaq30B+F5QBzdDhgzRkCFDqry/pKREjzzyiJYtW6ajR4+qa9euevLJJ2u96ujatWvd/l66dKlatGihHTt2aMCAAZL+nYJnjQtYKTQ0VOnp6Ro8eLAWLFigqVOnqm3btpLOdaXU5Ie9WbNmGjdunMaNG6fjx49rwIABmjVrVpXBTevWreV0OrVv3z63bM0vs5vSuUHOlWU1f5n9+Mc//qGSkhK98847atWqlWv7+++/f976e1vr1q312Wefyel0umVvvv76a9f9UtWBG4CaC+puqfOZOHGitmzZouXLl+uzzz7TzTffrGuuucajcQTVKU+JN2vWzCvHA7xp0KBB6tu3r+bPn6/Tp0+rRYsWGjRokF588UXl5eVVKH/48GHX/3/88Ue3+xo1aqT27durpKSkyscrP9H4r//6L7ft8+fPr1C2Xbt2KioqcuvqysvLq7BKcGhoqCTJGOPaVlRUpCVLllRZD1+59tprlZ+fr4yMDNe2s2fP6vnnn1ejRo00cOBASVKDBg0kiS5p4AIEdeamOjk5OVqyZIlycnLUsmVLSefS8WvXrtWSJUs0d+7cCzq+0+nUAw88oP79+6tr167eqDLgdQ8//LBuvvlmLV26VPfcc48WLlyoK664Qt26ddOdd96ptm3bqqCgQFu2bNH333+vTz/9VJLUpUsXDRo0SL169VKzZs20fft2rVy5UhMnTqzysXr06KFRo0bphRdeUFFRkS6//HJlZWVp7969FcrecsstmjJlin73u9/p/vvv18mTJ7Vo0SJ17NhRO3fudJW7+uqrFRYWpqFDh+ruu+/W8ePH9fLLL6tFixaVBmi+dNddd+nFF1/U7bffrh07dig5OVkrV67URx99pPnz56tx48aSzg2A7tKlizIyMtSxY0c1a9ZMXbt25XsC8ITV07X8hSSzatUq19//8z//YySZhg0but3q1atnRowYYYwxZvfu3UZStbcpU6ZU+nj33HOPad26tds02597//33jSRz5MgRbzcVcFM+FXzbtm0V7isrKzPt2rUz7dq1M2fPnjXGGLNv3z4zZswYEx8fb+rXr28SExPNb3/7W7Ny5UrXfn/6059M3759TZMmTUxkZKTp1KmTeeKJJ0xpaamrTGXTtk+dOmXuv/9+07x5c9OwYUMz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GzfqsssuU3h4uNq3b6+lS5dWKONPr58v2hjIr2FeXp5Gjx6tjh07KiQkRA888ECl5d5880116tRJERER6tatm9asWeP9yteAL9q3dOnSCq9fRESEbxpQA562MTMzU1dddZViY2MVFRWllJQUvffeexXK+fxzaFCp5cuXm7CwMPPKK6+YL7/80tx5552mSZMmpqCgoNLyr7/+ugkPDzevv/66OXDggHnvvfdMQkKCefDBB2t9TF/zRRtnzpxpLrnkEpOXl+e6HT58uK6a5MbT9v3xj380LVu2NO+++67Zt2+feeGFF0xERITZuXNnrY/pS75onz+9fmvWrDGPPPKIyczMNJLMqlWrqi2/f/9+06BBAzN58mTz1Vdfmeeff96EhoaatWvXusr40+tnjG/aGMiv4YEDB8z9999vXn31VdOjRw8zadKkCmU++ugjExoaav785z+br776yjz66KOmfv365vPPP/dNI6rhi/YtWbLEREVFub1++fn5vmlADXjaxkmTJpknn3zSbN261Xz77bdm2rRppn79+nX+PUpwU4W+ffuaCRMmuP4uKyszLVu2NOnp6ZWWnzBhgvn1r3/ttm3y5Mmmf//+tT6mr/mijTNnzjTdu3f3SX095Wn7EhISzIIFC9y2DR8+3Nx66621PqYv+aJ9/vT6/VxNvlT/+Mc/mksuucRt28iRI01aWprrb396/X7JW20M5Nfw5wYOHFjpj/+IESPMdddd57atX79+5u67777AGl4Yb7VvyZIlJjo62mv18iZP21iuS5cuZvbs2a6/6+JzSLdUJUpLS7Vjxw6lpqa6toWEhCg1NVVbtmypdJ/LL79cO3bscKXW9u/frzVr1ujaa6+t9TF9yRdtLLdnzx61bNlSbdu21a233qqcnBzfNaQKtWlfSUlJhfRvZGSkPvzww1of01d80b5y/vD61caWLVvcng9JSktLcz0f/vT61db52lguUF/DmqjpcxDIjh8/rtatWyspKUk33HCDvvzyS6urVGtOp1PHjh1Ts2bNJNXd55DgphKFhYUqKytTXFyc2/a4uDjl5+dXus/o0aM1Z84cXXHFFapfv77atWunQYMGafr06bU+pi/5oo2S1K9fPy1dulRr167VokWLdODAAV155ZU6duyYT9vzS7VpX1pamp555hnt2bNHTqdT69evV2ZmpvLy8mp9TF/xRfsk/3n9aiM/P7/S56O4uFinTp3yq9evts7XRimwX8OaqOo5CJTX8HwuvvhivfLKK1q9erVee+01OZ1OXX755fr++++trlqtPPXUUzp+/LhGjBghqe6+RwluvGTjxo2aO3euXnjhBe3cuVOZmZl699139fjjj1tdNa+pSRuHDBmim2++WZdeeqnS0tK0Zs0aHT16VCtWrLCw5jXz3HPPqUOHDurUqZPCwsI0ceJEjRs3TiEh9viY1KR9gfz64Rxew8CWkpKiMWPGqEePHho4cKAyMzMVGxurF1980eqqeeyNN97Q7NmztWLFCrVo0aJOH7tenT5agIiJiVFoaKgKCgrcthcUFCg+Pr7SfR577DHddtttGj9+vCSpW7duOnHihO666y498sgjtTqmL/mijZUFAU2aNFHHjh21d+9e7zeiGrVpX2xsrN5++22dPn1aP/74o1q2bKmpU6eqbdu2tT6mr/iifZWx6vWrjfj4+Eqfj6ioKEVGRio0NNRvXr/aOl8bKxNIr2FNVPUcBMpr6Kn69eurZ8+eAff6LV++XOPHj9ebb77p1gVVV9+j9jgl9bKwsDD16tVLWVlZrm1Op1NZWVlKSUmpdJ+TJ09W+HEPDQ2VJBljanVMX/JFGytz/Phx7du3TwkJCV6qec1cyPMdERGhxMREnT17Vm+99ZZuuOGGCz6mt/mifZWx6vWrjZSUFLfnQ5LWr1/vej786fWrrfO1sTKB9BrWRG2eg0BWVlamzz//PKBev2XLlmncuHFatmyZrrvuOrf76uxz6LWhyTazfPlyEx4ebpYuXWq++uorc9ddd5kmTZq4puTddtttZurUqa7yM2fONI0bNzbLli0z+/fvN+vWrTPt2rUzI0aMqPEx65ov2viHP/zBbNy40Rw4cMB89NFHJjU11cTExJhDhw75ffv+7//+z7z11ltm3759ZtOmTebXv/61adOmjTly5EiNj1mXfNE+f3r9jh07Zj755BPzySefGEnmmWeeMZ988on57rvvjDHGTJ061dx2222u8uXTpB9++GGze/dus3DhwkqngvvL62eMb9oYyK+hMcZVvlevXmb06NHmk08+MV9++aXr/o8++sjUq1fPPPXUU2b37t1m5syZlk0F90X7Zs+ebd577z2zb98+s2PHDnPLLbeYiIgItzJ1ydM2vv7666ZevXpm4cKFbtPZjx496ipTF59DgptqPP/886ZVq1YmLCzM9O3b1/zf//2f676BAweasWPHuv4+c+aMmTVrlmnXrp2JiIgwSUlJ5t5773X74TjfMa3g7TaOHDnSJCQkmLCwMJOYmGhGjhxp9u7dW4ctcudJ+zZu3Gg6d+5swsPDTfPmzc1tt91mDh486NEx65q32+dPr9/7779vJFW4lbdp7NixZuDAgRX26dGjhwkLCzNt27Y1S5YsqXBcf3r9fNHGQH8NKyvfunVrtzIrVqwwHTt2NGFhYeaSSy4x7777bt006Bd80b4HHnjA9f6Mi4sz1157rdsaMXXN0zYOHDiw2vLlfP05dBhTRX8CAABAAGLMDQAAsBWCGwAAYCsENwAAwFYIbgAAgK0Q3AAAAFshuAEAALZCcAMAAGyF4AYA/MDGjRvlcDh09OhRq6sCBDyCGyDI3H777XI4HJo3b57b9rffflsOh8P1tzFGL7/8slJSUhQVFaVGjRrpkksu0aRJk2p8Eb+TJ09q2rRpateunSIiIhQbG6uBAwdq9erVrjLJycmaP3++V9rma+XPncPhUP369dWmTRv98Y9/1OnTpz06zqBBg/TAAw+4bbv88suVl5en6OhoL9YYCE4EN0AQioiI0JNPPqkjR45Uer8xRqNHj9b999+va6+9VuvWrdNXX32lv/71r4qIiNCf/vSnGj3OPffco8zMTD3//PP6+uuvtXbtWt1000368ccfvdmcOnXNNdcoLy9P+/fv17PPPqsXX3xRM2fOvODjhoWFKT4+3i3ABFBLXr2YAwC/N3bsWPPb3/7WdOrUyTz88MOu7atWrTLlXwnLli0zkszq1asrPYbT6azRY0VHR5ulS5dWeX9l16Ep969//ctcccUVJiIiwlx00UXmvvvuM8ePH3fd/7e//c306tXLNGrUyMTFxZlRo0aZgoIC1/3l18RZu3at6dGjh4mIiDCDBw82BQUFZs2aNaZTp06mcePGZtSoUebEiRM1as/YsWPNDTfc4LZt+PDhpmfPnq6/CwsLzS233GJatmxpIiMjTdeuXc0bb7zhdoxftvnAgQOu+v78Wm0rV640Xbp0MWFhYaZ169bmqaeeqlE9gWBH5gYIQqGhoZo7d66ef/55ff/99xXuX7ZsmS6++GJdf/31le5f0+xCfHy81qxZo2PHjlV6f2Zmpi666CLNmTNHeXl5ysvLkyTt27dP11xzjW688UZ99tlnysjI0IcffqiJEye69j1z5owef/xxffrpp3r77beVnZ2t22+/vcJjzJo1SwsWLNDmzZuVm5urESNGaP78+XrjjTf07rvvat26dXr++edr1J5f+uKLL7R582aFhYW5tp0+fVq9evXSu+++qy+++EJ33XWXbrvtNm3dulWS9NxzzyklJUV33nmnq81JSUkVjr1jxw6NGDFCt9xyiz7//HPNmjVLjz32mJYuXVqrugJBxeroCkDd+nn24Ve/+pW54447jDHumZtOnTqZ66+/3m2/SZMmmYYNG5qGDRuaxMTEGj3WBx98YC666CJTv35907t3b/PAAw+YDz/80K1M69atzbPPPuu27fe//72566673Lb961//MiEhIebUqVOVPta2bduMJHPs2DFjzL8zN//85z9dZdLT040ks2/fPte2u+++26SlpdWoPWPHjjWhoaGmYcOGJjw83EgyISEhZuXKldXud91115k//OEPrr8HDhxoJk2a5Fbml5mb0aNHm6uuusqtzMMPP2y6dOlSo7oCwYzMDRDEnnzySb366qvavXv3ecs+8sgj2rVrl2bMmKHjx4/X6PgDBgzQ/v37lZWVpZtuuklffvmlrrzySj3++OPV7vfpp59q6dKlatSokeuWlpYmp9OpAwcOSDqX2Rg6dKhatWqlxo0ba+DAgZKknJwct2Ndeumlrv/HxcWpQYMGatu2rdu2Q4cO1ag9kjR48GDt2rVLH3/8scaOHatx48bpxhtvdN1fVlamxx9/XN26dVOzZs3UqFEjvffeexXqdT67d+9W//793bb1799fe/bsUVlZmUfHAoINwQ0QxAYMGKC0tDRNmzbNbXuHDh30zTffuG2LjY1V+/bt1aJFC48eo379+rryyis1ZcoUrVu3TnPmzNHjjz+u0tLSKvc5fvy47r77bu3atct1+/TTT7Vnzx61a9dOJ06cUFpamqKiovT6669r27ZtWrVqlSRVOG79+vVd/y+f5fRzDodDTqezxu1p2LCh2rdvr+7du+uVV17Rxx9/rL/+9a+u+//yl7/oueee05QpU/T+++9r165dSktLq7a9ALyrntUVAGCtefPmqUePHrr44otd20aNGqXRo0dr9erVuuGGG7z6eF26dNHZs2d1+vRphYWFKSwsrEIm4rLLLtNXX32l9u3bV3qMzz//XD/++KPmzZvnGq+yfft2r9azJkJCQjR9+nRNnjxZo0ePVmRkpD766CPdcMMN+o//+A9JktPp1LfffqsuXbq49quszb/UuXNnffTRR27bPvroI3Xs2FGhoaHebwxgI2RugCDXrVs33Xrrrfqv//ov17ZbbrlFN910k2655RbNmTNHH3/8sbKzs/XBBx8oIyOjxj+ugwYN0osvvqgdO3YoOztba9as0fTp0zV48GBFRUVJOrfOzaZNm3Tw4EEVFhZKkqZMmaLNmzdr4sSJ2rVrl/bs2aPVq1e7BhS3atVKYWFhev7557V//36988475+3q8pWbb75ZoaGhWrhwoaRzWa/169dr8+bN2r17t+6++24VFBS47ZOcnOx6TgsLCyvNHP3hD39QVlaWHn/8cX377bd69dVXtWDBAj300EN10i4gkBHcANCcOXPcfmAdDocyMjI0f/58rVmzRr/5zW908cUX64477lBSUpI+/PDDGh03LS1Nr776qq6++mp17txZ9913n9LS0rRixQq3x87Ozla7du0UGxsr6dw4mQ8++EDffvutrrzySvXs2VMzZsxQy5YtJZ3rIlu6dKnefPNNdenSRfPmzdNTTz3lxWek5urVq6eJEyfqz3/+s06cOKFHH31Ul112mdLS0jRo0CDFx8dr2LBhbvs89NBDCg0NVZcuXRQbG1vpeJzLLrtMK1as0PLly9W1a1fNmDFDc+bMqXRGGAB3DmOMsboSAAAA3kLmBgAA2ArBDYBa+/lU7V/e/vWvf1ldPY/k5ORU2x5Pp3IDsA7dUgBqrboLaCYmJioyMrIOa3Nhzp49q+zs7CrvT05OVr16TDAFAgHBDQAAsBW6pQAAgK0Q3AAAAFshuAEAALZCcAMAAGyF4AYAANgKwQ0AALAVghsAAGArBDcAAMBW/h99WculgBIQdAAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_15_70.png" - } - }, - "output_type": "display_data" - } - ], - "source": [ - "# visualize with IDAES surrogate plotting tools\n", - "surrogate_scatter2D(\n", - " keras_surrogate, data_training, filename=\"keras_train_scatter2D.pdf\"\n", - ")\n", - "surrogate_parity(keras_surrogate, data_training, filename=\"keras_train_parity.pdf\")\n", - "surrogate_residual(keras_surrogate, data_training, filename=\"keras_train_residual.pdf\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 3.4 Model Validation" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "scrolled": false - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\r", - "1/1 [==============================] - ETA: 0s" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "1/1 [==============================] - 0s 12ms/step\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHHCAYAAABDUnkqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABHTUlEQVR4nO3de5yN5f7/8feaMQczZhYzzBgaZswo5JAhcpYIMeVb+5cOhFJb2ySpxLecthxKJIcoOXUQhfYOxUbsIm32MIVQNEqFmJU1g90Ms+7fH76ztmWY4zrM3PN6Ph7zYN3ruu/1ue9mW+993dd13RbDMAwBAACYhJ+vCwAAAHAnwg0AADAVwg0AADAVwg0AADAVwg0AADAVwg0AADAVwg0AADAVwg0AADAVwg0AADAVwg0A+MiSJUtksVh09OhRX5cCmArhBjCxXbt2KSUlRTfeeKNCQ0NVp04d3Xvvvfruu+/yte3cubMsFossFov8/PwUHh6uG264Qf3799fGjRuL9blr1qxRp06dFBUVpZCQENWrV0/33nuv1q9f765Ty2fy5Mn629/+lm/7l19+qfHjx+vMmTMe++wrjR8/3nktLRaLQkJC1KhRI73wwgvKzMx0y2csW7ZMM2fOdMuxALMh3AAm9tJLL2nVqlW67bbb9Nprr+mxxx7T559/rqSkJO3bty9f++uuu07vvPOO3n77bU2bNk133nmnvvzyS91+++3q27evLly4UOhnvvLKK7rzzjtlsVg0evRovfrqq7rnnnv0/fffa/ny5Z44TUkFh5sJEyZ4NdzkmTdvnt555x3NmDFDDRo00KRJk9SjRw+545F+hBvg2ir5ugAAnjNixAgtW7ZMgYGBzm19+/ZVkyZNNHXqVL377rsu7a1Wq/r16+eyberUqRo2bJhef/11xcXF6aWXXrrm5128eFETJ05Ut27d9I9//CPf+7/99lspz6jsOH/+vEJCQgps86c//UnVq1eXJA0ZMkT33HOPVq9era+++kpt2rTxRplAhUTPDWBibdu2dQk2klS/fn3deOONOnDgQJGO4e/vr1mzZqlRo0aaM2eO7Hb7NduePn1amZmZateu3VXfj4qKcnn9xx9/aPz48br++usVHBysmJgY3X333Tpy5IizzSuvvKK2bdsqMjJSlStXVosWLbRy5UqX41gsFp07d05Lly513goaOHCgxo8fr2effVaSFB8f73zv8jEu7777rlq0aKHKlSsrIiJC9913n44dO+Zy/M6dO6tx48ZKTU1Vx44dFRISov/93/8t0vW7XJcuXSRJ6enpBbZ7/fXXdeONNyooKEi1atXS0KFDXXqeOnfurHXr1unHH390nlNcXFyx6wHMip4boIIxDEMnT57UjTfeWOR9/P39df/992vMmDHatm2bevXqddV2UVFRqly5stasWaMnnnhCERER1zxmbm6uevfurc2bN+u+++7Tk08+qaysLG3cuFH79u1TQkKCJOm1117TnXfeqQcffFA5OTlavny5/t//+39au3ats4533nlHgwcPVqtWrfTYY49JkhISEhQaGqrvvvtO77//vl599VVnL0qNGjUkSZMmTdKYMWN07733avDgwTp16pRmz56tjh07as+ePapataqz3oyMDPXs2VP33Xef+vXrp+jo6CJfvzx5oS0yMvKabcaPH68JEyaoa9euevzxx3Xo0CHNmzdPu3bt0vbt2xUQEKDnn39edrtdP//8s1599VVJUpUqVYpdD2BaBoAK5Z133jEkGQsXLnTZ3qlTJ+PGG2+85n4fffSRIcl47bXXCjz+2LFjDUlGaGio0bNnT2PSpElGampqvnaLFi0yJBkzZszI957D4XD+/fz58y7v5eTkGI0bNza6dOnisj00NNQYMGBAvmNNmzbNkGSkp6e7bD969Kjh7+9vTJo0yWX73r17jUqVKrls79SpkyHJmD9//jXP+3Ljxo0zJBmHDh0yTp06ZaSnpxtvvPGGERQUZERHRxvnzp0zDMMwFi9e7FLbb7/9ZgQGBhq33367kZub6zzenDlzDEnGokWLnNt69epl1K1bt0j1ABUNt6WACuTgwYMaOnSo2rRpowEDBhRr37yegaysrALbTZgwQcuWLVPz5s21YcMGPf/882rRooWSkpJcboWtWrVK1atX1xNPPJHvGBaLxfn3ypUrO//++++/y263q0OHDtq9e3ex6r/S6tWr5XA4dO+99+r06dPOn5o1a6p+/frasmWLS/ugoCANGjSoWJ9xww03qEaNGoqPj9ef//xnJSYmat26ddccq7Np0ybl5ORo+PDh8vP77z/Pjz76qMLDw7Vu3brinyhQAXFbCqggTpw4oV69eslqtWrlypXy9/cv1v5nz56VJIWFhRXa9v7779f9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C/rll19Uo0YNJScna9KkSZ48FQClZLVmuaW3Jm8sT3p6nByOAS7v5Y3liY//USkpKQQcoILyaLgp6m2ilJSUa96GurK3qFKlSho3bpzGjRtX2vIAlEPeGssDoPwqd7OlAED671gei+XSyunuHMsDoHzzaM8NAHhSUtIeRUWd0LFjdRQb+5Ouu+64r0sCUAYQbgB4RGBgoFvbXc3u3c3zzcJKStpT4uMBMAePhpviTAsHYC6RkZFKSUkpcOxLYGBgiQf92u1hzmAjSYbhpzVreish4TC3poAKrkwMKAZgTp6YrZT3PDubLdJlMLF0KeDYbBGyWrN05swZxcTEuP3zAZR9Hh1Q/Omnn6p27dqe/AgAFczFixcl/Xe21OUuny2V1w5AxVOinhvDMLRy5Upt2bJFv/32mxwO139gVq9eLUlq37596SsEgMsEBARIKnzl47x2ACqeEoWb4cOH64033tCtt96q6OhoxtYA8JrLn2VX0MrHVz7zDkDFUaJw884772j16tW644473F0PALgo7MGY7lr5GIB5lCjcWK3WAh+pAAClkZGRoZycHC1bVlkjR1rlcFjk52fo5Zftuv32074uD0AZV6JwM378eE2YMEGLFi1S5cqV3V0TgAos79lRdnuYZs4cLsPIezCmRc8+G65fftko7jgBKEiJws29996r999/X1FRUYqLi8s3cG/37t1uKQ5AxZO3Lk5hU70B4FpKFG4GDBig1NRU9evXjwHFADyisAdjFqY0Kx8DKN9KFG7WrVunDRs2MNUbgMcUNtX77rvvVvXq1a+6b2lWPgZQ/pUo3MTGxio8PNzdtQCAi4KmelevXp0ViAFcVYlWKJ4+fbpGjhypo0ePurkcAHBltWYpPv5HxtkAKLIS9dz069dP58+fV0JCgkJCQvINKLbZinZPHAAAwN1KFG5mzpzp5jIAAADco8SzpQDAE4o6y4nZUACupUTh5nJ//PGHc12KPAw2BlBSkZGRSklJyffvyuWYDQWgICUKN+fOndNzzz2nDz74QBkZGfnez83NLXVhACougguA0ijRbKmRI0fqs88+07x58xQUFKS33npLEyZMUK1atfT222+7u0YAAIAiK1HPzZo1a/T222+rc+fOGjRokDp06KDExETVrVtX7733nh588EF31wkAAFAkJeq5sdlszqeCh4eHO6d+t2/fXp9/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3bt3V8+ePfXjjz8qODhY/fv316JFiyRJu3fv1r59+zRw4ECXY7Rp0ybf6wMHDjhfb9q0Sbfddptq166tsLAw9e/fXxkZGTp//rwkadiwYXrxxRfVrl07jRs3zmVA8+OPP67ly5frpptu0siRI/Xll18W6/xeffVV5/mlpaWpW7duzvdatmzp0jY3N1cTJ05UkyZNFBERoSpVqmjDhg366aefJEkHDhxQdna2brvttmLVcLkjR47owoULateunXNbQECAWrVq5XLNJKlp06bOv8fExEiSfvvttxJ/NlCREG6ACiw0NFSJiYlKTEzUzTffrLfeekvnzp3TggULJEmDBw/Wxo0b9fPPP2vx4sXq0qWL6tatW+TjHz16VL1791bTpk21atUqpaamOsfk5OTkOD/jhx9+UP/+/bV37161bNlSs2fPliRn0Hrqqaf066+/6rbbbtMzzzxT5M+vWbOm8/wSExMVGhrqcu6XmzZtml577TU999xz2rJli9LS0tS9e3dnnZUrVy7y57pDQECA8+8Wi0XSpTE/AApHuAHgZLFY5Ofnp//85z+SpCZNmqhly5ZasGCBli1bdtVxH1999VW+1w0bNpQkpaamyuFwaPr06brlllt0/fXX69dff813jNjYWA0ZMkSrV6/W008/7QxXklSjRg0NGDBA7777rmbOnKk333zTnafstH37dt11113q16+fmjVrpnr16um7775zvl+/fn1VrlzZOZj6SoGBgZIu9QBdS0JCggIDA7V9+3bntgsXLmjXrl1q1KiRm84EQCVfFwDAd7Kzs3XixAlJl2YmzZkzR2fPnlVycrKzzeDBg5WSkqLQ0FD9z//8T75jbN++XS+//LL69OmjjRs36sMPP9S6deskSYmJibpw4YJmz56t5ORkbd++XfPnz3fZf/jw4erZs6euv/56/f7779qyZYszHI0dO1YtWrTQjTfeqOzsbK1du9b5nrvVr19fK1eu1Jdffqlq1appxowZOnnypDN0BAcH67nnntPIkSMVGBiodu3a6dSpU9q/f78eeeQRRUVFqXLlylq/fr2uu+46BQcHy2q1unxGaGioHn/8cT377LOKiIhQnTp19PLLL+v8+fN65JFHPHJeQEVEzw1Qga1fv14xMTGKiYlR69attWvXLn344YfOacySdP/996tSpUq6//77FRwcnO8YTz/9tP7973+refPmevHFFzVjxgx1795dktSsWTPNmDFDL730kho3bqz33ntPU6ZMcdk/NzdXQ4cOVcOGDdWjRw9df/31ev311yVd6g0ZPXq0mjZtqo4dO8rf31/Lly/3yLV44YUXlJSUpO7du6tz586qWbNmvpWFx4wZo6efflpjx45Vw4YN1bdvX+c4mEqVKmnWrFl64403VKtWLd11111X/ZypU6fqnnvuUf/+/ZWUlKTDhw9rw4YNqlatmkfOC6iILIZhGL4uAkDZdfToUSUkJGjXrl1KSkpyeS8uLk7Dhw/X8OHDfVMcAFwFt6UAXNWFCxeUkZGhF154Qbfccku+YAMAZRW3pQBc1fbt2xUTE6Ndu3blGyfja5MnT1aVKlWu+tOzZ09flwfAx7gtBaDcsdls+Vb0zVO5cmXVrl3byxUBKEsINwAAwFS4LQUAAEyFcAMAAEyFcAMAAEyFcAMAAEyFcAMAAEyFcAMAAEyFcAMAAEyFcAMAAEzl/wMwUqMdfCv7dQAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_2.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHHCAYAAABDUnkqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABIK0lEQVR4nO3dd3xUVd7H8e8kpFEyPAkQWiQhIFWRoCIoTcGAGOVRFxAFRBHxIQqyomChiAKugkixLAsEXREQsFAWBFZEisoGoqCAlFBUiiQyCWEpZs7zB5tZhhRSJpnJzef9es0L5s65d373OM58Offce23GGCMAAACL8PN2AQAAAJ5EuAEAAJZCuAEAAJZCuAEAAJZCuAEAAJZCuAEAAJZCuAEAAJZCuAEAAJZCuAEAAJZCuAEAL0lMTJTNZtPBgwe9XQpgKYQbwMK2bt2qhIQENWvWTJUqVdJVV12lnj176qeffsrRtmPHjrLZbLLZbPLz81NoaKgaNWqkvn37as2aNYV632XLlqlDhw6qUaOGKlasqPr166tnz55atWqVp3YthwkTJuiTTz7JsXzz5s0aO3asTp06VWLvfbmxY8e6+tJms6lixYpq2rSpXnjhBaWnp3vkPebPn6+pU6d6ZFuA1RBuAAt79dVXtWTJEt1222168803NWjQIG3YsEGxsbHauXNnjvZ169bV+++/r/fee0+vvfaa7rrrLm3evFm33367evXqpQsXLlzxPV9//XXdddddstlsGjVqlN544w3de++92rt3rxYsWFASuykp/3Azbty4Ug032d5++229//77mjJliho3bqxXXnlFXbt2lSdu6Ue4AfJWwdsFACg5w4cP1/z58xUYGOha1qtXL11zzTWaNGmS/v73v7u1t9vtevDBB92WTZo0SU8++aTeeustRUVF6dVXX83z/f744w+NHz9eXbp00eeff57j9RMnThRzj3zHmTNnVLFixXzb3HfffapWrZokafDgwbr33nu1dOlSff3112rTpk1plAmUS4zcABbWtm1bt2AjSQ0bNlSzZs20a9euAm3D399f06ZNU9OmTTVjxgw5HI482548eVLp6em6+eabc329Ro0abs/Pnj2rsWPH6uqrr1ZwcLBq1aqle+65R/v373e1ef3119W2bVuFh4crJCRErVq10uLFi922Y7PZlJmZqXnz5rkOBT300EMaO3asRowYIUmKjo52vXbpHJe///3vatWqlUJCQhQWFqbevXvryJEjbtvv2LGjmjdvrqSkJLVv314VK1bUc889V6D+u9Stt94qSUpJScm33VtvvaVmzZopKChItWvX1pAhQ9xGnjp27KgVK1bo0KFDrn2KiooqdD2AVTFyA5QzxhgdP35czZo1K/A6/v7+uv/++/Xiiy9q48aN6t69e67tatSooZCQEC1btkxPPPGEwsLC8txmVlaW7rzzTq1bt069e/fW0KFDlZGRoTVr1mjnzp2KiYmRJL355pu666679MADD+j8+fNasGCB/vSnP2n58uWuOt5//30NHDhQN954owYNGiRJiomJUaVKlfTTTz/pww8/1BtvvOEaRalevbok6ZVXXtGLL76onj17auDAgfrtt980ffp0tW/fXtu3b1fVqlVd9aampqpbt27q3bu3HnzwQUVERBS4/7Jlh7bw8PA824wdO1bjxo1T586d9fjjj2vPnj16++23tXXrVm3atEkBAQF6/vnn5XA49PPPP+uNN96QJFWuXLnQ9QCWZQCUK++//76RZGbPnu22vEOHDqZZs2Z5rvfxxx8bSebNN9/Md/ujR482kkylSpVMt27dzCuvvGKSkpJytJszZ46RZKZMmZLjNafT6fr7mTNn3F47f/68ad68ubn11lvdlleqVMn0798/x7Zee+01I8mkpKS4LT948KDx9/c3r7zyitvyHTt2mAoVKrgt79Chg5Fk3nnnnTz3+1JjxowxksyePXvMb7/9ZlJSUsy7775rgoKCTEREhMnMzDTGGDN37ly32k6cOGECAwPN7bffbrKyslzbmzFjhpFk5syZ41rWvXt3U69evQLVA5Q3HJYCypHdu3dryJAhatOmjfr371+odbNHBjIyMvJtN27cOM2fP18tW7bU6tWr9fzzz6tVq1aKjY11OxS2ZMkSVatWTU888USObdhsNtffQ0JCXH///fff5XA41K5dO23btq1Q9V9u6dKlcjqd6tmzp06ePOl61KxZUw0bNtQXX3zh1j4oKEgDBgwo1Hs0atRI1atXV3R0tB577DE1aNBAK1asyHOuztq1a3X+/HkNGzZMfn7//Xp+9NFHFRoaqhUrVhR+R4FyiMNSQDlx7Ngxde/eXXa7XYsXL5a/v3+h1j99+rQkqUqVKldse//99+v+++9Xenq6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165dNXfuXGVlZen48eNatWqVhg4dqsWLF+uzzz5ThQpl8j83AKAMcTiqKC0tXGFhqbLbM7xSQ5n7tfvwww/18MMPa8GCBerevbu3y3Hj7aG5oKAg1axZU5JUp04dxcbG6qabbtJtt92mxMREDRw4UFOmTNHcuXN14MABhYWFKT4+Xn/5y19UuXJlrV+/XgMGDJD038m+Y8aM0dixY/X+++/rzTff1J49e1SpUiXdeuutmjp1ar6jZgCA8mXbtpZatuxOGeMnm82p+Pjlio31zBnNheHVw1KnT59WcnKykpOTJUkpKSlKTk7W4cOHJV08pNSvXz9X+/nz56tfv36aPHmyWrdurWPHjunYsWNyOBzeKD8HXxyau/XWW9WiRQstXbpUkuTn56dp06bphx9+0Lx58/TPf/5TzzzzjCSpbdu2mjp1qkJDQ3X06FEdPXpUTz/9tKSLp2uPHz9e3333nT755BMdPHhQDz30UKntBwDAtzkcVVzBRpKM8dOyZXfK4ahS6rV4deTmX//6lzp16uR6Pnz4cElS//79lZiYqKNHj7qCjiT99a9/1R9//KEhQ4ZoyJAhruXZ7ZG7xo0b6/vvv5ckDRs2zLU8KipKL7/8sgYPHqy33npLgYGBstvtstlsrhGgbA8//LDr7/Xr19e0adN0ww036PTp06pcuXKp7AcAwHelpYW7gk02Y/yUlhZW6oenvBpuOnbsKGNMnq9fHljWr19fsgVZlDHGdZhp7dq1mjhxonbv3q309HT98ccfOnv2rM6cOZPvxQuTkpI0duxYfffdd/r9999dk5QPHz6spk2blsp+AAB8V1hYqmw2p1vAsdmcCgtLK/VayuzZUii4Xbt2KTo6WgcPHtSdd96pa6+9VkuWLFFSUpLr6tD5HSrLzMxUXFycQkND9cEHH2jr1q36+OOPr7geAKD8sNszFB+/XDbbxX/8Zs+58cak4jI3oRiF889//lM7duzQU089paSkJDmdTk2ePFl+fhdz7aJFi9zaBwYGKisry23Z7t27lZqaqkmTJikyMlLSxUOKAAAEBga6/h4bu10xMfuUlhamsLA0t2BzabuSRrixkHPnzunYsWNup4JPnDhRd955p/r166edO3fqwoULmj59uuLj47Vp0ya98847btuIiorS6dOntW7dOrVo0UIVK1bUVVddpcDAQE2fPl2DBw/W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RE4FT0lJKdCjKMFm5syZioqKUnBwsFq3bq1vv/023/ZTp05Vo0aNFBISosjISD311FM6e/Zsod8XAABYT6HOliqJa9gsXLhQw4cP15gxY7Rt2za1aNFCcXFxOnHiRK7t58+fr5EjR2rMmDHatWuXZs+erYULF+q5557zeG0AAKDsKVS4CQgIcAsdI0aMUFpaWrEKmDJlih599FENGDBATZs21TvvvKOKFStqzpw5ubbfvHmzbr75ZvXp00dRUVG6/fbbdf/9919xtAcArOrnn6Uvvrj4J4BChpvLp+e8++67xbrVwvnz55WUlOR2Crmfn586d+6sLVu25LpO27ZtlZSU5AozBw4c0MqVK3XHHXfk2v7cuXNKT093ewCAVcyeLdWrJ91668U/Z8/2dkWA9xXpOjfZinsW+cmTJ5WVlaWIiAi35REREa7r51yuT58+OnnypG655RYZY/THH39o8ODBeR6WmjhxosaNG1esOgHA16SmpurgwT80aFANOZ02SZLTKT32mNF1151QVFQFhYeHe7lKwDuKdIVib1q/fr0mTJigt956S9u2bdPSpUu1YsUKjR8/Ptf2o0aNksPhcD2OHDlSyhUDgGelpqZqxowZmj59lSvYZMvKsmn69H9oxowZSk1N9VKFgHcVeuRm9OjRqlixoqSLh5VeeeUV2e12tzZTpkwp0LaqVasmf39/HT9+3G358ePHVbNmzVzXefHFF9W3b18NHDhQknTNNdcoMzNTgwYN0vPPPy8/P/e8FhQUpKCgoALVAwBlwfnz5yVJYWGpstmcMua/33s2m1NhYWlu7cqyn3+W9u6VGjaU6tb1djUoKwoVbtq3b689e/a4nrdt2zbHqd82m+3y1fIUGBioVq1aad26derRo4eki2dkrVu3TgkJCbmuc+bMmRwBxt/fX1LxD5MBQFlit2coPn65li27U8b4yWZzKj5+uez2DG+X5hGzZ0uDBl083ObnJ/31r9Ijj3i7KpQFhQo369ev93gBw4cPV//+/XX99dfrxhtv1NSpU5WZmakBAwZIkvr166c6depo4sSJkqT4+HhNmTJFLVu2VOvWrbVv3z69+OKLio+Pd4UcACgvYmO3KyZmn9LSwhQWlmaJYMN8IhRXsSYUX0loaKiSk5NVv379PNv06tVLv/32m0aPHq1jx47puuuu06pVq1yTjA8fPuw2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6tXL7Nu3rxT3qPAK0wfr1683TZo0MUFBQSY8PNz07dvX/PLLL4Xapi/ydB+Upc/BF198YSTleGTvc//+/U2HDh1yrHPdddeZwMBAU79+fTN37twc2y1Ln4GS6IOy9Bkwpmh9kFv7evXqubVZtGiRufrqq01gYKBp1qyZWbFiRensUBGURB8MGzbM9f9BRESEueOOO8y2bdtKb6cKqbB90KFDh3zbZyvp7wObMXkcPwEAACiDmHMDAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAD5g/fr1stlsOnXqlLdLAco8wg1Qzjz00EOy2WyaNGmS2/JPPvlENpvN9dwYo1mzZqlNmzYKDQ1V5cqV1axZMw0dOrTAN/k7c+aMRo0apZiYGAUHB6t69erq0KGDPv30U1ebqKgoTZ061SP7VtKy+85msykgIEDR0dF65plndPbs2UJtp2PHjho2bJjbsrZt2+ro0aOy2+0erBgonwg3QDkUHBysV199Vb///nuurxtj1KdPHz355JO644479Pnnn+vHH3/U7NmzFRwcrJdffrlA7zN48GAtXbpU06dP1+7du7Vq1Srdd999Sk1N9eTulKquXbvq6NGjOnDggN544w29++67GjNmTLG3GxgYqJo1a7oFTABF5NGbOQDwef379zd33nmnady4sRkxYoRr+ccff2yyvxI+/PBDI8l8+umnuW7D6XQW6L3sdrtJTEzM8/Xc7kOT7auvvjK33HKLCQ4ONnXr1jVPPPGEOX36tOv19957z7Rq1cpUrlzZREREmPvvv98cP37c9Xr2PXFWrVplrrvuOhMcHGw6depkjh8/blauXGkaN25sqlSpYu6//36TmZlZoP3p37+/ufvuu92W3XPPPaZly5au5ydPnjS9e/c2tWvXNiEhIaZ58+Zm/vz5btu4fJ9TUlJc9V56b7rFixebpk2bmsDAQFOvXj3z+uuvF6hOoLxj5AYoh/z9/TVhwgRNnz5dP//8c47XP/zwQzVq1Eh33XVXrusXdHShZs2aWrlypTIyMnJ9fenSpapbt65eeuklHT16VEePHpUk7d+/X127dtW9996r77//XgsXLtTGjRuVkJDgWvfChQsaP368vvvuO33yySc6ePCgHnrooRzvMXbsWM2YMUObN2/WkSNH1LNnT02dOlXz58/XihUr9Pnnn2v69OkF2p/L7dy5U5s3b1ZgYKBr2dmzZ9WqVSutWLFCO3fu1KBBg9S3b199++23kqQ333xTbdq00aOPPura58jIyBzbTkpKUs+ePdW7d2/t2LFDY8eO1YsvvqjExMQi1QqUK95OVwBK16WjDzfddJN5+OGHjTHuIzeNGzc2d911l9t6Q4cONZUqVTKVKlUyderUKdB7ffnll6Zu3bomICDAXH/99WbYsGFm48aNbm3q1atn3njjDbdljzzyiBk0aJDbsq+++sr4+fmZf//737m+19atW40kk5GRYYz578jN2rVrXW0mTpxoJJn9+/e7lj322GMmLi6uQPvTv39/4+/vbypVqmSCgoKMJOPn52cWL16c73rdu3c3f/7zn13PO3ToYIYOHerW5vKRmz59+pguXbq4tRkxYoRp2rRpgWoFyjNGboBy7NVXX9W8efO0a9euK7Z9/vnnlZycrNGjR+v06dMF2n779u114MABrVu3Tvfdd59++OEHtWvXTuPHj893ve+++06JiYmqXLmy6xEXFyen06mUlBRJF0c24uPjddVVV6lKlSrq0KGDJOnw4cNu27r22mtdf4+IiFDFihVVv359t2UnTpwo0P5IUqdOnZScnKxvvvlG/fv314ABA3Tvvfe6Xs/KytL48eN1zTXXKCwsTJUrV9bq1atz1HUlu3bt0s033+y27Oabb9bevXuVlZVVqG0B5Q3hBijH2rdvr7i4OI0aNcptecOGDbVnzx63ZdWrV1eDBg1Uo0aNQr1HQECA2rVrp2effVaff/65XnrpJY0fP17nz5/Pc53Tp0/rscceU3Jysuvx3Xffae/evYqJiVFmZqbi4uIUGhqqDz74QFu3btXHH38sSTm2GxAQ4Pp79llOl7LZbHI6nQXen0qVKqlBgwZq0aKF5syZo2+++UazZ892vf7aa6/pzTff1LPPPqsvvvhCycnJiouLy3d/AXhWBW8XAMC7Jk2apOuuu06NGjVyLbv//vvVp08fffrpp7r77rs9+n5NmzbVH3/8obNnzyowMFCBgYE5RiJiY2P1448/qkGDBrluY8eOHUpNTdWkSZNc81X+9a9/ebTOgvDz89Nzzz2n4cOHq0+fPgoJCdGmTZt0991368EHH5QkOZ1O/fTTT2ratKlrvdz2+XJNmjTRpk2b3JZt2rRJV199tfz9/T2/M4CFMHIDlHPXXHONHnjgAU2bNs21rHfv3rrvvvvUu3dvvfTSS/rmm2908OBBffnll1q4cGGBf1w7duyod999V0lJSTp48KBWrlyp5557Tp06dVJoaKiki9e52bBhg3755RedPHlSkvTss89q8+bNSkhIUHJysvbu3atPP/3UNaH4qquuUmBgoKZPn64DBw7os88+u+KhrpLypz/9Sf7+/po5c6aki6Nea9as0ebNm7Vr1y499thjOn78uNs6UVFRrj49efJkriNHf/7zn7Vu3TqNHz9eP/30k+bNm6cZM2bo6aefLpX9Asoywg0AvfTSS24/sDabTQsXLtTUqVO1cuVK3XbbbWrUqJEefvhhRUZGauPGjQXablxcnObNm6fbb79dTZo00RNPPKG4uDgtWrTI7b0PHjyomJgYVa9eXdLFeTJffvmlfvrpJ7Vr104tW7bU6NGjVbt2bUkXD5ElJibqo48+UtOmTTVp0iS9/vrrHuyRgqtQoYISEhL0l7/8RZmZmXrhhRcUGxuruLg4dezYUTVr1lSPHj3c1nn66afl7++vpk2bqnr16rnOx4mNjdWiRYu0YMECNW/eXKNHj9ZLL72U6xlhANzZjDHG20UAAAB4CiM3AADAUgg3AIrs0lO1L3989dVX3i6vUA4fPpzv/hT2VG4A3sNhKQBFlt8NNOvUqaOQkJBSrKZ4/vjjDx08eDDP16OiolShAieYAmUB4QYAAFgKh6UAAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAICl/D+ZrPBMl6C1yAAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_3.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_4.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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sABt27aFk5MT6tevj/3795ep61EuXryIrl276izr2rUrrly5gqKiIoO2RVTXMDQRkcl1794dwcHBmDlzps7yFi1a4NKlSzrLXFxc0Lx5c7i6uhr0HtbW1ujWrRtmzJiBAwcOYP78+ViwYAEKCgoe+po7d+7g1VdfRUpKivT47bffcOXKFfj6+iIvLw/BwcFQKpX45ptvcOrUKezYsQMAymzX2tpa+r3kqrfSZDIZtFqt3vvj4OCA5s2bo3379li/fj1OnjyJdevWSes/+eQTLF++HDNmzMDhw4eRkpKC4ODgCveXiEyrnrkLIKLaadGiRejQoQNatWolLRsxYgRGjhyJnTt34rnnnjPp+/n7++PBgwe4f/8+FAoFFApFmZGTgIAAXLhwAc2bNy93G2fPnoVarcaiRYuk84F+/fVXk9apDysrK7z77ruIiorCyJEjYWdnh59//hnPPfccRo0aBQDQarW4fPky/P39pdeVt8//9vjjj+Pnn3/WWfbzzz+jZcuWkMvlpt8ZolqEI01EVCXatm2Ll19+GStWrJCWDR8+HC+88AKGDx+O+fPn4+TJk0hLS8ORI0ewefNmvb+0e/bsibVr1yIpKQlpaWnYu3cv3n33XfTq1QtKpRJA8TxNR48exd9//43bt28DAGbMmIHjx48jIiICKSkpuHLlCnbu3CmdCN60aVMoFAqsXLkSf/zxB77//vtHHvKrKi+++CLkcjlWrVoFoHiULj4+HsePH8fFixfx6quvIjMzU+c13t7eUp/evn273JGuqVOn4tChQ1iwYAEuX76MDRs2IDo6Gm+//Xa17BdRTcbQRERVZv78+Tpf3DKZDJs3b8ayZcuwd+9e9OnTB61atcK4cePg6emJY8eO6bXd4OBgbNiwAf369cPjjz+OKVOmIDg4GFu2bNF577S0NPj6+sLFxQVA8XlIR44cweXLl9GtWzd07NgRs2fPRuPGjQEUHyqMjY3F1q1b4e/vj0WLFuHTTz81YY/or169eoiIiMDixYuRl5eHWbNmISAgAMHBwejZsyfc3d0xePBgnde8/fbbkMvl8Pf3h4uLS7nnOwUEBGDLli3YtGkT2rRpg9mzZ2P+/PnlXiFIRLpkQghh7iKIiIiILB1HmoiIiIj0wNBERBan9JQA/3789NNP5i7PINevX69wfwydMoCIzIeH54jI4lR0494mTZrAzs6uGqupnAcPHiAtLe2h6729vVGvHi9kJqoJGJqIiIiI9MDDc0RERER6YGgiIiIi0gNDExEREZEeGJqIiIiI9MDQRERERKQHhiYiIiIiPTA0EREREemBoYmIiIhID/8fQk8GCV0cz9oAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_5.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlEAAAHHCAYAAACfqw0dAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABX9ElEQVR4nO3de1xUZf4H8M8wMjMwwiigMCgCId4vKCRC3qPFFlG22tRK0Syyn5RGeStvpYbhJVIs01Wx0lDTNTUzjXTbElERMtNICW+roA45ICQg8/z+YDnryEUYGIbL5/16zWvgnO855zlnyfnsc555jkwIIUBERERENWJl6QYQERERNUYMUUREREQmYIgiIiIiMgFDFBEREZEJGKKIiIiITMAQRURERGQChigiIiIiEzBEEREREZmAIYqIiIjIBAxRRERNXHx8PGQyGS5cuGDpphA1KQxRRFRrx48fR2RkJLp37w61Wo0OHTrg6aefxm+//VaudsiQIZDJZJDJZLCysoK9vT06d+6McePG4eDBgzU67p49ezB48GC0bdsWtra2eOihh/D0009j//79dXVq5bz77rvYtWtXueVHjhzBggULcOvWLbMd+34LFiyQrqVMJoOtrS26deuGOXPmIDc3t06OsWXLFsTGxtbJvoiaGoYoIqq19957Dzt27MCjjz6KDz74ABEREfj+++/Rt29fnD59ulx9+/bt8emnn+KTTz7B0qVLMXLkSBw5cgR/+ctfMHr0aBQXFz/wmMuWLcPIkSMhk8kwe/ZsvP/++3jyySdx7tw5JCQkmOM0AVQdot5+++16DVFlPvroI3z66adYsWIFunTpgsWLF2P48OGoi0ejMkQRVa6FpRtARI1fVFQUtmzZAoVCIS0bPXo0evbsiSVLluCzzz4zqtdoNHjuueeMli1ZsgSvvvoqPvzwQ3h4eOC9996r9Hh3797FwoUL8dhjj+HAgQPl1l+/fr2WZ9RwFBQUwNbWtsqap556Ck5OTgCAyZMn48knn8TOnTtx9OhRBAQE1EcziZol9kQRUa0FBgYaBSgA8Pb2Rvfu3XH27Nlq7UMul2PlypXo1q0b4uLioNfrK629efMmcnNz8cgjj1S4vm3btka/37lzBwsWLECnTp2gUqmg1WrxxBNPICMjQ6pZtmwZAgMD4ejoCBsbG/j6+uKLL74w2o9MJkN+fj42bdok3UKbMGECFixYgOnTpwMAPD09pXX3jkH67LPP4OvrCxsbGzg4OGDMmDG4fPmy0f6HDBmCHj16ICUlBYMGDYKtrS3efPPNal2/ew0bNgwAkJmZWWXdhx9+iO7du0OpVMLV1RVTpkwx6kkbMmQIvvrqK1y8eFE6Jw8Pjxq3h6ipYk8UEZmFEALZ2dno3r17tbeRy+UYO3Ys5s6dix9++AEhISEV1rVt2xY2NjbYs2cPXnnlFTg4OFS6z5KSEowYMQKJiYkYM2YMpk6diry8PBw8eBCnT5+Gl5cXAOCDDz7AyJEj8eyzz6KoqAgJCQn4+9//jr1790rt+PTTT/HCCy+gX79+iIiIAAB4eXlBrVbjt99+w+eff473339f6hVq06YNAGDx4sWYO3cunn76abzwwgu4ceMGVq1ahUGDBiE1NRWtWrWS2qvT6fD4449jzJgxeO655+Ds7Fzt61emLBw6OjpWWrNgwQK8/fbbCAoKwssvv4z09HR89NFHOH78OH788UdYW1vjrbfegl6vx5UrV/D+++8DAFq2bFnj9hA1WYKIyAw+/fRTAUCsX7/eaPngwYNF9+7dK93un//8pwAgPvjggyr3P2/ePAFAqNVq8fjjj4vFixeLlJSUcnUbNmwQAMSKFSvKrTMYDNLPBQUFRuuKiopEjx49xLBhw4yWq9VqER4eXm5fS5cuFQBEZmam0fILFy4IuVwuFi9ebLT8559/Fi1atDBaPnjwYAFArFmzptLzvtf8+fMFAJGeni5u3LghMjMzxccffyyUSqVwdnYW+fn5QgghNm7caNS269evC4VCIf7yl7+IkpISaX9xcXECgNiwYYO0LCQkRLi7u1erPUTNDW/nEVGd+/XXXzFlyhQEBAQgPDy8RtuW9XTk5eVVWff2229jy5Yt6NOnD7755hu89dZb8PX1Rd++fY1uIe7YsQNOTk545ZVXyu1DJpNJP9vY2Eg///HHH9Dr9Rg4cCBOnjxZo/bfb+fOnTAYDHj66adx8+ZN6eXi4gJvb28cOnTIqF6pVGLixIk1Okbnzp3Rpk0beHp64qWXXkLHjh3x1VdfVTqW6ttvv0VRURGmTZsGK6v/fQy8+OKLsLe3x1dffVXzEyVqhng7j4jqVFZWFkJCQqDRaPDFF19ALpfXaPvbt28DAOzs7B5YO3bsWIwdOxa5ublITk5GfHw8tmzZgtDQUJw+fRoqlQoZGRno3LkzWrSo+p+7vXv3YtGiRUhLS0NhYaG0/N6gZYpz585BCAFvb+8K11tbWxv93q5du3Ljyx5kx44dsLe3h7W1Ndq3by/doqzMxYsXAZSGr3spFAo89NBD0noiqhpDFBHVGb1ej8cffxy3bt3Cv//9b7i6utZ4H2VTInTs2LHa29jb2+Oxxx7DY489Bmtra2zatAnJyckYPHhwtbb/97//jZEjR2LQoEH48MMPodVqYW1tjY0bN2LLli01Pod7GQwGyGQyfP311xUGyvvHGN3bI1ZdgwYNksZhEVH9YYgiojpx584dhIaG4rfffsO3336Lbt261XgfJSUl2LJlC2xtbTFgwACT2uHn54dNmzbh2rVrAEoHficnJ6O4uLhcr0+ZHTt2QKVS4ZtvvoFSqZSWb9y4sVxtZT1TlS338vKCEAKenp7o1KlTTU/HLNzd3QEA6enpeOihh6TlRUVFyMzMRFBQkLSstj1xRE0Zx0QRUa2VlJRg9OjRSEpKwvbt202am6ikpASvvvoqzp49i1dffRX29vaV1hYUFCApKanCdV9//TWA/92qevLJJ3Hz5k3ExcWVqxX/nYxSLpdDJpOhpKREWnfhwoUKJ9VUq9UVTqipVqsBoNy6J554AnK5HG+//Xa5yS+FENDpdBWfpBkFBQVBoVBg5cqVRm1av3499Hq90bci1Wp1ldNNEDVn7Ikiolp7/fXXsXv3boSGhiInJ6fc5Jr3T6yp1+ulmoKCApw/fx47d+5ERkYGxowZg4ULF1Z5vIKCAgQGBqJ///4YPnw43NzccOvWLezatQv//ve/ERYWhj59+gAAxo8fj08++QRRUVE4duwYBg4ciPz8fHz77bf4v//7P4waNQohISFYsWIFhg8fjmeeeQbXr1/H6tWr0bFjR5w6dcro2L6+vvj222+xYsUKuLq6wtPTE/7+/vD19QUAvPXWWxgzZgysra0RGhoKLy8vLFq0CLNnz8aFCxcQFhYGOzs7ZGZm4p///CciIiLwxhtv1Or611SbNm0we/ZsvP322xg+fDhGjhyJ9PR0fPjhh3j44YeN/vfy9fXF1q1bERUVhYcffhgtW7ZEaGhovbaXqMGy5FcDiahpKPtqfmWvqmpbtmwpvL29xXPPPScOHDhQreMVFxeLdevWibCwMOHu7i6USqWwtbUVffr0EUuXLhWFhYVG9QUFBeKtt94Snp6ewtraWri4uIinnnpKZGRkSDXr168X3t7eQqlUii5duoiNGzdKUwjc69dffxWDBg0SNjY2AoDRdAcLFy4U7dq1E1ZWVuWmO9ixY4cYMGCAUKvVQq1Wiy5duogpU6aI9PR0o2tT1fQP9ytr340bN6qsu3+KgzJxcXGiS5cuwtraWjg7O4uXX35Z/PHHH0Y1t2/fFs8884xo1aqVAMDpDojuIROiDh6uRERERNTMcEwUERERkQkYooiIiIhMwBBFREREZAKGKCIiIiITMEQRERERmYAhioiIiMgEnGzTjAwGA65evQo7Ozs+OoGIiKiREEIgLy8Prq6usLKqvL+JIcqMrl69Cjc3N0s3g4iIiExw+fJltG/fvtL1DFFmZGdnB6D0f4SqngNGREREDUdubi7c3Nykz/HKMESZUdktPHt7e4YoIiKiRuZBQ3E4sJyIiIjIBAxRRERERCZgiCIiIiIyAcdEERERNTAlJSUoLi62dDOaLGtra8jl8lrvhyGKiIiogRBCICsrC7du3bJ0U5q8Vq1awcXFpVbzODJEERERNRBlAapt27awtbXlRM1mIIRAQUEBrl+/DgDQarUm74shioiIqAEoKSmRApSjo6Olm9Ok2djYAACuX7+Otm3bmnxrr0EMLF+9ejU8PDygUqng7++PY8eOVVm/fft2dOnSBSqVCj179sS+ffuM1gshMG/ePGi1WtjY2CAoKAjnzp2rcF+FhYXw8fGBTCZDWlqatPzw4cMYNWoUtFot1Go1fHx8sHnz5lqfKxERUUXKxkDZ2tpauCXNQ9l1rs3YM4uHqK1btyIqKgrz58/HyZMn0bt3bwQHB0vdbPc7cuQIxo4di0mTJiE1NRVhYWEICwvD6dOnpZqYmBisXLkSa9asQXJyMtRqNYKDg3Hnzp1y+5sxYwZcXV0rPE6vXr2wY8cOnDp1ChMnTsT48eOxd+/eujt5IiKi+/AWXv2oi+ssE0KIOmiLyfz9/fHwww8jLi4OQOlDe93c3PDKK69g1qxZ5epHjx6N/Px8ozDTv39/+Pj4YM2aNRBCwNXVFa+//jreeOMNAIBer4ezszPi4+MxZswYabuvv/4aUVFR2LFjB7p3747U1FT4+PhU2taQkBA4Oztjw4YN1Tq33NxcaDQa6PX6Ws9YrtPpUFRUVOl6hULB7l8iokbszp07yMzMhKenJ1QqlaWb0+RVdb2r+/lt0TFRRUVFSElJwezZs6VlVlZWCAoKQlJSUoXbJCUlISoqymhZcHAwdu3aBQDIzMxEVlYWgoKCpPUajQb+/v5ISkqSQlR2djZefPFF7Nq1q9pdp3q9Hl27dq10fWFhIQoLC6Xfc3Nzq7XfB9HpdFLIrEpkZCSDFBERUT2x6O28mzdvoqSkBM7OzkbLnZ2dkZWVVeE2WVlZVdaXvVdVI4TAhAkTMHnyZPj5+VWrrdu2bcPx48cxceLESmuio6Oh0Wikl5ubW7X2/SBV9UCZUkdERFSXJkyYAJlMBplMBmtrazg7O+Oxxx7Dhg0bYDAYqr2f+Ph4tGrVynwNrWMWHxNlCatWrUJeXp5RD1hVDh06hIkTJ2LdunXo3r17pXWzZ8+GXq+XXpcvX66rJhMREVVJp9Ph2rVrlb50Op1Zjz98+HBcu3YNFy5cwNdff42hQ4di6tSpGDFiBO7evWvWY1uKRW/nOTk5QS6XIzs722h5dnY2XFxcKtzGxcWlyvqy9+zsbKO5H7Kzs6XxTt999x2SkpKgVCqN9uPn54dnn30WmzZtkpb961//QmhoKN5//32MHz++yvNRKpXl9klERGRuDWHYh1KplD6D27Vrh759+6J///549NFHER8fjxdeeAErVqzAxo0b8fvvv8PBwQGhoaGIiYlBy5YtcfjwYeluT9mg7/nz52PBggX49NNP8cEHHyA9PR1qtRrDhg1DbGws2rZta5ZzqS6L9kQpFAr4+voiMTFRWmYwGJCYmIiAgIAKtwkICDCqB4CDBw9K9Z6ennBxcTGqyc3NRXJyslSzcuVK/PTTT0hLS0NaWpo0RcLWrVuxePFiabvDhw8jJCQE7733HiIiIurmpImIiOpYQx32MWzYMPTu3Rs7d+4EUDrueeXKlfjll1+wadMmfPfdd5gxYwYAIDAwELGxsbC3t5d6z8q+IFZcXIyFCxfip59+wq5du3DhwgVMmDChXs+lIhafbDMqKgrh4eHw8/NDv379EBsbi/z8fCmNjh8/Hu3atUN0dDQAYOrUqRg8eDCWL1+OkJAQJCQk4MSJE1i7di2A0vQ6bdo0LFq0CN7e3vD09MTcuXPh6uqKsLAwAECHDh2M2tCyZUsAgJeXF9q3bw+g9BbeiBEjMHXqVDz55JPSeCqFQgEHBwezXxciIqKmoEuXLjh16hQAYNq0adJyDw8PLFq0CJMnT8aHH34IhUIBjUYDmUxW7m7U888/L/380EMPYeXKlXj44Ydx+/Zt6TPcEiweokaPHo0bN25g3rx5yMrKgo+PD/bv3y8NDL906RKsrP7XYRYYGIgtW7Zgzpw5ePPNN+Ht7Y1du3ahR48eUs2MGTOQn5+PiIgI3Lp1CwMGDMD+/ftr9JXRTZs2oaCgANHR0VKAA4DBgwfj8OHDtT/xWtDr7ZCT4wgHBx00mjyLtoWIiKgqQgjp9ty3336L6Oho/Prrr8jNzcXdu3dx584dFBQUVPlN+ZSUFCxYsAA//fQT/vjjD2mw+qVLl9CtW7d6OY+KWDxEAaX3aCMjIytcV1Fg+fvf/46///3vle5PJpPhnXfewTvvvFOt43t4eOD+6bLi4+MRHx9fre3r08mTfbBnzwgIYQWZzIDQ0L3o2zfV0s0iIiKq0NmzZ+Hp6YkLFy5gxIgRePnll7F48WI4ODjghx9+wKRJk1BUVFRpiMrPz0dwcDCCg4OxefNmtGnTBpcuXUJwcLDFv5XeIEIUVU2hUAAo7YEqC1AAIIQV9uwZAS+v89Bo8qQ6IiKihuC7777Dzz//jNdeew0pKSkwGAxYvny5dIdp27ZtRvUKhQIlJSVGy3799VfodDosWbJEmjroxIkT9XMCD9AspzhobBwdHREZGYnAwHApQJURwgqPPBLOiTaJiMiiCgsLkZWVhf/85z84efIk3n33XYwaNQojRozA+PHj0bFjRxQXF2PVqlX4/fff8emnn2LNmjVG+/Dw8MDt27eRmJiImzdvoqCgAB06dIBCoZC22717NxYuXGihszTGENVIODo6on9/R1jd97+YXA74+zsyQBERkUXt378fWq0WHh4eGD58OA4dOoSVK1fiyy+/hFwuR+/evbFixQq899576NGjBzZv3mw05hgoHfc8efJkjB49Gm3atEFMTAzatGmD+Ph4bN++Hd26dcOSJUuwbNkyC52lMYs/O68pq8tn55VZvx546SWgpKQ0QH38MTBpUp3smoiILKg2z85rCPNENTaN/tl5VHOTJgHBwcD580DHjsB/Z2QgIqJmrGzYBx9UX78Yohqh9u0ZnoiIyBgDUv3jmCgiIiIiEzBEEREREZmAIYqIiIjIBAxRRERERCZgiCIiIiIyAUMUERERkQkYooiIiIhMwBBFREREDdrhw4chk8lw69atam/j4eGB2NhYs7UJYIgiIiKiWpowYQJkMhkmT55cbt2UKVMgk8kwYcKE+m+YmTFEERERUa25ubkhISEBf/75p7Tszp072LJlCzp06GDBlpkPQxQRERHVWt++feHm5oadO3dKy3bu3IkOHTqgT58+0rLCwkK8+uqraNu2LVQqFQYMGIDjx48b7Wvfvn3o1KkTbGxsMHToUFy4cKHc8X744QcMHDgQNjY2cHNzw6uvvor8/HyznV9FGKKIiIiamCtXgEOHSt/r0/PPP4+NGzdKv2/YsAETJ040qpkxYwZ27NiBTZs24eTJk+jYsSOCg4ORk5MDALh8+TKeeOIJhIaGIi0tDS+88AJmzZpltI+MjAwMHz4cTz75JE6dOoWtW7fihx9+QGRkpPlP8h4MUURERE3I+vWAuzswbFjp+/r19Xfs5557Dj/88AMuXryIixcv4scff8Rzzz0nrc/Pz8dHH32EpUuX4vHHH0e3bt2wbt062NjYYP1/G/rRRx/By8sLy5cvR+fOnfHss8+WG08VHR2NZ599FtOmTYO3tzcCAwOxcuVKfPLJJ7hz5069nW+LejsSERERmdWVK0BEBGAwlP5uMAAvvQQEBwPt25v/+G3atEFISAji4+MhhEBISAicnJyk9RkZGSguLsYjjzwiLbO2tka/fv1w9uxZAMDZs2fh7+9vtN+AgACj33/66SecOnUKmzdvlpYJIWAwGJCZmYmuXbua4/TKYYgiIiJqIs6d+1+AKlNSApw/Xz8hCii9pVd2W2316tVmOcbt27fx0ksv4dVXXy23rj4HsTNEERERNRHe3oCVlXGQksuBjh3rrw3Dhw9HUVERZDIZgoODjdZ5eXlBoVDgxx9/hLu7OwCguLgYx48fx7Rp0wAAXbt2xe7du422O3r0qNHvffv2xZkzZ9CxPk+sAhwTRURE1ES0bw+sXVsanIDS948/rr9eqNJjynH27FmcOXMG8rKG/JdarcbLL7+M6dOnY//+/Thz5gxefPFFFBQUYNKkSQCAyZMn49y5c5g+fTrS09OxZcsWxMfHG+1n5syZOHLkCCIjI5GWloZz587hyy+/rPeB5eyJIiIiakImTSodA3X+fGkPVH0GqDL29vaVrluyZAkMBgPGjRuHvLw8+Pn54ZtvvkHr1q0BlN6O27FjB1577TWsWrUK/fr1w7vvvovnn39e2kevXr3wr3/9C2+99RYGDhwIIQS8vLwwevRos5/bvWRCCFGvR2xGcnNzodFooNfrq/yDIiIiunPnDjIzM+Hp6QmVSmXp5jR5VV3v6n5+83YeERERkQkYooiIiIhMwBBFREREZAKGKCIiIiITMEQRERE1IPy+V/2oi+vMEEVERNQAWFtbAwAKCgos3JLmoew6l113U3CeKCIiogZALpejVatWuH79OgDA1tYWMpnMwq1qeoQQKCgowPXr19GqVatyE4LWBEMUERFRA+Hi4gIAUpAi82nVqpV0vU3FEEVERNRAyGQyaLVatG3bFsXFxZZuTpNlbW1dqx6oMgxRREREDYxcLq+TD3kyLw4sJyIiIjIBQxQRERGRCRiiiIiIiEzAEEVERERkAoYoIiIiIhMwRBERERGZoEGEqNWrV8PDwwMqlQr+/v44duxYlfXbt29Hly5doFKp0LNnT+zbt89ovRAC8+bNg1arhY2NDYKCgnDu3LkK91VYWAgfHx/IZDKkpaUZrTt16hQGDhwIlUoFNzc3xMTE1Oo8m6srV4BDh0rfiYiImgqLh6itW7ciKioK8+fPx8mTJ9G7d28EBwdXOlvrkSNHMHbsWEyaNAmpqakICwtDWFgYTp8+LdXExMRg5cqVWLNmDZKTk6FWqxEcHIw7d+6U29+MGTPg6upabnlubi7+8pe/wN3dHSkpKVi6dCkWLFiAtWvX1t3JN2E6nQ7Xrl3D8uW34O4uMGwY4O4usHz5LVy7dg06nc7STSQiIqodYWH9+vUTU6ZMkX4vKSkRrq6uIjo6usL6p59+WoSEhBgt8/f3Fy+99JIQQgiDwSBcXFzE0qVLpfW3bt0SSqVSfP7550bb7du3T3Tp0kX88ssvAoBITU2V1n344YeidevWorCwUFo2c+ZM0blz52qfm16vFwCEXq+v9jZNwc2bN8WCBQvEa68tFzJZiQCE9JLJSsRrry0XCxYsEDdv3rR0U4mIiMqp7ue3RXuiioqKkJKSgqCgIGmZlZUVgoKCkJSUVOE2SUlJRvUAEBwcLNVnZmYiKyvLqEaj0cDf399on9nZ2XjxxRfx6aefwtbWtsLjDBo0CAqFwug46enp+OOPPypsW2FhIXJzc41ezVFRUREAICfHEff/iQlhhZwcB6M6IiKixsiiIermzZsoKSmBs7Oz0XJnZ2dkZWVVuE1WVlaV9WXvVdUIITBhwgRMnjwZfn5+NTrOvce4X3R0NDQajfRyc3OrsK65cHDQQSYzGC2TyQxwcMixUIuIiIjqjsXHRFnCqlWrkJeXh9mzZ9fpfmfPng29Xi+9Ll++XKf7b2w0mjyEhu6VgpRMZkBo6F5oNHkWbhkREVHtWfQBxE5OTpDL5cjOzjZanp2dDRcXlwq3cXFxqbK+7D07OxtardaoxsfHBwDw3XffISkpCUql0mg/fn5+ePbZZ7Fp06ZKj3PvMe6nVCrL7bO569s3FV5e55GT4wAHh5w6D1BXrgDnzgHe3kD79nW6ayIioipZtCdKoVDA19cXiYmJ0jKDwYDExEQEBARUuE1AQIBRPQAcPHhQqvf09ISLi4tRTW5uLpKTk6WalStX4qeffkJaWhrS0tKkKRK2bt2KxYsXS8f5/vvvUVxcbHSczp07o3Xr1nVw9s2HRpMHT8+LdR6g1q8H3N3x32/+lf5ORERUXyzaEwUAUVFRCA8Ph5+fH/r164fY2Fjk5+dj4sSJAIDx48ejXbt2iI6OBgBMnToVgwcPxvLlyxESEoKEhAScOHFCmnpAJpNh2rRpWLRoEby9veHp6Ym5c+fC1dUVYWFhAIAOHToYtaFly5YAAC8vL7T/b3fGM888g7fffhuTJk3CzJkzcfr0aXzwwQd4//336+OyUBV0Oh0uXLiLiIi2MBhkAACDAXjpJQEfn+vw8GgBR0dHC7eSiIiaOouHqNGjR+PGjRuYN28esrKy4OPjg/3790uDuC9dugQrq/91mAUGBmLLli2YM2cO3nzzTXh7e2PXrl3o0aOHVDNjxgzk5+cjIiICt27dwoABA7B//36oVKpqt0uj0eDAgQOYMmUKfH194eTkhHnz5iEiIqLuTp5qTKfTIS4uDpmZHjAYwo3WlZTIsGrV1/D0vIjIyEgGKSIiMiuZEEJYuhFNVW5uLjQaDfR6Pezt7S3dnHpTFnQexJSgc+3aNaxduxZ6vR1iY6cZTaEgkxkwbVosNJo8REREGI2JIyIiqq7qfn5bvCeKmh5HR0dERkZWOQ+UQqGoVU9R2Tf/9uwZASGs+M0/IiKqdwxRZBb1cSvN3N/8IyIiqgpDFDVqGk0ewxMREVlEs5xsk4iIiKi2GKKIiIiITMAQRURERGQChihqVBQKRZ3WERERmYoDy6lRqY/pE4iIiKqDIYoaHQYkIiJqCHg7j4iIiMgEDFFEREREJmCIIiIiIjIBQxRRA3HlCnDoUOk7ERE1fAxRRA3A+vWAuzswbFjp+/r1lm4RERE9CEMUkQXpdDqkpGQjIkLAYChdZjAAL70kkJKSDZ1OZ9kGEhFRpTjFAZGF6HQ6xMXFITPTAwZDuNG6khIZVq36Gp6eFxEZGclpHYiIGiD2RBFZSNmEoQ4OOshkBqN1MpkBDg45RnVERNSwMEQRWZhGk4fQ0L1SkJLJDAgN3QuNJs/CLSMioqrwdh5RA9C3byq8vM4jJ8cBDg45DFBERI0AQxRRA6HR5DE8ERE1IrydR0RERGQChigiIiIiEzBEEREREZmAIYrIQhQKRZ3WERFR/eLAciILcXR0RGRkZJXzQCkUCk602QRcuQKcOwd4ewPt21u6NURUVxiiiCyIAanpW78eiIgofZyPlRWwdi0waZKlW0VEdYG384iIzIDPRSRq+tgTRURUx/hcRKLmgT1RREQoHbd06FDpe23xuYhEzQNDFBE1WzqdDteuXcPy5bfg7i4wbBjg7i6wfPktXLt2rda33PhcRKKmjbfziKhZKrvlptfbITZ2GoSQAQAMBhmmT7fHf/6zARpNXq1vufG5iERNF0MUETVLZbfScnIcIYRxp7wQVsjJcYBGk1cnt9z4XESipom384ioWXvQuCUiosowRBFRk1LTAeIct0REpuLtPCJqMkyd2JLjlojIFAxRRNTo6XQ6XLhwFxERbWEwlA0QL53Y0sfnOjw8WjxwcHhdjlvicxGJmgeGKCJq1BrixJZ8LiJR88AQRUSN2v0TW977TTtLTmzJgETU9HFgORE1CTUdIM5bbkRUW+yJIqImoyYDxO+/5Xb1qhUyM1vA0/MuXF1LgxhvuRFRVRiiiKhJMWWA+JYtNpgxQwODQQYrK4GYGD2eeeZPM7WQiJoKi9/OW716NTw8PKBSqeDv749jx45VWb99+3Z06dIFKpUKPXv2xL59+4zWCyEwb948aLVa2NjYICgoCOfOnTOqGTlyJDp06ACVSgWtVotx48bh6tWrRjXffPMN+vfvDzs7O7Rp0wZPPvkkLly4UCfnTESWVzYgfenSzzF9uv093+orfezL0qWfIy4urtbPzyOipsuiIWrr1q2IiorC/PnzcfLkSfTu3RvBwcG4fv16hfVHjhzB2LFjMWnSJKSmpiIsLAxhYWE4ffq0VBMTE4OVK1dizZo1SE5OhlqtRnBwMO7cuSPVDB06FNu2bUN6ejp27NiBjIwMPPXUU9L6zMxMjBo1CsOGDUNaWhq++eYb3Lx5E0888YT5LgYR1avqPPbl3joiovtZNEStWLECL774IiZOnIhu3bphzZo1sLW1xYYNGyqs/+CDDzB8+HBMnz4dXbt2xcKFC9G3b1/ExcUBKO2Fio2NxZw5czBq1Cj06tULn3zyCa5evYpdu3ZJ+3nttdfQv39/uLu7IzAwELNmzcLRo0dRXFwMAEhJSUFJSQkWLVoELy8v9O3bF2+88QbS0tKkGiJqGvjYFyIylcVCVFFREVJSUhAUFPS/xlhZISgoCElJSRVuk5SUZFQPAMHBwVJ9ZmYmsrKyjGo0Gg38/f0r3WdOTg42b96MwMBAWFtbAwB8fX1hZWWFjRs3oqSkBHq9Hp9++imCgoKkmooUFhYiNzfX6EVE5lXbb9nxsS9EZCqLDSy/efMmSkpK4OzsbLTc2dkZv/76a4XbZGVlVViflZUlrS9bVllNmZkzZyIuLg4FBQXo378/9u7dK63z9PTEgQMH8PTTT+Oll15CSUkJAgICyo2/ul90dDTefvvtKmuIqG7VxcSWfOwLEZnC4gPLLWX69OlITU3FgQMHIJfLMX78eAghAJSGsRdffBHh4eE4fvw4/vWvf0GhUOCpp56Saioye/Zs6PV66XX58uX6Oh2iZs3R0RFarbbSV3WmKdBo8uDpeZEBioiqzWI9UU5OTpDL5cjOzjZanp2dDRcXlwq3cXFxqbK+7D07OxtardaoxsfHp9zxnZyc0KlTJ3Tt2hVubm44evQoAgICsHr1amg0GsTExEj1n332Gdzc3JCcnIz+/ftX2D6lUgmlUlm9C0BERESNmsV6ohQKBXx9fZGYmCgtMxgMSExMREBAQIXbBAQEGNUDwMGDB6V6T09PuLi4GNXk5uYiOTm50n2WHRcoHdMEAAUFBbCyMr40crncqJaIiIiaN4vezouKisK6deuwadMmnD17Fi+//DLy8/MxceJEAMD48eMxe/ZsqX7q1KnYv38/li9fjl9//RULFizAiRMnEBkZCQCQyWSYNm0aFi1ahN27d+Pnn3/G+PHj4erqirCwMABAcnIy4uLikJaWhosXL+K7777D2LFj4eXlJQWtkJAQHD9+HO+88w7OnTuHkydPYuLEiXB3d0efPn3q9yIRkVnUdED6lSvAoUOl70REAABhYatWrRIdOnQQCoVC9OvXTxw9elRaN3jwYBEeHm5Uv23bNtGpUyehUChE9+7dxVdffWW03mAwiLlz5wpnZ2ehVCrFo48+KtLT06X1p06dEkOHDhUODg5CqVQKDw8PMXnyZHHlyhWj/Xz++eeiT58+Qq1WizZt2oiRI0eKs2fP1ujc9Hq9ACD0en2NtiOi+nHz5k1x9erVSl/nz58XV69eFcuW/SGsrAwCEMLKyiCWLftDXL16Vdy8edPSp0BEZlDdz2+ZEFWMlKZayc3NhUajgV6vh729vaWbQ0Q1UDajuV5vh9jYaUYTcspkBkybFguNJg+RkZF8vh5RE1Pdz+9m++08IqKqcEZzInoQhigioipYWxcCuL/DXsDaunGHJ47xIqo9higiogro9XoAQHGxEoDsvrUyFBcrjOoaA51Oh2vXrmH58ltwdxcYNgxwdxdYvvwWrl27xoctE9WQxeaJIiJqyMqek1n2bL37x0SVPVuvsTxPs/wYr9JgaDDIMH26Pf7znw0c40VUQ+yJIiKqQlN5th7HeBHVPfZEERE9QFN6tt6DetaIqPrYE0VEVA1N5dl6TaVnjaghYE8UEVEFWrSo3j+P1a1rSJpSzxqRJTW+//qJiOpBq1at6rSuodFo8hieiGqJt/OIiIiITMAQRURUgZo+oJiImh/eziMiqoCjoyMiIyOr/Mq/QqFoNHMqMRQS1T2GKCKiSjSWgFQdjo6OeO6551BQUAAAyMpqgUuXlOjQoRAuLncBALa2tk3qnInMjSGKiKgZ0Ol0+OyzzwAAJ0/2wZ49IyCElTTFQd++qQDAGcuJaoBjooiImoGy25J6vZ0UoIDS2cr37BkBvd7OqI6IHowhioioGXnQY1+IqPoYooiImpGyx77ci499ITINQxQRUTPCx74Q1R0OLCciamb42BeiusEQRUTUDPGxL0S1x9t5RERERCZgiCIiagY4YzlR3ePtPCKiZqCpPcaGqCFgiCIiaiYYkIjqFm/nEREREZmAIYqIiIjIBAxRRERERCZgiCIiIiIyAUMUERERkQkYooiIiIhMwCkOiIioVnQ6HeefomaJIYqIiEym0+kQFxcn/a7X2yEnxxEODjqjZ/NFRkYySFGTwxBFREQmu7cH6uTJPtizZwSEsIJMZkBo6F707Ztaro6oqeCYKCIiqjW93k4KUAAghBX27BkBvd7Owi0jMh+GKCIiqrWcHEcpQJURwgo5OQ4WahGR+TFEERFRrTk46CCTGYyWyWQGODjkWKhFRObHEEVERLWm0eQhNHSvFKTKxkTdO7icqKnhwHIiIqoTffumwsvrPHJyHODgkMMARU0eQxQREdUZjSaP4YmaDd7OIyIikykUijqtI2pM2BNFREQmc3R0RGRkJGcsp2bJ4j1Rq1evhoeHB1QqFfz9/XHs2LEq67dv344uXbpApVKhZ8+e2Ldvn9F6IQTmzZsHrVYLGxsbBAUF4dy5c0Y1I0eORIcOHaBSqaDVajFu3DhcvXq13H6WLVuGTp06QalUol27dli8eHHdnDQRURPi6OgIrVZb6YsBipoqi4aorVu3IioqCvPnz8fJkyfRu3dvBAcH4/r16xXWHzlyBGPHjsWkSZOQmpqKsLAwhIWF4fTp01JNTEwMVq5ciTVr1iA5ORlqtRrBwcG4c+eOVDN06FBs27YN6enp2LFjBzIyMvDUU08ZHWvq1Kn4xz/+gWXLluHXX3/F7t270a9fP/NcCCIiImp0ZEIIYamD+/v74+GHH5aeu2QwGODm5oZXXnkFs2bNKlc/evRo5OfnY+/evdKy/v37w8fHB2vWrIEQAq6urnj99dfxxhtvAAD0ej2cnZ0RHx+PMWPGVNiO3bt3IywsDIWFhbC2tsbZs2fRq1cvnD59Gp07dzb5/HJzc6HRaKDX62Fvb2/yfoiIiKj+VPfz22I9UUVFRUhJSUFQUND/GmNlhaCgICQlJVW4TVJSklE9AAQHB0v1mZmZyMrKMqrRaDTw9/evdJ85OTnYvHkzAgMDYW1tDQDYs2cPHnroIezduxeenp7w8PDACy+8gJycqieNKywsRG5urtGLiIiImiaLhaibN2+ipKQEzs7ORsudnZ2RlZVV4TZZWVlV1pe9V2efM2fOhFqthqOjIy5duoQvv/xSWvf777/j4sWL2L59Oz755BPEx8cjJSWl3C2/+0VHR0Oj0UgvNze3KuuJiIio8bL4wHJLmT59OlJTU3HgwAHI5XKMHz8eZXc2DQYDCgsL8cknn2DgwIEYMmQI1q9fj0OHDiE9Pb3Sfc6ePRt6vV56Xb58ub5Oh4iIiOqZxaY4cHJyglwuR3Z2ttHy7OxsuLi4VLiNi4tLlfVl79nZ2dBqtUY1Pj4+5Y7v5OSETp06oWvXrnBzc8PRo0cREBAArVaLFi1aoFOnTlJ9165dAQCXLl2qdJyUUqmEUqmsxtkTERFRY2exniiFQgFfX18kJiZKywwGAxITExEQEFDhNgEBAUb1AHDw4EGp3tPTEy4uLkY1ubm5SE5OrnSfZccFSsc0AcAjjzyCu3fvIiMjQ6r57bffAADu7u41OU0iIiJqoiw62WZUVBTCw8Ph5+eHfv36ITY2Fvn5+Zg4cSIAYPz48WjXrh2io6MBlE47MHjwYCxfvhwhISFISEjAiRMnsHbtWgCATCbDtGnTsGjRInh7e8PT0xNz586Fq6srwsLCAADJyck4fvw4BgwYgNatWyMjIwNz586Fl5eXFLSCgoLQt29fPP/884iNjYXBYMCUKVPw2GOPGfVOERERUfNl0RA1evRo3LhxA/PmzUNWVhZ8fHywf/9+aWD4pUuXYGX1v86ywMBAbNmyBXPmzMGbb74Jb29v7Nq1Cz169JBqZsyYgfz8fERERODWrVsYMGAA9u/fD5VKBQCwtbXFzp07MX/+fOTn50Or1WL48OGYM2eOdCvOysoKe/bswSuvvIJBgwZBrVbj8ccfx/Lly+vx6hAREVFDZtF5opo6zhNFRETU+DT4eaKIiIiIGrM6C1F37tzBsmXL6mp3RERERA1ajULUjRs3sHfvXhw4cAAlJSUAgOLiYnzwwQfw8PDAkiVLzNJIIiIiooam2gPLf/jhB4wYMQK5ubmQyWTw8/PDxo0bERYWhhYtWmDBggUIDw83Z1uJiIiIGoxq90TNmTMHf/3rX3Hq1ClERUXh+PHj+Nvf/oZ3330XZ86cweTJk2FjY2POthIRERE1GNX+dp6joyP+/e9/o1u3bvjzzz/RsmVL7Ny5E6NGjTJ3GxstfjuPiIio8anzb+f98ccfcHJyAgDY2NjA1tbWaH4mIiIiouakRpNtnjlzBllZWQAAIQTS09ORn59vVNOrV6+6ax0RERFRA1Xt23lWVlaQyWSoqlwmk0nf2iPeziMiImqMqvv5Xe2eqMzMzAfW5OXlVXd3RERERI1atUOUu7t7hcvz8vLw+eefY/369Thx4gR7ooiIiKhZMHnG8u+//x7h4eHQarVYtmwZhg4diqNHj9Zl24iIiIgarBoNLM/KykJ8fDzWr1+P3NxcPP300ygsLMSuXbvQrVs3c7WRiIiIqMGpdogKDQ3F999/j5CQEMTGxmL48OGQy+VYs2aNOdtHRERUYzqdDkVFRZWuVygUcHR0rMcWUVNU7RD19ddf49VXX8XLL78Mb29vc7aJiIjIZDqdDnFxcQ+si4yMZJCiWqn2mKgffvgBeXl58PX1hb+/P+Li4nDz5k1zto2IiKjGquqBMqWOqDLVDlH9+/fHunXrcO3aNbz00ktISEiAq6srDAYDDh48yOkNiIioQdLr7ZCZ6QG93s7STaEmpkYDywFArVbj+eefx/PPP4/09HSsX78eS5YswaxZs/DYY49h9+7d5mgnERFRjZ082Qd79oyAEFaQyQwIDd2Lvn1TTd4fx1rRvWocou7VuXNnxMTEIDo6Gnv27MGGDRvqql1ERES1otfbSQEKAISwwp49I+DldR4aTc3vnnCsFd3P5Hmi7iWXyxEWFsZeKCIiajBychylAFVGCCvk5DiYtD+OtaL71UmIIiIiamgcHHSQyQxGy2QyAxwccizUImpqGKKIiKhJ0mjyEBq6VwpSZWOiTLmVVxEOWKdajYkiIiJqaBQKhfRz376p8PI6j5wcBzg45BgFqHvraqquB6xT48QQRURETYqjoyMiIyPN9i26uh6wTo0XQxQRETU5pgakqqYwKJtguqoB6wxRzQtDFBEREao/hUHZgPV7gxQHrDdPHFhORESE6k9N8KAB67UZa0WNC3uiiIiIauCJJ55ARIQT5s27gQsXWsDD4y5cXR8G8DBnLG9mGKKIiIhqwMnJCVqtFlot4Otr6daQJfF2HhERUQU4DxQ9CHuiiIiI7sN5oKg62BNFRER0j8rmgWKPFN2PIYqIiOgedf3gYmq6GKKIiIjwv6kJHvTgYk5hQGU4JoqIiAjGj4tp1y4XM2dqUFIig1wu8N57uXjmmbGcwoCMyIQQwtKNaKpyc3Oh0Wig1+thb29v6eYQEVENXLkCnD8PdOwItG9v6dZQfaru5zd7ooiIiCrQvj3DE1WNY6KIiIiITMAQRURERGQChigiIiIiEzBEEREREZmgQYSo1atXw8PDAyqVCv7+/jh27FiV9du3b0eXLl2gUqnQs2dP7Nu3z2i9EALz5s2DVquFjY0NgoKCcO7cOaOakSNHokOHDlCpVNBqtRg3bhyuXr1a4fHOnz8POzs7tGrVqlbnSURERE2HxUPU1q1bERUVhfnz5+PkyZPo3bs3goODcf369Qrrjxw5grFjx2LSpElITU1FWFgYwsLCcPr0aakmJiYGK1euxJo1a5CcnAy1Wo3g4GDcuXNHqhk6dCi2bduG9PR07NixAxkZGXjqqafKHa+4uBhjx47FwIED6/7kiYiIqNGy+DxR/v7+ePjhhxEXFwcAMBgMcHNzwyuvvIJZs2aVqx89ejTy8/Oxd+9eaVn//v3h4+ODNWvWQAgBV1dXvP7663jjjTcAAHq9Hs7OzoiPj8eYMWMqbMfu3bsRFhaGwsJCWFtbS8tnzpyJq1ev4tFHH8W0adNw69atap8b54kiIiJqfKr7+W3RnqiioiKkpKQgKChIWmZlZYWgoCAkJSVVuE1SUpJRPQAEBwdL9ZmZmcjKyjKq0Wg08Pf3r3SfOTk52Lx5MwIDA40C1HfffYft27dj9erV1TqfwsJC5ObmGr2IiIioabJoiLp58yZKSkrg7OxstNzZ2RlZWVkVbpOVlVVlfdl7dfY5c+ZMqNVqODo64tKlS/jyyy+ldTqdDhMmTEB8fHy1e5Gio6Oh0Wikl5ubW7W2IyIiosbH4mOiLGn69OlITU3FgQMHIJfLMX78eJTd3XzxxRfxzDPPYNCgQdXe3+zZs6HX66XX5cuXzdV0IiIisjCLPvbFyckJcrkc2dnZRsuzs7Ph4uJS4TYuLi5V1pe9Z2dnQ6vVGtX4+PiUO76TkxM6deqErl27ws3NDUePHkVAQAC+++477N69G8uWLQNQ+o0/g8GAFi1aYO3atXj++efLtU2pVEKpVNbsIhAREVGjZNGeKIVCAV9fXyQmJkrLDAYDEhMTERAQUOE2AQEBRvUAcPDgQane09MTLi4uRjW5ublITk6udJ9lxwVKxzUBpWOv0tLSpNc777wDOzs7pKWl4W9/+5tpJ0xERERNhsUfQBwVFYXw8HD4+fmhX79+iI2NRX5+PiZOnAgAGD9+PNq1a4fo6GgAwNSpUzF48GAsX74cISEhSEhIwIkTJ7B27VoAgEwmw7Rp07Bo0SJ4e3vD09MTc+fOhaurK8LCwgAAycnJOH78OAYMGIDWrVsjIyMDc+fOhZeXlxS0unbtatTOEydOwMrKCj169KinK0NEREQNmcVD1OjRo3Hjxg3MmzcPWVlZ8PHxwf79+6WB4ZcuXYKV1f86zAIDA7FlyxbMmTMHb775Jry9vbFr1y6jcDNjxgzk5+cjIiICt27dwoABA7B//36oVCoAgK2tLXbu3In58+cjPz8fWq0Ww4cPx5w5c3g7joiIiKrF4vNENWWcJ4qIiKjxaRTzRBERERE1VgxRRERERCZgiCIiIiIyAUMUERERkQkYooiIiIhMwBBFREREZAKGKCIiIiITMEQRERERmYAhioiIiMgEDFFEREREJmCIIiIiIjIBQxQRERGRCRiiiIiIiEzAEEVERERkAoYoIiIiIhMwRBERERGZgCGKiIiIyAQMUUREREQmYIgiIiIiMgFDFBEREZEJGKKIiIiITMAQRURERGQChigiIiIiEzBEEREREZmAIYqIiIjIBAxRRERERCZgiCIiIiIyAUMUERERkQkYooiIiIhMwBBFREREZAKGKCIiIiITMEQRERERmYAhioiIiMgEDFFEREREJmCIIiIiIjIBQxQRERGRCRiiiIiIiEzAEEVERERkAoYoIiIiIhMwRBERERGZgCGKiIiIyAQNIkStXr0aHh4eUKlU8Pf3x7Fjx6qs3759O7p06QKVSoWePXti3759RuuFEJg3bx60Wi1sbGwQFBSEc+fOGdWMHDkSHTp0gEqlglarxbhx43D16lVp/eHDhzFq1ChotVqo1Wr4+Phg8+bNdXfSRERE1KhZPERt3boVUVFRmD9/Pk6ePInevXsjODgY169fr7D+yJEjGDt2LCZNmoTU1FSEhYUhLCwMp0+flmpiYmKwcuVKrFmzBsnJyVCr1QgODsadO3ekmqFDh2Lbtm1IT0/Hjh07kJGRgaeeesroOL169cKOHTtw6tQpTJw4EePHj8fevXvNdzGIiIio0ZAJIYQlG+Dv74+HH34YcXFxAACDwQA3Nze88sormDVrVrn60aNHIz8/3yjM9O/fHz4+PlizZg2EEHB1dcXrr7+ON954AwCg1+vh7OyM+Ph4jBkzpsJ27N69G2FhYSgsLIS1tXWFNSEhIXB2dsaGDRuqdW65ubnQaDTQ6/Wwt7ev1jZERERkWdX9/LZoT1RRURFSUlIQFBQkLbOyskJQUBCSkpIq3CYpKcmoHgCCg4Ol+szMTGRlZRnVaDQa+Pv7V7rPnJwcbN68GYGBgZUGKKA0jDk4OFS6vrCwELm5uUYvIiIiaposGqJu3ryJkpISODs7Gy13dnZGVlZWhdtkZWVVWV/2Xp19zpw5E2q1Go6Ojrh06RK+/PLLStu6bds2HD9+HBMnTqy0Jjo6GhqNRnq5ublVWktERESNm8XHRFnS9OnTkZqaigMHDkAul2P8+PGo6O7moUOHMHHiRKxbtw7du3evdH+zZ8+GXq+XXpcvXzZn84mIiMiCWljy4E5OTpDL5cjOzjZanp2dDRcXlwq3cXFxqbK+7D07OxtardaoxsfHp9zxnZyc0KlTJ3Tt2hVubm44evQoAgICpJp//etfCA0Nxfvvv4/x48dXeT5KpRJKpbLqkyYiIqImwaI9UQqFAr6+vkhMTJSWGQwGJCYmGgWZewUEBBjVA8DBgwelek9PT7i4uBjV5ObmIjk5udJ9lh0XKB3XVObw4cMICQnBe++9h4iIiJqfIBERETVZFu2JAoCoqCiEh4fDz88P/fr1Q2xsLPLz86WxR+PHj0e7du0QHR0NAJg6dSoGDx6M5cuXIyQkBAkJCThx4gTWrl0LAJDJZJg2bRoWLVoEb29veHp6Yu7cuXB1dUVYWBgAIDk5GcePH8eAAQPQunVrZGRkYO7cufDy8pKC1qFDhzBixAhMnToVTz75pDSeSqFQVDm4nIiIiJoJ0QCsWrVKdOjQQSgUCtGvXz9x9OhRad3gwYNFeHi4Uf22bdtEp06dhEKhEN27dxdfffWV0XqDwSDmzp0rnJ2dhVKpFI8++qhIT0+X1p86dUoMHTpUODg4CKVSKTw8PMTkyZPFlStXpJrw8HABoNxr8ODB1T4vvV4vAAi9Xl+zC0JEREQWU93Pb4vPE9WUcZ4oIiKixqe6n98Wv51HRERE5qHT6VBUVFTpeoVCAUdHx3psUdPCEEVERNQE6XQ66WkgVYmMjGSQMlGznieKiIioqaqqB8qUOiqPIYqIiIjIBAxRRERERCZgiCIiIiIyAUMUERERkQkYooiIiJoBvd4OmZke0OvtLN2UJoNTHBARETVxJ0/2wZ49IyCEFWQyA0JD96Jv31RLN6vRY08UERFRE6RQKACU9kCVBSgAEMIKe/aMkHqkyuqo5vjYFzPiY1+IiMiSdDodDh0C/v738pNpfvGFDkOGgBNtVoCPfSEiImrmHB0d0b8/YGUFGAz/Wy6XA/7+jmB+qh3eziMiImrC2rcH1q4tDU5A6fvHH5cup9phTxQREVETN2kSEBwMnD8PdOzIAFVXGKKIiIiagfbtGZ7qGm/nEREREZmAIYqIiIjIBAxRRERERCZgiCIiIiIyAUMUERERkQkYooiIiIhMwBBFREREZAKGKCIiIiITMEQRERERmYAhioiIiMgEDFFEREREJuCz84iIiKhGdDodioqKKl2vUCjg6OhYjy2yDIYoIiIiqjadToe4uLgH1kVGRjb5IMXbeURERFRtVfVAmVLXmDFEEREREZmAIYqIiIjIBAxRRERERCZgiCIiIiIyAUMUERERkQkYooiIiMhker0dMjM9oNfbWbop9Y7zRBEREVG1KRQK6eeTJ/tgz54REMIKMpkBoaF70bdvarm6pkomhBCWbkRTlZubC41GA71eD3t7e0s3h4iIqE7odDpcuHAX/fq1hcEgk5bL5QLJydfh4dGiUU+0Wd3Pb97OIyIiohpxdHREbq6zUYACgJISGfLynBt1gKoJhigiIiKqMW9vwOq+FCGXAx07WqY9lsAQRURERDXWvj2wdm1pcAJK3z/+uHR5c8GB5URERGSSSZOA4GDg/PnSHqjmFKCABtITtXr1anh4eEClUsHf3x/Hjh2rsn779u3o0qULVCoVevbsiX379hmtF0Jg3rx50Gq1sLGxQVBQEM6dO2dUM3LkSHTo0AEqlQparRbjxo3D1atXjWpOnTqFgQMHQqVSwc3NDTExMXVzwkRERE1E+/bAkCHNL0ABDSBEbd26FVFRUZg/fz5OnjyJ3r17Izg4GNevX6+w/siRIxg7diwmTZqE1NRUhIWFISwsDKdPn5ZqYmJisHLlSqxZswbJyclQq9UIDg7GnTt3pJqhQ4di27ZtSE9Px44dO5CRkYGnnnpKWp+bm4u//OUvcHd3R0pKCpYuXYoFCxZg7dq15rsYRERE1HgIC+vXr5+YMmWK9HtJSYlwdXUV0dHRFdY//fTTIiQkxGiZv7+/eOmll4QQQhgMBuHi4iKWLl0qrb9165ZQKpXi888/r7QdX375pZDJZKKoqEgIIcSHH34oWrduLQoLC6WamTNnis6dO1f73PR6vQAg9Hp9tbchIiIiy6ru57dFe6KKioqQkpKCoKAgaZmVlRWCgoKQlJRU4TZJSUlG9QAQHBws1WdmZiIrK8uoRqPRwN/fv9J95uTkYPPmzQgMDIS1tbV0nEGDBhlNFhYcHIz09HT88ccfFe6nsLAQubm5Ri8iIiJqmiwaom7evImSkhI4OzsbLXd2dkZWVlaF22RlZVVZX/ZenX3OnDkTarUajo6OuHTpEr788ssHHufeY9wvOjoaGo1Germ5uVVYR0RERI2fxcdEWdL06dORmpqKAwcOQC6XY/z48RC1mMB99uzZ0Ov10uvy5ct12FoiIiJqSCw6xYGTkxPkcjmys7ONlmdnZ8PFxaXCbVxcXKqsL3vPzs6GVqs1qvHx8Sl3fCcnJ3Tq1Aldu3aFm5sbjh49ioCAgEqPc+8x7qdUKqFUKh9w1kRERNQUWLQnSqFQwNfXF4mJidIyg8GAxMREBAQEVLhNQECAUT0AHDx4UKr39PSEi4uLUU1ubi6Sk5Mr3WfZcYHScU1lx/n+++9RXFxsdJzOnTujdevWNTxTIiIianLqZ5x75RISEoRSqRTx8fHizJkzIiIiQrRq1UpkZWUJIYQYN26cmDVrllT/448/ihYtWohly5aJs2fPivnz5wtra2vx888/SzVLliwRrVq1El9++aU4deqUGDVqlPD09BR//vmnEEKIo0ePilWrVonU1FRx4cIFkZiYKAIDA4WXl5e4c+eOEKL0G33Ozs5i3Lhx4vTp0yIhIUHY2tqKjz/+uNrnxm/nERERNT7V/fy2+Izlo0ePxo0bNzBv3jxkZWXBx8cH+/fvlwZxX7p0CVb3PJwnMDAQW7ZswZw5c/Dmm2/C29sbu3btQo8ePaSaGTNmID8/HxEREbh16xYGDBiA/fv3Q6VSAQBsbW2xc+dOzJ8/H/n5+dBqtRg+fDjmzJkj3Y7TaDQ4cOAApkyZAl9fXzg5OWHevHmIiIiox6tDRETUvOh0OhQVFVW6XqFQNJgHHMuEqMVIaqpSbm4uNBoN9Ho97O3tLd0cIiKiBk2n0yEuLu6BdZGRkWYNUtX9/G7W384jIiKihqOqHihT6syNIYqIiIjIBAxRRERERCZgiCIiIiIyAUMUERERkQkYooiIiKhB0uvtkJnpAb3eztJNqZDF54kiIiIiut/Jk32wZ88ICGEFmcyA0NC96Ns31dLNMsKeKCIiImoQFAoFgNIeqLIABQBCWGHPnhFSj1RZnaVxsk0z4mSbRERENaPT6XDoEPD3v5efTPOLL3QYMgRmn7G8up/fvJ1HREREDYajoyP69wesrACD4X/L5XLA398RDeSJLwB4O4+IiIgamPbtgbVrS4MTUPr+8celyxsS9kQRERFRgzNpEhAcDJw/D3TsWBqgGtrDiRmiiIiIqEFq3/5/vU8N5eHE9+LtPCIiImrwGuLDiRmiiIiIiEzAEEVERERkAoYoIiIiIhMwRBEREVGj0xCeq8dv5xEREVGj0lCeq8eeKCIiImo0HvRcvfrEEEVEREQNXtlDh3NyHKUAVUYIK+TkOBjV1Qc+gNiM+ABiIiKiuqPT6XDhwl3069cWBoNMWi6XCyQnX4eHR4s6mWizup/f7IkiIiKiRsHR0RG+vs5Yu1Z233P1ZPD1da7XR74AHFhOREREjUxFz9WzBIYoIiIianTufa6epfB2HhEREZEJGKKIiIiITMAQRURERGQChigiIiIiEzBEEREREZmAIYqIiIjIBAxRRERERCZgiCIiIiIyAUMUERERkQkYooiIiIhMwBBFREREZAI+O8+MhBAAgNzcXAu3hIiIiKqr7HO77HO8MgxRZpSXlwcAcHNzs3BLiIiIqKby8vKg0WgqXS8TD4pZZDKDwYCrV6/Czs4OMpnMaF1ubi7c3Nxw+fJl2NvbW6iFDRuv0YPxGj0Yr9GD8Ro9GK9R1Zra9RFCIC8vD66urrCyqnzkE3uizMjKygrt27evssbe3r5J/MGZE6/Rg/EaPRiv0YPxGj0Yr1HVmtL1qaoHqgwHlhMRERGZgCGKiIiIyAQMURaiVCoxf/58KJVKSzelweI1ejBeowfjNXowXqMH4zWqWnO9PhxYTkRERGQC9kQRERERmYAhioiIiMgEDFFEREREJmCIIiIiIjIBQ5QZrV69Gh4eHlCpVPD398exY8cqrf3ll1/w5JNPwsPDAzKZDLGxsfXXUAuqyTVat24dBg4ciNatW6N169YICgqqsr6pqMk12rlzJ/z8/NCqVSuo1Wr4+Pjg008/rcfWWkZNrtG9EhISIJPJEBYWZt4GNgA1uUbx8fGQyWRGL5VKVY+trX81/Ru6desWpkyZAq1WC6VSiU6dOmHfvn311FrLqMk1GjJkSLm/IZlMhpCQkHpscT0QZBYJCQlCoVCIDRs2iF9++UW8+OKLolWrViI7O7vC+mPHjok33nhDfP7558LFxUW8//779dtgC6jpNXrmmWfE6tWrRWpqqjh79qyYMGGC0Gg04sqVK/Xc8vpT02t06NAhsXPnTnHmzBlx/vx5ERsbK+Ryudi/f389t7z+1PQalcnMzBTt2rUTAwcOFKNGjaqfxlpITa/Rxo0bhb29vbh27Zr0ysrKqudW15+aXp/CwkLh5+cn/vrXv4offvhBZGZmisOHD4u0tLR6bnn9qek10ul0Rn8/p0+fFnK5XGzcuLF+G25mDFFm0q9fPzFlyhTp95KSEuHq6iqio6MfuK27u3uzCFG1uUZCCHH37l1hZ2cnNm3aZK4mWlxtr5EQQvTp00fMmTPHHM1rEEy5Rnfv3hWBgYHiH//4hwgPD2/yIaqm12jjxo1Co9HUU+ssr6bX56OPPhIPPfSQKCoqqq8mWlxt/y16//33hZ2dnbh9+7a5mmgRvJ1nBkVFRUhJSUFQUJC0zMrKCkFBQUhKSrJgyxqOurhGBQUFKC4uhoODg7maaVG1vUZCCCQmJiI9PR2DBg0yZ1MtxtRr9M4776Bt27aYNGlSfTTToky9Rrdv34a7uzvc3NwwatQo/PLLL/XR3HpnyvXZvXs3AgICMGXKFDg7O6NHjx549913UVJSUl/Nrld18e/1+vXrMWbMGKjVanM10yIYoszg5s2bKCkpgbOzs9FyZ2dnZGVlWahVDUtdXKOZM2fC1dXV6D/spsTUa6TX69GyZUsoFAqEhIRg1apVeOyxx8zdXIsw5Rr98MMPWL9+PdatW1cfTbQ4U65R586dsWHDBnz55Zf47LPPYDAYEBgYiCtXrtRHk+uVKdfn999/xxdffIGSkhLs27cPc+fOxfLly7Fo0aL6aHK9q+2/18eOHcPp06fxwgsvmKuJFtPC0g0gMsWSJUuQkJCAw4cPN/kBrzVlZ2eHtLQ03L59G4mJiYiKisJDDz2EIUOGWLppFpeXl4dx48Zh3bp1cHJysnRzGqyAgAAEBARIvwcGBqJr1674+OOPsXDhQgu2rGEwGAxo27Yt1q5dC7lcDl9fX/znP//B0qVLMX/+fEs3r8FZv349evbsiX79+lm6KXWOIcoMnJycIJfLkZ2dbbQ8OzsbLi4uFmpVw1Kba7Rs2TIsWbIE3377LXr16mXOZlqUqdfIysoKHTt2BAD4+Pjg7NmziI6ObpIhqqbXKCMjAxcuXEBoaKi0zGAwAABatGiB9PR0eHl5mbfR9awu/j2ytrZGnz59cP78eXM00aJMuT5arRbW1taQy+XSsq5duyIrKwtFRUVQKBRmbXN9q83fUH5+PhISEvDOO++Ys4kWw9t5ZqBQKODr64vExERpmcFgQGJiotH/u2vOTL1GMTExWLhwIfbv3w8/P7/6aKrF1NXfkcFgQGFhoTmaaHE1vUZdunTBzz//jLS0NOk1cuRIDB06FGlpaXBzc6vP5teLuvg7Kikpwc8//wytVmuuZlqMKdfnkUcewfnz56UADgC//fYbtFptkwtQQO3+hrZv347CwkI899xz5m6mZVh6ZHtTlZCQIJRKpYiPjxdnzpwRERERolWrVtLXhMeNGydmzZol1RcWForU1FSRmpoqtFqteOONN0Rqaqo4d+6cpU7B7Gp6jZYsWSIUCoX44osvjL46m5eXZ6lTMLuaXqN3331XHDhwQGRkZIgzZ86IZcuWiRYtWoh169ZZ6hTMrqbX6H7N4dt5Nb1Gb7/9tvjmm29ERkaGSElJEWPGjBEqlUr88ssvljoFs6rp9bl06ZKws7MTkZGRIj09Xezdu1e0bdtWLFq0yFKnYHam/nc2YMAAMXr06Ppubr1hiDKjVatWiQ4dOgiFQiH69esnjh49Kq0bPHiwCA8Pl37PzMwUAMq9Bg8eXP8Nr0c1uUbu7u4VXqP58+fXf8PrUU2u0VtvvSU6duwoVCqVaN26tQgICBAJCQkWaHX9qsk1ul9zCFFC1OwaTZs2Tap1dnYWf/3rX8XJkyct0Or6U9O/oSNHjgh/f3+hVCrFQw89JBYvXizu3r1bz62uXzW9Rr/++qsAIA4cOFDPLa0/MiGEsFAnGBEREVGjxTFRRERERCZgiCIiIiIyAUMUERERkQkYooiIiIhMwBBFREREZAKGKCIiIiITMEQRERERmYAhioioCZgwYQLCwsIs3QyiZoUhiojMasKECZDJZNLL0dERw4cPx6lTpyzdtDpx77mVvQYMGGC24124cAEymQxpaWlGyz/44APEx8eb7bhEVB5DFBGZ3fDhw3Ht2jVcu3YNiYmJaNGiBUaMGGHpZtWZjRs3Sud37do17N69u8K64uJis7VBo9GgVatWZts/EZXHEEVEZqdUKuHi4gIXFxf4+Phg1qxZuHz5Mm7cuIFhw4YhMjLSqP7GjRtQKBTSU+M9PDywcOFCjB07Fmq1Gu3atcPq1auNtlmxYgV69uwJtVoNNzc3/N///R9u374trb948SJCQ0PRunVrqNVqdO/eHfv27QMA/PHHH3j22WfRpk0b2NjYwNvbGxs3bqz2+bVq1Uo6PxcXFzg4OEg9Rlu3bsXgwYOhUqmwefNm6HQ6jB07Fu3atYOtrS169uyJzz//3Gh/BoMBMTEx6NixI5RKJTp06IDFixcDADw9PQEAffr0gUwmw5AhQwCUv51XWFiIV199FW3btoVKpcKAAQNw/Phxaf3hw4chk8mQmJgIPz8/2NraIjAwEOnp6dU+b6LmjiGKiOrV7du38dlnn6Fjx45wdHTECy+8gC1btqCwsFCq+eyzz9CuXTsMGzZMWrZ06VL07t0bqampmDVrFqZOnYqDBw9K662srLBy5Ur88ssv2LRpE7777jvMmDFDWj9lyhQUFhbi+++/x88//4z33nsPLVu2BADMnTsXZ86cwddff42zZ8/io48+gpOTU52cb1lbz549i+DgYNy5cwe+vr746quvcPr0aURERGDcuHE4duyYtM3s2bOxZMkSqV1btmyBs7MzAEh13377La5du4adO3dWeNwZM2Zgx44d2LRpE06ePImOHTsiODgYOTk5RnVvvfUWli9fjhMnTqBFixZ4/vnn6+S8iZoFSz8BmYiatvDwcCGXy4VarRZqtVoAEFqtVqSkpAghhPjzzz9F69atxdatW6VtevXqJRYsWCD97u7uLoYPH26039GjR4vHH3+80uNu375dODo6Sr/37NnTaJ/3Cg0NFRMnTjTp/AAIlUolnZ9arRb//Oc/RWZmpgAgYmNjH7iPkJAQ8frrrwshhMjNzRVKpVKsW7euwtqy/aamphotDw8PF6NGjRJCCHH79m1hbW0tNm/eLK0vKioSrq6uIiYmRgghxKFDhwQA8e2330o1X331lQAg/vzzz5pcAqJmiz1RRGR2Q4cORVpaGtLS0nDs2DEEBwfj8ccfx8WLF6FSqTBu3Dhs2LABAHDy5EmcPn0aEyZMMNpHQEBAud/Pnj0r/f7tt9/i0UcfRbt27WBnZ4dx48ZBp9OhoKAAAPDqq69i0aJFeOSRRzB//nyjge0vv/wyEhIS4OPjgxkzZuDIkSM1Or/3339fOr+0tDQ89thj0jo/Pz+j2pKSEixcuBA9e/aEg4MDWrZsiW+++QaXLl0CAJw9exaFhYV49NFHa9SGe2VkZKC4uBiPPPKItMza2hr9+vUzumYA0KtXL+lnrVYLALh+/brJxyZqThiiiMjs1Go1OnbsiI4dO+Lhhx/GP/7xD+Tn52PdunUAgBdeeAEHDx7ElStXsHHjRgwbNgzu7u7V3v+FCxcwYsQI9OrVCzt27EBKSoo0ZqqoqEg6xu+//45x48bh559/hp+fH1atWgUAUqB77bXXcPXqVTz66KN44403qn18FxcX6fw6duwItVptdO73Wrp0KT744APMnDkThw4dQlpaGoKDg6V22tjYVPu4dcHa2lr6WSaTASgdk0VED8YQRUT1TiaTwcrKCn/++ScAoGfPnvDz88O6deuwZcuWCsflHD16tNzvXbt2BQCkpKTAYDBg+fLl6N+/Pzp16oSrV6+W24ebmxsmT56MnTt34vXXX5dCHAC0adMG4eHh+OyzzxAbG4u1a9fW5SlLfvzxR4waNQrPPfccevfujYceegi//fabtN7b2xs2NjbSoPr7KRQKAKU9WpXx8vKCQqHAjz/+KC0rLi7G8ePH0a1btzo6EyJqYekGEFHTV1hYiKysLACl34SLi4vD7du3ERoaKtW88MILiIyMhFqtxt/+9rdy+/jxxx8RExODsLAwHDx4ENu3b8dXX30FAOjYsSOKi4uxatUqhIaG4scff8SaNWuMtp82bRoef/xxdOrUCX/88QcOHTokhbB58+bB19cX3bt3R2FhIfbu3Sutq2ve3t744osvcOTIEbRu3RorVqxAdna2FG5UKhVmzpyJGTNmQKFQ4JFHHsGNGzfwyy+/YNKkSWjbti1sbGywf/9+tG/fHiqVChqNxugYarUaL7/8MqZPnw4HBwd06NABMTExKCgowKRJk8xyXkTNEXuiiMjs9u/fD61WC61WC39/fxw/fhzbt2+Xvp4PAGPHjkWLFi0wduxYqFSqcvt4/fXXceLECfTp0weLFi3CihUrEBwcDADo3bs3VqxYgffeew89evTA5s2bER0dbbR9SUkJpkyZgq5du2L48OHo1KkTPvzwQwClvTuzZ89Gr169MGjQIMjlciQkJJjlWsyZMwd9+/ZFcHAwhgwZAhcXl3Izjc+dOxevv/465s2bh65du2L06NHSOKUWLVpg5cqV+Pjjj+Hq6opRo0ZVeJwlS5bgySefxLhx49C3b1+cP38e33zzDVq3bm2W8yJqjmRCCGHpRhARXbhwAV5eXjh+/Dj69u1rtM7DwwPTpk3DtGnTLNM4IqIK8HYeEVlUcXExdDod5syZg/79+5cLUEREDRVv5xGRRf3444/QarU4fvx4uXFMlvbuu++iZcuWFb4ef/xxSzePiCyMt/OIiCqRk5NTbobvMjY2NmjXrl09t4iIGhKGKCIiIiIT8HYeERERkQkYooiIiIhMwBBFREREZAKGKCIiIiITMEQRERERmYAhioiIiMgEDFFEREREJmCIIiIiIjLB/wPctWr8VM0OcQAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_6.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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TQy/evUqTEz+GTDz9fXF1q1bMXv2bLz77rtwc3PD3r17dZKb6dOno6CgAKGhocjNzUXfvn0RExMDpVIJAGjevDn27NmDiIgIFBQUwN7eHoMHD8bs2bN5OY6IiIj0YvR1ohozrhNFRETU8DSIdaKIiIiIGiomUUREREQGYBJFREREZAAmUUREREQGYBJFREREZAAmUUREREQGYBJFREREZAAmUUREREQGYBJFREREZAAmUUREREQGYBJFREREZAAmUUREREQGYBJFREREZAAmUUREREQGYBJFREREZAAmUUREREQGYBJFREREZAAmUUREREQGYBJFREREZAAmUUREREQGYBJFREREZAAmUUREREQGYBJFREREZAAmUUREREQGYBJFREREZAAmUUREREQGYBJFREREZAAmUUREREQGYBJFREREZAAmUUREREQGYBJFREREZAAmUUREREQGYBJFREREZAAmUUREREQGYBJFREREZAAmUUREREQGYBJFREREZAAmUUREREQGYBJFREREZAAmUUREREQGYBJFREREZIB6kUStWbMGzs7OUCqV8Pb2xqlTp6qM37VrF9zd3aFUKtG9e3ccOnRIZ7sQAnPnzoW9vT3Mzc3h7++P1NRUnZihQ4eiffv2UCqVsLe3x9ixY3Hjxg1p+7FjxzBs2DDY29vDwsICHh4e2LJlS801moiIiBo0oydRO3bsQHh4OCIiIpCYmIgePXpArVbj1q1bFcafOHECo0ePxoQJE5CUlISgoCAEBQXh3LlzUsySJUuwatUqrF27FvHx8bCwsIBarUZhYaEUM3DgQOzcuRMpKSnYvXs30tLSMHz4cJ3zPPHEE9i9ezfOnj2L8ePHIzg4GAcPHqy9ziAiIqIGQyaEEMasgLe3N5588klERUUBALRaLRwdHfHGG29g5syZ5eJHjhyJgoICnWSmT58+8PDwwNq1ayGEgIODA95++2288847AACNRgNbW1tER0dj1KhRFdZj//79CAoKQlFREUxNTSuMCQgIgK2tLTZu3KhX2/Ly8qBSqaDRaGBpaanXPkRERGRc+n5/G3Ukqri4GAkJCfD395fKTExM4O/vj7i4uAr3iYuL04kHALVaLcWnp6cjIyNDJ0alUsHb27vSY+bk5GDLli3w9fWtNIECSpMxKyurSrcXFRUhLy9P50VERESNk1GTqKys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Pv74Y52yCRMmiNDQUJ2yn376SZiYmIi//vqrwnOdPn1aABD5+flCiH9Gor777jspJjIyUgAQaWlpUtnEiROFWq3Wqz0hISFCLpcLCwsLYWZmJgAIExMT8eWXX1a5X0BAgHj77bel3/38/MSUKVN0Yh4ciRozZox45plndGKmTZsmunTpolddiZoyjkQRUa378MMPsXnzZly4cOGhse+99x6Sk5Mxd+5c3LlzR6/j9+/fH3/88QdiY2MxfPhw/Pbbb+jXrx8WLlxY5X6//PILoqOj0aJFC+mlVquh1WqRnp4OoHSkJjAwEO3bt0fLli3h5+cHALh69arOsZ544gnpZ1tbWzRv3hyPP/64TtmtW7f0ag8ADBw4EMnJyYiPj0dISAjGjx+PF154QdpeUlKChQsXonv37rCyskKLFi3w7bfflqvXw1y4cAFPPfWUTtlTTz2F1NRUlJSUVOtYRE0NkygiqnX9+/eHWq3GrFmzdMrd3NyQkpKiU9a6dWt06NABbdq0qdY5TE1N0a9fP8yYMQOHDx/GggULsHDhQhQXF1e6z507dzBx4kQkJydLr19++QWpqalwdXVFQUEB1Go1LC0tsWXLFpw+fRpfffUVAJQ7rqmpqfRz2V1195PJZNBqtXq3x8LCAh06dECPHj2wceNGxMfHY8OGDdL2pUuXYuXKlZgxYwaOHj2K5ORkqNXqKttLRDWrmbErQERNw+LFi+Hh4YFOnTpJZaNHj8aYMWOwb98+DBs2rEbP16VLF/z9998oLCyEQqGAQqEoN7Li6emJ8+fPo0OHDhUe49dff0V2djYWL14szSc6c+ZMjdZTHyYmJnj33XcRHh6OMWPGwNzcHD///DOGDRuGl19+GQCg1Wrx+++/o0uXLtJ+FbX5QZ07d8bPP/+sU/bzzz+jY8eOkMvlNd8YokaEI1FEVCe6d++Ol156CatWrZLKRo0aheHDh2PUqFFYsGAB4uPjcfnyZfzwww/YsWOH3l/iAwYMwLp165CQkIDLly/j0KFDePfddzFw4EBYWloCKF0n6scff8R///tfZGVlAQBmzJiBEydOICwsDMnJyUhNTcW+ffukieXt27eHQqHA6tWr8ccff2D//v0PvURYW1588UXI5XKsWbMGQOko3pEjR3DixAlcuHABEydORGZmps4+zs7OUp9mZWVVOBL29ttvIzY2FgsXLsTvv/+OzZs3IyoqCu+8806dtIuoIWMSRUR1ZsGCBTpf5DKZDDt27MCKFStw6NAhPP300+jUqRNeeeUVODo64vjx43odV61WY/PmzXj22WfRuXNnvPHGG1Cr1di5c6fOuS9fvgxXV1e0bt0aQOk8ph9++AG///47+vXrh549e2Lu3LlwcHAAUHppMTo6Grt27UKXLl2wePFiLFu2rAZ7RH/NmjVDWFgYlixZgoKCAsyePRuenp5Qq9UYMGAA7OzsEBQUpLPPO++8A7lcji5duqB169YVzpfy9PTEzp07sX37dnTr1g1z587FggULKrwDkYh0yYQQwtiVICIiImpoOBJFREREZAAmUURU792/BMGDr59++snY1auWq1evVtme6i5RQETGw8t5RFTvVfUg4rZt28Lc3LwOa/No/v77b1y+fLnS7c7OzmjWjDdOEzUETKKIiIiIDMDLeUREREQGYBJFREREZAAmUUREREQGYBJFREREZAAmUUREREQGYBJFREREZAAmUUREREQGYBJFREREZID/D2Q74mY45ZzUAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_7.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkgAAAHHCAYAAABEEKc/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABKlUlEQVR4nO3de1yUdd7/8feADCDCKKgcFAWFsoN5wEOapZktukpxb7uplalrmd1SuVqWearV0jSNFMv0LrWDq7fpVlpZavbbUlMTrSw1NcxaBXXIATFBmev3BzezznAQEGYGfD0fj3nAXNd3rvlc3wjefq/vfC+TYRiGAAAA4ODj6QIAAAC8DQEJAADABQEJAADABQEJAADABQEJAADABQEJAADABQEJAADABQEJAADABQEJAADABQEJAGqxpUuXymQy6ciRI54uBahTCEgAyrVz506lpKTouuuuU1BQkFq0aKG7775bP/74Y4m2vXr1kslkkslkko+Pj0JCQnT11VdryJAh2rBhQ6Xed+3aterZs6eaNm2q+vXrq1WrVrr77ru1fv366jq1Ep5//nm99957JbZv3bpVzzzzjE6fPl1j7+3qmWeecfSlyWRS/fr1de2112rSpEnKycmplvdYvny5UlNTq+VYQF1DQAJQrhdeeEGrV6/WbbfdppdfflkjR47Uv/71L3Xs2FF79+4t0b558+Z666239Oabb2r27Nm64447tHXrVv3hD3/QwIEDdf78+Uu+54svvqg77rhDJpNJEyZM0EsvvaS77rpLBw8e1IoVK2riNCWVH5CeffZZtwakYq+++qreeustzZ07V23atNFzzz2nvn37qjpuo0lAAspWz9MFAPBuY8eO1fLly2U2mx3bBg4cqLZt22rmzJl6++23ndpbLBbdd999TttmzpypRx99VK+88opiYmL0wgsvlPl+Fy5c0LRp03T77bfr008/LbH/xIkTl3lG3uPs2bOqX79+uW3+/Oc/q3HjxpKkUaNG6a677tKaNWv01VdfqVu3bu4oE7giMYIEoFzdu3d3CkeSFB8fr+uuu0779u2r0DF8fX01b948XXvttUpLS5PNZiuz7alTp5STk6Obbrqp1P1NmzZ1en7u3Dk988wzuuqqqxQQEKDIyEj96U9/0uHDhx1tXnzxRXXv3l1hYWEKDAxUQkKC3n33XafjmEwm5eXladmyZY7LWsOGDdMzzzyjJ554QpIUGxvr2HfxnJ+3335bCQkJCgwMVGhoqAYNGqRffvnF6fi9evXS9ddfr127dumWW25R/fr19fTTT1eo/y7Wu3dvSVJGRka57V555RVdd9118vf3V1RUlEaPHu00AtarVy99+OGH+vnnnx3nFBMTU+l6gLqKESQAlWYYhrKysnTddddV+DW+vr4aPHiwJk+erC+//FL9+/cvtV3Tpk0VGBiotWvX6pFHHlFoaGiZxywsLNSAAQO0adMmDRo0SI899phyc3O1YcMG7d27V61bt5Ykvfzyy7rjjjt07733qqCgQCtWrNBf/vIXrVu3zlHHW2+9pQceeEBdunTRyJEjJUmtW7dWUFCQfvzxR/3jH//QSy+95BjNadKkiSTpueee0+TJk3X33XfrgQce0MmTJzV//nzdcsst2r17txo2bOio12q1ql+/fho0aJDuu+8+hYeHV7j/ihUHv7CwsDLbPPPMM3r22WfVp08fPfzwwzpw4IBeffVV7dy5U1u2bJGfn58mTpwom82mX3/9VS+99JIkqUGDBpWuB6izDACopLfeesuQZLz++utO23v27Glcd911Zb7un//8pyHJePnll8s9/pQpUwxJRlBQkNGvXz/jueeeM3bt2lWi3RtvvGFIMubOnVtin91ud3x/9uxZp30FBQXG9ddfb/Tu3dtpe1BQkDF06NASx5o9e7YhycjIyHDafuTIEcPX19d47rnnnLZ/9913Rr169Zy29+zZ05BkLFy4sMzzvtjUqVMNScaBAweMkydPGhkZGcZrr71m+Pv7G+Hh4UZeXp5hGIaxZMkSp9pOnDhhmM1m4w9/+INRWFjoOF5aWpohyXjjjTcc2/r372+0bNmyQvUAVxousQGolP3792v06NHq1q2bhg4dWqnXFo9Q5Obmltvu2Wef1fLly9WhQwd98sknmjhxohISEtSxY0eny3qrV69W48aN9cgjj5Q4hslkcnwfGBjo+P63336TzWbTzTffrPT09ErV72rNmjWy2+26++67derUKccjIiJC8fHx2rx5s1N7f39/DR8+vFLvcfXVV6tJkyaKjY3VQw89pLi4OH344Ydlzl3auHGjCgoKNGbMGPn4/OdX/IMPPqiQkBB9+OGHlT9R4ArEJTYAFZaZman+/fvLYrHo3Xffla+vb6Vef+bMGUlS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8GtiYmKUmppaYzUBAGpeRW80684b0paHS2xwMmzYMC1btkwPPfRQiRvQjh49Wq+88oqGDh2qpUuXeqZAAECtVNvuFEFAQgnR0dFasWKFXnrpJQUGBkoquufZ8uXL1aJFCw9XBwCorbwl/FQEl9hQQseOHRUdHa01a9Y4tq1Zs0YtWrRQhw4dHNvy8/P16KOPqmnTpgoICFCPHj20c+dOp2N99NFHuuqqqxQYGKhbb71VR44cKfF+X375pW6++WYFBgYqOjpajz76qPLy8mrs/AAAuBQCkpf79Vdp8+air+7017/+VUuWLHE8f+ONNzR8+HCnNuPHj9fq1au1bNkypaenKy4uTomJicrOLlrs65dfftGf/vQnJSUlac+ePXrggQf01FNPOR3j8OHD6tu3r+666y59++23Wrlypb788kulpKTU/EkCAFAGApIXe/11qWVLqXfvoq+vv+6+977vvvv05Zdf6ueff9bPP/+sLVu26L777nPsz8vL06uvvqrZs2erX79+uvbaa7V48WIFBgbq9f8r9NVXX1Xr1q01Z84cXX311br33ns1bNgwp/eZMWOG7r33Xo0ZM0bx8fHq3r275s2bpzfffFPnzp1z3wkDAHAR5iB5qV9/lUaOlOz/txq73S499JCUmCg1b17z79+kSRP1799fS5culWEY6t+/vxo3buzYf/jwYZ0/f1433XSTY5ufn5+6dOmiffv2SZL27dunrl27Oh23W7duTs+/+eYbffvtt3rnnXcc2wzDkN1uV0ZGhq655pqaOD0AAMpFQPJSBw/+JxwVKyyUDh1yT0CSii6zFV/qWrBgQY28x5kzZ/TQQw/p0UcfLbGPCeEAAE8hIHmp+HjJx8c5JPn6SnFx7quhb9++KigokMlkUmJiotO+1q1by2w2a8uWLWrZsqUk6fz589q5c6fGjBkjSbrmmmv0wQcfOL3uq6++cnresWNH/fDDD4pz54kBAHAJzEHyUs2bS4sWFYUiqejra6+5b/So6D19tW/fPv3www/yLS7k/wQFBenhhx/WE088ofXr1+uHH37Qgw8+qLNnz2rEiBGSpFGjRungwYN64okndODAAS1fvrzE+klPPvmktm7dqpSUFO3Zs0cHDx7U+++/zyRtAIBHMYLkxUaMKJpzdOhQ0ciRO8NRsZCQkDL3zZw5U3a7XUOGDFFubq46deqk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AHWOzRasjIwY2WzBni4FqLWYpA0AdUh6egetXTtAhuEjk8mupKR16thxt6fLAmodRpAAoI6w2YId4UiSDMNHa9cOYCQJqAKvCEgLFixQTEyMAgIC1LVrV+3YsaPc9qtWrVKbNm0UEBCgtm3b6qOPPnLabxiGpkyZosjISAUGBqpPnz46ePBgqcfKz89X+/btZTKZtGfPnuo6JQBwu+zsMEc4KmYYPsrODvVQRUDt5fGAtHLlSo0dO1ZTp05Venq62rVrp8TERJ04caLU9lu3btXgwYM1YsQI7d69W8nJyUpOTtbevXsdbWbNmqV58+Zp4cKF2r59u4KCgpSYmKhz586VON748eMVFRVVY+cHADXNz8/v/77mSzJc9hry8ytwagfg0jwekObOnasHH3xQw4cP17XXXquFCxeqfv36euONN0pt//LLL6tv37564okndM0112jatGnq2LGjY5E0wzCUmpqqSZMm6c4779QNN9ygN998U8eOHdN7773ndKyPP/5Yn376qV588cWaPk0AqDEWi0WSdP68vySTy16Tzp83O7UDcGkeDUgFBQXatWuX+vTp49jm4+OjPn36aNu2baW+Ztu2bU7tJSkxMdHRPiMjQ5mZmU5tLBaLunbt6nTMrKwsPfjgg3rrrbdUv379S9aan5+vnJwcpwcAeAOzuSgAhYZaZTLZnfaZTHaFhmY7tQNwaR79FNupU6dUWFio8PBwp+3h4eHav39/qa/JzMwstX1mZqZjf/G2stoYhqFhw4Zp1KhR6tSpk44cOXLJWmfMmKFnn322QucFAO4UFhamlJQUFRQUqFmzHD35pEWFhSb5+hp64YUc3XPPYO7FBlTSFfkx//nz5ys3N1cTJkyo8GsmTJigsWPHOp7n5OQoOjq6JsoDgEorDj/jxkkDB0qHDklxcSY1b95QUkNPlgbUSh69xNa4cWP5+voqKyvLaXtWVpYiIiJKfU1ERES57Yu/ltfms88+07Zt2+Tv76969eopLi5OktSpUycNHTq01Pf19/dXSEiI0wMAvFHz5lKvXkVfAVSNRwOS2WxWQkKCNm3a5Nhmt9u1adMmdevWrdTXdOvWzam9JG3YsMHRPjY2VhEREU5tcnJytH37dkebefPm6ZtvvtGePXu0Z88exzIBK1eu1HPPPVet5wgAAGofj19iGzt2rIYOHapOnTqpS5cu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+vfv78aKa5iBSluxYoVhNpuNN954w/j++++NBx980GjYsKGRlZVVavsdO3YYjz/+uPGPf/zDiIiIMF566SX3FuwBle2je+65x1iwYIGxe/duY9++fcawYcMMi8Vi/Prrr26u3H0q20ebN2821qxZY/zwww/GoUOHjNTUVMPX19dYv369myt3n8r2UbGMjAyjWbNmxs0332zceeed7inWQyrbR0uWLDFCQkKM48ePOx6ZmZlurtq9KttH+fn5RqdOnYw//vGPxpdffmlkZGQYn3/+ubFnzx43V+4+le0jq9Xq9DO0d+9ew9fX11iyZIl7C69BBKQq6NKlizF69GjH88LCQiMqKsqYMWPGJV/bsmXLKyIgXU4fGYZhXLhwwQgODjaWLVtWUyV63OX2kWEYRocOHYxJkybVRHleoSp9dOHCBaN79+7G//zP/xhDhw6t8wGpsn20ZMkSw2KxuKk671DZPnr11VeNVq1aGQUFBe4q0eMu9/fRSy+9ZAQHBxtnzpypqRLdjktslVRQUKBdu3apT58+jm0+Pj7q06ePtm3b5sHKvEd19NHZs2d1/vx5hYaG1lSZHnW5fWQYhjZt2qQDBw7olltuqclSPaaqffT3v/9dTZs21YgRI9xRpkdVtY/OnDmjli1bKjo6Wnfeeae+//57d5TrEVXpow8++EDdunXT6NGjFR4eruuvv17PP/+8CgsL3VW2W1XH7+zXX39dgwYNUlBQUE2V6XYEpEo6deqUCgsLFR4e7rQ9PDxcmZmZHqrKu1RHHz355JOKiopy+h+2LqlqH9lsNjVo0EBms1n9+/fX/Pnzdfvtt9d0uR5RlT768ssv9frrr2vx4sXuKNHjqtJHV199td544w29//77evvtt2W329W9e3f9+uuv7ijZ7arSRz/99JPeffddFRYW6qOPPtLkyZM1Z84cTZ8+3R0lu93l/s7esWOH9u7dqwceeKCmSvSIep4uAHA1c+ZMrVixQp9//vkVMXm0MoKDg7Vnzx6dOXNGmzZt0tixY9WqVSv16tXL06V5XG5uroYMGaLFixercePGni7Ha3Xr1k3dunVzPO/evbuuueYavfbaa5o2bZoHK/MedrtdTZs21aJFi+Tr66uEhAT9+9//1uzZszV16lRPl+d1Xn/9dbVt21ZdunTxdCnVioBUSY0bN5avr6+ysrKctmdlZSkiIsJDVXmXy+mjF198UTNnztTGjRt1ww031GSZHlXVPvLx8VFcXJwkqX379tq3b59mzJhRJwNSZfvo8OHDOnLkiJKSkhzb7Ha7JKlevXo6cOCAWrduXbNFu1l1/D7y8/NThw4ddOjQoZoo0eOq0keRkZHy8/OTr6+vY9s111yjzMxMFRQUyGw212jN7nY5P0d5eXlasWKF/v73v9dkiR7BJbZKMpvNSkhI0KZNmxzb7Ha7Nm3a5PSvsitZVfto1qxZmjZtmtavX69OnTq5o1SPqa6fI7vdrvz8/Joo0eMq20dt2rTRd999pz179jged9xxh2699Vbt2bNH0dHR7izfLarj56iwsFDfffedIiMja6pMj6pKH9100006dOiQI2BL0o8//qjIyMg6F46ky/s5WrVqlfLz83XffffVdJnu5+lZ4rXRihUrDH9/f2Pp0qXGDz/8YIwcOdJo2LCh46OyQ4YMMZ566ilH+/z8fGP37t3G7t27jcjISOPxxx83du/ebRw8eNBTp1DjKttHM2fONMxms/Huu+86fXQ0NzfXU6dQ4yrbR88//7zx6aefGocPHzZ++OEH48UXXzTq1atnLF682FOnUOMq20euroRPsVW2j5599lnjk08+MQ4fPmzs2rXLGDRokBEQEGB8//33njqFGlfZPjp69KgRHBxspKSkGAcOHDDWrVtnNG3a1Jg+fbqnTqHGVfX/tR49ehgDBw50d7luQUCqovnz5xstWrQwzGaz0aVLF+Orr75y7OvZs6cxdOhQx/OMjAxDUolHz5493V+4G1Wmj1q2bFlqH02dOtX9hbtRZfpo4sSJRlxcnBEQEGA0atTI6Natm7FixQoPVO1elekjV1dCQDKMyvXRmDFjHG3Dw8ONP/7xj0Z6eroHqnavyv4cbd261ejatavh7+9vtGrVynjuueeMCxcuuLlq96psH+3fv9+QZHz66adurtQ9TIZhGB4avAIAAPBKzEECAABwQUACAABwQUACAABwQUACAABwQUACAABwQUACAABwQUACAABwQUACAC83bNgwJScne7oM4IpCQAJQZcOGDZPJZHI8wsLC1LdvX3377beeLq1aXHxuxY8ePXrU2PsdOXJEJpNJe/bscdr+8ssva+nSpTX2vgBKIiABuCx9+/bV8ePHdfz4cW3atEn16tXTgAEDPF1WtVmyZInj/I4fP64PPvig1Hbnz5+vsRosFosaNmxYY8cHUBIBCcBl8ff3V0REhCIiItS+fXs99dRT+uWXX3Ty5En17t1bKSkpTu1Pnjwps9nsuHN4TEyMpk2bpsGDBysoKEjNmjXTggULnF4zd+5ctW3bVkFBQYqOjtZ///d/68yZM479P//8s5KSktSoUSMFBQXpuuuu00cffSRJ+u2333TvvfeqSZMmCgwMVHx8vJYsWVLh82vYsKHj/CIiIhQaGuoY6Vm5cqV69uypgIAAvfPOO7JarRo8eLCaNWum+vXrq23btvrHP/7hdDy73a5Zs2YpLi5O/v7+atGihZ577jlJUmxsrCSpQ4cOMplM6tWrl6SSl9jy8/P16KOPqmnTpgoICFCPHj20c+dOx/7PP/9cJpNJmzZtUqdOnVS/fn11795dBw4cqPB5A1c6AhKAanPmzBm9/fbbiouLU1hYmB544AEtX75c+fn5jjZvv/22mjVrpt69ezu2zZ49W+3atdPu3bv11FNP6bHHHtOGDRsc+318fDRv3jx9//33WrZsmT777DONHz/esX/06NHKz8/Xv/71L3333Xd64YUX1KBBA0nS5MmT9cMPP+jjjz/Wvn379Oqrr6px48bVcr7Fte7bt0+JiYk6d+6cEhIS9OGHH2rv3r0aOXKkhgwZoh07djheM2HCBM2cOdNR1/LlyxUeHi5JjnYbN27U8ePHtWbNmlLfd/z48Vq9erWWLVum9PR0xcXFKTExUdnZ2U7tJk6cqDlz5ujrr79WvXr19Ne//rVazhu4Inj6brkAaq+hQ4cavr6+RlBQkBEUFGRIMiIjI41du3YZhmEYv//+u9GoUSNj5cqVjtfccMMNxjPPPON43rJlS6Nv375Oxx04cKDRr1+/Mt931apVRlhYmON527ZtnY55saSkJGP48OFVOj9JRkBAgOP8goKCjH/+859GRkaGIclITU295DH69+9vjBs3zjAMw8jJyTH8/f2NxYsXl9q2+Li7d+922j506FDjzjvvNAzDMM6cOWP4+fkZ77zzjmN/QUGBERUVZcyaNcswDMPYvHmzIcnYuHGjo82HH35oSDJ+//33ynQBcMViBAnAZbn11lu1Z88e7dmzRzt27FBiYqL69eunn3/+WQEBARoyZIjeeOMNSVJ6err27t2rYcOGOR2jW7duJZ7v27fP8Xzjxo267bbb1KxZMwUHB2vIkCGyWq06e/asJOnRRx/V9OnTddNNN2nq1KlOk8QffvhhrVixQu3bt9f48eO1devWSp3fSy+95Di/PXv26Pbbb3fs69Spk1PbwsJCTZs2TW3btlVoaKgaNGigTz75REePHpUk7du3T/n5+brtttsqVcPFDh8+rPPnz+umm25ybPPz81OXLl2c+kySbrjhBsf3kZGRkqQTJ05U+b2BKwkBCcBlCQoKUlxcnOLi4tS5c2f9z//8j/Ly8rR48WJJ0gMPPKANGzbo119/1ZIlS9S7d2+1bNmywsc/cuSIBgwYoBtuuEGrV6/Wrl27HHOUCgoKHO/x008/aciQIfruu+/UqVMnzZ8/X5IcYe1vf/ubjh07pttuu02PP/54hd8/IiLCcX5xcXEKCgpyOveLzZ49Wy+//LKefPJJbd68WXv27FFiYqKjzsDAwAq/b3Xw8/NzfG8ymSQVzYECcGkEJADVymQyycfHR7///rskqW3bturUqZMWL16s5cuXlzoP5quvvirx/JprrpEk7dq1S3a7XXPmzNGNN96oq666SseOHStxjOjoaI0aNUpr1qzRuHHjHAFNkpo0aaKhQ4fq7bffVmpqqhYtWlSdp+ywZcsW3XnnnbrvvvvUrl07tWrVSj/++KNjf3x8vAIDAx0T1F2ZzWZJRSNRZWndurXMZrO2bNni2Hb+/Hnt3LlT1157bTWdCYB6ni4AQO2Wn5+vzMxMSUWfGEtLS9OZM2eUlJTkaPPAAw8oJSVFQUFB+q//+q8Sx9iyZYtmzZql5ORkbdiwQatWrdKHH34oSYqLi9P58+c1f/58JSUlacuWLVq4cKHT68eMGaN+/frpqquu0m+//abNmzc7AtaUKVOUkJCg6667Tvn5+Vq3bp1jX3WLj4/Xu+++q61bt6pRo0aaO3eusrKyHMElICBATz75pMaPHy+z2aybbrpJJ0+e1Pfff68RI0aoadOmCgwM1Pr169W8eXMFBATIYrE4vUdQUJAefvhhPfHEEwoNDVWLFi00a9YsnT17ViNGjKiR8wKuRIwgAbgs69evV2RkpCIjI9W1a1ft3LlTq1atcnxEXZIGDx6sevXqafDgwQoICChxjHHjxunrr79Whw4dNH36dM2dO1eJiYmSpHbt2mnu3Ll64YUXdP311+udd97RjBkznF5fWFio0aNH65prrlHfvn111VVX6ZVXXpFUNCozYcIE3XDDDbrlllvk6+urFStW1EhfTJo0SR07dlRiYqJ69eqliIiIEitgT548WePGjdOUKVN0zTXXaODAgY55QfXq1dO8efP02muvKSoqSnfeeWep7zNz5kzdddddGjJkiDp27KhDhw7pk08+UaNGjWrkvIArkckwDMPTRQCo244cOaLWrVtr586d6tixo9O+mJgYjRkzRmPGjPFMcQBQCi6xAagx58+fl9Vq1aRJk3TjjTeWCEcA4K24xAagxmzZskWRkZHauXNniXlDnvb888+rQYMGpT769evn6fIAeBiX2ABckbKzs0usPF0sMDBQzZo1c3NFALwJAQkAAMAFl9gAAABcEJAAAABcEJAAAABcEJAAAABcEJAAAABcEJAAAABcEJAAAABcEJAAAABc/H+6WTHwGwD+OAAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_8.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkgAAAHHCAYAAABEEKc/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABLz0lEQVR4nO3de1yUZf7/8feADCDCFKggioJImlYqlKZpWmuLpRTbwVOZmaX2jdK1o3nOSjsZKZa6j1JrM600W821zGrLQ1ailaWmhtlBUCEHxFWMuX5/+GPWGQ4CwgyH1/PxmAfMfV/3PZ/7amLeXvc9120xxhgBAADAycfbBQAAANQ0BCQAAAA3BCQAAAA3BCQAAAA3BCQAAAA3BCQAAAA3BCQAAAA3BCQAAAA3BCQAAAA3BCQAqMUWLVoki8Wi/fv3e7sUoE4hIAEo01dffaWUlBR16NBBQUFBatmypQYMGKAff/yxWNvevXvLYrHIYrHIx8dHISEhatu2rYYOHap169ZV6HVXrVqlXr16qWnTpmrYsKFat26tAQMGaO3atVV1aMU89dRTWrlyZbHlmzZt0tSpU3X06NFqe213U6dOdfalxWJRw4YN1b59e02cOFG5ublV8hpLlixRampqlewLqGsISADK9PTTT2v58uX6y1/+ohdffFEjR47UZ599pvj4eO3YsaNY+xYtWuj111/Xa6+9pmeffVbXX3+9Nm3apL/+9a8aOHCgTp06ddbXfO6553T99dfLYrFo/PjxeuGFF3TTTTdpz549Wrp0aXUcpqSyA9K0adM8GpCKvPzyy3r99dc1a9YstWvXTk8++aT69u2rqriNJgEJKF0DbxcAoGYbN26clixZIqvV6lw2cOBAXXzxxZo5c6b++c9/urS32Wy67bbbXJbNnDlT999/v1566SVFR0fr6aefLvX1/vzzT02fPl3XXHONPvzww2LrDx06dI5HVHMcP35cDRs2LLPNzTffrMaNG0uSRo8erZtuukkrVqzQF198oW7dunmiTKBeYgQJQJm6d+/uEo4kKS4uTh06dNDOnTvLtQ9fX1/Nnj1b7du3V1pamux2e6ltjxw5otzcXF1xxRUlrm/atKnL8xMnTmjq1Km64IILFBAQoGbNmunGG2/Uvn37nG2ee+45de/eXWFhYQoMDFRCQoLeeecdl/1YLBbl5+dr8eLFztNad9xxh6ZOnaqHHnpIkhQTE+Ncd+Y1P//85z+VkJCgwMBAhYaGatCgQfrll19c9t+7d29ddNFF2rp1q6688ko1bNhQjz32WLn670xXX321JCkjI6PMdi+99JI6dOggf39/RUZG6t5773UZAevdu7fef/99/fzzz85jio6OrnA9QF3FCBKACjPGKCsrSx06dCj3Nr6+vho8eLAmTZqkDRs2qF+/fiW2a9q0qQIDA7Vq1Srdd999Cg0NLXWfhYWF6t+/v9avX69BgwZpzJgxysvL07p167Rjxw7FxsZKkl588UVdf/31uvXWW1VQUKClS5fqlltu0erVq511vP7667rrrrvUpUsXjRw5UpIUGxuroKAg/fjjj3rzzTf1wgsvOEdzmjRpIkl68sknNWnSJA0YMEB33XWXDh8+rDlz5ujKK6/Utm3bdN555znrzc7O1rXXXqtBgwbptttuU3h4eLn7r0hR8AsLCyu1zdSpUzVt2jT16dNH99xzj3bv3q2XX35ZX331lTZu3Cg/Pz9NmDBBdrtdv/76q1544QVJUqNGjSpcD1BnGQCooNdff91IMq+88orL8l69epkOHTqUut27775rJJkXX3yxzP1PnjzZSDJBQUHm2muvNU8++aTZunVrsXavvvqqkWRmzZpVbJ3D4XD+fvz4cZd1BQUF5qKLLjJXX321y/KgoCAzbNiwYvt69tlnjSSTkZHhsnz//v3G19fXPPnkky7Lv/vuO9OgQQOX5b169TKSzLx580o97jNNmTLFSDK7d+82hw8fNhkZGWb+/PnG39/fhIeHm/z8fGOMMQsXLnSp7dChQ8ZqtZq//vWvprCw0Lm/tLQ0I8m8+uqrzmX9+vUzrVq1Klc9QH3DKTYAFbJr1y7de++96tatm4YNG1ahbYtGKPLy8spsN23aNC1ZskSdO3fWBx98oAkTJighIUHx8fEup/WWL1+uxo0b67777iu2D4vF4vw9MDDQ+fsff/whu92unj17Kj09vUL1u1uxYoUcDocGDBigI0eOOB8RERGKi4vTJ5984tLe399fw4cPr9BrtG3bVk2aNFFMTIxGjRqlNm3a6P333y/12qWPPvpIBQUFGjt2rHx8/vcn/u6771ZISIjef//9ih8oUA9xig1AuWVmZqpfv36y2Wx655135OvrW6Htjx07JkkKDg4+a9vBgwdr8ODBys3N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bTVJnGIDAFQAMzrXP3fccYcWL16sUaNGFbsB7b333quXXnpJw4YN06JFi7xTYDUhIAEAKoTwU/9ERUVp6dKleuGFFxQYGCjp9P3OlixZopYtW3q5uurBKTYAAFCm+Ph4RUVFacWKFc5lK1asUMuWLdW5c2fnspMnT+r+++9X06ZNFRAQoB49euirr75y2deaNWt0wQUXKDAwUFdddZX2799f7PU2bNignj17KjAwUFFRUbr//vuVn59fbcdXEgISAAC1zK+/Sp98cvqnp9x5551auHCh8/mrr76q4cOHu7R5+OGHtXz5ci1evFjp6elq06aNEhMTlZNzegLRX375RTfeeKOSkpK0fft23XXXXXr00Udd9rFv3z717dtXN910k7799lstW7ZMGzZsUEpKSvUf5BkISAAA1CKvvCK1aiVdffXpn6+84pnXve2227Rhwwb9/PPP+vnnn7Vx40bddtttzvX5+fl6+eWX9eyzz+raa69V+/bt9Y9//EOBgYF65f8X+fLLLys2NlbPP/+82rZtq1tvvVV33HGHy+vMmDFDt956q8aOHau4uDh1795ds2fP1muvvaYTJ0545mDFNUgAANQav/4qjRwpOf7/XV4cDmnUKCkxUWrRonpfu0mTJurXr58WLVokY4z69eunxo0bO9fv27dPp06d0hVXXOFc5ufnpy5dumjnzp2SpJ07d6pr164u++3WrZvL82+++Ubffvut3njjDecyY4wcDocyMjJ04YUXVsfhFUNAAgCgltiz53/hqEhhobR3b/UHJOn0abaiU11z586tltc4duyYRo0apfvvv7/YOk9eEE5AAgCgloiLk3x8XEOSr6/Upo1nXr9v374qKCiQxWJRYmKiy7rY2FhZrVZt3LhRrVq1kiSdOnVKX331lcaOHStJuvDCC/Wvf/3LZbsvvvjC5Xl8fLx++OEHtfHUQZWCa5AAAKglWrSQFiw4HYqk0z/nz/fM6NHp1/PVzp079cMPP8i3qIj/LygoSPfcc48eeughrV27Vj/88IPuvvtuHT9+XCNGjJAkjR49Wnv27NFDDz2k3bt3a8mSJcXmT3rkkUe0adMmpaSkaPv27dqzZ4/ee+89j1+kzQgSAAC1yIgRp6852rv39MiRp8JRkZCQkFLXzZw5Uw6HQ0OHDlVeXp4uvfRSffDBBzr//PMlnT5Ftnz5cv39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qI4+qOvvg4MHD2rIkCG64IIL5OPjo7Fjx5bY7u2331a7du0UEBCgiy++WGvWrKn64qtAdRz/okWLir0HAgICqucAqkBF+2DFihW65ppr1KRJE4WEhKhbt2764IMPirWr7r8FBKQqtmzZMo0bN05TpkxRenq6OnbsqMTERB06dKjE9kuWLNGjjz6qKVOmaOfOnXrllVe0bNkyPfbYYy7tOnTooIMHDzofGzZs8MThVEpF+2DixImaP3++5syZox9++EGjR4/W3/72N23btq3S+/S26ugDqXa9D/Lz89WxY0fNnTu3XO0zMjLUr18/XXXVVdq+fbvGjh2ru+66y+UPY217H1RHH0h1+31w8uRJNWnSRBMnTlTHjh1LbLNp0yYNHjxYI0aM0LZt25ScnKzk5GTt2LGjKkuvEtVx/NLpGabPfA/8/PPPVVVylatoH3z22We65pprtGbNGm3dulVXXXWVkpKSPP+ZYFClunTpYu69917n88LCQhMZGWlmzJhRYvt7773XXH311S7Lxo0bZ6644grn8ylTppiOHTtWS73VoaJ90KxZM5OWluay7MYbbzS33nprpffpbdXRB7XtfXAmSebdd98ts83DDz9sOnTo4LJs4MCBJjEx0fm8tr0PzlRVfVDX3wdn6tWrlxkzZkyx5QMGDDD9+vVzWda1a1czatSoc6ywelXV8S9cuNDYbLYqq8uTKtoHRdq3b2+mTZvmfO6JvwWMIFWhgoICbd26VX369HEu8/HxUZ8+fbR58+YSt+nevbu2bt3qHBr86aeftGbNGl133XUu7fbs2aPIyEi1bt1at956qw4cOFB9B3IOKtMHJ0+eLDY8HBgY6PxXcWX26U3V0QdFasv7oDI2b97s0meSlJiY6Oyz2vY+qIyz9UGRuvw+KI/y9lNdduzYMbVq1UpRUVG64YYb9P3333u7pGrjcDiUl5en0NBQSZ77W0BAqkJHjhxRYWGhwsPDXZaHh4crMzOzxG2GDBmixx9/XD169JCfn59iY2PVu3dvl1NsXbt21aJFi7R27Vq9/PLLysjIUM+ePZWXl1etx1MZlemDxMREzZo1S3v27JHD4dC6deu0YsUKHTx4sNL79Kbq6AOpdr0PKiMzM7PEPsvNzdV///vfWvc+qIyz9YFU998H5VFaP9WV98HZtG3bVq+++qree+89/fOf/5TD4VD37t3166+/eru0avHcc8/p2LFjGjBggCTPfSYQkLzs008/1VNPPaWXXnpJ6enpWrFihd5//31Nnz7d2ebaa6/VLbfcoksuuUSJiYlas2aNjh49qrfeesuLlVedF198UXFxcWrXrp2sVqtSUlI0fPhw+fjUn7dnefqgrr8PUD68D9CtWzfdfvvt6tSpk3r16qUVK1aoSZMmmj9/vrdLq3JLlizRtGnT9NZbb6lp06Yefe368wnkAY0bN5avr6+ysrJclmdlZSkiIqLEbSZNmqShQ4fqrrvu0sUXX6y//e1veuqppzRjxgw5HI4StznvvPN0wQUXaO/evVV+DOeqMn3QpEkTrVy5Uvn5+fr555+1a9cuNWrUSK1bt670Pr2pOvqgJDX5fVAZERERJfZZSEiIAgMDa937oDLO1gclqWvvg/IorZ/qyvugovz8/NS5c+c69x5YunSp7rrrLr311lsup9M89beAgFSFrFarEhIStH79eucyh8Oh9evXq1u3biVuc/z48WIjJb6+vpIkU8pt8o4dO6Z9+/apWbNmVVR51alMHxQJCAhQ8+bN9eeff2r58uW64YYbznmf3lAdfVCSmvw+qIxu3bq59JkkrVu3ztlnte19UBln64OS1LX3QXlUpp/qssLCQn333Xd16j3w5ptvavjw4XrzzTfVr18/l3Ue+1tQZZd7wxhjzNKlS42/v79ZtGiR+eGHH8zIkSPNeeedZzIzM40xxgwdOtQ8+uijzvZTpkwxwcHB5s033zQ//fST+fDDD01sbKwZMGCAs80DDzxgPv30U5ORkWE2btxo+vTpYxo3bmwOHTrk8eMrj4r2wRdffGGWL19u9u3bZz777DNz9dVXm5iYGPPHH3+Ue581TXX0QW17H+Tl5Zlt27aZbdu2GUlm1qxZZtu2bebnn382xhjz6KOPmqFDhzrb//TTT6Zhw4bmoYceMjt37jRz5841vr6+Zu3atc42te19UB19UNffB8YYZ/uEhAQzZMgQs23bNvP9998712/cuNE0aNDAPPfcc2bnzp1mypQpxs/Pz3z33XcePbbyqI7jnzZtmvnggw/Mvn37zNatW82gQYNMQECAS5uapKJ98MYbb5gGDRqYuXPnmoMHDzofR48edbbxxN8CAlI1mDNnjmnZsqWxWq2mS5cu5osvvnCu69Wrlxk2bJjz+alTp8zUqVNN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d25X0jG7u/DCC7Vx40aXZRs3btQFF1wgX1/fqj8YoA5hBAnAObv44ot16623avbs2c5lgwYN0s0336xBgwbp8ccf15YtW7R//3795z//0bJly8r9Ad27d2/Nnz9fW7du1f79+7VmzRo99thjuuqqqxQSEiLp9DxIn332mX777TcdOXJEkvTII49o06ZNSklJ0fbt27Vnzx699957zou0W7ZsKavVqjlz5uinn37Sv/71r7Oetqsut9xyi3x9fTV37lxJp0ff1q1bp02bNmnnzp0aNWqUsrKyXLaJjo529umRI0dKHMF64IEHtH79ek2fPl0//vijFi9erLS0ND344IMeOS6gNiMgAagSjz/+uMuHtMVi0bJly5Samqo1a9boL3/5i9q2bas777xTUVFR2rBhQ7n2m5iYqMWLF+uvf/2rLrzwQt13331KTEzUW2+95fLa+/fvV2xsrJo0aSLp9HVD//nPf/Tjjz+qZ8+e6ty5syZPnqzIyEhJp0/3LVq0SG+//bbat2+vmTNn6rnnnqvCHim/Bg0aKCUlRc8884zy8/M1ceJExcfHKzExUb1791ZERISSk5NdtnnwwQfl6+ur9u3bq0mTJiVenxQfH6+33npLS5cu1UUXXaTJkyfr8ccfL/GbegBcWYwxxttFAAAA1CSMIAEAALghIAHwqjO/hu/++Pzzz71dXoUcOHCgzOOp6Nf0AXgPp9gAeFVZN61t3ry5AgMDPVjNufnzzz+1f//+UtdHR0erQQO+PAzUBgQkAAAAN5xiAwAAcENAAgAAcENAAgAAcENAAgAAcENAAgAAcENAAgAAcENAAgAAcENAAgAAcPP/ACQCRaDQtcmsAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_9.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_10.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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ERFRnWjTpmEXWDVh9mcdEhERETVWLLSIiIiITISFFhEREZGJsNAiIiIiMhEWWkREREQmwkKLiIiIyERYaBERERGZCAstIiIiIhNhoUVERERkIiy0iIiIiEyEhRYRERGRibDQIiIiIjIRFlpEREREJsJCi4iIiMhEWGgRERERmQgLLSIiIiITYaFFREREZCLNzJ0AERERUW3Jz89HcXFxhdtVKhWcnJzqLB8WWkRERNQo5OfnY9GiRVXGxcTE1FmxxUuHRERE1ChUNpNVk7jawEKLiIiIyERYaBERERGZCAstIiIiIhNhoUVERERkIiy0iIiIqFHS6eyQne0Bnc7ObDlweQciIiJqdDIyumPTpoEQQgmFwoDw8M3w88us8zw4o0VERESNgkqlAnBnJqu0yAIAIZTYtGmgNLNVGlcXFEIIUWdHIxm9Xg+NRgOdTgd7e3tzp0NERNTg5efnY9cuYMiQsguSfvddPvr2xX0vVmrM9zcvHRIREVGj4eTkhF69AKUSMBj+abewAAIDnVCHT98BwEuHRERE1Mi0aQN89tmd4gq483fJkjvtdY0zWkRERNToREUBWi1w6hTg7W2eIgtgoUVERESNVJs25iuwSpn90uHixYvh4eEBtVqNwMBA7N+/v9L4tWvXolOnTlCr1ejatSu2bt0q2y6EwNSpU+Hq6gpra2uEhobi5MmTspj33nsPwcHBsLGxgYODQ7nHUSgUZV6rVq2SxezevRt+fn6wsrKCt7c3kpKSjD5/IiIiarzMWmitXr0acXFxiI+PR0ZGBrp16watVouLFy+WG5+SkoIRI0YgKioKmZmZiIiIQEREBI4cOSLFzJkzBwsWLEBiYiLS0tJga2sLrVaLGzduSDHFxcUYMmQIXn755UrzW758OXJycqRXRESEtC07OxthYWHo168fDh48iNjYWLzwwgv48ccf729QiIiIqPEQZhQQECDGjx8vvS8pKRFubm4iISGh3PihQ4eKsLAwWVtgYKAYN26cEEIIg8EgXFxcxNy5c6XtV69eFVZWVuLbb78t09/y5cuFRqMp91gAxPfff19h7m+88Ybo0qWLrG3YsGFCq9VWuM+9dDqdACB0Ol219yEiIiLzMub722wzWsXFxUhPT0doaKjUplQqERoaitTU1HL3SU1NlcUDgFarleKzs7ORm5sri9FoNAgMDKywz8qM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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_11.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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qthOQUEBzp07V+1yJSUlKCgo0HsRERFR02S2EHXz5k1otVq9oAIArq6uyM3NrXKZ3NzcGusrfhqyTkO2c+82qhIXFweVSiW9PD09a71NIiIialzMfmN5UzJjxgxoNBrpdfXqVXO3RERERCZithDVqlUrKBQK5OXl6U3Py8uDm5tblcu4ubnVWF/x05B1GrKde7dRFSsrKzg4OOi9iIiImpLa3hdc27rGzGyDbSqVSgQGBiI5ORkREREAym8sT05ORkxMTJXLBAcHIzk5GVOmTJGm7d+/H8HBwQAAb29vuLm5ITk5GX5+fgDKbw5LTU2t9pt41W1nwYIFuH79OlxcXKTtODg4oGvXrobvLBERURPh7OyMmJgYjlgOM49YHhsbi6ioKPTq1Qt9+vTB8uXLUVxcjPHjxwMAXnjhBbRp0wZxcXEAgNdffx0DBgzA0qVLERYWhsTERJw4cUL6loBMJsOUKVMwf/58+Pr6wtvbGzNnzoSHh4cU1IDyMaDy8/Nx5coVaLVapKenAwB8fHzQokULPP300+jatSvGjh2LRYsWITc3F++++y4mTZoEKyurej1GREREDc29AenaNeDiRcDXF2jb1oxNmYMws5UrV4p27doJpVIp+vTpI3766Sdp3oABA0RUVJRe/Zdffik6deoklEql6Natm9i9e7fefJ1OJ2bOnClcXV2FlZWVGDx4sMjMzNSriYqKEgAqvQ4dOiTVZGdni6FDhwobGxvRqlUrMXXqVFFWVmbQvmk0GgFAaDQag5YjIiJqDP71LyHkciGA8p//+pe5O6obtf38Nus4UU0dx4kiIqKm6to1oH17QKf7c5pCAWRnN/4zUg1+nCgiIiJqvC5e1A9QAKDVApcumacfc2CIIiIiIoP5+gLy+1KEQgH4+JinH3NgiCIiIiKDtW0LrF1bHpyA8p+fftr4L+UZwqzfziMiIqLGa8IEIDS0/BKej0/zClAAQxQRERE9hLZtm194qsDLeURERERGYIgiIiIiMgJDFBEREZERGKKIiIiIjMAQRURERGQEhigiIiIiIzBEERERERmBIYqIiIjICAxRREREREZgiCIiIiIyAkMUERERkREYooiIiIiMwBBFREREZAQLczdAREREpqFWq1FaWlrtfKVSCWdn53rsqGlhiCIiImqC1Go1Vq1a9cC6mJgYBikj8XIeERFRE1TT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l6c3PS8vD25ublUu4+bmVmN9xc8H1dz7DygA3L17F/n5+VLNwYMHsWTJElhYWMDCwgITJkyARqOBhYUFNmzYUGVvVlZWcHBw0HsRUcN09+5dABWX68KrfTSLp+dVAPq3jspkOnh6XqvXfomo4TFriFIqlQgMDERycrI0TafTITk5GcHBwVUuExwcrFcPAPv375fqvb294ebmpldTUFCA1NRUqSY4OBi3bt1CWlqaVHPw4EHodDoEBQUBKL9vKj09XXq99957sLe3R3p6Ov7yl7/UzQEgIrMrv1wn05smRPnlOgBQqQoxfPguyGTlw45XnKm695IfETVPZr+cFxsbi6ioKPTq1Qt9+vTB8uXLUVxcjPHjxwMAXnjhBbRp0wZxcXEAgNdffx0DBgzA0qVLERYWhsTERJw4cQJr164FAMhkMkyZMgXz58+Hr6+vNMSBh4cHIiIiAABdunTBkCFD8NJLL2HNmjUoKytDTEwMRo8eLX0zr0uXLnp9njhxAnK5XBpGgYiaj4CAU+jY8RLy853g5JTPAEVEABpAiBo1ahRu3LiBWbNmITc3F35+fti7d690Y/iVK1cgl/95wqxfv35ISEjAu+++i3/+85/w9fXFN998oxdupk2bhuLiYkRHR+PWrVt4/PHHsXfvXmmMKADYsmULYmJiMHjwYMjlcowcORIrVqyovx0nogah/HKdDvon5itfrlOpCqsMT7a2tibtj4gaLrOPE9WUcZwoooartuNA9erVC+3atatyHba2thxok6gJqu3nt9nPRBERmVtNl+vatWvHwTSJqEoMUUTULFlaWuq9r+5y3f11REQVGKKIqNFTq9UoLS2tdr5SqYSzs7PetNatW9dq3bWtI6LmhyGKiBq12o48HhMToxeknJ2dERMTY3D4IiKqwBBFRI3avSGoppHHqwpLDEhE9DDMOtgmEVFd0WjspQAFVB55nIiorjFEEVGTkJ/vLAWoCkLIkZ/vZKaOiKipY4gioibByUktPZqlgkymg5NTvpk6IqKmjiGKiJoElaoQ4eFJfMYdEdUb3lhORE0Gn3FHRPWJIYqImpTqBs0kIqprvJxHRI2aUqms0zoiotrimSgiatQ4aCYRmQtDFBE1egxIRGQOvJxHREREZASGKCIiIiIjMEQRERERGYEhioiIiMgIDFFERERERmCIIiIiIjICQxQRERGRERiiiIiIiIzAEEVERERkBIYoIiIiIiMwRBEREREZgSGKiIiIyAgMUURERERGYIgiIiIiMgJDFBEREZERGKKIiIiIjMAQRURERGQEhigiIiIiIzBEERERERmBIYqIiIjICAxRREREREZgiCIiIiIyAkMUERERkREYooiIiIiMwBBFREREZASGKCIiIiIjMEQRERERGYEhioiIiMgIDFFERERERrAwdwNEzZlarUZpaWm185VKJZydneuxIyIiqi2GKCIzUavVWLVq1QPrYmJiGKSIiBogXs4jMpOazkAZU0dERPWLIYqIiIjICAxRRA2ERmOPrCwvaDT25m6FiIhqgfdEETUAJ0/6Y9euYRBCDplMh/DwJAQEnDJ3W0REVAOeiSIyM43GXgpQACCEHLt2DeMZKSKiBq5BhKjVq1fDy8sL1tbWCAoKwrFjx2qs37ZtGzp37gxra2t0794de/bs0ZsvhMCsWbPg7u4OGxsbhISE4OLFi3o1+fn5GDNmDBwcHODo6IgJEyagqKhImv/DDz9gxIgRcHd3h52dHfz8/LBly5a622mi/5ef7ywFqApCyJGf72SmjoiIqDbMHqK2bt2K2NhYzJ49GydPnkTPnj0RGhqK69evV1l/9OhRREZGYsKECTh16hQiIiIQERGBs2fPSjWLFi3CihUrsGbNGqSmpsLOzg6hoaG4c+eOVDNmzBicO3cO+/fvR1JSEn788UdER0frbadHjx7Yvn07Tp8+jfHjx+OFF15AUlKS6Q4GNUtOTmrIZDq9aTKZDk5O+WbqiIiIakMmhBDmbCAoKAi9e/eWxsvR6XTw9PTE5MmTMX369Er1o0aNQnFxsV6Y6du3L/z8/LBmzRoIIeDh4YGpU6fizTffBABoNBq4uroiPj4eo0ePRkZGBrp27Yrjx4+jV69eAIC9e/fimWeewbVr1+Dh4VFlr2FhYXB1dcWGDRtqtW8FBQVQqVTQaDRwcHAw6LhQ03fvOFE13RPFcaKIiOpXbT+/zXpjeWlpKdLS0jBjxgxpmlwuR0hICFJSUqpcJiUlBbGxsXrTQkND8c033wAAsrKykJubi5CQEGm+SqVCUFAQUlJSMHr0aKSkpMDR0VEKUAAQEhICuVyO1NRU/OUvf6ly2xqNBl26dKl2f0pKSlBSUiK9LygoqH7nqdlzdnZGTEyMNA7UrFk3kJ1tAS+vu/Dw6A2gN0csJyJqwMwaom7evAmtVgtXV1e96a6urrhw4UKVy+Tm5lZZn5ubK82vmFZTjYuLi958CwsLODk5STX3+/LLL3H8+HF8+umn1e5PXFwc5s6dW+18ovvdG5Dc3YHAQDM2Q0REBjH7PVGNwaFDhzB+/HisW7cO3bp1q7ZuxowZ0Gg00uvq1av12CURERHVJ7OGqFatWkGhUCAvL09vel5eHtzc3Kpcxs3Nrcb6ip8Pqrn/xvW7d+8iPz+/0nb//e9/Izw8HB9++CFeeOGFGvfHysoKDg4Oei8iIiJqmswaopRKJQIDA5GcnCxN0+l0SE5ORnBwcJXLBAcH69UDwP79+6V6b29vuLm56dUUFBQgNTVVqgkODsatW7eQlpYm1Rw8eBA6nQ5BQUHStB9++AFhYWH44IMP9L65R0RERARhZomJicLKykrEx8eL8+fPi+joaOHo6Chyc3OFEEKMHTtWTJ8+Xao/cuSIsLCwEEuWLBEZGRli9uzZwtLSUpw5c0aqWbhwoXB0dBTffvutOH36tBgxYoTw9vYWf/zxh1QzZMgQ4e/vL1JTU8Xhw4eFr6+viIyMlOYfPHhQ2NraihkzZoicnBzppVara71vGo1GABAajeZhDhERERHVo9p+fps9RAkhxMqVK0W7du2EUqkUffr0ET/99JM0b8CAASIqKkqv/ssvvxSdOnUSSqVSdOvWTezevVtvvk6nEzNnzhSurq7CyspKDB48WGRmZurVqNVqERkZKVq0aCEcHBzE+PHjRWFhoTQ/KipKAKj0GjBgQK33iyGKiIio8ant57fZx4lqyjhOFBERUeNT289vfjuPiIiIyAgMUURERERGYIgiIiIiMoJZRywnMoZarZYelVIVPiqFiIjqA0MUNSr3PrS3JnxoLxERmRov51GjUtMZKGPqiIiIjMUQRY2aRmOPrCwvaDT25m6FiIiaGV7Oo0br5El/7No1DELIIZPpEB6ehICAU+Zui4iImgmeiaJGSaOxlwIUAAghx65dw3hGioiI6g1DFDVK+fnOUoCqIIQc+flOZuqIiIiaG4YoapScnNSQyXR602QyHZyc8s3UERERNTe8J4pMwtRjOalUhQgPT6p0T5RKVWj0OomIiAzBEEV1zpRjOSmVSun3gIBT6NjxEvLzneDklK8XoO6tIyIiMgWGKKpz95+B0mjskZ/vDCcntV7QMWYsJ2dnZ8TExHDEciIiMjuGKDIpUwxDwIBEREQNAW8sJ5PhMARERNSUMUSRyXAYAiIiasoYoshkOAwBERE1ZQxRZDIVwxBUBCkOQ0BERE0Jbywnk6ppGAIiIqLGjCGK6tz9YzSpVIVVhieO5URERI0ZQxTVOY7lREREzQFDFJkEAxIRETV1vLGciIiIyAgMUURERERG4OW8RkKtVvMeIyIiogaEIaoRUKvVWLVq1QPrYmJiGKSIiIjqCS/nNQL3n4HSaOyRleVV6Rl0NZ2pIiIiorrFM1GNzMmT/tJDfStGAA8IOGXutoiIiJodnolqRDQaeylAAeUP8921a1ilM1JERERkegxRjUh+vrMUoCoIIUd+vpOZOiIiImq+GKIaEScntfQw3woymQ5OTvlm6oiIiKj5YohqRFSqQoSHJ0lBquKeKD7Ul4iIqP7xxvJGJiDgFDp2vIT8fCc4OeUzQBEREZkJQ1QjoFQq9d6rVIVVhqf764iIiMh0GKIaAWdnZ8TExHDEciIiogaEIaqRYEAiIiJqWHhjOREREZERGKKIiIiIjMAQRURERGQEhigiIiIiIzBEERERERmBIYqIiIjICAxRREREREZgiCIiIiIyAkMUERERkRE4YrkJCSEAAAUFBWbuhIiIiGqr4nO74nO8OgxRJlRYWP6QYE9PTzN3QkRERIYqLCyESqWqdr5MPChmkdF0Oh1+++032NvbQyaT6c0rKCiAp6cnrl69CgcHBzN12LDxGD0Yj9GD8Rg9GI/Rg/EY1aypHR8hBAoLC+Hh4QG5vPo7n3gmyoTkcjnatm1bY42Dg0OT+IMzJR6jB+MxejAeowfjMXowHqOaNaXjU9MZqAq8sZyIiIjICAxRREREREZgiDITKysrzJ49G1ZWVuZupcHiMXowHqMH4zF6MB6jB+MxqllzPT68sZyIiIjICDwTRURERGQEhigiIiIiIzBEERERERmBIYqIiIjICAxRJrR69Wp4eXnB2toaQUFBOHbsWLW1586dw8iRI+Hl5QWZTIbly5fXX6NmZMgxWrduHZ544gm0bNkSLVu2REhISI31TYUhx2jHjh3o1asXHB0dYWdnBz8/P3z++ef12K15GHKM7pWYmAiZTIaIiAjTNtgAGHKM4uPjIZPJ9F7W1tb12G39M/Rv6NatW5g0aRLc3d1hZWWFTp06Yc+ePfXUrXkYcowGDhxY6W9IJpMhLCysHjuuB4JMIjExUSiVSrFhwwZx7tw58dJLLwlHR0eRl5dXZf2xY8fEm2++Kb744gvh5uYmPvzww/pt2AwMPUZ///vfxerVq8WpU6dERkaGGDdunFCpVOLatWv13Hn9MfQYHTp0SOzYsUOcP39eXLp0SSxfvlwoFAqxd+/eeu68/hh6jCpkZWWJNm3aiCeeeEKMGDGifpo1E0OP0caNG4WDg4PIycmRXrm5ufXcdf0x9PiUlJSIXr16iWeeeUYcPnxYZGVliR9++EGkp6fXc+f1x9BjpFar9f5+zp49KxQKhdi4cWP9Nm5iDFEm0qdPHzFp0iTpvVarFR4eHiIuLu6By7Zv375ZhKiHOUZCCHH37l1hb28vNm3aZKoWze5hj5EQQvj7+4t3333XFO01CMYco7t374p+/fqJf/3rXyIqKqrJhyhDj9HGjRuFSqWqp+7Mz9Dj88knn4gOHTqI0tLS+mrR7B7236IPP/xQ2Nvbi6KiIlO1aBa8nGcCpaWlSEtLQ0hIiDRNLpcjJCQEKSkpZuys4aiLY3T79m2UlZXBycnJVG2a1cMeIyEEkpOTkZmZif79+5uyVbMx9hi99957cHFxwYQJE+qjTbMy9hgVFRWhffv28PT0xIgRI3Du3Ln6aLfeGXN8du7cieDgYEyaNAmurq549NFH8f7770Or1dZX2/WqLv69Xr9+PUaPHg07OztTtWkWDFEmcPPmTWi1Wri6uupNd3V1RW5urpm6aljq4hi9/fbb8PDw0Ps/dlNi7DHSaDRo0aIFlEolwsLCsHLlSjz11FOmbtcsjDlGhw8fxvr167Fu3br6aNHsjDlGjzzyCDZs2IBvv/0Wmzdvhk6nQ79+/XDt2rX6aLleGXN8/vvf/+Krr76CVqvFnj17MHPmTCxduhTz58+vj5br3cP+e33s2DGcPXsWEydONFWLZmNh7gaIjLFw4UIkJibihx9+aPI3vBrK3t4e6enpKCoqQnJyMmJjY9GhQwcMHDjQ3K2ZXWFhIcaOHYt169ahVatW5m6nwQoODkZwcLD0vl+/fujSpQs+/fRTzJs3z4ydNQw6nQ4uLi5Yu3YtFAoFAgMD8b///Q+LFy/G7Nmzzd1eg7N+/Xp0794dffr0MXcrdY4hygRatWoFhUKBvLw8vel5eXlwc3MzU1cNy8McoyVLlmDhwoU4cOAAevToYco2zcrYYySXy+Hj4wMA8PPzQ0ZGBuLi4ppkiDL0GF2+fBnZ2dkIDw+Xpul0OgCAhYUFMjMz0bFjR9M2Xc/q4t8jS0tL+Pv749KlS6Zo0ayMOT7u7u6wtLSEQqGQpnXp0gW5ubkoLS2FUqk0ac/17WH+hoqLi5GYmIj33nvPlC2aDS/nmYBSqURgYCCSk5OlaTqdDsnJyXr/ddecGXuMFi1ahHnz5mHv3r3o1atXfbRqNnX1d6TT6VBSUmKKFs3O0GPUuXNnnDlzBunp6dJr+PDhePLJJ5Geng5PT8/6bL9e1MXfkVarxZkzZ+Du7m6qNs3GmOPz2GOP4dKlS1IAB4BffvkF7u7uTS5AAQ/3N7Rt2zaUlJTg+eefN3Wb5mHuO9ubqsTERGFlZSXi4+PF+fPnRXR0tHB0dJS+Jjx27Fgxffp0qb6kpEScOnVKnDp1Sri7u4s333xTnDp1Sly8eNFcu2Byhh6jhQsXCqVSKb766iu9r84WFhaaaxdMztBj9P7774vvv/9eXL58WZw/f14sWbJEWFhYiHXr1plrF0zO0GN0v+bw7TxDj9HcuXPFvn37xOXLl0VaWpoYPXq0sLa2FufOnTPXLpiUocfnypUrwt7eXsTExIjMzEyRlJQkXFxcxPz58821CyZn7P/PHn/8cTFq1Kj6brfeMESZ0MqVK0W7du2EUqkUffr0ET/99JM0b8CAASIqKkp6n5WVJQBUeg0YMKD+G69Hhhyj9u3bV3mMZs+eXf+N1yNDjtE777wjfHx8hLW1tWjZsqUIDg4WiYmJZui6fhlyjO7XHEKUEIYdoylTpki1rq6u4plnnhEnT540Q9f1x9C/oaNHj4qgoCBhZWUlOnToIBYsWCDu3r1bz13XL0OP0YULFwQA8f3339dzp/VHJoQQZjoJRkRERNRo8Z4oIiIiIiMwRBEREREZgSGKiIiIyAgMUURERERGYIgiIiIiMgJDFBEREZERGKKIiIiIjMAQRUTUBIwbNw4RERHmboOoWWGIIiKTGjduHGQymfRydnbGkCFDcPr0aXO3Vifu3beK1+OPP26y7WVnZ0MmkyE9PV1v+kcffYT4+HiTbZeIKmOIIiKTGzJkCHJycpCTk4Pk5GRYWFhg2LBh5m6rzmzcuFHav5ycHOzcubPKurKyMpP1oFKp4OjoaLL1E1FlDFFEZHJWVlZwc3ODm5sb/Pz8MH36dFy9ehU3btzAoEGDEBMTo1d/48YNKJVK6anxXl5emDdvHiIjI2FnZ4c2bdpg9erVesssW7YM3bt3h52dHTw9PfGPf/wDRUVF0vxff/0V4eHhaNmyJezs7NCtWzfs2bMHAPD7779jzJgxaN26NWxsbODr64uNGzfWev8cHR2l/XNzc4OTk5N0xmjr1q0YMGAArK2tsWXLFqjVakRGRqJNmzawtbVF9+7d8cUXX+itT6fTYdGiRfDx8YGVlRXatWuHBQsWAAC8vb0BAP7+/pDJZBg4cCCAypfzSkpK8Nprr8HFxQXW1tZ4/PHHcfz4cWn+Dz/8AJlMhuTkZPTq1Qu2trbo168fMjMza73fRM0dQxQR1auioiJs3rwZPj4+cHZ2xsSJE5GQkICSkhKpZvPmzWjTpg0GDRokTVu8eDF69uyJU6dOYfr06Xj99dexf/9+ab5cLseKFStw7tw5bNq0CQcPHsS0adOk+ZMmTUJJSQl+/PFHnDlzBh988AFatGgBAJg5cybOnz+P7777DhkZGfjkk0/QqlWrOtnfil4zMjIQGhqKO3fuIDAwELt378bZs2cRHR2NsWPH4tixY9IyM2bMwMKFC6W+EhIS4OrqCgBS3YEDB5CTk4MdO3ZUud1p06Zh+/bt2LRpE06ePAkfHx+EhoYiPz9fr+6dd97B0qVLceLECVhYWODFF1+sk/0mahbM/QRkImraoqKihEKhEHZ2dsLOzk4AEO7u7iItLU0IIcQff/whWrZsKbZu3Sot06NHDzFnzhzpffv27cWQIUP01jtq1CgxdOjQare7bds24ezsLL3v3r273jrvFR4eLsaPH2/U/gEQ1tbW0v7Z2dmJr7/+WmRlZQkAYvny5Q9cR1hYmJg6daoQQoiCggJhZWUl1q1bV2VtxXpPnTqlNz0qKkqMGDFCCCFEUVGRsLS0FFu2bJHml5aWCg8PD7Fo0SIhhBCHDh0SAMSBAwekmt27dwsA4o8//jDkEBA1WzwTRUQm9+STTyI9PR3p6ek4duwYQkNDMXToUPz666+wtrbG2LFjsWHDBgDAyZMncfbsWYwbN05vHcHBwZXeZ2RkSO8PHDiAwYMHo02bNrC3t8fYsWOhVqtx+/ZtAMBrr72G+fPn47HHHsPs2bP1bmx/9dVXkZiYCD8/P0ybNg1Hjx41aP8+/PBDaf/S09Px1FNPSfN69eqlV6vVajFv3jx0794dTk5OaNGiBfbt24crV64AADIyMlBSUoLBgwcb1MO9Ll++jLKyMjz22GPSNEtLS/Tp00fvmAFAjx49pN/d3d0BANevXzd620TNCUMUEZmcnZ0dfHx84OPjg969e+Nf//oXiouLsW7dOgDAxIkTsX//fly7dg0bN27EoEGD0L59+1qvPzs7G8OGDUOPHj2wfft2pKWlSfdMlZaWStv473//i7Fjx+LMmTPo1asXVq5cCQBSoHvjjTfw22+/YfDgwXjzzTdrvX03Nzdp/3x8fGBnZ6e37/davHgxPvroI7z99ts4dOgQ0tPTERoaKvVpY2NT6+3WBUtLS+l3mUwGoPyeLCJ6MIYoIqp3MpkMcrkcf/zxBwCge/fu6NWrF9atW4eEhIQq78v56aefKr3v0qULACAtLQ06nQ5Lly5F37590alTJ/z222+V1uHp6YlXXnkFO3bswNSpU6UQBwCtW7dGVFQUNm/ejOXLl2Pt2rV1ucuSI0eOYMSIEXj++efRs2dPdOjQAb/88os039fXFzY2NtJN9fdTKpUAys9oVadjx45QKpU4cuSINK2srAzHjx9H165d62hPiMjC3A0QUdNXUlKC3NxcAOXfhFu1ahWKiooQHh4u1UycOBExMTGws7PDX/7yl0rrOHLkCBYtWoSIiAjs378f27Ztw+7duwEAPj4+KCsrw8qVKxEeHo4jR45gzZo1estPmTIFQ4cORadOnfD777/j0KFDUgibNWsWAgMD0a1bN5SUlCApKUmaV9d8fX3x1Vdf4ejRo2jZsiWWLVuGvLw8KdxYW1vj7bffxrRp06BUKvHYY4/hxo0bOHfuHCZMmAAXFxfY2Nhg7969aNu2LaytraFSqfS2YWdnh1dffRVvvfUWnJyc0K5dOyxatAi3b9/GhAkTTLJfRM0Rz0QRkcnt3bsX7u7ucHd3R1BQEI4fP45t27ZJX88HgMjISFhYWCAyMhLW1taV1jF16lScOHEC/v7+mD9/PpYtW4bQ0FAAQM+ePbFs2TJ88MEHePTRR7FlyxbExcXpLa/VajFp0iR06dIFQ4YMQadOnfDxxx8DKD+7M2PGDPTo0QP9+/eHQqFAYmKiSY7Fu+++i4CAAISGhmLgwIFwc3OrNNL4zJkzMXXqVMyaNQtdunTBqFGjpPuULCwssGLFCnz66afw8PDAiBEjqtzOwoULMXLkSIwdOxYBAQG4dOkS9u3bh5YtW5pkv4iaI5kQQpi7CSKi7OxsdOzYEcePH0dAQIDePC8vL0yZMgVTpkwxT3NERFXg5TwiMquysjKo1Wq8++676Nu3b6UARUTUUPFyHhGZ1ZEjR+Du7o7jx49Xuo/J3N5//320aNGiytfQoUPN3R4RmRkv5xERVSM/P7/SCN8VbGxs0KZNm3ruiIgaEoYoIiIiIiPwch4RERGRERiiiIiIiIzAEEVERERkBIYoIiIiIiMwRBEREREZgSGKiIiIyAgMUURERERGYIgiIiIiMsL/AWzNppSv6kyNAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_12.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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AapsP4WFhTh16lSl6924cQOFhYUmLyIiImqaLBai8vLyYDAYTIIKALi5uSEnJ6fCdXJycqqsL/tZk23WZD+376Mi8fHx0Gg00svLy6va+yQiIqLGxeI3ljcl06dPh16vl16///67pbtERERE9cRiIapVq1ZQqVTIzc01ac/NzYW7u3uF67i7u1dZX/azJtusyX5u30dFbGxs4OjoaPIiIiJqqqp7j3B16xobi022qVarERgYiOTkZERERAAovbE8OTkZMTExFa4THByM5ORkxMbGSm179uxBcHAwAMDHxwfu7u5ITk6Gv78/gNKbw9LS0ir9Jl5l+5k/fz6uXLkCV1dXaT+Ojo7o1q1bzQdLRETUBLm4uCAmJoYzlltCXFwcoqKi0Lt3b/Tt2xcJCQkoLi7GxIkTAQBPPvkk2rRpg/j4eADACy+8gJCQELz33nsICwvDunXrcOTIEembAQqFArGxsXjrrbfg5+cHHx8fzJgxA56enlJQA0rngMrPz8elS5dgMBhw/PhxAEDHjh3RsmVLPPTQQ+jWrRvGjx+PhQsXIicnB2+++SamTJkCGxsbsx4jIiKihuz2gHT5MnDuHODnB7Rta8FOmYuwsKVLl4p27doJtVot+vbtK3766SdpWUhIiIiKijKp37Bhg+jUqZNQq9Wie/fuYseOHSbLjUajmDFjhnBzcxM2NjZiyJAh4uzZsyY1UVFRAkC51759+6SarKws8fDDDws7OzvRqlUr8dJLL4mbN2/WaGx6vV4AEHq9vkbrERERNTb/+Y8QSqUQQOnP//zH0j2Sr7qf3xadJ6qp4zxRRETUHFy+DLRvDxiN/2tTqYCsrMZ5RqrBzxNFRERETcO5c6YBCgAMBuD8ecv0x1wYooiIiKhW/PwA5R2JQqUCOna0TH/MhSGKiIiIaqVtW2DlytLgBJT+/PjjxnkpryYs+u08IiIiahomTQK02tJLeB07Nv0ABTBEERERUR1p27Z5hKcyvJxHREREJANDFBEREZEMDFFEREREMjBEEREREcnAEEVEREQkA0MUERERkQwMUUREREQyMEQRERERycAQRURERCQDQxQRERGRDAxRRERERDIwRBERERHJwBBFREREJIOVpTtAREREVB06nQ4lJSWVLler1XBxcTFbfxiiiIiIqMHT6XRYtmzZXetiYmLMFqR4OY+IiIgavKrOQMmpqwsMUUREREQyMEQRERERycAQRURERCQDQxQRERGRDAxRRERERDIwRBERERHJwBBFREREDZ5ara7TurrAyTaJiIiowXNxcUFMTIw0D9QffyiRmWkFH59b8PQ0AuCM5UREREQVKgtIq1YB0dGA0QgolcDKlcCkSebvDy/nERERUaNx+fL/AhRQ+nPy5NJ2c2OIIiIiokbj3Ln/BagyBgNw/rz5+8IQRURERI2Gn1/pJbzbqVRAx47m7wtDFBERETUabduW3gOlUpX+rlIBH39c2m5uvLGciIiIGpVJkwCttvQSXseOlglQAEMUERERNUJt21ouPJXh5TwiIiIiGRiiiIiIiGRgiCIiIiKSgSGKiIiISAaGKCIiIiIZGKKIiIiIZGCIIiIiIpKBIYqIiIhIBoYoIiIiIhkYooiIiIhkYIgiIiIikoEhioiIiEgGhigiIiIiGRiiiIiIiGRgiCIiIiKSweIhavny5fD29oatrS2CgoJw6NChKus3btyILl26wNbWFj169MDOnTtNlgshMHPmTHh4eMDOzg6hoaE4d+6cSU1+fj7GjRsHR0dHODk5YdKkSbh69apJze7du9GvXz84ODigdevWGDlyJLKysupkzERERNT4WTRErV+/HnFxcZg1axaOHj2Knj17QqvV4sqVKxXWp6SkIDIyEpMmTcKxY8cQERGBiIgInDx5UqpZuHAhlixZghUrViAtLQ329vbQarW4fv26VDNu3DicOnUKe/bswfbt2/HDDz8gOjpaWp6ZmYkRI0Zg8ODBOH78OHbv3o28vDw8+uij9XcwiIiIqHERFtS3b18xZcoU6XeDwSA8PT1FfHx8hfWjRo0SYWFhJm1BQUFi8uTJQgghjEajcHd3F++++660vKCgQNjY2Ii1a9cKIYQ4ffq0ACAOHz4s1XzzzTdCoVCI//73v0IIITZu3CisrKyEwWCQar7++muhUChESUlJtcen1+sFAKHX66u9DhEREVlWdT+/LXYmqqSkBOnp6QgNDZXalEolQkNDkZqaWuE6qampJvUAoNVqpfrMzEzk5OSY1Gg0GgQFBUk1qampcHJyQu/evaWa0NBQKJVKpKWlAQACAwOhVCqxevVqGAwG6PV6fPbZZwgNDYW1tXWlY7px4wYKCwtNXkRERNQ0WSxE5eXlwWAwwM3NzaTdzc0NOTk5Fa6Tk5NTZX3Zz7vVuLq6miy3srKCs7OzVOPj44Nvv/0Wr7/+OmxsbODk5ITLly9jw4YNVY4pPj4eGo1Genl5eVVZT0RERI2XxW8sb4hycnLwzDPPICoqCocPH8b3338PtVqNxx57DEKIStebPn069Hq99Pr999/N2GsiIiIyJytL7bhVq1ZQqVTIzc01ac/NzYW7u3uF67i7u1dZX/YzNzcXHh4eJjX+/v5SzZ03rt+6dQv5+fnS+suXL4dGo8HChQulms8//xxeXl5IS0tDv379KuyfjY0NbGxs7jZ0IiIiagIsdiZKrVYjMDAQycnJUpvRaERycjKCg4MrXCc4ONikHgD27Nkj1fv4+MDd3d2kprCwEGlpaVJNcHAwCgoKkJ6eLtXs3bsXRqMRQUFBAIBr165BqTQ9NCqVSuqjpV2+DOzbV/qTiIiILMQ897lXbN26dcLGxkYkJiaK06dPi+joaOHk5CRycnKEEEKMHz9eTJs2Tao/ePCgsLKyEosWLRIZGRli1qxZwtraWvzyyy9SzYIFC4STk5PYunWrOHHihBgxYoTw8fERf//9t1QzdOhQ0atXL5GWliYOHDgg/Pz8RGRkpLQ8OTlZKBQKMWfOHPHrr7+K9PR0odVqRfv27cW1a9eqPb76+Hbef/4jhFIpBFD68z//qbNNExERkaj+57dFQ5QQQixdulS0a9dOqNVq0bdvX/HTTz9Jy0JCQkRUVJRJ/YYNG0SnTp2EWq0W3bt3Fzt27DBZbjQaxYwZM4Sbm5uwsbERQ4YMEWfPnjWp0el0IjIyUrRs2VI4OjqKiRMniqKiIpOatWvXil69egl7e3vRunVrMXz4cJGRkVGjsdVliMrLyxNHjuQIpdIoACG9VCqjOHIkR+Tl5dV6H0RERFT9z2+FEFXcKU21UlhYCI1GA71eD0dHR9nb0el0WLZsGTIzvbFmTVS55VFRifDxuYiYmBi4uLjUpstERETNXnU/v/ntvEagpKQEAODsrINCYXpPlkJhhLNzvkkdERER1T+GqEZEoylCePh2KUgpFEaEh2+HRlNk4Z4RERE1Pxab4oDkCQg4Bl/f88jPd4azcz4DFBERkYUwRDVCGk0RwxMREZGF8XIeERERkQwMUUREREQyMEQRUa1wBn0iaq4YohoBtVpdp3VEdWXVKqB9e2Dw4NKfq1ZZukdERObDyTbrUV1NtgmUTrhZ1TxQarWaE22SWV2+XBqcbn+cpEoFZGUBbdtarFtERLVW3c9vfjuvkWBAooZEp9Php58Ao9H0fWkwAGlpOtjZ8T1LRE0fL+cRUY2UPYYoJWVNhTPoHzy4BsuWLYNOp7NQD4mIzIMhiohqpOyy8t1m0OdjiIioqePlPCKSjTPoE1FzxhBFRLXCGfSJqLni5TwiIiIiGRiiiIiIiGRgiCIiIiKSgSGKiIiISAaGKCKqET6GiIioFL+dR0Q14uLigpiYGD6GiIiaPYYoIqoxBiQiIl7OIyIiIpKFIYqIGo3Ll4F9+0p/EhFZGkMUETUKq1YB7dsDgweX/ly1ytI9IqLmjiGKiBq8y5eB6GjAWPqsYxiNwOTJPCNFRJYl68byQ4cOITU1FTk5OQAAd3d3BAcHo2/fvnXaOSIinU6Hn34CjEbTm9kNBiAtTQc7O97oTkSWUaMQdeXKFYwcORIHDx5Eu3bt4ObmBgDIzc3Fiy++iPvuuw+bNm2Cq6trvXSWiJoXnU6HZcuWQa93gEIRCyH+d/JcoTDi4ME1OHmyCDExMQxSRGR2Nbqc969//QsGgwEZGRnIyspCWloa0tLSkJWVhYyMDBiNRkyZMqW++kpEzUzZXFQaTRHCw7dDoSi9nqdQGBEevh0aTZFJHRGROdXoTNTu3bvxww8/oHPnzuWWde7cGUuWLMGgQYPqqm9ERJKAgGPw9T2P/HxnODvnSwGKiMhSahSibGxsUFhYWOnyoqIi2NjY1LpTREQV0WiKGJ6IqMGo0eW80aNHIyoqCl999ZVJmCosLMRXX32FiRMnIjIyss47SURERNTQ1OhM1OLFi2E0GjFmzBjcunVLesBoSUkJrKysMGnSJCxatKheOkpERETUkNT4ct5HH32Ed955B+np6SZTHAQGBsLR0bFeOklERETU0MiaJ8rR0REPPPBAXfeFiIiIqNGo0xnLc3NzMXfu3LrcJBE1Y2W3DNRVHRFRXVIIIURdbeznn39GQEAADAZDXW2yUSssLIRGo4Fer+elTiKZdDpdlfNAqdVqTrRJRHWqup/fNbqcd+LEiSqXnz17tiabIyK6KwYkImqoahSi/P39oVAoUNHJq7J2hUJRZ50jIiIiaqhqFKKcnZ2xcOFCDBkypMLlp06dQnh4eJ10jIiIiKghq1GICgwMxB9//IH27dtXuLygoKDCs1RERERETU2NQtSzzz6L4uLiSpe3a9cOq1evrnWniIiIiBq6Ov12Hpnit/OIiIgan+p+ftfpPFFEREREzUWNLufFxcVVq27x4sWyOkNERETUWNQoRB07dszk9wMHDiAwMBB2dnZSG6c4ICIiouagRiFq3759Jr87ODggKSkJHTp0qNNOERERETV0vCeKiIiISAaGKCIiIiIZGKKIiIiIZKjVA4iFEDhz5gyuXr1q0n7vvffWvmdEREREDViNzkT5+/ujV69e8Pf3h7+/P65du4Zhw4aZtPfq1atGHVi+fDm8vb1ha2uLoKAgHDp0qMr6jRs3okuXLrC1tUWPHj2wc+dOk+VCCMycORMeHh6ws7NDaGgozp07Z1KTn5+PcePGwdHREU5OTpg0aVK5ICiEwKJFi9CpUyfY2NigTZs2mD9/fo3GRkRERE1Xjc5EZWZm1unO169fj7i4OKxYsQJBQUFISEiAVqvF2bNn4erqWq4+JSUFkZGRiI+Px7Bhw5CUlISIiAgcPXoU99xzDwBg4cKFWLJkCdasWQMfHx/MmDEDWq0Wp0+fhq2tLQBg3LhxyM7Oxp49e3Dz5k1MnDgR0dHRSEpKkvb1wgsv4Ntvv8WiRYvQo0cP5OfnIz8/v07HT0RERI2YsKC+ffuKKVOmSL8bDAbh6ekp4uPjK6wfNWqUCAsLM2kLCgoSkydPFkIIYTQahbu7u3j33Xel5QUFBcLGxkasXbtWCCHE6dOnBQBx+PBhqeabb74RCoVC/Pe//5VqrKysxJkzZ2o1Pr1eLwAIvV5fq+0QERGR+VT387tObiwfPHgwLl68WKN1SkpKkJ6ejtDQUKlNqVQiNDQUqampFa6TmppqUg8AWq1Wqs/MzEROTo5JjUajQVBQkFSTmpoKJycn9O7dW6oJDQ2FUqlEWloaAGDbtm3o0KEDtm/fDh8fH3h7e+Ppp5++65moGzduoLCw0ORFRERETVONLud9/fXXFbb/8MMP2L59O7y8vAAAw4cPv+u28vLyYDAY4ObmZtLu5uaGM2fOVLhOTk5OhfU5OTnS8rK2qmruvFRoZWUFZ2dnqea3337DxYsXsXHjRnz66acwGAx48cUX8dhjj2Hv3r2Vjik+Ph5z5sy529CJiIioCahRiIqIiIBCoYAQotyyqVOnAih97IvBYKib3lmI0WjEjRs38Omnn6JTp04AgFWrViEwMBBnz55F586dK1xv+vTpJs8XLCwslIIlERERNS01upyn1Wrx8MMPIycnB0ajUXqpVCqcPHkSRqOx2gGqVatWUKlUyM3NNWnPzc2Fu7t7heu4u7tXWV/28241V65cMVl+69Yt5OfnSzUeHh6wsrKSAhQAdO3aFQBw6dKlSsdkY2MDR0dHkxdRY3H5MrBvX+lPIiK6uxqFqG+++QZDhgxB7969sX379lrtWK1WIzAwEMnJyVKb0WhEcnIygoODK1wnODjYpB4A9uzZI9X7+PjA3d3dpKawsBBpaWlSTXBwMAoKCpCeni7V7N27F0ajEUFBQQCA++67D7du3cKFCxekml9//RUA0L59+9oMm6hB0el0yM7OxnvvFaB9e4HBg4H27QXee68A2dnZ0Ol0lu4iEVHDJeeu9WPHjolu3bqJ6OhoUVxcLKysrMSpU6dqvJ1169YJGxsbkZiYKE6fPi2io6OFk5OTyMnJEUIIMX78eDFt2jSp/uDBg8LKykosWrRIZGRkiFmzZglra2vxyy+/SDULFiwQTk5OYuvWreLEiRNixIgRwsfHR/z9999SzdChQ0WvXr1EWlqaOHDggPDz8xORkZHScoPBIAICAsTAgQPF0aNHxZEjR0RQUJB48MEHazQ+fjuPGrK8vDwxe/Zs8eKL7wmFwiAAIb0UCoN48cX3xOzZs0VeXp6lu0pEZFb1+u08f39/HDlyBAqFAv7+/hXeI1Udo0ePxqJFizBz5kz4+/vj+PHj2LVrl3Rj+KVLl5CdnS3V9+/fH0lJSVi5ciV69uyJL7/8Elu2bJHmiAKAV199FVOnTkV0dDT69OmDq1evYteuXdIcUQDwxRdfoEuXLhgyZAgeeeQR3H///Vi5cqW0XKlUYtu2bWjVqhUGDhyIsLAwdO3aFevWrZM1TqKGqKSkBACQn++CO/8qEEKJ/HxnkzoiIjKlEHIT0P/7+uuvsW/fPkyfPr3CCTKbs8LCQmg0Guj1et4fRQ1OdnY2Vq5cCb3eAQkJsSZBSqEwIjY2ARpNEaKjo+Hh4WHBnhIRmVd1P79rdCZq79696Natm8n8R8OHD8f7778PGxsbdO/eHT/++KP8XhOR2Wk0RQgP3w6FwgigNECFh2+HRlNk4Z4RETVsNZriICEhAc8880yFqUyj0WDy5MlYvHgxBgwYUGcdJKL6FxBwDL6+55Gf7wxn53wGKCKiaqjRmaiff/4ZQ4cOrXT5Qw89ZPKtNyJqPDSaIvj4XGSAIiKqphqFqNzcXFhbW1e63MrKCn/++WetO0VERETU0NUoRLVp0wYnT56sdPmJEyd4AyoRERE1CzUKUY888ghmzJiB69evl1v2999/Y9asWRg2bFiddY6I6o9ara7TOiKi5qZGUxzk5uYiICAAKpUKMTEx0jPkzpw5g+XLl8NgMODo0aPlHgDcXHGKA2rodDpdlfNAqdVquLi4mLFHRESWV93P7xp9O8/NzQ0pKSl47rnnMH36dGmSTYVCAa1Wi+XLlzNAETUiDEhERPLVKEQBpc+O27lzJ/766y+cP38eQgj4+fnhH//4R330j4iIiKhBqnGIKvOPf/wDffr0qcu+EBERETUasp6dR0RERNTcMUQRERERySD7ch7RnfhNLyIiak4YoqhO6HQ6LFu27K51MTExDFL1hCGWiMi8GKKoTlT14S2njmrmzhCr1zsgP98Fzs46k2fhMcQSEdUdhiiqF5V9iFP9uD2cHj3aC9u2DYMQSigURoSHb0dAwLFydUREVDsMUVTnqvoQp/ql1ztIxx4AhFBi27Zh8PU9zzBLRFTH+O08qlOVfYjr9Q4W7lnzkJ/vIh37MkIokZ/vbKEeERE1XQxRVKf4IW5Zzs46KBRGkzaFwghn53wL9YiIqOliiKI6xQ9xy9JoihAevl36b1B2OZWX8oiI6h7viaI6VfYhfuc9UfwQN5+AgGPw9T2P/HxnODvn89gTEdUThiiqE2q1WvpzVR/it9dR/dFoihieiIjqGUMU1QkXFxfExMRwskcLqW44ZYglIqo7CiGEsHQnmqrCwkJoNBro9Xo4OjpaujvUxHHGciKiulHdz2+eiSJqIhiQiIjMi9/OIyIiIpKBIYqIiIhIBoYoIiIiIhkYooiIiIhkYIgiIiIikoEhioiIiEgGhigiIiIiGRiiiIiIiGRgiCIiIiKSgSGKiIiISAaGKCIiIiIZGKKIiIiIZOADiJs4nU6HkpKSSper1Wo+uJaIiEgGhqgmTKfTYdmyZXeti4mJYZAiIiKqIV7Oa8KqOgMlp46IiIj+hyGKiIiISAaGKCIiIiIZGKKIiIiIZGCIIiIiIpKBIaoZ0esdkJnpDb3ewdJdISIiavQ4xUEzcfRoL2zbNgxCKKFQGBEevh0BAccs3S0iIqJGi2eimjC1Wg2g9AxUWYACACGU2LZtmHRGqqyOiIiIqk8hhBCW7kRTVVhYCI1GA71eD0dHR4v0QafTYd8+4PHHy0+m+eWXOgwaBE60SUREdJvqfn7zcl4T5+Lign79AKUSMBr/165SAUFBLmB+IiIikoeX85qBtm2BlStLgxNQ+vPjj0vbiYiISB6eiWomJk0CtFrg/HmgY0cGKCIiotpqEGeili9fDm9vb9ja2iIoKAiHDh2qsn7jxo3o0qULbG1t0aNHD+zcudNkuRACM2fOhIeHB+zs7BAaGopz586Z1OTn52PcuHFwdHSEk5MTJk2ahKtXr1a4v/Pnz8PBwQFOTk61GqeltW0LDBrEAEVEDZNOp0N2dnalL51O16j3R02Pxc9ErV+/HnFxcVixYgWCgoKQkJAArVaLs2fPwtXVtVx9SkoKIiMjER8fj2HDhiEpKQkRERE4evQo7rnnHgDAwoULsWTJEqxZswY+Pj6YMWMGtFotTp8+DVtbWwDAuHHjkJ2djT179uDmzZuYOHEioqOjkZSUZLK/mzdvIjIyEgMGDEBKSkr9HxAiomZIp9Nh2bJl0u96vQPy813g7KyDRlMktcfExNTJl2Hu3F9l6mp/1DRZ/Nt5QUFB6NOnj/RmNhqN8PLywtSpUzFt2rRy9aNHj0ZxcTG2b98utfXr1w/+/v5YsWIFhBDw9PTESy+9hJdffhkAoNfr4ebmhsTERIwZMwYZGRno1q0bDh8+jN69ewMAdu3ahUceeQSXL1+Gp6entO3XXnsNf/zxB4YMGYLY2FgUFBRUe2wN4dt5RESNQXZ2NlauXAmg6nntoqOj4eHhUaf7AyoPbXW1P2pcGsW380pKSpCeno7p06dLbUqlEqGhoUhNTa1wndTUVMTFxZm0abVabNmyBQCQmZmJnJwchIaGSss1Gg2CgoKQmpqKMWPGIDU1FU5OTlKAAoDQ0FAolUqkpaXhn//8JwBg79692LhxI44fP47NmzffdTw3btzAjRs3pN8LCwvvfhCIGiGdToeSkpJKl6vVav7rnWSpbF47X9/zJuGmLnEyYpLLoiEqLy8PBoMBbm5uJu1ubm44c+ZMhevk5ORUWJ+TkyMtL2urqubOS4VWVlZwdnaWanQ6HSZMmIDPP/+82meR4uPjMWfOnGrVEjVW5r7sQuU15RCbn+8iBagyQiiRn+9cLyHKEqGNmg6L3xPVUD3zzDMYO3YsBg4cWO11pk+fbnKWrLCwEF5eXvXRPSKLuf3Du6p/wVf1IU/yNfUQ6+ysg0JhNAlSCoURzs759bI/c4c2alos+u28Vq1aQaVSITc316Q9NzcX7u7uFa7j7u5eZX3Zz7vVXLlyxWT5rVu3kJ+fL9Xs3bsXixYtgpWVFaysrDBp0iTo9XpYWVnhk08+qbBvNjY2cHR0NHkRNVV3e5wQ1Y87Q2xCQizWrIlCQkIsjh7tVWFdY6LRFCE8fDsUitLZgcvCeX0FmrLQdrv6DG3UtFg0RKnVagQGBiI5OVlqMxqNSE5ORnBwcIXrBAcHm9QDwJ49e6R6Hx8fuLu7m9QUFhYiLS1NqgkODkZBQQHS09Olmr1798JoNCIoKAhA6b1Xx48fl15z586Fg4MDjh8/Lt0zRdScVfUveKp/TTnEBgQcQ2xsAqKiEhEbm1Cv9yeZO7RR02Lxy3lxcXGIiopC79690bdvXyQkJKC4uBgTJ04EADz55JNo06YN4uPjAQAvvPACQkJC8N577yEsLAzr1q3DkSNHpG9ZKBQKxMbG4q233oKfn580xYGnpyciIiIAAF27dsXQoUPxzDPPYMWKFbh58yZiYmIwZswY6Zt5Xbt2NennkSNHoFQqpWkUiJo7c192IVNN/TKURlNktnEEBByDr+955Oc7w9k5v0kcPzIPi4eo0aNH488//8TMmTORk5MDf39/7Nq1S7ox/NKlS1Aq//cXRf/+/ZGUlIQ333wTr7/+Ovz8/LBlyxaTcPPqq6+iuLgY0dHRKCgowP33349du3ZJc0QBwBdffIGYmBgMGTIESqUSI0eOxJIlS8w3cKJGruxf8HfeE8UPIPNoaiFWrVbXaV1Nt1NZaKur/VHTZPF5opoyzhNFTVHF8+uU/xc859epH+aeT8mczP2tw6b8LUeqnUYxTxQRNX7mvOxCppraZShzBxYGJKothigiqhFzX3ahqjHEElkOQxQR1YiLiwtiYmJ4GcRCzB1iecmLqHK8J6oe8Z4oIqoP5go2TX1iT6LK8J4oIqImylyBhbPTE1XNopNtEhFRw9eUJ/Ykqg2GKCIiqhJnpyeqGEMUERFVic+XI6oYQxQREVWJz5cjqhhvLCciortqahN7EtUFhigiIqoWTuxJZIqX84iIqEKcnZ6oajwTRUREFeLs9ERVY4giIqJKMSARVY6X84iIiIhkYIgiIiIikoEhioiIiEgGhigiIiIiGRiiiIiIiGRgiCIiIiKSgSGKiIiISAaGKCIiIiIZGKKIiIiIZGCIIiIiIpKBIYqIiIhIBoYoIiIiIhkYooiIiIhkYIgiIiIikoEhioiIiEgGhigiIiIiGRiiiIiIiGRgiCIiIiKSgSGKiIiISAaGKCIiIiIZGKKIiIiIZGCIIiIiIpKBIYqIiIhIBoYoIiIiIhkYooiIiIhkYIgiIiIikoEhioiIiEgGhigiIiIiGRiiiIiIiGSwsnQHiIiIqHnR6XQoKSmpdLlarYaLi4sZeyQPQxQRERGZjU6nw7Jly+5aFxMT0+CDFC/nERERkdlUdQZKTp0lMUQRERERycAQRURERBaj1zsgM9Mber2DpbtSY7wnioiIiCzi6NFe2LZtGIRQQqEwIjx8OwICjlm6W9XGM1FERERkdnq9gxSgAEAIJbZtG9aozkg1iBC1fPlyeHt7w9bWFkFBQTh06FCV9Rs3bkSXLl1ga2uLHj16YOfOnSbLhRCYOXMmPDw8YGdnh9DQUJw7d86kJj8/H+PGjYOjoyOcnJwwadIkXL16VVq+f/9+jBgxAh4eHrC3t4e/vz+++OKLuhs0ERFRM5af7yIFqDJCKJGf72yhHtWcxUPU+vXrERcXh1mzZuHo0aPo2bMntFotrly5UmF9SkoKIiMjMWnSJBw7dgwRERGIiIjAyZMnpZqFCxdiyZIlWLFiBdLS0mBvbw+tVovr169LNePGjcOpU6ewZ88ebN++HT/88AOio6NN9nPvvfdi06ZNOHHiBCZOnIgnn3wS27dvr7+DQURE1Ew4O+ugUBhN2hQKI5yd8y3Uo5pTCCGEJTsQFBSEPn36SHNGGI1GeHl5YerUqZg2bVq5+tGjR6O4uNgkzPTr1w/+/v5YsWIFhBDw9PTESy+9hJdffhkAoNfr4ebmhsTERIwZMwYZGRno1q0bDh8+jN69ewMAdu3ahUceeQSXL1+Gp6dnhX0NCwuDm5sbPvnkk2qNrbCwEBqNBnq9Ho6OjjU6LkRERE3R7fNEVXVPlCXniaru57dFbywvKSlBeno6pk+fLrUplUqEhoYiNTW1wnVSU1MRFxdn0qbVarFlyxYAQGZmJnJychAaGiot12g0CAoKQmpqKsaMGYPU1FQ4OTlJAQoAQkNDoVQqkZaWhn/+858V7luv16Nr166VjufGjRu4ceOG9HthYWHlgyciImqGXFxcEBMTI80DNXPmn8jKsoK39y14evYB0IczlldHXl4eDAYD3NzcTNrd3Nxw5syZCtfJycmpsD4nJ0daXtZWVY2rq6vJcisrKzg7O0s1d9qwYQMOHz6Mjz/+uNLxxMfHY86cOZUuJyIiIpgEJA8PIDDQgp2pBYvfE9UY7Nu3DxMnTsS///1vdO/evdK66dOnQ6/XS6/ff//djL0kIiIic7JoiGrVqhVUKhVyc3NN2nNzc+Hu7l7hOu7u7lXWl/28W82dN67funUL+fn55fb7/fffIzw8HO+//z6efPLJKsdjY2MDR0dHkxcRERE1TRYNUWq1GoGBgUhOTpbajEYjkpOTERwcXOE6wcHBJvUAsGfPHqnex8cH7u7uJjWFhYVIS0uTaoKDg1FQUID09HSpZu/evTAajQgKCpLa9u/fj7CwMLzzzjsm39wjIiIigrCwdevWCRsbG5GYmChOnz4toqOjhZOTk8jJyRFCCDF+/Hgxbdo0qf7gwYPCyspKLFq0SGRkZIhZs2YJa2tr8csvv0g1CxYsEE5OTmLr1q3ixIkTYsSIEcLHx0f8/fffUs3QoUNFr169RFpamjhw4IDw8/MTkZGR0vK9e/eKFi1aiOnTp4vs7GzppdPpqj02vV4vAAi9Xl+bQ0RERERmVN3Pb4uHKCGEWLp0qWjXrp1Qq9Wib9++4qeffpKWhYSEiKioKJP6DRs2iE6dOgm1Wi26d+8uduzYYbLcaDSKGTNmCDc3N2FjYyOGDBkizp49a1Kj0+lEZGSkaNmypXB0dBQTJ04URUVF0vKoqCgBoNwrJCSk2uNiiCIiImp8qvv5bfF5opoyzhNFRETU+FT385vfziMiIiKSgSGKiIiISAaGKCIiIiIZLDpjOREREVF16XQ66XExFTH342IYooiIiKjBu/3BxVUx54OLeTmPiIiIGryqzkDJqasLDFFERETU6Oj1DsjM9IZe72CxPvByHhERETUqR4/2wrZtwyCEEgqFEeHh2xEQcMzs/eCZKCIiImo09HoHKUABgBBKbNs2zCJnpBiiiIiIqNHIz3eRAlQZIZTIz3c2e18YooiIiKjRcHbWQaEwmrQpFEY4O+ebvS8MUURERNRoaDRFCA/fLgWpsnuiNJois/eFN5YTERFRg3ft2jXpzwEBx+Drex75+c5wds43CVC319U3nokiIiKiBq9FixYVtCqqWVc/eCaKiIiIGhVOcUBERERUQ5zigIiIiEgGTnFAREREJAOnOCAiIiKSgVMcEBEREclU1RQH5sQQRURERA2eWq02+V2jKaowPN1ZV58YooiIiKjBc3FxQUxMDEpKSiqtUavVcHFxMVufGKKIiIioUTBnQKoO3lhOREREJANDFBEREZEMvJxH1IzpdLoGdX8BEVFjwhBF1EzpdDosW7bsrnUxMTEMUkREFeDlPKJm6s4zUHq9AzIzvcs9f6qqM1VERM0Zz0QRUYN5IjoRUWPCM1FEzVxDeiI6EVFjwhBF1Mw1pCeiExE1JgxRRM1cQ3oiOhFRY8IQRdTMNaQnohMRNSa8sZyIGswT0YmIGhOGKKJmqiE+EZ2IqDFhiCJqphriE9GJiBoThiiiZowBiYhIPt5YTkRERCQDQxQRERGRDAxRRERERDIwRBERERHJwBBFREREJANDFBEREZEMDFFEREREMjBEEREREcnAEEVEREQkA2csr0dCCABAYWGhhXtCRERE1VX2uV32OV4Zhqh6VFRU+jBXLy8vC/eEiIiIaqqoqAgajabS5Qpxt5hFshmNRvzxxx9wcHCAQqGo1bYKCwvh5eWF33//HY6OjnXUw8aluR+D5j5+gMcA4DEAeAwAHgOgfo+BEAJFRUXw9PSEUln5nU88E1WPlEol2rZtW6fbdHR0bLb/w5Rp7seguY8f4DEAeAwAHgOAxwCov2NQ1RmoMryxnIiIiEgGhigiIiIiGRiiGgkbGxvMmjULNjY2lu6KxTT3Y9Dcxw/wGAA8BgCPAcBjADSMY8Aby4mIiIhk4JkoIiIiIhkYooiIiIhkYIgiIiIikoEhioiIiEgGhigLWb58Oby9vWFra4ugoCAcOnSoyvqEhAR07twZdnZ28PLywosvvojr169Ly2fPng2FQmHy6tKlS30Po1Zqcgxu3ryJuXPnwtfXF7a2tujZsyd27dpVq202BHV9DBrb++CHH35AeHg4PD09oVAosGXLlruus3//fgQEBMDGxgYdO3ZEYmJiuZrG8j6oj/E39fdAdnY2xo4di06dOkGpVCI2NrbCuo0bN6JLly6wtbVFjx49sHPnzrrvfB2pj2OQmJhY7n1ga2tbPwOoAzU9Bps3b8aDDz6I1q1bw9HREcHBwdi9e3e5uvr+u4AhygLWr1+PuLg4zJo1C0ePHkXPnj2h1Wpx5cqVCuuTkpIwbdo0zJo1CxkZGVi1ahXWr1+P119/3aSue/fuyM7Oll4HDhwwx3BkqekxePPNN/Hxxx9j6dKlOH36NJ599ln885//xLFjx2Rv09Lq4xgAjet9UFxcjJ49e2L58uXVqs/MzERYWBgeeOABHD9+HLGxsXj66adN/vJsTO+D+hg/0LTfAzdu3EDr1q3x5ptvomfPnhXWpKSkIDIyEpMmTcKxY8cQERGBiIgInDx5si67Xmfq4xgApTN53/4+uHjxYl11uc7V9Bj88MMPePDBB7Fz506kp6fjgQceQHh4uPk/EwSZXd++fcWUKVOk3w0Gg/D09BTx8fEV1k+ZMkUMHjzYpC0uLk7cd9990u+zZs0SPXv2rJf+1oeaHgMPDw+xbNkyk7ZHH31UjBs3TvY2La0+jkFjex/cDoD46quvqqx59dVXRffu3U3aRo8eLbRarfR7Y3sflKmr8Tf198DtQkJCxAsvvFCufdSoUSIsLMykLSgoSEyePLmWPax/dXUMVq9eLTQaTZ31y5xqegzKdOvWTcyZM0f63Rx/F/BMlJmVlJQgPT0doaGhUptSqURoaChSU1MrXKd///5IT0+XTkP+9ttv2LlzJx555BGTunPnzsHT0xMdOnTAuHHjcOnSpfobSC3IOQY3btwodyrazs5O+he2nG1aUn0cgzKN5X0gR2pqqskxAwCtVisds8b2Pqipu42/TFN+D1RHdY9TU3f16lW0b98eXl5eGDFiBE6dOmXpLtUbo9GIoqIiODs7AzDf3wUMUWaWl5cHg8EANzc3k3Y3Nzfk5ORUuM7YsWMxd+5c3H///bC2toavry8GDRpkcjkvKCgIiYmJ2LVrFz766CNkZmZiwIABKCoqqtfxyCHnGGi1WixevBjnzp2D0WjEnj17sHnzZmRnZ8vepiXVxzEAGtf7QI6cnJwKj1lhYSH+/vvvRvc+qKm7jR9o+u+B6qjsODWF90B1de7cGZ988gm2bt2Kzz//HEajEf3798fly5ct3bV6sWjRIly9ehWjRo0CYL7PBIaoRmD//v14++238eGHH+Lo0aPYvHkzduzYgXnz5kk1Dz/8MB5//HHce++90Gq12LlzJwoKCrBhwwYL9rzufPDBB/Dz80OXLl2gVqsRExODiRMnQqlsPm/h6hyDpv4+oLvje4AAIDg4GE8++ST8/f0REhKCzZs3o3Xr1vj4448t3bU6l5SUhDlz5mDDhg1wdXU1676bzydQA9GqVSuoVCrk5uaatOfm5sLd3b3CdWbMmIHx48fj6aefRo8ePfDPf/4Tb7/9NuLj42E0Gitcx8nJCZ06dcL58+frfAy1JecYtG7dGlu2bEFxcTEuXryIM2fOoGXLlujQoYPsbVpSfRyDijTk94Ec7u7uFR4zR0dH2NnZNbr3QU3dbfwVaWrvgeqo7Dg1hfeAXNbW1ujVq1eTex+sW7cOTz/9NDZs2GBy6c5cfxcwRJmZWq1GYGAgkpOTpTaj0Yjk5GQEBwdXuM61a9fKnXFRqVQAAFHJow+vXr2KCxcuwMPDo456XnfkHIMytra2aNOmDW7duoVNmzZhxIgRtd6mJdTHMahIQ34fyBEcHGxyzABgz5490jFrbO+Dmrrb+CvS1N4D1SHnODV1BoMBv/zyS5N6H6xduxYTJ07E2rVrERYWZrLMbH8X1Nkt6lRt69atEzY2NiIxMVGcPn1aREdHCycnJ5GTkyOEEGL8+PFi2rRpUv2sWbOEg4ODWLt2rfjtt9/Et99+K3x9fcWoUaOkmpdeekns379fZGZmioMHD4rQ0FDRqlUrceXKFbOPrzpqegx++uknsWnTJnHhwgXxww8/iMGDBwsfHx/x119/VXubDU19HIPG9j4oKioSx44dE8eOHRMAxOLFi8WxY8fExYsXhRBCTJs2TYwfP16q/+2330SLFi3EK6+8IjIyMsTy5cuFSqUSu3btkmoa0/ugPsbf1N8DQgipPjAwUIwdO1YcO3ZMnDp1Slp+8OBBYWVlJRYtWiQyMjLErFmzhLW1tfjll1/MOrbqqo9jMGfOHLF7925x4cIFkZ6eLsaMGSNsbW1NahqSmh6DL774QlhZWYnly5eL7Oxs6VVQUCDVmOPvAoYoC1m6dKlo166dUKvVom/fvuKnn36SloWEhIioqCjp95s3b4rZs2cLX19fYWtrK7y8vMS//vUvkw/P0aNHCw8PD6FWq0WbNm3E6NGjxfnz5804opqryTHYv3+/6Nq1q7CxsREuLi5i/Pjx4r///W+NttkQ1fUxaGzvg3379gkA5V5l446KihIhISHl1vH39xdqtVp06NBBrF69utx2G8v7oD7G3xzeAxXVt2/f3qRmw4YNolOnTkKtVovu3buLHTt2mGdAMtTHMYiNjZX+H3BzcxOPPPKIOHr0qPkGVUM1PQYhISFV1pep778LFEJUcj2IiIiIiCrFe6KIiIiIZGCIIiIiIpKBIYqIiIhIBoYoIiIiIhkYooiIiIhkYIgiIiIikoEhioiIiEgGhigiomZk//79UCgUKCgosHRXiBo9higiqhcTJkyAQqHAggULTNq3bNkChUIh/S6EwL///W8EBwfD0dERLVu2RPfu3fHCCy9U+2Gp165dw/Tp0+Hr6wtbW1u0bt0aISEh2Lp1q1Tj7e2NhISEOhlbfSs7dgqFAtbW1vDx8cGrr76K69ev12g7gwYNQmxsrElb//79kZ2dDY1GU4c9JmqeGKKIqN7Y2trinXfewV9//VXhciEExo4di+effx6PPPIIvv32W5w+fRqrVq2Cra0t3nrrrWrt59lnn8XmzZuxdOlSnDlzBrt27cJjjz0GnU5Xl8Mxq6FDhyI7Oxu//fYb3n//fXz88ceYNWtWrberVqvh7u5uEmSJSKY6fYgMEdH/i4qKEsOGDRNdunQRr7zyitT+1VdfibK/etauXSsAiK1bt1a4DaPRWK19aTQakZiYWOnyip6zVebHH38U999/v7C1tRVt27YVU6dOFVevXpWWf/rppyIwMFC0bNlSuLm5icjISJGbmystL3vm165du4S/v7+wtbUVDzzwgMjNzRU7d+4UXbp0EQ4ODiIyMlIUFxdXazxRUVFixIgRJm2PPvqo6NWrl/R7Xl6eGDNmjPD09BR2dnbinnvuEUlJSSbbuHPMmZmZUn9vf/bml19+Kbp16ybUarVo3769WLRoUbX6SdTc8UwUEdUblUqFt99+G0uXLsXly5fLLV+7di06d+6M4cOHV7h+dc+WuLu7Y+fOnSgqKqpw+ebNm9G2bVvMnTsX2dnZyM7OBgBcuHABQ4cOxciRI3HixAmsX78eBw4cQExMjLTuzZs3MW/ePPz888/YsmULsrKyMGHChHL7mD17NpYtW4aUlBT8/vvvGDVqFBISEpCUlIQdO3bg22+/xdKlS6s1njudPHkSKSkpUKvVUtv169cRGBiIHTt24OTJk4iOjsb48eNx6NAhAMAHH3yA4OBgPPPMM9KYvby8ym07PT0do0aNwpgxY/DLL79g9uzZmDFjBhITE2X1lahZsXSKI6Km6fazKf369RNPPfWUEML0TFSXLl3E8OHDTdZ74YUXhL29vbC3txdt2rSp1r6+//570bZtW2FtbS169+4tYmNjxYEDB0xq2rdvL95//32TtkmTJono6GiTth9//FEolUrx999/V7ivw4cPCwCiqKhICPG/M1HfffedVBMfHy8AiAsXLkhtkydPFlqttlrjiYqKEiqVStjb2wsbGxsBQCiVSvHll19WuV5YWJh46aWXpN9DQkLECy+8YFJz55mosWPHigcffNCk5pVXXhHdunWrVl+JmjOeiSKievfOO+9gzZo1yMjIuGvtG2+8gePHj2PmzJm4evVqtbY/cOBA/Pbbb0hOTsZjjz2GU6dOYcCAAZg3b16V6/38889ITExEy5YtpZdWq4XRaERmZiaA0jM14eHhaNeuHRwcHBASEgIAuHTpksm27r33XunPbm5uaNGiBTp06GDSduXKlWqNBwAeeOABHD9+HGlpaYiKisLEiRMxcuRIabnBYMC8efPQo0cPODs7o2XLlti9e3e5ft1NRkYG7rvvPpO2++67D+fOnYPBYKjRtoiaG4YoIqp3AwcOhFarxfTp003a/fz8cPbsWZO21q1bo2PHjnB1da3RPqytrTFgwAC89tpr+PbbbzF37lzMmzcPJSUlla5z9epVTJ48GcePH5deP//8M86dOwdfX18UFxdDq9XC0dERX3zxBQ4fPoyvvvoKAMpt19raWvpz2bfqbqdQKGA0Gqs9Hnt7e3Ts2BE9e/bEJ598grS0NKxatUpa/u677+KDDz7Aa6+9hn379uH48ePQarVVjpeI6paVpTtARM3DggUL4O/vj86dO0ttkZGRGDt2LLZu3YoRI0bU6f66deuGW7du4fr161Cr1VCr1eXOrAQEBOD06dPo2LFjhdv45ZdfoNPpsGDBAul+oiNHjtRpP6tDqVTi9ddfR1xcHMaOHQs7OzscPHgQI0aMwBNPPAEAMBqN+PXXX9GtWzdpvYrGfKeuXbvi4MGDJm0HDx5Ep06doFKp6n4wRE0Iz0QRkVn06NED48aNw5IlS6S2MWPG4LHHHsOYMWMwd+5cpKWlISsrC99//z3Wr19f7Q/xQYMG4eOPP0Z6ejqysrKwc+dOvP7663jggQfg6OgIoHSeqB9++AH//e9/kZeXBwB47bXXkJKSgpiYGBw/fhznzp3D1q1bpRvL27VrB7VajaVLl+K3337D119/fddLhPXl8ccfh0qlwvLlywGUnsXbs2cPUlJSkJGRgcmTJyM3N9dkHW9vb+mY5uXlVXgm7KWXXkJycjLmzZuHX3/9FWvWrMGyZcvw8ssvm2VcRI0ZQxQRmc3cuXNNPsgVCgXWr1+PhIQE7Ny5E0OGDEHnzp3x1FNPwcvLCwcOHKjWdrVaLdasWYOHHnoIXbt2xdSpU6HVarFhwwaTfWdlZcHX1xetW7cGUHof0/fff49ff/0VAwYMQK9evTBz5kx4enoCKL20mJiYiI0bN6Jbt25YsGABFi1aVIdHpPqsrKwQExODhQsXori4GG+++SYCAgKg1WoxaNAguLu7IyIiwmSdl19+GSqVCt26dUPr1q0rvF8qICAAGzZswLp163DPPfdg5syZmDt3boXfQCQiUwohhLB0J4iIiIgaG56JIiIiIpKBIYqIGrzbpyC48/Xjjz9auns1cunSpSrHU9MpCojIcng5j4gavKoeRNymTRvY2dmZsTe1c+vWLWRlZVW63NvbG1ZW/OI0UWPAEEVEREQkAy/nEREREcnAEEVEREQkA0MUERERkQwMUUREREQyMEQRERERycAQRURERCQDQxQRERGRDAxRRERERDL8Hw51/eUiJFEbAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_13.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAHHCAYAAABXx+fLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABGoUlEQVR4nO3de1yUZf7/8feADCjCKKgclERBTc0jHlbTLKPAVcqt/a26pelall/Jde3oVh7WymNmip38etrK9Ftam9ZayepuqaWLpzQ1dSG1xMOQoJKgzP37w2Vy5CAgzAzcr+fjMQ+Z+77mns99rSvvrvu6r9tiGIYhAAAAE/HxdAEAAADuRgACAACmQwACAACmQwACAACmQwACAACmQwACAACmQwACAACmQwACAACmQwACAACmQwACAC+1dOlSWSwWZWRkeLoUoMYhAAEmtm3bNiUnJ6tt27YKDAzUDTfcoN/97nf67rvvirS99dZbZbFYZLFY5OPjo+DgYLVq1UpDhw7V559/Xq7vXbNmjfr06aNGjRqpTp06at68uX73u99p3bp1lXVqRbz44ov68MMPi2zfvHmzJk+erDNnzlTZd19t8uTJzr60WCyqU6eO2rRpo2effVY5OTmV8h3Lly/X3LlzK+VYQE1EAAJMbMaMGVq1apVuv/12vfLKKxo1apT+9a9/qXPnztqzZ0+R9k2aNNFbb72lv/71r5o1a5buuusubd68WXfeeacGDRqkixcvXvM7Z8+erbvuuksWi0UTJkzQyy+/rHvvvVcHDx7UihUrquI0JZUegKZMmeLWAFTotdde01tvvaU5c+boxhtv1AsvvKDExERVxiMaCUBA6Wp5ugAAnjN+/HgtX75cVqvVuW3QoEFq166dpk+frrffftulvc1m0/333++ybfr06Ro7dqxeffVVRUdHa8aMGSV+36VLlzR16lTdcccd+uyzz4rsP3ny5HWekffIzc1VnTp1Sm3z29/+Vg0aNJAkPfLII7r33nu1evVqffXVV+rRo4c7ygRMixEgwMR69uzpEn4kqUWLFmrbtq327dtXpmP4+vpq3rx5atOmjVJSUpSdnV1i29OnTysnJ0c333xzsfsbNWrk8v7ChQuaPHmyWrZsqYCAAEVEROiee+7R4cOHnW1mz56tnj17KjQ0VLVr11ZcXJzef/99l+NYLBadP39ey5Ytc152Gj58uCZPnqwnnnhCktSsWTPnvivn3Lz99tuKi4tT7dq1FRISosGDB+vo0aMux7/11lt10003KS0tTbfccovq1KmjP//5z2Xqvyv17dtXkpSenl5qu1dffVVt27aVv7+/IiMjNWbMGJcRrFtvvVUff/yxvv/+e+c5RUdHl7seoCZjBAiAC8MwdOLECbVt27bMn/H19dWQIUP03HPP6csvv1T//v2LbdeoUSPVrl1ba9as0aOPPqqQkJASj1lQUKABAwYoNTVVgwcP1h//+EedPXtWn3/+ufbs2aOYmBhJ0iuvvKK77rpL9913n/Lz87VixQr9v//3/7R27VpnHW+99ZYefPBBdevWTaNGjZIkxcTEKDAwUN99953effddvfzyy87RmIYNG0qSXnjhBT333HP63e9+pwcffFCnTp3S/Pnzdcstt2jHjh2qV6+es1673a5+/fpp8ODBuv/++xUWFlbm/itUGOxCQ0NLbDN58mRNmTJF8fHxGj16tA4cOKDXXntN27Zt06ZNm+Tn56dnnnlG2dnZOnbsmF5++WVJUt26dctdD1CjGQBwhbfeesuQZCxatMhle58+fYy2bduW+LkPPvjAkGS88sorpR5/4sSJhiQjMDDQ6Nevn/HCCy8YaWlpRdotXrzYkGTMmTOnyD6Hw+H8OTc312Vffn6+cdNNNxl9+/Z12R4YGGg88MADRY41a9YsQ5KRnp7usj0jI8Pw9fU1XnjhBZft33zzjVGrVi2X7X369DEkGa+//nqJ532lSZMmGZKMAwcOGKdOnTLS09ONN954w/D39zfCwsKM8+fPG4ZhGEuWLHGp7eTJk4bVajXuvPNOo6CgwHm8lJQUQ5KxePFi57b+/fsbTZs2LVM9gBlxCQyA0/79+zVmzBj16NFDDzzwQLk+WzjCcPbs2VLbTZkyRcuXL1enTp306aef6plnnlFcXJw6d+7sctlt1apVatCggR599NEix7BYLM6fa9eu7fz5p59+UnZ2tnr37q3t27eXq/6rrV69Wg6HQ7/73e90+vRp5ys8PFwtWrTQhg0bXNr7+/trxIgR5fqOVq1aqWHDhmrWrJkefvhhxcbG6uOPPy5x7tD69euVn5+vcePGycfnl3++H3roIQUHB+vjjz8u/4kCJsUlMACSpMzMTPXv3182m03vv/++fH19y/X5c+fOSZKCgoKu2XbIkCEaMmSIcnJy9PXXX2vp0qVavny5kpKStGfPHgUEBOjw4cNq1aqVatUq/Z+ptWvX6vnnn9fOnTuVl5fn3H5lSKqIgwcPyjAMtWjRotj9fn5+Lu8bN25cZD7VtaxatUrBwcHy8/NTkyZNnJf1SvL9999LuhycrmS1WtW8eXPnfgDXRgACoOzsbPXr109nzpzRF198ocjIyHIfo/C2+djY2DJ/Jjg4WHfccYfuuOMO+fn5admyZfr666/Vp0+fMn3+iy++0F133aVbbrlFr776qiIiIuTn56clS5Zo+fLl5T6HKzkcDlksFv39738vNgxePafmypGosrrllluc844AuBcBCDC5CxcuKCkpSd99953Wr1+vNm3alPsYBQUFWr58uerUqaNevXpVqI4uXbpo2bJlOn78uKTLk5S//vprXbx4schoS6FVq1YpICBAn376qfz9/Z3blyxZUqRtSSNCJW2PiYmRYRhq1qyZWrZsWd7TqRJNmzaVJB04cEDNmzd3bs/Pz1d6erri4+Od2653BAyo6ZgDBJhYQUGBBg0apC1btui9996r0NozBQUFGjt2rPbt26exY8cqODi4xLa5ubnasmVLsfv+/ve/S/rl8s69996r06dPKyUlpUhb478LBfr6+spisaigoMC5LyMjo9gFDwMDA4td7DAwMFCSiuy755575OvrqylTphRZmNAwDNnt9uJPsgrFx8fLarVq3rx5LjUtWrRI2dnZLnffBQYGlrokAWB2jAABJvbYY4/po48+UlJSkrKysoosfHj1oofZ2dnONrm5uTp06JBWr16tw4cPa/DgwZo6dWqp35ebm6uePXvqV7/6lRITExUVFaUzZ87oww8/1BdffKGBAweqU6dOkqRhw4bpr3/9q8aPH6+tW7eqd+/eOn/+vNavX6//+Z//0d13363+/ftrzpw5SkxM1O9//3udPHlSCxYsUGxsrHbv3u3y3XFxcVq/fr3mzJmjyMhINWvWTN27d1dcXJwk6ZlnntHgwYPl5+enpKQkxcTE6Pnnn9eECROUkZGhgQMHKigoSOnp6frggw80atQoPf7449fV/+XVsGFDTZgwQVOmTFFiYqLuuusuHThwQK+++qq6du3q8r9XXFycVq5cqfHjx6tr166qW7eukpKS3Fov4NU8eQsaAM8qvH27pFdpbevWrWu0aNHCuP/+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02eio6M1btw4jRs3rkprAwBUnasX+p048ZQyMmopOvqSIiO7SurqdQv9MgJkIsOHD5fFYtEjjzxSZN+YMWNksVg0fPhw9xcGAKj2QkNDFRERoYiICMXFheneey8//6twmzeFH4kAZDpRUVFasWKFfv75Z+e2CxcuaPny5brhhhs8WBkAAO5DADKZzp07KyoqSqtXr3ZuW716tW644QZ16tTJuS0vL09jx45Vo0aNFBAQoF69emnbtm0ux/rkk0/UsmVL1a5dW7fddpsyMjKKfN+XX36p3r17q3bt2oqKitLYsWN1/vz5Kjs/AADKggDkQceOSRs2XP7Tnf7whz9oyZIlzveLFy/WiBEjXNo8+eSTWrVqlZYtW6bt27crNjZWCQkJysq6PJP/6NGjuueee5SUlKSdO3fqwQcf1NNPP+1yjMOHDysxMVH33nuvdu/erZUrV+rLL79UcnJy1Z8kAAClIAB5yKJFUtOmUt++l/9ctMh9333//ffryy+/1Pfff6/vv/9emzZt0v333+/cf/78eb322muaNWuW+vXrpzZt2mjhwoWqXbu2Fv230Ndee00xMTF66aWX1KpVK913331F5g9NmzZN9913n8aNG6cWLVqoZ8+emjdvnv7617/qwoUL7jthAACuwl1gHnDsmDRqlOT471IJDof08MNSQoLUpEnVf3/Dhg3Vv39/LV26VIZhqH///mrQoIFz/+HDh3Xx4kXdfPPNzm1+fn7q1q2b9u3bJ0nat2+funfv7nLcHj16uLzftWuXdu/erXfeece5zTAMORwOpaenq3Xr1lVxegAAXBMByAMOHvwl/BQqKJAOHXJPAJIuXwYrvBS1YMGCKvmOc+fO6eGHH9bYsWOL7GPCNQDAkwhAHtCiheTj4xqCfH2l2Fj31ZCYmKj8/HxZLBYlJCS47IuJiZHVatWmTZvUtGlTSdLFixe1bds253o9rVu31kcffeTyua+++srlfefOnfXtt98q1p0nBgBAGTAHyAOaNJHefPNy6JEu//nGG+4b/bn8nb7at2+fvv32W/kWFvJfgYGBGj16tJ544gmtW7dO3377rR566CHl5uZq5MiRkqRHHnlEBw8e1BNPPKEDBw5o+fLlWrp0qctxnnrqKW3evFnJycnauXOnDh48qL/97W9MggYAeBwjQB4ycuTlOT+HDl0e+XFn+CkUHBxc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qKioKP3P//yPzp0759z//fffKykpSfXr11dgYKDatm2rTz75RJL0008/6b777lPDhg1Vu3ZttWjRQkuWLCnz+dWrV895fuHh4QoJCXGO1KxcuVJ9+vRRQECA3nnnHdntdg0ZMkSNGzdWnTp11K5dO7377rsux3M4HJo5c6ZiY2Pl7++vG264QS+88IIkqVmzZpKkTp06yWKx6NZbb5VU9BJYXl6exo4dq0aNGikgIEC9evXStm3bnPs3btwoi8Wi1NRUdenSRXXq1FHPnj114MCBMp83AAIQgDI6d+6c3n77bcXGxio0NFQPPvigli9frry8PGebt99+W40bN1bfvn2d22bNmqUOHTpox44devrpp/XHP/5Rn3/+uXO/j4+P5s2bp71792rZsmX6xz/+oSeffNK5f8yYMcrLy9O//vUvffPNN5oxY4bq1q0rSXruuef07bff6u9//7v27dun1157TQ0aNKiU8y2sdd++fUpISNCFCxcUFxenjz/+WHv27NGoUaM0dOhQbd261fmZCRMmaPr06c66li9frrCwMElytlu/fr2OHz+u1atXF/u9Tz75pFatWqVly5Zp+/btio2NVUJCgrKyslzaPfPMM3rppZf073//W7Vq1dIf/vCHSjlvwDQ8/TRWAN7pgQceMHx9fY3AwEAjMDDQkGREREQYaWlphmEYxs8//2zUr1/fWLlypfMz7du3NyZPnux837RpUyMxMdHluIMGDTL69etX4ve+9957RmhoqPN9u3btXI55paSkJGPEiBEVOj9JRkBAgPP8AgMDjQ8++MBIT083JBlz58695jH69+9vPPbYY4ZhGEZOTo7h7+9vLFy4sNi2hcfdsWOHy/Yrn2p/7tw5w8/Pz3jnnXec+/Pz843IyEhj5syZhmEYxoYNGwxJxvr1651tPv74Y0OS8fPPP5enCwBTYwQIQIluu+027dy5Uzt37tTWrVuVkJCgfv366fvvv1dAQICGDh2qxYsXS5K2b9+uPXv2aPjw4S7H6NGjR5H3+/btc75fv369br/9djVu3FhBQUEaOnSo7Ha7cnNzJUljx47V888/r5tvvlmTJk1ymYQ9evRorVixQh07dtSTTz6pzZs3l+v8Xn75Zef57dy5U3fccYdzX5cuXVzaFhQUaOrUqWrXrp1CQkJUt25dffrppzpy5Igkad++fcrLy9Ptt99erhqudPjwYV28eFE333yzc5ufn5+6devm0meS1L59e+fPERERkqSTJ09W+LsBsyEAAShRYGCgYmNjFRsbq65du+p///d/df78eS1cuFCS9OCDD+rzzz/XsWPHtGTJEvXt21dNmzYt8/EzMjI0YMAAtW/fXqtWrVJaWppzjlB+fr7zO/7zn/9o6NCh+uabb9SlSxfNnz9fkpxh7E9/+pN+/PFH3X777Xr88cfL/P3h4eHO84uNjVVgYKDLuV9p1qxZeuWVV/TUU09pw4YN2rlzpxISEpx11q5du8zfWxn8/PycP1ssFkmX5yABKBsCEIAys1gs8vHx0c8//yxJateunbp06aKFCxdq+fLlxc5D+eqrr4q8b926tSQpLS1NDodDL730kn71q1+pZcuW+vHHH4scIyoqSo888ohWr16txx57zBnAJKlhw4Z64IEH9Pbbb2vu3Ll68803K/OUnTZt2qS7775b999/vzp06KDmzZvru+++c+5v0aKFateu7ZwAfjWr1Srp8khSSWJiYmS1WrVp0ybntosXL2rbtm1q06ZNJZ0JAEmq5ekCAHivvLw8ZWZmSrp8x1VKSorOnTunpKQkZ5sHH3xQycnJCgwM1G9+85six9i0aZNmzpypgQMH6vPPP9d7772njz/+WJIUGxurixcvav78+UpKStKmTZv0+uuvu3x+3Lhx6tevn1q2bKmffvpJGzZscAaoiRMnKi4uTm3btlVeXp7Wrl3r3FfZWrRooffff1+bN29W/fr1NWfOHJ04ccIZTAICAvTUU0/pySeflNVq1c0336xTp05p7969GjlypBo1aqTatWtr3bp1atKkiQICAmSz2Vy+IzAwUKNHj9YTTzyhkJAQ3XDDDZo5c6Zyc3M1cuTIKjkvwKwYAQJQonXr1ikiIkIRERHq3r27tm3bpvfee895C7ckDRkyRLVq1dKQIUMUEBBQ5BiPPfaY/v3vf6tTp056/vnnNWfOHCUkJEiSOnTooDlz5mjGjBm66aab9M4772jatGkuny8oKNCYMWPUunVrJSYmqmXLlnr11VclXR5VmTBhgtq3b69bbrlFvr6+WrFiRZX0xbPPPqvOnTsrISFBt956q8LDw4us4Pzcc8/pscce08SJE9W6dWsNGjTIOS+nVq1amjdvnt544w1FRkbq7rvvLvZ7pk+frnvvvVdDhw5V586ddejQIX366aeqX79+lZwXYFYWwzAMTxcBoPrKyMhQTEyMtm3bps6dO7vsi46O1rhx4zRu3DjPFAcAJeASGIAKuXjxoux2u5599ln96le/KhJ+AMCbcQkMQIVs2rRJERER2rZtW5F5O5724osvqm7dusW++vXr5+nyAHgBLoEBqHGysrKKrJxcqHbt2mrcuLGbKwLgbQhAAADAdLgEBgAATIcABAAATIcABAAATIcABAAATIcABAAATIcABAAATIcABAAATIcABAAATOf/A4sRL8SepaJqAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_14.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAHHCAYAAABXx+fLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABHcElEQVR4nO3deVxU5eLH8e+ADLjAKKggSqK4pblB6dUyWyjoKuWtrlvlkuXyi8xLWdni2k0tr5li60vFuplWml3LSws3K5eWi1uWlhpolmAOCSgpypzfH16mRhYBmRngfN6v17xgznnmmec5TczX5zznORbDMAwBAACYiI+3GwAAAOBpBCAAAGA6BCAAAGA6BCAAAGA6BCAAAGA6BCAAAGA6BCAAAGA6BCAAAGA6BCAAAGA6BCAAqKFSUlJksViUmZnp7aYAdQ4BCDCxr776SomJierSpYsaNmyoiy66SIMHD9b3339fouxVV10li8Uii8UiHx8fBQUFqWPHjrrjjjv04YcfVup9161bp/79+6t58+Zq0KCB2rZtq8GDBys1NbW6ulbCk08+qbVr15bYvnnzZk2fPl3Hjh1z23ufa/r06c5jabFY1KBBA3Xu3FmPPfaY8vLyquU9VqxYoQULFlRLXUBdRAACTGzu3LlavXq1rr32Wj377LMaO3asPv30U0VHR2vXrl0lyrdq1UqvvvqqXnnlFT399NO68cYbtXnzZl1//fUaMmSITp8+fd73nDdvnm688UZZLBZNmTJFzzzzjG655Rbt3btXK1eudEc3JZUfgGbMmOHRAFTs+eef16uvvqr58+erU6dO+vvf/674+HhVxy0aCUBA+ep5uwEAvCcpKUkrVqyQ1Wp1bhsyZIi6du2qOXPm6J///KdLeZvNpttvv91l25w5czRx4kQ999xzioyM1Ny5c8t8vzNnzmjWrFm67rrr9MEHH5TYf+TIkQvsUc1RUFCgBg0alFvm1ltvVdOmTSVJ48eP1y233KI1a9bo888/V58+fTzRTMC0GAECTKxv374u4UeS2rdvry5dumj37t0VqsPX11cLFy5U586dlZycrNzc3DLLHj16VHl5ebr88stL3d+8eXOX5ydPntT06dPVoUMHBQQEqEWLFrr55pu1f/9+Z5l58+apb9++CgkJUf369RUTE6O33nrLpR6LxaITJ05o+fLlztNOo0aN0vTp0zV58mRJUps2bZz7/jjn5p///KdiYmJUv359BQcHa+jQofrxxx9d6r/qqqt0ySWXKD09XVdeeaUaNGigRx55pELH74+uueYaSVJGRka55Z577jl16dJF/v7+Cg8P1z333OMygnXVVVfpvffe04EDB5x9ioyMrHR7gLqMESAALgzDUHZ2trp06VLh1/j6+mrYsGF6/PHHtXHjRg0YMKDUcs2bN1f9+vW1bt063XvvvQoODi6zzqKiIg0cOFBpaWkaOnSo7rvvPuXn5+vDDz/Url27FBUVJUl69tlndeONN+q2225TYWGhVq5cqb/+9a969913ne149dVXddddd6lXr14aO3asJCkqKkoNGzbU999/r9dff13PPPOMczSmWbNmkqS///3vevzxxzV48GDddddd+uWXX7Ro0SJdeeWV2rZtmxo3buxsr91u1w033KChQ4fq9ttvV2hoaIWPX7HiYBcSElJmmenTp2vGjBmKjY3VhAkT9N133+n555/XV199pU2bNsnPz0+PPvqocnNzdejQIT3zzDOSpEaNGlW6PUCdZgDAH7z66quGJGPJkiUu2/v372906dKlzNe9/fbbhiTj2WefLbf+qVOnGpKMhg0bGjfccIPx97//3UhPTy9RbunSpYYkY/78+SX2ORwO5+8FBQUu+woLC41LLrnEuOaaa1y2N2zY0Bg5cmSJup5++mlDkpGRkeGyPTMz0/D19TX+/ve/u2z/+uuvjXr16rls79+/vyHJeOGFF8rs9x9NmzbNkGR89913xi+//GJkZGQYL774ouHv72+EhoYaJ06cMAzDMJYtW+bStiNHjhhWq9W4/vrrjaKiImd9ycnJhiRj6dKlzm0DBgwwWrduXaH2AGbEKTAATnv27NE999yjPn36aOTIkZV6bfEIQ35+frnlZsyYoRUrVqhnz556//339eijjyomJkbR0dEup91Wr16tpk2b6t577y1Rh8Vicf5ev3595++//vqrcnNz1a9fP23durVS7T/XmjVr5HA4NHjwYB09etT5CAsLU/v27fXxxx+7lPf399fo0aMr9R4dO3ZUs2bN1KZNG40bN07t2rXTe++9V+bcoY8++kiFhYWaNGmSfHx+//N99913KygoSO+9917lOwqYFKfAAEiSsrKyNGDAANlsNr311lvy9fWt1OuPHz8uSQoMDDxv2WHD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RoYGDBigq6++Wtu3b9ekSZN01113ufzRq02fAck9x0Cq25+DU6dOqVmzZnrsscfUvXv3Usts3rxZw4YN05gxY7Rt2zYNGjRIgwYN0q5du6qz6dXGHcdAOrtK8h8/BwcOHKiuJle7yh6DTz/9VNddd53Wr1+v9PR0XX311UpISPD8d4KBSunVq5dxzz33OJ8XFRUZ4eHhxuzZs0stf8899xjXXHONy7akpCTj8ssvdz6fNm2a0b17d7e01x0qewxatGhhJCcnu2y7+eabjdtuu63KdXqTO/pf2z4DfyTJePvtt8st8+CDDxpdunRx2TZkyBAjLi7O+bw2fQbOVV3HoK5/Dv6of//+xn333Vdi++DBg40BAwa4bOvdu7cxbty4C2yh+1XXMVi2bJlhs9mqrV2eVNljUKxz587GjBkznM898feAEaBKKCwsVHp6umJjY53bfHx8FBsbqy1btpT6mr59+yo9Pd05dPfDDz9o/fr1+vOf/+xSbu/evQoPD1fbtm1122236eDBg+7ryAWoyjE4depUieHb+vXrO/9lW5U6vcUd/S9WWz4DVbFlyxaXYyZJcXFxzmNWmz4DVXW+Y1CsLn8OKqKix6muO378uFq3bq2IiAjddNNN+uabb7zdJLdxOBzKz89XcHCwJM/9PSAAVcLRo0dVVFSk0NBQl+2hoaHKysoq9TXDhw/XzJkzdcUVV8jPz09RUVG66qqrXE6B9e7dWykpKUpNTdXzzz+vjIwM9evXT/n5+W7tT1VU5RjExcVp/vz52rt3rxwOhz788EOtWbNGhw8frnKd3uKO/ku16zNQFVlZWaUes7y8PP3222+16jNQVec7BlLd/xxURFnHqa58DiqiY8eOWrp0qd555x3985//lMPhUN++fXXo0CFvN80t5s2bp+PHj2vw4MGSPPedQABysw0bNujJJ5/Uc889p61bt2rNmjV67733NGvWLGeZG264QX/961/VrVs3xcXFaf369Tp27JjeeOMNL7a8+jz77LNq3769OnXqJKvVqsTERI0ePVo+Pub4+FWk/3X9M4CK4XMASerTp49GjBihHj16qH///lqzZo2aNWumF1980dtNq3YrVqzQjBkz9MYbb6h58+YefW9zfANVk6ZNm8rX11fZ2dku27OzsxUWFlbqax5//HHdcccduuuuu9S1a1f95S9/0ZNPPqnZ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nnHZNmbMGGPs2LEu2z777DPDx8fH+O2330p9r6+++sqQZOTn5xuG8fsI0EcffeQsM3v2bEOSsX//fue2cePGGXFxcRXqz8iRIw1fX1+jYcOGhr+/vyHJ8PHxMd56661yXzdgwADj/vvvdz7v37+/cd9997mUOXcEaPjw4cZ1113nUmby5MlG586dK9RWwOwYAQJQprlz52r58uXavXv3ecs++uij2r59u6ZOnarjx49XqP4rr7xSP/zwg9LS0nTrrbfqm2++Ub9+/TRr1qxyX7djxw6lpKSoUaNGzkdcXJwcDocyMjIknR0hSUhI0EUXXaTAwED1799fknTw4EGXurp16+b8PTQ0VA0aNFDbtm1dth05cqRC/ZGkq6++Wtu3b9cXX3yhkSNHavTo0brllluc+4uKijRr1ix17dpVwcHBatSokd5///0S7Tqf3bt36/LLL3fZdvnll2vv3r0qKiqqVF2AGRGAAJTpyiuvVFxcnKZMmeKyvX379vruu+9ctjVr1kzt2rVT8+bNK/Uefn5+6tevnx566CF98MEHmjlzpmbNmqXCwsIyX3P8+HGNGzdO27dvdz527NihvXv3KioqSidOnFBcXJyCgoL02muv6auvvtLbb78tSSXq9fPzc/5efPXWH1ksFjkcjgr3p2HDhmrXrp26d++upUuX6osvvtCSJUuc+59++mk9++yzeuihh/Txxx9r+/btiouLK7e/AKpfPW83AEDNNmfOHPXo0UMdO3Z0bhs2bJiGDx+ud955RzfddFO1vl/nzp115swZnTx5UlarVVartcSIRnR0tL799lu1a9eu1Dq+/vpr2e12zZkzxzl/5r///W+1trMifHx89MgjjygpKUnDhw9X/fr1tWnTJt100026/fbbJUkOh0Pff/+9Onfu7HxdaX0+18UXX6xNmza5bNu0aZM6dOggX1/f6u8MUMcwAgSgXF27dtVtt92mhQsXOrcNHTpUt956q4YOHaqZM2fqiy++UGZmpj755BOtWrWqwl/AV111lV588UWlp6crMzNT69ev1yOPPKKrr75aQUFBks6uA/Tpp5/qp59+0tGjRyVJDz30kDZv3qzExERt375de/fu1TvvvOOcBH3RRRfJarVq0aJF+uGHH/Svf/3rvKfV3OWvf/2rfH19tXjxYklnR88+/PBDbd68Wbt379a4ceOUnZ3t8prIyEjnMT169GipI1D333+/0tLSNGvWLH3//fdavny5kpOT9cADD3ikX0BtRwACcF4zZ850+RK2WCxatWqVFixYoPXr1+vaa69Vx44ddeeddyoiIkIbN26sUL1xcXFavny5rr/+el188cW69957FRcXpzfeeMPlvTMzMxUVFaVmzZpJOjtv55NPPtH333+vfv36qWfPnpo6darCw8MlnT0dl5KSojfffFOdO3fWnDlzNG/evGo8IhVXr149JSYm6qmnntKJEyf02GOPKTo6WnFxcbrqqqsUFhamQYMGubzmgQcekK+vrzp37qxmzZqVOj8oOjpab7zxhlauXKlLLrlEU6dO1cyZM0u90g1ASRbDMAxvNwIAAMCTGAECAACmQwAC4DZ/vEz93Mdnn33m7eZVysGDB8vtT2UvYwfgXZwCA+A25d0UtWXLlqpfv74HW3Nhzpw5o8zMzDL3R0ZGql49LqwFagsCEAAAMB1OgQEAANMhAAEAANMhAAEAANMhAAEAANMhAAEAANMhAAEAANMhAAEAANMhAAEAANP5fzT2Wpa+J4SwAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_15.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkgAAAHHCAYAAABEEKc/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABUDklEQVR4nO3deVxU9f4/8NcMMmzCKKiAiKCC+w6CWIlXKTSluNK9qOV2XbKvqEhZklumhakoKi7pdask/JFWamYp17o3xQ3lmhsu4Q6oYw4KCsR8fn9wOTnDItvMYXk9H495wJzzOee8P+eS87rnfM5nFEIIASIiIiKSKOUugIiIiKimYUAiIiIiMsCARERERGSAAYmIiIjIAAMSERERkQEGJCIiIiIDDEhEREREBhiQiIiIiAwwIBEREREZYEAiIqrFtmzZAoVCgatXr8pdClGdwoBERGU6fvw4wsLC0KlTJ9jY2KBly5b4+9//josXLxZr269fPygUCigUCiiVStjZ2aFdu3YYOXIk9u/fX6Hj7t69G/7+/mjWrBmsra3RunVr/P3vf8e+ffuqq2vFfPzxx/jmm2+KLT98+DA++OADPHjwwGjHNvTBBx9I51KhUMDa2hodO3bE7NmzkZWVVS3HiIuLQ0xMTLXsi6iuYUAiojJ98skn2LFjBwYMGIAVK1Zg4sSJ+Pe//42ePXvizJkzxdq3aNECn3/+OT777DMsWbIEr7zyCg4fPoyXXnoJoaGhyM/Pf+Yxly5dildeeQUKhQKRkZFYvnw5QkJCcOnSJcTHxxujmwDKDkjz5883aUAqsnbtWnz++edYtmwZ2rdvj48++ggDBw5EdXyNJgMSUekayF0AEdVsERERiIuLg0qlkpaFhoaiS5cuWLRoEb744gu99mq1Gm+88YbeskWLFmHq1KlYs2YN3N3d8cknn5R6vD/++AMLFizAiy++iB9//LHY+jt37lSxRzVHTk4OrK2ty2zz2muvoUmTJgCASZMmISQkBDt37sSRI0fg5+dnijKJ6iVeQSKiMvXp00cvHAGAp6cnOnXqhPPnz5drH2ZmZli5ciU6duyI2NhYaLXaUtveu3cPWVlZeO6550pc36xZM733T548wQcffIC2bdvC0tISzs7OGDp0KK5cuSK1Wbp0Kfr06QMHBwdYWVnBy8sLX331ld5+FAoFsrOzsXXrVum21pgxY/DBBx9gxowZAIBWrVpJ654e8/PFF1/Ay8sLVlZWsLe3x7Bhw3Djxg29/ffr1w+dO3dGcnIy+vbtC2tra7z//vvlOn9P69+/PwAgLS2tzHZr1qxBp06dYGFhgebNm2Py5Ml6V8D69euH7777DteuXZP65O7uXuF6iOoqXkEiogoTQiAzMxOdOnUq9zZmZmYYPnw45syZg19++QWDBw8usV2zZs1gZWWF3bt3Y8qUKbC3ty91nwUFBRgyZAgSExMxbNgwTJs2DQ8fPsT+/ftx5swZtGnTBgCwYsUKvPLKK3j99deRl5eH+Ph4/O1vf8OePXukOj7//HOMHz8ePj4+mDhxIgCgTZs2sLGxwcWLF/Hll19i+fLl0tWcpk2bAgA++ugjzJkzB3//+98xfvx43L17F6tWrULfvn1x6tQpNGrUSKpXo9Fg0KBBGDZsGN544w04OjqW+/wVKQp+Dg4Opbb54IMPMH/+fAQEBOCtt95Camoq1q5di+PHj+PQoUMwNzfHrFmzoNVqcfPmTSxfvhwA0LBhwwrXQ1RnCSKiCvr8888FALFx40a95f7+/qJTp06lbvf1118LAGLFihVl7n/u3LkCgLCxsRGDBg0SH330kUhOTi7WbtOmTQKAWLZsWbF1Op1O+j0nJ0dvXV5enujcubPo37+/3nIbGxsxevToYvtasmSJACDS0tL0ll+9elWYmZmJjz76SG/5r7/+Kho0aKC33N/fXwAQ69atK7XfT5s3b54AIFJTU8Xdu3dFWlqa+PTTT4WFhYVwdHQU2dnZQgghNm/erFfbnTt3hEqlEi+99JIoKCiQ9hcbGysAiE2bNknLBg8eLNzc3MpVD1F9w1tsRFQhFy5cwOTJk+Hn54fRo0dXaNuiKxQPHz4ss938+fMRFxeHHj164IcffsCsWbPg5eWFnj176t3W27FjB5o0aYIpU6YU24dCoZB+t7Kykn7//fffodVq8cILL+DkyZMVqt/Qzp07odPp8Pe//x337t2TXk5OTvD09MTBgwf12ltYWGDs2LEVOka7du3QtGlTtGrVCm+++SY8PDzw3XfflTp26cCBA8jLy0N4eDiUyj//iZ8wYQLs7Ozw3XffVbyjRPUQb7ERUbllZGRg8ODBUKvV+Oqrr2BmZlah7R89egQAsLW1fWbb4cOHY/jw4cjKysLRo0exZcsWxMXFISgoCGfOnIGlpSWuXLmCdu3aoUGDsv8p27NnDxYuXIiUlBTk5uZKy58OUZVx6dIlCCHg6elZ4npzc3O99y4uLsXGcz3Ljh07YGdnB3Nzc7Ro0UK6bViaa9euASgMVk9TqVRo3bq1tJ6IysaARETlotVqMWjQIDx48AD/+c9/0Lx58wrvo2haAA8Pj3JvY2dnhxdffBEvvvgizM3NsXXrVhw9ehT+/v7l2v4///kPXnnlFfTt2xdr1qyBs7MzzM3NsXnzZsTFxVW4D0/T6XRQKBT4/vvvSwyLhmN6nr6SVV59+/aVxj0RkekwIBHRMz158gRBQUG4ePEiDhw4gI4dO1Z4HwUFBYiLi4O1tTWef/75StXh7e2NrVu3Ij09HUDhIOqjR48iPz+/2NWaIjt27IClpSV++OEHWFhYSMs3b95crG1pV5RKW96mTRsIIdCqVSu0bdu2ot0xCjc3NwBAamoqWrduLS3Py8tDWloaAgICpGVVvYJGVJdxDBIRlamgoAChoaFISkpCQkJCpebeKSgowNSpU3H+/HlMnToVdnZ2pbbNyclBUlJSieu+//57AH/ePgoJCcG9e/cQGxtbrK3430SKZmZmUCgUKCgokNZdvXq1xAkhbWxsSpwM0sbGBgCKrRs6dCjMzMwwf/78YhM3CiGg0WhK7qQRBQQEQKVSYeXKlXo1bdy4EVqtVu/pQRsbmzKnXCCqz3gFiYjK9Pbbb2PXrl0ICgrC/fv3i00MaTgppFarldrk5OTg8uXL2LlzJ65cuYJhw4ZhwYIFZR4vJycHffr0Qe/evTFw4EC4urriwYMH+Oabb/Cf//wHwcHB6NGjBwBg1KhR+OyzzxAREYFjx47hhRdeQHZ2Ng4cOID/+7//w6uvvorBgwdj2bJlGDhwIEaMGIE7d+5g9erV8PDwwOnTp/WO7eXlhQMHDmDZsmVo3rw5WrVqBV9fX3h5eQEAZs2ahWHDhsHc3BxBQUFo06YNFi5ciMjISFy9ehXBwcGwtbVFWloavv76a0ycOBHvvPNOlc5/RTVt2hSRkZGYP38+Bg4ciFdeeQWpqalYs2YNevXqpfe/l5eXF7Zv346IiAj06tULDRs2RFBQkEnrJaqx5HyEjohqvqLH00t7ldW2YcOGwtPTU7zxxhvixx9/LNfx8vPzxYYNG0RwcLBwc3MTFhYWwtraWvTo0UMsWbJE5Obm6rXPyckRs2bNEq1atRLm5ubCyclJvPbaa+LKlStSm40bNwpPT09hYWEh2rdvLzZv3iw9Rv+0CxcuiL59+worKysBQO+R/wULFggXFxehVCqLPfK/Y8cO8fzzzwsbGxthY2Mj2rdvLyZPnixSU1P1zk1ZUyAYKqrv7t27ZbYzfMy/SGxsrGjfvr0wNzcXjo6O4q233hK///67XptHjx6JESNGiEaNGgkAfOSf6CkKIarhC32IiIiI6hCOQSIiIiIywIBEREREZIABiYiIiMgAAxIRERGRAQYkIiIiIgMMSEREREQGOFFkJel0Oty+fRu2tracrp+IiKiWEELg4cOHaN68OZTK0q8TMSBV0u3bt+Hq6ip3GURERFQJN27cQIsWLUpdz4BUSba2tgAKT3BZ3ytFRERENUdWVhZcXV2lz/HSMCBVUtFtNTs7OwYkIiKiWuZZw2M4SJuIiIjIAAMSERERkQEGJCIiIiIDHINERERkQgUFBcjPz5e7jDrL3NwcZmZmVd4PAxIREZEJCCGQkZGBBw8eyF1KndeoUSM4OTlVaZ5CBiQiIiITKApHzZo1g7W1NScZNgIhBHJycnDnzh0AgLOzc6X3xYBERERkZAUFBVI4cnBwkLucOs3KygoAcOfOHTRr1qzSt9s4SJuIiMjIisYcWVtby1xJ/VB0nqsy1osBiYiIyER4W800quM88xZbDaDRaJCXl1fqepVKxUuyREREJsSAJDONRoPY2NhntgsLC2NIIiIiMhHeYpNZWVeOKtOOiIioOo0ZMwYKhQIKhQLm5uZwdHTEiy++iE2bNkGn05V7P1u2bEGjRo2MV2g14xUkIiKiWkDO4RgDBw7E5s2bUVBQgMzMTOzbtw/Tpk3DV199hV27dqFBg7oXJ+pej4iIiOoYuYdjWFhYwMnJCQDg4uKCnj17onfv3hgwYAC2bNmC8ePHY9myZdi8eTN+++032NvbIygoCIsXL0bDhg3x008/YezYsQD+HEA9b948fPDBB/j888+xYsUKpKamwsbGBv3790dMTAyaNWtW7f2oCN5iq2G0WlukpblDq7WVuxQiIqohauJwjP79+6Nbt27YuXMnAECpVGLlypU4e/Ystm7din/961949913AQB9+vRBTEwM7OzskJ6ejvT0dLzzzjsACh/FX7BgAf773//im2++wdWrVzFmzBiT9aM0vIJUg5w82QO7dw+BEEooFDoEBe1Bz56n5C6LiIioRO3bt8fp06cBAOHh4dJyd3d3LFy4EJMmTcKaNWugUqmgVquhUCikK1FF/vGPf0i/t27dGitXrkSvXr3w6NEjNGzY0CT9KAmvINUQWq2tFI4AQAgldu8ewitJRERUYwkhpFtmBw4cwIABA+Di4gJbW1uMHDkSGo0GOTk5Ze4jOTkZQUFBaNmyJWxtbeHv7w8AuH79utHrLwsDUg1x/76DFI6KCKHE/fv2MlVERERUtvPnz6NVq1a4evUqhgwZgq5du2LHjh1ITk7G6tWrAZR92y87OxuBgYGws7PDtm3bcPz4cXz99dfP3M4UeItNZiqVCgBgb6+BQqHTC0kKhQ729vf12hEREdUE//rXv/Drr79i+vTpSE5Ohk6nQ3R0NJTKws+x//f//p9ee5VKhYKCAr1lFy5cgEajwaJFi+Dq6goAOHHihGk68AwMSDJzcHBAWFgY8vLy4OKShffeU6OgQAEzM4FPPsnCiBHDOZM2ERHJKjc3FxkZGXqP+UdFRWHIkCEYNWoUzpw5g/z8fKxatQpBQUE4dOgQ1q1bp7cPd3d3PHr0CImJiejWrRusra3RsmVLqFQqrFq1CpMmTcKZM2ewYMECmXqpj7fYagAHBwc4Ozvj7bcb4epVBQ4eBK5eVeDttxvB2dmZ4YiIiGS1b98+ODs7w93dHQMHDsTBgwexcuVKfPvttzAzM0O3bt2wbNkyfPLJJ+jcuTO2bduGqKgovX306dMHkyZNQmhoKJo2bYrFixejadOm2LJlCxISEtCxY0csWrQIS5culamX+hRCCCF3EbVRVlYW1Go1tFot7Ozs5C6HiIhqsCdPniAtLQ2tWrWCpaVlhbeXex6k2qas813ez2/Zb7GtXr0aS5YsQUZGBrp164ZVq1bBx8enxLZnz57F3LlzkZycjGvXrmH58uV6jxUCwL///W8sWbIEycnJSE9Px9dff43g4GC9NkIIzJs3Dxs2bMCDBw/w3HPPYe3atfD09DRSL4mIiCrv6eEYpeFwjOol6y227du3IyIiAvPmzcPJkyfRrVs3BAYG4s6dOyW2z8nJQevWrbFo0aJi8ygUyc7ORrdu3aTR8yVZvHgxVq5ciXXr1uHo0aOwsbFBYGAgnjx5Ui39IiIiqm5FwzFKezEcVS9Zb7H5+vqiV69e0mVDnU4HV1dXTJkyBTNnzixzW3d3d4SHhxe7gvQ0hUJR7AqSEALNmzfH22+/Lc3iqdVq4ejoiC1btmDYsGHlqp232IiIqLyqeouNKqY6brHJdgUpLy8PycnJCAgI+LMYpRIBAQFISkoy2nHT0tKQkZGhd1y1Wg1fX98yj5ubm4usrCy9FxEREdVNsgWke/fuoaCgAI6OjnrLHR0dkZGRYbTjFu27oseNioqCWq2WXkXzNRAREVHdw8f8yykyMhJarVZ63bhxQ+6SiIiIyEhkC0hNmjSBmZkZMjMz9ZZnZmaWOgC7OhTtu6LHtbCwgJ2dnd6LiIiI6ibZApJKpYKXlxcSExOlZTqdDomJifDz8zPacVu1agUnJye942ZlZeHo0aNGPS4RERHVHrLOgxQREYHRo0fD29sbPj4+iImJQXZ2NsaOHQsAGDVqFFxcXKTZOPPy8nDu3Dnp91u3biElJQUNGzaEh4cHAODRo0e4fPmydIy0tDSkpKTA3t4eLVu2hEKhQHh4OBYuXAhPT0+0atUKc+bMQfPmzYvNl0RERET1lJDZqlWrRMuWLYVKpRI+Pj7iyJEj0jp/f38xevRo6X1aWpoAUOzl7+8vtTl48GCJbZ7ej06nE3PmzBGOjo7CwsJCDBgwQKSmplaobq1WKwAIrVZb2a4TEVE98fjxY3Hu3Dnx+PFjuUupcYo+t3///fdyb+Pm5iaWL19e6vqyznd5P79lH6QdFhaGa9euITc3F0ePHoWvr6+07qeffsKWLVuk9+7u7hBCFHv99NNPUpt+/fqV2Obp/SgUCnz44YfIyMjAkydPcODAAbRt29YEvSUiIqpdxowZA4VCgUmTJhVbN3nyZCgUCowZM8b0hRmZ7AGJiIiIajZXV1fEx8fj8ePH0rInT54gLi4OLVu2lLEy42FAIiIiojL17NkTrq6u2Llzp7Rs586daNmyJXr06CEty83NxdSpU9GsWTNYWlri+eefx/Hjx/X2tXfvXrRt2xZWVlb4y1/+gqtXrxY73i+//IIXXngBVlZWcHV1xdSpU5GdnW20/pWEAYmIiKiWuXkTOHiw8Kep/OMf/8DmzZul95s2bZIeqiry7rvvYseOHdi6dStOnjwJDw8PBAYG4v79+wCAGzduYOjQoQgKCkJKSgrGjx9f7KvFrly5goEDByIkJASnT5/G9u3b8csvvyAsLMz4nXwKAxIREVEtsnEj4OYG9O9f+HPjRtMc94033sAvv/yCa9eu4dq1azh06BDeeOMNaX12djbWrl2LJUuWYNCgQejYsSM2bNgAKysrbPxfkWvXrkWbNm0QHR2Ndu3a4fXXXy82fikqKgqvv/46wsPD4enpiT59+mDlypX47LPPTPql8rI+5k9ERETld/MmMHEioNMVvtfpgDffBAIDgRYtjHvspk2bYvDgwdiyZQuEEBg8eDCaNGkirb9y5Qry8/Px3HPPScvMzc3h4+OD8+fPAwDOnz+v9zAWgGJzEP73v//F6dOnsW3bNmmZEAI6nQ5paWno0KGDMbpXDAMSERFRLXHp0p/hqEhBAXD5svEDElB4m63oVtfq1auNcoxHjx7hzTffxNSpU4utM+WAcAYkIiKiWsLTE1Aq9UOSmRnwv7mSjW7gwIHIy8uDQqFAYGCg3ro2bdpApVLh0KFDcHNzAwDk5+fj+PHjCA8PBwB06NABu3bt0tvuyJEjeu979uyJc+fOSRNAy4VjkIiIiGqJFi2A9esLQxFQ+PPTT01z9ajweGY4f/48zp07B7OiIv7HxsYGb731FmbMmIF9+/bh3LlzmDBhAnJycjBu3DgAwKRJk3Dp0iXMmDEDqampiIuL05unEADee+89HD58GGFhYUhJScGlS5fw7bffmnyQNq8gERER1SLjxhWOObp8ufDKkanCUZGyvqx90aJF0Ol0GDlyJB4+fAhvb2/88MMPaNy4MYDCW2Q7duzA9OnTsWrVKvj4+ODjjz/GP/7xD2kfXbt2xc8//4xZs2bhhRdegBACbdq0QWhoqNH79jSFEEKY9Ih1RFZWFtRqNbRabZl/LERERE+ePEFaWhpatWoFS0tLucup88o63+X9/OYtNiIiIiIDDEhEREREBhiQiIiIiAwwIBEREREZYEAiIiIyET4XZRrVcZ4ZkIiIiIzM3NwcAJCTkyNzJfVD0XkuOu+VwXmQiIiIjMzMzAyNGjXCnTt3AADW1tZQKBQyV1X3CCGQk5ODO3fuoFGjRsUms6wIBiQiIiITcHJyAgApJJHxNGrUSDrflcWAREREZAIKhQLOzs5o1qwZ8vPz5S6nzjI3N6/SlaMiDEhEREQmZGZmVi0f4GRcHKRNREREZIABiYiIiMgAAxIRERGRAQYkIiIiIgMMSEREREQGGJCIiIiIDDAgERERERlgQCIiIiIywIBEREREZIABiYioCm7eBA4eLPxJRHUHAxIRUQVpNBqkp6cjOvoB3NwE+vcH3NwEoqMfID09HRqNRu4SiaiK+F1sREQVoNFoEBsbC63WFjEx4RBCAQDQ6RSYMcMOt25tglr9EGFhYXBwcJC5WiKqLF5BIiKqgLy8PADA/fsOEEL/n1AhlLh/316vHRHVTgxIRESVYG+vgUKh01umUOhgb39fpoqIqDrViIC0evVquLu7w9LSEr6+vjh27Fipbc+ePYuQkBC4u7tDoVAgJiamUvvs168fFAqF3mvSpEnV2S0iqsPU6ocICtojhSSFQoegoD1Qqx/KXBkRVQfZxyBt374dERERWLduHXx9fRETE4PAwECkpqaiWbNmxdrn5OSgdevW+Nvf/obp06dXaZ8TJkzAhx9+KL23trau/g4SUZ3Vs+cptGlzGffv28Pe/j7DEVEdIvsVpGXLlmHChAkYO3YsOnbsiHXr1sHa2hqbNm0qsX2vXr2wZMkSDBs2DBYWFlXap7W1NZycnKSXnZ1dtfePiOo2tfohWrW6xnBEVMfIGpDy8vKQnJyMgIAAaZlSqURAQACSkpKMvs9t27ahSZMm6Ny5MyIjI5GTk1PqfnNzc5GVlaX3IiIiorpJ1lts9+7dQ0FBARwdHfWWOzo64sKFC0bd54gRI+Dm5obmzZvj9OnTeO+995CamoqdO3eWuN+oqCjMnz+/UjURERFR7SL7GCS5TJw4Ufq9S5cucHZ2xoABA3DlyhW0adOmWPvIyEhERERI77OysuDq6mqSWomo5lCpVNXajohqJlkDUpMmTWBmZobMzEy95ZmZmXBycjLpPn19fQEAly9fLjEgWVhYlDrmiYjqDwcHB4SFhZU5z5FKpeIkkUS1nKxjkFQqFby8vJCYmCgt0+l0SExMhJ+fn0n3mZKSAgBwdnau1HGJqP5wcHCAs7NzqS+GI6LaT/ZbbBERERg9ejS8vb3h4+ODmJgYZGdnY+zYsQCAUaNGwcXFBVFRUQAKB2GfO3dO+v3WrVtISUlBw4YN4eHhUa59XrlyBXFxcXj55Zfh4OCA06dPY/r06ejbty+6du0qw1kgIiKimkT2gBQaGoq7d+9i7ty5yMjIQPfu3bFv3z5pkPX169ehVP55oev27dvo0aOH9H7p0qVYunQp/P398dNPP5VrnyqVCgcOHJCCk6urK0JCQjB79mzTdZyIiIhqLIUQQshdRG2UlZUFtVoNrVbL+ZOIiIhqifJ+fss+USQRERFRTcOARERERGSAAYmIiIjIAAMSERERkQEGJCIiIiIDDEhEREREBhiQiIiIiAwwIBEREREZYEAiIiIiMsCARERERGSAAYmIiIjIAAMSERERkQEGJCIiIiIDDEhEREREBhiQiIjqmJs3gYMHC38SUeUwIBER1SEbNwJubkD//oU/N26UuyKi2okBiYjqhfpwVeXmTWDiRECnK3yv0wFvvlm3+0xkLAxIRFRnaTQapKenIzr6AdzcxP+uqghERz9Aeno6NBqN3CVWG41GgyNHNFI4KlJQABw9qqlTfSUyhQZyF0BEZAwajQaxsbHQam0RExMOIRQAAJ1OgRkz7HDr1iao1Q8RFhYGBwcHmautmqf7qlCEQ4g//7+vQqHDoUNbceZM3egrkanwChIR1Ul5eXkAgPv3HfQCAwAIocT9+/Z67Wqzoj6o1Q8RFLQHCkXhZSSFQoegoD1Qqx/qtSOiZ+MVJCKq0+ztNVAodMWuqtjb35exKuPp2fMU2rS5jPv37WFvf18KR0RUMbyCRER12rOuqtRFavVDtGp1rU73kcjYeAWJiOo8XlUhoopiQCKiekGtfshgRETlxltsRERERAYYkIiIiIgMMCARUZ2kUqmqtV1NVp/6SmQqCiGEkLuI2igrKwtqtRparRZ2dnZyl0NEJdBoNGXO/aNSqerMxIn1qa9EVVHez28O0iaiOqs+BYL61FciU+AtNiIiIiIDDEhUZfXhW9KJiKh+YUCiKtm4EXBzw/++Jb3wPRERUW3HgESVdvMmMHEioCv8BgfodMCbb/JKEhER1X4MSFQpGo0GR45opHBUpKAAOHpUA41GI09hRERE1aBGBKTVq1fD3d0dlpaW8PX1xbFjx0pte/bsWYSEhMDd3R0KhQIxMTGV2ueTJ08wefJkODg4oGHDhggJCUFmZmZ1dqvO0mg0iI2NxeHDW6UvAC2iUOhw6NBWxMbGMiQREVGtJXtA2r59OyIiIjBv3jycPHkS3bp1Q2BgIO7cuVNi+5ycHLRu3RqLFi2Ck5NTpfc5ffp07N69GwkJCfj5559x+/ZtDB061Ch9rGuK5lp51reklzUnCxERUU0m+0SRvr6+6NWrF2JjYwEAOp0Orq6umDJlCmbOnFnmtu7u7ggPD0d4eHiF9qnVatG0aVPExcXhtddeAwBcuHABHTp0QFJSEnr37v3MuuvzRJHp6elYv3699F6rtS3xW9InTpwIZ2dnOUokIiIqUXk/v2W9gpSXl4fk5GQEBARIy5RKJQICApCUlGS0fSYnJyM/P1+vTfv27dGyZctSj5ubm4usrCy9FxVSqx+iVatr1f5N6Zw+gIiI5CJrQLp37x4KCgrg6Oiot9zR0REZGRlG22dGRgZUKhUaNWpU7uNGRUVBrVZLL1dX10rVR+XD6QOIiEhOso9Bqi0iIyOh1Wql140bN+QuqU7SaDRITs7ExInCYPoAgeTkTA78JiIik5D1u9iaNGkCMzOzYk+PZWZmljoAuzr26eTkhLy8PDx48EDvKlJZx7WwsICFhUWlaqLyKXo6Li3NHTrdaL11BQUKrFr1PVq1uoawsDB+7xQRERmVrFeQVCoVvLy8kJiYKC3T6XRITEyEn5+f0fbp5eUFc3NzvTapqam4fv16pY9LVVf01Ju9vabE6QPs7e/rtSMiIjIWWa8gAUBERARGjx4Nb29v+Pj4ICYmBtnZ2Rg7diwAYNSoUXBxcUFUVBSAwg/Hc+fOSb/funULKSkpaNiwITw8PMq1T7VajXHjxiEiIgL29vaws7PDlClT4OfnV64n2Oo7lUpVre0MFU0fsHv3EAihLDZ9ABGV7eZN4NIlwNMTaNFC7mqIaifZA1JoaCju3r2LuXPnIiMjA927d8e+ffukQdbXr1+HUvnnha7bt2+jR48e0vulS5di6dKl8Pf3x08//VSufQLA8uXLoVQqERISgtzcXAQGBmLNmjWm6XQt5+DggLCwsDKv5KhUqirdBuvZ8xTatLlc4vQBVH9V9INfo9FIf6e3byuRltYArVr9gebNC69QVvXvtCbauPHPrwBSKoH164Fx4+Suiqj2kX0epNqqPs+DZCyG8yuVhvMr1S9FIScuzgrvvquGTqeAUimweLEWI0Y8LjXkFI1pA4CTJ3sUuyLZs+cpAKgzY9o0Gg2uXv0DPj7NoNMppOVmZgJHj96Bu3uDOtFPoqoq7+e37FeQiIhKUxRytFpbxMSEQ4jCD36dToEZM+xw69YmqNUPSww5RVeOtFpbKRwBgBBK7N49BG3aXIZa/bBOjGnjAw5E1Y+P+RNRjVUUXu7fd5ACThEhlLh/316vXUmetW1dwAcciKofAxIR1XjP+uA31ra1zbO+H5GIyo+32KjGMPbTcVR7VeXJxvr2VCQfcCCqHgxIVGOY4uk4qr2q8sFf30KDWv2wzveRyNgYkKhGYfihslTlg5+hgYgqgmOQiEzk5k3g4MHCn0REVLMxIBEZkUajQXp6OqKjH8DNTaB/f8DNTSA6+gHS09P55btGxDFtRFQVvMVGZCRVmcOHClUl5NSnMW0Mg0TVjwGJyEjKM4dPXZmo0FiqGnLqQvgpj/oUBolMhQGJyMiK5uF5OiTV1Xl4jIEf6uXD80RUvTgGicjIOHkfEVHtwytIRCZQ3+bhISKq7RiQiEyE8/AQEdUevMVGREREZIABiYiIiMgAAxKRkXBumtqDs5yXD88T1Sccg0RkJJybpmbTaDTIy8tDXJwV3n1XDZ1OAaVSYPFiLUaMeMz/bQxs3AhMnAjodIBSCaxfD4wbJ3dVRMajEEIIuYuojbKysqBWq6HVamFnZyd3OURUAcVnOdefoyo8PIaznP+PRqPB1at/wMenGXQ6hbTczEzg6NE7cHdvUO/PEdUu5f385i02Iqp3yjPL+dPt6quiILlq1T69cAQABQUKrFr1PWJjY/mdglQnMSARUb1VNMv50zjL+Z+KAuKzzlN9D5JUNzEgEVG9xVnOy4fnieojDtImonqNs5yXD88T1TcMSEREAADFs5vUc5wNnuoTBiQiqtdOnuyB3buHQAildOuoZ89TcpdFRDLjGCQiqne0Wu3/ftpK4QgofIJt9+4h0Gpt9doRUf3DgERE9U7R9G/Pesyf08QR1V8MSERU7zRq1AjAsx9fL2pXX9Xnr8vh16oQxyARUb1V9Pi64RgkDkQuVN++LodfP0NPY0AionqNj6+Xrb4EguJfP1P4VKNOp8CMGXa4dWsTv36mnmFAIqJ6j4+vU3m+fkatfshZw+sRjkEiIiL6H379DBVhQCIiIvoffq0KFeEtNiKqd+rz01n0bByXRkANCUirV6/GkiVLkJGRgW7dumHVqlXw8fEptX1CQgLmzJmDq1evwtPTE5988glefvllaX1mZibee+89/Pjjj3jw4AH69u2LVatWwdPTU2rTr18//Pzzz3r7ffPNN7Fu3brq7yAR1Sj17eksqjiOSyPZb7Ft374dERERmDdvHk6ePIlu3bohMDAQd+7cKbH94cOHMXz4cIwbNw6nTp1CcHAwgoODcebMGQCFE7sFBwfjt99+w7fffotTp07Bzc0NAQEByM7O1tvXhAkTkJ6eLr0WL15s9P4SUc3g4OAAZ2fnUl8MR0T1m+wBadmyZZgwYQLGjh2Ljh07Yt26dbC2tsamTZtKbL9ixQoMHDgQM2bMQIcOHbBgwQL07NkTsbGxAIBLly7hyJEjWLt2LXr16oV27dph7dq1ePz4Mb788ku9fVlbW8PJyUl62dnZGb2/REREVPPJGpDy8vKQnJyMgIAAaZlSqURAQACSkpJK3CYpKUmvPQAEBgZK7XNzcwEAlpaWevu0sLDAL7/8orfdtm3b0KRJE3Tu3BmRkZHIyckptdbc3FxkZWXpvYiIqG7guDQyJOsYpHv37qGgoACOjo56yx0dHXHhwoUSt8nIyCixfUZGBgCgffv2aNmyJSIjI/Hpp5/CxsYGy5cvx82bN5Geni5tM2LECLi5uaF58+Y4ffo03nvvPaSmpmLnzp0lHjcqKgrz58+vSneJiKiG4rg0MlQjBmlXJ3Nzc+zcuRPjxo2Dvb09zMzMEBAQgEGDBul98eTEiROl37t06QJnZ2cMGDAAV65cQZs2bYrtNzIyEhEREdL7rKwsuLq6GrczRERkMgw/9DRZA1KTJk1gZmaGzMxMveWZmZlwcnIqcRsnJ6dntvfy8kJKSgq0Wi3y8vLQtGlT+Pr6wtvbu9RafH19AQCXL18uMSBZWFjAwsKi3H0jIiKi2kvWMUgqlQpeXl5ITEyUlul0OiQmJsLPz6/Ebfz8/PTaA8D+/ftLbK9Wq9G0aVNcunQJJ06cwKuvvlpqLSkpKQAAZ2fnSvSEiIiI6hLZb7FFRERg9OjR8Pb2ho+PD2JiYpCdnY2xY8cCAEaNGgUXFxdERUUBAKZNmwZ/f39ER0dj8ODBiI+Px4kTJ7B+/XppnwkJCWjatClatmyJX3/9FdOmTUNwcDBeeuklAMCVK1cQFxeHl19+GQ4ODjh9+jSmT5+Ovn37omvXrqY/CURERFSjyB6QQkNDcffuXcydOxcZGRno3r079u3bJw3Evn79OpTKPy909enTB3FxcZg9ezbef/99eHp64ptvvkHnzp2lNunp6YiIiEBmZiacnZ0xatQozJkzR1qvUqlw4MABKYy5uroiJCQEs2fPNl3HiYiIqMZSiKdHLlO5ZWVlQa1WQ6vVcv4kIiKiWqK8n9+yTxRJREREVNMwIBEREREZYEAiIiIiMsCARERERGSAAYmIiIjIAAMSERERkYFKBaSEhAQMHToUnTt3RufOnTF06FB89dVX1V0bERERkSwqFJB0Oh1CQ0MRGhqKc+fOwcPDAx4eHjh79ixCQ0MxbNgwcFolIiIiqu0qNJP2ihUrcODAAezatQtDhgzRW7dr1y6MHTsWK1asQHh4eHXWSERERGRSFbqCtHnzZixZsqRYOAKAV155BYsXL8amTZuqrTgiIiIiOVQoIF26dAkBAQGlrg8ICMClS5eqXBQRERGRnCoUkKysrPDgwYNS12dlZcHS0rKqNREREZXLzZvAwYOFP4mqU4UCkp+fH9auXVvq+tWrV8PPz6/KRREREZVGo9EgPT0d0dEP4OYm0L8/4OYmEB39AOnp6dBoNHKXSHVAhQZpz5o1C/369YNGo8E777yD9u3bQwiB8+fPIzo6Gt9++y0OHjxorFqJiKie02g0iI2NhVZri5iYcAihAADodArMmGGHW7c2Qa1+iLCwMDg4OMhcLdVmFQpIffr0wfbt2zFx4kTs2LFDb13jxo3x5Zdf4rnnnqvWAomIiIrk5eUBAO7fd4AQ+jdBhFDi/n17qNUPpXZElVWhgAQAf/3rXxEYGIgffvhBGpDdtm1bvPTSS7C2tq72AomIiAzZ22ugUOj0QpJCoYO9/X0Zq6K6pEIB6V//+hfCwsJw5MgR/PWvf9Vbp9Vq0alTJ6xbtw4vvPBCtRZJRET0NLX6IYKC9mD37iEQQgmFQoegoD1Qqx/KXRrVERUKSDExMZgwYQLs7OyKrVOr1XjzzTexbNkyBiQiIjK6nj1PoU2by7h/3x729vcZjqhaVSgg/fe//8Unn3xS6vqXXnoJS5curXJRRERE5aFWP6xQMNJoNNL4pNu3lUhLa4BWrf5A8+Y6AIBKpeLgbgJQwYCUmZkJc3Pz0nfWoAHu3r1b5aKIiIiqW9ETcABw8mSPYrfnevY8BQB8Ao4AVHAeJBcXF5w5c6bU9adPn4azs3OViyIiIqpuRVeOtFpbKRwBhU+/7d49BFqtrV47qt8qFJBefvllzJkzB0+ePCm27vHjx5g3b16J39NGRERUHVQqVZXblTVFAFGRCt1imz17Nnbu3Im2bdsiLCwM7dq1AwBcuHABq1evRkFBAWbNmmWUQomIiBwcHBAWFlbmVZ5njSPiFAFUHhUKSI6Ojjh8+DDeeustREZGQggBAFAoFAgMDMTq1avh6OholEKJiIgAVHl8EKcIoPKo8ESRbm5u2Lt3L37//XdcvnwZQgh4enqicePGxqiPiIio2nGKAHqWCgekIo0bN0avXr2qsxYiIiKTqegUAVS/VGiQNhEREVF9wIBERET1QnU8AUf1R6VvsREREdUm1fEEHNUfDEhERFRvMPxQefEWGxEREZEBBiQiIiIiAwxIRERERAYYkIiIiIgM1IiAtHr1ari7u8PS0hK+vr44duxYme0TEhLQvn17WFpaokuXLti7d6/e+szMTIwZMwbNmzeHtbU1Bg4ciEuXLum1efLkCSZPngwHBwc0bNgQISEhyMzMrPa+ERERUe0je0Davn07IiIiMG/ePJw8eRLdunVDYGAg7ty5U2L7w4cPY/jw4Rg3bhxOnTqF4OBgBAcH48yZMwAAIQSCg4Px22+/4dtvv8WpU6fg5uaGgIAAZGdnS/uZPn06du/ejYSEBPz888+4ffs2hg4dapI+ExERUc2mEEXfOCsTX19f9OrVC7GxsQAAnU4HV1dXTJkyBTNnzizWPjQ0FNnZ2dizZ4+0rHfv3ujevTvWrVuHixcvol27djhz5gw6deok7dPJyQkff/wxxo8fD61Wi6ZNmyIuLg6vvfYaAODChQvo0KEDkpKS0Lt372fWnZWVBbVaDa1WCzs7u+o4FURERGRk5f38lvUKUl5eHpKTkxEQECAtUyqVCAgIQFJSUonbJCUl6bUHgMDAQKl9bm4uAMDS0lJvnxYWFvjll18AAMnJycjPz9fbT/v27dGyZctSj5ubm4usrCy9FxEREdVNsgake/fuoaCgAI6OjnrLHR0dkZGRUeI2GRkZZbYvCjqRkZH4/fffkZeXh08++QQ3b95Eenq6tA+VSoVGjRqV+7hRUVFQq9XSy9XVtTJdJiIiolpA9jFI1c3c3Bw7d+7ExYsXYW9vD2traxw8eBCDBg2CUln57kZGRkKr1UqvGzduVGPVREREVJPI+lUjTZo0gZmZWbGnxzIzM+Hk5FTiNk5OTs9s7+XlhZSUFGi1WuTl5aFp06bw9fWFt7e3tI+8vDw8ePBA7ypSWce1sLCAhYVFZbpJREREtYysV5BUKhW8vLyQmJgoLdPpdEhMTISfn1+J2/j5+em1B4D9+/eX2F6tVqNp06a4dOkSTpw4gVdffRVAYYAyNzfX209qaiquX79e6nGJiIio/pD9y2ojIiIwevRoeHt7w8fHBzExMcjOzsbYsWMBAKNGjYKLiwuioqIAANOmTYO/vz+io6MxePBgxMfH48SJE1i/fr20z4SEBDRt2hQtW7bEr7/+imnTpiE4OBgvvfQSgMLgNG7cOERERMDe3h52dnaYMmUK/Pz8yvUEGxEREdVtsgek0NBQ3L17F3PnzkVGRga6d++Offv2SQOxr1+/rjd2qE+fPoiLi8Ps2bPx/vvvw9PTE9988w06d+4stUlPT0dERAQyMzPh7OyMUaNGYc6cOXrHXb58OZRKJUJCQpCbm4vAwECsWbPGNJ0mIiKiGk32eZBqK86DREREVPvUinmQiIiIiGoiBiQiIiIiAwxIRERERAYYkIiIiIgMMCARERERGWBAIiIiIjLAgERERERkgAGJiIiIyAADEhEREZEBBiQiIiIiAwxIRERERAYYkIiIiIgMMCARERERGWBAIiIiIjLAgERERERkgAGJiIiIyAADEhEREZEBBiQiIiIiAwxIRERERAYYkIiIiIgMMCARERERGWBAIiIiIjLAgERERERkgAGJiIiIyAADEhEREZEBBiQiIiIiAwxIRERERAYYkIiIiIgMMCARERERGWBAIiIiIjLAgERERERkgAGJiIiIyAADEhEREZEBBiQiIiIiAzUiIK1evRru7u6wtLSEr68vjh07Vmb7hIQEtG/fHpaWlujSpQv27t2rt/7Ro0cICwtDixYtYGVlhY4dO2LdunV6bfr16weFQqH3mjRpUrX3jYiIiGof2QPS9u3bERERgXnz5uHkyZPo1q0bAgMDcefOnRLbHz58GMOHD8e4ceNw6tQpBAcHIzg4GGfOnJHaREREYN++ffjiiy9w/vx5hIeHIywsDLt27dLb14QJE5Ceni69Fi9ebNS+EhERUe2gEEIIOQvw9fVFr169EBsbCwDQ6XRwdXXFlClTMHPmzGLtQ0NDkZ2djT179kjLevfuje7du0tXiTp37ozQ0FDMmTNHauPl5YVBgwZh4cKFAAqvIHXv3h0xMTGVqjsrKwtqtRparRZ2dnaV2gcRERGZVnk/v2W9gpSXl4fk5GQEBARIy5RKJQICApCUlFTiNklJSXrtASAwMFCvfZ8+fbBr1y7cunULQggcPHgQFy9exEsvvaS33bZt29CkSRN07twZkZGRyMnJqcbeERERUW3VQM6D37t3DwUFBXB0dNRb7ujoiAsXLpS4TUZGRontMzIypPerVq3CxIkT0aJFCzRo0ABKpRIbNmxA3759pTYjRoyAm5sbmjdvjtOnT+O9995Damoqdu7cWeJxc3NzkZubK73PysqqcH+JiIiodpA1IBnLqlWrcOTIEezatQtubm7497//jcmTJ6N58+bS1aeJEydK7bt06QJnZ2cMGDAAV65cQZs2bYrtMyoqCvPnzzdZH4iIiEg+st5ia9KkCczMzJCZmam3PDMzE05OTiVu4+TkVGb7x48f4/3338eyZcsQFBSErl27IiwsDKGhoVi6dGmptfj6+gIALl++XOL6yMhIaLVa6XXjxo1y95OIiIhqF1kDkkqlgpeXFxITE6VlOp0OiYmJ8PPzK3EbPz8/vfYAsH//fql9fn4+8vPzoVTqd83MzAw6na7UWlJSUgAAzs7OJa63sLCAnZ2d3ouIiIjqJtlvsUVERGD06NHw9vaGj48PYmJikJ2djbFjxwIARo0aBRcXF0RFRQEApk2bBn9/f0RHR2Pw4MGIj4/HiRMnsH79egCAnZ0d/P39MWPGDFhZWcHNzQ0///wzPvvsMyxbtgwAcOXKFcTFxeHll1+Gg4MDTp8+jenTp6Nv377o2rWrPCeCiIiIagzZA1JoaCju3r2LuXPnIiMjA927d8e+ffukgdjXr1/XuxrUp08fxMXFYfbs2Xj//ffh6emJb775Bp07d5baxMfHIzIyEq+//jru378PNzc3fPTRR9JEkCqVCgcOHJDCmKurK0JCQjB79mzTdp6IiIhqJNnnQaqtOA8SERFR7VMr5kEiIiIiqokYkIiIiIgMMCARERERGWBAIiIiIjLAgERERERkgAGJiIiIyAADEhEREZEBBiQiIiIiAwxIRERERAYYkIiIiIgMMCARERERGWBAIiIiIjLAgERERERkgAGJiIiIyAADEhEREZEBBiQiIiIiAwxIRERERAYYkIiIiIgMMCARERERGWBAIiIiIjLAgERERERkgAGJiIiIyAADEhEREZEBBiQiIiIiAwxIRERERAYYkIiIiIgMMCARERERGWBAIiIiIjLAgERERERkgAGJiIiIyAADEhEREZEBBiQiIiIiAwxIRERE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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_16.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkgAAAHHCAYAAABEEKc/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABVW0lEQVR4nO3deVhUVeMH8O/MyLAojIHIogiKKK6oqIilmJGjKcWrJS6lmbm8PzGRssTcrTBXDFCzx62FNNPc8qWUVy0VNVEyUxEVXAF1zAFBwZjz+4OXmzMsAjIMy/fzPPPI3Hvuvedcbsy3c889IxNCCBARERGRRG7qChARERFVNwxIRERERAYYkIiIiIgMMCARERERGWBAIiIiIjLAgERERERkgAGJiIiIyAADEhEREZEBBiQiIiIiAwxIREQ12IYNGyCTyZCammrqqhDVKgxIRFSq3377DcHBwWjXrh3q16+PZs2aYejQobhw4UKRsn369IFMJoNMJoNcLoeNjQ1at26NN954A3v37i3XcXft2gU/Pz80btwYVlZWaNGiBYYOHYrY2NjKaloRn3zyCbZv315k+ZEjRzB37lzcu3fPaMc2NHfuXOlcymQyWFlZoW3btpg5cyYyMzMr5RgxMTGIiIiolH0R1TYMSERUqk8//RRbt27FCy+8gBUrVmD8+PH45Zdf0KVLF5w5c6ZI+aZNm+Krr77Cl19+icWLF+Pll1/GkSNH0K9fPwQFBeHRo0dPPOaSJUvw8ssvQyaTISwsDMuXL8eQIUOQnJyMTZs2GaOZAEoPSPPmzavSgFRo1apV+Oqrr7Bs2TJ4enri448/Rv/+/VEZX6PJgERUsnqmrgARVW+hoaGIiYmBUqmUlgUFBaFDhw5YuHAhvv76a73yKpUKr7/+ut6yhQsX4p133sHKlSvh5uaGTz/9tMTj/f3331iwYAFefPFF/Pzzz0XW37p16ylbVH3k5OTAysqq1DKvvvoqGjVqBACYOHEihgwZgm3btuHo0aPw9fWtimoS1UnsQSKiUvXs2VMvHAGAh4cH2rVrh3PnzpVpHwqFAp999hnatm2LqKgoaLXaEsveuXMHmZmZePbZZ4td37hxY733Dx8+xNy5c9GqVStYWFjAyckJgwcPxqVLl6QyS5YsQc+ePWFnZwdLS0t4e3vj+++/19uPTCZDdnY2Nm7cKN3WevPNNzF37lxMmzYNANC8eXNp3eNjfr7++mt4e3vD0tIStra2GDZsGK5du6a3/z59+qB9+/ZISEhA7969YWVlhRkzZpTp/D2ub9++AICUlJRSy61cuRLt2rWDubk5nJ2dMWnSJL0esD59+uDHH3/ElStXpDa5ubmVuz5EtRV7kIio3IQQyMjIQLt27cq8jUKhwPDhwzFr1iwcOnQIAwcOLLZc48aNYWlpiV27dmHy5MmwtbUtcZ/5+fkYNGgQ4uLiMGzYMEyZMgVZWVnYu3cvzpw5A3d3dwDAihUr8PLLL2PkyJHIy8vDpk2b8Nprr2H37t1SPb766iu8/fbb6N69O8aPHw8AcHd3R/369XHhwgV8++23WL58udSbY29vDwD4+OOPMWvWLAwdOhRvv/02bt++jcjISPTu3RunTp1Cw4YNpfpqNBoMGDAAw4YNw+uvvw4HB4cyn79ChcHPzs6uxDJz587FvHnz4O/vj3//+99ISkrCqlWr8Ntvv+Hw4cMwMzPDhx9+CK1Wi+vXr2P58uUAgAYNGpS7PkS1liAiKqevvvpKABBr167VW+7n5yfatWtX4nY//PCDACBWrFhR6v5nz54tAIj69euLAQMGiI8//lgkJCQUKbdu3ToBQCxbtqzIOp1OJ/2ck5Ojty4vL0+0b99e9O3bV295/fr1xejRo4vsa/HixQKASElJ0VuempoqFAqF+Pjjj/WW//HHH6JevXp6y/38/AQAsXr16hLb/bg5c+YIACIpKUncvn1bpKSkiM8//1yYm5sLBwcHkZ2dLYQQYv369Xp1u3XrllAqlaJfv34iPz9f2l9UVJQAINatWyctGzhwoHB1dS1TfYjqGt5iI6JyOX/+PCZNmgRfX1+MHj26XNsW9lBkZWWVWm7evHmIiYlB586d8dNPP+HDDz+Et7c3unTpondbb+vWrWjUqBEmT55cZB8ymUz62dLSUvr5r7/+glarRa9evXDy5Mly1d/Qtm3boNPpMHToUNy5c0d6OTo6wsPDA/v379crb25ujjFjxpTrGK1bt4a9vT2aN2+OCRMmoGXLlvjxxx9LHLu0b98+5OXlISQkBHL5P3/ix40bBxsbG/z444/lbyhRHcRbbERUZunp6Rg4cCBUKhW+//57KBSKcm1///59AIC1tfUTyw4fPhzDhw9HZmYmjh07hg0bNiAmJgYBAQE4c+YMLCwscOnSJbRu3Rr16pX+p2z37t346KOPkJiYiNzcXGn54yGqIpKTkyGEgIeHR7HrzczM9N43adKkyHiuJ9m6dStsbGxgZmaGpk2bSrcNS3LlyhUABcHqcUqlEi1atJDWE1HpGJCIqEy0Wi0GDBiAe/fu4ddff4Wzs3O591E4LUDLli3LvI2NjQ1efPFFvPjiizAzM8PGjRtx7Ngx+Pn5lWn7X3/9FS+//DJ69+6NlStXwsnJCWZmZli/fj1iYmLK3YbH6XQ6yGQy/Oc//yk2LBqO6Xm8J6usevfuLY17IqKqw4BERE/08OFDBAQE4MKFC9i3bx/atm1b7n3k5+cjJiYGVlZWeO655ypUj65du2Ljxo1IS0sDUDCI+tixY3j06FGR3ppCW7duhYWFBX766SeYm5tLy9evX1+kbEk9SiUtd3d3hxACzZs3R6tWrcrbHKNwdXUFACQlJaFFixbS8ry8PKSkpMDf319a9rQ9aES1GccgEVGp8vPzERQUhPj4eGzZsqVCc+/k5+fjnXfewblz5/DOO+/AxsamxLI5OTmIj48vdt1//vMfAP/cPhoyZAju3LmDqKioImXF/yZSVCgUkMlkyM/Pl9alpqYWOyFk/fr1i50Msn79+gBQZN3gwYOhUCgwb968IhM3CiGg0WiKb6QR+fv7Q6lU4rPPPtOr09q1a6HVavWeHqxfv36pUy4Q1WXsQSKiUr377rvYuXMnAgICcPfu3SITQxpOCqnVaqUyOTk5uHjxIrZt24ZLly5h2LBhWLBgQanHy8nJQc+ePdGjRw/0798fLi4uuHfvHrZv345ff/0VgYGB6Ny5MwBg1KhR+PLLLxEaGorjx4+jV69eyM7Oxr59+/B///d/eOWVVzBw4EAsW7YM/fv3x4gRI3Dr1i1ER0ejZcuWOH36tN6xvb29sW/fPixbtgzOzs5o3rw5fHx84O3tDQD48MMPMWzYMJiZmSEgIADu7u746KOPEBYWhtTUVAQGBsLa2hopKSn44YcfMH78eLz33ntPdf7Ly97eHmFhYZg3bx769++Pl19+GUlJSVi5ciW6deum9/vy9vbG5s2bERoaim7duqFBgwYICAio0voSVVumfISOiKq/wsfTS3qVVrZBgwbCw8NDvP766+Lnn38u0/EePXokvvjiCxEYGChcXV2Fubm5sLKyEp07dxaLFy8Wubm5euVzcnLEhx9+KJo3by7MzMyEo6OjePXVV8WlS5ekMmvXrhUeHh7C3NxceHp6ivXr10uP0T/u/Pnzonfv3sLS0lIA0Hvkf8GCBaJJkyZCLpcXeeR/69at4rnnnhP169cX9evXF56enmLSpEkiKSlJ79yUNgWCocL63b59u9Ryho/5F4qKihKenp7CzMxMODg4iH//+9/ir7/+0itz//59MWLECNGwYUMBgI/8Ez1GJkQlfKEPERERUS3CMUhEREREBhiQiIiIiAwwIBEREREZYEAiIiIiMsCARERERGSAAYmIiIjIACeKrCCdToebN2/C2tqa0/UTERHVEEIIZGVlwdnZGXJ5yf1EDEgVdPPmTbi4uJi6GkRERFQB165dQ9OmTUtcz4BUQdbW1gAKTnBp3ytFRERE1UdmZiZcXFykz/GSMCBVUOFtNRsbGwYkIiKiGuZJw2M4SJuIiIjIAAMSERERkQEGJCIiIiIDHINERERUhfLz8/Ho0SNTV6PWMjMzg0KheOr9MCARERFVASEE0tPTce/ePVNXpdZr2LAhHB0dn2qeQgYkIiKiKlAYjho3bgwrKytOMmwEQgjk5OTg1q1bAAAnJ6cK74sBiYiIyMjy8/OlcGRnZ2fq6tRqlpaWAIBbt26hcePGFb7dxkHaRERERlY45sjKysrENakbCs/z04z1YkAiIiKqIrytVjUq4zzzFhtRLabRaJCXl1fieqVSye5+IqJiMCAR1VIajQZRUVFPLBccHMyQRERkgLfYiGqp0nqOKlKOiOqmN998EzKZDDKZDGZmZnBwcMCLL76IdevWQafTlXk/GzZsQMOGDY1X0UrGHiQiIqIawJS3zPv374/169cjPz8fGRkZiI2NxZQpU/D9999j586dqFev9sWJ2tciIiKiWsbUt8zNzc3h6OgIAGjSpAm6dOmCHj164IUXXsCGDRvw9ttvY9myZVi/fj0uX74MW1tbBAQEYNGiRWjQoAEOHDiAMWPGAPhnAPWcOXMwd+5cfPXVV1ixYgWSkpJQv3599O3bFxEREWjcuHGlt6M8eIuNqI7Qaq2RkuIGrdba1FUhonKqjrfM+/btCy8vL2zbtg0AIJfL8dlnn+HPP//Exo0b8d///hfvv/8+AKBnz56IiIiAjY0N0tLSkJaWhvfeew9AwaP4CxYswO+//47t27cjNTUVb775ZpW1oyTsQSKqA06e7IxduwZBCDlkMh0CAnajS5dTpq4WEdVwnp6eOH36NAAgJCREWu7m5oaPPvoIEydOxMqVK6FUKqFSqSCTyaSeqEJvvfWW9HOLFi3w2WefoVu3brh//z4aNGhQJe0oDnuQiGo5rdZaCkcAIIQcu3YNYk8SET01IYR0y2zfvn144YUX0KRJE1hbW+ONN96ARqNBTk5OqftISEhAQEAAmjVrBmtra/j5+QEArl69avT6l4YBiaiWu3vXTgpHhYSQ4+5dWxPViIhqi3PnzqF58+ZITU3FoEGD0LFjR2zduhUJCQmIjo4GUPptv+zsbKjVatjY2OCbb77Bb7/9hh9++OGJ21UF3mIjqqWUSiUAwNZWA5lMpxeSZDIdbG3v6pUjIiqP//73v/jjjz8wdepUJCQkQKfTYenSpZDLC/7WfPfdd3rllUol8vPz9ZadP38eGo0GCxcuhIuLCwDgxIkTVdOAJ2BAIqql7OzsEBwcjLy8PDRpkokPPlAhP18GhULg008zMWLEcM6kTURlkpubi/T0dL3H/MPDwzFo0CCMGjUKZ86cwaNHjxAZGYmAgAAcPnwYq1ev1tuHm5sb7t+/j7i4OHh5ecHKygrNmjWDUqlEZGQkJk6ciDNnzmDBggUmaqU+3mIjqsXs7Ozg5OSEd99tiNRUGfbvB1JTZXj33YZwcnJiOCKiMomNjYWTkxPc3NzQv39/7N+/H5999hl27NgBhUIBLy8vLFu2DJ9++inat2+Pb775BuHh4Xr76NmzJyZOnIigoCDY29tj0aJFsLe3x4YNG7Blyxa0bdsWCxcuxJIlS0zUSn0yIYQwdSVqoszMTKhUKmi1WtjY2Ji6OkREVI09fPgQKSkpaN68OSwsLMq9vannQappSjvfZf38NvkttujoaCxevBjp6enw8vJCZGQkunfvXmzZP//8E7Nnz0ZCQgKuXLmC5cuX6z1WCAC//PILFi9ejISEBKSlpeGHH35AYGCgXhkhBObMmYMvvvgC9+7dw7PPPotVq1bBw8PDSK0kIiKquMdvmZeEt8wrl0lvsW3evBmhoaGYM2cOTp48CS8vL6jVaty6davY8jk5OWjRogUWLlxYZB6FQtnZ2fDy8pJGzxdn0aJF+Oyzz7B69WocO3YM9evXh1qtxsOHDyulXURERJWt8JZ5SS+Go8pl0ltsPj4+6Natm9RtqNPp4OLigsmTJ2P69Omlbuvm5oaQkJAiPUiPk8lkRXqQhBBwdnbGu+++K83iqdVq4eDggA0bNmDYsGFlqjtvsRERUVk97S02Kp/KuMVmsh6kvLw8JCQkwN/f/5/KyOXw9/dHfHy80Y6bkpKC9PR0veOqVCr4+PiUetzc3FxkZmbqvYiIiKh2MllAunPnDvLz8+Hg4KC33MHBAenp6UY7buG+y3vc8PBwqFQq6VU4XwMRERHVPnzMv4zCwsKg1Wql17Vr10xdJSIiIjISkwWkRo0aQaFQICMjQ295RkZGiQOwK0Phvst7XHNzc9jY2Oi9iIiIqHYyWUBSKpXw9vZGXFyctEyn0yEuLg6+vr5GO27z5s3h6Oiod9zMzEwcO3bMqMclIiKimsOk8yCFhoZi9OjR6Nq1K7p3746IiAhkZ2djzJgxAIBRo0ahSZMm0myceXl5OHv2rPTzjRs3kJiYiAYNGqBly5YAgPv37+PixYvSMVJSUpCYmAhbW1s0a9YMMpkMISEh+Oijj+Dh4YHmzZtj1qxZcHZ2LjJfEhEREdVRwsQiIyNFs2bNhFKpFN27dxdHjx6V1vn5+YnRo0dL71NSUgSAIi8/Pz+pzP79+4st8/h+dDqdmDVrlnBwcBDm5ubihRdeEElJSeWqt1arFQCEVqutaNOJiKiOePDggTh79qx48OCBqatS7RR+bv/1119l3sbV1VUsX768xPWlne+yfn6bfJB2cHAwrly5gtzcXBw7dgw+Pj7SugMHDmDDhg3Sezc3NwghirwOHDgglenTp0+xZR7fj0wmw/z585Geno6HDx9i3759aNWqVRW0loiIqGZ58803IZPJMHHixCLrJk2aBJlMhjfffLPqK2ZkJg9IREREVL25uLhg06ZNePDggbTs4cOHiImJQbNmzUxYM+NhQCIiIqJSdenSBS4uLti2bZu0bNu2bWjWrBk6d+4sLcvNzcU777yDxo0bw8LCAs899xx+++03vX3t2bMHrVq1gqWlJZ5//nmkpqYWOd6hQ4fQq1cvWFpawsXFBe+88w6ys7ON1r7iMCARERHVMNevA/v3F/xbVd566y2sX79eer9u3TrpoapC77//PrZu3YqNGzfi5MmTaNmyJdRqNe7evQsAuHbtGgYPHoyAgAAkJibi7bffLvLVYpcuXUL//v0xZMgQnD59Gps3b8ahQ4cQHBxs/EY+hgGJiIioBlm7FnB1Bfr2Lfh37dqqOe7rr7+OQ4cO4cqVK7hy5QoOHz6M119/XVqfnZ2NVatWYfHixRgwYADatm2LL774ApaWllj7v0quWrUK7u7uWLp0KVq3bo2RI0cWGb8UHh6OkSNHIiQkBB4eHujZsyc+++wzfPnll1X6pfImfcyfiIiIyu76dWD8eECnK3iv0wETJgBqNdC0qXGPbW9vj4EDB2LDhg0QQmDgwIFo1KiRtP7SpUt49OgRnn32WWmZmZkZunfvjnPnzgEAzp07p/cwFoAicxD+/vvvOH36NL755htpmRACOp0OKSkpaNOmjTGaVwQDEhERUQ2RnPxPOCqUnw9cvGj8gAQU3GYrvNUVHR1tlGPcv38fEyZMwDvvvFNkXVUOCGdAIiIiqiE8PAC5XD8kKRTA/+ZKNrr+/fsjLy8PMpkMarVab527uzuUSiUOHz4MV1dXAMCjR4/w22+/ISQkBADQpk0b7Ny5U2+7o0eP6r3v0qULzp49K00AbSocg0RERFRDNG0KrFlTEIqAgn8//7xqeo8KjqfAuXPncPbsWSgKK/E/9evXx7///W9MmzYNsbGxOHv2LMaNG4ecnByMHTsWADBx4kQkJydj2rRpSEpKQkxMjN48hQDwwQcf4MiRIwgODkZiYiKSk5OxY8eOKh+kzR4kIiKiGmTs2IIxRxcvFvQcVVU4KlTal7UvXLgQOp0Ob7zxBrKystC1a1f89NNPeOaZZwAU3CLbunUrpk6disjISHTv3h2ffPIJ3nrrLWkfHTt2xMGDB/Hhhx+iV69eEELA3d0dQUFBRm/b42RCCFGlR6wlMjMzoVKpoNVqS71YiIiIHj58iJSUFDRv3hwWFhamrk6tV9r5LuvnN2+xERERERlgQCIiIiIywIBEREREZIABiYiIiMgAAxIREVEV4XNRVaMyzjMDEhERkZGZmZkBAHJyckxck7qh8DwXnveK4DxIRERERqZQKNCwYUPcunULAGBlZQWZTGbiWtU+Qgjk5OTg1q1baNiwYZHJLMuDAYmIiKgKODo6AoAUksh4GjZsKJ3vimJAIiIiqgIymQxOTk5o3LgxHj16ZOrq1FpmZmZP1XNUiAGJiIioCikUikr5ACfj4iBtIiIiIgMMSEREREQGGJCIiIiIDDAgERERERlgQCIiIiIywIBEREREZIABiYiIiMgAAxIRERGRAQYkIiIiIgMMSLXE9evA/v0F/xIREdHTYUCqwTQaDdLS0rB06T24ugr07Qu4ugosXXoPaWlp0Gg0pq4iERFRjcTvYquhNBoNoqKioNVaIyIiBELIAAA6nQzTptngxo11UKmyEBwcDDs7OxPXloiIqGZhD1INlZeXBwC4e9cOQuj/GoWQ4+5dW71yREREVHYMSDWcra0GMplOb5lMpoOt7V0T1YiIiKjmqxYBKTo6Gm5ubrCwsICPjw+OHz9eYtk///wTQ4YMgZubG2QyGSIiIiq0zz59+kAmk+m9Jk6cWJnNqhIqVRYCAnZLIUkm0yEgYDdUqiwT14yIiKjmMvkYpM2bNyM0NBSrV6+Gj48PIiIioFarkZSUhMaNGxcpn5OTgxYtWuC1117D1KlTn2qf48aNw/z586X3VlZWld/AKtClyym4u1/E3bu2sLW9y3BERET0lEzeg7Rs2TKMGzcOY8aMQdu2bbF69WpYWVlh3bp1xZbv1q0bFi9ejGHDhsHc3Pyp9mllZQVHR0fpZWNjU+ntqyoqVRaaN7/CcERERFQJTBqQ8vLykJCQAH9/f2mZXC6Hv78/4uPjjb7Pb775Bo0aNUL79u0RFhaGnJycEvebm5uLzMxMvRcRERHVTia9xXbnzh3k5+fDwcFBb7mDgwPOnz9v1H2OGDECrq6ucHZ2xunTp/HBBx8gKSkJ27ZtK3a/4eHhmDdvXoXqRERERDWLyccgmcr48eOlnzt06AAnJye88MILuHTpEtzd3YuUDwsLQ2hoqPQ+MzMTLi4uVVLX4iiVykotR0RERP8waUBq1KgRFAoFMjIy9JZnZGTA0dGxSvfp4+MDALh48WKxAcnc3LzEMU+mYGdnh+Dg4FLnOVIqlZwkkoiIqAJMOgZJqVTC29sbcXFx0jKdToe4uDj4+vpW6T4TExMBAE5OThU6rinY2dnBycmpxBfDERERUcWY/BZbaGgoRo8eja5du6J79+6IiIhAdnY2xowZAwAYNWoUmjRpgvDwcAAFg7DPnj0r/Xzjxg0kJiaiQYMGaNmyZZn2eenSJcTExOCll16CnZ0dTp8+jalTp6J3797o2LGjCc4CERERVScmD0hBQUG4ffs2Zs+ejfT0dHTq1AmxsbHSIOurV69CLv+no+vmzZvo3Lmz9H7JkiVYsmQJ/Pz8cODAgTLtU6lUYt++fVJwcnFxwZAhQzBz5syqazgRERFVWzIhhDB1JWqizMxMqFQqaLXaGj1/EhERUV1S1s9vk08USURERFTdMCARERERGWBAIiIiIjLAgERERERkgAGJiIiIyAADEhEREZEBBiQiIiIiAwxIRERERAYYkIiIiIgMMCARERERGWBAIiIiIjLAgERERERkgAGJiIiIyAADEhEREZEBBiQqt+vXgf37C/4lIiKqjRiQqFzWrgVcXYG+fQv+XbvW1DUiIiKqfAxIVGbXrwPjxwM6XcF7nQ6YMIE9SbUZewuJqK5iQKIy0Wg0OHpUI4WjQvn5wLFjGmg0GtNUjCqdRqNBWloali69B1dX8b/eQoGlS+8hLS2Nv2siqhPqmboCVP1pNBpERUVBq7WGTBYCIf7J1TKZDocPb8SZM1kIDg6GnZ2dCWtKT+vx33VERAiEkAEAdDoZpk2zwY0b66BS8XdNRLUfe5DoifLy8gAAKlUWAgJ2QyYr6EaSyXQICNgNlSpLrxzVXIW/w7t37fSCMAAIIcfdu7Z65YiIaiv2IFG5dOlyCu7uF3H3ri1sbe9K4YhqF1tbDWQyXZHeQlvbuyasFRFR1WEPEpWbSpWF5s2vMBzVYk/qLSQiqu3Yg0RExWJvIRHVZQxIRFQilSqLwYiI6iTeYiMiIiIywIBEREREZIABiZ5IqVRWajmqvvi7JiIqIBNCCFNXoibKzMyESqWCVquFjY2NqatjdBqNptS5b5RKJScOrCX4uyai2qysn98cpE1lwg/EuoO/ayIi3mIjIiIiKoIBiYiIiKqV69eB/fsL/jUVBiQiIiKqNtauBVxdgb59C/5du9Y09WBAIiIiomrh+nVg/HhAV/AtR9DpgAkTTNOTxIBEREREJqfRaHD0qEYKR4Xy84FjxzTQaDRVWp9qEZCio6Ph5uYGCwsL+Pj44Pjx4yWW/fPPPzFkyBC4ublBJpMhIiKiQvt8+PAhJk2aBDs7OzRo0ABDhgxBRkZGZTaLiIiIykCj0SAqKgpHjmyUviS7kEymw+HDGxEVFVWlIcnkAWnz5s0IDQ3FnDlzcPLkSXh5eUGtVuPWrVvFls/JyUGLFi2wcOFCODo6VnifU6dOxa5du7BlyxYcPHgQN2/exODBg43SRiIiIipZ4dxrKlUWAgJ2SyFJJtMhIGC39J2Qpc3RVtlMPlGkj48PunXrhqioKACATqeDi4sLJk+ejOnTp5e6rZubG0JCQhASElKufWq1Wtjb2yMmJgavvvoqAOD8+fNo06YN4uPj0aNHjyfWu65NFElERGQsaWlpWLNmjfReq7XG3bu2sLW9q/eF2ePHj4eTk9NTHausn98m7UHKy8tDQkIC/P39pWVyuRz+/v6Ij4832j4TEhLw6NEjvTKenp5o1qxZicfNzc1FZmam3ouIiIiMRWbSo5t0Ju07d+4gPz8fDg4OessdHBxw/vx5o+0zPT0dSqUSDRs2LFImPT292P2Gh4dj3rx5FaoTERERlc3Jk52xa9cgCCGXbrF16XKqyuth8jFINUVYWBi0Wq30unbtmqmrREREVKtotdZSOAIAIeTYtWsQtFrrKq+LSQNSo0aNoFAoijw9lpGRUeIA7MrYp6OjI/Ly8nDv3r0yH9fc3Bw2NjZ6LyIiInp6hZ/Hd+/aSeGokBBy3L1rq1euKpg0ICmVSnh7eyMuLk5aptPpEBcXB19fX6Pt09vbG2ZmZnplkpKScPXq1Qofl4iIiCrm77//BgDY2mqKfczf1vauXrmqYNIxSAAQGhqK0aNHo2vXrujevTsiIiKQnZ2NMWPGAABGjRqFJk2aIDw8HEDBIOyzZ89KP9+4cQOJiYlo0KABWrZsWaZ9qlQqjB07FqGhobC1tYWNjQ0mT54MX1/fMj3BRmRK168DycmAhwfQtKmpa0NE9PTMzMwA/POYv+EYpMIn2QrLVQWTB6SgoCDcvn0bs2fPRnp6Ojp16oTY2FhpkPXVq1chl//T0XXz5k107txZer9kyRIsWbIEfn5+OHDgQJn2CQDLly+HXC7HkCFDkJubC7VajZUrV1ZNo4kqaO3af6bhl8uBNWuAsWNNXSuqTBqNRprr5eZNOVJS6qF587/h7Fzwf9VKpRJ2dnaVflwGbzIllUol/dylyym4u18s9jH/x8sZm8nnQaqpOA8SVSWNRoPU1L/RvXtj6HT/PPqqUAgcO3YLbm71jPKhSVWrcDZhoPQneYKDgyvl910YxmJiLPH++yrodDLI5QKLFmkxYsQDo4UxIkOG8yCVpCrnQTJ5DxIRla7wQzMlxQ063Wi9dfn5MkRG/gfNm1+ptA9NMp3CnqOSnuRxd78IlSqrUmYTLryutFprRESEQIiC4K3TyTBtmg1u3FgHlSqL1xXVWXzMn6iaK/wwfNLgxaqcgp+M60lP8lSGwuvlScfidUV1FQMSUQ3xpO8ootrjSWG4ph6LqCbhLTaiGqS0wYtUezzpSZ6aeiyikiiVykotVxkYkIhqGJUqix9edUBVhmEGbzI1Ozs7BAcHl3pLt6ofGmBAIiKqpqoyDDN4k6lVt4cBOAaJiIiIjOb6dWD//oJ/axIGJCKiaqI6jsMgqgiNRoO0tDQsXXoPrq4CffsCrq4CS5feQ1paGjQajamr+ES8xUZUzfFDs+6oynEYvK7IWGrLHFsMSETVXHUcvEjGU1W/R15XZCxlmWOrsiY8NSYGJKIagB9SZAy8rsiYCufYejwk1aQ5tjgGiYiIiCpdTZ/clj1IREREZBQ1eY4tBiQiIiIympo6xxZvsREREREZYEAiIiIiMsCARFRH1NTZbKl24vVYe9WWObY4BomoDli7Fhg/HtDpALkcWLMGGDvW1LWiukaj0SAvLw8xMZZ4/30VdDoZ5HKBRYu0GDHiAeddqiVqyxxbMiGEMHUlaqLMzEyoVCpotVrY2NiYujpExdJoNEhN/RvduzeGTieTlisUAseO3YKbW71q/0eKaoeisyvrz40TEhJRI2ZXppqvrJ/fvMVGVEsVfiBFRsbqhSMAyM+XITLyP4iKiqoR34lENV9ZZld+vByRqTEgEdVShR80hbPZPu7x2Wz5gURV6UnXI1F1wYBEVMvV9NlsqXbh9Ug1BQdpE9UBNXk2W6p9eD1STcCARFRH1NTZbKl2qsrr8fp1IDkZ8PAAmjatkkNSLcBbbEREVOtoNBqkpaVh6dJ7cHUV6NsXcHUVWLr0HtLS0vhwAj0Re5CIiKhWKTqlQMFTnDqdDNOm2eDGjXWcUoCeiD1IRERkdFU5uzKnFKDKwB6kaob3yqmy1Jbp/ql2MMXsyoVTChhOSskpBagsGJCqAU6/T8ZQW6b7p9qjqq+1wikFdu0aBCHknFKAyoUBycR4r5yMidcM1XWcUoAqigHJxMpyr1ylyuK9ciKiCuIUF1QRHKRdTXD6fSIiouqDAama4PT7RERE1QdvsVUjvFdORPT0+AQnVYZqEZCio6OxePFipKenw8vLC5GRkejevXuJ5bds2YJZs2YhNTUVHh4e+PTTT/HSSy9J6zMyMvDBBx/g559/xr1799C7d29ERkbCw8NDKtOnTx8cPHhQb78TJkzA6tWrK7+B5cB75URET4dPcFJlMPktts2bNyM0NBRz5szByZMn4eXlBbVajVu3bhVb/siRIxg+fDjGjh2LU6dOITAwEIGBgThz5gwAQAiBwMBAXL58GTt27MCpU6fg6uoKf39/ZGdn6+1r3LhxSEtLk16LFi0yenuJiMj47Ozs4OTkVOKL4YiexOQBadmyZRg3bhzGjBmDtm3bYvXq1bCyssK6deuKLb9ixQr0798f06ZNQ5s2bbBgwQJ06dIFUVFRAIDk5GQcPXoUq1atQrdu3dC6dWusWrUKDx48wLfffqu3LysrKzg6OkovGxsbo7eXiIiIqj+TBqS8vDwkJCTA399fWiaXy+Hv74/4+Phit4mPj9crDwBqtVoqn5ubCwCwsLDQ26e5uTkOHTqkt90333yDRo0aoX379ggLC0NOTk6Jdc3NzUVmZqbeqzLwXjkREVH1Y9IxSHfu3EF+fj4cHBz0ljs4OOD8+fPFbpOenl5s+fT0dACAp6cnmjVrhrCwMHz++eeoX78+li9fjuvXryMtLU3aZsSIEXB1dYWzszNOnz6NDz74AElJSdi2bVuxxw0PD8e8efOeprnF4r1yIiKi6qdaDNKuTGZmZti2bRvGjh0LW1tbKBQK+Pv7Y8CAARBCSOXGjx8v/dyhQwc4OTnhhRdewKVLl+Du7l5kv2FhYQgNDZXeZ2ZmwsXFpVLqzPBDRERUvZg0IDVq1AgKhQIZGRl6yzMyMuDo6FjsNo6Ojk8s7+3tjcTERGi1WuTl5cHe3h4+Pj7o2rVriXXx8fEBAFy8eLHYgGRubg5zc/Myt42IiIhqLpOOQVIqlfD29kZcXJy0TKfTIS4uDr6+vsVu4+vrq1ceAPbu3VtseZVKBXt7eyQnJ+PEiRN45ZVXSqxLYmIiAMDJyakCLSEiIqLaxOS32EJDQzF69Gh07doV3bt3R0REBLKzszFmzBgAwKhRo9CkSROEh4cDAKZMmQI/Pz8sXboUAwcOxKZNm3DixAmsWbNG2ueWLVtgb2+PZs2a4Y8//sCUKVMQGBiIfv36AQAuXbqEmJgYvPTSS7Czs8Pp06cxdepU9O7dGx07dqz6k0BERETViskDUlBQEG7fvo3Zs2cjPT0dnTp1QmxsrDQQ++rVq5DL/+no6tmzJ2JiYjBz5kzMmDEDHh4e2L59O9q3by+VSUtLQ2hoKDIyMuDk5IRRo0Zh1qxZ0nqlUol9+/ZJYczFxQVDhgzBzJkzq67hREREVG3JxOMjl6nMMjMzoVKpoNVqOX8SERFRDVHWz2+TTxRJREREVN0wIBEREREZYEAiIiIiMsCARERERGSAAYmIiIjIAAMSERERkYEKBaQtW7Zg8ODBaN++Pdq3b4/Bgwfj+++/r+y6EREREZlEuQKSTqdDUFAQgoKCcPbsWbRs2RItW7bEn3/+iaCgIAwbNgycVomIiIhqunLNpL1ixQrs27cPO3fuxKBBg/TW7dy5E2PGjMGKFSsQEhJSmXUkIiIiqlLl6kFav349Fi9eXCQcAcDLL7+MRYsWYd26dZVWOSIiIiJTKFdASk5Ohr+/f4nr/f39kZyc/NSVIiIiIjKlcgUkS0tL3Lt3r8T1mZmZsLCweNo6EVEddf06sH9/wb9ERKZUroDk6+uLVatWlbg+Ojoavr6+T10pIqo7NBoN0tLSsHTpPbi6CvTtC7i6Cixdeg9paWnQaDSmriIR1UHlGqT94Ycfok+fPtBoNHjvvffg6ekJIQTOnTuHpUuXYseOHdi/f7+x6kpEtYxGo0FUVBS0WmtERIRACBkAQKeTYdo0G9y4sQ4qVRaCg4NhZ2dn4toSUV1SroDUs2dPbN68GePHj8fWrVv11j3zzDP49ttv8eyzz1ZqBYmo9srLywMA3L1rByH0O7SFkOPuXVuoVFlSOSKiqlKugAQA//rXv6BWq/HTTz9JA7JbtWqFfv36wcrKqtIrSES1n62tBjKZTi8kyWQ62NreNWGtiKguK1dA+u9//4vg4GAcPXoU//rXv/TWabVatGvXDqtXr0avXr0qtZJEVLupVFkICNiNXbsGQQg5ZDIdAgJ2Q6XKMnXViKiOKldAioiIwLhx42BjY1NknUqlwoQJE7Bs2TIGJCIqty5dTsHd/SLu3rWFre1dhiMiMqlyBaTff/8dn376aYnr+/XrhyVLljx1pYjIdDQajTTm5+ZNOVJS6qF587/h7KwDACiVSqMNmFapshiMiKhaKFdAysjIgJmZWck7q1cPt2/ffupKEZFpFD5VBgAnT3YucsurS5dTAMCnyoio1ivXPEhNmjTBmTNnSlx/+vRpODk5PXWliMg0CnuOtFprKRwBBU+U7do1CFqttV45IqLaqlwB6aWXXsKsWbPw8OHDIusePHiAOXPmFPs9bURUs5T22H1lUiqVlVqOiKiylOsW28yZM7Ft2za0atUKwcHBaN26NQDg/PnziI6ORn5+Pj788EOjVJSIqk5VPXZvZ2eH4ODgUnukjDnmiYioJOUKSA4ODjhy5Aj+/e9/IywsDEIIAIBMJoNarUZ0dDQcHByMUlEiqjpV+dg9ww8RVUflnijS1dUVe/bswV9//YWLFy9CCAEPDw8888wzxqgfEZkIH7snorqs3AGp0DPPPINu3bpVZl2IqJrhY/dEVFeVa5A2ERERUV3AgEREEj5VRkRUoMK32Iio9uFTZUREBRiQiEgPww8REW+xERERERXBgERERERkgAGJiIiIyAADEhEREZGBahGQoqOj4ebmBgsLC/j4+OD48eOllt+yZQs8PT1hYWGBDh06YM+ePXrrMzIy8Oabb8LZ2RlWVlbo378/kpOT9co8fPgQkyZNgp2dHRo0aIAhQ4YgIyOj0ttGRERENY/JA9LmzZsRGhqKOXPm4OTJk/Dy8oJarcatW7eKLX/kyBEMHz4cY8eOxalTpxAYGIjAwECcOXMGACCEQGBgIC5fvowdO3bg1KlTcHV1hb+/P7Kzs6X9TJ06Fbt27cKWLVtw8OBB3Lx5E4MHD66SNhMREVH1JhOF3zhrIj4+PujWrRuioqIAADqdDi4uLpg8eTKmT59epHxQUBCys7Oxe/duaVmPHj3QqVMnrF69GhcuXEDr1q1x5swZtGvXTtqno6MjPvnkE7z99tvQarWwt7dHTEwMXn31VQDA+fPn0aZNG8THx6NHjx5PrHdmZiZUKhW0Wi1sbGwq41QQERGRkZX189ukPUh5eXlISEiAv7+/tEwul8Pf3x/x8fHFbhMfH69XHgDUarVUPjc3FwBgYWGht09zc3McOnQIAJCQkIBHjx7p7cfT0xPNmjUr8bi5ubnIzMzUexEREVHtZNKAdOfOHeTn58PBwUFvuYODA9LT04vdJj09vdTyhUEnLCwMf/31F/Ly8vDpp5/i+vXrSEtLk/ahVCrRsGHDMh83PDwcKpVKerm4uFSkyURERFQDmHwMUmUzMzPDtm3bcOHCBdja2sLKygr79+/HgAEDIJdXvLlhYWHQarXS69q1a5VYayIiIqpOTPpVI40aNYJCoSjy9FhGRgYcHR2L3cbR0fGJ5b29vZGYmAitVou8vDzY29vDx8cHXbt2lfaRl5eHe/fu6fUilXZcc3NzmJubV6SZREREVMOYtAdJqVTC29sbcXFx0jKdToe4uDj4+voWu42vr69eeQDYu3dvseVVKhXs7e2RnJyMEydO4JVXXgFQEKDMzMz09pOUlISrV6+WeFwiIiKqO0z+ZbWhoaEYPXo0unbtiu7duyMiIgLZ2dkYM2YMAGDUqFFo0qQJwsPDAQBTpkyBn58fli5dioEDB2LTpk04ceIE1qxZI+1zy5YtsLe3R7NmzfDHH39gypQpCAwMRL9+/QAUBKexY8ciNDQUtra2sLGxweTJk+Hr61umJ9iIiIiodjN5QAoKCsLt27cxe/ZspKeno1OnToiNjZUGYl+9elVv7FDPnj0RExODmTNnYsaMGfDw8MD27dvRvn17qUxaWhpCQ0ORkZEBJycnjBo1CrNmzdI77vLlyyGXyzFkyBDk5uZCrVZj5cqVVdNoIiIiqtZMPg9STcV5kIiIiGqeGjEPEhEREVF1xIBEREREZIABiYiIiMgAAxIRERGRAQYkIiIiIgMMSEREREQGGJCIiIiIDDAgERERERlgQCIiIiIywIBEREREZIABiYiIiMgAAxIRERGRAQYkIiIiIgMMSEREREQGGJCIiIiIDDAgERERERlgQCIiIiIywIBEREREZIABiYiIiMgAAxIRERGRAQYkIiIiIgMMSEREREQGGJCIiIiIDDAgERERERlgQCIiIiIywIBEREREZIABiYiIiMgAAxIRERGRAQYkIiIiIgMMSEREREQGGJCIiIiIDDAgERERERlgQCIiIiIywIBEREREZKBaBKTo6Gi4ubnBwsICPj4+OH78eKnlt2zZAk9PT1hYWKBDhw7Ys2eP3vr79+8jODgYTZs2haWlJdq2bYvVq1frlenTpw9kMpnea+LEiZXeNiIiIqp5TB6QNm/ejNDQUMyZMwcnT56El5cX1Go1bt26VWz5I0eOYPjw4Rg7dixOnTqFwMBABAYG4syZM1KZ0NBQxMbG4uuvv8a5c+cQEhKC4OBg7Ny5U29f48aNQ1pamvRatGiRUdtKRERENYNMCCFMWQEfHx9069YNUVFRAACdTgcXFxdMnjwZ06dPL1I+KCgI2dnZ2L17t7SsR48e6NSpk9RL1L59ewQFBWHWrFlSGW9vbwwYMAAfffQRgIIepE6dOiEiIqJC9c7MzIRKpYJWq4WNjU2F9kFERERVq6yf3ybtQcrLy0NCQgL8/f2lZXK5HP7+/oiPjy92m/j4eL3yAKBWq/XK9+zZEzt37sSNGzcghMD+/ftx4cIF9OvXT2+7b775Bo0aNUL79u0RFhaGnJycSmwdERER1VT1THnwO3fuID8/Hw4ODnrLHRwccP78+WK3SU9PL7Z8enq69D4yMhLjx49H06ZNUa9ePcjlcnzxxRfo3bu3VGbEiBFwdXWFs7MzTp8+jQ8++ABJSUnYtm1bscfNzc1Fbm6u9D4zM7Pc7SUiIqKawaQByVgiIyNx9OhR7Ny5E66urvjll18wadIkODs7S71P48ePl8p36NABTk5OeOGFF3Dp0iW4u7sX2Wd4eDjmzZtXZW0gIiIi0zHpLbZGjRpBoVAgIyNDb3lGRgYcHR2L3cbR0bHU8g8ePMCMGTOwbNkyBAQEoGPHjggODkZQUBCWLFlSYl18fHwAABcvXix2fVhYGLRarfS6du1amdtJRERENYtJA5JSqYS3tzfi4uKkZTqdDnFxcfD19S12G19fX73yALB3716p/KNHj/Do0SPI5fpNUygU0Ol0JdYlMTERAODk5FTsenNzc9jY2Oi9iIiIqHYy+S220NBQjB49Gl27dkX37t0RERGB7OxsjBkzBgAwatQoNGnSBOHh4QCAKVOmwM/PD0uXLsXAgQOxadMmnDhxAmvWrAEA2NjYwM/PD9OmTYOlpSVcXV1x8OBBfPnll1i2bBkA4NKlS4iJicFLL70EOzs7nD59GlOnTkXv3r3RsWNH05wIIiIiqjZMHpCCgoJw+/ZtzJ49G+np6ejUqRNiY2OlgdhXr17V6w3q2bMnYmJiMHPmTMyYMQMeHh7Yvn072rdvL5XZtGkTwsLCMHLkSNy9exeurq74+OOPpYkglUol9u3bJ4UxFxcXDBkyBDNnzqzaxhMREVG1ZPJ5kGoqzoNERERU89SIeZCIiIiIqiMGJCIiIiIDDEhEREREBhiQiIiIiAwwIBEREREZYEAiIiIiMsCARERERGSAAYmIiIjIAAMSERERkQEGJCIiIiIDDEhEREREBhiQiIiIiAwwIBEREREZYEAiIiIiMsCARERERGSAAYmIiIjIAAMSERERkQEGJCIiIiIDDEhEREREBhiQiIiIiAwwIBEREREZYEAiIiIiMsCARERERGSAAYmIiIjIAAMSERERkQEGJCIiIiIDDEhEREREBhiQiIiIiAwwIBEREREZYEAiIiIiMsCARERERGSAAYmIiIjIAAMSERERkQEGJCIiIiIDDEhEREREBqpFQIqOjoabmxssLCzg4+OD48ePl1p+y5Yt8PT0hIWFBTp06IA9e/borb9//z6Cg4PRtGlTWFpaom3btli9erVemYcPH2LSpEmws7NDgwYNMGTIEGRkZFR624iIiKjmMXlA2rx5M0JDQzFnzhycPHkSXl5eUKvVuHXrVrHljxw5guHDh2Ps2LE4deoUAgMDERgYiDNnzkhlQkNDERsbi6+//hrnzp1DSEgIgoODsXPnTqnM1KlTsWvXLmzZsgUHDx7EzZs3MXjwYKO3l4iIiKo/mRBCmLICPj4+6NatG6KiogAAOp0OLi4umDx5MqZPn16kfFBQELKzs7F7925pWY8ePdCpUyepl6h9+/YICgrCrFmzpDLe3t4YMGAAPvroI2i1Wtjb2yMmJgavvvoqAOD8+fNo06YN4uPj0aNHjyfWOzMzEyqVClqtFjY2Nk91DoiIiKhqlPXz26Q9SHl5eUhISIC/v7+0TC6Xw9/fH/Hx8cVuEx8fr1ceANRqtV75nj17YufOnbhx4waEENi/fz8uXLiAfv36AQASEhLw6NEjvf14enqiWbNmJR43NzcXmZmZei8iIiKqnUwakO7cuYP8/Hw4ODjoLXdwcEB6enqx26Snpz+xfGRkJNq2bYumTZtCqVSif//+iI6ORu/evaV9KJVKNGzYsMzHDQ8Ph0qlkl4uLi7lbS4RERHVECYfg2QMkZGROHr0KHbu3ImEhAQsXboUkyZNwr59+yq8z7CwMGi1Wul17dq1SqwxERERVSf1THnwRo0aQaFQFHl6LCMjA46OjsVu4+joWGr5Bw8eYMaMGfjhhx8wcOBAAEDHjh2RmJiIJUuWwN/fH46OjsjLy8O9e/f0epFKO665uTnMzc0r2lQiIiKqQUzag6RUKuHt7Y24uDhpmU6nQ1xcHHx9fYvdxtfXV688AOzdu1cq/+jRIzx69AhyuX7TFAoFdDodgIIB22ZmZnr7SUpKwtWrV0s8LhERERmPRqNBWlpaiS+NRlOl9TFpDxJQ8Ej+6NGj0bVrV3Tv3h0RERHIzs7GmDFjAACjRo1CkyZNEB4eDgCYMmUK/Pz8sHTpUgwcOBCbNm3CiRMnsGbNGgCAjY0N/Pz8MG3aNFhaWsLV1RUHDx7El19+iWXLlgEAVCoVxo4di9DQUNja2sLGxgaTJ0+Gr69vmZ5gIyIiosqj0Wikp9lLExwcDDs7uyqoUTUISEFBQbh9+zZmz56N9PR0dOrUCbGxsdJA7KtXr+r1BvXs2RMxMTGYOXMmZsyYAQ8PD2zfvh3t27eXymzatAlhYWEYOXIk7t69C1dXV3z88ceYOHGiVGb58uWQy+UYMmQIcnNzoVarsXLlyqprOBEREQEoeKq9MstVBpPPg1RTcR4kIiKiypGWlibdCSrN+PHj4eTk9FTHqhHzIBERERFVRwxIRERERAYYkIiIiIgMMCARERFRtaLVWiMlxQ1arbXJ6mDyp9iIiIiICp082Rm7dg2CEHLIZDoEBOxGly6nqrwe7EEiIiIik1IqlQAKeo4KwxEACCHHrl2DpJ6kwnJVgY/5VxAf8yciIqo8Go0G+/cDr71WdCLI77/XoE8fVMokkWX9/OYtNiIiIjI5Ozs79OgByOXA/74ZDACgUAA+Pnaoogm0JbzFRkRERNVC06bAmjUFoQgo+PfzzwuWVzX2IBEREVG1MXYsoFYDFy8CLVuaJhwBDEhERERUzTRtarpgVIi32IiIiIgMMCARERERGWBAIiIiIjLAgERERERkgIO0iYiIqFgajQZ5eXklrlcqlZUyeWN1xIBERERERWg0GkRFRT2xXHBwcK0MSbzFRkREREWU1nNUkXI1DQMSERERkQEGJCIiIiIDHINERETlUpcH7lLdwYBERERlVtcH7lLdwVtsRERUZnV94C7VHQxIRERERAYYkIiIiKgIpVJZqeVqGo5BIiIioiLs7OwQHBws3S69eVOOlJR6aN78bzg76wDU7gH5DEhERERUrMLws3YtMH48oNMBcjmwZg0wdqyJK2dkvMVGREREJbp+/Z9wBBT8O2FCwfLajAGJiIiISpSc/E84KpSfD1y8aJr6VBUGJCIiKjPDAblarTVSUtyg1VqXWo5qLg+Pgttqj1MogJYtTVOfqsIxSEREVGaPD9yNibHE/Pkq6HQyyOUCixZpMWLEg1o9cLcuatq0YMzRhAkFPUcKBfD55wXLazOZEEKYuhI1UWZmJlQqFbRaLWxsbExdHSKiKnX9OuDqqn/rRaEAUlNr/wdnXXX9esFttZYta/bvuKyf3+xBIiKicittXEpN/vCkkjVtWrd+txyDRERE5VZXx6VQ3VEtAlJ0dDTc3NxgYWEBHx8fHD9+vNTyW7ZsgaenJywsLNChQwfs2bNHb71MJiv2tXjxYqmMm5tbkfULFy40SvuIiGqbwnEpCkXB+7KMS9FoNEhLSyvxpdFoqqbyRGVg8ltsmzdvRmhoKFavXg0fHx9ERERArVYjKSkJjRs3LlL+yJEjGD58OMLDwzFo0CDExMQgMDAQJ0+eRPv27QEAaWlpetv85z//wdixYzFkyBC95fPnz8e4ceOk99bW+k9hEBFRycaOBdTqso1L0Wg0iIqKeuI+g4ODOcCbqgWTD9L28fFBt27dpP9wdDodXFxcMHnyZEyfPr1I+aCgIGRnZ2P37t3Ssh49eqBTp05YvXp1sccIDAxEVlYW4uLipGVubm4ICQlBSEhIherNQdpERGWXlpaGNWvWPLHc+PHj4eTkVAU1orqqrJ/fJr3FlpeXh4SEBPj7+0vL5HI5/P39ER8fX+w28fHxeuUBQK1Wl1g+IyMDP/74I8YWMyf6woULYWdnh86dO2Px4sX4+++/S6xrbm4uMjMz9V5ERERUO5n0FtudO3eQn58PBwcHveUODg44f/58sdukp6cXWz49Pb3Y8hs3boS1tTUGDx6st/ydd95Bly5dYGtriyNHjiAsLAxpaWlYtmxZsfsJDw/HvHnzyto0IiIiqsFMPgbJ2NatW4eRI0fCwsJCb3loaKj0c8eOHaFUKjFhwgSEh4fD3Ny8yH7CwsL0tsnMzISLi4vxKk5EREQmY9KA1KhRIygUCmRkZOgtz8jIgKOjY7HbODo6lrn8r7/+iqSkJGzevPmJdfHx8cHff/+N1NRUtG7dush6c3PzYoMTERER1T4mHYOkVCrh7e2tN3hap9MhLi4Ovr6+xW7j6+urVx4A9u7dW2z5tWvXwtvbG15eXk+sS2JiIuRyebFPzhEREVHdYvJbbKGhoRg9ejS6du2K7t27IyIiAtnZ2RgzZgwAYNSoUWjSpAnCw8MBAFOmTIGfnx+WLl2KgQMHYtOmTThx4kSRpyMyMzOxZcsWLF26tMgx4+PjcezYMTz//POwtrZGfHw8pk6ditdffx3PPPOM8RtNRERE1ZrJA1JQUBBu376N2bNnIz09HZ06dUJsbKw0EPvq1auQPzZda8+ePRETE4OZM2dixowZ8PDwwPbt26U5kApt2rQJQggMHz68yDHNzc2xadMmzJ07F7m5uWjevDmmTp2qN8aIiIgqj1Kp1Huv1Vrj7l072NpqoFJllViOyFRMPg9STcV5kIiIykej0SAvLw8xMZZ4/30VdDoZ5HKBRYu0GDHiAZRKJSeJJKMr6+c3A1IFMSAREZXf9euAq6v+F90qFEBqat36IlQynRoxUSQREdUtycn64QgA8vMLvq6EqDphQCIioirj4QHIDT55FIqC73Ijqk4YkIiIqMo0bQqsWVMQioCCfz//nLfXqPox+VNsRERUt4wdC6jVBbfVWrZkOKLqiQGJiIiqXNOmDEZUvfEWGxEREZEBBiQiIiIiAwxIRERERAYYkIiIiIgMMCARERERGWBAIiIiIjLAgERERERkgAGJiIiIyAADEhEREZEBBiQiIiIiAwxIRERERAb4XWwVJIQAAGRmZpq4JkRERFRWhZ/bhZ/jJWFAqqCsrCwAgIuLi4lrQkREROWVlZUFlUpV4nqZeFKEomLpdDrcvHkT1tbWkMlkT7WvzMxMuLi44Nq1a7CxsamkGtYsPAc8BwDPAcBzAPAc1PX2A8Y9B0IIZGVlwdnZGXJ5ySON2INUQXK5HE2bNq3UfdrY2NTZ/xgK8RzwHAA8BwDPAcBzUNfbDxjvHJTWc1SIg7SJiIiIDDAgERERERlgQKoGzM3NMWfOHJibm5u6KibDc8BzAPAcADwHAM9BXW8/UD3OAQdpExERERlgDxIRERGRAQYkIiIiIgMMSEREREQGGJCIiIiIDDAgGUl0dDTc3NxgYWEBHx8fHD9+vNTyERERaN26NSwtLeHi4oKpU6fi4cOH0vq5c+dCJpPpvTw9PY3djAorT/sfPXqE+fPnw93dHRYWFvDy8kJsbOxT7bM6qOxzUNOugV9++QUBAQFwdnaGTCbD9u3bn7jNgQMH0KVLF5ibm6Nly5bYsGFDkTI16Towxjmo7ddBWloaRowYgVatWkEulyMkJKTYclu2bIGnpycsLCzQoUMH7Nmzp/IrX0mMcQ42bNhQ5DqwsLAwTgMqQXnPwbZt2/Diiy/C3t4eNjY28PX1xU8//VSknDH/HjAgGcHmzZsRGhqKOXPm4OTJk/Dy8oJarcatW7eKLR8TE4Pp06djzpw5OHfuHNauXYvNmzdjxowZeuXatWuHtLQ06XXo0KGqaE65lbf9M2fOxOeff47IyEicPXsWEydOxL/+9S+cOnWqwvs0NWOcA6DmXAMAkJ2dDS8vL0RHR5epfEpKCgYOHIjnn38eiYmJCAkJwdtvv633R7GmXQfGOAdA7b4OcnNzYW9vj5kzZ8LLy6vYMkeOHMHw4cMxduxYnDp1CoGBgQgMDMSZM2cqs+qVxhjnACiYZfrx6+DKlSuVVeVKV95z8Msvv+DFF1/Enj17kJCQgOeffx4BAQFV+7kgqNJ1795dTJo0SXqfn58vnJ2dRXh4eLHlJ02aJPr27au3LDQ0VDz77LPS+zlz5ggvLy+j1Leylbf9Tk5OIioqSm/Z4MGDxciRIyu8T1MzxjmoSdeAIQDihx9+KLXM+++/L9q1a6e3LCgoSKjVaul9TbsOHldZ56C2XweP8/PzE1OmTCmyfOjQoWLgwIF6y3x8fMSECROesobGV1nnYP369UKlUlVavapSec9BobZt24p58+ZJ743994A9SJUsLy8PCQkJ8Pf3l5bJ5XL4+/sjPj6+2G169uyJhIQEqWvw8uXL2LNnD1566SW9csnJyXB2dkaLFi0wcuRIXL161XgNqaCKtD83N7dI17ClpaX0f8UV2acpGeMcFKoJ10BFxcfH650zAFCr1dI5q2nXQUU86RwUqs3XQVmU9TzVdvfv34erqytcXFzwyiuv4M8//zR1lYxGp9MhKysLtra2AKrm7wEDUiW7c+cO8vPz4eDgoLfcwcEB6enpxW4zYsQIzJ8/H8899xzMzMzg7u6OPn366N1i8/HxwYYNGxAbG4tVq1YhJSUFvXr1QlZWllHbU14Vab9arcayZcuQnJwMnU6HvXv3Ytu2bUhLS6vwPk3JGOcAqDnXQEWlp6cXe84yMzPx4MGDGncdVMSTzgFQ+6+DsijpPNWW66AsWrdujXXr1mHHjh34+uuvodPp0LNnT1y/ft3UVTOKJUuW4P79+xg6dCiAqvlcYECqBg4cOIBPPvkEK1euxMmTJ7Ft2zb8+OOPWLBggVRmwIABeO2119CxY0eo1Wrs2bMH9+7dw3fffWfCmleOFStWwMPDA56enlAqlQgODsaYMWMgl9edy7Ms56A2XwNUdrwOCAB8fX0xatQodOrUCX5+fti2bRvs7e3x+eefm7pqlS4mJgbz5s3Dd999h8aNG1fZcevOJ1AVadSoERQKBTIyMvSWZ2RkwNHRsdhtZs2ahTfeeANvv/02OnTogH/961/45JNPEB4eDp1OV+w2DRs2RKtWrXDx4sVKb8PTqEj77e3tsX37dmRnZ+PKlSs4f/48GjRogBYtWlR4n6ZkjHNQnOp6DVSUo6NjsefMxsYGlpaWNe46qIgnnYPi1LbroCxKOk+15TqoCDMzM3Tu3LnWXQebNm3C22+/je+++07vdlpV/D1gQKpkSqUS3t7eiIuLk5bpdDrExcXB19e32G1ycnKK9JYoFAoAgCjhq/Lu37+PS5cuwcnJqZJqXjkq0v5CFhYWaNKkCf7++29s3boVr7zyylPv0xSMcQ6KU12vgYry9fXVO2cAsHfvXumc1bTroCKedA6KU9uug7KoyHmq7fLz8/HHH3/Uquvg22+/xZgxY/Dtt99i4MCBeuuq5O9BpQz1Jj2bNm0S5ubmYsOGDeLs2bNi/PjxomHDhiI9PV0IIcQbb7whpk+fLpWfM2eOsLa2Ft9++624fPmy+Pnnn4W7u7sYOnSoVObdd98VBw4cECkpKeLw4cPC399fNGrUSNy6davK2/ck5W3/0aNHxdatW8WlS5fEL7/8Ivr27SuaN28u/vrrrzLvs7oxxjmoSdeAEEJkZWWJU6dOiVOnTgkAYtmyZeLUqVPiypUrQgghpk+fLt544w2p/OXLl4WVlZWYNm2aOHfunIiOjhYKhULExsZKZWradWCMc1DbrwMhhFTe29tbjBgxQpw6dUr8+eef0vrDhw+LevXqiSVLlohz586JOXPmCDMzM/HHH39UadvKyhjnYN68eeKnn34Sly5dEgkJCWLYsGHCwsJCr0x1Ut5z8M0334h69eqJ6OhokZaWJr3u3bsnlTH23wMGJCOJjIwUzZo1E0qlUnTv3l0cPXpUWufn5ydGjx4tvX/06JGYO3eucHd3FxYWFsLFxUX83//9n96HY1BQkHBychJKpVI0adJEBAUFiYsXL1Zhi8qnPO0/cOCAaNOmjTA3Nxd2dnbijTfeEDdu3CjXPqujyj4HNe0a2L9/vwBQ5FXY7tGjRws/P78i23Tq1EkolUrRokULsX79+iL7rUnXgTHOQV24Door7+rqqlfmu+++E61atRJKpVK0a9dO/Pjjj1XToAowxjkICQmR/jtwcHAQL730kjh58mTVNaqcynsO/Pz8Si1fyJh/D2RClHAPh4iIiKiO4hgkIiIiIgMMSEREREQGGJCIiIiIDDAgERERERlgQCIiIiIywIBEREREZIABiYiIiMgAAxIRUS1x4MAByGQy3Lt3z9RVIarxGJCIqNzefPNNyGQyLFy4UG/59u3bIZPJpPdCCHzxxRfw9fWFjY0NGjRogHbt2mHKlCll/lLNnJwchIWFwd3dHRYWFrC3t4efnx927NghlXFzc0NERESltM3YCs+dTCaDmZkZmjdvjvfffx8PHz4s13769OmDkJAQvWU9e/ZEWloaVCpVJdaYqG5iQCKiCrGwsMCnn36Kv/76q9j1QgiMGDEC77zzDl566SX8/PPPOHv2LNauXQsLCwt89NFHZTrOxIkTsW3bNkRGRuL8+fOIjY3Fq6++Co1GU5nNqVL9+/dHWloaLl++jOXLl+Pzzz/HnDlznnq/SqUSjo6OeiGViCqo0r60hIjqjNGjR4tBgwYJT09PMW3aNGn5Dz/8IAr/rHz77bcCgNixY0ex+9DpdGU6lkqlEhs2bChxfXHf2VTo119/Fc8995ywsLAQTZs2FZMnTxb379+X1n/55ZfC29tbNGjQQDg4OIjhw4eLjIwMaX3h90fFxsaKTp06CQsLC/H888+LjIwMsWfPHuHp6Smsra3F8OHDRXZ2dpnaM3r0aPHKK6/oLRs8eLDo3Lmz9P7OnTti2LBhwtnZWVhaWor27duLmJgYvX0YtjklJUWq7+Pf4/j999+Ltm3bCqVSKVxdXcWSJUvKVE+iuo49SERUIQqFAp988gkiIyNx/fr1Iuu//fZbtG7dGi+//HKx25e1l8PR0RF79uxBVlZWseu3bduGpk2bYv78+UhLS0NaWhoA4NKlS+jfvz+GDBmC06dPY/PmzTh06BCCg4OlbR89eoQFCxbg999/x/bt25Gamoo333yzyDHmzp2LqKgoHDlyBNeuXcPQoUMRERGBmJgY/Pjjj/j5558RGRlZpvYYOnPmDI4cOQKlUikte/jwIby9vfHjjz/izJkzGD9+PN544w0cP34cALBixQr4+vpi3LhxUptdXFyK7DshIQFDhw7FsGHD8Mcff2Du3LmYNWsWNmzYUKG6EtUppk5oRFTzPN4L0qNHD/HWW28JIfR7kDw9PcXLL7+st92UKVNE/fr1Rf369UWTJk3KdKyDBw+Kpk2bCjMzM9G1a1cREhIiDh06pFfG1dVVLF++XG/Z2LFjxfjx4/WW/frrr0Iul4sHDx4Ue6zffvtNABBZWVlCiH96kPbt2yeVCQ8PFwDEpUuXpGUTJkwQarW6TO0ZPXq0UCgUon79+sLc3FwAEHK5XHz//felbjdw4EDx7rvvSu/9/PzElClT9MoY9iCNGDFCvPjii3plpk2bJtq2bVumuhLVZexBIqKn8umnn2Ljxo04d+7cE8t++OGHSExMxOzZs3H//v0y7b937964fPky4uLi8Oqrr+LPP/9Er169sGDBglK3+/3337FhwwY0aNBAeqnVauh0OqSkpAAo6GEJCAhAs2bNYG1tDT8/PwDA1atX9fbVsWNH6WcHBwdYWVmhRYsWestu3bpVpvYAwPPPP4/ExEQcO3YMo0ePxpgxYzBkyBBpfX5+PhYsWIAOHTrA1tYWDRo0wE8//VSkXk9y7tw5PPvss3rLnn32WSQnJyM/P79c+yKqaxiQiOip9O7dG2q1GmFhYXrLPTw8kJSUpLfM3t4eLVu2ROPGjct1DDMzM/Tq1QsffPABfv75Z8yfPx8LFixAXl5eidvcv38fEyZMQGJiovT6/fffkZycDHd3d2RnZ0OtVsPGxgbffPMNfvvtN/zwww8AUGS/ZmZm0s+FT589TiaTQafTlbk99evXR8uWLeHl5YV169bh2LFjWLt2rbR+8eLFWLFiBT744APs378fiYmJUKvVpbaXiCpXPVNXgIhqvoULF6JTp05o3bq1tGz48OEYMWIEduzYgVdeeaVSj9e2bVv8/fffePjwIZRKJZRKZZEekS5duuDs2bNo2bJlsfv4448/oNFosHDhQmn8zokTJyq1nmUhl8sxY8YMhIaGYsSIEbC0tMThw4fxyiuv4PXXXwcA6HQ6XLhwAW3btpW2K67Nhtq0aYPDhw/rLTt8+DBatWoFhUJR+Y0hqkXYg0RET61Dhw4YOXIkPvvsM2nZsGHD8Oqrr2LYsGGYP38+jh07htTUVBw8eBCbN28u8wd0nz598PnnnyMhIQGpqanYs2cPZsyYgeeffx42NjYACuZB+uWXX3Djxg3cuXMHAPDBBx/gyJEjCA4ORmJiIpKTk7Fjxw5pkHazZs2gVCoRGRmJy5cvY+fOnU+8bWcsr732GhQKBaKjowEU9L7t3bsXR44cwblz5zBhwgRkZGTobePm5iad0zt37hTbg/Xuu+8iLi4OCxYswIULF7Bx40ZERUXhvffeq5J2EdVkDEhEVCnmz5+v9yEtk8mwefNmREREYM+ePXjhhRfQunVrvPXWW3BxccGhQ4fKtF+1Wo2NGzeiX79+aNOmDSZPngy1Wo3vvvtO79ipqalwd3eHvb09gIJxQwcPHsSFCxfQq1cvdO7cGbNnz4azszOAgtt9GzZswJYtW9C2bVssXLgQS5YsqcQzUnb16tVDcHAwFi1ahOzsbMycORNdunSBWq1Gnz594OjoiMDAQL1t3nvvPSgUCrRt2xb29vbFjk/q0qULvvvuO2zatAnt27fH7NmzMX/+/GKf1CMifTIhhDB1JYiIiIiqE/YgERERERlgQCIik3r8MXzD16+//mrq6pXL1atXS21PeR/TJyLT4S02IjKp0r60tkmTJrC0tKzC2jydv//+G6mpqSWud3NzQ716fHiYqCZgQCIiIiIywFtsRERERAYYkIiIiIgMMCARERERGWBAIiIiIjLAgERERERkgAGJiIiIyAADEhEREZEBBiQiIiIiA/8PIALA0zF657wAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_17.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_18.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_19.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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fPGFnn32WUlSx44dlZqaqpCQEGVkZCgjI0PPPPOMpAuXqk+YMEH/93//p48++kgHDx7UoEGDPHYeJWEEyEMcjmCtWtVbhnEhcxqGj1at6q3Y2H2MBAEAKp0WLVpo586dkqSRI0e6tsfExGjixIkaNmyY3njjDVmtVtlsNlksFtdIUqFHH33U9femTZvq9ddfV7t27XTmzBnVqlXLI+dRHEaAPCQrK8wVfgoZho+yskK9VBEAAMUzDMM1pbVu3TrdcccdatiwoYKDg9W/f3/Z7XadO3euxGNs3bpVSUlJaty4sYKDg9W1a1dJ0uHDhyu8/ishAHlIaKhdFov7inqLxanQ0CwvVQQAQPF2796tJk2a6ODBg+rdu7datmyp5cuXa+vWrZo9e7akkqflzp49qx49eigkJERLlizRli1b9OGHH17xc55CAKpgVqtVkmSz5SgpabUrBFksTiUlrXZNfxW2AwDA27744gt9++23uv/++7V161Y5nU7NmDFDt956q6677jr99NNPbu2tVqsKCgrctv3www+y2+2aPHmyOnfurBYtWrgeZFoZsAaogoWFhSk5OdmVdseOPamDB2soJuZXRUa2k9SOO0EDALwmNzdXmZmZbpfBp6SkqHfv3howYIB27dql/Px8zZo1S0lJSdq4caPefPNNt2PExMTozJkzSk9PV6tWrVSzZk01btxYVqtVs2bN0rBhw7Rr1y5NmDDBS2dZFCNAHhAWFqaIiAhFREQoLi5c998fpri4cNc2wg8AwFvWrFmjiIgIxcTEqGfPnlq/fr1ef/11/f3vf5evr69atWqlmTNnasqUKbr55pu1ZMkSpaSkuB2jY8eOGjZsmPr27at69epp6tSpqlevnhYsWKD3339fN954oyZPnqzp06d76SyLshiGYXi7iMomOztbNptNDodDISEh3i4HAFCJnT9/XgcOHFCTJk0UEBBQ5s97+z5AVU1J/V2W399MgQEA4EWXLpW4HJZKlD8CEAAAXka48TzWAAEAANMhAAEAANMhAAEAANMhAAEAANMhAAEAANMhAAEAANMhAAEAANMhAAEAgAqxYcMGWSwWnT59utSfiYmJUWpqaoXVVIgABACASQ0aNEgWi0XDhg0rsm/48OGyWCwaNGiQ5wvzAAIQAAAmFhUVpWXLlumXX35xbTt//ryWLl2qxo0be7GyikUAAgDAxNq2bauoqCitWLHCtW3FihVq3Lix2rRp49qWm5urESNGqH79+goICFCnTp20ZcsWt2N98sknuu666xQYGKjbb79dBw8eLPJ9X375pTp37qzAwEBFRUVpxIgROnv2bIWdX3EIQAAAVCJHj0rr11/401MeffRRzZ8/3/V+3rx5Gjx4sFubZ599VsuXL9fChQu1bds2NWvWTD169FBWVpYk6ciRI7rvvvuUlJSkHTt2aMiQIXr++efdjrF//3717NlT999/v3bu3Kn33ntPX375pZKTkyv+JC9BAAIAoJJ45x0pOlrq3v3Cn++845nvfeSRR/Tll1/q0KFDOnTokDZu3KhHHnnEtf/s2bOaM2eOpk2bprvvvls33nij5s6dq8DAQL3z3yLnzJmj2NhYzZgxQ9dff70efvjhIuuHUlJS9PDDD2vkyJFq3ry5OnbsqNdff13vvvuuzp8/75mT/S+eBg8AQCVw9Kg0dKjkdF5473RKf/qT1KOH1KhRxX53vXr11KtXLy1YsECGYahXr16qW7eua//+/fuVn5+v2267zbXNz89P7du31+7duyVJu3fvVkJCgttxO3To4Pb+//7v/7Rz504tWbLEtc0wDDmdTh04cEA33HBDRZzeZRGAAACoBPbu/S38FCookPbtq/gAJF2YBiucipo9e3aFfMeZM2f0pz/9SSNGjCiyz9MLrglAKNHRoxf+o2ze3DP/AQKAWTVvLvn4uIcgX1+pWTPPfH/Pnj2Vl5cni8WiHj16uO2LjY2V1WrVxo0bFR0dLUnKz8/Xli1bNHLkSEnSDTfcoJUrV7p97uuvv3Z737ZtW33//fdq5qmTKgFrgFCE3W5XRkaGZsw4reho479z0YZmzDitjIwM2e12b5cIANVOo0bS229fCD3ShT/festz/+fT19dXu3fv1vfffy/fwiL+KygoSE888YRGjx6tNWvW6Pvvv9fjjz+uc+fO6bHHHpMkDRs2THv37tXo0aO1Z88eLV26VAsWLHA7znPPPaevvvpKycnJ2rFjh/bu3au///3vXlkEzQgQ3NjtdqWlpcnhCFZq6kgZhkWS5HRaNHp0iI4dmyebLUfJyckKCwvzcrUAUL089tiFNT/79l0Y+fH0yHtISEix+yZPniyn06n+/fsrJydH8fHxWrt2rerUqSPpwhTW8uXL9Ze//EWzZs1S+/bt9corr+jRRx91HaNly5b6xz/+oRdeeEGdO3eWYRiKjY1V3759K/zcLmUxDMPw+LdWctnZ2bLZbHI4HCX+MFRHGRkZevvtt3XgQIwWLhxYZP/AgQvUpMkhDR06VBEREV6oEAAql/Pnz+vAgQNq0qSJAgICvF1OtVdSf5fl9zdTYLis0FC7LBb31XgWi1OhoVleqggAgPJDAMJl2Ww5Skpa7QpBFotTSUmrZbPleLkyAACuHWuAUKy2bbcrNnafsrJCFRqaRfgBAFQbBCCUyGbLqZDgw+X1AABvYgoMHsPl9QCqM64p8ozy6mdGgOARXF4PoLry8/OTJJ07d06BgYFerqb6O3funKTf+v1qEYDgxmq1lmu7Qnl5eZKkrKwwGYb7wKNh+CgrK1Q2W46rHQBUFb6+vqpdu7ZOnDghSapZs6YsFouXq6p+DMPQuXPndOLECdWuXbvIzRrLigAEN2FhYUpOTi4xiFit1qsepSm8vP7iEMTl9QCqugYNGkiSKwSh4tSuXdvV39eCAIQiKnIKqvDy+lWresswfLi8HkC1YLFYFBERofr16ys/P9/b5VRbfn5+1zzyU4gABI/j8noA1ZWvr2+5/YJGxSIAwSsq6vJ6AABKg8vgAQCA6RCAAACA6VSKADR79mzFxMQoICBACQkJ2rx5c7FtV6xYofj4eNWuXVtBQUFq3bq1Fi1a5Nqfn5+v5557TrfccouCgoIUGRmpAQMG6KeffvLEqaAYFXV5PQAAV8NiePnWle+9954GDBigN998UwkJCUpNTdX777+vPXv2qH79+kXab9iwQT///LNatGghq9Wq1atX6+mnn9bHH3+sHj16yOFw6IEHHtDjjz+uVq1a6eeff9af//xnFRQU6N///nepasrOzpbNZpPD4VBISEh5n7Jp2e32Cru8HgCAsvz+9noASkhIULt27ZSWliZJcjqdioqK0lNPPaXnn3++VMdo27atevXqpQkTJlx2/5YtW9S+fXsdOnRIjRs3vuLxCEAAAFQ9Zfn97dUpsLy8PG3dulWJiYmubT4+PkpMTNSmTZuu+HnDMJSenq49e/aoS5cuxbZzOByyWCyqXbv2Zffn5uYqOzvb7QUAAKovrwagU6dOqaCgQOHh4W7bw8PDlZmZWeznHA6HatWqJavVql69emnWrFm68847L9v2/Pnzeu6559SvX79i02BKSopsNpvrFRUVdfUnBQAAKr1KsQi6rIKDg7Vjxw5t2bJFkyZN0qhRo7Rhw4Yi7fLz8/Xggw/KMAzNmTOn2OONGTNGDofD9Tpy5EgFVg8AALzNqzdCrFu3rnx9fXX8+HG37cePHy/xOR8+Pj5q1qyZJKl169bavXu3UlJS1K1bN1ebwvBz6NAhffHFFyXOBfr7+8vf3//aTgYAAFQZXh0BslqtiouLU3p6umub0+lUenq6OnToUOrjOJ1O5ebmut4Xhp+9e/dq3bp1XFkEAADceP1RGKNGjdLAgQMVHx+v9u3bKzU1VWfPntXgwYMlSQMGDFDDhg2VkpIi6cJ6nfj4eMXGxio3N1effPKJFi1a5Jriys/P1wMPPKBt27Zp9erVKigocK0nCg0N5T4zAADA+wGob9++OnnypMaOHavMzEy1bt1aa9ascS2MPnz4sHx8fhuoOnv2rJ588kkdPXpUgYGBatGihRYvXqy+fftKko4dO6aVK1dKujA9drH169e7TZMBAABz8vp9gCoj7gOEsjp6VNq7V2reXGrUyNvVAIA5VZn7AAFVmd1uV0ZGhmbMOK3oaEPdu0vR0YZmzDitjIwM2e12b5cIACiG16fAgKrIbrcrLS1NDkewUlNHyjAskiSn06LRo0N07Ng82Ww5Sk5OZhE+AFRCjAABV6HwmWZZWWEyDPf/jAzDR1lZoW7tAACVCwEIuAahoXZZLE63bRaLU6GhWV6qCABQGgQg4BrYbDlKSlrtCkEWi1NJSatls+V4uTIAQElYAwRco7Zttys2dp+yskIVGppF+AGAKoAABJQDmy2H4AMAVQhTYAAAwHQIQAAAwHQIQMBVKO0z5Xj2HABUTqwBAq5CWFiYkpOTS7zPj9Vq5SaIAFBJEYCAq0S4AYCqiykwAABgOgQgAABgOgQgAABgOgQgAABgOgQgAABgOgQgAABgOgQgAABgOgQgAABgOgQgAABgOgQgAABgOgQgAABgOgQgAABgOgQgAABgOgQgAABgOgQgAABgOgQgAABgOgQgAABgOgQgAABgOgQgAJXC0aPS+vUX/gSAikYAAuA1drtdGRkZmjHjtKKjDXXvLkVHG5ox47QyMjJkt9u9XSKAaqqGtwsAYE52u11paWlyOIKVmjpShmGRJDmdFo0eHaJjx+bJZstRcnKywsLCvFwtgOqGESAAXpGXlydJysoKk2G4/1NkGD7Kygp1a1cSps8AlBUBCIBXhYbaZbE43bZZLE6FhmaV+DmmzwBcC6bAAHiVzZajpKTVWrWqtwzDRxaLU0lJq2Wz5RT7GabPAFwrAhAAr2vbdrtiY/cpKytUoaFZJYYfqXTTZzZbTqmmzwCYEwEIQKVgs+VcMfhcqnD67OIQVJrpMwBgDRCAKstmy1HLljslGf/dYqhly51lDlIAzIcABKDKOX36tCTJ4QjWzp0tJVn+u8einTtbyuEIdmsHAJciAAHwCqvVetXtfv31V0lXvoS+sB0AXIo1QAC8IiwsTMnJySUuVLZarSVexVXRa4COHpX27pWaN5caNSqXQwKoJAhAALzmWi9Rv5pL6EvrnXekoUMlp1Py8ZHeflt67LFrPiyASoIABKDK8fPzc/29pEvoL25XWna7XQcP/qqhQ+vL6Sy8v5D0pz8Zat36hGJianBvIaAaIAABqHJsNtsl7y9/Cf2l7a6k8AaLBw7EyOkc6LavoMCiWbM+VZMmh7jBIlANEIAAVFunTp3STz/56MCBGmrS5FdFRl545EZxa4sK1yNdaW0RN1gEqj4CEIBq68UXD2jlypt04YJXp/r0Wa22bbdLUomjOBW5tghA5UAAAlDllOYSeocjWCtX9tZvd/vw0cqVvRUbu082W45OnjxZ4jRWWR/PAaBqIQABqHJKuoR+7969Wr9+vY4ciVLRW5356MiRRrLZdis/P/+K33M1j+cAUDUQgABUScWN3pw6dcrDlQCoirgTNIBqKSrqiH57RtgFFotTUVFHvVMQgEqFAASgWrLZctSnzypZLBeu/GIhM4CLMQUGoNoq60Lma3k+GYCqhQAEoFory0Lm8ng+GYCqgQAEoFqpUaN0/6wV145wA5gDa4AAVCv169cv13YAqidGgABUK0xjASiNSjECNHv2bMXExCggIEAJCQnavHlzsW1XrFih+Ph41a5dW0FBQWrdurUWLVrk1sYwDI0dO1YREREKDAxUYmKi9u7dW9GnAaCSCAsLU0RERLEvwg8Arweg9957T6NGjdK4ceO0bds2tWrVSj169NCJEycu2z40NFQvvPCCNm3apJ07d2rw4MEaPHiw1q5d62ozdepUvf7663rzzTf1zTffKCgoSD169ND58+c9dVoAAKASsxiGYVy5WcVJSEhQu3btlJaWJklyOp2KiorSU089peeff75Ux2jbtq169eqlCRMmyDAMRUZG6umnn9YzzzwjSXI4HAoPD9eCBQv00EMPXfF42dnZstlscjgcCgkJufqTAwAAHlOW399eHQHKy8vT1q1blZiY6Nrm4+OjxMREbdq06YqfNwxD6enp2rNnj7p06SJJOnDggDIzM92OabPZlJCQUOwxc3NzlZ2d7fYCAADVl1cD0KlTp1RQUKDw8HC37eHh4crMzCz2cw6HQ7Vq1ZLValWvXr00a9Ys3XnnnZLk+lxZjpmSkiKbzeZ6RUVFXctpAQCASs7ra4CuRnBwsHbs2KEtW7Zo0qRJGjVqlDZs2HDVxxszZowcDofrdeTIkfIrFgAAVDpevQy+bt268vX11fHjx922Hz9+XA0aNCj2cz4+PmrWrJkkqXXr1tq9e7dSUlLUrVs31+eOHz+uiIgIt2O2bt36ssfz9/eXv7//NZ4NAACoKrw6AmS1WhUXF6f09HTXNqfTqfT0dHXo0KHUx3E6ncrNzZUkNWnSRA0aNHA7ZnZ2tr755psyHRMAAFRfXr8R4qhRozRw4EDFx8erffv2Sk1N1dmzZzV48GBJ0oABA9SwYUOlpKRIurBeJz4+XrGxscrNzdUnn3yiRYsWac6cOZIki8WikSNHauLEiWrevLmaNGmil156SZGRkbr33nu9dZoAAKAS8XoA6tu3r06ePKmxY8cqMzNTrVu31po1a1yLmA8fPiwfn98Gqs6ePasnn3xSR48eVWBgoFq0aKHFixerb9++rjbPPvuszp49q6FDh+r06dPq1KmT1qxZo4CAAI+fHwAAqHy8fh+gyoj7AAEAUPVUmfsAAQDK5uhRaf36C38CuHoEIACo5Ox2uzIyMjRjxmlFRxvq3l2KjjY0Y8ZpZWRkyG63e7tEoMrx+hogAEDx7Ha70tLS5HAEKzV1pAzDIklyOi0aPTpEx47Nk82Wo+TkZB7yCpQBI0AAUInl5eVJkrKywmQY7v9kG4aPsrJC3doBKB0CEABUAaGhdknu16xYLE6FhmZ5pyCgiiMAAUAldvr06YveuQegi6/hdW8H4EoIQABQif3666+SLkyBFf0n+7cpsMJ2AEqHAAQAVUBoqF0Wi9NtG1NgwNUjAAFAFWCz5SgpabUrBFksTiUlrZbNluPlyoCqicvgAaCKaNt2u2Jj9ykrK1ShoVmEH+AaEIAAoBLz8/Nze2+z5Vw2+FzaDkDJmAIDgErMZrOVazsAFxCAAACA6RCAAKASs1qt5doOwAWsAQKASiwsLEzJycklPurCarXyHDCgjAhAAFDJEW6A8scUGAAAMB0CEAAAMB0CEAAAMB0CEAAAMB0CEAAAMB0CEABAR49K69df+BMwAwIQAJiU3W5XRkaGZsw4rehoQ927S9HRhmbMOK2MjAzZ7XZvlwhUGO4DBAAmZLfblZaWJocjWKmpI2UYFkmS02nR6NEhOnZsnmy2HCUnJ3MfIlRLjAABgAkV3lk6KytMhuH+q8AwfJSVFerWDqhuCEAAYGKhoXZZLE63bRaLU6GhWV6qCPAMAhAAmJjNlqOkpNWuEGSxOJWUtFo2W46XKwMqFmuAAMDk2rbdrtjYfcrKClVoaBbhB6ZAAAIAyGbLIfjAVJgCAwAApkMAAgAApkMAAgATslqt5doOqGpYAwQAJhQWFqbk5OQS7/NjtVq5CSKqLQIQAJgU4QZmxhQYAAAwHQIQAAAwHQIQAAAwHQIQAAAwHQIQAAAwHQIQAAAwHQIQAAAwHQIQAAAwnTIHoE8++URDhgzRs88+qx9++MFt388//6zu3buXW3EAAAAVoUwBaOnSperTp48yMzO1adMmtWnTRkuWLHHtz8vL0z/+8Y9yLxIAAKA8lelRGNOmTdPMmTM1YsQISdL/+3//T48++qjOnz+vxx57rEIKBAAAKG9lCkB79+5VUlKS6/2DDz6oevXqqU+fPsrPz9fvf//7ci8QAACgvJUpAIWEhOj48eNq0qSJa9vtt9+u1atXq3fv3jp69Gi5FwgAAFDeyrQGqH379vr000+LbO/atatWrVql1NTU8qoLAACgwpQpAP3lL39RQEDAZfd169ZNq1at0oABA8qlMAAAgIpiMQzDKG3j7OzsUrULCQm56oIqg+zsbNlsNjkcjip/LgAAmEVZfn+XaQ1Q7dq1ZbFYrtiuoKCgLIcFAADwqDIFoPXr17v+bhiGfve73+mvf/2rGjZsWO6FAQAAVJQyBaCuXbu6vff19dWtt96qpk2blmtRAAAAFYlngQEAANMhAAEAANO55gBUmkXRAAAAlUmZ1gDdd999bu/Pnz+vYcOGKSgoyG37ihUrSn3M2bNna9q0acrMzFSrVq00a9YstW/f/rJt586dq3fffVe7du2SJMXFxemVV15xa3/mzBk9//zz+uijj2S329WkSRONGDFCw4YNK3VNAADvsNvtysvLK3a/1WpVWFiYBytCdVWmAGSz2dzeP/LII9f05e+9955GjRqlN998UwkJCUpNTVWPHj20Z88e1a9fv0j7DRs2qF+/furYsaMCAgI0ZcoU3XXXXfruu+9cV6KNGjVKX3zxhRYvXqyYmBh99tlnevLJJxUZGak+ffpcU70AgIpjt9uVlpbmeu9wBCsrK0yhoXbZbDmu7cnJyYQgXLMy3QixvCUkJKhdu3auH3in06moqCg99dRTev7556/4+YKCAtWpU0dpaWmuO1DffPPN6tu3r1566SVXu7i4ON19992aOHFiqeriRogA4HkZGRl6++23JUnbtrXRqlW9ZRg+slicSkparbZtt0uShg4dqoiICG+WikqqLL+/vbYIOi8vT1u3blViYuJvxfj4KDExUZs2bSrVMc6dO6f8/HyFhoa6tnXs2FErV67UsWPHZBiG1q9frx9//FF33XVXuZ8DAKD8ORzBrvAjSYbho1WresvhCPZyZahOyjQFVp5OnTqlgoIChYeHu20PDw/XDz/8UKpjPPfcc4qMjHQLUbNmzdLQoUPVqFEj1ahRQz4+Ppo7d666dOlS7HFyc3OVm5vrel/aR34AAMpfVlaYK/wUMgwfZWWFuk2FAdfCawHoWk2ePFnLli3Thg0b3B7QOmvWLH399ddauXKloqOj9c9//lPDhw8vEpQulpKSopdfftlTpQMAShAaapfF4nQLQRaLU6GhWV6sCtWN16bA6tatK19fXx0/ftxt+/Hjx9WgQYMSPzt9+nRNnjxZn332mVq2bOna/ssvv+h//ud/NHPmTCUlJally5ZKTk5W3759NX369GKPN2bMGDkcDtfryJEj13ZyAICrZrPlKClptSwWpyS51gAx+oPy5LURIKvVqri4OKWnp+vee++VdGERdHp6upKTk4v93NSpUzVp0iStXbtW8fHxbvvy8/OVn58vHx/3XOfr6yun01nsMf39/eXv73/1JwMAKFdt225XbOw+ZWWFKjQ0i/CDcufVKbBRo0Zp4MCBio+PV/v27ZWamqqzZ89q8ODBkqQBAwaoYcOGSklJkSRNmTJFY8eO1dKlSxUTE6PMzExJUq1atVSrVi2FhISoa9euGj16tAIDAxUdHa1//OMfevfddzVz5kyvnScAoOxs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f18ff/yxJKlZs2bKz8/XrFmzlJSUpI0bN+rNN990+/zIkSN1991367rrrtPPP/+s9evXuwLU2LFjFRcXp5tuukm5ublavXq1a195a968uT744AN99dVXqlOnjmbOnKnjx4+7gklAQICee+45Pfvss7Jarbrtttt08uRJfffdd3rsscdUv359BQYGas2aNWrUqJECAgJks9ncviMoKEhPPPGERo8erdDQUDVu3FhTp07VuXPn9Nhjj1XIeQFmxQgQgGKtWbNGERERioiIUEJCgrZs2aL333/fdQm3JPXr1081atRQv379FBAQUOQYTz/9tP7973+rTZs2mjhxombOnKkePXpIklq1aqWZM2dqypQpuvnmm7VkyRKlpKS4fb6goEDDhw/XDTfcoJ49e+q6667TG2+8IenCqMqYMWPUsmVLdenSRb6+vlq2bFmF9MWLL76otm3bqkePHurWrZsaNGhQ5A7OL730kp5++mmNHTtWN9xwg/r27etal1OjRg29/vrreuuttxQZGal77rnnst8zefJk3X///erfv7/atm2rffv2ae3atapTp06FnBdgVhbDMAxvFwGg6jp48KBiY2O1ZcsWtW3b1m1fTEyMRo4cqZEjR3qnOAAoBlNgAK5Kfn6+7Ha7XnzxRd16661Fwg8AVGZMgQG4Khs3blRERIS2bNlSZN2Ot73yyiuqVavWZV933323t8sDUAkwBQag2snKyipy5+RCgYGBatiwoYcrAlDZEIAAAIDpMAUGAABMhwAEAABMhwAEAABMhwAEAABMhwAEAABMhwAEAABMhwAEAABMhwAEAABM5/8DKUyptUpTNpkAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_20.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAHHCAYAAABXx+fLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABJB0lEQVR4nO3de1xU1cL/8e+ADCDCGKgoimBomlYqeEnLSx4KO4rdPF4qNbuYp8g8lJV18pIVVmaUmHU6lWaZVtpF85jlka5WPl66mqmhpgHmkIB4FGLW7w9/TE6CgsIMsD/v12teNnuvvWat/eyH+Z611uxtM8YYAQAAWIifrxsAAADgbQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAKil5s+fL5vNpp07d/q6KUC9QwACLGz9+vVKSUlRp06dFBISotatW2vYsGH68ccfjyvbv39/2Ww22Ww2+fn5KSwsTO3bt9eoUaP0/vvvV+lzly9frn79+qlZs2Zq2LChzjzzTA0bNkyrVq2qrq4d5+GHH9Zbb7113PbPPvtM06ZN04EDB2rss/9s2rRp7nNps9nUsGFDdezYUf/85z9VUFBQLZ+xaNEipaenV0tdQH1EAAIs7JFHHtHSpUv1l7/8RU8++aTGjRunjz76SPHx8fr222+PK9+qVSstXLhQL730kh577DENGTJEn332mS655BINHz5cJSUlJ/3MWbNmaciQIbLZbJo8ebKeeOIJXXXVVdq2bZsWL15cE92UdOIANH36dK8GoDLz5s3TwoULNXv2bHXo0EEPPfSQBg4cqOp4RCMBCDixBr5uAADfSU1N1aJFi2S3293bhg8frnPPPVczZ87Uyy+/7FHe4XDo2muv9dg2c+ZMTZgwQU8//bRiY2P1yCOPVPh5v//+u2bMmKGLL75Yq1evPm7/vn37TrNHtcehQ4fUsGHDE5YZOnSomjRpIkkaP368rrrqKi1btkyff/65evXq5Y1mApbFCBBgYb179/YIP5LUrl07derUSVu2bKlUHf7+/nrqqafUsWNHZWRkKD8/v8Ky+/fvV0FBgS644IJy9zdr1szj/eHDhzVt2jSdddZZCgoKUosWLXTllVdqx44d7jKzZs1S7969FRERoeDgYCUkJOiNN97wqMdms6moqEgLFixwTztdd911mjZtmiZNmiRJatOmjXvfsWtuXn75ZSUkJCg4OFjh4eEaMWKEfv75Z4/6+/fvr3POOUcbNmxQ37591bBhQ917772VOn/HGjBggCQpKyvrhOWefvppderUSYGBgYqKitKtt97qMYLVv39/vfvuu9q1a5e7T7GxsVVuD1CfMQIEwIMxRrm5uerUqVOlj/H399fIkSN1//3365NPPtGgQYPKLdesWTMFBwdr+fLluu222xQeHl5hnaWlpRo8eLDWrFmjESNG6Pbbb1dhYaHef/99ffvtt4qLi5MkPfnkkxoyZIiuueYaFRcXa/Hixfrb3/6mFStWuNuxcOFC3XjjjerRo4fGjRsnSYqLi1NISIh+/PFHvfrqq3riiSfcozFNmzaVJD300EO6//77NWzYMN1444369ddfNWfOHPXt21ebNm1S48aN3e11Op269NJLNWLECF177bWKjIys9PkrUxbsIiIiKiwzbdo0TZ8+XYmJifr73/+urVu3at68eVq/fr0+/fRTBQQE6L777lN+fr727NmjJ554QpLUqFGjKrcHqNcMABxj4cKFRpJ5/vnnPbb369fPdOrUqcLj3nzzTSPJPPnkkyesf8qUKUaSCQkJMZdeeql56KGHzIYNG44r98ILLxhJZvbs2cftc7lc7v8+dOiQx77i4mJzzjnnmAEDBnhsDwkJMWPGjDmurscee8xIMllZWR7bd+7cafz9/c1DDz3ksf2bb74xDRo08Njer18/I8k888wzFfb7WFOnTjWSzNatW82vv/5qsrKyzLPPPmsCAwNNZGSkKSoqMsYY8+KLL3q0bd++fcZut5tLLrnElJaWuuvLyMgwkswLL7zg3jZo0CATExNTqfYAVsQUGAC3H374Qbfeeqt69eqlMWPGVOnYshGGwsLCE5abPn26Fi1apK5du+q9997Tfffdp4SEBMXHx3tMuy1dulRNmjTRbbfddlwdNpvN/d/BwcHu//7tt9+Un5+vPn36aOPGjVVq/58tW7ZMLpdLw4YN0/79+92v5s2bq127dlq7dq1H+cDAQI0dO7ZKn9G+fXs1bdpUbdq00c0336y2bdvq3XffrXDt0AcffKDi4mJNnDhRfn5//Pm+6aabFBYWpnfffbfqHQUsiikwAJKknJwcDRo0SA6HQ2+88Yb8/f2rdPzBgwclSaGhoSctO3LkSI0cOVIF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D1sGAID3EIAsJj4+XtHR0Vq2bJl727Jly9S6dWt17drVve3IkSOaMGGCmjVrpqCgIF144YVav369R10rV67UWWedpeDgYF100UXauXPncZ/3ySefqE+fPgoODlZ0dLQmTJigoqKiGusfAACVQQDyoT17pLVrj/7rTddff71efPFF9/sXXnhBY8eO9Shz1113aenSpVqwYIE2btyotm3bKikpSXl5eZKkn3/+WVdeeaWSk5O1efNm3Xjjjbrnnns86tixY4cGDhyoq666Sl9//bWWLFmiTz75RCkpKTXfSQAAToAA5CPPPy/FxEgDBhz99/nnvffZ1157rT755BPt2rVLu3bt0qeffqprr73Wvb+oqEjz5s3TY489pksvvVQdO3bUc889p+DgYD3//xs6b948xcXF6fHHH1f79u11zTXXHLd+KC0tTddcc40mTpyodu3aqXfv3nrqqaf00ksv6fDhw97rMAAAf8LT4H1gzx5p3DjJ5Tr63uWSbr5ZSkqSWrWq+c9v2rSpBg0apPnz58sYo0GDBqlJkybu/Tt27FBJSYkuuOAC97aAgAD16NFDW7ZskSRt2bJFPXv29Ki3V69eHu+/+uorff3113rllVfc24wxcrlcysrK0tlnn10T3QMA4KQIQD6wbdsf4adMaam0fbt3ApB0dBqsbCpq7ty5NfIZBw8e1M0336wJEyYct48F1wAAXyIA+UC7dpKfn2cI8veX2rb1XhsGDhyo4uJi2Ww2JSUleeyLi4uT3W7Xp59+qpiYGElSSUmJ1q9fr4kTJ0qSzj77bL3zzjsex33++ece7+Pj4/X999+rrTc7BgCo1fbsOToQ0K6d9/5Hf3lYA+QDrVpJ//rX0dAjHf332We9eyH4+/try5Yt+v777+Vf1pD/LyQkRH//+981adIkrVq1St9//71uuukmHTp0SDfccIMkafz48dq2bZsmTZqkrVu3atGiRZo/f75HPXfffbc+++wzpaSkaPPmzdq2bZvefvttFkEDgMU4nU5lZ2fr8ccPKCbG/P/1r0aPP35A2dnZcjqdXm8TI0A+csMNR9f8bN9+dOTHFyk4LCyswn0zZ86Uy+XSqFGjVFhYqG7duum9997TGWecIenoFNbSpUv1j3/8Q3PmzFGPHj308MMP6/rrr3fXcd555+nDDz/Ufffdpz59+sgYo7i4OA0fPrzG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LpcKCwsVHh4uyXt/DwhAVbB//36VlpYqMjLSY3tkZKRycnLKPebqq6/WAw88oAsvvFABAQGKi4tT//79PabAevbsqfnz52vVqlWaN2+esrKy1KdPHxUWFtZof07FqZyDpKQkzZ49W9u2bZPL5dL777+vZcuWKTs7+5Tr9JWa6L9Ut66BU5GTk1PuOSsoKND//ve/OnUNnKqTnQOp/l8HlVHReaov10FltG/fXi+88ILefvttvfzyy3K5XOrdu7f27Nnj66bViFmzZungwYMaNmyYJO99JxCAalhmZqYefvhhPf3009q4caOWLVumd999VzNmzHCXufTSS/W3v/1N5513npKSkrRy5UodOHBAr732mg9bXn2efPJJtWvXTh06dJDdbldKSorGjh0rPz9rXH6V6X99vwZQOVwHkKRevXpp9OjR6tKli/r166dly5apadOmevbZZ33dtGq3aNEiTZ8+Xa+99pqaNWvm1c+2xjdQNWnSpIn8/f2Vm5vrsT03N1fNmzcv95j7779fo0aN0o033qhzzz1XV1xxhR5++GGlpaXJ5XKVe0zjxo111llnafv27dXeh9N1KuegadOmeuutt1RUVKRdu3bphx9+UKNGjXTmmWeecp2+UhP9L09tvgZORfPmzcs9Z2FhYQoODq5T18CpOtk5KE99uw4qo6LzVF+ug1MREBCgrl271rvrYPHixbrxxhv12muveUx3eevvAQGoCux2uxISErRmzRr3NpfLpTVr1qhXr17lHnPo0KHjRjr8/f0lSaaCx7AdPHhQO3bsUIsWLaqp5dXnVM5BmaCgILVs2VK///67li5dqssuu+y06/S2muh/eWrzNXAqevXq5XHOJOn99993n7O6dA2cqpOdg/LUt+ugMk7lPNV3paWl+uabb+rVdfDqq69q7NixevXVVzVo0CCPfV77e1Bty6ktYvHixSYwMNDMnz/ffP/992bcuHGmcePGJicnxxhjzKhRo8w999zjLj916lQTGhpqXn31VfPTTz+Z1atXm7i4ODNs2DB3mTvuuMNkZmaarKws8+mnn5rExETTpEkTs2/fPq/3rzKqeg4+//xzs3TpUrNjxw7z0UcfmQEDBpg2bdqY3377rdJ11iY10f+6dg0UFhaaTZs2mU2bNhlJZvbs2WbTpk1m165dxhhj7rnnHjNq1Ch3+Z9++sk0bNjQTJo0yWzZssXMnTvX+Pv7m1WrVrnL1KVrwJiaOQf1/TowxrjLJyQkmKuvvtps2rTJfPfdd+79n376qWnQoIGZNWuW2bJli5k6daoJCAgw33zzjVf7Vlk1cQ6mT59u3nvvPbNjxw6zYcMGM2LECBMUFORRpjap6jl45ZVXTIMGDczcuXNNdna2+3XgwAF3GW/8PSAAnYI5c+aY1q1bG7vdbnr06GE+//xz975+/fqZMWPGuN+XlJSYadOmmbi4OBMUFGSio6PNLbfc4vHlN3z4cNOiRQtjt9tNy5YtzfDhw8327du92KOqq8o5yMzMNGeffbYJDAw0ERERZtSoUWbv3r1VqrO2qe7+17VrYO3atUbSca+yfo8ZM8b069fvuGO6dOli7Ha7OfPMM82LL754XL116RqoiXNgheugvPIxMTEeZV577TVz1llnGbvdbjp16mTeffdd73ToFNTEOZg4caL7/w8iIyPNX//6V7Nx40bvdaqKqnoO+vXrd8LyZWr674HNmArmYQAAAOop1gABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABQB2QmZkpm82mAwcO+LopQL1AAALg4brrrpPNZtPMmTM9tr/11luy2Wzu98YYPffcc+rVq5fCwsLUqFEjderUSbfffnulH9p46NAhTZ48WXFxcQoKClLTpk3Vr18/vf322+4ysbGxSk9Pr5a+1bSyc2ez2RQQEKA2bdrorrvu0uHDh6tUT//+/TVx4kSPbb1791Z2drYcDkc1thiwLgIQgOMEBQXpkUce0W+//VbufmOMrr76ak2YMEF//etftXr1an3//fd6/vnnFRQUpAcffLBSnzN+/HgtW7ZMc+bM0Q8//KBVq1Zp6NChcjqd1dkdrxo4cKCys7P1008/6YknntCzzz6rqVOnnna9drtdzZs39wihAE5DtT5YA0CdN2bMGDN48GDToUMHM2nSJPf2N99805T9yXj11VeNJPP222+XW4fL5arUZzkcDjN//vwK95f3zKAyH3/8sbnwwgtNUFCQadWqlbntttvMwYMH3ftfeuklk5CQYBo1amQiIyPNyJEjTW5urnt/2fOLVq1aZbp06WKCgoLMRRddZHJzc83KlStNhw4dTGhoqBk5cqQpKiqqVH/GjBljLrvsMo9tV155penatav7/f79+82IESNMVFSUCQ4ONuecc45ZtGiRRx1/7nNWVpa7vcc+R/CNN94wHTt2NHa73cTExJhZs2ZVqp0AjGEECMBx/P399fDDD2vOnDnas2fPcftfffVVtW/fXkOGDCn3+MqOUjRv3lwrV65UYWFhufuXLVumVq1a6YEHHlB2drays7MlSTt27NDAgQN11VVX6euvv9aSJUv0ySefKCUlxX1sSUmJZsyYoa+++kpvvfWWdu7cqeuuu+64z5g2bZoyMjL02Wef6eeff9awYcOUnp6uRYsW6d1339Xq1as1Z86cSvXnz7799lt99tlnstvt7m2HDx9WQkKC3n33XX377bcaN26cRo0apS+//FKS9OSTT6pXr1666aab3H2Ojo4+ru4NGzZo2LBhGjFihL755htNmzZN999/v+bPn39KbQUsx9cJDEDtcuwoxvnnn2+uv/56Y4znCFCHDh3MkCFDPI67/fbbTUhIiAkJCTEtW7as1Gd9+OGHplWrViYgIMB069bNTJw40XzyySceZWJiYswTTzzhse2GG24w48aN89j28ccfGz8/P/O///2v3M9av369kWQKCwuNMX+MAH3wwQfuMmlpaUaS2bFjh3vbzTffbJKSkirVnzFjxhh/f38TEhJiAgMDjSTj5+dn3njjjRMeN2jQIHPHHXe43/fr18/cfvvtHmX+PAJ09dVXm4svvtijzKRJk0zHjh0r1VbA6hgBAlChRx55RAsWLNCWLVtOWva+++7T5s2bNWXKFB08eLBS9fft21c//fST1qxZo6FDh+q7775Tnz59NGPGjBMe99VXX2n+/Plq1KiR+5WUlCSXy6WsrCxJR0dIkpOT1bp1a4WGhqpfv36SpN27d3vUdd5557n/OzIyUg0bNtSZZ57psW3fvn2V6o8kXXTRRdq8ebO++OILjRkzRmPHjtVVV13l3l9aWqoZM2bo3HPPVXh4uBo1aqT33nvvuHadzJYtW3TBBRd4bLvgggu0bds2lZaWVqkuwIoIQAAq1LdvXyUlJWny5Mke29u1a6etW7d6bGvatKnatm2rZs2aVekzAgIC1KdPH919991avXq1HnjgAc2YMUPFxcUVHnPw4EHdfPPN2rx5s/v11Vdfadu2bYqLi1NRUZGSkpIUFhamV155RevXr9ebb74pScfVGxAQ4P7vsl9vHctms8nlclW6PyEhIWrbtq06d+6sF154QV988YWef/559/7HHntMTz75pO6++26tXbtWmzdvVlJS0gn7C6D6NfB1AwDUbjNnzlSXLl3Uvn1797aRI0fq6quv1ttvv63LLrusWj+vY8eO+v3333X48GHZ7XbZ7fbjRjTi4+P1/fffq23btuXW8c0338jpdGrmzJnu9TP/93//V63trAw/Pz/de++9Sk1N1dVXX63g4GB9+umnuuyyy3TttddKklwul3788Ud17NjRfVx5ff6zs88+W59++qnHtk8//VRnnXWW/P39q78zQD3DCBCAEzr33HN1zTXX6KmnnnJvGzFihIYOHaoRI0bogQce0BdffKGdO3fqww8/1JIlSyr9Bdy/f389++yz2rBhg3bu3KmVK1fq3nvv1UUXXaSwsDBJR+8D9NFHH2nv3r3av3+/JOnuu+/WZ599ppSUFG3evFnbtm3T22+/7V4E3bp1a9ntds2ZM0c//fST3nnnnZNOq9WUv/3tb/L399fcuXMlHR09e//99/XZZ59py5Ytuvnmm5Wbm+txTGxsrPuc7t+/v9wRqDvuuENr1qzRjBkz9OOPP2rBggXKyMjQnXfe6ZV+AXUdAQjAST3wwAMeX8I2m01LlixRenq6Vq5cqb/85S9q3769rr/+ekVHR+uTTz6pVL1JSUlasGCBLrnkEp199tm67bbblJSUpNdee83js3fu3Km4uDg1bdpU0tF1Ox9++KF+/PFH9enTR127dtWUKVMUFRUl6eh03Pz58/X666+rY8eOmjlzpmbNmlWNZ6TyGjRooJSUFD366KMqKirSP//5T8XHxyspKUn9+/dX8+bNdfnll3scc+edd8rf318dO3ZU06ZNy10fFB8fr9dee02LFy/WOeecoylTpuiBBx4o95duAI5nM8YYXzcCAADAmxgBAgAAlkMAAlBjjv2Z+p9fH3/8sa+bVyW7d+8+YX+q+jN2AL7FFBiAGnOih6K2bNlSwcHBXmzN6fn999+1c+fOCvfHxsaqQQN+WAvUFQQgAABgOUyBAQAAyyEAAQAAyyEAAQAAyyEAAQAAyyEAAQAAyyEAAQAAyyEAAQAAyyEAAQAAy/l/LvmbmoUVaBQAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_21.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAHHCAYAAABXx+fLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABH6ElEQVR4nO3de1xVdb7/8fcG2aAIW0EFVBQVzW5eQCXtohmNOop5xvNLu3grc+xIjseuTpOXY4WlGZl2s9RO5eiU1qSVTjI6TWXpgMzkJVNHUlNAN7lBSTD2+v3hYeeWi4LsC6zX8/HYD9lrffdan/UdYr/nu75rLYthGIYAAABMJMDXBQAAAHgbAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgAAJgOAQgA/NiKFStksViUk5Pj61KABoUABJjc9u3blZqaqquvvlqhoaFq166dbr/9dn333XcV2g4YMEAWi0UWi0UBAQEKDw/XFVdcoTFjxujTTz+t0X7XrVun/v37q1WrVmrSpIk6duyo22+/XRs2bKirQ6vg6aef1gcffFBh+ZdffqnZs2fr5MmTHtv3hWbPnu3qS4vFoiZNmuiqq67SH/7wBxUWFtbJPlauXKn09PQ62RbQ0BCAAJN75plntGbNGt1yyy164YUXNGnSJH322WdKSEjQzp07K7Rv27at3nrrLf3v//6v5s+fr+HDh+vLL7/Ur371K40aNUpnz5696D4XLFig4cOHy2KxaMaMGXr++ec1cuRI7du3T6tWrfLEYUqqPgDNmTPHqwGo3Msvv6y33npLCxcuVNeuXfXUU09p8ODBqovHNBKAgKo18nUBAHxr+vTpWrlypaxWq2vZqFGjdO2112revHl6++233drbbDbdfffdbsvmzZunqVOn6qWXXlJcXJyeeeaZKvf3888/a+7cubr11lv1l7/8pcL6/Pz8yzwi/1FcXKwmTZpU2+Y///M/1aJFC0nS5MmTNXLkSK1du1ZfffWV+vbt640yAVNiBAgwuX79+rmFH0nq3Lmzrr76au3Zs+eSthEYGKhFixbpqquu0uLFi+VwOKpse+LECRUWFur666+vdH2rVq3c3p85c0azZ89Wly5dFBISopiYGP3mN7/RgQMHXG0WLFigfv36KTIyUo0bN1ZiYqLee+89t+1YLBadPn1ab775puu00/jx4zV79mw9/PDDkqQOHTq41p0/5+btt99WYmKiGjdurIiICI0ePVqHDx922/6AAQN0zTXXKDMzUzfddJOaNGmi3//+95fUf+cbOHCgJOngwYPVtnvppZd09dVXKzg4WK1bt9aUKVPcRrAGDBigjz76SN9//73rmOLi4mpcD9BQMQIEoALDMJSXl6err776kj8TGBioO+64Q0888YQ+//xzDR06tNJ2rVq1UuPGjbVu3To98MADioiIqHKbZWVlGjZsmDIyMjR69Gj97ne/U1FRkT799FPt3LlTnTp1kiS98MILGj58uO666y6VlpZq1apV+n//7/9p/fr1rjreeustTZw4UX369NGkSZMkSZ06dVJoaKi+++47/fGPf9Tzzz/vGo1p2bKlJOmpp57SE088odtvv10TJ07U8ePH9eKLL+qmm27Sjh071KxZM1e9drtdQ4YM0ejRo3X33XcrKirqkvuvXHmwi4yMrLLN7NmzNWfOHCUnJ+v+++/X3r179fLLL2v79u364osvFBQUpMcff1wOh0NHjhzR888/L0lq2rRpjesBGiwDAC7w1ltvGZKMN954w215//79jauvvrrKz73//vuGJOOFF16odvszZ840JBmhoaHGkCFDjKeeesrIzMys0G7ZsmWGJGPhwoUV1jmdTtfPxcXFbutKS0uNa665xhg4cKDb8tDQUGPcuHEVtjV//nxDknHw4EG35Tk5OUZgYKDx1FNPuS3/5ptvjEaNGrkt79+/vyHJeOWVV6o87vPNmjXLkGTs3bvXOH78uHHw4EHj1VdfNYKDg42oqCjj9OnThmEYxvLly91qy8/PN6xWq/GrX/3KKCsrc21v8eLFhiRj2bJlrmVDhw412rdvf0n1AGbDKTAAbr799ltNmTJFffv21bhx42r02fIRhqKiomrbzZkzRytXrlTPnj21ceNGPf7440pMTFRCQoLbabc1a9aoRYsWeuCBBypsw2KxuH5u3Lix6+cff/xRDodDN954o7KysmpU/4XWrl0rp9Op22+/XSdOnHC9oqOj1blzZ23evNmtfXBwsCZMmFCjfVxxxRVq2bKlOnTooN/+9reKj4/XRx99VOXcoU2bNqm0tFTTpk1TQMAvf8Lvu+8+hYeH66OPPqr5gQImxCkwAC65ubkaOnSobDab3nvvPQUGBtbo86dOnZIk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Iu3atUtvvvmm/vrXv+qRRx6RJPXr10/p6ekKDw/XsWPHdOzYMT300EOSzl2qPnfuXP3zn//UBx98oJycHI0fP95rx1EdRoBQKYcjTOvWDZNhnMvIhhGgdeuGqVOn/bUeCeLqMgCoP7p27ap//etfkqRp06a5lsfFxenJJ5/U5MmT9dJLL8lqtcpms8lisbhGksrdc889rp87duyoRYsWqXfv3jp16pSaNm3qleOoCgEIlSooiHSFn3KGEaCCgohaBSBfD/ECAGrGMAzXKa1NmzYpLS1N3377rQoLC/Xzzz/rzJkzKi4urvYGkJmZmZo9e7b++c9/6scff3RNrD506JCuuuoqrxxHVTgFhkpFRNhlsbhfAWCxOBURUVCr7fnjEC8AoGp79uxRhw4dlJOTo2HDhqlbt25as2aNMjMztWTJEknV/80+ffq0Bg0apPDwcL3zzjvavn273n///Yt+zlsIQHBjtVolSTZbkVJS1rtCkMXiVErKetfoT3k7AEDD89e//lXffPONRo4cqczMTDmdTj333HO67rrr1KVLFx09etStvdVqVVlZmduyb7/9Vna7XfPmzdONN96orl27uh5k6g84BQY3kZGRSk1NdaXzmTOPKyenkeLiflbr1r0l9a6TuTpcXQYA/qGkpES5ublul8GnpaVp2LBhGjt2rHbu3KmzZ8/qxRdfVEpKir744gu98sorbtuIi4vTqVOnlJGRoe7du6tJkyZq166drFarXnzxRU2ePFk7d+7U3LlzfXSUFRGAUMH54SYmRkpMrNvtZ2X1dE2wLh9ZSkjYUbc7AQBckg0bNigmJkaNGjVS8+bN1b17dy1atEjjxo1TQECAunfvroULF+qZZ57RjBkzdNNNNyktLU1jx451baNfv36aPHmyRo0aJbvd7roMfsWKFfr973+vRYsWKSEhQQsWLNDw4cN9eLS/sBiGYfi6CH9TWFgom80mh8Oh8PBwX5fTIBw7dkyvvfaaHI4wpadPc5tgbbE4NW1aumy2Ik2aNEkxMTE+rBQAaubMmTM6ePCgOnTooJCQkBp/notEaqa6/q7J9zcjQPCqur66DADquwunHlSG24TUPQIQvKr86rILR4Bqe3UZADQEhBvv4yoweAVXlwEA/AkjQPAKb11dBgDApSAAwWs8fXUZAACXilNgAADAdAhAAADAdAhAAADAdAhAAADAdAhAAADAI7Zs2SKLxaKTJ09e8mfi4uKUnp7usZrKEYAAADCp8ePHy2KxaPLkyRXWTZkyRRaLRePHj/d+YV5AAAIAwMRiY2O1atUq/fTTT65lZ86c0cqVK9WuXTsfVuZZfhGAlixZori4OIWEhCgpKUnbtm2rsu2uXbs0cuRIxcXFyWKxVDpMNnv2bFksFrdX165dPXgEAADUTwkJCYqNjdXatWtdy9auXat27dqpZ8+ermUlJSWaOnWqWrVqpZCQEN1www3avn2727Y+/vhjdenSRY0bN9bNN9+snJycCvv7/PPPdeONN6px48aKjY3V1KlTdfr0aY8dX1V8HoBWr16t6dOna9asWcrKylL37t01aNAg5efnV9q+uLhYHTt21Lx58xQdHV3ldq+++modO3bM9fr88889dQgAANSZI0ekzZvP/est99xzj5YvX+56v2zZMk2YMMGtzSOPPKI1a9bozTffVFZWluLj4zVo0CAVFJx7luPhw4f1m9/8RikpKcrOztbEiRP12GOPuW3jwIEDGjx4sEaOHKl//etfWr16tT7//HOlpqZ6/iAvZPhYnz59jClTprjel5WVGa1btzbS0tIu+tn27dsbzz//fIXls2bNMrp3717rmhwOhyHJcDgctd4GAMAcfvrpJ2P37t3GTz/9dNnbev11wwgIMAzp3L+vv14HBVZj3Lhxxm233Wbk5+cbwcHBRk5OjpGTk2OEhIQYx48fN2677TZj3LhxxqlTp4ygoCDjnXfecX22tLTUaN26tfHss88ahmEYM2bMMK666iq37T/66KOGJOPHH380DMMw7r33XmPSpElubf7+978bAQEBrv6r6ru9XHX9XZPvb5+OAJWWliozM1PJycmuZQEBAUpOTtbWrVsva9v79u1T69at1bFjR9111106dOhQlW1LSkpUWFjo9gIAwJuOHJEmTZKc554VLadT+u1vvTMS1LJlSw0dOlQrVqzQ8uXLNXToULVo0cK1/sCBAzp79qyuv/5617KgoCD16dNHe/bskSTt2bNHSUlJbtvt27ev2/t//vOfWrFihZo2bep6DRo0SE6nUwcPHvTgEVbk02eBnThxQmVlZYqKinJbHhUVpW+//bbW201KStKKFSt0xRVX6NixY5ozZ45uvPFG7dy5U2FhYRXap6Wlac6cObXeH8zJbre7Hu5aGR7uCqAm9u37JfyUKyuT9u+X2rb1/P7vuece16moJUuWeGQfp06d0m9/+1tNnTq1wjpvT7hukA9DHTJkiOvnbt26KSkpSe3bt9ef/vQn3XvvvRXaz5gxQ9OnT3e9LywsVGxsrFdqRf1kt9u1ePHii7ZLTU0lBAG4JJ07SwEB7iEoMFCKj/fO/gcPHqzS0lJZLBYNGjTIbV2nTp1ktVr1xRdfqH379pKks2fPavv27Zo2bZok6corr9SHH37o9rmvvvrK7X1CQoJ2796teG8dVDV8egqsRYsWCgwMVF5entvyvLy8aic411SzZs3UpUsX7d+/v9L1wcHBCg8Pd3sB1alu5Kc27QCgbVvptdfOhR7p3L+vvuqd0Z9z+wvUnj17tHv3bgWWF/F/QkNDdf/99+vhhx/Whg0btHv3bt13330qLi52DSxMnjxZ+/bt08MPP6y9e/dq5cqVWrFihdt2Hn30UX355ZdKTU1Vdna29u3bpz//+c8+mQTt0wBktVqVmJiojIwM1zKn06mMjIwK5w0vx6lTp3TgwAHFxMTU2TYBAKhr994r5eScuwosJ+fce2+qbhBg3rx5GjlypMaMGaOEhATt379fGzduVPPmzSWdO4W1Zs0affDBB+revbteeeUVPf30027b6Natm/72t7/pu+++04033qiePXtq5syZat26tceP7UIWwzAMr+/1PKtXr9a4ceP06quvqk+fPkpPT9ef/vQnffvtt4qKitLYsWPVpk0bpaWlSTr3/6h3794tSfr1r3+tu+66S3fddZeaNm3qGlJ76KGHlJKSovbt2+vo0aOaNWuWsrOztXv3brVs2fKiNRUWFspms8nhcDAahEodO3ZMr732muu9wxGmgoJIRUTYZbMVuZZPmjSJ4A00cGfOnNHBgwfVoUMHhYSE+LqcBq+6/q7J97fP5wCNGjVKx48f18yZM5Wbm6sePXpow4YNronRhw4dUkDALwNVR48edbsx04IFC7RgwQL1799fW7ZskSQdOXJEd9xxh+x2u1q2bKkbbrhBX3311SWFH6CmsrJ6at26YTKMAFksTqWkrFdCwg5flwUAqIbPA5B0bqJoVef/ykNNubi4OF1s0GrVqlV1VRpQLYcjzBV+JMkwArRu3TB16rTfbSQIAOBffH4naKA+KyiI1IW30zKMABUURPioIgDApSAAAZchIsIui8X9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bfN8KSkpxoQJE2p1fJKMkJAQ1/GFhoYa77//vnHw4EFDkpGenn7RbQwdOtR48MEHDcMwjMLCQiM4ONhYunRppW3Lt7tjxw635ec/1f7UqVNGUFCQ8c4777jWl5aWGq1btzaeffZZwzAMY/PmzYYkY9OmTa42H330kSHJ+Omnn2rSBYCpMQIEoEo333yzsrOzlZ2drW3btmnQoEEaMmSIvv/+e4WEhGjMmDFatmyZJCkrK0s7d+7U+PHj3bbRt2/fCu/37Nnjer9p0ybdcsstatOmjcLCwjRmzBjZ7XYVFxdLkqZOnaonn3xS119/vWbNmuU2Cfv+++/XqlWr1KNHDz3yyCP68ssva3R8zz//vOv4srOzdeutt7rW9erVy61tWVmZ5s6dq2uvvVYRERFq2rSpNm7cqEOHDkmS9uzZo5KSEt1yyy01quF8Bw4c0NmzZ3X99de7lgUFBalPnz5ufSZJ3bp1c/0cExMjScrPz6/1vgGzIQABqFJoaKji4+MVHx+v3r176/XXX9fp06e1dOlSSdLEiRP16aef6siRI1q+fLkGDhyo9u3bX/L2c3JyNGzYMHXr1k1r1qxRZmama45QaWmpax///ve/NWbMGH3zzTfq1auXXnzxRUlyhbH//u//1tGjR3XLLbfooYceuuT9R0dHu44vPj5eoaGhbsd+vvnz5+uFF17Qo48+qs2bNys7O1uDBg1y1dm4ceNL3m9dCAoKcv1ssVgknZuDBODSEIAAXDKLxaKAgAD99NNPkqRrr71WvXr10tKlS7Vy5cpK56F89dVXFd5feeWVkqTMzEw5nU4999xzuu6669SlSxcdPXq0wjZiY2M1efJkrV27Vg8++KArgElSy5YtNW7cOL399ttKT0/Xa6+9VpeH7PLFF1/otttu0913363u3burY8eO+u6771zrO3furMaNG7smgF/IarVKOjeSVJVOnTrJarXqiy++cC07e/astm/frquuuqqOjgSAJDXydQEA/FdJSYlyc3MlnbviavHixTp16pRSUlJcbSZOnKjU1FSFhobqP/7jPyps44svvtCzzz6rESNG6NNPP9W7776rjz76SJIUHx+vs2fP6sUXX1RKSoq++OILvfLKK26fnzZtmoYMGaIuXbroxx9/1ObNm10BaubMmUpMTNTVV1+tkpISrV+/3rWurnXu3FnvvfeevvzySzVv3lwLFy5UXl6eK5iEhITo0Ucf1SOPPCKr1arrr79ex48f165du3TvvfeqVatWaty4sTZs2KC2bdsqJCRENpvNbR+hoaG6//779fDDDysiIkLt2rXTs88+q+LiYt17770eOS7ArBgBAlClDRs2KCYmRjExMUpKStL27dv17rvvui7hlqQ77rhDjRo10h133KGQkJAK23jwwQf1j3/8Qz179tSTTz6phQsXatCgQZKk7t27a+HChXrmmWd0zTXX6J133lFaWprb58vKyjRlyhRdeeWVGjx4sLp06aKXXnpJ0rlRlRkzZqhbt2666aabFBgYqFWrVnmkL/7whz8oISFBgwYN0oABAxQdHV3hDs5PPPGEHnzwQc2cOVNXXnmlRo0a5ZqX06hRIy1atEivvvqqWrdurdtuu63S/cybN08jR47UmDFjlJCQoP3792vjxo1q3ry5R44LMCuLYRiGr4sAUH/l5OSoU6dO2r59uxISEtzWxcXFadq0aZo2bZpvigOAKnAKDECtnD17Vna7XX/4wx903XXXVQg/AODPOAUGoFa++OILxcTEaPv27RXm7fja008/raZNm1b6GjJkiK/LA+AHOAUGoMEpKCiocOfkco0bN1abNm28XBEAf0MAAgAApsMpMAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDoEIAAAYDr/H6xcTpsDgoYnAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_22.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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oaGnLXvdddfpuuuuU0lJiT777DNlZmZq6dKlSkpK0ubNmxUSEqKdO3eqT58+atGi5q+q1atX649//KNycnJ09OhR9/ITQ1J9bN++XcYY9e7du9r1QUFBHu+7dOlSZT7V6axYsUJhYWEKCgpS165d3cN6p/L9999LOh6cTmS329WzZ0/3egA1IwABkCQ5nU5dccUVOnjwoD788EN17ty5ztuovGy+V69etf5MWFiYLr/8cl1++eUKCgrSiy++qM8++0wJCQm1+vyHH36oq666SpdccomefvppderUSUFBQVqyZImWLl1a52M4kcvlks1m07/+9a9qw+DJc2pO7ImqrUsuucQ97whA4yEAAdCRI0eUlJSkb7/9Vu+++6769etX521UVFRo6dKlatWqlS6++OJ61eP888/Xiy++qLy8PEnHJyl/9tlnOnbsWJXelkorVqxQSEiI1q1bp+DgYPfyJUuWVCl7qh6hUy2PiYmRMUY9evTQWWedVdfD8Yru3btLkr755hv17NnTvby8vFy7du3SyJEj3cvOtAcMaM6YAwRYXEVFhSZMmKCNGzfqH//4R73uPVNRUaE777xT27Zt05133qmwsLBTli0rK9PGjRurXfevf/1L0i/DO+PGjdOBAwe0aNGiKmXN/79RYGBgoGw2myoqKtzrcnNzq73hYevWrau92WHr1q0lqcq6a665RoGBgZozZ06VGxMaY1RUVFT9QXrRyJEjZbfb9dRTT3nU6fnnn5fT6fS4+q5169Y13pIAsDJ6gACLu/vuu/XPf/5TSUlJKi4urnLjw5Nveuh0Ot1lysrKtGPHDq1cuVI7d+7UxIkTNXfu3Br3V1ZWpgsvvFAXXHCBRo0apaioKB08eFBvvPGGPvzwQ40dO1YDBw6UJE2ePFl/+9vflJaWps8//1zDhg3T4cOH9e677+p//ud/dPXVV2v06NFasGCBRo0apUmTJqmwsFCLFy9Wr1699N///tdj34MGDdK7776rBQsWqHPnzurRo4fi4+M1aNAgSdJDDz2kiRMnKigoSElJSYqJidEf//hHzZgxQ7m5uRo7dqxCQ0O1a9cuvf7665o6daruueeeM2r/umrfvr1mzJihOXPmaNSoUbrqqqv0zTff6Omnn9bgwYM9/vcaNGiQli9frrS0NA0ePFht2rRRUlJSo9YXaLJ8eQkaAN+rvHz7VK+ayrZp08b07t3b3HDDDebtt9+u1f6OHTtm/vKXv5ixY8ea7t27m+DgYNOqVSszcOBA8/jjj5ujR496lC8rKzMPPfSQ6dGjhwkKCjIdO3Y01157rdm5c6e7zPPPP2969+5tgoODTd++fc2SJUvcl5mf6OuvvzaXXHKJadmypZHkcUn83LlzTZcuXUxAQECVS+JXrFhhLr74YtO6dWvTunVr07dvXzN9+nTzzTffeLRNTbcIOFll/fbv319juZMvg6+0aNEi07dvXxMUFGQiIyPN7373O/Pjjz96lDl06JCZNGmSadu2rZHEJfHACWzGNMADZwAAAPwIc4AAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlcCPEarhcLu3bt0+hoaHcSh4AAD9hjFFpaak6d+6sgICa+3gIQNXYt2+foqKifF0NAABQD3v27FHXrl1rLEMAqkZoaKik4w1Y0zONAABA01FSUqKoqCj373hNCEDVqBz2CgsLIwABAOBnajN9hUnQAADAcghAAADAcghAAADAcpgDdAYqKip07NgxX1ej2QoKClJgYKCvqwEAaIYIQPVgjFF+fr4OHjzo66o0e23btlXHjh25HxMAoEERgOqhMvx06NBBrVq14sfZC4wxKisrU2FhoSSpU6dOPq4RAKA5IQDVUUVFhTv8RERE+Lo6zVrLli0lSYWFherQoQPDYQCABsMk6DqqnPPTqlUrH9fEGirbmblWAICGRACqJ4a9GgftDADwBobAAACA1xUVFam8vPyU6+12e6NOLSEAAQAAryoqKtKiRYtOWy4lJaXRQhBDYBZy0003yWazyWazKSgoSJGRkbr88sv1wgsvyOVy1Xo7mZmZatu2rfcqCgBoVmrq+alPuYZAD5AP+LIbcNSoUVqyZIkqKipUUFCgtWvX6q677tJrr72mf/7zn2rRglMCAND88WvXyHzdDRgcHKyOHTtKkrp06aK4uDhdcMEFuuyyy5SZmalbb71VCxYs0JIlS/Tdd98pPDxcSUlJeuyxx9SmTRtt2LBBU6ZMkfTLBOVZs2Zp9uzZeumll/Tkk0/qm2++UevWrTVixAhlZGSoQ4cODX4cAAD/5XSGqrg4QuHhRXI4Sn1SB4bAGllT7AYcMWKEYmNjtXLlSklSQECAnnrqKW3ZskUvvvii/v3vf+u+++6TJF144YXKyMhQWFiY8vLylJeXp3vuuUfS8UvV586dqy+//FJvvPGGcnNzddNNNzXacQAAmr7s7IHKyEjViy8mKyMjVdnZA31SD3qAIEnq27ev/vvf/0qSUlNT3cujo6P1xz/+UdOmTdPTTz8tu90uh8Mhm83m7kmqdPPNN7v/7tmzp5566ikNHjxYhw4dUps2bRrlOAAATZfTGapVq8bImOP9L8YEaNWqMYqJ2dHoPUH0AEHS8UdPVA5pvfvuu7rsssvUpUsXhYaG6sYbb1RRUZHKyspq3EZWVpaSkpLUrVs3hYaGKiEhQZK0e/dur9cfANB0VT47s7g4wh1+KhkToOLicI9yjYEABEnStm3b1KNHD+Xm5mrMmDE677zztGLFCmVlZWnx4sWSah6WO3z4sBITExUWFqaXX35ZX3zxhV5//fXTfg4A0Pz9/PPPkqTw8CLZbJ5XHdtsLoWHF3uUawwEIOjf//63vvrqK40bN05ZWVlyuVz6v//7P11wwQU666yztG/fPo/ydrtdFRUVHsu+/vprFRUVad68eRo2bJj69u3rfpApAMDagoKCJEkOR6mSkla7Q5DN5lJS0mr38FdlucbAHCCLOXr0qPLz8z0ug09PT9eYMWM0efJkbd68WceOHdPChQuVlJSkjz/+WM8++6zHNqKjo3Xo0CGtX79esbGxatWqlbp16ya73a6FCxdq2rRp2rx5s+bOneujowQANCUOh8P9d1zcJnXokK89e7opKmq3unbNq7act9EDZDFr165Vp06dFB0drVGjRum9997TU089pTfffFOBgYGKjY3VggUL9Oijj+qcc87Ryy+/rPT0dI9tXHjhhZo2bZomTJig9u3b67HHHlP79u2VmZmpf/zjH+rXr5/mzZun+fPn++goAQBNVXb2QD3//K1at26Unn/+Vp9dBWYzxhif7LkJKykpkcPhkNPpVFhYmMe6I0eOaNeuXerRo4dCQkLqvG1f3wfI35xpewMAfC8vL09//vOf5XSGKiMj1WMitM3mUmpqhhyOUk2dOlWdOnWq935q+v0+GUNgjSwiIkIpKSlN6oFwAAA0hpquAmvsy+AJQD5AuAEAWFHlVWAn9wBVXgXWmJgDBAAAvMput0s6/VVgleUaAz1AAADAq06e/jFz5n7l5rZQdPTP6tx5sKTBjT79gwAEAAC87sRw06mTNGiQDysjhsAAAIAFEYAAAIDlEIAAAIDlEIAAAIDlEIDQYDZs2CCbzaaDBw/W+jPR0dHKyMjwWp0AAKgOAchCbrrpJtlsNk2bNq3KuunTp8tms+mmm25q/IoBANDICEAWExUVpWXLlumnn35yLzty5IiWLl2qbt26+bBmAAA0niYRgBYvXqzo6GiFhIQoPj5en3/++SnLbtmyRePGjVN0dLRsNlu1wyezZ8+WzWbzePXt29eLR+A/4uLiFBUVpZUrV7qXrVy5Ut26ddPAgb88kffo0aO688471aFDB4WEhOjiiy/WF1984bGtNWvW6KyzzlLLli116aWXKjc3t8r+PvroIw0bNkwtW7ZUVFSU7rzzTh0+fNhrxwcAQG34PAAtX75caWlpmjVrlrKzsxUbG6vExEQVFhZWW76srEw9e/bUvHnz1LFjx1Nut3///srLy3O/PvroI28dwhnZu1d6773j/zaWm2++WUuWLHG/f+GFFzRlyhSPMvfdd59WrFihF198UdnZ2erVq5cSExNVXHz8eS179uzRNddco6SkJOXk5OjWW2/VAw884LGNnTt3atSoURo3bpz++9//avny5froo4+UkpLi/YMEAKAmxseGDBlipk+f7n5fUVFhOnfubNLT00/72e7du5snnniiyvJZs2aZ2NjYetfJ6XQaScbpdFZZ99NPP5mtW7ean376qd7br/TXvxoTEGCMdPzfv/71jDdZo+TkZHP11VebwsJCExwcbHJzc01ubq4JCQkx+/fvN1dffbVJTk42hw4dMkFBQebll192f7a8vNx07tzZPPbYY8YYY2bMmGH69evnsf3777/fSDI//vijMcaYW265xUydOtWjzIcffmgCAgLc7Xeq/w0rNWR7AwCat5p+v0/m0x6g8vJyZWVlaeTIke5lAQEBGjlypDZu3HhG296+fbs6d+6snj176vrrr9fu3btPWfbo0aMqKSnxeHnb3r3S1KmS6/jz4ORySbff3jg9Qe3bt9fo0aOVmZmpJUuWaPTo0WrXrp17/c6dO3Xs2DFddNFF7mVBQUEaMmSItm3bJknatm2b4uPjPbY7dOhQj/dffvmlMjMz1aZNG/crMTFRLpdLu3bt8uIRAgBQM58+C+zAgQOqqKhQZGSkx/LIyEh9/fXX9d5ufHy8MjMz1adPH+Xl5WnOnDkaNmyYNm/erNDQ0Crl09PTNWfOnHrvrz62b/8l/FSqqJB27JC6dvX+/m+++Wb3UNTixYu9so9Dhw7p9ttv15133lllHROuAcA/FRUVuR9qWp3GfqhpfTXLh6FeccUV7r/PO+88xcfHq3v37nr11Vd1yy23VCk/Y8YMpaWlud+XlJQoKirKq3Xs3VsKCPAMQYGBUq9eXt2t26hRo1ReXi6bzabExESPdTExMbLb7fr444/VvXt3SdKxY8f0xRdfKDU1VZJ09tln65///KfH5z799FOP93Fxcdq6dat6NdZBAQC8qqioSIsWLTptuZSUlCYfgnw6BNauXTsFBgaqoKDAY3lBQUGNE5zrqm3btjrrrLO0Y8eOatcHBwcrLCzM4+VtXbtKf/7z8dAjHf/3uecap/fn+P4CtW3bNm3dulWBlZX4/1q3bq3f/e53uvfee7V27Vpt3bpVt912m8rKytwBctq0adq+fbvuvfdeffPNN1q6dKkyMzM9tnP//ffrk08+UUpKinJycrR9+3a9+eabTIIGAD9VU89Pfcr5kk8DkN1u16BBg7R+/Xr3MpfLpfXr11eZT3ImDh06pJ07d6pTp04Nts2GcMstUm7u8avAcnOPv29MNYW9efPmady4cbrxxhsVFxenHTt2aN26dfrVr34l6fgQ1ooVK/TGG28oNjZWzz77rB555BGPbZx33nl6//339e2332rYsGEaOHCgZs6cqc6dO3v92AAAqInNGGN8WYHly5crOTlZzz33nIYMGaKMjAy9+uqr+vrrrxUZGanJkyerS5cuSk9Pl3Q8VW7dulWSdOWVV+r666/X9ddfrzZt2riHWu655x4lJSWpe/fu2rdvn2bNmqWcnBxt3bpV7du3P22dSkpK5HA45HQ6qwSEI0eOaNeuXerRo4dCQkIauDVwMtobAJqOvLw8/fnPf3a/dzpDVVwcofDwIjkcpe7lU6dO9UmnQ02/3yfz+RygCRMmaP/+/Zo5c6by8/M1YMAArV271j0xevfu3QoI+KWjat++fR437Js/f77mz5+vhIQEbdiwQZK0d+9eXXfddSoqKlL79u118cUX69NPP61V+AEAAKeXnT1Qq1aNkTEBstlcSkparbi4Tb6uVq35PABJxydLnWpeSGWoqRQdHa3TdVotW7asoaoGAABO4nSGusOPJBkToFWrxigmZodHT1BT5vM7QQMAAP9SXByhk28l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8uRwOHTeeedp3bp1uvzyyxv12AAAQNPk8/sANUXcBwhAQzvxPkA14T5AQP3V5ffb5z1AAGAFERERSklJqfE+P3a7nfADNBICEAA0EsIN0HQ02/sAAQAAnAoBCAAAWA4BCAAAWE695wAdPHhQO3bskCT16tVLbdu2bag6AQAAeFWde4Byc3M1evRotWvXTvHx8YqPj1e7du00ZswY5ebmeqGKAAAADatOPUB79uzRBRdcoKCgIM2dO1dnn322JGnr1q165plnNHToUH3xxRfq2rWrVyoLAADQEOp0I8RbbrlFO3bs0Lp16xQSEuKx7qefftKoUaPUu3dv/fWvf23wijYmboQIAID/8dqNENeuXavly5dXCT+S1LJlS82dO1cTJ06sW20BAAAaWZ3mAB04cEDR0dGnXN+zZ08VFxefaZ0AAAC8qk4BqFOnTu4nsVdn8+bN6tix4xlXCgAAwJvqFIDGjh2re+65R/v376+yrrCwUPfff7/Gjh3bUHUDAADwijpNgv7xxx8VHx+v/Px83XDDDerbt6+MMdq2bZuWLl2qjh076tNPP1V4eLg36+x1TIIGAMD/eG0S9K9+9St99tlnevDBB7Vs2TIdPHhQktS2bVtNmjRJjzzyiN+HHwAA0PzVqQfoRMYY91BY+/btZbPZGrRivkQPEAAA/sdrPUAnstls6tChQ30/DgAA4DN1fhTGmjVrdOutt+q+++7Ttm3bPNb9+OOPGjFiRINVDgAAwBvqFICWLl2qq666Svn5+dq4caPi4uL08ssvu9eXl5fr/fffb/BKAgAANKQ6DYE9/vjjWrBgge68805J0quvvqqbb75ZR44c0S233OKVCgIAADS0OgWg7du3Kykpyf1+/Pjxat++va666iodO3ZMv/nNbxq8ggAAAA2tTgEoLCxMBQUF6tGjh3vZpZdeqtWrV2vMmDHau3dvg1cQAACgodVpDtCQIUP0r3/9q8ryhIQErVq1ShkZGQ1VLwAAAK+pUwD63//932qfBC9Jw4cP16pVqzR58uQGqRgAAIC31OlGiCUlJbUq5+83D+RGiAAA+B+v3Qixbdu2tbrjc0VFRV02CwAA0KjqFIDee+8999/GGF155ZX661//qi5dujR4xQAAALylTgEoISHB431gYKAuuOAC9ezZs0ErBQAA4E11fhQGAACAvyMAAQAAyznjAFSb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QKINJNpAog0k2kBqGm3AJGgAAGA59AABAADLIQABAADLIQABAADLIQABAADLIQDVw+LFixUdHa2QkBDFx8fr888/r7F8RkaG+vTpo5YtWyoqKkr/+7//qyNHjrjXz549WzabzePVt29fbx/GGalLGxw7dkwPP/ywYmJiFBISotjYWK1du/aMttkUNHQb+NN58MEHHygpKUmdO3eWzWbTG2+8cdrPbNiwQXFxcQoODlavXr2UmZlZpYw/nQPeaAN/OgekurdBXl6eJk2apLPOOksBAQFKTU2tttw//vEP9e3bVyEhITr33HO1Zs2ahq98A/FGG2RmZlY5D0JCQrxzAA2grm2wcuVKXX755Wrfvr3CwsI0dOhQrVu3rko5b38fEIDqaPny5UpLS9OsWbOUnZ2t2NhYJSYmqrCwsNryS5cu1QMPPKBZs2Zp27Ztev7557V8+XI9+OCDHuX69++vvLw89+ujjz5qjMOpl7q2we9//3s999xzWrhwobZu3app06bpN7/5jTZt2lTvbfqaN9pA8p/z4PDhw4qNjdXixYtrVX7Xrl0aPXq0Lr30UuXk5Cg1NVW33nqrx5eev50D3mgDyX/OAanubXD06FG1b99ev//97xUbG1ttmU8++UTXXXedbrnlFm3atEljx47V2LFjtXnz5oaseoPxRhtIx++QfOJ58P333zdUlRtcXdvggw8+0OWXX641a9YoKytLl156qZKSkhr/N8GgToYMGWKmT5/ufl9RUWE6d+5s0tPTqy0/ffp0M2LECI9laWlp5qKLLnK/nzVrlomNjfVKfb2hrm3QqVMns2jRIo9l11xzjbn++uvrvU1f80Yb+Nt5UEmSef3112ssc99995n+/ft7LJswYYJJTEx0v/e3c+BEDdUG/noOGFO7NjhRQkKCueuuu6osHz9+vBk9erTHsvj4eHP77befYQ29r6HaYMmSJcbhcDRYvRpTXdugUr9+/cycOXPc7xvj+4AeoDooLy9XVlaWRo4c6V4WEBCgkSNHauPGjdV+5sILL1RWVpa76+67777TmjVrdOWVV3qU2759uzp37qyePXvq+uuv1+7du713IGegPm1w9OjRKt23LVu2dP+XbX226UveaINK/nIe1NXGjRs92kuSEhMT3e3lb+dAfZyuDSo113OgtmrbTs3doUOH1L17d0VFRenqq6/Wli1bfF0lr3G5XCotLVV4eLikxvs+IADVwYEDB1RRUaHIyEiP5ZGRkcrPz6/2M5MmTdLDDz+siy++WEFBQYqJidHw4cM9hsDi4+OVmZmptWvX6plnntGuXbs0bNgwlZaWevV46qM+bZCYmKgFCxZo+/btcrlceuedd7Ry5Url5eXVe5u+5I02kPzrPKir/Pz8aturpKREP/30k9+dA/VxujaQmvc5UFunaqfmch7URp8+ffTCCy/ozTff1N///ne5XC5deOGF2rt3r6+r5hXz58/XoUOHNH78eEmN95tAAPKyDRs26JFHHtHTTz+t7OxsrVy5Um+99Zbmzp3rLnPFFVfot7/9rc477zwlJiZqzZo1OnjwoF599VUf1rzhPPnkk+rdu7f69u0ru92ulJQUTZkyRQEB1jn9atMGzf08wOlxDkCShg4dqsmTJ2vAgAFKSEjQypUr1b59ez333HO+rlqDW7p0qebMmaNXX31VHTp0aNR9W+cXqAG0a9dOgYGBKigo8FheUFCgjh07VvuZP/zhD7rxxht166236txzz9VvfvMbPfLII0pPT5fL5ar2M23bttVZZ52lHTt2NPgxnKn6tEH79u31xhtv6PDhw/r+++/19ddfq02bNurZs2e9t+lL3miD6jTl86CuOnbsWG17hYWFqWXLln53DtTH6dqgOs3pHKitU7VTczkP6iMoKEgDBw5sdufBsmXLdOutt+rVV1/1GO5qrO8DAlAd2O12DRo0SOvXr3cvc7lcWr9+vYYOHVrtZ8rKyqr0dAQGBkqSzCkew3bo0CHt3LlTnTp1aqCaN5z6tEGlkJAQdenSRT///LNWrFihq6+++oy36QveaIPqNOXzoK6GDh3q0V6S9M4777jby9/Ogfo4XRtUpzmdA7VVn3Zq7ioqKvTVV181q/PglVde0ZQpU/TKK69o9OjRHusa7fugwaZTW8SyZctMcHCwyczMNFu3bjVTp041bdu2Nfn5+cYYY2688UbzwAMPuMvPmjXLhIaGmldeecV899135u233zYxMTFm/Pjx7jJ333232bBhg9m1a5f5+OOPzciRI027du1MYWFhox9fbdS1DT799FOzYsUKs3PnTvPBBx+YESNGmB49epgff/yx1ttsarzRBv50HpSWlppNmzaZTZs2GUlmwYIFZtOmTeb77783xhjzwAMPmBtvvNFd/rvvvjOtWrUy9957r9m2bZtZvHixCQwMNGvXrnWX8bdzwBtt4E/ngDF1bwNjjLv8oEGDzKRJk8ymTZvMli1b3Os//vhj06JFCzN//nyzbds2M2vWLBMUFGS++uqrRj222vJGG8yZM8esW7fO7Ny502RlZZmJEyeakJAQjzJNSV3b4OWXXzYtWrQwixcvNnl5ee7XwYMH3WUa4/uAAFQPCxcuNN26dTN2u90MGTLEfPrpp+51CQkJJjk52f3+2LFjZvbs2SYmJsaEhISYqKgo8z//8z8eP3wTJkwwnTp1Mna73XTp0sVMmDDB7NixoxGPqO7q0gYbNmwwZ599tgkODjYRERHmxhtvND/88EOdttkUNXQb+NN58N577xlJVV6Vx5ycnGwSEhKqfGbAgAHGbrebnj17miVLllTZrj+dA95oA386B4ypXxtUV7579+4eZV599VVz1llnGbvdbvr372/eeuutxjmgevBGG6Smprr/fxAZGWmuvPJKk52d3XgHVUd1bYOEhIQay1fy9veBzZhTjMMAAAA0U8wBAgAAlkMAAgAAlkMAAgAAlkMAAgAAlkMAAgAAlkMAAgAAlkMAAgAAlkMAAgA/sWHDBtlsNh08eNDXVQH8HgEIQBU33XSTbDab5s2b57H8jTfekM1mc783xugvf/mLhg4dqrCwMLVp00b9+/fXXXfdVesHN5aVlWnGjBmKiYlRSEiI2rdvr4SEBL355pvuMtHR0crIyGiQY/O2yraz2WwKCgpSjx49dN999+nIkSN12s7w4cOVmprqsezCCy9UXl6eHA5HA9YYsCYCEIBqhYSE6NFHH9WPP/5Y7XpjjCZNmqQ777xTV155pd5++21t3bpVzz//vEJCQvTHP/6xVvuZNm2aVq5cqYULF+rrr7/W2rVrde2116qoqKghD6dRjRo1Snl5efruu+/0xBNP6LnnntOsWbPOeLt2u10dO3b0CKEA6qlBH6wBoFlITk42Y8aMMX379jX33nuve/nrr79uKr82XnnlFSPJvPnmm9Vuw+Vy1WpfDofDZGZmnnJ9dc8NqvThhx+aiy++2ISEhJiuXbuaO+64wxw6dMi9/m9/+5sZNGiQadOmjYmMjDTXXXedKSgocK+vfIbR2rVrzYABA0xISIi59NJLTUFBgVmzZo3p27evCQ0NNdddd505fPhwrY4nOTnZXH311R7LrrnmGjNw4ED3+wMHDpiJEyeazp07m5YtW5pzzjnHLF261GMbJx/zrl273PU98VmCr732munXr5+x2+2me/fuZv78+bWqJ2B19AABqFZgYKAeeeQRLVy4UHv37q2y/pVXXlGfPn101VVXVfv52vZSdOzYUWvWrFFpaWm161euXKmuXbvq4YcfVl5envLy8iRJO3fu1KhRozRu3Dj997//1fLly/XRRx8pJSXF/dljx45p7ty5+vLLL/XGG28oNzdXN910U5V9zJ49W4sWLdInn3yiPXv2aPz48crIyNDSpUv11ltv6e2339bChQtrdTwn27x5sz755BPZ7Xb3siNHjmjQoEF66623tHnzZk2dOlU33nijPv/8c0nSk08+qaFDh+q2225zH3NUVFSVbWdlZWn8+PGaOHGivvrqK82ePVt/+MMflJmZWa+6Apbi6wQGoOk5sRfjggsuMDfffLMxxrMHqG/fvuaqq67y+Nxdd91lWrdubVq3bm26dOlSq329//77pmvXriYoKMicf/75JjU11Xz00UceZbp3726eeOIJj2W33HKLmTp1qseyDz/80AQEBJiffvqp2n198cUXRpIpLS01xvzSA/Tuu++6y6SnpxtJZufOne5lt99+u0lMTKzV8SQnJ5vAwEDTunVrExwcbCSZgIAA89prr9X4udGjR5u7777b/T4hIcHcddddHmVO7gGaNGmSufzyyz3K3HvvvaZfv361qitgZfQAAajRo48+qhdffFHbtm07bdmHHnpIOTk5mjlzpg4dOlSr7V9yySX67rvvtH79el177bXasmWLhg0bprlz59b4uS+//FKZmZlq06aN+5WYmCiXy6Vdu3ZJOt5DkpSUpG7duik0NFQJCQmSpN27d3ts67zzznP/HRkZqVatWqlnz54eywoLC2t1PJJ06aWXKicnR5999pmSk5M1ZcoUjRs3zr2+oqJCc+fO1bnnnqvw8HC1adNG69atq1Kv09m2bZsuuugij2UXXXSRtm/froqKijptC7AaAhCAGl1yySVKTEzUjBkzPJb37t1b33zzjcey9u3bq1evXurQoUOd9hEUFKRhw4bp/vvv19tvv62HH35Yc+fOVXl5+Sk/c+jQId1+++3Kyclxv7788ktt375dMTExOnz4sBITExUWFqaXX35ZX3zxhV5//XVJqrLdoKAg99+VV2+dyGazyeVy1fp4WrdurV69eik2NlYvvPCCPvvsMz3//PPu9Y8//riefPJJ3X///XrvvfeUk5OjxMTEGo8XQMNq4esKAGj65s2bpwEDBqhPnz7uZdddd50mTZqkN998U1dffXWD7q9fv376+eefdeTIEdntdtnt9io9GnFxcdq6dat69epV7Ta++uorFRUVad68ee75M//5z38atJ61ERAQoAcffFBpaWmaNGmSWrZsqY8//lhXX321brjhBkmSy+XSt99+q379+rk/V90xn+zss8/Wxx9/7LHs448/1llnnaXAwMCGPxigGaEHCMBpnXvuubr++uv11FNPuZdNnDhR1157rSZOnKiHH35Yn332mXJzc/X+++9r+fLltf4BHj58uJ577jllZWUpNzdXa9as0YMPPqhLL71UYWFhko7fB+iDDz7QDz/8oAMHDkiS7r//fn3yySdKSUlRTk6Otm/frjfffNM9Cbpbt26y2+1auHChvvvuO/3zn/887bCat/z2t79VYGCgFi9eLOl479k777yjTz75RNu2bdPtt9+ugoICj89ER0e72/TAgQPV9kDdfffdWr9+vebOnatvv/1WL774ohYtWqR77rmnUY4L8GcEIAC18vDDD3v8CNtsNi1fvlwZGRlas2aNLrvsMvXp00c333yzoqKi9NFHH9Vqu4mJiXrxxRf161//WmeffbbuuOMOJSYm6tVXX/XYd25urmJiYtS+fXtJx+ftvP/++/r22281bNgwDRw4UDNnzlTnzp0lHR+Oy8zM1D/+8Q/169dP8+bN0/z58xuwRWqvRYsWSklJ0WOPPabDhw/r97//veLi4pSYmKjhw4erY8eOGjt2rMdn7rnnHgUGBqpfv35q3759tfOD4uLi9Oqrr2rZsmU655xzNHPmTD388MPVXukGwJPNGGN8XQkAAIDGRA8QAACwHAIQAK868TL1k18ffvihr6tXJ7t3767xeOp6GTsA32EIDIBX1fRQ1C5duqhly5aNWJsz8/PPPys3N/eU66Ojo9WiBRfXAv6AAAQAACyHITAAAGA5BCAAAGA5BCAAAGA5BCAAAGA5BCAAAGA5BCAAAGA5BCAAAGA5BCAAAGA5/w+jgWJUfxLHXgAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_23.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAHHCAYAAABXx+fLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABHnUlEQVR4nO3dfVxUdd7/8feADCDC6KACKoqipZZ3iLqadxmGXorV1i+18q7MrSQzTNPLTW21UCszb9LyMnU1V6/SWrXWSlb32szSRbnMMlNXM8vboQZvEog5vz+8mBwRBIQZ4Lyej8c8dM75zpnP+S4r777ne77HYhiGIQAAABPx83UBAAAA3kYAAgAApkMAAgAApkMAAgAApkMAAgAApkMAAgAApkMAAgAApkMAAgAApkMAAgAApkMAAoAKavny5bJYLDp69KivSwGqHAIQYGK7du1ScnKybrnlFoWEhKhhw4a6//779e233xZo27NnT1ksFlksFvn5+SksLEw333yzhgwZok8++aRE37tx40b16NFDdevWVfXq1dWkSRPdf//92rx5c1mdWgEvvvii3n///QLbP/vsM02bNk0///xzuX331aZNm+buS4vFourVq6tly5b64x//qKysrDL5jtWrV2vu3LllciygKiIAASY2a9YsrVu3TnfccYdee+01jRo1Sv/zP/+juLg47du3r0D7Bg0aaOXKlfrzn/+sl156SQMGDNBnn32mO++8UwMHDlRubu51v/Pll1/WgAEDZLFYNGnSJL366qu69957dfDgQa1Zs6Y8TlNS0QHo+eef92oAyrdo0SKtXLlSc+bMUfPmzfXCCy+oT58+KotHNBKAgKJV83UBAHwnJSVFq1evltVqdW8bOHCgWrVqpZkzZ2rVqlUe7W02mx566CGPbTNnztSYMWP0+uuvKyYmRrNmzSr0+3799VdNnz5dvXv31scff1xg/+nTp2/wjCqOixcvqnr16kW2ue+++1S7dm1J0mOPPaZ7771X69ev1+eff67OnTt7o0zAtBgBAkysS5cuHuFHkpo1a6ZbbrlF+/fvL9Yx/P39NW/ePLVs2VILFiyQ0+kstO3Zs2eVlZWl22677Zr769at6/H+0qVLmjZtmm666SYFBQUpKipKv//973X48GF3m5dfflldunRReHi4goOD1b59e7377rsex7FYLLpw4YJWrFjhvuw0fPhwTZs2TePHj5ckNW7c2L3vyjk3q1atUvv27RUcHCy73a5Bgwbp+++/9zh+z549deuttyo9PV3du3dX9erV9Z//+Z/F6r8r9erVS5J05MiRItu9/vrruuWWWxQYGKh69epp9OjRHiNYPXv21AcffKDvvvvOfU4xMTElrgeoyhgBAuDBMAydOnVKt9xyS7E/4+/vr8GDB+u5557Tp59+qn79+l2zXd26dRUcHKyNGzfqySeflN1uL/SYeXl56t+/v9LS0jRo0CA99dRTOnfunD755BPt27dPsbGxkqTXXntNAwYM0IMPPqicnBytWbNG/+///T9t2rTJXcfKlSs1cuRIdezYUaNGjZIkxcbGKiQkRN9++63+8pe/6NVXX3WPxtSpU0eS9MILL+i5557T/fffr5EjR+rMmTOaP3++unfvrj179qhmzZrueh0Oh/r27atBgwbpoYceUkRERLH7L19+sAsPDy+0zbRp0/T8888rISFBjz/+uA4cOKBFixZp165d2r59uwICAjR58mQ5nU4dP35cr776qiSpRo0aJa4HqNIMALjCypUrDUnG0qVLPbb36NHDuOWWWwr93HvvvWdIMl577bUijz9lyhRDkhESEmL07dvXeOGFF4z09PQC7d566y1DkjFnzpwC+1wul/vvFy9e9NiXk5Nj3HrrrUavXr08toeEhBjDhg0rcKyXXnrJkGQcOXLEY/vRo0cNf39/44UXXvDY/uWXXxrVqlXz2N6jRw9DkrF48eJCz/tKU6dONSQZBw4cMM6cOWMcOXLEeOONN4zAwEAjIiLCuHDhgmEYhrFs2TKP2k6fPm1YrVbjzjvvNPLy8tzHW7BggSHJeOutt9zb+vXrZzRq1KhY9QBmxCUwAG7ffPONRo8erc6dO2vYsGEl+mz+CMO5c+eKbPf8889r9erVateunT766CNNnjxZ7du3V1xcnMdlt3Xr1ql27dp68sknCxzDYrG4/x4cHOz++08//SSn06lu3bpp9+7dJar/auvXr5fL5dL999+vs2fPul+RkZFq1qyZtm7d6tE+MDBQI0aMKNF33HzzzapTp44aN26sP/zhD2ratKk++OCDQucObdmyRTk5ORo7dqz8/H775/vRRx9VWFiYPvjgg5KfKGBSXAIDIEk6efKk+vXrJ5vNpnfffVf+/v4l+vz58+clSaGhoddtO3jwYA0ePFhZWVn64osvtHz5cq1evVpJSUnat2+fgoKCdPjwYd18882qVq3of6Y2bdqkGTNmKCMjQ9nZ2e7tV4ak0jh48KAMw1CzZs2uuT8gIMDjff369QvMp7qedevWKSwsTAEBAWrQoIH7sl5hvvvuO0mXg9OVrFarmjRp4t4P4PoIQADkdDrVt29f/fzzz/rnP/+pevXqlfgY+bfNN23atNifCQsLU+/evdW7d28FBARoxYoV+uKLL9SjR49iff6f//ynBgwYoO7du+v1119XVFSUAgICtGzZMq1evbrE53All8sli8Wiv/3tb9cMg1fPqblyJKq4unfv7p53BMC7CECAyV26dElJSUn69ttvtWXLFrVs2bLEx8jLy9Pq1atVvXp1de3atVR1xMfHa8WKFTpx4oSky5OUv/jiC+Xm5hYYbcm3bt06BQUF6aOPPlJgYKB7+7Jlywq0LWxEqLDtsbGxMgxDjRs31k033VTS0ykXjRo1kiQdOHBATZo0cW/PycnRkSNHlJCQ4N52oyNgQFXHHCDAxPLy8jRw4EDt2LFD77zzTqnWnsnLy9OYMWO0f/9+jRkzRmFhYYW2vXjxonbs2HHNfX/7298k/XZ5595779XZs2e1YMGCAm2N/1so0N/fXxaLRXl5ee59R48eveaChyEhIddc7DAkJESSCuz7/e9/L39/fz3//PMFFiY0DEMOh+PaJ1mOEhISZLVaNW/ePI+ali5dKqfT6XH3XUhISJFLEgBmxwgQYGLjxo3Thg0blJSUpMzMzAILH1696KHT6XS3uXjxog4dOqT169fr8OHDGjRokKZPn17k9128eFFdunTR7373O/Xp00fR0dH6+eef9f777+uf//yn7r77brVr106SNHToUP35z39WSkqKdu7cqW7duunChQvasmWLnnjiCd11113q16+f5syZoz59+uiBBx7Q6dOntXDhQjVt2lR79+71+O727dtry5YtmjNnjurVq6fGjRurU6dOat++vSRp8uTJGjRokAICApSUlKTY2FjNmDFDkyZN0tGjR3X33XcrNDRUR44c0XvvvadRo0bpmWeeuaH+L6k6depo0qRJev7559WnTx8NGDBABw4c0Ouvv64OHTp4/O/Vvn17rV27VikpKerQoYNq1KihpKQkr9YLVGi+vAUNgG/l375d2KuotjVq1DCa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/9hjj8lisXglTQIAUNlER0drzZo1+uWXX9zbLl26pNWrV6thw4Y+rKx8+TwArV27VikpKZo6dap2796tNm3aKDExUadPn75me7vdrsmTJ2vHjh3au3evRowYoREjRuijjz4q0Pa9997T559/rnr16pX3aQAAUCnFxcUpOjpa69evd29bv369GjZsqHbt2rm3ZWdna8yYMapbt66CgoLUtWtX7dq1y+NYH374oW666SYFBwfr9ttv19GjRwt836effqpu3bopODhY0dHRGjNmjC5cuFBu51cYnwegOXPm6NFHH9WIESPUsmVLLV68WNWrV9dbb711zfY9e/bUPffcoxYtWig2NlZPPfWUWrdurU8//dSj3Q8//KAnn3xSb7/9tgICArxxKgAA3LDjx6WtWy//6S0PP/ywli1b5n7/1ltvacSIER5tJkyYoHXr1mnFihXavXu3mjZtqsTERGVmZkqSvv/+e/3+979XUlKSMjIyNHLkSE2cONHjGIcPH1afPn107733au/evVq7dq0+/fRTJScnl/9JXsWnASgnJ0fp6elKSEhwb/Pz81NCQoJ27Nhx3c8bhqG0tDQdOHBA3bt3d293uVwaMmSIxo8fr1tuueW6x8nOzlZWVpbHCwAAb1u6VGrUSOrV6/KfS5d653sfeughffrpp/ruu+/03Xffafv27XrooYfc+y9cuKBFixbppZdeUt++fdWyZUstWbJEwcHBWvp/RS5atEixsbF65ZVXdPPNN+vBBx8sMH8oNTVVDz74oMaOHatmzZqpS5cumjdvnv785z/r0qVL3jnZ/+PTp8GfPXtWeXl5ioiI8NgeERGhb775ptDPOZ1O1a9fX9nZ2fL399frr7+u3r17u/fPmjVL1apV05gxY4pVR2pqqp5//vnSnQQAAGXg+HFp1CjJ5br83uWS/vAHKTFRatCgfL+7Tp066tevn5YvXy7DMNSvXz/Vrl3bvf/w4cPKzc3Vbbfd5t4WEBCgjh07av/+/ZKk/fv3q1OnTh7H7dy5s8f7//3f/9XevXv19ttvu7cZhiGXy6UjR46oRYsW5XF61+TTAFRaoaGhysjI0Pnz55WWlqaUlBQ1adJEPXv2VHp6ul577TXt3r1bFoulWMebNGmSUlJS3O+zsrIUHR1dXuUDAFDAwYO/hZ98eXnSoUPlH4Cky5fB8i9FLVy4sFy+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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_24.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAHHCAYAAABXx+fLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABI1UlEQVR4nO3de1yUVeLH8e+ADCDCGKgoSqJomlYi3lbLSy2GrWLX9VZpdrG2sIyytDYvWaFlZl6ytpelWZZtaqW5dGG1suyyqF02MzPULMWEHBBXIOb8/vDH5MRFQJgBns/79ZqX8jznOXPO08R8Pc95zmMzxhgBAABYiJ+vGwAAAOBtBCAAAGA5BCAAAGA5BCAAAGA5BCAAAGA5BCAAAGA5BCAAAGA5BCAAAGA5BCAAAGA5BCAAqKOWLVsmm82mPXv2+LopQINDAAIs7PPPP1dycrK6du2qkJAQnXnmmRoxYoS+++67UmUHDRokm80mm80mPz8/hYWFqVOnTrr22mv17rvvVul9161bp4EDB6pFixZq3Lix2rdvrxEjRigtLa2mulbKI488otdff73U9o8//lgzZszQkSNHau29/2jGjBnuc2mz2dS4cWN16dJFf//735Wbm1sj77Fy5UrNnz+/RuoCGiICEGBhc+bM0erVq/XnP/9ZTz75pCZMmKAPPvhA8fHx+vrrr0uVb9OmjVasWKEXXnhBjz32mIYPH66PP/5YF198sUaOHKmioqJTvufcuXM1fPhw2Ww2TZ06VU888YSuvPJK7dq1S6+88kptdFNSxQFo5syZXg1AJZYsWaIVK1Zo3rx56ty5sx5++GENGTJENfGIRgIQULFGvm4AAN9JSUnRypUrZbfb3dtGjhypc889V7Nnz9aLL77oUd7hcOiaa67x2DZ79mzdfvvteuqppxQTE6M5c+aU+36//fabZs2apcGDB+udd94ptf/QoUOn2aO649ixY2rcuHGFZa666io1a9ZMknTLLbfoyiuv1Jo1a/TJJ5+ob9++3mgmYFmMAAEW1q9fP4/wI0kdO3ZU165dtWPHjkrV4e/vrwULFqhLly5atGiRnE5nuWUPHz6s3NxcnX/++WXub9GihcfPx48f14wZM3TWWWcpKChIrVq10hVXXKHdu3e7y8ydO1f9+vVTRESEgoOD1aNHD7322mse9dhsNuXn52v58uXuy07XXXedZsyYocmTJ0uS2rVr59538pybF198UT169FBwcLDCw8M1atQo/fjjjx71Dxo0SOecc44yMjI0YMAANW7cWPfdd1+lzt/JLrroIklSZmZmheWeeuopde3aVYGBgYqKitJtt93mMYI1aNAgvfXWW9q7d6+7TzExMVVuD9CQMQIEwIMxRllZWeratWulj/H399fo0aP1wAMPaPPmzRo6dGiZ5Vq0aKHg4GCtW7dOEydOVHh4eLl1FhcXa9iwYUpPT9eoUaN0xx13KC8vT++++66+/vprxcbGSpKefPJJDR8+XFdffbUKCwv1yiuv6K9//avWr1/vbseKFSt04403qnfv3powYYIkKTY2ViEhIfruu+/08ssv64knnnCPxjRv3lyS9PDDD+uBBx7QiBEjdOONN+qXX37RwoULNWDAAG3btk1NmzZ1tzc7O1uXXHKJRo0apWuuuUaRkZGVPn8lSoJdREREuWVmzJihmTNnKiEhQX/729+0c+dOLVmyRJ9//rk++ugjBQQE6P7775fT6dT+/fv1xBNPSJKaNGlS5fYADZoBgJOsWLHCSDJLly712D5w4EDTtWvXco9bu3atkWSefPLJCuufNm2akWRCQkLMJZdcYh5++GGTkZFRqtxzzz1nJJl58+aV2udyudx/P3bsmMe+wsJCc84555iLLrrIY3tISIgZN25cqboee+wxI8lkZmZ6bN+zZ4/x9/c3Dz/8sMf2r776yjRq1Mhj+8CBA40k8/TTT5fb75NNnz7dSDI7d+40v/zyi8nMzDTPPPOMCQwMNJGRkSY/P98YY8zzzz/v0bZDhw4Zu91uLr74YlNcXOyub9GiRUaSee6559zbhg4datq2bVup9gBWxCUwAG7ffvutbrvtNvXt21fjxo2r0rElIwx5eXkVlps5c6ZWrlyp7t276+2339b999+vHj16KD4+3uOy2+rVq9WsWTNNnDixVB02m8399+DgYPfff/31VzmdTvXv319bt26tUvv/aM2aNXK5XBoxYoQOHz7sfrVs2VIdO3bUxo0bPcoHBgZq/PjxVXqPTp06qXnz5mrXrp1uvvlmdejQQW+99Va5c4fee+89FRYWatKkSfLz+/3X90033aSwsDC99dZbVe8oYFFcAgMgSTp48KCGDh0qh8Oh1157Tf7+/lU6/ujRo5Kk0NDQU5YdPXq0Ro8erdzcXH366adatmyZVq5cqaSkJH399dcKCgrS7t271alTJzVqVPGvqfXr1+uhhx7S9u3bVVBQ4N5+ckiqjl27dskYo44dO5a5PyAgwOPn1q1bl5pPdSqrV69WWFiYAgIC1KZNG/dlvfLs3btX0ongdDK73a727du79wM4NQIQADmdTl1yySU6cuSIPvzwQ0VFRVW5jpLb5jt06FDpY8LCwjR48GANHjxYAQEBWr58uT799FMNHDiwUsd/+OGHGj58uAYMGKCnnnpKrVq1UkBAgJ5//nmtXLmyyn04mcvlks1m07/+9a8yw+Af59ScPBJVWQMGDHDPOwLgXQQgwOKOHz+upKQkfffdd3rvvffUpUuXKtdRXFyslStXqnHjxrrggguq1Y6ePXtq+fLlOnDggKQTk5Q//fRTFRUVlRptKbF69WoFBQXp7bffVmBgoHv7888/X6pseSNC5W2PjY2VMUbt2rXTWWedVdXu1Iq2bdtKknbu3Kn27du7txcWFiozM1MJCQnubac7AgY0dMwBAiysuLhYI0eO1JYtW/TPf/6zWmvPFBcX6/bbb9eOHTt0++23KywsrNyyx44d05YtW8rc969//UvS75d3rrzySh0+fFiLFi0qVdb8/0KB/v7+stlsKi4udu/bs2dPmQsehoSElLnYYUhIiCSV2nfFFVfI399fM2fOLLUwoTFG2dnZZXeyFiUkJMhut2vBggUebVq6dKmcTqfH3XchISEVLkkAWB0jQICF3XXXXXrzzTeVlJSknJycUgsf/nHRQ6fT6S5z7Ngxff/991qzZo12796tUaNGadasWRW+37Fjx9SvXz/96U9/0pAhQxQdHa0jR47o9ddf14cffqjLLrtM3bt3lySNHTtWL7zwglJSUvTZZ5+pf//+ys/P13vvvadbb71Vl156qYYOHap58+ZpyJAhGjNmjA4dOqTFixerQ4cO+vLLLz3eu0ePHnrvvfc0b948RUVFqV27durTp4969OghSbr//vs1atQoBQQEKCkpSbGxsXrooYc0depU7dmzR5dddplCQ0OVmZmptWvXasKECbr77rtP6/xXVfPmzTV16lTNnDlTQ4YM0fDhw7Vz50499dRT6tWrl8d/rx49emjVqlVKSUlRr1691KRJEyUlJXm1vUCd5stb0AD4Vsnt2+W9KirbpEkT07FjR3PNNdeYd955p1LvV1RUZJ599llz2WWXmbZt25rAwEDTuHFj0717d/PYY4+ZgoICj/LHjh0z999/v2nXrp0JCAgwLVu2NFdddZXZvXu3u8zSpUtNx44dTWBgoOncubN5/vnn3beZn+zbb781AwYMMMHBwUaSxy3xs2bNMq1btzZ+fn6lbolfvXq1ueCCC0xISIgJCQkxnTt3NrfddpvZuXOnx7mpaImAPypp3y+//FJhuT/eBl9i0aJFpnPnziYgIMBERkaav/3tb+bXX3/1KHP06FEzZswY07RpUyOJW+KBP7AZUwMPnQEAAKhHmAMEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAsh4UQy+ByufTzzz8rNDSU5eQBAKgnjDHKy8tTVFSU/PwqHuMhAJXh559/VnR0tK+bAQAAquHHH39UmzZtKixDACpDaGiopBMnsKLnGgEAgLojNzdX0dHR7u/xihCAylBy2SssLIwABABAPVOZ6StMggYAAJZDAAIAAJZDAAIAAJbDHCAAAGpIcXGxioqKfN2MBisgIED+/v41UhcBCACA02SM0cGDB3XkyBFfN6XBa9q0qVq2bHna6/QRgAAAOE0l4adFixZq3Lgxi+jWAmOMjh07pkOHDkmSWrVqdVr1EYAAADgNxcXF7vATERHh6+Y0aMHBwZKkQ4cOqUWLFqd1OYxJ0AAAnIaSOT+NGzf2cUusoeQ8n+5cKwIQAAA1gMte3lFT55lLYEA9lZ2drcLCwnL32+12huMBoBwEIKAeys7O1qJFi05ZLjk5mRAEAGXgEhhQD1U08lOdcgCs6brrrpPNZpPNZlNAQIAiIyM1ePBgPffcc3K5XJWuZ9myZWratGntNbQWMAIEAICP+fKS9pAhQ/T888+ruLhYWVlZSktL0x133KHXXntNb775pho1aphRoWH2CgCAesLXl7QDAwPVsmVLSVLr1q0VHx+vP/3pT/rzn/+sZcuW6cYbb9S8efP0/PPP64cfflB4eLiSkpL06KOPqkmTJtq0aZPGjx8v6fcJytOnT9eMGTO0YsUKPfnkk9q5c6dCQkJ00UUXaf78+WrRokWN96OquAQGNABOZ6gyM2PkdIb6uikAqqguXtK+6KKL1K1bN61Zs0aS5OfnpwULFui///2vli9frn//+9+65557JEn9+vXT/PnzFRYWpgMHDujAgQO6++67JZ24VX3WrFn64osv9Prrr2vPnj267rrrvNaPijACBNRzW7d217p1w2SMn2w2l5KS1is+fpuvmwWgnuvcubO+/PJLSdKkSZPc22NiYvTQQw/plltu0VNPPSW73S6HwyGbzeYeSSpx/fXXu//evn17LViwQL169dLRo0fVpEkTr/SjPIwAAfWY0xnqDj+SZIyf1q0bxkgQgNNmjHFf0nrvvff05z//Wa1bt1ZoaKiuvfZaZWdn69ixYxXWkZGRoaSkJJ155pkKDQ3VwIEDJUn79u2r9fafCgEIqMdyciLc4aeEMX7KyQn3UYsANBQ7duxQu3bttGfPHg0bNkznnXeeVq9erYyMDC1evFhSxZfl8vPzlZiYqLCwML300kv6/PPPtXbt2lMe5y1cAgPqIbvdLkkKD8+WzebyCEE2m0vh4Tke5QCgKv7973/rq6++0p133qmMjAy5XC49/vjj8vM78bvm1Vdf9Shvt9tVXFzsse3bb79Vdna2Zs+erejoaEnSf/7zH+90oBIIQEA9FBERoeTkZBUWFqp161zde69DxcU2+fsbzZmTqzFjRrMSNIBKKSgo0MGDBz1ug09NTdWwYcM0duxYff311yoqKtLChQuVlJSkjz76SE8//bRHHTExMTp69KjS09PVrVs3NW7cWGeeeabsdrsWLlyoW265RV9//bVmzZrlo16WxiUwoJ6KiIhQq1atdNddTbVnj00bN0p79th0111N1apVK8IPgEpJS0tTq1atFBMToyFDhmjjxo1asGCB3njjDfn7+6tbt26aN2+e5syZo3POOUcvvfSSUlNTPero16+fbrnlFo0cOVLNmzfXo48+qubNm2vZsmX65z//qS5dumj27NmaO3euj3pZms0YY3zdiLomNzdXDodDTqdTYWFhvm4OAKAOO378uDIzM9WuXTsFBQVV+XhfrwNU31R0vqvy/c0lMAAAfOjkS9rl4ZJ2zSMAAQDgY4Qb72MOEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAqBWbNm2SzWbTkSNHKn1MTEyM5s+fX2ttKkEAAgDAoq677jrZbDbdcsstpfbddtttstlsuu6667zfMC+oEwFo8eLFiomJUVBQkPr06aPPPvus3LJr1qxRz5491bRpU4WEhCguLk4rVqwot/wtt9wim83mlTQJAEB9Ex0drVdeeUX/+9//3NuOHz+ulStX6swzz/Rhy2qXzwPQqlWrlJKSounTp2vr1q3q1q2bEhMTdejQoTLLh4eH6/7779eWLVv05Zdfavz48Ro/frzefvvtUmXXrl2rTz75RFFRUbXdDQAA6qX4+HhFR0drzZo17m1r1qzRmWeeqe7du7u3FRQU6Pbbb1eLFi0UFBSkCy64QJ9//rlHXRs2bNBZZ52l4OBgXXjhhdqzZ0+p99u8ebP69++v4OBgRUdH6/bbb1d+fn6t9a88Pg9A8+bN00033aTx48erS5cuevrpp9W4cWM999xzZZYfNGiQLr/8cp199tmKjY3VHXfcofPOO0+bN2/2KPfTTz9p4sSJeumllxQQEOCNrgAAcNr275c2bjzxp7dcf/31ev75590/P/fccxo/frxHmXvuuUerV6/W8uXLtXXrVnXo0EGJiYnKycmRJP3444+64oorlJSUpO3bt+vGG2/UlClTPOrYvXu3hgwZoiuvvFJffvmlVq1apc2bNys5Obn2O/kHPg1AhYWFysjIUEJCgnubn5+fEhIStGXLllMeb4xRenq6du7cqQEDBri3u1wuXXvttZo8ebK6du16ynoKCgqUm5vr8QIAwNuWLpXatpUuuujEn0uXeud9r7nmGm3evFl79+7V3r179dFHH+maa65x78/Pz9eSJUv02GOP6ZJLLlGXLl307LPPKjg4WEv/v5FLlixRbGysHn/8cXXq1ElXX311qflDqampuvrqqzVp0iR17NhR/fr104IFC/TCCy/o+PHj3uns//Pp0+APHz6s4uJiRUZGemyPjIzUt99+W+5xTqdTrVu3VkFBgfz9/fXUU09p8ODB7v1z5sxRo0aNdPvtt1eqHampqZo5c2b1OgEAQA3Yv1+aMEFyuU787HJJN98sJSZKbdrU7ns3b95cQ4cO1bJly2SM0dChQ9WsWTP3/t27d6uoqEjnn3++e1tAQIB69+6tHTt2SJJ27NihPn36eNTbt29fj5+/+OILffnll3rppZfc24wxcrlcyszM1Nlnn10b3SuTTwNQdYWGhmr79u06evSo0tPTlZKSovbt22vQoEHKyMjQk08+qa1bt8pms1WqvqlTpyolJcX9c25urqKjo2ur+QAAlLJr1+/hp0RxsfT997UfgKQTl8FKLkUtXry4Vt7j6NGjuvnmm8scoPD2hGufBqBmzZrJ399fWVlZHtuzsrLUsmXLco/z8/NThw4dJElxcXHasWOHUlNTNWjQIH344Yc6dOiQx4ksLi7WXXfdpfnz55c5ISswMFCBgYE10ykAAKqhY0fJz88zBPn7S///dVfrhgwZosLCQtlsNiUmJnrsi42Nld1u10cffaS2bdtKkoqKivT5559r0qRJkqSzzz5bb775psdxn3zyicfP8fHx+uabb9zf4b7k0zlAdrtdPXr0UHp6unuby+VSenp6qWGzirhcLhUUFEiSrr32Wn355Zfavn27+xUVFaXJkyeXeacYAAB1QZs20j/+cSL0SCf+fOYZ74z+nHg/f+3YsUPffPON/Esa8f9CQkL0t7/9TZMnT1ZaWpq++eYb3XTTTTp27JhuuOEGSSeWndm1a5cmT56snTt3auXKlVq2bJlHPffee68+/vhjJScna/v27dq1a5feeOMNn0yC9vklsJSUFI0bN049e/ZU7969NX/+fOXn57tnn48dO1atW7dWamqqpBPzdXr27KnY2FgVFBRow4YNWrFihZYsWSJJioiIUEREhMd7BAQEqGXLlurUqZN3OwcAQBXccMOJOT/ff39i5Mdb4adEWFhYuftmz57tvskoLy9PPXv21Ntvv60zzjhD0olLWKtXr9add96phQsXqnfv3nrkkUd0/fXXu+s477zz9P777+v+++9X//79ZYxRbGysRo4cWet9+yOfB6CRI0fql19+0bRp03Tw4EHFxcUpLS3NPTF637598vP7faAqPz9ft956q/bv36/g4GB17txZL774ok9OHgAANa1NG+8Fnz+O0PzR66+/7v57UFCQFixYoAULFpRbftiwYRo2bJjHtj/eTt+rVy+988475dZR1lSV2mAzxhivvFM9kpubK4fDIafTWWEaBgDg+PHjyszMVLt27RQUFOTr5jR4FZ3vqnx/+3whRAAAAG8jAAEAAMshAAEAAMshAAEAUAOYUusdNXWeCUAAAJyGkgduHzt2zMctsYaS83y6Dzr3+W3wAADUZ/7+/mratKkOHTokSWrcuHGlH8WEyjPG6NixYzp06JCaNm1aarHGqiIAAQBwmkoe31QSglB7mjZtWuHjsiqLAAQAwGmy2Wxq1aqVWrRooaKiIl83p8EKCAg47ZGfEgQgAABqiL+/f419QaN2MQkaAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAAB4zf790saNJ/70JQIQAACoVdnZ2Tpw4IAef/yI2rY1uugiqW1bo8cfP6IDBw4oOzvb623iURgAAKDWZGdna9GiRXI6QzV//iQZY5MkuVw2TZ4cpp9+ek4OR56Sk5MVERHhtXYxAgQAAGpNYWGhJCknJ0LGeMYOY/yUkxPuUc5bCEAAAKDWhYdny2ZzeWyz2VwKD8/xSXsIQAAAoNY5HHlKSlrvDkE2m0tJSevlcOT5pD3MAQIAAF4RH79NsbHfKycnXOHhOT4LPxIjQAAAwOtsvm4AI0AAAMA7tm7trnXrhskYP/clsPj4bT5pCyNAAACg1hw5ckSS5HSGusOPdOIOsHXrhsnpDPUo5y0EIAAAUGtsthOXu051G3xJOW8hAAEAgFrjcDgknfo2+JJy3kIAAgAAtY7b4AEAgCXVpdvgCUAAAMBrHI48nwafElwCAwAAlkMAAgAAlkMAAgAAtcZut9douZrCHCAAAFBrIiIilJycrMLCwnLL2O12RUREeLFVBCAAAFDLvB1uKoNLYAAAwHIIQAAAwHIIQAAAoFr275c2bjzxZ31DAAIAAFW2dKnUtq100UUn/ly61NctqhoCEAAAqJL9+6UJEyTX/z/b1OWSbr65fo0EEYAAAECV7Nr1e/gpUVwsff+9b9pTHQQgAABQadnZ2QoLy5Kfn/HY7u9vFBqapezsbB+1rGpYBwgAAFRKdna2Fi1aJEkaNqy71q0bJmP8ZLO5NHToeq1fv02SlJycXCfX/jkZAQgAAFTKyas5x8dvU2zs98rJCVd4eI7HE94rWvW5riAAAQCAanE48jyCT33CHCAAAGA5BCAAAGA5BCAAAGA5BKB6oD4vNQ4AQF1EAKrj6vtS4wAA1EUEoDoqOztbGRlZmjDB/GGpcaOMjPqz0BQAoOGw2+01Ws6XuA2+DipZaCozM0Yu1ziPfcXFNi1c+C+1a7e3Xiw0BQBoOCIiIpScnFzhOj92u71efDcRgOqgkg9WeHi2bDaXjPl9oM5mcyk8PMejHAAA3lIfwk1l1IlLYIsXL1ZMTIyCgoLUp08fffbZZ+WWXbNmjXr27KmmTZsqJCREcXFxWrFihXt/UVGR7r33Xp177rkKCQlRVFSUxo4dq59//tkbXalRDkeekpLWy2Y7cQ3MZnMpKWl9vV10CnUPE+wBWJXPR4BWrVqllJQUPf300+rTp4/mz5+vxMRE7dy5Uy1atChVPjw8XPfff786d+4su92u9evXa/z48WrRooUSExN17Ngxbd26VQ888IC6deumX3/9VXfccYeGDx+u//znPz7o4empaKlxoDqys7NVWFiolSuDdc89DrlcNvn5GT36qFNjxvyv3gxfA8DpsBljzKmL1Z4+ffqoV69e7oeruVwuRUdHa+LEiZoyZUql6oiPj9fQoUM1a9asMvd//vnn6t27t/bu3aszzzzzlPXl5ubK4XDI6XQqLCys8p2pIQcOHNA//vGPU5abMGGCWrVq5YUWoaEomV/mdIZq/vxJpS6vTpo0Xw5HHvPLANRLVfn+9uklsMLCQmVkZCghIcG9zc/PTwkJCdqyZcspjzfGKD09XTt37tSAAQPKLed0OmWz2dS0adMy9xcUFCg3N9fjBTREJfPGcnIiPMKPJBnjp5yccI9yANBQ+TQAHT58WMXFxYqMjPTYHhkZqYMHD5Z7nNPpVJMmTWS32zV06FAtXLhQgwcPLrPs8ePHde+992r06NHlpsHU1FQ5HA73Kzo6uvqdAuqBkgn2Jzt5gj0ANHR1YhJ0VYWGhmr79u36/PPP9fDDDyslJUWbNm0qVa6oqEgjRoyQMUZLliwpt76pU6fK6XS6Xz/++GMtth7wPSbYWw8T3gFPPp0E3axZM/n7+ysrK8tje1ZWllq2bFnucX5+furQoYMkKS4uTjt27FBqaqoGDRrkLlMSfvbu3at///vfFV4LDAwMVGBg4Ol1pgY1pIWmUHcxwd46li6VJkw4sZiqn5/0j39IN9zg61YBvuXTAGS329WjRw+lp6frsssuk3RiEnR6erqSk5MrXY/L5VJBQYH755Lws2vXLm3cuLHeTeZsSAtNoW5zOPIIPg1Ydna29uz5TRMmtJDLZZP0+4rycXGHFBPTiN8jsCyf3wafkpKicePGqWfPnurdu7fmz5+v/Px8jR8/XpI0duxYtW7dWqmpqZJOzNfp2bOnYmNjVVBQoA0bNmjFihXuS1xFRUW66qqrtHXrVq1fv17FxcXu+UTh4eH1ZtSEX0oATgcrygMV83kAGjlypH755RdNmzZNBw8eVFxcnNLS0twTo/ft2yc/v9+nKuXn5+vWW2/V/v37FRwcrM6dO+vFF1/UyJEjJUk//fST3nzzTUknLo+dbOPGjR6XyQCgoWJFeaBiPg9AkpScnFzuJa8/Tm5+6KGH9NBDD5VbV0xMjHy8tBFQZzG/zHpKJryvWzdMxvgx4R34f3UiAAHwDuaX1R3790u7dkkdO0pt2tTuezHhHSiNAARYDOHGd3z5GBImvAOeCEAA4AWlH0NScleWTZMnh+mnn57jMSSAF9XLhRABoL7hMSRA3UIAAgAv4jEkQN1AAAIAL/LWY0i44w+oGHOAAMDLvHFXFnf8ARUjAAGAD3jjrizCDVA+LoEBAADLIQABAADLIQABgBdYaVLy/v3Sxo0n/gTqKuYAAYAXNPRJyb5c5RqoDgIQAHhJQw0ArHKN+ohLYACA0+LLVa653IbqYgQIkn4fvi4Pw9cATqVkleuTQ1BtrnK9dKk0YYLkckl+ftI//iHdcEOtvBUaIAIQ3MPXJZzOUOXkRCg8PNtjnRKGrwFUpGSV63XrhskYv1pb5To7O1t79vymCRNayOUqudwm3XyzUVzcIcXENOJ3FU6JAASPkZ+tW7uX+uUVH7+tVDkAKEttr3Jd8g+2zMwYuVzjPPYVF9u0cOG/1K7dXv7BhlNiDhDcnM5Qd/iRTly7X7dumJzOUB+3DEB94nDkqV27vbWy0nXJP8RO9VBZ/sGGUyEAwe1UExgBoK7w1kNl0XBxCQxu3p7ACACnwxsPlUXDxQgQ3PgXFYDq8OUq17V5uQ0NGyNA8MC/qABUVUNf5RoNEwEIpTgceQQfAFVCuEF9wyUwWOohjQAASIwAQQxfA6g/+AcbaorNGGN83Yi6Jjc3Vw6HQ06nU2FhYb5uDho4HkMCVA3/z6A8Vfn+ZgQI8CEeQwJUHf8voCYQgAAf4jEkAOAbTIIG6gAeQwIA3kUAAuoAHkMCAN5FAALqgFM92BEAULMIQEAdwGNIAMC7mAQN1BE8hgQAvIcABNQhPIYEALyDS2CAD7GqLQD4BiNAgA/xGBIA8A0CEOBjhBsA8D4ugQEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMvhNnignsrOzmb9IACoJgIQUA9lZ2dr0aJFpyyXnJxMCAKAMnAJDKiH/jjy43SGKjMzRk5naIXlAAAnMAIE1HNbt3bXunXDZIyfbDaXkpLWKz5+m6+bBQB1GiNAQD3mdIa6w48kGeOndeuGlRoJAgB4IgAB9VhOToQ7/JQwxk85OeE+ahEA1A8EIKAeCw/Pls3m8thms7kUHp7joxYBQP1AAALqMYcjT0lJ690hqGQOkMOR5+OWAUDdxiRooJ6Lj9+m2NjvlZMTrvDwHMIPAFQCAQioh+x2u8fPDkdemcHnj+UAACcQgIB6KCIiQsnJyawEDQDVRAAC6inCDQBUX52YBL148WLFxMQoKChIffr00WeffVZu2TVr1qhnz55q2rSpQkJCFBcXpxUrVniUMcZo2rRpatWqlYKDg5WQkKBdu3bVdjcAAEA94fMAtGrVKqWkpGj69OnaunWrunXrpsTERB06dKjM8uHh4br//vu1ZcsWffnllxo/frzGjx+vt99+213m0Ucf1YIFC/T000/r008/VUhIiBITE3X8+HFvdQsAANRhNmOM8WUD+vTpo169erkf7OhyuRQdHa2JEydqypQplaojPj5eQ4cO1axZs2SMUVRUlO666y7dfffdkiSn06nIyEgtW7ZMo0aNOmV9ubm5cjgccjqdCgsLq37nAACA11Tl+9unI0CFhYXKyMhQQkKCe5ufn58SEhK0ZcuWUx5vjFF6erp27typAQMGSJIyMzN18OBBjzodDof69OlTqToBAEDD59NJ0IcPH1ZxcbEiIyM9tkdGRurbb78t9zin06nWrVuroKBA/v7+euqppzR48GBJ0sGDB911/LHOkn1/VFBQoIKCAvfPubm51eoPAACoH+rlXWChoaHavn27jh49qvT0dKWkpKh9+/YaNGhQtepLTU3VzJkza7aRAACgzvLpJbBmzZrJ399fWVlZHtuzsrLUsmXLco/z8/NThw4dFBcXp7vuuktXXXWVUlNTJcl9XFXqnDp1qpxOp/v1448/nk63AABAHefTAGS329WjRw+lp6e7t7lcLqWnp6tv376VrsflcrkvYbVr104tW7b0qDM3N1effvppuXUGBgYqLCzM4wUAABoun18CS0lJ0bhx49SzZ0/17t1b8+fPV35+vsaPHy9JGjt2rFq3bu0e4UlNTVXPnj0VGxurgoICbdiwQStWrNCSJUskSTabTZMmTdJDDz2kjh07ql27dnrggQcUFRWlyy67zFfdBAAAdYjPA9DIkSP1yy+/aNq0aTp48KDi4uKUlpbmnsS8b98++fn9PlCVn5+vW2+9Vfv371dwcLA6d+6sF198USNHjnSXueeee5Sfn68JEyboyJEjuuCCC5SWlqagoCCv9w8AANQ9Pl8HqC5iHSAAAOqferMOEAAAgC9UOQBt2LBBN954o+65555Sa/X8+uuvuuiii2qscQAAALWhSgFo5cqVGj58uA4ePKgtW7aoe/fueumll9z7CwsL9f7779d4IwEAAGpSlSZBP/bYY5o3b55uv/12SdKrr76q66+/XsePH9cNN9xQKw0EAACoaVUKQLt27VJSUpL75xEjRqh58+YaPny4ioqKdPnll9d4AwEAAGpalQJQWFiYsrKy1K5dO/e2Cy+8UOvXr9ewYcO0f//+Gm8gAABATavSHKDevXvrX//6V6ntAwcO1Lp16zR//vyaahcAAECtqVIAuvPOO8tdTHDQoEFat26dxo4dWyMNAwAAqC0shFgGFkIEAKD+qcr3d5XmAPn5+clms1VYxmaz6bfffqtKtQAAAF5VpQC0du3acvdt2bJFCxYskMvlOu1GAQAA1KYqBaBLL7201LadO3dqypQpWrduna6++mo9+OCDNdY4AACA2lDtZ4H9/PPPuummm3Tuuefqt99+0/bt27V8+XK1bdu2JtsHAABQ46o0AiRJTqdTjzzyiBYuXKi4uDilp6erf//+tdE2APVcdna2CgsLy91vt9sVERHhxRYBwAlVCkCPPvqo5syZo5YtW+rll18u85IYAEgnws+iRYtOWS45OZkQBMDrqhSApkyZouDgYHXo0EHLly/X8uXLyyy3Zs2aGmkcgPqropGf6pQDgJpUpQA0duzYU94Gj9K4DAAAQN1SpQC0bNmyWmpGw8VlAOAEpzNUOTkRCg/PlsOR5+vmALC4Kk+CRtVwGQCQtm7trnXrhskYP9lsLiUlrVd8/DZfNwuAhVX7NngAqAynM9QdfiTJGD+tWzdMTmeoj1sGwMoIQABqVU5OhDv8lDDGTzk54T5qEQAQgADUsvDwbNlsno/IsdlcCg/P8VGLAIAA5HVOZ6gyM2MY/keDZ7fbJUkOR56Skta7Q1DJHKCSidAl5QDAm5gE7UVMBIWVREREKDk52T3Bf9q0X7RnTyPFxPymqKheknqxBAQAnyEAeUl5E0FjY7/nlmB4lTfXpTq5nlatpB49aqRaADhtBKBaVjK8X9FEUIcjj8sA8ArWpQKAEwhAtazkMsCePb9pxQojl+v3lbT9/Y0mTrxEMTGN+LKBV7AuFQCcwCRoL4iIiFCPHpH6xz9s8vc/sc3fX3rmGZt69Igk/AAA4GWMAHnRDTdIiYnS999LHTpIbdr4ukUAAFgTAcjL2rQh+AAA4GtcAgMsjHWpAFgVI0CARbEuFQArYwQIsCAeUArA6ghAgIVUZl2qk8sBQENlM8YYXzeirsnNzZXD4ZDT6VRYWJivmwPUqOzsbO3Z85t6925Ral2qTz89xLpUAOqtqnx/MwIEWAzrUgEAk6ABy2JdKgBWRgACLIx1qQBYFZfAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5fg8AC1evFgxMTEKCgpSnz599Nlnn5Vb9tlnn1X//v11xhln6IwzzlBCQkKp8kePHlVycrLatGmj4OBgdenSRU8//XRtdwMAANQjPg1Aq1atUkpKiqZPn66tW7eqW7duSkxM1KFDh8osv2nTJo0ePVobN27Uli1bFB0drYsvvlg//fSTu0xKSorS0tL04osvaseOHZo0aZKSk5P15ptveqtbAACgjrMZY4yv3rxPnz7q1auXFi1aJElyuVyKjo7WxIkTNWXKlFMeX1xcrDPOOEOLFi3S2LFjJUnnnHOORo4cqQceeMBdrkePHrrkkkv00EMPVapdubm5cjgccjqdCgsLq0bPAACAt1Xl+9tnI0CFhYXKyMhQQkLC743x81NCQoK2bNlSqTqOHTumoqIihYeHu7f169dPb775pn766ScZY7Rx40Z99913uvjii8utp6CgQLm5uR4vAADQcPksAB0+fFjFxcWKjIz02B4ZGamDBw9Wqo57771XUVFRHiFq4cKF6tKli9q0aSO73a4hQ4Zo8eLFGjBgQLn1pKamyuFwuF/R0dHV6xQAAKgXfD4Jurpmz56tV155RWvXrlVQUJB7+8KFC/XJJ5/ozTffVEZGhh5//HHddttteu+998qta+rUqXI6ne7Xjz/+6I0uAAAAH2nkqzdu1qyZ/P39lZWV5bE9KytLLVu2rPDYuXPnavbs2Xrvvfd03nnnubf/73//03333ae1a9dq6NChkqTzzjtP27dv19y5cz1Gik4WGBiowMDA0+wRAACoL3w2AmS329WjRw+lp6e7t7lcLqWnp6tv377lHvfoo49q1qxZSktLU8+ePT32FRUVqaioSH5+nt3y9/eXy+Wq2Q4AAIB6y2cjQNKJW9bHjRunnj17qnfv3po/f77y8/M1fvx4SdLYsWPVunVrpaamSpLmzJmjadOmaeXKlYqJiXHPFWrSpImaNGmisLAwDRw4UJMnT1ZwcLDatm2r999/Xy+88ILmzZvns34CAIC6xacBaOTIkfrll180bdo0HTx4UHFxcUpLS3NPjN63b5/HaM6SJUtUWFioq666yqOe6dOna8aMGZKkV155RVOnTtXVV1+tnJwctW3bVg8//LBuueUWr/ULAADUbT5dB6iuYh0gAADqn3qxDhAAAICvEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlNPJ1AwAAQMOWnZ2twsJCSdLPP/spM7OR2rX7TVFRLkmS3W5XRESEV9tEAAIAALUmOztbixYtkiRt3dpd69YNkzF+stlcSkpar/j4bZKk5ORkr4YgLoEBAIBaUzLy43SGusOPJBnjp3XrhsnpDPUo5y0EIAAAUOtyciLc4aeEMX7KyQn3SXsIQAAAoNaFh2fLZnN5bLPZXAoPz/FJewhAAACg1jkceUpKWu8OQSVzgByOPJ+0h0nQAADAK+Ljtyk29nvl5IQrPDzHZ+FHIgABAAAvcjjyfBp8SnAJDAAAWA4BCAAA1Bq73V6j5WoKl8AAAECtiYiIUHJycoXr/LASNAAAaHC8HW4qg0tgAADAcghAAADAcghAAADAcghAAADAcnwegBYvXqyYmBgFBQWpT58++uyzz8ot++yzz6p///4644wzdMYZZyghIaHM8jt27NDw4cPlcDgUEhKiXr16ad++fbXZDQAAUI/4NACtWrVKKSkpmj59urZu3apu3bopMTFRhw4dKrP8pk2bNHr0aG3cuFFbtmxRdHS0Lr74Yv3000/uMrt379YFF1ygzp07a9OmTfryyy/1wAMPKCgoyFvdAgAAdZzNGGN89eZ9+vRRr169tGjRIkmSy+VSdHS0Jk6cqClTppzy+OLiYp1xxhlatGiRxo4dK0kaNWqUAgICtGLFimq3Kzc3Vw6HQ06nU2FhYdWuBwAAeE9Vvr99NgJUWFiojIwMJSQk/N4YPz8lJCRoy5Ytlarj2LFjKioqUnh4uKQTAeqtt97SWWedpcTERLVo0UJ9+vTR66+/XmE9BQUFys3N9XgBAICGy2cB6PDhwyouLlZkZKTH9sjISB08eLBSddx7772Kiopyh6hDhw7p6NGjmj17toYMGaJ33nlHl19+ua644gq9//775daTmpoqh8PhfkVHR1e/YwAAoM6rtytBz549W6+88oo2bdrknt/jcrkkSZdeeqnuvPNOSVJcXJw+/vhjPf300xo4cGCZdU2dOlUpKSnun3NzcwlBAAA0YD4LQM2aNZO/v7+ysrI8tmdlZally5YVHjt37lzNnj1b7733ns477zyPOhs1aqQuXbp4lD/77LO1efPmcusLDAxUYGBgNXoBAADqI59dArPb7erRo4fS09Pd21wul9LT09W3b99yj3v00Uc1a9YspaWlqWfPnqXq7NWrl3bu3Omx/bvvvlPbtm1rtgMAAKDe8uklsJSUFI0bN049e/ZU7969NX/+fOXn52v8+PGSpLFjx6p169ZKTU2VJM2ZM0fTpk3TypUrFRMT454r1KRJEzVp0kSSNHnyZI0cOVIDBgzQhRdeqLS0NK1bt06bNm3ySR8BAEDd49MANHLkSP3yyy+aNm2aDh48qLi4OKWlpbknRu/bt09+fr8PUi1ZskSFhYW66qqrPOqZPn26ZsyYIUm6/PLL9fTTTys1NVW33367OnXqpNWrV+uCCy7wWr8AAEDd5tN1gOoq1gECADR02dnZKiwsLHe/3W5XRESEF1t0+qry/V1v7wIDAADVk52d7V6EWJKczlDl5EQoPDxbDkeee3tycnK9C0GVRQACAMBiTh752bq1u9atGyZj/GSzuZSUtF7x8dtKlWtofP4wVAAA4BtOZ6g7/EiSMX5at26YnM5QH7es9hGAAACwqJycCHf4KWGMn3Jywn3UIu8hAAEAYFHh4dmy2Vwe22w2l8LDc3zUIu8hAAEAYFEOR56Skta7Q1DJHKCTJ0I3VEyCBgDAwuLjtyk29nvl5IQrPDzHEuFHIgABAGB5DkeeZYJPCS6BAQBgMXa7vUbL1UeMAAEAYDERERFKTk5ucCtBVwUBCAAAC2rI4aYyuAQGAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAsh4ehAgDcsrOzLf2EcFgHAQgAIOlE+Fm0aNEpyyUnJxOCUO9xCQwAIEkVjvxUpxxQlxGAAABlcjpDlZkZI6cz1NdNAWocl8AAAKVs3dpd69YNkzF+stlcSkpar/j4bb5uFlBjGAECAHhwOkPd4UeSjPHTunXDGAlCg0IAAgB4yMmJcIefEsb4KScn3EctAmoeAQgA4CE8PFs2m8tjm83mUnh4jo9aBNQ8AhAAwIPDkaekpPXuEFQyB8jhyPNxy4CawyRoAICkE4scloiP36bY2O+VkxOu8PAcj/BzcjmgviIAAQAkSREREUpOTmYlaFgCAQgA4Ea4gVUwBwgAAFgOI0AAgNPGQ1RR3xCAAACn5Y8PUXU6Q5WTE6Hw8GyPydM8RBV1CQEIAHBaTh75qegRGjxEFXUJc4AAADWCR2igPiEAAQBqBI/QQH1CAAIA1AgeoYH6hAAEAKgRPEID9QmToAEANaaiR2gAdQkBCABQoxyOPIIP6jwugQEATktlH47KQ1RRlzACBAA4LTxEFfURAQgAcNoIN6hvuAQGAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAshwAEAAAsh5Wgy2CMkSTl5ub6uCUAAKCySr63S77HK0IAKkNe3omnGEdHR/u4JQAAoKry8vLkcDgqLGMzlYlJFuNyufTzzz8rNDRUNpvttOrKzc1VdHS0fvzxR4WFhdVQC+sXzgHnQOIcSJwDiXMgcQ5qs//GGOXl5SkqKkp+fhXP8mEEqAx+fn5q06ZNjdYZFhZmyQ/6yTgHnAOJcyBxDiTOgcQ5qK3+n2rkpwSToAEAgOUQgAAAgOUQgGpZYGCgpk+frsDAQF83xWc4B5wDiXMgcQ4kzoHEOagr/WcSNAAAsBxGgAAAgOUQgAAAgOUQgAAAgOUQgAAAgOUQgKph8eLFiomJUVBQkPr06aPPPvuswvLz589Xp06dFBwcrOjoaN155506fvy4e/+MGTNks9k8Xp07d67tbpyWqpyDoqIiPfjgg4qNjVVQUJC6deumtLS006rT12q6//XtM/DBBx8oKSlJUVFRstlsev311095zKZNmxQfH6/AwEB16NBBy5YtK1WmPn0GauMcNPTPwYEDBzRmzBidddZZ8vPz06RJk8os989//lOdO3dWUFCQzj33XG3YsKHmG19DauMcLFu2rNTnICgoqHY6UAOqeg7WrFmjwYMHq3nz5goLC1Pfvn319ttvlypX278PCEBVtGrVKqWkpGj69OnaunWrunXrpsTERB06dKjM8itXrtSUKVM0ffp07dixQ0uXLtWqVat03333eZTr2rWrDhw44H5t3rzZG92plqqeg7///e965plntHDhQn3zzTe65ZZbdPnll2vbtm3VrtOXaqP/Uv36DOTn56tbt25avHhxpcpnZmZq6NChuvDCC7V9+3ZNmjRJN954o8cvvfr0GZBq5xxIDftzUFBQoObNm+vvf/+7unXrVmaZjz/+WKNHj9YNN9ygbdu26bLLLtNll12mr7/+uiabXmNq4xxIJ1ZJPvlzsHfv3ppqco2r6jn44IMPNHjwYG3YsEEZGRm68MILlZSU5P3vBIMq6d27t7ntttvcPxcXF5uoqCiTmppaZvnbbrvNXHTRRR7bUlJSzPnnn+/+efr06aZbt2610t7aUNVz0KpVK7No0SKPbVdccYW5+uqrq12nL9VG/+vbZ+BkkszatWsrLHPPPfeYrl27emwbOXKkSUxMdP9cnz4Df1RT56Chfw5ONnDgQHPHHXeU2j5ixAgzdOhQj219+vQxN99882m2sPbV1Dl4/vnnjcPhqLF2eVNVz0GJLl26mJkzZ7p/9sbvA0aAqqCwsFAZGRlKSEhwb/Pz81NCQoK2bNlS5jH9+vVTRkaGe+juhx9+0IYNG/SXv/zFo9yuXbsUFRWl9u3b6+qrr9a+fftqryOnoTrnoKCgoNTwbXBwsPtfttWp01dqo/8l6stnoDq2bNnicc4kKTEx0X3O6tNnoLpOdQ5KNOTPQWVU9jw1dEePHlXbtm0VHR2tSy+9VP/973993aRa43K5lJeXp/DwcEne+31AAKqCw4cPq7i4WJGRkR7bIyMjdfDgwTKPGTNmjB588EFdcMEFCggIUGxsrAYNGuRxCaxPnz5atmyZ0tLStGTJEmVmZqp///7Ky8ur1f5UR3XOQWJioubNm6ddu3bJ5XLp3Xff1Zo1a3TgwIFq1+krtdF/qX59Bqrj4MGDZZ6z3Nxc/e9//6tXn4HqOtU5kBr+56AyyjtPDeVzUBmdOnXSc889pzfeeEMvvviiXC6X+vXrp/379/u6abVi7ty5Onr0qEaMGCHJe98JBKBatmnTJj3yyCN66qmntHXrVq1Zs0ZvvfWWZs2a5S5zySWX6K9//avOO+88JSYmasOGDTpy5IheffVVH7a85jz55JPq2LGjOnfuLLvdruTkZI0fP15+ftb4+FWm/w39M4DK4XMASerbt6/Gjh2ruLg4DRw4UGvWrFHz5s31zDPP+LppNW7lypWaOXOmXn31VbVo0cKr722Nb6Aa0qxZM/n7+ysrK8tje1ZWllq2bFnmMQ888ICuvfZa3XjjjTr33HN1+eWX65FHHlFqaqpcLleZxzRt2lRnnXWWvv/++xrvw+mqzjlo3ry5Xn/9deXn52vv3r369ttv1aRJE7Vv377adfpKbfS/LHX5M1AdLVu2LPOchYWFKTg4uF59BqrrVOegLA3tc1AZ5Z2nhvI5qI6AgAB17969wX0OXnnlFd1444169dVXPS53eev3AQGoCux2u3r06KH09HT3NpfLpfT0dPXt27fMY44dO1ZqpMPf31+SZMp5DNvRo0e1e/dutWrVqoZaXnOqcw5KBAUFqXXr1vrtt9+0evVqXXrppaddp7fVRv/LUpc/A9XRt29fj3MmSe+++677nNWnz0B1neoclKWhfQ4qozrnqaErLi7WV1991aA+By+//LLGjx+vl19+WUOHDvXY57XfBzU2ndoiXnnlFRMYGGiWLVtmvvnmGzNhwgTTtGlTc/DgQWOMMddee62ZMmWKu/z06dNNaGioefnll80PP/xg3nnnHRMbG2tGjBjhLnPXXXeZTZs2mczMTPPRRx+ZhIQE06xZM3Po0CGv968yqnoOPvnkE7N69Wqze/du88EHH5iLLrrItGvXzvz666+VrrMuqY3+17fPQF5entm2bZvZtm2bkWTmzZtntm3bZvbu3WuMMWbKlCnm2muvdZf/4YcfTOPGjc3kyZPNjh07zOLFi42/v79JS0tzl6lPnwFjauccNPTPgTHGXb5Hjx5mzJgxZtu2bea///2ve/9HH31kGjVqZObOnWt27Nhhpk+fbgICAsxXX33l1b5VVm2cg5kzZ5q3337b7N6922RkZJhRo0aZoKAgjzJ1SVXPwUsvvWQaNWpkFi9ebA4cOOB+HTlyxF3GG78PCEDVsHDhQnPmmWcau91uevfubT755BP3voEDB5px48a5fy4qKjIzZswwsbGxJigoyERHR5tbb73V48tv5MiRplWrVsZut5vWrVubkSNHmu+//96LPaq6qpyDTZs2mbPPPtsEBgaaiIgIc+2115qffvqpSnXWNTXd//r2Gdi4caORVOpV0u9x48aZgQMHljomLi7O2O120759e/P888+Xqrc+fQZq4xxY4XNQVvm2bdt6lHn11VfNWWedZex2u+natat56623vNOhaqiNczBp0iT3/weRkZHmL3/5i9m6dav3OlVFVT0HAwcOrLB8idr+fWAzppzrMAAAAA0Uc4AAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAAIDlEIAAoB7YtGmTbDabjhw54uumAA0CAQiAh+uuu042m02zZ8/22P7666/LZrO5fzbG6Nlnn1Xfvn0VFhamJk2aqGvXrrrjjjsq/dDGY8eOaerUqYqNjVVQUJCaN2+ugQMH6o033nCXiYmJ0fz582ukb7Wt5NzZbDYFBASoXbt2uueee3T8+PEq1TNo0CBNmjTJY1u/fv104MABORyOGmwxYF0EIAClBAUFac6cOfr111/L3G+M0ZgxY3T77bfrL3/5i9555x198803Wrp0qYKCgvTQQw9V6n1uueUWrVmzRgsXLtS3336rtLQ0XXXVVcrOzq7J7njVkCFDdODAAf3www964okn9Mwzz2j69OmnXa/dblfLli09QiiA01CjD9YAUO+NGzfODBs2zHTu3NlMnjzZvX3t2rWm5FfGyy+/bCSZN954o8w6XC5Xpd7L4XCYZcuWlbu/rGcGlfjwww/NBRdcYIKCgkybNm3MxIkTzdGjR937X3jhBdOjRw/TpEkTExkZaUaPHm2ysrLc+0ueX5SWlmbi4uJMUFCQufDCC01WVpbZsGGD6dy5swkNDTWjR482+fn5lerPuHHjzKWXXuqx7YorrjDdu3d3/3z48GEzatQoExUVZYKDg80555xjVq5c6VHHH/ucmZnpbu/JzxF87bXXTJcuXYzdbjdt27Y1c+fOrVQ7ARjDCBCAUvz9/fXII49o4cKF2r9/f6n9L7/8sjp16qThw4eXeXxlRylatmypDRs2KC8vr8z9a9asUZs2bfTggw/qwIEDOnDggCRp9+7dGjJkiK688kp9+eWXWrVqlTZv3qzk5GT3sUVFRZo1a5a++OILvf7669qzZ4+uu+66Uu8xY8YMLVq0SB9//LF+/PFHjRgxQvPnz9fKlSv11ltv6Z133tHChQsr1Z8/+vrrr/Xxxx/Lbre7tx0/flw9evTQW2+9pa+//loTJkzQtddeq88++0yS9OSTT6pv37666aab3H2Ojo4uVXdGRoZGjBihUaNG6auvvtKMGTP0wAMPaNmyZdVqK2A5vk5gAOqWk0cx/vSnP5nrr7/eGOM5AtS5c2czfPhwj+PuuOMOExISYkJCQkzr1q0r9V7vv/++adOmjQkICDA9e/Y0kyZNMps3b/Yo07ZtW/PEE094bLvhhhvMhAkTPLZ9+OGHxs/Pz/zvf/8r870+//xzI8nk5eUZY34fAXrvvffcZVJTU40ks3v3bve2m2++2SQmJlaqP+PGjTP+/v4mJCTEBAYGGknGz8/PvPbaaxUeN3ToUHPXXXe5fx44cKC54447PMr8cQRozJgxZvDgwR5lJk+ebLp06VKptgJWxwgQgHLNmTNHy5cv144dO05Z9v7779f27ds1bdo0HT16tFL1DxgwQD/88IPS09N11VVX6b///a/69++vWbNmVXjcF198oWXLlqlJkybuV2JiolwulzIzMyWdGCFJSkrSmWeeqdDQUA0cOFCStG/fPo+6zjvvPPffIyMj1bhxY7Vv395j26FDhyrVH0m68MILtX37dn366acaN26cxo8fryuvvNK9v7i4WLNmzdK5556r8PBwNWnSRG+//Xapdp3Kjh07dP7553tsO//887Vr1y4VFxdXqS7AighAAMo1YMAAJSYmaurUqR7bO3bsqJ07d3psa968uTp06KAWLVpU6T0CAgLUv39/3XvvvXrnnXf04IMPatasWSosLCz3mKNHj+rmm2/W9u3b3a8vvvhCu3btUmxsrPLz85WYmKiwsDC99NJL+vzzz7V27VpJKlVvQECA++8ld2+dzGazyeVyVbo/ISEh6tChg7p166bnnntOn376qZYuXere/9hjj+nJJ5/Uvffeq40bN2r79u1KTEyssL8Aal4jXzcAQN02e/ZsxcXFqVOnTu5to0eP1pgxY/TGG2/o0ksvrdH369Kli3777TcdP35cdrtddru91IhGfHy8vvnmG3Xo0KHMOr766itlZ2dr9uzZ7vkz//nPf2q0nZXh5+en++67TykpKRozZoyCg4P10Ucf6dJLL9U111wjSXK5XPruu+/UpUsX93Fl9fmPzj77bH300Uce2z766COdddZZ8vf3r/nOAA0MI0AAKnTuuefq6quv1oIFC9zbRo0apauuukqjRo3Sgw8+qE8//VR79uzR+++/r1WrVlX6C3jQoEF65plnlJGRoT179mjDhg267777dOGFFyosLEzSiXWAPvjgA/300086fPiwJOnee+/Vxx9/rOTkZG3fvl27du3SG2+84Z4EfeaZZ8put2vhwoX64Ycf9Oabb57yslpt+etf/yp/f38tXrxY0onRs3fffVcff/yxduzYoZtvvllZWVkex8TExLjP6eHDh8scgbrrrruUnp6uWbNm6bvvvtPy5cu1aNEi3X333V7pF1DfEYAAnNKDDz7o8SVss9m0atUqzZ8/Xxs2bNCf//xnderUSddff72io6O1efPmStWbmJio5cuX6+KLL9bZZ5+tiRMnKjExUa+++qrHe+/Zs0exsbFq3ry5pBPzdt5//31999136t+/v7p3765p06YpKipK0onLccuWLdM///lPdenSRbNnz9bcuXNr8IxUXqNGjZScnKxHH31U+fn5+vvf/674+HglJiZq0KBBatmypS677DKPY+6++275+/urS5cuat68eZnzg+Lj4/Xqq6/qlVde0TnnnKNp06bpwQcfLPNONwCl2YwxxteNAAAA8CZGgAAAgOUQgADUmpNvU//j68MPP/R186pk3759FfanqrexA/AtLoEBqDUVPRS1devWCg4O9mJrTs9vv/2mPXv2lLs/JiZGjRpxYy1QXxCAAACA5XAJDAAAWA4BCAAAWA4BCAAAWA4BCAAAWA4BCAAAWA4BCAAAWA4BCAAAWA4BCAAAWM7/AQmmaj3o/rCpAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_25.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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8sv49ttvERQUhOzs7HITHz446aFGo9G1uXPnDlJTU7F9+3ZcuXIFU6dOxZIlS6r8vDt37mDQoEEYOHAgAgIC4O7ujpycHOzcuRM///wzgoOD0bt3bwBASEgIPv30U7z00ks4ceIEhg4dioKCAuzfvx/PPvssJk6ciHHjxmHVqlUICAjAY489hlu3buHDDz+El5cXzp49q/fZvr6+2L9/P1atWgVXV1d4enpiwIABujE3b775JqZOnQozMzMEBQWhY8eOWLp0KSIjI5Geno7g4GDY2NggLS0NO3bswJw5c/DKK6/U6/zXVps2bRAZGYlFixYhICAAEyZMQEpKCj766CP069dP77+Xr68vvvrqK7z00kvo168frK2tERQUZNB6iYyalLegNTUAxI4dO3Tvd+/erbud9/5XixYtxKOPPiqEEOLSpUsCQJWv1157rcLPe+aZZ4SHh4e4fv26btkXX3whlEplubb9+vUT8+bNa9gDpmav7Pbtyl5VtbW2thbe3t7i8ccfFz/++GONPq+4uFhs2rRJBAcHCw8PD2Fubi5atmwpevfuLVauXCkKCwv12t+5c0e8+eabwtPTU5iZmQlnZ2fx73//W1y5ckXXJiYmRnh7ewtzc3PRpUsXERsbq7vN/H6//vqrGDZsmLC0tBQA9G6JX7JkiWjbtq0wMTEpd0v8tm3bxJAhQ3T/f3fp0kWEhYWJlJQUvXNT1RQBDyqr788//6yy3YO3wZdZv3696NKlizAzMxNOTk5i7ty54vbt23pt8vPzxWOPPSZatWolAPCWeKIHKIRogIfOyIRCocCOHTsQHBwMAPjqq68wffp0XLhwodwgSWtrazg7O6OoqAi///57lft1cHDQTbxWJjw8HN988w1++ukneHp66pb/97//xahRo3D79m29XiAPDw9ERETgxRdfrN9BEhERyQAvgdVD7969UVJSglu3bmHo0KEVtlEqlejSpUuN9ymEwHPPPYcdO3YgKSlJL/wApd3aZmZmSExMxKRJkwCUDoi8du0anx1ERERUQwxA1cjPz0dqaqrufVpaGs6cOQN7e3t06tQJ06dPR0hICN5//3307t0bf/75JxITE+Hj41Pp4wCqEhYWhvj4eHzzzTewsbHRjetRqVSwtLSESqVCaGgoXnrpJdjb28PW1hbPPfcc/Pz8eAcYERFRDfESWDWSkpLw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FgDw119/AQBat26tW//HH3/Aw8OjRvt79tlnER8fj2+++QadO3fWLVepVLC0tAQAhISEoG3btoiKitLbdujQoWjbtm25S2b5+flYtGgRJk2aBGdnZ1y5cgXz5s1DXl4ezp07V6OentzcXKhUKmg0Gt2xEhERkXGrzfd3rcYAtWjRAlqtFmFhYWjdujWcnJzg5OSE1q1bIzw8HPn5+TUOPwAQHR0NjUaDESNGwMXFRff66quvdG2uXbuGzMxMve1SUlJw6NAhhIaGltunqakpzp49iwkTJqBTp04IDQ2Fr68vfv75Z17mIiIiIgC17AHKzs6Gn58f/vjjD0yfPh0PPfQQAODixYuIj4+Hu7s7jhw5ojdQuiliDxAREVHTU5vv71qNAVq8eDGUSiWuXLkCJyencuvGjh2LxYsX44MPPqh91TKRkQFcvgx4ewM1HO9NREREDaxWl8B27tyJ9957r1z4AQBnZ2esWLECO3bsaLDimpuYGMDDAxg5svTPB6YvIiIiIgOpVQDKzMxEt27dKl3fvXt3ZGVl1buo5igjA5gzB9D+79lzWi3w9NOly4mIiMiwahWAWrdujfT09ErXp6Wl1eoxFnJy+fI/4adMSQmQmipNPURERHJWqwDk7++PN998s8IJlAoLCzF//nwEBAQ0WHHNibc3YPLA2TY1Bby8pKmHiIhIzmo9CLpv377w9vZGWFgYunTpAiEELl26hI8++giFhYX47LPPGqvWJs3NDdi4sfSyV0lJafjZsIEDoYmIiKRQq9vggdLLXM8++yx+/PFH3ZPfFQoFxowZg/Xr18OrGXRpNPRt8Gq1WtdrduOGCdLTW6B9+3twdS29JiaXaceJiIgaU22+v2sdgMrcvn0bly9fBgB4eXk1q7E/DRmA1Go11q9fX2278PBwhiAiIqJ6aLR5gO5nZ2dX7insVF5VD5yrSzsiIiKqv1oNgiYiIiJqDhiAiIiISHYYgIiIiEh2GICIiIhIdhiAiIiISHYYgIiIiEh2GIAamVKpbNB2REREVH91ngeIasbBwQHh4eFVzvPDmaCJiIgMiwHIABhuiIiIjAsvgREREZHsMAARERGR7DAAERERkewwABEREZHsMAARERGR7DAAERERkewwABEREZHsMAARERGR7DAAERERkewwABEREZHsMAARERGR7DAAERERkewwABEREZHs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qHqSBiAhBJ577jns2LEDSUlJ8PT0rHYbPz8/JCYmIiIiQrds37598PPzAwB4enrC2dkZiYmJusCTm5uL48ePY+7cuY1xGETUzGg0NrrwA5SOtdm1azw6dkw1eI+Lg4MDwsPDjWpgNlFzIGkACgsLQ3x8PL755hvY2NjoxuioVCpYWloCAEJCQtC2bVtERUUBAF544QUMHz4c77//PsaNG4eEhAT88ssv2LhxIwBAoVAgIiICS5cuhbe3Nzw9PTF//ny4uroiODhYkuMkoqbF2AYcM9wQNTxJA1B0dDQAYMSIEXrLY2NjMWvWLADAtWvXYGLyzy+iQYMGIT4+Hm+99RbeeOMNeHt7Y+fOnXoDp+fNm4eCggLMmTMHOTk5GDJkCPbs2QMLC4tGPyYiavrKBhw/eMs5BxwTNR9GNQ+QseA8QETyVDbnDlD1GCDOuUNknJrsPEBERFLigGMi+WAAIiL6Hw44JpIPBiAiovsw3BDJg9FMhEhERERkKAxAREREJDsMQERERCQ7DEBEREQkOwxAREREJDsMQERERCQ7DEBEREQkOwxAREREJDsMQERERCQ7DEBEREQkOwxAREREJDsMQERERCQ7DEBEREQkOwxAREREJDsMQERERCQ7DEBEREQkOwxAREREJDsMQERERCQ7DEBEREQkOwxAREREJDsMQERERCQ7DEBEREQkOwxAREREJDsMQERERCQ7DEBEREQkOwxAREREJDstpC6AiIiosanVahQVFVW6XqlUwsHBwYAVkdQkDUA//fQTVq5cieTkZGRmZmLHjh0IDg6utP2sWbOwZcuWcsu7du2KCxcuAAAWLlyIRYsW6a3v3Lkzfv311watnYiImga1Wo3169dX2y48PJwhSEYkvQRWUFCAnj174sMPP6xR+zVr1iAzM1P3un79Ouzt7TF58mS9dt26ddNrd+jQocYon4iImoCqen7q0o6aB0l7gAIDAxEYGFjj9iqVCiqVSvd+586duH37Np544gm9di1atICzs3OD1UlERETNS5MeBB0TE4PRo0fDw8NDb/nly5fh6uqKDh06YPr06bh27VqV+yksLERubq7ei4iIiJqvJhuAbty4gR9++AGzZ8/WWz5gwADExcVhz549iI6ORlpaGoYOHYq8vLxK9xUVFaXrXVKpVHB3d2/s8omIiEhCTTYAbdmyBa1atSo3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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_26.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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pPTmMviioiJs2bIFeXl58PHxKbdebm4uXFxcoFar0a1bN3z44YeasJSSkoKMjAwMGTJEU1+hUKBHjx44ceJErQWgEoaGhvyCJiIiSdKHRzo9CZ0HoAsXLsDHxwf5+fkwNzdHfHw82rVrV2ZdLy8vbNiwAZ06dYJKpcKKFSvQq1cvXLp0CU5OTsjIyAAA2NnZaa1nZ2enWVaWgoICFBQUaN5nZ2fXQs+IiIgaNyenhhd8Suj8KjAvLy+cO3cOp06dwowZMzBlyhRcvny5zLo+Pj4ICgpCly5d0L9/f2zbtg02NjZYt27dE7UhIiICCoVC83J2dn6i7REREZF+03kAksvl8PDwgLe3NyIiItC5c2esWrWqSusaGRmha9euSE5OBvDP5OTbt29r1bt9+3aFE2nDw8OhUqk0r1u3btWwN0RERNQQ6DwAPU6tVmudjqpIUVERLly4oHnirJubG+zt7XHw4EFNnezsbJw6darCeUXGxsawtLTUehEREVHjpdM5QOHh4fD390erVq2Qk5OD2NhYJCQkYO/evQCAoKAgtGzZEhEREQCARYsWoWfPnvDw8EBWVhaWL1+OGzdu4KWXXgJQfHVWWFgYlixZAk9PT81l8I6OjggMDNRVN4mIiEjP6DQA3blzB0FBQUhPT4dCoUCnTp2wd+9eDB06FABw8+ZNGBj8M0h17949vPzyy8jIyEDz5s3h7e2N48ePa02anj17NvLy8jBt2jRkZWWhT58+2LNnT63dA4iIiIgaPpngw5ZKyc7OhkKhgEql4ukwIiKiBqI63996NweIiIiIqK4xABEREZHkMAARERGR5DAAERERkeQwABEREZHkMAARERGR5DAAERERkeQwABEREZHkMAARERGR5DAAERERkeQwABEREZHkMAARERGR5DAAERERkeQwABEREZHkMAARERGR5DAAERERkeQwABEREZHkMAARERGR5DAAERERkeQwABEREZHkMAARERGR5DAAERERkeQwABEREZHkMAARERGR5DAAERERkeQwABEREZHkMAARERGR5DAAERERkeQwABEREZHkMAARERGR5DAAERERkeToNABFRUWhU6dOsLS0hKWlJXx8fPDTTz+VW/+LL75A37590bx5czRv3hxDhgzBL7/8olVn6tSpkMlkWi8/P7+67goRERE1IDoNQE5OTli6dCkS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jw8AwM3NDfb29jh48KAm8GRnZ+PUqVOYMWNGXXSjzqhUFprwAxTPx9m581m4uyfX6qiMtbU1QkNDeSdoIiKSDJ0GoJCQEMTGxmLHjh2wsLDQzNFRKBQwNTUFAAQFBaFly5aIiIgAALz++uvo378/Pv74YwwfPhxxcXH49ddfsX79egCATCZDWFgYlixZAk9PT7i5uWHu3LlwdHREYGCgTvpZU/U5KZnhhoiIpESnASgqKgoAMGDAAK3yjRs3YurUqQCAmzdvwsDgnxDQq1cvxMbG4v3338ecOXPg6emJ7du3a02cnj17NvLy8jBt2jRkZWWhT58+2LNnD0xMTOq8T7WpZFLy45elc1IyERHRk9Gr+wDpC13fB6jkvjxAxXOAeF8eIiKifzTY+wBRMU5KJiIiqlsMQHqIk5KJiIjqFgOQnmK4ISIiqjt6cyNEIiIiovrCAERERESSwwBEREREksMARERERJLDAERERESSwwBEREREksMARERERJLDAERERESSwwBEREREksMARERERJLDAERERESSwwBEREREksMARERERJLDAERERESSwwBEREREksMARERERJLDAERERESSwwBEREREksMARERERJLDAERERESSwwBEREREksMARERERJLDAERERESSwwBEREREksMARERERJLDAERERESS00TXDZACpVKJBw8elLtcLpfD2tq6HltEREQkbToNQEeOHMHy5cuRmJiI9PR0xMfHIzAwsNz6U6dOxaZNm0qVt2vXDpcuXQIALFiwAAsXLtRa7uXlhd9//71W215VSqUSkZGRldYLDQ1lCCIiIqonOj0FlpeXh86dO+Ozzz6rUv1Vq1YhPT1d87p16xasrKwwZswYrXrt27fXqnf06NG6aH6VVDTyU5N6RERE9OR0OgLk7+8Pf3//KtdXKBRQKBSa99u3b8e9e/fwwgsvaNVr0qQJ7O3ta62dRERE1Lg06EnQ0dHRGDJkCFxcXLTKk5KS4OjoiNatW2PSpEm4efNmhdspKChAdna21ouIiIgarwYbgP766y/89NNPeOmll7TKe/TogZiYGOzZswdRUVFISUlB3759kZOTU+62IiIiNKNLCoUCzs7Odd18IiIi0qEGG4A2bdqEZs2alZo07e/vjzFjxqBTp07w9fXF7t27kZWVhe+++67cbYWHh0OlUmlet27d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qzVl48ePx3PPPYfx48dj0aJFOHXqFFJTU3H48GF8++23Vf4CHjBgANatW4fExESkpqZi9+7dmDNnDgYOHAhLS0sAxfcBOnLkCP7880/cvXsXAPDOO+/g+PHjCA0Nxblz55CUlIQdO3ZoJkG3atUKcrkca9aswfXr1/HDDz9UelqtrowZMwaGhob47LPPABSPnu3fvx/Hjx/HlStXMH36dNy+fVtrHVdXV80+vXv3bpkjUG+++SYOHjyIxYsX448//sCmTZsQGRmJt956q176RdTQMQARUaUWLVqk9SUsk8nw7bffYuXKldi9ezcGDx4MLy8vvPjii3B2dsbRo0ertF1fX19s2rQJw4YNw1NPPYWZM2fC19cX3333ndZnp6amwt3dHTY2NgCK5+0cPnwYf/zxB/r27YuuXbti3rx5cHR0BFB8Oi4mJgZbtmxBu3btsHTpUqxYsaIW90jVNWnSBKGhoVi2bBny8vLw/vvvo1u3bvD19cWAAQNgb2+PwMBArXXeeustGBoaol27drCxsSlzflC3bt3w3XffIS4uDh06dMC8efOwaNGiMq90I6LSZEIIoetGEBEREdUnjgARERGR5DAAEVGdefQy9cdfP//8s66bVy03b96ssD/VvYydiHSLp8CIqM5U9FDUli1bwtTUtB5b82QePnyI1NTUcpe7urqiSRNeWEvUUDAAERERkeTwFBgRERFJDgMQERERSQ4DEBEREUkOAxARERFJDgMQERERSQ4DEBEREUkOAxARERFJDgMQERERSc7/A2kbESbhnyifAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_27.png" - } - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\r", - "1/1 [==============================] - ETA: 0s" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "1/1 [==============================] - 0s 16ms/step\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_30.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAk0AAAHHCAYAAACiOWx7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABboUlEQVR4nO3deVhUZf8/8PeADIswIAriAoJiLrmjIlauJCipqD25C+4LWEqpkFsuCY+75taTKVbulcrjGqJoCpWaprhgGqglKI+yKCrLcH5/+ON8Pc6gAwwcZni/rosL5z73nPnMcWze3fc591EIgiCAiIiIiF7JRO4CiIiIiAwBQxMRERGRDhiaiIiIiHTA0ERERESkA4YmIiIiIh0wNBERERHpgKGJiIiISAcMTUREREQ6YGgiIiIi0gFDExFVKgqFAp999pncZYgCAwPh6uoqdxlEpAOGJiKSXWRkJBQKhfhjYWGBN954A8HBwbh3716ZvnZcXBw+++wzZGRk6HW/Xbp0kbwne3t7tGvXDps2bUJBQYFeXmPRokXYu3evXvZFRK9XRe4CiIgKzZ8/H25ubnj27BlOnTqF9evX4+DBg0hISICVlZVeXuPp06eoUuX//tMXFxeHefPmITAwEHZ2dnp5jUJ169ZFeHg4ACAtLQ3ffPMNRo8ejevXryMiIqLU+1+0aBHef/99+Pv7l3pfRPR6DE1EVGH07NkTbdu2BQCMGTMG1atXx/Lly7Fv3z4MHjy4xPstKChAbm4uLCwsYGFhoa9yX8vW1hbDhg0TH48fPx6NGjXCmjVrsGDBApiZmZVbLURUepyeI6IKq1u3bgCApKQkAMDSpUvRsWNHVK9eHZaWlvDw8MD333+v8TyFQoHg4GBs3boVb775JszNzXH48GFxW+E5TZ999hmmTZsGAHBzcxOn0pKTk9G5c2e0bNlSa12NGjWCj49Psd+PlZUVOnTogOzsbKSlpRXZLzs7Gx9//DGcnZ1hbm6ORo0aYenSpRAEQfIes7OzsWXLFrHuwMDAYtdERLrjSBMRVVg3b94EAFSvXh0AsGrVKvTp0wdDhw5Fbm4uduzYgX/961/Yv38//Pz8JM89duwYdu3aheDgYNSoUUPrydb9+/fH9evXsX37dqxYsQI1atQAADg4OGD48OEYO3YsEhIS0KxZM/E5Z86cwfXr1zFr1qwSvae//voLpqamRU4FCoKAPn364Pjx4xg9ejRatWqFI0eOYNq0afjnn3+wYsUKAMC3336LMWPGoH379hg3bhwAoEGDBiWqiYh0JBARyWzz5s0CAOHo0aNCWlqacOfOHWHHjh1C9erVBUtLS+Hvv/8WBEEQnjx5Inlebm6u0KxZM6Fbt26SdgCCiYmJcPnyZY3XAiDMnTtXfLxkyRIBgJCUlCTpl5GRIVhYWAgzZsyQtH/44YdC1apVhcePH7/yPXXu3Flo3LixkJaWJqSlpQlXr14VPvzwQwGA0Lt3b7FfQECAUK9ePfHx3r17BQDCwoULJft7//33BYVCIdy4cUNsq1q1qhAQEPDKOohIfzg9R0QVhre3NxwcHODs7IxBgwbB2toae/bsQZ06dQAAlpaWYt/09HRkZmbinXfewe+//66xr86dO6Np06YlrsXW1hZ9+/bF9u3bxWkxtVqNnTt3wt/fH1WrVn3tPq5duwYHBwc4ODigSZMm+OKLL+Dn54dNmzYV+ZyDBw/C1NQUH374oaT9448/hiAIOHToUInfExGVDqfniKjCWLt2Ld544w1UqVIFNWvWRKNGjWBi8n//b7d//34sXLgQFy5cQE5OjtiuUCg09uXm5lbqekaMGIGdO3fi559/RqdOnXD06FHcu3cPw4cP1+n5rq6u+Oqrr8RlFBo2bAhHR8dXPufWrVuoXbs2bGxsJO1NmjQRtxORPBiaiKjCaN++vXj13Mt+/vln9OnTB506dcK6detQq1YtmJmZYfPmzdi2bZtG/xdHpUrKx8cHNWvWxHfffYdOnTrhu+++g5OTE7y9vXV6ftWqVXXuS0QVH6fniMgg/PDDD7CwsMCRI0cwatQo9OzZUy+BRNsoVSFTU1MMGTIE33//PdLT07F3714MHjwYpqampX7dotSrVw93797Fo0ePJO3Xrl0Ttxd6Ve1EpH8MTURkEExNTaFQKKBWq8W25OTkUq+IXXhuUlErgg8fPhzp6ekYP348Hj9+LFl3qSz06tULarUaa9askbSvWLECCoUCPXv2FNuqVq2q95XMiahonJ4jIoPg5+eH5cuXw9fXF0OGDMH9+/exdu1auLu74+LFiyXer4eHBwBg5syZGDRoEMzMzNC7d28xTLVu3RrNmjXD7t270aRJE7Rp00Yv76covXv3RteuXTFz5kwkJyejZcuW+Omnn7Bv3z5MmTJFsqyAh4cHjh49iuXLl6N27dpwc3ODp6dnmdZHVJlxpImIDEK3bt3w9ddfIzU1FVOmTMH27dvx73//G/369SvVftu1a4cFCxbgjz/+QGBgIAYPHqyx8OSIESMAQOcTwEvDxMQEUVFRmDJlCvbv348pU6bgypUrWLJkCZYvXy7pu3z5cnh4eGDWrFkYPHgw1q9fX+b1EVVmCkF4YYlZIiLSsGrVKkydOhXJyclwcXGRuxwikglDExHRKwiCgJYtW6J69eo4fvy43OUQkYx4ThMRkRbZ2dmIiorC8ePHcenSJezbt0/ukohIZhxpIiLSIjk5GW5ubrCzs8OkSZPw+eefy10SEcmMoYmIiIhIB7x6joiIiEgHDE1EREREOuCJ4HpSUFCAu3fvwsbGhrc2ICIiMhCCIODRo0eoXbu25Abh2jA06cndu3fh7OwsdxlERERUAnfu3EHdunVf2YehSU9sbGwAPD/oKpVK5mqIiIhIF1lZWXB2dha/x1+FoUlPCqfkVCoVQxMREZGB0eXUGp4ITkRERKQDhiYiIiIiHTA0EREREemA5zSVM7Vajby8PLnLoHKgVCpfe/kqEREZDoamciIIAlJTU5GRkSF3KVROTExM4ObmBqVSKXcpRESkBwxN5aQwMDk6OsLKyooLYBq5wsVOU1JS4OLiwr9vIiIjwNBUDtRqtRiYqlevLnc5VE4cHBxw9+5d5Ofnw8zMTO5yiIiolHjCRTkoPIfJyspK5kqoPBVOy6nVapkrISIifWBoKkecoqlc+PdNRGRcGJqIiIiIdMDQRERERKQDhiZ6pcDAQCgUCigUCpiZmaFmzZp49913sWnTJhQUFOi8n8jISNjZ2ZVdoURERGWMoYley9fXFykpKUhOTsahQ4fQtWtXfPTRR3jvvfeQn58vd3lERGTkBEHAlStXZL+whqGJXsvc3BxOTk6oU6cO2rRpg08//RT79u3DoUOHEBkZCQBYvnw5mjdvjqpVq8LZ2RmTJk3C48ePAQCxsbEYOXIkMjMzxVGrzz77DADw7bffom3btrCxsYGTkxOGDBmC+/fvy/ROiYioonn48CHmz5+P3bt3Y+HChbLWwtAkE0EQkJubW+4/giDopf5u3bqhZcuW+PHHHwE8X/169erVuHz5MrZs2YJjx45h+vTpAICOHTti5cqVUKlUSElJQUpKCj755BMAz5djWLBgAf744w/s3bsXycnJCAwM1EuNRERk2OLi4vDFF1+Ijzt06CBjNVzcUjZ5eXkIDw8v99cNCwvT2209GjdujIsXLwIApkyZIra7urpi4cKFmDBhAtatWwelUglbW1soFAo4OTlJ9jFq1Cjxz/Xr18fq1avRrl07PH78GNbW1nqpk4iIDEtBQQGWLl2Kp0+fim19+vRB69atZayKI01UCoIgiGsRHT16FN27d0edOnVgY2OD4cOH48GDB3jy5Mkr93Hu3Dn07t0bLi4usLGxQefOnQEAt2/fLvP6iYio4klLS8OCBQskgSkkJAR37rRGx45AVJR8tXGkSSZmZmYICwuT5XX15erVq3Bzc0NycjLee+89TJw4EZ9//jns7e1x6tQpjB49Grm5uUWuhJ6dnQ0fHx/4+Phg69atcHBwwO3bt+Hj44Pc3Fy91UlERIbh5MmTOH78uPi4Tp06GD16NBQKBSIigPh4ICIC6NNHnvoYmmSiUCj0Nk0mh2PHjuHSpUuYOnUqzp07h4KCAixbtgwmJs8HL3ft2iXpr1QqNa56uHbtGh48eICIiAg4OzsDAM6ePVs+b4CIiCoMtVqNiIgIyRXZ/fr1Q4sWLcTHoaHPA1NoqBwVPsfQRK+Vk5OD1NRUqNVq3Lt3D4cPH0Z4eDjee+89jBgxAgkJCcjLy8MXX3yB3r174/Tp09iwYYNkH66urnj8+DFiYmLQsmVLWFlZwcXFBUqlEl988QUmTJiAhIQELFiwQKZ3SUREcrh3757Gd8bHH3+scV5rnz7yjTAV4jlN9FqHDx9GrVq14OrqCl9fXxw/fhyrV6/Gvn37YGpqipYtW2L58uX497//jWbNmmHr1q0aJ7l37NgREyZMwMCBA+Hg4IDFixfDwcEBkZGR2L17N5o2bYqIiAgsXbpUpndJRETl7dixY5LA5Orqirlz51bYC4EUgr6uQa/ksrKyYGtri8zMTKhUKsm2Z8+eISkpCW5ubrCwsJCpQipv/HsnItJOrVZrrLn0r3/9C02bNi33Wl71/f0yTs8RERFRubl79y6++uorSdu0adOKvGioImFoIiIionLx008/IT4+Xnzs7u6OoUOHylhR8TA0ERERUZnKz8/H559/LmkbNGgQGjVqJFNFJcPQRERERGXm77//xtdffy1pmz59OiwtLWWqqOQYmoiIiKhMHDx4EGfOnBEfN2nSBB988IGMFZUOQxMRERHpVV5eHhYtWiRpGzp0KNzd3WWqSD8YmoiIiEhvbt26hcjISElbaGgozM3N5SlIjxiaiIiISC/27duHCxcuiI9btGiBfv36yVeQnjE0ERERUank5uZq3AlixIgRcHNzk6missHbqFCFEBgYCH9/f/Fxly5dMGXKlFLtUx/7ICKiV4uJidEITGFhYUYXmACONNFrBAYGYsuWLQAAMzMzuLi4YMSIEfj0009RpUrZfXx+/PFHmJmZ6dQ3NjYWXbt2RXp6Ouzs7Eq0DyIiKr558+ZJHlev3hrBwTLfVbcMMTTRa/n6+mLz5s3IycnBwYMHERQUBDMzM4SFhUn65ebmQqlU6uU17e3tK8Q+iIhIU2ZmJlauXClpO3jQF6amnggOlqem8sDpOXotc3NzODk5oV69epg4cSK8vb0RFRUlTql9/vnnqF27triy6507d/DBBx/Azs4O9vb26Nu3L5KTk8X9qdVqhISEwM7ODtWrV8f06dPx8n2jX55ay8nJwYwZM+Ds7Axzc3O4u7vj66+/RnJyMrp27QoAqFatGhQKBQIDA7XuIz09HSNGjEC1atVgZWWFnj174s8//xS3R0ZGws7ODkeOHEGTJk1gbW0NX19fpKSkiH1iY2PRvn17VK1aFXZ2dnjrrbdw69YtPR1pIqKK7/DhwxqBqXnz6TA19URoqDw1lReGJio2S0tL5ObmAng+l52YmIjo6Gjs378feXl58PHxgY2NDX7++WecPn1aDB+Fz1m2bBkiIyOxadMmnDp1Cg8fPsSePXte+ZojRozA9u3bsXr1aly9ehVffvklrK2t4ezsjB9++AEAkJiYiJSUFKxatUrrPgIDA3H27FlERUUhPj4egiCgV69eyMvLE/s8efIES5cuxbfffouTJ0/i9u3b+OSTTwA8vw2Av78/OnfujIsXLyI+Ph7jxo2DQqEo9TElIjIE8+bNw6+//ippmzt3Lvr3t0RcHNDHeGfmAHB6jopBEATExMTgyJEjmDx5MtLS0lC1alVs3LhRnJb77rvvUFBQgI0bN4phYvPmzbCzs0NsbCx69OiBlStXIiwsDP379wcAbNiwAUeOHCnyda9fv45du3YhOjoa3t7eAID69euL2wun4RwdHSXnNL3ozz//RFRUFE6fPo2OHTsCALZu3QpnZ2fs3bsX//rXvwA8X5Btw4YNaNCgAQAgODgY8+fPBwBkZWUhMzMT7733nri9SZMmxT+QREQGJj09HatXr5a09ezZE+3bt5epInlwpMkARUUBHTs+/10e9u/fD2tra1hYWKBnz54YOHAgPvvsMwBA8+bNJecx/fHHH7hx4wZsbGxgbW0Na2tr2Nvb49mzZ7h58yYyMzORkpICT09P8TlVqlRB27Zti3z9CxcuwNTUFJ07dy7xe7h69SqqVKkied3q1aujUaNGuHr1qthmZWUlBiIAqFWrFu7fvw/geTgLDAyEj48PevfujVWrVkmm7oiIjNG+ffs0AlNoaGilC0wAR5oMUkQEEB///Hd5DIV27doV69evh1KpRO3atSVXzVWtWlXS9/Hjx/Dw8MDWrVs19uPg4FCi1y/Pmzq+fLWdQqGQnG+1efNmfPjhhzh8+DB27tyJWbNmITo6Gh06dCi3GomIysvLV8cBz6fjKitZR5rWr1+PFi1aQKVSQaVSwcvLC4cOHRK3d+nSBQqFQvIzYcIEyT5u374NPz8/WFlZwdHREdOmTUN+fr6kT2xsLNq0aSOeQPzy8u4AsHbtWri6usLCwgKenp747bffyuQ960NoKODlhXI74a5q1apwd3eHi4vLa5cZaNOmDf788084OjrC3d1d8mNrawtbW1vUqlVLMieen5+Pc+fOFbnP5s2bo6CgACdOnNC6vXCkS61WF7mPJk2aID8/X/K6Dx48QGJiIpo2bfrK9/Sy1q1bIywsDHFxcWjWrBm2bdtWrOcTEVV0//vf/zQCU58+fSp1YAJkDk1169ZFREQEzp07h7Nnz6Jbt27o27cvLl++LPYZO3YsUlJSxJ/FixeL29RqNfz8/JCbm4u4uDhs2bIFkZGRmDNnjtgnKSkJfn5+6Nq1Ky5cuIApU6ZgzJgxknNodu7ciZCQEMydOxe///47WrZsCR8fH3FapqLp0wcV9oS7oUOHokaNGujbty9+/vlnJCUlITY2Fh9++CH+/vtvAMBHH32EiIgI7N27F9euXcOkSZOQkZFR5D5dXV0REBCAUaNGYe/eveI+d+3aBQCoV68eFAoF9u/fj7S0NDx+/FhjHw0bNkTfvn0xduxYnDp1Cn/88QeGDRuGOnXqoG/fvjq9t6SkJISFhSE+Ph63bt3CTz/9hD///JPnNRGRUVmwYAHWrl0raQsLC0Pr1q1lqqjikDU09e7dG7169ULDhg3xxhtv4PPPP4e1tTV++eUXsY+VlRWcnJzEH5VKJW776aefcOXKFXz33Xdo1aoVevbsKf5lF16ptWHDBri5uWHZsmVo0qQJgoOD8f7772PFihXifpYvX46xY8di5MiRaNq0KTZs2AArKyts2rSp/A6GkbCyssLJkyfh4uKC/v37o0mTJhg9ejSePXsm/t19/PHHGD58OAICAuDl5QUbG5vX3pto/fr1eP/99zFp0iQ0btwYY8eORXZ2NgCgTp06mDdvHkJDQ1GzZk0EF7FIyObNm+Hh4YH33nsPXl5eEAQBBw8e1HkBTCsrK1y7dg0DBgzAG2+8gXHjxiEoKAjjx48vxhEiIqqYBEHAvHnzUFBQIGmfO3eu3tbgM3QK4eUFcmSiVquxe/duBAQE4Pz582jatCm6dOmCy5cvQxAEODk5oXfv3pg9ezasrKwAAHPmzEFUVJTk5oBJSUmoX78+fv/9d7Ru3RqdOnVCmzZtJGtKbN68GVOmTEFmZiZyc3NhZWWF77//XnIbj4CAAGRkZGDfvn1a683JyUFOTo74OCsrC87OzsjMzJQEOwB49uwZkpKS4ObmBgsLi9IfLDII/HsnIkNx48YNjXNRfX19JRfPGKusrCzY2tpq/f5+mewngl+6dAleXl549uwZrK2tsWfPHvEckyFDhqBevXqoXbs2Ll68iBkzZiAxMRE//vgjACA1NRU1a9aU7K/wcWpq6iv7ZGVl4enTp0hPT4dardba59q1a0XWHR4ervUEOSIiIkOi7busRYswTJ2qRGhoxTwVRC6yh6ZGjRrhwoULyMzMxPfff4+AgACcOHECTZs2xbhx48R+zZs3R61atdC9e3fcvHlTclm4HMLCwhASEiI+LhxpIiIiMgSCIIjr0L1o7ty56NixfK/SNhSyhyalUgl3d3cAgIeHB86cOYNVq1bhyy+/1OhbOEx448YNNGjQAE5OThpXud27dw8A4OTkJP4ubHuxj0qlgqWlJUxNTWFqaqq1T+E+tDE3N4e5uXkx3y0REZH8rl69Kl5MU8jb2xtvvfUWgOdXZ0dElN9V2oaiwi1uWVBQIDlX6EWF5y7VqlULAODl5YVLly5JrnKLjo6GSqUSp/i8vLwQExMj2U90dDS8vLwAPA9tHh4ekj4FBQWIiYkR+xARERmLefPmaQSmmTNnioEJqNhXactJ1pGmsLAw9OzZEy4uLnj06BG2bduG2NhYHDlyBDdv3sS2bdvQq1cvVK9eHRcvXsTUqVPRqVMntGjRAgDQo0cPNG3aFMOHD8fixYuRmpqKWbNmISgoSBwFmjBhAtasWYPp06dj1KhROHbsGHbt2oUDBw6IdYSEhCAgIABt27ZF+/btsXLlSmRnZ2PkyJF6fb8V5Jx7Kif8+yaiiqSgoAALFizQaK/say8Vh6yh6f79+xgxYgRSUlJga2uLFi1a4MiRI3j33Xdx584dHD16VAwwzs7OGDBgAGbNmiU+39TUFPv378fEiRPh5eWFqlWrIiAgQDJH6+bmhgMHDmDq1KlYtWoV6tati40bN8LHx0fsM3DgQKSlpWHOnDlITU1Fq1atcPjwYY2Tw0uq8JL2J0+elOvq1iSvwmUvTE1NZa6EiCq7P/74A3v37pW0+fn5vfIWVqSpwiw5YOhed8liSkoKMjIy4OjoCCsrK/FmtmScCgoKcPfuXZiZmcHFxYV/30QkG21Xx82aNYv/Q/f/GdSSA5VF4UnlFXWVcdI/ExMTBiYiko1arcbChQs12jkdV3IMTeVEoVCgVq1acHR0RF5entzlUDlQKpUwMalw11oQUSVw5swZHDx4UNLWr18/8ZxgKhmGpnJWuMQBERFRWdA2HTdnzhyOeusBQxMREZERyM/Px+eff67Rzuk4/WFoIiIiMnCnTp3SWJPwgw8+QJMmTWSqyDgxNBERERkwTseVH4YmIiIiA5Sbm4vw8HCNdk7HlR2GJiIiIgNz7Ngx/Pzzz5K2YcOGyX4ze2PH0ERERGRAOB0nH4YmIiIiA/Ds2TP8+9//lrQpFArMmTNHpooqH4YmIiKiCu7gwYM4c+aMpG3kyJFwcXGRqaLKiaGJiIioAtM2HceTveXB0ERERFQBZWdnY+nSpZI2KysrTJs2TaaKiKGJiIiogtmzZw8uXrwoaRs7dixq164tU0UEMDQRERFVKJyOq7gYmoiIiCqArKwsrFixQtJWo0YNBAUFyVQRvYyhiYiISGbbt2/H9evXJW0TJ06Eo6OjTBWRNgxNREREMuJ0nOFgaCIiIpJBeno6Vq9eLWlzdnbGqFGjZKqIXoehiYiIqJxt3rwZt2/flrRNnjwZ9vb2MlVEumBoIiIiKkecjjNcDE1ERETlIC0tDevWrZO0NWzYEEOGDJGpIiouhiYiIqIytnbtWvzvf/+TtE2dOhUqlUqmiqgkTOQugIiIyFhERQEdOz7/XWjevHkagWnu3LkMTAaII01ERER6EhEBxMc//92uXQr+85//SLY3b94c/fv3l6k6Ki2GJiIiIj0JDX0emPz8luE//3ks2fbJJ5+gatWqMlVG+sDQREREpCd9+gDnz89Dfr60nVfHGQeGJiIiIj24du0adu7cKWlr27Yt/Pz8ZKqI9I2hiYiIqJS0rb00ffp0WFpaylANlRWGJiIiohISBAHz58/XaOd0nHFiaCIiIiqBixcvYs+ePZI2LlZp3BiaiIiIiknbdNyMGTNgYWEhQzVUXhiaiIiIdMTpuMqNoYmIiEgHZ86cwcGDByVtLVu2hL+/vzwFUbljaCIiInoNbdNxYWFhUCqVMlRDcmFoIiIiKkJBQQEWLFig0c7puMqJoYmIiEiLn3/+GceOHZO0dejQAT4+PjJVRHJjaCIiInqJtum4mTNnokoVfm1WZvzbJyIi+v/UajUWLlyo0c7pOAIYmoiIiAAA0dHRiIuLk7R16dIFnTt3lqkiqmgYmoiIqNLTNh03e/ZsmJiYyFANVVQMTUREVGnl5eVh0aJFGu2cjiNtGJqIiKhSioqKwvnz5yVtvr6+8PT0lKkiqugYmoiIqNLRNh03Z84cKBQKGaohQ8HQRERElUZOTg4iIiI02jkdR7pgaCIiokph165duHr1qqStb9++aNWqlTwFkcFhaCIiIqPH6TjSB4YmIiIyWk+ePMGSJUs02jkdRyXB0EREREYpMjISt27dkrR98MEHaNKkiUwVkaFjaCIiIqOjbTqOo0tUWgxNRERkNLKysrBixQqNdgYm0geGJiIiMgrr1q1DWlqapG3YsGFo0KCBTBWRsWFoIiIig8fpOCoPDE1ERGSwHj58iC+++EKjnYGJygJDExERGaQlS5bgyZMnkrZRo0bB2dlZporI2DE0ERGRweF0HMmBoYmIiAzG/fv3sX79eo12BiYqDwxNRERkELSNLo0fPx5OTk4yVEOVEUMTERFVeJyOo4rARM4XX79+PVq0aAGVSgWVSgUvLy8cOnRI3P7s2TMEBQWhevXqsLa2xoABA3Dv3j3JPm7fvg0/Pz9YWVnB0dER06ZNQ35+vqRPbGws2rRpA3Nzc7i7uyMyMlKjlrVr18LV1RUWFhbw9PTEb7/9VibvmYiIdPfPP/9oBCYzMzMGJpKFrCNNdevWRUREBBo2bAhBELBlyxb07dsX58+fx5tvvompU6fiwIED2L17N2xtbREcHIz+/fvj9OnTAAC1Wg0/Pz84OTkhLi4OKSkpGDFiBMzMzLBo0SIAQFJSEvz8/DBhwgRs3boVMTExGDNmDGrVqgUfHx8AwM6dOxESEoINGzbA09MTK1euhI+PDxITE+Ho6Cjb8SEiqsy0jS4FBwejevXqMlRDBCgEQRDkLuJF9vb2WLJkCd5//304ODhg27ZteP/99wEA165dQ5MmTRAfH48OHTrg0KFDeO+993D37l3UrFkTALBhwwbMmDEDaWlpUCqVmDFjBg4cOICEhATxNQYNGoSMjAwcPnwYAODp6Yl27dphzZo1AICCggI4Oztj8uTJCA0N1anurKws2NraIjMzEyqVSp+HhIio0uF0HJWX4nx/yzo99yK1Wo0dO3YgOzsbXl5eOHfuHPLy8uDt7S32ady4MVxcXBAfHw8AiI+PR/PmzcXABAA+Pj7IysrC5cuXxT4v7qOwT+E+cnNzce7cOUkfExMTeHt7i320ycnJQVZWluSHiIhKJykpSSMw2dnZMTBRhSD7ieCXLl2Cl5cXnj17Bmtra+zZswdNmzbFhQsXoFQqYWdnJ+lfs2ZNpKamAgBSU1Mlgalwe+G2V/XJysrC06dPkZ6eDrVarbXPtWvXiqw7PDxc6/8JERFRyWj7b+qUKVNga2srQzVEmmQfaWrUqBEuXLiAX3/9FRMnTkRAQACuXLkid1mvFRYWhszMTPHnzp07cpdERGSwipqOY2CiikT2kSalUgl3d3cAgIeHB86cOYNVq1Zh4MCByM3NRUZGhmS06d69e+KaHE5OThpXuRVeXfdin5evuLt37x5UKhUsLS1hamoKU1NTrX1etfaHubk5zM3NS/amiYgIAHD9+nVs375d0la7dm2MHTtWpoqIiib7SNPLCgoKkJOTAw8PD5iZmSEmJkbclpiYiNu3b8PLywsA4OXlhUuXLuH+/ftin+joaKhUKjRt2lTs8+I+CvsU7kOpVMLDw0PSp6CgADExMWIfIiLSv3nz5mkEpo8//piBiSosWUeawsLC0LNnT7i4uODRo0fYtm0bYmNjceTIEdja2mL06NEICQmBvb09VCoVJk+eDC8vL3To0AEA0KNHDzRt2hTDhw/H4sWLkZqailmzZiEoKEgcBZowYQLWrFmD6dOnY9SoUTh27Bh27dqFAwcOiHWEhIQgICAAbdu2Rfv27bFy5UpkZ2dj5MiRshwXIiJjx6vjyBDJGpru37+PESNGICUlBba2tmjRogWOHDmCd999FwCwYsUKmJiYYMCAAcjJyYGPjw/WrVsnPt/U1BT79+/HxIkT4eXlhapVqyIgIADz588X+7i5ueHAgQOYOnUqVq1ahbp162Ljxo3iGk0AMHDgQKSlpWHOnDlITU1Fq1atcPjwYY2Tw4mIqHQuXbqEH3/8UdLm7u6OoUOHylQRke4q3DpNhorrNBERvZq20aXp06fD0tJShmqInivO97fsJ4ITEZFxEwRBMgNQiNNxZGgYmoiIqMycPXtWcg4pALRo0QL9+vWTqSKikmNoIiKiMqFtOi4sLAxKpVKGaohKj6GJiIj0qqCgAAsWLNBo53QcGTqGJiIi0pvTp0/j6NGjkrb27dujZ8+eMlVEpD8MTUREpBfapuNmzpyJKlX4VUPGgZ9kIiIqFbVajYULF2q0czqOjA1DExERlVhMTAxOnTolaevUqRO6du0qU0VEZYehiYiISkTbdNzs2bNhYlLhbmtKpBcMTUREVCx5eXlYtGiRRjun48jYMTQREZHO9u/fj3PnzknaevToAS8vL5kqIio/DE1ERKQTbdNxc+bMgUKhkKEaovLH0ERERK+Uk5ODiIgIjXZOx1Flw9BERERF+v7773H58mVJW58+fdC6dWuZKiKSD0MTERFpxek4IimGJiIiknjy5AmWLFmi0c7pOKrsih2aTE1NkZKSAkdHR0n7gwcP4OjoCLVarbfiiIiofH3zzTdISkqStP3rX/9C06ZNZaqIqOIodmgSBEFre05ODpRKZakLIiIieWibjuPoEtH/0Tk0rV69GgCgUCiwceNGWFtbi9vUajVOnjyJxo0b679CIiIqU48ePcLy5cs12hmYiKR0Dk0rVqwA8HykacOGDTA1NRW3KZVKuLq6YsOGDfqvkIiIysyGDRtw7949SdvQoUPh7u4uU0VEFZfOoalwjrtr16748ccfUa1atTIrioiIyh6n44iKp9jnNB0/frws6iAionKSnp4unnLxIgYmolcrdmgaNWrUK7dv2rSpxMUQEVHZWrZsGR4/fixpGzlyJFxcXGSqiMhwFDs0paenSx7n5eUhISEBGRkZ6Natm94KIyIi/eJ0HFHpFDs07dmzR6OtoKAAEydORIMGDfRSFBER6U9aWhrWrVun0c7ARFQ8CqGohZeKKTExEV26dEFKSoo+dmdwsrKyYGtri8zMTKhUKrnLISICAMyfP19jfb1x48ahVq1aMlVEVLEU5/tbb7dRuXnzJvLz8/W1OyIiKiVOxxHpV7FDU0hIiOSxIAhISUnBgQMHEBAQoLfCiIioZO7evYuvvvpK0lalShXMnDlTpoqIjEOxQ9P58+clj01MTODg4IBly5a99so6IiIqW9pGl4KCglCjRg0ZqiEyLlyniYjISHA6jqhslficpvv37yMxMREA0KhRIzg6OuqtKCIi0l1ycjK2bNkiaVOpVJg6dapMFREZp2KHpqysLAQFBWH79u0oKCgAAJiammLgwIFYu3YtbG1t9V4kERFpp2106aOPPoKdnV35F0Nk5EyK+4SxY8fi119/xYEDB5CRkYGMjAzs378fZ8+exfjx48uiRiIi0qKo6TgGJqKyUex1mqpWrYojR47g7bfflrT//PPP8PX1RXZ2tl4LNBRcp4mIysuff/6Jbdu2Sdpq1aqFcePGyVQRkeEq03WaqlevrnUKztbWFtWqVSvu7oiIqBi0jS59/PHHsLa2lqEaosql2NNzs2bNQkhICFJTU8W21NRUTJs2DbNnz9ZrcURE9H+Kmo5jYCIqH8WenmvdujVu3LiBnJwc8a7Yt2/fhrm5ORo2bCjp+/vvv+uv0gqO03NEVFYSEhLwww8/SNoaNGiAYcOGyVQRkfEo0+m5vn37QqFQlLg4IiLSnbbRpenTp8PS0lKGaogqN73dsLey40gTEemTIAiYP3++RjsXqyTSr+J8fxf7nKb69evjwYMHGu0ZGRmoX79+cXdHREQvOXfunEZgatasGQMTkcyKPT2XnJwMtVqt0Z6Tk4O///5bL0UREVVW2qbjwsLCoFQqZaiGiF6kc2iKiooS/3zkyBHJsgNqtRoxMTFwc3PTb3VERJUEp+OIKj6dQ5O/vz8AQKFQICAgQLLNzMwMrq6uWLZsmV6LIyKqDOLi4hAdHS1pa9euHXr16iVTRUSkjc6hqfA+c25ubjhz5gxq1KhRZkURERmrqCggIgIIDQX69NE+HTdz5kxUqVLi+6kTURkp9r/KpKSksqiDiKhSiIgA4uOBf/9bjfPnF2ps53QcUcVV7NCkbc79RXPmzClxMURExi40FPj++2No0OBnSfs777yDbt26yVQVEemi2KFpz549ksd5eXlISkpClSpV0KBBA4YmIqJXOH9+Hho0kLbNnj0bJibFXgGGiMpZsUPT+fPnNdqysrIQGBiIfv366aUoIiJjk5eXh0WLFmm0czqOyHDobUXwS5cuoXfv3khOTtbH7gwOVwQnoqL88MMPSEhIkLR16tQJXbt2lakiIipUpveeK0pmZiYyMzP1tTsiIqOg7eq4OXPm8B6eRAao2KFp9erVkseCICAlJQXffvstevbsqbfCiIgMWU5ODiIiIjTaOR1HZLiKHZpWrFgheWxiYgIHBwcEBAQgLCxMb4URERmqb7/9Fn/99ZekrUePHvDy8pKpIiLSB67TRERUCrosVsnpOCLjUKJzmjIyMnDjxg0AgLu7O+zs7PRZExGRwShcrHLZsic4f36JxnZOxxEZj2KFpuTkZAQFBeHIkSMovOhOoVDA19cXa9asgaura1nUSERUYYWGAidPboCNzT1Je58+fdC6dWuZqiKisqBzaLpz5w46dOgAMzMzLFiwAE2aNAEAXLlyBevXr4eXlxfOnDmDunXrllmxREQVzfnz82BjI23j6BKRcdJ5nabRo0fjxo0bOHLkCCwsLCTbnj59Cl9fXzRs2BAbN24sk0IrOq7TRFS5pKena1xNDDAwERmaMlmn6fDhw9i5c6dGYAIAS0tLLFiwAIMGDSp+tUREBuDFE77Pn9c82fuDDz4QR+CJyDjpHJr+97//vfKcpfr16+Phw4f6qImIqMIpPOFbW2Di6BJR5aDzHSJr1aqFK1euFLk9ISEBTk5OxXrx8PBwtGvXDjY2NnB0dIS/vz8SExMlfbp06QKFQiH5mTBhgqTP7du34efnBysrKzg6OmLatGnIz8+X9ImNjUWbNm1gbm4Od3d3REZGatSzdu1auLq6wsLCAp6envjtt9+K9X6IyPhERQEdOwLdut3HZ58xMBFVZjqHJn9/f3zyySdIS0vT2Hb//n3MmDED/v7+xXrxEydOICgoCL/88guio6ORl5eHHj16IDs7W9Jv7NixSElJEX8WL14sblOr1fDz80Nubi7i4uKwZcsWREZGYs6cOWKfpKQk+Pn5oWvXrrhw4QKmTJmCMWPG4MiRI2KfnTt3IiQkBHPnzsXvv/+Oli1bwsfHB/fv3y/WeyIi4xIRAfj4zIOZ2XpJ+/vvv8/ARFTJ6HwieHp6Ojw9PZGamophw4ahcePGEAQBV69exbZt2+Dk5IRffvkF9vb2JS4mLS0Njo6OOHHiBDp16gTg+UhTq1atsHLlSq3POXToEN577z3cvXsXNWvWBABs2LABM2bMQFpaGpRKJWbMmIEDBw5Ibpg5aNAgZGRk4PDhwwAAT09PtGvXDmvWrAEAFBQUwNnZGZMnT0ZoaOhra+eJ4ETGSdtilQxLRMajON/fOo80VatWDb/++iuGDh2KHTt2YMqUKZg6dSp27dqFIUOGlDowARBv+PvyfrZu3YoaNWqgWbNmCAsLw5MnT8Rt8fHxaN68uRiYAMDHxwdZWVm4fPmy2Mfb21uyTx8fH8THxwMAcnNzce7cOUkfExMTeHt7i31elpOTg6ysLMkPERmPpKQkBiYikijW4pbVqlXD+vXrsW7dOnGazsHBQS+3BygoKMCUKVPw1ltvoVmzZmL7kCFDUK9ePdSuXRsXL17EjBkzkJiYiB9//BEAkJqaKglMAMTHqampr+yTlZWFp0+fIj09HWq1Wmufa9euaa03PDxc639Qicjwafu3PWzYMDRo0ECGaoiooijRbVQUCgUcHR31WkhQUBASEhJw6tQpSfu4cePEPzdv3hy1atVC9+7dcfPmTVn/AxYWFoaQkBDxcVZWFpydnWWrh4j0g6NLRFSUEoUmfQsODsb+/ftx8uTJ164o7unpCQC4ceMGGjRoACcnJ42r3O7de347g8Kr+ZycnMS2F/uoVCpYWlrC1NQUpqamWvsUdUWgubk5zM3NdX+TRFShXb16Fbt27dJoZ2AiokI6n9NUFgRBQHBwMPbs2YNjx47Bzc3ttc+5cOECgOdLIACAl5cXLl26JLnKLTo6GiqVCk2bNhX7xMTESPYTHR0NLy8vAIBSqYSHh4ekT0FBAWJiYsQ+RGS85s2bpxGYhg8fzsBERBKyjjQFBQVh27Zt2LdvH2xsbMRzkGxtbWFpaYmbN29i27Zt6NWrF6pXr46LFy9i6tSp6NSpE1q0aAEA6NGjB5o2bYrhw4dj8eLFSE1NxaxZsxAUFCSOBE2YMAFr1qzB9OnTMWrUKBw7dgy7du3CgQMHxFpCQkIQEBCAtm3bon379li5ciWys7MxcuTI8j8wRFRuOB1HRLrSecmBMnnxIk4g37x5MwIDA3Hnzh0MGzYMCQkJyM7OhrOzM/r164dZs2ZJLgu8desWJk6ciNjYWFStWhUBAQGIiIhAlSr/lwljY2MxdepUXLlyBXXr1sXs2bMRGBgoed01a9ZgyZIlSE1NRatWrbB69WpxOvB1uOQAkWE5f/48oqKiNNoZmIgql+J8f+sUmrTdlLIoH374oc59jQlDE5Hh0Da6NGbMGNSpU0eGaohITnoPTbqcawQ8Hzn666+/dKvSyDA0ERkGTscR0YuK8/2t0zlNSUlJeimMiEgup0+fxtGjRzXaGZiISFclPhE8NzcXSUlJaNCggeTcISKiikbb6FJQUBBq1KghQzVEZKiKveTAkydPMHr0aFhZWeHNN9/E7du3AQCTJ09GRESE3gskIiqNoqbjGJiIqLiKHZrCwsLwxx9/IDY2FhYWFmK7t7c3du7cqdfiiIhKav36aJ6/RER6Vex5tb1792Lnzp3o0KGDZMmAN998Ezdv3tRrcUREJaEtLE2ZMgW2trYyVENExqLYoSktLU3rfeeys7P1cuNeIqKSEgQB8+fP12jn6BIR6UOxp+fatm0rWUm7MCht3LiRtxwhItkcPXpUIzCZmJgwMBGR3hR7pGnRokXo2bMnrly5gvz8fKxatQpXrlxBXFwcTpw4URY1EhG9krbpuOnTp8PS0lKGaojIWBV7pOntt9/GhQsXkJ+fj+bNm+Onn36Co6Mj4uPj4eHhURY1EhFpJQhCkSd7MzARkb7Jeu85Y8IVwYnKV1RUFM6fPy9pc3Jywvjx42WqiIgMkd5XBM/KytL5xRkYiKisaRtdCgsLg1KplKEaIqosdApNdnZ2Ol8Zp1arS1UQEVFR1Go1Fi5cqNHOk72JqDzoFJqOHz8u/jk5ORmhoaEIDAwUr5aLj4/Hli1bEB4eXjZVElGlt337dly/fl3S5u7ujqFDh8pUERFVNsU+p6l79+4YM2YMBg8eLGnftm0b/vOf/yA2Nlaf9RkMntNEVHa0TcfNmjULpqamMlRDRMakON/fxb56Lj4+Hm3bttVob9u2LX777bfi7o6IqEh5eXlFXh3HwERE5a3Y6zQ5Ozvjq6++wuLFiyXtGzduhLOzs94KI6LKbePGjfjnn38kbS1atEC/fv1kqoiIKrtih6YVK1ZgwIABOHToEDw9PQEAv/32G/7880/88MMPei+QiCofbaNLs2fPholJsQfHiYj0ptj/BerVqxf+/PNP9O7dGw8fPsTDhw/Ru3dvXL9+Hb169SqLGomoknj27FmR03EMTEQkNy5uqSc8EZyodFauXInMzExJm5eXF3r06CFTRURUGeh9ccuXZWRk4Ouvv8bVq1cBAG+++SZGjRoFW1vbkuyOiCo5baNLc+bM0Xl9OCKi8lDs8e6zZ8+iQYMGWLFihTg9t3z5cjRo0AC///57WdRIREbq8ePHRU7HMTARUUVT7Om5d955B+7u7vjqq69Qpcrzgar8/HyMGTMGf/31F06ePFkmhVZ0nJ4jKp4FCxagoKBA0tatWze88847MlVERJVRcb6/ix2aLC0tcf78eTRu3FjSfuXKFbRt2xZPnjwpfsVGgKGJSHdFjS4REZW3Ml3cUqVS4fbt2xrtd+7cgY2NTXF3R0SVSEZGBgMTERmsYp8IPnDgQIwePRpLly5Fx44dAQCnT5/GtGnTNG6tQkRUSFtY8vPz03qHASKiiqjYoWnp0qVQKBQYMWIE8vPzAQBmZmaYOHEiIiIi9F4gERk+ji4RkTEo8TpNT548wc2bNwEADRo0gJWVlV4LMzQ8p4lIU1paGtatW6fRzsBERBVFma/TBABWVlZo3rx5SZ9OREZO2+jSgAED0KxZMxmqISIqPZ1D06hRo3Tqt2nTphIXQ0TGgdNxRGSMdA5NkZGRqFevHlq3bg3eeYWItPnnn3+wceNGjXYGJiIyBjqHpokTJ2L79u1ISkrCyJEjMWzYMNjb25dlbURkQLSNLg0dOhTu7u4yVENEpH86r9O0du1apKSkYPr06fjvf/8LZ2dnfPDBBzhy5AhHnogquaKm4xiYiMiYlPjquVu3biEyMhLffPMN8vPzcfnyZVhbW+u7PoPBq+eoMkpKSsI333yj0c7pOCIyFOVy9ZyJiQkUCgUEQYBarS7pbojIQGkbXRo5ciRcXFxkqIaIqOwV6zYqOTk52L59O95991288cYbuHTpEtasWYPbt29X6lEmosqmqOk4BiYiMmY6jzRNmjQJO3bsgLOzM0aNGoXt27ejRo0aZVkbEVUwV69exa5duzTaOR1HRJWBzuc0mZiYwMXFBa1bt4ZCoSiy348//qi34gwJz2kiY6dtdGn8+PFwcnKSoRoiIv0ok3OaRowY8cqwRETGi4tVEhEVc3FLIqpcLly4gH379mm0MzARUWVU4qvniMi4aRtdmjx5Mhe1JaJKi6GJiDRwOo6ISBNDExGJ4uPj8dNPP2m0MzARETE0EdH/p210admyqWjWTAVmJiIihiaiSk8QBMyfP1+jvXXruWjWDAgNlaEoIqIKiKGJqBI7duwYfv75Z0mbpaUlpk+fDgDo00eOqoiIKiaGJqJKStt03LRp02BlZSVDNUREFR9DE1ElU9R0HE/2JiJ6NYYmokpk//79OHfunKTN0dEREydOlKkiIiLDwdBEVElom44LCwuDUqmUoRoiIsPD0ERk5NRqNRYuXKjRzuk4IqLiYWgiMmK7du3C1atXJW1ubm4YMWKETBURERkuhiYiI6VtOm7mzJmoUoX/7ImISoL/9SQyMnl5eVi0aJFGO6fjiIhKh6GJyIhs2rQJd+7ckbRVq9YcO3b0R+vWXKySiKg0GJqIjIS26bjZs2fj7bdNEB8PREQwNBERlYaJ3AUQUek8e/ZMa2CaO3cuTExMEBoKeHnxHnJERKXFkSYiA7Z69Wqkp6dL2jw9PeHr6ys+7tOHI0xERPrA0ERkoLSNLs2ZMwcKhUKGaoiIjJ+s03Ph4eFo164dbGxs4OjoCH9/fyQmJkr6PHv2DEFBQahevTqsra0xYMAA3Lt3T9Ln9u3b8PPzg5WVFRwdHTFt2jTk5+dL+sTGxqJNmzYwNzeHu7s7IiMjNepZu3YtXF1dYWFhAU9PT/z22296f89EpZWdnV3kdBwDExFR2ZE1NJ04cQJBQUH45ZdfEB0djby8PPTo0QPZ2dlin6lTp+K///0vdu/ejRMnTuDu3bvo37+/uF2tVsPPzw+5ubmIi4vDli1bEBkZiTlz5oh9kpKS4Ofnh65du+LChQuYMmUKxowZgyNHjoh9du7ciZCQEMydOxe///47WrZsCR8fH9y/f798DgaRDhYtWoSlS5dK2rp06cLlBIiIyoFCEARB7iIKpaWlwdHRESdOnECnTp2QmZkJBwcHbNu2De+//z4A4Nq1a2jSpAni4+PRoUMHHDp0CO+99x7u3r2LmjVrAgA2bNiAGTNmIC0tDUqlEjNmzMCBAweQkJAgvtagQYOQkZGBw4cPA3h+Hki7du2wZs0aAEBBQQGcnZ0xefJkhOpwBm1WVhZsbW2RmZkJlUql70NDVOToEhERlVxxvr8r1NVzmZmZAAB7e3sAwLlz55CXlwdvb2+xT+PGjeHi4oL4+HgAQHx8PJo3by4GJgDw8fFBVlYWLl++LPZ5cR+FfQr3kZubi3Pnzkn6mJiYwNvbW+zzspycHGRlZUl+iMpCZmYmAxMRUQVQYU4ELygowJQpU/DWW2+hWbNmAIDU1FQolUrY2dlJ+tasWROpqalinxcDU+H2wm2v6pOVlYWnT58iPT0darVaa59r165prTc8PFzrFxmRPmn7jPXs2RPt27eXoRoiosqtwow0BQUFISEhATt27JC7FJ2EhYUhMzNT/Hl5FWai0ipqdImBiYhIHhVipCk4OBj79+/HyZMnUbduXbHdyckJubm5yMjIkIw23bt3D05OTmKfl69yK7y67sU+L19xd+/ePahUKlhaWsLU1BSmpqZa+xTu42Xm5uYwNzcv2RsmeoX//e9/WLt2rUY7p+OIiOQl60iTIAgIDg7Gnj17cOzYMbi5uUm2e3h4wMzMDDExMWJbYmIibt++DS8vLwCAl5cXLl26JLnKLTo6GiqVCk2bNhX7vLiPwj6F+1AqlfDw8JD0KSgoQExMjNiHqDzMmzdPIzD1798frVvPRceOQFSUTIUREZG8V89NmjQJ27Ztw759+9CoUSOx3dbWFpaWlgCAiRMn4uDBg4iMjIRKpcLkyZMBAHFxcQCeLznQqlUr1K5dG4sXL0ZqaiqGDx+OMWPGiHd6T0pKQrNmzRAUFIRRo0bh2LFj+PDDD3HgwAH4+PgAeL7kQEBAAL788ku0b98eK1euxK5du3Dt2jWNc5204dVzVFqvOtm7Y0cgPv757VD+/0efiIj0oDjf37KGpqIW4tu8eTMCAwMBPF/c8uOPP8b27duRk5MDHx8frFu3TjJtduvWLUycOBGxsbGoWrUqAgICEBERgSpV/m/2MTY2FlOnTsWVK1dQt25dzJ49W3yNQmvWrMGSJUuQmpqKVq1aYfXq1fD09NTpvTA0UUndvXsXX331lUb7i9NxUVHPb7gbGspbohAR6ZPBhCZjwtBEJaFtdGnw4MG4du0NhiQionJQnO/vCnEiOFFl9KrpuMDA59NxEREMTUREFUWFWXKAqLJITk5+7WKVoaHPz1/SYTF6IiIqJxxpIipH2sJSYGAg6tWrJ2nr04cjTEREFQ1DE1E54a1QiIgMG0MTURlLTEzUutI9AxMRkWFhaCIqQ9pGl8aNG4datWrJUA0REZUGQxNRGeF0HBGRcWFoItKzP/74A3v37tVoZ2AiIjJsDE1EeqRtdCk4OBjVq1eXoRoiItInhiYiPeF0HBGRcWNoIiqlX3/9FYcPH9ZoZ2AiIjIuDE1EpaBtdGnq1Km8/yARkRFiaCIqAUEQMH/+fI12ji4RERkvhiaiYjp+/DhOnjwpaTM3N0cobxRHRGTUGJqIikHbdNy0adNgZWUlQzVERFSeGJqIdMDpOCIiYmgieo0DBw7g7NmzkrYaNWogKChIpoqIiEgODE1Er6BtOi40NBTm5uYyVENERHJiaCLSoqCgAAsWLNBo53QcEVHlxdBE9JLdu3fjypUrkjZXV1cEBATIVBEREVUEDE1EL9A2HTdz5kxUqcJ/KkRElR2/CYgA5Ofn4/PPP9do53QcEREVYmiiSi8yMhK3bt2StL355pt4//33AQBRUUBEBBAaCvTpI0eFRERUETA0UaWmbTpu9uzZMDExER9HRADx8c9/MzQREVVeJq/vQmR8cnJytAamuXPnSgIT8HyEycvr+W8iIqq8ONJElc6aNWvw4MEDSVu7du3Qq1cvrf379OEIExERMTRRJaNtdGnOnDlQKBQyVENERIaEoYkqhezsbCxdulSjnVfHERGRrhiayOiFh4cjNzdX0ta5c2d06dJFnoKIiMggMTSRUeN0HBER6QtDExmlx48fY9myZRrtnI4jIqKSYmgio7N69Wqkp6dL2nx9feHp6SlTRUREZAwYmsioFLX2EhERUWkxNJFRyMjIwKpVqzTaGZiIiEhfGJrI4C1atAh5eXmStsGDB+ONN96QqSIiIjJGDE1k0DgdR0RE5YX3niODlJaWplNgiooCOnZ8/puIiKg0ONJEBkdbWAoICICrq6tGe0QEEB///DfvH0dERKXBkSYyKEWNLmkLTAAQGgp4eT3/TUREVBocaSKDcPfuXXz11Vca7a87f6lPH44wERGRfjA0UYUVFfV8Ws3HR3N0aezYsahdu7YMVRERUWXF0EQVVlGBiVfHERGRHBiaqEK6e/cufHyKPx1HRERUVhiaqMJZsGABCgoKJG2TJk2Cg4ODTBURERExNFEFw8UqiYioomJoogrhzp072LRpk6StXr16CAwMlKcgIiKilzA0key0jS6FhITAxsZGhmqIiIi0Y2giWXE6joiIDAVDE8ni5s2b+O677yRtjRs3xsCBA2WqiIiI6NUYmqjcaRtdmjZtGqysrGSohoiISDcMTVRuBEHA/PnzNdo5HUdERIaAoYnKhbbpuNatW6MPbwxHREQGgqGJypy26biwsDAolUoZqiEiIioZhiYqM5yOIyIiY8LQRGXi2rVr2Llzp6Ste/fuePvtt2WqiIiIqHQYmkjvtE3HzZw5E1Wq8ONGRESGy0TuAsh4CIJQ5GKVLwemqCigY8fnv4mIiAwB/9ef9OLixYvYs2ePpK1nz55o37691v4REUB8/PPfvICOiIgMAUMTlZq20aVZs2bB1NS0yOeEhj4PTKGhZVkZERGR/sg6PXfy5En07t0btWvXhkKhwN69eyXbAwMDoVAoJD++vr6SPg8fPsTQoUOhUqlgZ2eH0aNH4/Hjx5I+Fy9exDvvvAMLCws4Oztj8eLFGrXs3r0bjRs3hoWFBZo3b46DBw/q/f0ak6go4K231EVOx70qMAHPR5fi4jjKREREhkPW0JSdnY2WLVti7dq1Rfbx9fVFSkqK+LN9+3bJ9qFDh+Ly5cuIjo7G/v37cfLkSYwbN07cnpWVhR49eqBevXo4d+4clixZgs8++wz/+c9/xD5xcXEYPHgwRo8ejfPnz8Pf3x/+/v5ISEjQ/5s2Et99dxY9eiyUtPn7+3M5ASIiMloKQRAEuYsAAIVCgT179sDf319sCwwMREZGhsYIVKGrV6+iadOmOHPmDNq2bQsAOHz4MHr16oW///4btWvXxvr16zFz5kykpqaKiymGhoZi7969uHbtGgBg4MCByM7Oxv79+8V9d+jQAa1atcKGDRt0qj8rKwu2trbIzMyESqUqwREwHBEREcjJyZG0zZ49GyYmvK6AiIgMS3G+vyv8t1xsbCwcHR3RqFEjTJw4EQ8ePBC3xcfHw87OTgxMAODt7Q0TExP8+uuvYp9OnTpJVp/28fFBYmIi0tPTxT7e3t6S1/Xx8UF8fHyRdeXk5CArK0vyY+zU6ufTcS8Hprlz5zIwERGR0avQJ4L7+vqif//+cHNzw82bN/Hpp5+iZ8+eiI+Ph6mpKVJTU+Ho6Ch5TpUqVWBvb4/U1FQAQGpqKtzc3CR9atasKW6rVq0aUlNTxbYX+xTuQ5vw8HCt5/MYq8TEROzYsUPSNnLkSLi4uMhUERERUfmq0KFp0KBB4p+bN2+OFi1aoEGDBoiNjUX37t1lrOz5vdNCQkLEx1lZWXB2dpaxorKjbTpuzpw5UCgUMlVERERU/ip0aHpZ/fr1UaNGDdy4cQPdu3eHk5MT7t+/L+mTn5+Phw8fwsnJCQDg5OSEe/fuSfoUPn5dn8Lt2pibm8Pc3LzU76kiy8/Px+effy5pa9CgAYYNGyZTRURERPIxqBNR/v77bzx48AC1atUCAHh5eSEjIwPnzp0T+xw7dgwFBQXw9PQU+5w8eRJ5eXlin+joaDRq1AjVqlUT+8TExEheKzo6Gl5eXmX9liqshIQEjcA0fvx4BiYiIqq0ZB1pevz4MW7cuCE+TkpKwoULF2Bvbw97e3vMmzcPAwYMgJOTE27evInp06fD3d0dPj4+AIAmTZrA19cXY8eOxYYNG5CXl4fg4GAMGjQItWvXBgAMGTIE8+bNw+jRozFjxgwkJCRg1apVWLFihfi6H330ETp37oxly5bBz88PO3bswNmzZyXLElQm2s7V4nQcERFVdrIuORAbG4uuXbtqtAcEBGD9+vXw9/fH+fPnkZGRgdq1a6NHjx5YsGCB5KTthw8fIjg4GP/9739hYmKCAQMGYPXq1bC2thb7XLx4EUFBQThz5gxq1KiByZMnY8aMGZLX3L17N2bNmoXk5GQ0bNgQixcvRq9evXR+L8aw5EBeXh4WLVokaWvSpAk++OADmSoiIiIqW8X5/q4w6zQZOkMPTefPn0fUS3fPnTRpEhwcHGSqiIiIqOwV5/vboE4Ep7JR1K1QiIiI6P8wNFViOTk5iIiIkLS1atUKffv2lakiIiKiiouhqZL67bffcOjQIUnb5MmTYW9vL1NFREREFRtDUyXE6TgiIqLiY2iqRJ4+fYrFixdL2tq3b4+ePXvKVBEREZHhYGiqJE6fPo2jR49K2qZMmQJbW1uZKiIiIjIsDE2VAKfjiIiISo+hyYhlZ2dj6dKlkra33noL3t7eMlVERERkuBiajNTx48dx8uRJSdvHH38sWSmdiIiIdMfQZIQ4HUdERKR/DE1GJCsrS3IjYgDo1q0b3nnnHZkqIiIiMh4MTUbiyJEj+OWXXyRt06ZNg5WVlUwVERERGReGJiPA6TgiIqKyx9BkwNLT07F69WpJm4+PDzp06CBTRURERMaLoclAbdhwDPfu/SxpmzFjBiwsLGSqiIiIyLgxNBmgrVu34t69G5I2TscRERGVLYYmA/LkyRMsWbJE0ubs/B5GjfKQqSIiIqLKg6HJAERFAZs3X0GrVrsl7bNmzYKpqalMVREREVUuDE0GICZmC1q1ShYfv/POO+jWrZt8BREREVVCDE0V3N27d2Fvnyw+njBhAmrWrClfQURERJUUQ1MFZ2trC3d3d2RkZGDChAmcjiMiIpIJQ1MFV7VqVQwdOlTuMoiIiCo9E7kLICIiIjIEDE1EREREOmBoIiIiItIBQxMRERGRDhiaiIiIiHTA0ERERESkA4YmIiIiIh0wNBERERHpgKGJiIiISAcMTUREREQ6YGgiIiIi0gFDExEREZEOGJqIiIiIdMDQRERERKSDKnIXYCwEQQAAZGVlyVwJERER6arwe7vwe/xVGJr05NGjRwAAZ2dnmSshIiKi4nr06BFsbW1f2Uch6BKt6LUKCgpw9+5d2NjYQKFQyF1OmcrKyoKzszPu3LkDlUoldzmVBo+7PHjc5cHjXv4q6zEXBAGPHj1C7dq1YWLy6rOWONKkJyYmJqhbt67cZZQrlUpVqf5hVRQ87vLgcZcHj3v5q4zH/HUjTIV4IjgRERGRDhiaiIiIiHTA0ETFZm5ujrlz58Lc3FzuUioVHnd58LjLg8e9/PGYvx5PBCciIiLSAUeaiIiIiHTA0ERERESkA4YmIiIiIh0wNBERERHpgKGpkjh58iR69+6N2rVrQ6FQYO/evZLtgYGBUCgUkh9fX19Jn4cPH2Lo0KFQqVSws7PD6NGj8fjxY0mfixcv4p133oGFhQWcnZ2xePFijVp2796Nxo0bw8LCAs2bN8fBgwf1/n4rgvDwcLRr1w42NjZwdHSEv78/EhMTJX2ePXuGoKAgVK9eHdbW1hgwYADu3bsn6XP79m34+fnBysoKjo6OmDZtGvLz8yV9YmNj0aZNG5ibm8Pd3R2RkZEa9axduxaurq6wsLCAp6cnfvvtN72/54pAl+PepUsXjc/7hAkTJH143Itn/fr1aNGihbgwopeXFw4dOiRu52e9bLzuuPOzrmcCVQoHDx4UZs6cKfz4448CAGHPnj2S7QEBAYKvr6+QkpIi/jx8+FDSx9fXV2jZsqXwyy+/CD///LPg7u4uDB48WNyemZkp1KxZUxg6dKiQkJAgbN++XbC0tBS+/PJLsc/p06cFU1NTYfHixcKVK1eEWbNmCWZmZsKlS5fK9P3LwcfHR9i8ebOQkJAgXLhwQejVq5fg4uIiPH78WOwzYcIEwdnZWYiJiRHOnj0rdOjQQejYsaO4PT8/X2jWrJng7e0tnD9/Xjh48KBQo0YNISwsTOzz119/CVZWVkJISIhw5coV4YsvvhBMTU2Fw4cPi3127NghKJVKYdOmTcLly5eFsWPHCnZ2dsK9e/fK52CUI12Oe+fOnYWxY8dKPu+ZmZnidh734ouKihIOHDggXL9+XUhMTBQ+/fRTwczMTEhISBAEgZ/1svK6487Pun4xNFVCRYWmvn37FvmcK1euCACEM2fOiG2HDh0SFAqF8M8//wiCIAjr1q0TqlWrJuTk5Ih9ZsyYITRq1Eh8/MEHHwh+fn6SfXt6egrjx48vxTsyDPfv3xcACCdOnBAEQRAyMjIEMzMzYffu3WKfq1evCgCE+Ph4QRCeh10TExMhNTVV7LN+/XpBpVKJx3n69OnCm2++KXmtgQMHCj4+PuLj9u3bC0FBQeJjtVot1K5dWwgPD9f/G61gXj7ugvD8i+Sjjz4q8jk87vpRrVo1YePGjfysl7PC4y4I/KzrG6fnSBQbGwtHR0c0atQIEydOxIMHD8Rt8fHxsLOzQ9u2bcU2b29vmJiY4NdffxX7dOrUCUqlUuzj4+ODxMREpKeni328vb0lr+vj44P4+PiyfGsVQmZmJgDA3t4eAHDu3Dnk5eVJjkfjxo3h4uIiHo/4+Hg0b94cNWvWFPv4+PggKysLly9fFvu86pjm5ubi3Llzkj4mJibw9vaulMe90NatW1GjRg00a9YMYWFhePLkibiNx7101Go1duzYgezsbHh5efGzXk5ePu6F+FnXH96wlwAAvr6+6N+/P9zc3HDz5k18+umn6NmzJ+Lj42FqaorU1FQ4OjpKnlOlShXY29sjNTUVAJCamgo3NzdJn8J/iKmpqahWrRpSU1Ml/zgL+xTuw1gVFBRgypQpeOutt9CsWTMAz4+JUqmEnZ2dpO+Lx6Oo41W47VV9srKy8PTpU6Snp0OtVmvtc+3aNb29x4pI23EHgCFDhqBevXqoXbs2Ll68iBkzZiAxMRE//vgjAB73krp06RK8vLzw7NkzWFtbY8+ePWjatCkuXLjAz3oZKuq4A/ys6xtDEwEABg0aJP65efPmaNGiBRo0aIDY2Fh0795dxsqMQ1BQEBISEnDq1Cm5S6lUijru48aNE//cvHlz1KpVC927d8fNmzfRoEGD8i7TaDRq1AgXLlxAZmYmvv/+ewQEBODEiRNyl2X0ijruTZs25Wddzzg9R1rVr18fNWrUwI0bNwAATk5OuH//vqRPfn4+Hj58CCcnJ7HPy1fDFD5+XZ/C7cYoODgY+/fvx/Hjx1G3bl2x3cnJCbm5ucjIyJD0f/F4lOaYqlQqWFpaokaNGjA1NeVxfwVPT08AkHzeedyLT6lUwt3dHR4eHggPD0fLli2xatUqftbLWFHHXRt+1kuHoYm0+vvvv/HgwQPUqlULAODl5YWMjAycO3dO7HPs2DEUFBSI/wi9vLxw8uRJ5OXliX2io6PRqFEjVKtWTewTExMjea3o6GjJ/LuxEAQBwcHB2LNnD44dO6Yxdenh4QEzMzPJ8UhMTMTt27fF4+Hl5YVLly5JAmt0dDRUKpU4/P66Y6pUKuHh4SHpU1BQgJiYmEp53LW5cOECAEg+7zzupVdQUICcnBx+1stZ4XHXhp/1UpL7THQqH48ePRLOnz8vnD9/XgAgLF++XDh//rxw69Yt4dGjR8Inn3wixMfHC0lJScLRo0eFNm3aCA0bNhSePXsm7sPX11do3bq18OuvvwqnTp0SGjZsKFlyICMjQ6hZs6YwfPhwISEhQdixY4dgZWWlseRAlSpVhKVLlwpXr14V5s6da7RLDkycOFGwtbUVYmNjJZf7PnnyROwzYcIEwcXFRTh27Jhw9uxZwcvLS/Dy8hK3F14O3KNHD+HChQvC4cOHBQcHB62XA0+bNk24evWqsHbtWq2XA5ubmwuRkZHClStXhHHjxgl2dnaSK2aMxeuO+40bN4T58+cLZ8+eFZKSkoR9+/YJ9evXFzp16iTug8e9+EJDQ4UTJ04ISUlJwsWLF4XQ0FBBoVAIP/30kyAI/KyXlVcdd37W9Y+hqZI4fvy4AEDjJyAgQHjy5InQo0cPwcHBQTAzMxPq1asnjB07VuPD/uDBA2Hw4MGCtbW1oFKphJEjRwqPHj2S9Pnjjz+Et99+WzA3Nxfq1KkjREREaNSya9cu4Y033hCUSqXw5ptvCgcOHCjT9y4XbccbgLB582axz9OnT4VJkyYJ1apVE6ysrIR+/foJKSkpkv0kJycLPXv2FCwtLYUaNWoIH3/8sZCXlyfpc/z4caFVq1aCUqkU6tevL3mNQl988YXg4uIiKJVKoX379sIvv/xSFm9bdq877rdv3xY6deok2NvbC+bm5oK7u7swbdo0ydo1gsDjXlyjRo0S6tWrJyiVSsHBwUHo3r27GJgEgZ/1svKq487Puv4pBEEQynt0i4iIiMjQ8JwmIiIiIh0wNBERERHpgKGJiIiISAcMTUREREQ6YGgiIiIi0gFDExEREZEOGJqIiIiIdMDQREQV2unTp9G8eXOYmZnB399f7nKIqBJjaCKiMhMYGAiFQgGFQgEzMzO4ublh+vTpePbsmc77CAkJQatWrZCUlITIyMiyK7YcRUZGisfF1NQU1apVg6enJ+bPn4/MzMxi70+hUGDv3r36L5SIJBiaiKhM+fr6IiUlBX/99RdWrFiBL7/8EnPnztX5+Tdv3kS3bt1Qt25d2NnZlaiG3NzcEj2vJARBQH5+/mv7qVQqpKSk4O+//0ZcXBzGjRuHb775Bq1atcLdu3fLoVIiKi6GJiIqU+bm5nBycoKzszP8/f3h7e2N6OhoAM/vhB4eHg43NzdYWlqiZcuW+P777wEAycnJUCgUePDgAUaNGgWFQiGONJ04cQLt27eHubk5atWqhdDQUElQ6dKlC4KDgzFlyhTUqFEDPj4+iI2NhUKhwJEjR9C6dWtYWlqiW7duuH//Pg4dOoQmTZpApVJhyJAhePLkibivV9UIQNzvoUOH4OHhAXNzc5w6deq1x0WhUMDJyQm1atVCkyZNMHr0aMTFxeHx48eYPn262M/V1RUrV66UPLdVq1b47LPPxO0A0K9fPygUCri6uiI5ORkmJiY4e/as5HkrV65EvXr1UFBQ8Nr6iEgTQxMRlZuEhATExcVBqVQCAMLDw/HNN99gw4YNuHz5MqZOnYphw4bhxIkTcHZ2RkpKClQqFVauXImUlBQMHDgQ//zzD3r16oV27drhjz/+wPr16/H1119j4cKFktfasmULlEolTp8+jQ0bNojtn332GdasWYO4uDjcuXMHH3zwAVauXIlt27bhwIED+Omnn/DFF1+I/V9V44tCQ0MRERGBq1evokWLFiU6Po6Ojhg6dCiioqKgVqt1es6ZM2cAAJs3b0ZKSgrOnDkDV1dXeHt7Y/PmzZK+mzdvRmBgIExM+J9+ohKR+YbBRGTEAgICBFNTU6Fq1aqCubm5AEAwMTERvv/+e+HZs2eClZWVEBcXJ3nO6NGjhcGDB4uPbW1tJXdU//TTT4VGjRoJBQUFYtvatWsFa2trQa1WC4IgCJ07dxZat24t2e/x48cFAMLRo0fFtvDwcAGAcPPmTbFt/Pjxgo+PjyAIgk41Fu537969Oh+XzZs3C7a2tlq3rV+/XgAg3Lt3TxAEQahXr56wYsUKSZ+WLVsKc+fOFR8DEPbs2SPps3PnTqFatWrCs2fPBEEQhHPnzgkKhUJISkrSuU4ikqoiZ2AjIuPXtWtXrF+/HtnZ2VixYgWqVKmCAQMG4PLly3jy5AneffddSf/c3Fy0bt26yP1dvXoVXl5eUCgUYttbb72Fx48f4++//4aLiwsAwMPDQ+vzXxwFqlmzJqysrFC/fn1J22+//QYAuHHjhs41tm3b9lWHQWeCIACA5P2VhL+/P4KCgrBnzx4MGjQIkZGR6Nq1qzidR0TFx9BERGWqatWqcHd3BwBs2rQJLVu2xNdff41mzZoBAA4cOIA6depInmNubq6X19XGzMxM/HPhVX0vUigU4jk/jx8/1rnGol6vuK5evQqVSoXq1asDAExMTMQgVSgvL++1+1EqlRgxYgQ2b96M/v37Y9u2bVi1apVeaiSqrBiaiKjcmJiY4NNPP0VISAiuX78Oc3Nz3L59G507d9Z5H02aNMEPP/wAQRDE0ZjTp0/DxsYGdevW1Wu9TZs2LVGNJXX//n1s27YN/v7+4nlHDg4OSElJEftkZWUhKSlJ8jwzMzOt50CNGTMGzZo1w7p165Cfn4/+/fuX7RsgMnIMTURUrv71r39h2rRp+PLLL/HJJ59g6tSpKCgowNtvv43MzEycPn0aKpUKAQEBWp8/adIkrFy5EpMnT0ZwcDASExMxd+5chISE6P0EZxsbmxLVqAtBEJCamgpBEJCRkYH4+HgsWrQItra2iIiIEPt169YNkZGR6N27N+zs7DBnzhyYmppK9uXq6oqYmBi89dZbMDc3R7Vq1QA8D5gdOnTAjBkzMGrUKFhaWpa4XiJiaCKiclalShUEBwdj8eLFSEpKgoODA8LDw/HXX3/Bzs4Obdq0waefflrk8+vUqYODBw9i2rRpaNmyJezt7TF69GjMmjWrTOpdsGBBsWvURVZWFmrVqgWFQgGVSoVGjRohICAAH330EVQqldgvLCwMSUlJeO+992Bra4sFCxZojDQtW7YMISEh+Oqrr1CnTh0kJyeL2wqXMhg1alSp6iUiQCG8PFlORERGY8GCBdi9ezcuXrwodylEBo+LdRARGaHHjx8jISEBa9asweTJk+Uuh8goMDQREenZm2++CWtra60/W7duLZcagoOD4eHhgS5dunBqjkhPOD1HRKRnt27dKnJZgJo1a8LGxqacKyIifWBoIiIiItIBp+eIiIiIdMDQRERERKQDhiYiIiIiHTA0EREREemAoYmIiIhIBwxNRERERDpgaCIiIiLSAUMTERERkQ7+HxJ3puwVwiG6AAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_31.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlYAAAHHCAYAAAB9dxZkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABhjUlEQVR4nO3de1gUZfsH8O9yXEABFeVgKOQJUxNDRUgljV40FSl9Q3oVMNM08xCegBACTdA8Rfrmm4dQ84CmIZmhhpqVhCfUPJEapKWLmgIGCsjO7w9/TE27EODCLMv3c1170d77zMw9j8bePs/MMwpBEAQQERER0WMzkjsBIiIiIkPBwoqIiIhIR1hYEREREekICysiIiIiHWFhRURERKQjLKyIiIiIdISFFREREZGOsLAiIiIi0hEWVkREREQ6wsKKiBo9hUKBd999V+40RKGhoXBxcZE7DSKqBRZWRKSXkpKSoFAoxJdSqUTHjh3x1ltvIS8vr06PfeTIEbz77rvIz8/X6X6fe+45yTk1b94cvXr1wrp166BWq3VyjAULFiAlJUUn+yKimjOROwEioqrExcXB1dUVDx48wHfffYePPvoIe/bswdmzZ2FpaamTY9y/fx8mJn/+Ojxy5AhiY2MRGhoKW1tbnRyjwhNPPIH4+HgAwK1bt7BhwwaMGzcOP/30ExISEh57/wsWLMDIkSMREBDw2PsioppjYUVEem3w4MHo2bMnAOD1119HixYtsHTpUuzatQtBQUG13q9arUZpaSmUSiWUSqWu0v1HNjY2GD16tPj+jTfeQKdOnbBixQrMmzcPpqam9ZYLEekepwKJqEEZOHAgACAnJwcAsHjxYnh7e6NFixawsLCAh4cHPvvsM43tFAoF3nrrLWzatAldunSBubk50tLSxM8qrrF69913MWvWLACAq6urOG2Xm5sLHx8fdO/eXWtenTp1gp+fX43Px9LSEn369EFRURFu3bpVabuioiLMmDEDzs7OMDc3R6dOnbB48WIIgiA5x6KiIqxfv17MOzQ0tMY5EVHtccSKiBqUK1euAABatGgBAPjggw/g7++P//znPygtLcXWrVvx73//G7t378aQIUMk2x44cADbtm3DW2+9BTs7O60XiL/88sv46aefsGXLFixbtgx2dnYAgJYtW2LMmDEYP348zp49i65du4rbHDt2DD/99BOi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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_32.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkgAAAHHCAYAAABEEKc/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABPiUlEQVR4nO3deVhUZf8G8HtAdllcWA0F9/UnioqgpRZvuCKtaqVg5JLmEm5gCuIG5b4lqSlmqWQW+qJBiJgmpK9rueBSkJaAmAKKyTbn94eXk4cZdMAZziz357q4iO8858z3OBW3z3MWmSAIAoiIiIhIwUTqBoiIiIh0DQMSERERURUMSERERERVMCARERERVcGARERERFQFAxIRERFRFQxIRERERFUwIBERERFVwYBEREREVAUDEhEZNJlMhnnz5kndhkJISAg8PDykboOInoIBiYjqXHx8PGQymeLL0tISrVu3xgcffID8/HytvndGRgbmzZuHwsJCje63b9++omNq2LAhunfvjs2bN0Mul2vkPRYvXozExESN7IuInqye1A0QkfGaP38+PD098eDBA/z0009Yv3499u/fj3PnzsHa2loj7/HPP/+gXr1//1eXkZGB6OhohISEwMHBQSPv8chzzz2HmJgYAEBBQQG++OILhIaG4vLly4iNjX3m/S9evBivv/46goKCnnlfRPRkDEhEJJkBAwagW7duAID33nsPjRo1wvLly7Fnzx6MGDGi1vuVy+UoKyuDpaUlLC0tNdXuU9nb2+Odd95R/Dxu3Di0adMGa9euxYIFC2BmZlZnvRDRs+ESGxHpjBdffBEAkJ2dDQBYunQp/Pz80KhRI1hZWcHb2xvffPON0nYymQwffPABvvrqK3To0AEWFhZITk5WvPboHKR58+ZhxowZAABPT0/FclhOTg769OmDzp07q+yrTZs2CAgIqPHxWFtbo2fPnigpKUFBQUG140pKSjBt2jS4u7vDwsICbdq0wdKlSyEIgugYS0pKsHXrVkXfISEhNe6JiNTDGSQi0hm//fYbAKBRo0YAgFWrViEwMBBvv/02ysrKsHPnTrzxxhtISkrCoEGDRNsePHgQX3/9NT744AM0btxY5YnQr776Ki5fvowdO3ZgxYoVaNy4MQDA0dERI0eOxJgxY3Du3Dl07NhRsc3//vc/XL58GXPmzKnVMf3+++8wNTWtdjlPEAQEBgYiPT0doaGh8PLyQkpKCmbMmIG//voLK1asAABs27YN7733Hnr06IGxY8cCAFq0aFGrnohIDQIRUR3bsmWLAEA4cOCAUFBQIFy/fl3YuXOn0KhRI8HKykr4888/BUEQhPv374u2KysrEzp27Ci8+OKLojoAwcTERDh//rzSewEQoqKiFD8vWbJEACBkZ2eLxhUWFgqWlpbCrFmzRPXJkycLNjY2wr179554TH369BHatm0rFBQUCAUFBcLFixeFyZMnCwCEIUOGKMYFBwcLzZo1U/ycmJgoABAWLlwo2t/rr78uyGQy4erVq4qajY2NEBwc/MQ+iEgzuMRGRJLx9/eHo6Mj3N3dMXz4cNSvXx/fffcdmjRpAgCwsrJSjL1z5w6Kiorw/PPP49SpU0r76tOnD9q3b1/rXuzt7TF06FDs2LFDsbRVWVmJhIQEBAUFwcbG5qn7yMrKgqOjIxwdHdGuXTusWbMGgwYNwubNm6vdZv/+/TA1NcXkyZNF9WnTpkEQBHz//fe1PiYiqj0usRGRZNatW4fWrVujXr16cHZ2Rps2bWBi8u/f25KSkrBw4UKcOXMGpaWlirpMJlPal6en5zP3M2rUKCQkJODIkSN44YUXcODAAeTn52PkyJFqbe/h4YGNGzcqbl3QqlUrODk5PXGbP/74A25ubrC1tRXV27Vrp3idiOoeAxIRSaZHjx6Kq9iqOnLkCAIDA/HCCy/g008/haurK8zMzLBlyxZs375dafzjs021FRAQAGdnZ3z55Zd44YUX8OWXX8LFxQX+/v5qbW9jY6P2WCLSbVxiIyKdtHv3blhaWiIlJQXvvvsuBgwYoJHwoWr26RFTU1O89dZb+Oabb3Dnzh0kJiZixIgRMDU1feb3rU6zZs1w48YN3L17V1TPyspSvP7Ik3onIs1iQCIinWRqagqZTIbKykpFLScn55nvJP3oXKLq7qQ9cuRI3LlzB+PGjcO9e/dE9zXShoEDB6KyshJr164V1VesWAGZTIYBAwYoajY2Nhq/AzgRqcYlNiLSSYMGDcLy5cvRv39/vPXWW7h58ybWrVuHli1b4pdffqn1fr29vQEAH330EYYPHw4zMzMMGTJEEZy6dOmCjh07YteuXWjXrh26du2qkeOpzpAhQ9CvXz989NFHyMnJQefOnfHDDz9gz549mDp1quhSfm9vbxw4cADLly+Hm5sbPD094ePjo9X+iIwVZ5CISCe9+OKL+Pzzz5GXl4epU6dix44d+Pjjj/HKK6880367d++OBQsW4OzZswgJCcGIESOUbuI4atQoAFD75OxnYWJigr1792Lq1KlISkrC1KlTceHCBSxZsgTLly8XjV2+fDm8vb0xZ84cjBgxAuvXr9d6f0TGSiYIj92qlYiIsGrVKnz44YfIyclB06ZNpW6HiCTAgERE9BhBENC5c2c0atQI6enpUrdDRBLhOUhERHj4PLS9e/ciPT0dv/76K/bs2SN1S0QkIc4gERHh4RVynp6ecHBwwIQJE7Bo0SKpWyIiCTEgEREREVXBq9iIiIiIqmBAIiIiIqqCJ2nXklwux40bN2Bra8vb/xMREekJQRBw9+5duLm5iR6OXRUDUi3duHED7u7uUrdBREREtXD9+nU899xz1b7OgFRLtra2AB7+AdvZ2UncDREREamjuLgY7u7uit/j1WFAqqVHy2p2dnYMSERERHrmaafH8CRtIiIioioYkIiIiIiqYEAiIiIiqoLnIGlZZWUlysvLpW6DtMzMzAympqZSt0FERBrCgKQlgiAgLy8PhYWFUrdCdcTBwQEuLi68LxYRkQFgQNKSR+HIyckJ1tbW/KVpwARBwP3793Hz5k0AgKurq8QdERHRs2JA0oLKykpFOGrUqJHU7VAdsLKyAgDcvHkTTk5OXG4jItJzPElbCx6dc2RtbS1xJ1SXHn3ePOeMiEj/MSBpEZfVjAs/byIiw8GARERERFQFAxIRERFRFQxIJBISEgKZTAaZTAYzMzM4OzvjP//5DzZv3gy5XK72fuLj4+Hg4KC9RomIiLSIAYmU9O/fH7m5ucjJycH333+Pfv36YcqUKRg8eDAqKiqkbo+IiEjrGJBIiYWFBVxcXNCkSRN07doVs2fPxp49e/D9998jPj4eALB8+XJ06tQJNjY2cHd3x4QJE3Dv3j0AwKFDhzB69GgUFRUpZqPmzZsHANi2bRu6desGW1tbuLi44K233lLcP4iIiEgQBHzyyQZER0fj22//kawPBqQ6IAgCysrKJPkSBEEjx/Diiy+ic+fO+PbbbwEAJiYmWL16Nc6fP4+tW7fi4MGDmDlzJgDAz88PK1euhJ2dHXJzc5Gbm4vp06cDeHgJ/IIFC3D27FkkJiYiJycHISEhGumRiIj02+3btzF//nz8808uAGDr1muS9cIbRdaB8vJyxMTESPLeERERMDc318i+2rZti19++QUAMHXqVEXdw8MDCxcuxPjx4/Hpp5/C3Nwc9vb2kMlkcHFxEe3j3XffVfxz8+bNsXr1anTv3h337t1D/fr1NdInERHpn4yMDKSmpip+vnvXCaGhbSTrhwGJ1CYIguJePwcOHEBMTAyysrJQXFyMiooKPHjwAPfv33/iDTJPnjyJefPm4ezZs7hz547ixO9r166hffv2dXIcRESkO+RyOZYuXYp//vl3OS0wMBBdunSRsCsGpDphZmaGiIgIyd5bUy5evAhPT0/k5ORg8ODBeP/997Fo0SI0bNgQP/30E0JDQ1FWVlZtQCopKUFAQAACAgLw1VdfwdHREdeuXUNAQADKyso01icREemHgoICfPrpp6Lahx9+CDs7O4k6+hcDUh2QyWQaW+aSysGDB/Hrr7/iww8/xMmTJyGXy7Fs2TKYmDw8je3rr78WjTc3N0dlZaWolpWVhb///huxsbFwd3cHAJw4caJuDoCIiHTK4cOHkZ6ervi5SZMmCA0N1ZmnEjAgkZLS0lLk5eWhsrIS+fn5SE5ORkxMDAYPHoxRo0bh3LlzKC8vx5o1azBkyBAcPXoUcXFxon14eHjg3r17SEtLQ+fOnWFtbY2mTZvC3Nwca9aswfjx43Hu3DksWLBAoqMkIiIpVFZWIiYmRvSX6FdffRWdOnWSsCtlvIqNlCQnJ8PV1RUeHh7o378/0tPTsXr1auzZswempqbo3Lkzli9fjo8//hgdO3bEV199pXQSup+fH8aPH49hw4bB0dERn3zyCRwdHREfH49du3ahffv2iI2NxdKlSyU6SiIiqmt5eXlYuHChKBxNmzZN58IRAMgETV0HbmSKi4thb2+PoqIipbXSBw8eIDs7G56enrC0tJSoQ6pr/NyJiKqXlpaGn376SfGzh4cHgoOD67yPJ/3+fhyX2IiIiEhrKisrsXDhQlHtjTfe0PkrlxmQiIiISCtu3LiBjRs3imozZsx44u1gdAUDEhEREWnM3r1AbCzwzjvJKCg4pqi3atUKb731loSd1QwDEhEREWnMkiWlCAiIRUHBv7URI0agdevW0jVVCwxIREREpBFHjx6Fv/8BUW3WrFl6eeEKAxIRERE9s+joaKVaVFSUBJ1oBgMSERER1VpJSYnSPe169eoFf39/iTrSDAYkIiIiqpX09HQcPnxYVAsLC4Otra1EHWkOAxIRERHVmKEtqVXFR42QJEJCQhAUFKT4uW/fvpg6deoz7VMT+yAioicrKipSCkcvvviiQYUjgDNIVEVISAi2bt0KADAzM0PTpk0xatQozJ49G/Xqae9fl2+//RZmZmZqjT106BD69euHO3fuwMHBoVb7ICKimktOTsaxY8dENX258WNNMSCRkv79+2PLli0oLS3F/v37MXHiRJiZmSEiIkI0rqysDObm5hp5z4YNG+rEPoiISDVDX1KriktspMTCwgIuLi5o1qwZ3n//ffj7+2Pv3r2KZbFFixbBzc0Nbdq0AQBcv34db775JhwcHNCwYUMMHToUOTk5iv1VVlYiLCwMDg4OaNSoEWbOnImqz0iuujxWWlqKWbNmwd3dHRYWFmjZsiU+//xz5OTkoF+/fgCABg0aQCaTISQkROU+7ty5g1GjRqFBgwawtrbGgAEDcOXKFcXr8fHxcHBwQEpKCtq1a4f69eujf//+yM3NVYw5dOgQevToARsbGzg4OKBXr174448/NPQnTUSk+27fvq0Ujvr372/Q4QhgQCI1WFlZoaysDMDDpzFfunQJqampSEpKQnl5OQICAmBra4sjR47g6NGjiqDxaJtly5YhPj4emzdvxk8//YTbt2/ju+++e+J7jho1Cjt27MDq1atx8eJFfPbZZ6hfvz7c3d2xe/duAMClS5eQm5uLVatWqdxHSEgITpw4gb179yIzMxOCIGDgwIEoLy9XjLl//z6WLl2Kbdu24fDhw7h27RqmT58OAKioqEBQUBD69OmDX375BZmZmRg7dixkMtkz/5kSEemDPXv2YM2aNaJaeHg4fHx8JOqo7nCJjaolCALS0tKQkpKCSZMmoaCgADY2Nti0aZNiae3LL7+EXC7Hpk2bFMFhy5YtcHBwwKFDh/Dyyy9j5cqViIiIwKuvvgoAiIuLQ0pKSrXve/nyZXz99ddITU1V3EejefPmitcfLaU5OTmJzkF63JUrV7B3714cPXoUfn5+AICvvvoK7u7uSExMxBtvvAEAKC8vR1xcHFq0aAEA+OCDDzB//nwAQHFxMYqKijB48GDF6+3atav5HyQRkR4ytiW1qjiDpOP27gX8/B5+rytJSUmoX78+LC0tMWDAAAwbNgzz5s0DAHTq1El03tHZs2dx9epV2Nraon79+qhfvz4aNmyIBw8e4LfffkNRURFyc3NFf9uoV68eunXrVu37nzlzBqampujTp0+tj+HixYuoV6+e6H0bNWqENm3a4OLFi4qatbW1IvwAgKurK27evAngYRALCQlBQEAAhgwZglWrVomW34iIDNHNmzeVwlFgYKBRhSOAM0g6LzYWyMx8+D0wsG7es1+/fli/fj3Mzc3h5uYmunrNxsZGNPbevXvw9vbGV199pbQfR0fHWr2/lZVVrbarjapXvclkMtH5UVu2bMHkyZORnJyMhIQEzJkzB6mpqejZs2ed9UhEVFcSEhKQlZUlqs2ePdsorxDmDJKOCw8HfH0ffq8rNjY2aNmyJZo2bfrUS/u7du2KK1euwMnJCS1bthR92dvbw97eHq6urqLLQisqKnDy5Mlq99mpUyfI5XL8+OOPKl9/NINVWVlZ7T7atWuHiooK0fv+/fffuHTpEtq3b//EY6qqS5cuiIiIQEZGBjp27Ijt27fXaHsiIl0nCAKio6OVwlFUVJRRhiOAAUnnBQYCGRl1N3tUU2+//TYaN26MoUOH4siRI8jOzsahQ4cwefJk/PnnnwCAKVOmIDY2FomJicjKysKECRNQWFhY7T49PDwQHByMd999F4mJiYp9fv311wCAZs2aQSaTISkpCQUFBbh3757SPlq1aoWhQ4dizJgx+Omnn3D27Fm88847aNKkCYYOHarWsWVnZyMiIgKZmZn4448/8MMPP+DKlSs8D4mIDMqNGzcU514+8vrrrxvdklpVDEj0TKytrXH48GE0bdoUr776Ktq1a4fQ0FA8ePAAdnZ2AIBp06Zh5MiRCA4Ohq+vL2xtbfHKK688cb/r16/H66+/jgkTJqBt27YYM2YMSkpKAABNmjRBdHQ0wsPD4ezsjA8++EDlPrZs2QJvb28MHjwYvr6+EAQB+/fvV/tvQ9bW1sjKysJrr72G1q1bY+zYsZg4cSLGjRtXgz8hIiLdtXXrVmzcuFFU++ijj9ChQweJOtIdMqHqDWlILcXFxbC3t0dRUZEiCDzy4MEDZGdnw9PTE5aWlhJ1SHWNnzsR6QtBEJRmjaytrTFjxgyJOqo7T/r9/TiepE1ERGRErl27hi1btohqI0aMQOvWrSXqSDcxIBERERmJuLg45Ofni2pz586FiQnPuKmKAYmIiMjAyeVyLFiwQFRr1KhRtedwEgMSERGRQfvtt9/w5ZdfimrBwcHw8PCQpiE9wYCkRTz/3bjw8yYiXbNy5UoUFRWJapGRkXympBoYkLTg0WXk9+/fr9O7QpO07t+/D0D57txERHWtsrISCxcuFNWaNGmC9957T6KO9A8DkhaYmprCwcFB8Uwva2trpnUDJggC7t+/j5s3b8LBwQGmpqZSt0RERiwrKwsJCQmiWmhoKJ577jmJOtJPDEha4uLiAgCKkESGz8HBQfG5ExFJISYmBmVlZaIal9RqhwFJS2QyGVxdXeHk5ITy8nKp2yEtMzMz48wREUmmoqICixYtEtVatmyJt99+W6KO9B8DkpaZmpryFycREWnNL7/8gu+++05UGzduHGe0nxEDEhERkZ6Kjo5WqnFJTTMYkIiIiPRMWVkZYmJiRLUOHTrg9ddfl6gjw8OAREREpEdOnDiBffv2iWoTJ05E48aNJerIMDEgERER6QlVS2pRUVESdGL4GJCIiIh03IMHD/Dxxx+Lat7e3hg8eLBEHRk+BiQiIiIdlpGRgdTUVFFtypQpcHBwkKYhI8GAREREpKO4pCYdBiQiIiIdU1JSgqVLl4pqfn5++M9//iNRR8aHAYmIiEiHpKen4/Dhw6JaWFgYbG1tJerIODEgERER6QguqekOE6kbWLduHTw8PGBpaQkfHx8cP378ieN37dqFtm3bwtLSEp06dcL+/ftFrwuCgMjISLi6usLKygr+/v64cuWKaMzly5cxdOhQNG7cGHZ2dujduzfS09M1fmxERETqKC4uVgpH/fr1YziSkKQBKSEhAWFhYYiKisKpU6fQuXNnBAQE4ObNmyrHZ2RkYMSIEQgNDcXp06cRFBSEoKAgnDt3TjHmk08+werVqxEXF4djx47BxsYGAQEBePDggWLM4MGDUVFRgYMHD+LkyZPo3LkzBg8ejLy8PK0fMxER0eM2bNiAFStWiGozZszACy+8IFFHBAAyQRAEqd7cx8cH3bt3x9q1awEAcrkc7u7umDRpEsLDw5XGDxs2DCUlJUhKSlLUevbsCS8vL8TFxUEQBLi5uWHatGmYPn06AKCoqAjOzs6Ij4/H8OHDcevWLTg6OuLw4cN4/vnnAQB3796FnZ0dUlNT4e/vr1bvxcXFsLe3R1FREezs7J71j4KIiIwQl9Tqnrq/vyWbQSorK8PJkydFgcTExAT+/v7IzMxUuU1mZqZSgAkICFCMz87ORl5enmiMvb09fHx8FGMaNWqENm3a4IsvvkBJSQkqKirw2WefwcnJCd7e3po+TCIiIiW5ublK4ei3355nONIhkp2kfevWLVRWVsLZ2VlUd3Z2RlZWlspt8vLyVI5/tDT26PuTxshkMhw4cABBQUGwtbWFiYkJnJyckJycjAYNGlTbb2lpKUpLSxU/FxcXq3mkRERE/1qyZAnu378vqqWnT0dYmI1EHZEqkp+kXdcEQcDEiRPh5OSEI0eO4Pjx4wgKCsKQIUOQm5tb7XYxMTGwt7dXfLm7u9dh10REZAiio6OVwlFUVBQOHbJBYKBETZFKkgWkxo0bw9TUFPn5+aJ6fn4+XFxcVG7j4uLyxPGPvj9pzMGDB5GUlISdO3eiV69e6Nq1Kz799FNYWVlh69at1fYbERGBoqIixdf169drdsBERGS0/vjjD6Ulte7du3NJTYdJFpDMzc3h7e2NtLQ0RU0ulyMtLQ2+vr4qt/H19RWNB4DU1FTFeE9PT7i4uIjGFBcX49ixY4oxj5K7iYn40E1MTCCXy6vt18LCAnZ2dqIvIiKip4mOjkZ8fLyoNmvWLAwcOFCahkgtkt4oMiwsDMHBwejWrRt69OiBlStXoqSkBKNHjwYAjBo1Ck2aNEFMTAyAhw/n69OnD5YtW4ZBgwZh586dOHHiBDZs2ADg4flFU6dOxcKFC9GqVSt4enpi7ty5cHNzQ1BQEICHIatBgwYIDg5GZGQkrKyssHHjRmRnZ2PQoEGS/DkQEZHhEQQB8+fPV6pz1kg/SBqQhg0bhoKCAkRGRiIvLw9eXl5ITk5WnGR97do10UyPn58ftm/fjjlz5mD27Nlo1aoVEhMT0bFjR8WYmTNnoqSkBGPHjkVhYSF69+6N5ORkWFpaAni4tJecnIyPPvoIL774IsrLy9GhQwfs2bMHnTt3rts/ACIiMkhXrlzB9u3bRbUXXngB/fr1k6gjqilJ74Okz3gfJCIiUkXVvY1mz54NMzMzCbqhqtT9/c1nsREREWkAl9QMCwMSERHRMzp//jy++eYbUe3ll1+u9qIj0n0MSERERM9A1ZLaRx99hHr1+CtWn/HTIyIiqgW5XI4FCxYo1bmkZhgYkIiIiGro5MmTogenA8CQIUPQtWtXiToiTWNAIiIiqgFVS2pz585VugEx6TcGJCIiIjVUVFRg0aJFSnUuqRkmBiQiIqKnyMjIQGpqqqj2+uuvo0OHDhJ1RNrGgERERPQEqpbUIiMjIZPJJOiG6goDEhERkQplZWWKZ4E+jktqxoEBiYiIqIq0tDT89NNPotrbb7+Nli1bStQR1TUGJCIiosdwSY0ABiQiIiIAwIMHD/Dxxx8r1bmkZpwYkIiIyOjt27cPJ06cENVGjx6Npk2bStQRSY0BiYiIjJqqJTXOGhEDEhERGaV79+5h2bJlopqNjQ2mT58uUUekSxiQiIjI6HzzzTc4f/68qDZ27Fi4urpK1BHpGgYkIiIyKlxSI3UwIBERkVEoKirCypUrRTVnZ2eMHz9emoZIpzEgERGRwdu2bRt+//13UW3ixIlo3LixRB2RrmNAIiIig8YlNaoNBiQiIjJIt27dwrp160Q1T09PjBo1SqKOSJ8wIBERkcFRNWs0depU2NvbS9AN6SMGJCIiMihcUiNNYEAiIiKDkJ2djS+++EJUu3+/AXr1mixRR6TPGJCIiEjvqZo1+vHHKUhPd4CvLxAYKEFTpNcYkIiISK9Vt6S2dy/w4AEQHi5BU6T3GJCIiEgvZWVlISEhQVRr0qQJ3nvvPQAPZ404c0S1xYBERER6R9Ws0fTp02FjYyNBN2SIGJCIiEhvCIKA+fPnK9V5lRppGgMSERHphTNnzmDPnj2iWps2bTB8+HCJOiJDxoBEREQ6T9WS2qxZs2BpaSlBN2QMGJCIiEhncUmNpMKAREREOunnn39GSkqKqNalSxcE8tI0qgMMSEREpHNULanNnj0bZmZmEnRDxogBiYiIdIZcLseCBQuU6lxSo7rGgERERDohPT0dhw8fFtV69eoFf39/iToiY8aAREREklO1pDZnzhyYmppK0A0RAxIREUmooqICixYtUqpzSY2kxoBERESSSEpKwsmTJ0U1f39/9OrVS6KOiP7FgERERHVO1ZJaZGQkZDKZBN0QKWNAIiKiOlNaWorY2FilOpfUSNcwIBERUZ34+uuvcfHiRVFtyJAh6Nq1q0QdEVWPAYmIiLSOS2qkbxiQiIhIa+7fv48lS5Yo1bmkRrqOAYmIiLRiy5YtuHbtmqj2xhtvoH379hJ1RKQ+BiQiItI4VUtqnDUifcKAREREGlNUVISVK1cq1RmOSN8wIBERkUasWbMGt2/fFtVGjhyJ5s2bS9QRUe0xIBER0TPjkhoZGgYkIiKqtVu3bmHdunVKdYYj0ncMSEREVCuLFy9GeXm5qPbee++hSZMmEnVEpDkMSEREVGNcUiNDx4BERERqy83NxYYNG5TqDEdkaBiQiIhILapmjd5//304OTlJ0A2RdjEgERHRU3FJjYwNAxIREVXrjz/+QHx8vKhma2uLsLAwaRoiqiMMSEREpJKqWaPJkyejQYMGEnRDVLcYkIiISAmX1MjYMSAREZHC5cuXsWPHDlHN1dUVY8eOlagjImkwIBEREQDVs0bTpk1D/fr1JeiGSFoMSERERk4QBMyfP1+pziU1MmY1DkimpqbIzc1Vuu/F33//DScnJ1RWVmqsOSIi0q5ffvkF3333najWsmVLvP322xJ1RKQbahyQBEFQWS8tLYW5ufkzN0RERHVD1ZLarFmzYGlpKUE3RLpF7YC0evVqAIBMJsOmTZtEa9KVlZU4fPgw2rZtq/kOiYhIo7ikRvR0agekFStWAHj4H1ZcXBxMTU0Vr5mbm8PDwwNxcXGa75CIiDTm8OHDSE9PF9U6d+6MoKAgaRoi0lEm6g7Mzs5GdnY2+vTpg7Nnzyp+zs7OxqVLl5CSkgIfH58aN7Bu3Tp4eHjA0tISPj4+OH78+BPH79q1C23btoWlpSU6deqE/fv3i14XBAGRkZFwdXWFlZUV/P39ceXKFaX97Nu3Dz4+PrCyskKDBg34PwciMnjR0dFK4SgiIoL//yNSQe2A9Eh6errG7qKakJCAsLAwREVF4dSpU+jcuTMCAgJw8+ZNleMzMjIwYsQIhIaG4vTp0wgKCkJQUBDOnTunGPPJJ59g9erViIuLw7Fjx2BjY4OAgAA8ePBAMWb37t0YOXIkRo8ejbNnz+Lo0aN46623NHJMRES6Ri6XqzzfqEuXKPTta469eyVoikjHyYTqzrquxrvvvvvE1zdv3qz2vnx8fNC9e3esXbsWwMP/iN3d3TFp0iSEh4crjR82bBhKSkqQlJSkqPXs2RNeXl6Ii4uDIAhwc3PDtGnTMH36dABAUVERnJ2dER8fj+HDh6OiogIeHh6Ijo5GaGio2r1WVVxcDHt7exQVFcHOzq7W+yEi0qbk5GQcO3ZMVOvSpQsCAwPh5wdkZgK+vkBGhkQNEtUxdX9/13gG6c6dO6Kvmzdv4uDBg/j2229RWFio9n7Kyspw8uRJ+Pv7/9uMiQn8/f2RmZmpcpvMzEzReAAICAhQjM/OzkZeXp5ojL29PXx8fBRjTp06hb/++gsmJibo0qULXF1dMWDAANEsFBGRIYiOjlYKR3PmzEFgYCAAIDz8YThS8fdRIqNX48v8q94vA3g48/P++++jRYsWau/n1q1bqKyshLOzs6ju7OyMrKwsldvk5eWpHJ+Xl6d4/VGtujG///47AGDevHlYvnw5PDw8sGzZMvTt2xeXL19Gw4YNVb53aWkpSktLFT8XFxere6hERHWqoqICixYtUqpXvUotMPDhFxEpq/EMksqdmJggLCxMcaWbLpPL5QCAjz76CK+99hq8vb2xZcsWyGQy7Nq1q9rtYmJiYG9vr/hyd3evq5aJiNS2e/dupXDUu3dvXsJPVEMaCUgA8Ntvv6GiokLt8Y0bN4apqSny8/NF9fz8fLi4uKjcxsXF5YnjH31/0hhXV1cAQPv27RWvW1hYoHnz5rh27Vq1/UZERKCoqEjxdf36dXUOk4iozkRHRyudLjB37ly89NJLEnVEpL9qvMQWFhYm+lkQBOTm5mLfvn0IDg5Wez/m5ubw9vZGWlqa4hJTuVyOtLQ0fPDBByq38fX1RVpaGqZOnaqopaamwtfXFwDg6ekJFxcXpKWlwcvLC8DDpbBjx47h/fffBwB4e3vDwsICly5dQu/evQEA5eXlyMnJQbNmzart18LCAhYWFmofHxFRXSktLUVsbKxSnbNGRLVX44B0+vRp0c8mJiZwdHTEsmXLnnqFW1VhYWEIDg5Gt27d0KNHD6xcuRIlJSUYPXo0AGDUqFFo0qQJYmJiAABTpkxBnz59sGzZMgwaNAg7d+7EiRMnsGHDBgAP7/I9depULFy4EK1atYKnpyfmzp0LNzc3RQizs7PD+PHjERUVBXd3dzRr1gxLliwBALzxxhs1/eMgIpLM3r3AgQNb0ahRjqj+8ssvK/7iSES1U+OAVPUmY89i2LBhKCgoQGRkJPLy8uDl5YXk5GTFSdbXrl2Dicm/q4B+fn7Yvn075syZg9mzZ6NVq1ZITExEx44dFWNmzpyJkpISjB07FoWFhejduzeSk5NFzxZasmQJ6tWrh5EjR+Kff/6Bj48PDh48qLH7OxER1YXTp6PRqJG4FhkZCZlMJk1DRAakxvdBeuTmzZu4dOkSAKBNmzZwcnLSaGO6jvdBIiKp3L17F8uXL1eqc0mN6OnU/f1d4xmk4uJiTJw4ETt27FBcEWZqaophw4Zh3bp1sLe3r33XRET0RKruiD106FDFeZdEpBk1voptzJgxOHbsGPbt24fCwkIUFhYiKSkJJ06cwLhx47TRIxERQXU4ioqKYjgi0oIaL7HZ2NggJSVFcQXYI0eOHEH//v1RUlKi0QZ1FZfYiKiu/P3334pHMj2OS2pENae1JbZGjRqpXEazt7fnSc5ERBqmatYoMDAQXbp0kaAbIuNR4yW2OXPmICwsTPHoDuDhIz5mzJiBuXPnarQ5IiJjVt2SGsMRkfbVeImtS5cuuHr1KkpLS9G0aVMADy/Ht7CwQKtWrURjT506pblOdQyX2IhIW3JzcxX3d3scl9SInp3WltiGDh3Ke2wQEWmJqlmjYcOGoW3bthJ0Q2S8an0fJGPHGSQi0rTqltSISHPU/f1d43OQmjdvjr///lupXlhYiObNm9d0d0RERi87O5vhiEjH1HiJLScnB5WVlUr10tJS/PnnnxppiojIWKgKRiEhIU98eDYRaZ/aAWnv3r2Kf05JSRFd6l9ZWYm0tDR4enpqtjsiIgPGWSMi3aV2QAoKCgIAyGQyBAcHi14zMzODh4cHli1bptHmiIgM0cWLF/H1118r1RmOiHSH2gHp0XPXPD098b///Q+NGzfWWlNERIZK1azRuHHj4OLiIkE3RFSdGp+DlJ2drY0+iIgM2t69wOnTXFIj0hc1Dkjz589/4uuRkZG1boaIyBCdPHkSp08nKdUZjoh0V40D0nfffSf6uby8HNnZ2ahXrx5atGjBgERE9BhVS2qTJ0/msyuJdFyNA9Lp06eVasXFxQgJCcErr7yikaaIiAwBr1Ij0l8au5P2r7/+iiFDhiAnJ0cTu9N5vJM2EVXnyJEjOHjwoFKd4YhIelp7Flt1ioqKUFRUpKndERHpJVWzRtOmTUP9+vUl6IaIaqvGAWn16tWinwVBQG5uLrZt24YBAwZorDEiIn0iCILKi1g4a0Skn2ockFasWCH62cTEBI6OjggODkZERITGGiMi0hfJyck4duyYqGZvb4+pU6dK0xARPTPeB4mI6BmoWlKbNWsWLC0tJeiGiDSlVucgFRYW4urVqwCAli1bwsHBQZM9ERHpPLlcjgULFijVuaRGZBhqFJBycnIwceJEpKSk4NHFbzKZDP3798fatWvh4eGhjR6JiHTKN998g/Pnz4tqTZs2xejRoyXqiIg0Te2AdP36dfTs2RNmZmZYsGAB2rVrBwC4cOEC1q9fD19fX/zvf//Dc889p7VmiYikpmpJbfbs2TAzM5OgGyLSFrXvgxQaGoqrV68iJSVFaW39n3/+Qf/+/dGqVSts2rRJK43qGt4Hici4lJeXY/HixUp1LqkR6ReN3wcpOTkZCQkJKk88tLKywoIFCzB8+PDadUtEpMM2b96M69evi2odOnTA66+/LlFHRKRtagekW7duPfEco+bNm+P27dua6ImISGeoWlKbO3cuTExMJOiGiOqK2v+Fu7q64sKFC9W+fu7cObi4uGikKSIiqT148KDaZ6kxHBEZPrVnkIKCgjB9+nSkpaXB0dFR9NrNmzcxa9YsBAUFabo/IqI6t3LlSqVHJ/n4+KB///4SdUREdU3tk7Tv3LkDHx8f5OXl4Z133kHbtm0hCAIuXryI7du3w8XFBT///DMaNmyo7Z51Ak/SJjJMqmaNIiMjIZPJJOiGiDRN4ydpN2jQAMeOHcPs2bOxc+dOFBYWAgAcHBzw1ltvYfHixUYTjojI8Ny9exfLly9XqvMqNSLjpPYM0uMEQUBBQQEAwNHR0Sj/ZsUZJCLDoWrW6KWXXkLv3r0l6IaItEnjM0iPk8lkcHJyqnVzRES6oroTsYnIuNUqIBER6bvbt29jzZo1SnWGIyICGJCIyAipmjUaMmQIunbtKkE3RKSLGJCIyKhwSY2I1MGARERGIS8vD5999plSneGIiFRRKyCtXr1a7R1Onjy51s0QEWmDqlmjN998E+3atZOgGyLSB2pd5u/p6anezmQy/P7778/clD7gZf5E+oFLakT0OI1e5p+dna2xxoiI6sIff/yB+Ph4pTrDERGpo9bnIJWVlSE7OxstWrRAvXo8lYmIdIeqWaPg4GB4eHjUfTNEpJdq/Ejq+/fvIzQ0FNbW1ujQoQOuXbsGAJg0aRJiY2M13iARUU1Ut6TGcERENVHjgBQREYGzZ8/i0KFDsLS0VNT9/f2RkJCg0eaIiNSVlZXF842ISGNqvDaWmJiIhIQE9OzZU/QMtg4dOuC3337TaHNEROpQFYzGjh0LV1dXCbohIkNQ44BUUFCg8jlsJSUlRvnQWiKSFmeNiEgbarzE1q1bN+zbt0/x86NQtGnTJvj6+mquMyKiJzh9+jTDERFpTY1nkBYvXowBAwbgwoULqKiowKpVq3DhwgVkZGTgxx9/1EaPREQiqoLRpEmT0LBhQwm6ISJDVOMZpN69e+PMmTOoqKhAp06d8MMPP8DJyQmZmZnw9vbWRo9ERAqqwlFKShTDERFpVK1uYNSiRQts3LhR070QEVXr6NGjOHDggFI9JSUK4eESNEREBk2tgFRcXKz2DvnYDSLSNFWzRmFhYbC1tQVPOSIibVArIDk4OKh9hVplZeUzNURE9IggCJg/f75SnSdiE5G2qRWQ0tPTFf+ck5OD8PBwhISEKK5ay8zMxNatWxETE6OdLonI6KSkpODnn38W1WxtbREWFiZRR0RkTGSCIAg12eCll17Ce++9hxEjRojq27dvx4YNG3Do0CFN9qez1H0aMBHVnKoltVmzZonu3k9EVBvq/v6u8VVsmZmZ6Natm1K9W7duOH78eE13R0SkIJfLq723EcMREdWlGgckd3d3lVewbdq0Ce7u7hppioiMz+7du7FgwQJRrUmTJjzfiIgkUePL/FesWIHXXnsN33//PXx8fAAAx48fx5UrV7B7926NN0hEhk/VrNHs2bNhZmYmQTdERLWYQRo4cCCuXLmCIUOG4Pbt27h9+zaGDBmCy5cvY+DAgdrokYgMVEVFRbVLagxHRCSlGp+kTQ/xJG2iZxMfH48//vhDVGvbti2GDRsmUUdEZAzU/f1dqztpFxYW4vPPP8fFixcBAB06dMC7774Le3v72nVLREZF1azR3LlzYWJS40ltIiKtqPH/jU6cOIEWLVpgxYoViiW25cuXo0WLFjh16pQ2eiQiA1FaWlrtkhrDERHpkhovsT3//PNo2bIlNm7ciHr1Hk5AVVRU4L333sPvv/+Ow4cPa6VRXcMlNqKaWb16Ne7cuSOqdevWDYMGDZKoIyIyRur+/q5xQLKyssLp06fRtm1bUf3ChQvo1q0b7t+/X7uO9QwDEpH6VM0aRUZGqv0IIyIiTdHajSLt7Oxw7do1pfr169dha2tb090RkQErKSmpdkmN4YiIdFmNT9IeNmwYQkNDsXTpUvj5+QEAjh49ihkzZig9foSIjNeCBQsgl8tFtb59+6JPnz4SdUREpL4aB6SlS5dCJpNh1KhRqKioAACYmZnh/fffR2xsrMYbJCL9o2rWqEuXKDAbEZG+qPESm7m5OVatWoU7d+7gzJkzOHPmDG7fvo0VK1bAwsKiVk2sW7cOHh4esLS0hI+Pz1Of6bZr1y60bdsWlpaW6NSpE/bv3y96XRAEREZGwtXVFVZWVvD398eVK1dU7qu0tBReXl6QyWQ4c+ZMrfonoofu3LmjMhzNmxcF/v2JiPRJra+rtba2RqdOndCpUydYW1vXuoGEhASEhYUhKioKp06dQufOnREQEICbN2+qHJ+RkYERI0YgNDQUp0+fRlBQEIKCgnDu3DnFmE8++QSrV69GXFwcjh07BhsbGwQEBODBgwdK+5s5cybc3Nxq3T8RPRQdHY3Vq1eLaoMGDUKXLlHw9QX69QP8/IC9eyVqkIioBtS+iu3dd99Va4ebN2+uUQM+Pj7o3r071q5dC+Dh07zd3d0xadIkhIeHK40fNmwYSkpKkJSUpKj17NkTXl5eiIuLgyAIcHNzw7Rp0zB9+nQAQFFREZydnREfH4/hw4crtvv+++8RFhaG3bt3o0OHDjh9+jS8vLzU6ptXsRH9q7oTsR/n5wdkZgK+vkBGRl11RkQkpvGr2OLj45Geno7CwkLcuXOn2q+aKCsrw8mTJ+Hv7/9vQyYm8Pf3R2ZmpsptMjMzReMBICAgQDE+OzsbeXl5ojH29vbw8fER7TM/Px9jxozBtm3b1JoBKy0tRXFxseiLyNjl5+erFY4AIDz8YThS8fceIiKdo/ZJ2u+//z527NiB7OxsjB49Gu+88w4aNmz4TG9+69YtVFZWwtnZWVR3dnZGVlaWym3y8vJUjs/Ly1O8/qhW3RhBEBASEoLx48ejW7duyMnJeWqvMTExKn8REBkrVf89vPHGG2jfvr3K8YGBD7+IiPSB2jNI69atQ25uLmbOnIn//ve/cHd3x5tvvomUlBTo2/Nu16xZg7t37yIiIkLtbSIiIlBUVKT4un79uhY7JNJt1c0aVReOiIj0TY1O0rawsMCIESOQmpqKCxcuoEOHDpgwYQI8PDxw7969Gr9548aNYWpqivz8fFE9Pz8fLi4uKrdxcXF54vhH35805uDBg8jMzISFhQXq1auHli1bAnj42IPg4GCV72thYQE7OzvRF5GxuXbtmtpLakRE+qzWV7GZmJhAJpNBEARUVlbWah/m5ubw9vZGWlqaoiaXy5GWlgZfX1+V2/j6+orGA0BqaqpivKenJ1xcXERjiouLcezYMcWY1atX4+zZs4rbFDy6TUBCQgIWLVpUq2MhMnTR0dHYsmWLqDZy5EiGIyIySDW6UWRpaSm+/fZbbN68GT/99BMGDx6MtWvXon///rV+EndYWBiCg4PRrVs39OjRAytXrkRJSQlGjx4NABg1ahSaNGmCmJgYAMCUKVPQp08fLFu2DIMGDcLOnTtx4sQJbNiwAQAgk8kwdepULFy4EK1atYKnpyfmzp0LNzc3BAUFAQCaNm0q6qF+/foAgBYtWuC5556r1XEQGTLOGhGRsVE7IE2YMAE7d+6Eu7s73n33XezYsQONGzd+5gaGDRuGgoICREZGIi8vD15eXkhOTlacZH3t2jVR+PLz88P27dsxZ84czJ49G61atUJiYiI6duyoGDNz5kyUlJRg7NixKCwsRO/evZGcnAxLS8tn7pfImFy+fBk7duxQqjMcEZGhU/s+SCYmJmjatCm6dOnyxIdMfvvttxprTpfxPkhk6FTNGo0ZM4Y3ViUivabu72+1Z5BGjRrFp28TGQkuqRGRsVM7IMXHx2uxDSLSBWfPnkViYqJSneGIiIxNjU7SJiLDpWrW6IMPPkCjRo0k6IaISFoMSETEJTUioioYkIiMWGZmJn744QelOsMRERk7BiQiI6Vq1ujDDz/kVZlERGBAIjI6giBg/vz5SnXOGhER/YsBiciIpKamIiMjQ1SztrbGjBkzJOqIiEg3MSARGQlVS2ozZ86ElZWVBN0QEek2BiQiAyeXy7FgwQKlOpfUiIiqx4BEZMASExNx9uxZUc3V1RVjx46VqCMiIv3AgERkoFQtqUVERMDc3FyCboiI9AsDEpGBqaiowKJFi5TqXFIjIlIfAxKRAdm2bRt+//13Ua1NmzYYPny4RB0REeknBiQiA6FqSW3OnDkwNTWVoBsiIv3GgESk50pLSxEbG6tU55IaEVHtMSAR6bF169bh1q1bopq3tzcGDx4sUUdERIbBROoGiKh2oqOjlcJRZGSkKBzt3Qv4+T38TkRE6mNAItIzJSUlKs83ioqKgkwmE9ViY4HMzIffiYhIfVxiI9IjixYtQkVFhajWp08f9O3bV+X48PCH4Sg8vA6aIyIyIAxIRHpC1axRZGSk0qzR4wIDH34REVHNMCAR6bjCwkKsWrVKqc6r1IiItIcBiUiHqZo1GjBgAHr06CFBN0RExoMBiUhHVXciNhERaR8DEpGOuXnzJtavX69UZzgiIqo7DEhEOkTVrNFrr72Gjh07StANEZHx4n2QiHSEqnCUkhLFcEREJAHOIBFJ7Pr169i8ebNSfenSKHz1lQQNERERAxKRlFTNGrVo8Q4+/bQFvvqK9zAiIpIKAxKRRFSFoy5dohAYCLzzjgQNERGRAgMSUR27du0atmzZolR/FI6IiEh6DEhEdUjVrNH48ePh7OwsQTdERFQdBiSiOsIbPxIR6Q8GJCItu3LlCrZv3y6qmZiYYO7cuRJ1RERET8OARKRFqmaNJk+ejAYNGkjQDRERqYsBiUhLuKRGRKS/GJCINOzXX3/Ft99+K6o5ODhgypQpEnVEREQ1xYBEpEGqZo2mTZuG+vXrS9ANERHVFgMSkQYIgoD58+cr1bmkRkSkn/iwWqJndObMGaVwdO2aO1JSGI6IiPQVZ5CInoGqJbX/+79wpKRYIDxcgoaIiEgjGJCIauFpS2qvvFLXHRERkSYxIBHVUGZmJn744QdRzdvbG4MHD5aoIyIi0jQGJKIaULWkNnv2bJiZmUnQDRERaQsDEpEaKisrsXDhQqU6r1IjIjJMDEhET3Hw4EEcOXJEVHv++efx4osvStQRERFpGwMS0ROoWlKbM2cOTE1NJeiGiIjqCgMSkQrl5eVYvHixUp1LakRExoEBiaiKpKQknDx5UlR7+eWX4evrK1FHRERU1xiQiB6jakktMjISMplMgm6IiEgqDEhEAEpLSxEbG6tU55IaEZFxYkAio5eQkICsrCxRbejQofDy8pKmISIikhwDEhk1LqkREZEqDEhklEpKSrB06VKlOpfUiIgIYEAiI/T555/jzz//FNXefPNNtGvXTqKOiIhI1zAgkVFRtaTGWSMiIqqKAYmMQlFREVauXKlUZzgiIiJVGJDI4K1atQqFhYWi2qhRo+Dp6SlNQ0REpPMYkMigcUmNiIhqgwGJDNKtW7ewbt06pTrDERERqYMBiQzOokWLUFFRIaq99957aNKkiUQdERGRvmFAIoPCJTUiItIEBiQyCDdu3MDGjRuV6gxHRERUGwxIpPdUzRpNmDABjo6OEnRDRESGgAGJ9BqX1IiISBsYkEgv5eTkYOvWraKanZ0dPvzwQ4k6IiIiQ2IidQMAsG7dOnh4eMDS0hI+Pj44fvz4E8fv2rULbdu2haWlJTp16oT9+/eLXhcEAZGRkXB1dYWVlRX8/f1x5coVxes5OTkIDQ2Fp6cnrKys0KJFC0RFRaGsrEwrx0eaFR0drRSOpkyZwnBEREQaI3lASkhIQFhYGKKionDq1Cl07twZAQEBuHnzpsrxGRkZGDFiBEJDQ3H69GkEBQUhKCgI586dU4z55JNPsHr1asTFxeHYsWOwsbFBQEAAHjx4AADIysqCXC7HZ599hvPnz2PFihWIi4vD7Nmz6+SYqfaqW1JzcHCo+2aIiMhgyQRBEKRswMfHB927d8fatWsBAHK5HO7u7pg0aRLCw8OVxg8bNgwlJSVISkpS1Hr27AkvLy/ExcVBEAS4ublh2rRpmD59OoCHz+FydnZGfHw8hg8frrKPJUuWYP369fj999/V6ru4uBj29vYoKiqCnZ1dTQ+baujSpUvYuXOnqObm5oYxY8ZI1BEREekjdX9/S3oOUllZGU6ePImIiAhFzcTEBP7+/sjMzFS5TWZmJsLCwkS1gIAAJCYmAgCys7ORl5cHf39/xev29vbw8fFBZmZmtQGpqKgIDRs2rLbX0tJSlJaWKn4uLi5+6vGRZqiaNZo2bRrq168vQTdERGQMJF1iu3XrFiorK+Hs7CyqOzs7Iy8vT+U2eXl5Txz/6HtN9nn16lWsWbMG48aNq7bXmJgY2NvbK77c3d2ffHD0zARBqHZJjeGIiIi0yeivYvvrr7/Qv39/vPHGG09cromIiBDNXBUXFzMkadHZs2cVs4KPtG7dGiNGjJCmISIiMiqSBqTGjRvD1NQU+fn5onp+fj5cXFxUbuPi4vLE8Y++5+fnw9XVVTTGy8tLtN2NGzfQr18/+Pn5YcOGDU/s1cLCAhYWFmodFz0bVbNGs2bNgqWlpQTdEBGRMZJ0ic3c3Bze3t5IS0tT1ORyOdLS0uDr66tyG19fX9F4AEhNTVWM9/T0hIuLi2hMcXExjh07JtrnX3/9hb59+8Lb2xtbtmyBiYnkF/QZvSctqTEcERFRXZJ8iS0sLAzBwcHo1q0bevTogZUrV6KkpASjR48GAIwaNQpNmjRBTEwMgIf3u+nTpw+WLVuGQYMGYefOnThx4oRiBkgmk2Hq1KlYuHAhWrVqBU9PT8ydOxdubm4ICgoC8G84atasGZYuXYqCggJFP9XNXJF2/fzzz0hJSRHVvLy8MHToUIk6IiIiYyZ5QBo2bBgKCgoQGRmJvLw8eHl5ITk5WXGS9bVr10SzO35+fti+fTvmzJmD2bNno1WrVkhMTETHjh0VY2bOnImSkhKMHTsWhYWF6N27N5KTkxWzEKmpqbh69SquXr2K5557TtSPxHc9MEqqZo1mz54NMzMzCbohIiLSgfsg6SveB+nZyeVyLFiwQKnOZ6kREZG26MV9kMh4paen4/Dhw6Jar169RPevIiIikgoDEtU5VUtqc+bMgampqQTdEBERKWNAojpTWVmJhQsXKtW5pEZERLqGAYnqhKqr1Pz9/dGrVy+JOiIiIqoeAxJpnaoltcjISMhkMgm6ISIiejoGJNKa8vJyLF68WKnOJTUiItJ1DEikFYcOHcKPP/4oqo0YMQKtW7eWqCMiIiL1MSCRxnFJjYiI9B0DEmnMgwcP8PHHHyvVuaRGRET6hgGJNOL777/H8ePHRbXg4GB4eHgojd27F4iNBcLDgcDAOmqQiIioBhiQ6JmpWlJ70qxRbCyQmfnwOwMSERHpIpOnDyFSraSkRCkcWVlZPXVJLTwc8PV9+J2IiEgXcQaJauW7777DL7/8IqqNGTMGbm5uT902MJAzR0REpNsYkKjGarqkRkREpG8YkEhtxcXFWLFihajm6OiICRMmSNQRERGRdjAgkVq++uorXL16VVSbMGECHB0dJeqIiIhIexiQ6Km4pEZERMaGAYmq9ffff2Pt2rWiWrNmzRASEiJNQ0RERHWEAYlU2rBhA3Jzc0W1KVOmwMHBQZqGiIiI6hADEinhkhoRERk7BiRSyM/PR1xcnKjWrl07vPnmmxJ1REREJA0GJAIArFixAsXFxaJaWFgYbG1tJeqIiIhIOgxIxCU1IiKiKhiQjJiqq9S6du2KIUOGSNQRERGRbmBAMlK7d+/GuXPnRLWZM2fCyspKoo6IiIh0BwOSEeKSGhER0ZMxIBkRVVepvfLKK/i///s/iToiIiLSTQxIRmL79u24cuWKqDZ79myYmZlJ1BEREZHuYkAycIIgYP78+aJavXr18NFHH0nUERERke5jQDJgf/31FzZt2iSqvfnmm2jXrp1EHREREekHBiQDlZSUhJMnT4pqc+bMgampqUQdERER6Q8TqRsgzRIEAevWrROFI1tbW0RFRVUbjvbuBfz8Hn4nIiIiziAZlMLCQqxatUpUGzlyJJo3b/7E7WJjgczMh98DA7XZIRERkX5gQDIQx48fx/fff6/42cHBAZMnT4ZMJnvqtuHhD8NReLg2OyQiItIfDEh6ThAErFy5UvSg2YEDB6J79+5q7yMwkDNHREREj2NA0mO3b9/GmjVrRLWpU6fC3t5eoo6IiIgMAwOSnsrIyEBqaqriZycnJ4wfP16tJTUiIiJ6MgYkPSOXy7FkyRI8ePBAURs6dCi8vLyka4qIiMjAMCDpkYKCAnz66aeiWlhYGGxtbSXqiIiIyDAxIOmJH3/8EYcOHVL8/Nxzz+Hdd9/lkhoREZEW8EaROqbqTRsrKyuxYMECUTh67bXXEBoa+tRwxBtAEhER1Y5MEARB6ib0UXFxMezt7VFUVAQ7OzuN7dfP7+FNG319gW+/zcNnn30men369OmwsbGp8b4yMjTWIhERkd5S9/c3Z5B0THj4w0AzatQBUTjy9PREVFSU2uHo8X3xBpBEREQ1w3OQdMzAgRU4fXoR8vP/rQ0bNgxt27at8b54A0giIqLaYUDSMY8/LgQAZs6cCSsrK4m6ISIiMk5cYtMxbm5uAIA2bdogKiqK4YiIiEgCnEHSMd7e3vD29pa6DSIiIqPGGSQiIiKiKhiQiIiIiKpgQCIiIiKqggGJiIiIqAoGJCIiIqIqGJCIiIiIqmBAIiIiIqqCAYmIiIioCgYkIiIioioYkIiIiIiqYEAiIiIiqoIBiYiIiKgKBiQiIiKiKhiQiIiIiKqoJ3UD+koQBABAcXGxxJ0QERGRuh793n70e7w6DEi1dPfuXQCAu7u7xJ0QERFRTd29exf29vbVvi4TnhahSCW5XI4bN27A1tYWMplM6nYMXnFxMdzd3XH9+nXY2dlJ3Q49hp+N7uJno7v42UhHEATcvXsXbm5uMDGp/kwjziDVkomJCZ577jmp2zA6dnZ2/J+JjuJno7v42egufjbSeNLM0SM8SZuIiIioCgYkIiIioioYkEgvWFhYICoqChYWFlK3QlXws9Fd/Gx0Fz8b3ceTtImIiIiq4AwSERERURUMSERERERVMCARERERVcGARERERFQFAxLViXXr1sHDwwOWlpbw8fHB8ePHnzh+165daNu2LSwtLdGpUyfs379f9LogCIiMjISrqyusrKzg7++PK1euKF7PyclBaGgoPD09YWVlhRYtWiAqKgplZWVaOT59VtefzeNKS0vh5eUFmUyGM2fOaOqQDIZUn82+ffvg4+MDKysrNGjQAEFBQZo8LIMhxedz+fJlDB06FI0bN4adnR169+6N9PR0jR8bARCItGznzp2Cubm5sHnzZuH8+fPCmDFjBAcHByE/P1/l+KNHjwqmpqbCJ598Ily4cEGYM2eOYGZmJvz666+KMbGxsYK9vb2QmJgonD17VggMDBQ8PT2Ff/75RxAEQfj++++FkJAQISUlRfjtt9+EPXv2CE5OTsK0adPq5Jj1hRSfzeMmT54sDBgwQAAgnD59WluHqZek+my++eYboUGDBsL69euFS5cuCefPnxcSEhK0frz6RqrPp1WrVsLAgQOFs2fPCpcvXxYmTJggWFtbC7m5uVo/ZmPDgERa16NHD2HixImKnysrKwU3NzchJiZG5fg333xTGDRokKjm4+MjjBs3ThAEQZDL5YKLi4uwZMkSxeuFhYWChYWFsGPHjmr7+OSTTwRPT89nORSDI+Vns3//fqFt27bC+fPnGZBUkOKzKS8vF5o0aSJs2rRJ04djcKT4fAoKCgQAwuHDhxVjiouLBQBCamqqxo6NHuISG2lVWVkZTp48CX9/f0XNxMQE/v7+yMzMVLlNZmamaDwABAQEKMZnZ2cjLy9PNMbe3h4+Pj7V7hMAioqK0LBhw2c5HIMi5WeTn5+PMWPGYNu2bbC2ttbkYRkEqT6bU6dO4a+//oKJiQm6dOkCV1dXDBgwAOfOndP0Ieo1qT6fRo0aoU2bNvjiiy9QUlKCiooKfPbZZ3BycoK3t7emD9PoMSCRVt26dQuVlZVwdnYW1Z2dnZGXl6dym7y8vCeOf/S9Jvu8evUq1qxZg3HjxtXqOAyRVJ+NIAgICQnB+PHj0a1bN40ci6GR6rP5/fffAQDz5s3DnDlzkJSUhAYNGqBv3764ffv2sx+YgZDq85HJZDhw4ABOnz4NW1tbWFpaYvny5UhOTkaDBg00cmz0LwYkMnh//fUX+vfvjzfeeANjxoyRuh2jt2bNGty9excRERFSt0JVyOVyAMBHH32E1157Dd7e3tiyZQtkMhl27dolcXckCAImTpwIJycnHDlyBMePH0dQUBCGDBmC3NxcqdszOAxIpFWNGzeGqakp8vPzRfX8/Hy4uLio3MbFxeWJ4x99V2efN27cQL9+/eDn54cNGzY807EYGqk+m4MHDyIzMxMWFhaoV68eWrZsCQDo1q0bgoODn/3ADIBUn42rqysAoH379orXLSws0Lx5c1y7du0ZjsiwSPnfTlJSEnbu3IlevXqha9eu+PTTT2FlZYWtW7dq5NjoXwxIpFXm5ubw9vZGWlqaoiaXy5GWlgZfX1+V2/j6+orGA0BqaqpivKenJ1xcXERjiouLcezYMdE+//rrL/Tt21fxt2ATE/7r/jipPpvVq1fj7NmzOHPmDM6cOaO41DkhIQGLFi3S6DHqK6k+G29vb1hYWODSpUuKMeXl5cjJyUGzZs00dnz6TqrP5/79+wCg9P8yExMTxewfaZDUZ4mT4du5c6dgYWEhxMfHCxcuXBDGjh0rODg4CHl5eYIgCMLIkSOF8PBwxfijR48K9erVE5YuXSpcvHhRiIqKUnk5rIODg7Bnzx7hl19+EYYOHSq6HPbPP/8UWrZsKbz00kvCn3/+KeTm5iq+6F9SfDZVZWdn8yo2FaT6bKZMmSI0adJESElJEbKysoTQ0FDByclJuH37dt0dvB6Q4vMpKCgQGjVqJLz66qvCmTNnhEuXLgnTp08XzMzMhDNnztTtH4ARYECiOrFmzRqhadOmgrm5udCjRw/h559/VrzWp08fITg4WDT+66+/Flq3bi2Ym5sLHTp0EPbt2yd6XS6XC3PnzhWcnZ0FCwsL4aWXXhIuXbqkeH3Lli0CAJVfJFbXn01VDEjVk+KzKSsrE6ZNmyY4OTkJtra2gr+/v3Du3DmtHaM+k+Lz+d///ie8/PLLQsOGDQVbW1uhZ8+ewv79+7V2jMZMJgiCIN38FREREZHu4UkZRERERFUwIBERERFVwYBEREREVAUDEhEREVEVDEhEREREVTAgEREREVXBgERERERUBQMSERERURUMSERkkPLy8jBp0iQ0b94cFhYWcHd3x5AhQ5CWlobbt29j0qRJaNOmDaysrNC0aVNMnjwZRUVFiu1zcnIgk8lw5swZpX337dsXU6dOFdUuXryIwMBA2Nvbw8bGBt27d+cDXon0WD2pGyAi0rScnBz06tULDg4OWLJkCTp16oTy8nKkpKRg4sSJ+Oabb3Djxg0sXboU7du3xx9//IHx48fjxo0b+Oabb2r8fr/99ht69+6N0NBQREdHw87ODufPn4elpaUWjo6I6gIfNUJEBmfgwIH45ZdfcOnSJdjY2IheKywshIODg9I2u3btwjvvvIOSkhLUq1cPOTk58PT0xOnTp+Hl5SUa27dvX3h5eWHlypUAgOHDh8PMzAzbtm3T0hERUV3jEhsRGZTbt28jOTkZEydOVApHAFSGIwAoKiqCnZ0d6tWr2cS6XC7Hvn370Lp1awQEBMDJyQk+Pj5ITEysRfdEpCsYkIjIoFy9ehWCIKBt27Zqb3Pr1i0sWLAAY8eOVXrNz88P9evXF30dOXJE8frNmzdx7949xMbGon///vjhhx/wyiuv4NVXX8WPP/6okWMiorrHc5CIyKDU9KyB4uJiDBo0CO3bt8e8efOUXk9ISEC7du1Etbffflvxz3K5HAAwdOhQfPjhhwAALy8vZGRkIC4uDn369KnhERCRLmBAIiKD0qpVK8hkMmRlZT117N27d9G/f3/Y2triu+++g5mZmdIYd3d3tGzZUlSzsrJS/HPjxo1Rr149tG/fXjSmXbt2+Omnn2p5FEQkNS6xEZFBadiwIQICArBu3TqUlJQovV5YWAjg4czRyy+/DHNzc+zdu7fWV5yZm5uje/fuuHTpkqh++fJlNGvWrFb7JCLpMSARkcFZt24dKisr0aNHD+zevRtXrlzBxYsXsXr1avj6+irCUUlJCT7//HMUFxcjLy8PeXl5qKysrPH7zZgxAwkJCdi4cSOuXr2KtWvX4r///S8mTJighaMjorrAJTYiMjjNmzfHqVOnsGjRIkybNg25ublwdHSEt7c31q9fj1OnTuHYsWMAoLR8lp2dDQ8Pjxq93yuvvIK4uDjExMRg8uTJaNOmDXbv3o3evXtr6pCIqI7xPkhEREREVXCJjYiIiKgKBiQiIiKiKhiQiIiIiKpgQCIiIiKqggGJiIiIqAoGJCIiIqIqGJCIiIiIqmBAIiIiIqqCAYmIiIioCgYkIiIioioYkIiIiIiqYEAiIiIiquL/AZauwxG3cBQ5AAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_33.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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ffrgiy++kA1DlKSoqAgnT56Eo6NjtTvWRx0/flx2HI/Lpboda1paGvbs2aM1bKhLSZ+rUsdZFt7e3jh58qSs8ExISIC1tTXatGlTplyqy7ECwOnTp9G9e3cEBQVhxowZZVrn0f/jxar6seo6jvr160s3MK5Jnyvw4HzJjRs3lulnFaian+uVK1fQrVs3eHh4YOXKlTAykpc03t7e2LdvH+7fvy/bT8uWLVG/fv0y5VIhKuy0eqpS1q9fL0xNTUVsbKw4c+aMGDlypLC1tZWulnr33XdFWFiY1P7AgQOiTp064ssvvxSpqakiKipK5+W2tra2YsuWLeKPP/4Q/fr10zkNQMeOHUVKSor47bffhJubm2wagN27dwsLCwsRHh4uu2z433//ldpER0dLl+weOXJEDBw4UJiZmYnTp09Xq2ONjY0V69atE6mpqSI1NVXMmDFDGBkZiRUrVuiVS3U41mIRERHCyclJFBYWai3T53NV6jgvXbokjh07JqKjo4WVlZU4duyYOHbsmLh165YQ4r/pHV555RVx/PhxER8fLxo2bKhzeodPPvlEpKamiiVLljx2GoCqeKwnT54UDRs2FO+8847sZ/XatWvSNubPny/i4uLE+fPnxcmTJ8VHH30kjIyMxK5du6rVsW7dulV899134uTJk+L8+fPi66+/FhYWFiIyMrLGfa7Fli1bJszMzHReWVgdPtfLly8LV1dX0aNHD3H58mXZ/9Fi2dnZwt7eXrz77rvi1KlTYv369cLCwkJregd9fgeXBwutGmzRokWiadOmwsTERHh6eorff/9dWubr6yub40gIITZu3CieeeYZYWJiItq2bSu2b98uW67RaMTkyZOFvb29MDU1FT169BDnzp2Ttfn333/FoEGDhJWVlbC2thbDhg2T/YAHBQUJAFqPh+dwCQkJkfK2t7cXvXv3FkePHq12xxobGytat24tLCwshLW1tfD09BSbNm3Syv1xuVSHYxXiwSXdTZo0EZMmTdKZt76fqxLHWdL/zz179kht0tPTRa9evYS5ubmws7MT48ePF/fv35dtZ8+ePcLd3V2YmJiIp59+WqxcubLE46yqxxoVFaVzebNmzaRtfPHFF6JFixbCzMxMNGjQQHTr1k3s3r272h3rL7/8Itzd3YWVlZWwtLQUHTp0EDExMVrzRtWEz7WYt7e3ePvtt3XmXR0+15UrV+o8zkf7j06cOCG6du0qTE1NRePGjcWsWbO0ctf3d7C+VEI8dP0qEREREVUYnqNFREREZCAstIiIiIgMhIUWERERkYGw0CIiIiIyEBZaRERERAbCQouIiIjIQFhoERERERkICy0iIiIiA2GhRURUArVajXHjxuHpp5+GqakpnJ2d8eqrr0r3Rnv//ffRokULmJubo2HDhujXrx/Onj0rrZ+eng6VSoXjx49rbbtbt24ICQmRXt++fRtjx45FkyZNYG5ujjZt2iAmJsbQh0hEBlZH6QSIiKqi9PR0PP/887C1tcWcOXPQvn173L9/Hzt37sSYMWNw9uxZeHh4YPDgwWjatClu3LiBKVOm4JVXXkFaWhqMjY312l9oaCh2796NNWvWoHnz5vj111/xwQcfwMnJCQEBAQY6SiIyNBZaREQ6fPDBB1CpVDh48CAsLS2leNu2bTF8+HAAwMiRI6V48+bNMX36dHTo0AHp6elo0aKFXvtLSkpCUFAQunXrJm37m2++wcGDB1loEVVjHDokInrEjRs3EB8fjzFjxsiKrGK2trZasby8PKxcuRIuLi5wdnbWe58+Pj7YunUrrly5AiEE9uzZgz///BOvvPJKeQ6BiKoIFlpERI+4cOEChBBo1arVY9t+/fXXsLKygpWVFX755RckJCTAxMRE1sbHx0dqU/zYv3+/rM2iRYvQpk0bNGnSBCYmJujZsyeWLFmCF198sUKPjYgqF4cOiYgeIYQoc9vBgwfj5ZdfxtWrV/Hll1/irbfewoEDB2BmZia12bBhA1q3bq213sMWLVqE33//HVu3bkWzZs2wb98+jBkzBk5OTvDz83uyAyIixbDQIiJ6hJubG1QqlewKwpLY2NjAxsYGbm5u6NKlC+rXr4/Nmzdj0KBBUhtnZ2e4urrK1jM3N5f+fffuXUyaNAmbN29Gnz59AADPPvssjh8/ji+//JKFFlE1xqFDIqJHNGjQAP7+/liyZAny8vK0lmdnZ+tcTwgBIQTy8/P12t/9+/dx//59GBnJfyUbGxtDo9HotS0iqlpYaBER6bBkyRIUFRXB09MTP/74I86fP4/U1FQsXLgQ3t7e+OuvvzBz5kwcOXIEGRkZSEpKQv/+/WFubo7evXvrtS9ra2v4+vrik08+wd69e5GWlobY2Fh8//33eO211wx0hERUGTh0SESkw9NPP42jR49ixowZGD9+PK5evYqGDRvCw8MDS5cuhZmZGfbv348FCxbg5s2bsLe3x4svvoikpCQ0atRI7/2tX78e4eHhGDx4MG7cuIFmzZphxowZGDVqlAGOjogqi0roc9YnEREREZUZhw6JiIiIDISFFhEREZGBsNAiIiIiMhAWWkREREQGwkKLiIiIyEBYaBEREREZCAstIiIiIgNhoUVERERkICy0iIiIiAyEhRYRERGRgbDQIiIiIjIQFlpEREREBvL/AEnTCdSzzLoxAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_34.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_35.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_36.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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4OzsjMGDB4vuBXXixAkMHDgQTZo0gampKTp37owVK1agvLxcwsyJqC6wQCIivZORkQEvLy8cPnwYS5cuxfnz57F//3706dMHkyZNAgDs3LkT/v7+aN68OY4cOYLU1FRMmzYNixYtwiuvvALehICofuOtRohI7wwcOBDnzp1DWloaGjZsKHotLy8PRkZGcHV1hb+/P7799lvR69999x2GDBmCrVu3IiQkpC7TJqI6xBkkItIrd+/exf79+zFp0iSl4ggArKyscPDgQfz999+YOXOm0uuDBw9G27ZtsWXLlrpIl4gkwgKJiPTKtWvXIAgC3N3dq2xz5coVAED79u1Vvu7u7q5oQ0T1EwskItIrNTmrgGcgEOkvFkhEpFfatGkDmUyG1NTUKtu0bdsWAHD58mWVr1++fFnRhojqJxZIRKRXrK2tERgYiHXr1qGwsFDp9by8PPTr1w/W1tZYvny50uuJiYm4evUqRowYURfpEpFEWCARkd5Zt24dysvL4e3tjW+//RZXr17F5cuXsXr1avj6+qJhw4b48MMPsXv3bowfPx7nzp1DRkYGPv30U4SHh2P48OF4+eWXpR4GEWkQL/MnIr2UlZWFxYsXY8+ePcjKyoKdnR28vLwwY8YM9O7dGwBw/PhxLF68GMnJyXj48CHatGmDUaNGYfr06TA0NJR2AESkUSyQiIiIiCrhEhsRERFRJSyQiIiIiCphgURERERUCQskIiIiokpYIBERERFVwgKJiIiIqBIWSERERESVsEAiIiIiqoQFEhEREVElLJCIiIiIKmGBRERERFQJCyQiIiKiSv4Pp2tQ+nmC6ggAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_37.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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noP79+8Lr7zyitCyZUvB2NhYaNeunTBu3DjFF+0TuvRZKAj1fw70/fNQ3d+Dp9XF56FMEARBO2NRRERERPqBc5CIiIiIKmGCRERERFQJEyQiIiKiSpggEREREVXCBImIiIioEiZIRERERJUwQSIiIiKqhAkSERERUSVMkIioUcjNzcWUKVPQvn17mJqawsnJCUOGDBHtCXXw4EEMGjQILVq0gJmZGTw8PLBs2TJUVFQo6uTk5CA8PBwuLi4wNzeHq6srYmJiUFZWJkW3iKiOGEkdABFRXcvJycGLL74IKysrLF68GB4eHnj06BFSUlIwadIknD17Frt27cIbb7yBsWPH4pdffoGVlRV+/vlnzJo1C+np6fjmm28gk8lw9uxZyOVyfP755+jQoQNOnTqFcePGoaSkBEuWLJG6q0SkJdxqhIj03qBBg3Dy5EmcO3cOTZs2Fb1WWFgIY2NjtGvXDn369MF3330nev2///0vhg4dih07diA4OFhl+4sXL8batWtx8eLFOusDEdUvXmIjIr12+/Zt7N27F5MmTVJKjgDAysoKP/30E27duoUZM2YovT5kyBA899xz2L59e5XvUVRUBGtra63GTUTSYoJERHotKysLgiDA3d29yjrnz58HAHTq1Enl6+7u7oo6qtpftWoVxo8fX/tgiUhnMEEiIr2mySwCTWccXLt2DQEBARgxYgTGjRunaWhEpMOYIBGRXuvYsaNicnVVnnvuOQDAmTNnVL5+5swZRZ0nrl+/jn79+qF3795Yv3699gImIp3ABImI9Jq1tTX8/f2xZs0alJSUKL1eWFiIV155BdbW1li6dKnS60lJSfj7778xatQoRdm1a9fQt29feHl5YdOmTTAw4Ecpkb7hXWxEpPcuXryIF198EdbW1vjwww/x/PPPo7y8HKmpqVi7di3OnDmDb7/9FiNHjsRbb72FyZMnw8LCAmlpaZg5cyYGDBiguM3/SXLUrl07bNmyBYaGhor3cXBwkLCXRKRNTJCIqFG4ceMGPv74YyQnJ+PGjRto2bIlvLy88N5776Fv374AgAMHDuDjjz9Geno6Hj58iI4dO2Ls2LGIiIhQJEKbN2/G2LFjVb4HP06J9AcTJCIiIqJKeOGciIiIqBImSERERESVMEEiIiIiqoQJEhEREVElTJCIiIiIKmGCRERERFQJEyQiIiKiSpggEREREVXCBImIiIioEiZIRERERJUwQSIiIiKqhAkSERERUSX/H7C6pacebeVYAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_38.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAHHCAYAAABXx+fLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABPGUlEQVR4nO3deVhUZf8/8PeAbAKyiIIgCmqumago6VdDjUQf18onsxSX1NwXTAUX3AV33NLSXHKvJCQtMAlMEzX3TFwTcQM0BQQUcOb8/vDnPJ1m0BmcmTPL+3VdXDafOXPzOUeNt/d9FpkgCAKIiIiILIiV1A0QERERGRoDEBEREVkcBiAiIiKyOAxAREREZHEYgIiIiMjiMAARERGRxWEAIiIiIovDAEREREQWhwGIiIiILA4DEBGZLJlMhpkzZ0rdhtKAAQPg5+cndRtEpAEGICLSqU2bNkEmkym/7O3tUbduXYwaNQrZ2dl6/d5HjhzBzJkzkZubq9Nx27VrJ9ond3d3tGjRAhs2bIBCodDJ95g/fz7i4+N1MhYRvVwFqRsgIvM0e/Zs+Pv748mTJzh8+DDWrFmDH3/8EefPn0fFihV18j0eP36MChX+97+xI0eOYNasWRgwYABcXV118j2eq169OqKjowEA9+7dw9dff41PPvkEly9fRkxMzCuPP3/+fPTq1Qs9e/Z85bGI6OUYgIhILzp37ozAwEAAwODBg1G5cmUsXboUe/bsQZ8+fco9rkKhQElJCezt7WFvb6+rdl/KxcUFffv2Vb7+9NNPUa9ePaxatQpz5syBjY2NwXoholfHJTAiMogOHToAAK5fvw4AWLx4MVq3bo3KlSvDwcEBzZs3x3fffafyOZlMhlGjRmHbtm1o1KgR7OzskJiYqHzv+TlAM2fOxMSJEwEA/v7+yuWqjIwMBAcHo0mTJmr7qlevHkJDQ7Xen4oVK+LNN99EYWEh7t27V+Z2hYWFmDBhAnx9fWFnZ4d69eph8eLFEARBtI+FhYXYvHmzsu8BAwZo3RMRaY4zQERkENeuXQMAVK5cGQCwfPlydO/eHR9//DFKSkqwc+dO/Pe//8XevXvRpUsX0Wd/+eUXfPPNNxg1ahQ8PDzUnmj83nvv4fLly9ixYweWLVsGDw8PAECVKlXQr18/DBkyBOfPn8frr7+u/Mzvv/+Oy5cvY9q0aeXap7/++gvW1tZlLrcJgoDu3bsjJSUFn3zyCQICApCUlISJEyfi9u3bWLZsGQBgy5YtGDx4MFq2bImhQ4cCAGrXrl2unohIQwIRkQ5t3LhRACAcOHBAuHfvnnDz5k1h586dQuXKlQUHBwfh1q1bgiAIQlFRkehzJSUlwuuvvy506NBBVAcgWFlZCX/++afK9wIgzJgxQ/l60aJFAgDh+vXrou1yc3MFe3t7YfLkyaL6mDFjBEdHR6GgoOCF+xQcHCzUr19fuHfvnnDv3j0hPT1dGDNmjABA6Natm3K7/v37CzVr1lS+jo+PFwAIc+fOFY3Xq1cvQSaTCVevXlXWHB0dhf79+7+wDyLSHS6BEZFehISEoEqVKvD19cWHH34IJycnfP/99/Dx8QEAODg4KLd9+PAh8vLy0LZtW5w6dUplrODgYDRs2LDcvbi4uKBHjx7YsWOHculJLpdj165d6NmzJxwdHV86xsWLF1GlShVUqVIFDRo0wMqVK9GlSxds2LChzM/8+OOPsLa2xpgxY0T1CRMmQBAE/PTTT+XeJyJ6NVwCIyK9WL16NerWrYsKFSrA09MT9erVg5XV//7NtXfvXsydOxdnzpxBcXGxsi6TyVTG8vf3f+V+wsLCsGvXLhw6dAhvvfUWDhw4gOzsbPTr10+jz/v5+WHdunXKS/tfe+01VK1a9YWfuXHjBry9veHs7CyqN2jQQPk+EUmDAYiI9KJly5bKq8D+7dChQ+jevTveeustfP7556hWrRpsbGywceNGbN++XWX7f84WlVdoaCg8PT2xdetWvPXWW9i6dSu8vLwQEhKi0ecdHR013paIjB+XwIjI4Hbv3g17e3skJSVh0KBB6Ny5s07ChbrZo+esra3x0Ucf4bvvvsPDhw8RHx+PPn36wNra+pW/b1lq1qyJO3fu4NGjR6L6xYsXle8/96LeiUj3GICIyOCsra0hk8kgl8uVtYyMjFe+E/Lzc3nKuhN0v3798PDhQ3z66acoKCgQ3ddHH/7zn/9ALpdj1apVovqyZcsgk8nQuXNnZc3R0VHnd7AmorJxCYyIDK5Lly5YunQpOnXqhI8++gg5OTlYvXo16tSpg3PnzpV73ObNmwMApk6dig8//BA2Njbo1q2bMhg1bdoUr7/+Or799ls0aNAAzZo108n+lKVbt25o3749pk6dioyMDDRp0gT79+/Hnj17MG7cONGl7s2bN8eBAwewdOlSeHt7w9/fH0FBQXrtj8iScQaIiAyuQ4cO+Oqrr5CVlYVx48Zhx44dWLBgAd59991XGrdFixaYM2cOzp49iwEDBqBPnz4qNykMCwsDAI1Pfn4VVlZWSEhIwLhx47B3716MGzcOFy5cwKJFi7B06VLRtkuXLkXz5s0xbdo09OnTB2vWrNF7f0SWTCYI/7gdKRGRmVu+fDnGjx+PjIwM1KhRQ+p2iEgiDEBEZDEEQUCTJk1QuXJlpKSkSN0OEUmI5wARkdkrLCxEQkICUlJS8Mcff2DPnj1St0REEuMMEBGZvYyMDPj7+8PV1RUjRozAvHnzpG6JiCTGAEREREQWh1eBERERkcVhACIiIiKLw5Og1VAoFLhz5w6cnZ15e3oiIiITIQgCHj16BG9vb9HDl9VhAFLjzp078PX1lboNIiIiKoebN2+ievXqL9yGAUgNZ2dnAM8OYKVKlSTuhoiIiDSRn58PX19f5c/xF2EAUuP5slelSpUYgIiIiEyMJqev8CRoIiIisjgMQERERGRxGICIiIjI4vAcoFcgl8tRWloqdRukZzY2NrC2tpa6DSIi0iEGoHIQBAFZWVnIzc2VuhUyEFdXV3h5efG+UEREZoIBqByeh5+qVauiYsWK/KFoxgRBQFFREXJycgAA1apVk7gjIiLSBQYgLcnlcmX4qVy5stTtkAE4ODgAAHJyclC1alUuhxERmQGeBK2l5+f8VKxYUeJOyJCe/37znC8iIvPAAFROXPayLPz9JiIyLwxAREREZHEYgIiIiMjiMABZkAEDBkAmk0Emk8HGxgaenp545513sGHDBigUCo3H2bRpE1xdXfXXKBERkZ4xAFmYTp064e7du8jIyMBPP/2E9u3bY+zYsejatSuePn0qdXtERGQBjOGCEgYgC2NnZwcvLy/4+PigWbNmmDJlCvbs2YOffvoJmzZtAgAsXboUjRs3hqOjI3x9fTFixAgUFBQAAFJTUzFw4EDk5eUpZ5NmzpwJANiyZQsCAwPh7OwMLy8vfPTRR8r75xAREeXn52PWrFmYP38+0tPTJe2FAUgHBEFASUmJwb8EQdBJ/x06dECTJk0QFxcHALCyssKKFSvw559/YvPmzfjll18wadIkAEDr1q0RGxuLSpUq4e7du7h79y4+++wzAM8S/Zw5c3D27FnEx8cjIyMDAwYM0EmPRERk2k6dOoVly5YpX9vZ2UnYDW+EqBOlpaWIjo42+PeNjIyEra2tTsaqX78+zp07BwAYN26csu7n54e5c+di2LBh+Pzzz2FrawsXFxfIZDJ4eXmJxhg0aJDyv2vVqoUVK1agRYsWKCgogJOTk076JCIi0yIIAj7//HPcv39fWbt06R2cP18LtWpJ1xcDEAF49gf0+b1uDhw4gOjoaFy8eBH5+fl4+vQpnjx5gqKiohfeAPLkyZOYOXMmzp49i4cPHypPrM7MzETDhg0Nsh9ERGQ8cnNzsXz5clHt0KHRSE52R0YG0L27NH0BDEA6YWNjg8jISEm+r66kp6fD398fGRkZ6Nq1K4YPH4558+bB3d0dhw8fxieffIKSkpIyA1BhYSFCQ0MRGhqKbdu2oUqVKsjMzERoaChKSkp01icREZmGY8eOITExUfna1dUVY8aMwQ8/yFBUBERESNgcGIB0QiaT6WwpSgq//PIL/vjjD4wfPx4nT56EQqHAkiVLYGX17BSxb775RrS9ra0t5HK5qHbx4kX8/fffiImJga+vLwDgxIkThtkBIiIyGoIgYNmyZXj06JGy1qVLFwQGBgJ4Nusj5czPcwxAFqa4uBhZWVmQy+XIzs5GYmIioqOj0bVrV4SFheH8+fMoLS3FypUr0a1bN/z2229Yu3ataAw/Pz8UFBQgOTkZTZo0QcWKFVGjRg3Y2tpi5cqVGDZsGM6fP485c+ZItJdERCSFv//+G6tWrRLVxo0bBxcXF4k6KhuvArMwiYmJqFatGvz8/NCpUyekpKRgxYoV2LNnD6ytrdGkSRMsXboUCxYswOuvv45t27apnODdunVrDBs2DL1790aVKlWwcOFCVKlSBZs2bcK3336Lhg0bIiYmBosXL5ZoL4mIyNAOHz4sCj+enp6IiooyyvADADJBV9dSm5H8/Hy4uLggLy8PlSpVEr335MkTXL9+Hf7+/rC3t5eoQzI0/r4TEamnUCiwYMEC0fmePXr0QEBAgMF7edHP73/jEhgRERGVS3Z2tsppEuHh4XB2dpaoI80xABEREZHWfvnlFxw6dEj5ukaNGspnTpoCBiAiIiLSmFwux9y5c0W1Xr16oVGjRhJ1VD4MQERERKSRO3fuYN26daLaxIkTX3iTXGPFAEREREQvlZSUhKNHjypf16lTBx9//LGEHb0aBiAiIiIqU2lpKebPny+q9enTB3Xr1pWoI91gACIiIiK1MjMzsXHjRlFt8uTJZnE7EAYgIiIiUpGQkIDTp08rXzdq1Ai9evWSsCPdYgAiIiIipZKSEpUnAPTr1w+1atWSqCP94KMwSOcGDBiAnj17Kl+3a9cO48aNe6UxdTEGERG92F9//aUSfiIjI80u/ACcAbIoAwYMwObNmwEANjY2qFGjBsLCwjBlyhRUqKC/PwpxcXGwsbHRaNvU1FS0b98eDx8+hKura7nGICIi7e3evRvnz59Xvm7atCm6G8Nj2/WEAcjCdOrUCRs3bkRxcTF+/PFHjBw5EjY2NoiMjBRtV1JSAltbW518T3d3d6MYg4iIVD158gQLFiwQ1QYOHIgaNWpI1JFhcAnMwtjZ2cHLyws1a9bE8OHDERISgoSEBOWy1bx58+Dt7Y169eoBAG7evIkPPvgArq6ucHd3R48ePZCRkaEcTy6XIzw8HK6urqhcuTImTZqEfz9f99/LV8XFxZg8eTJ8fX1hZ2eHOnXq4KuvvkJGRgbat28PAHBzc4NMJsOAAQPUjvHw4UOEhYXBzc0NFStWROfOnXHlyhXl+5s2bYKrqyuSkpLQoEEDODk5oVOnTrh7965ym9TUVLRs2RKOjo5wdXXF//3f/+HGjRs6OtJERMbv8uXLKuFnypQpZh9+AAYgi+fg4KB8gm9ycjIuXbqEn3/+GXv37kVpaSlCQ0Ph7OyMQ4cO4bffflMGieefWbJkCTZt2oQNGzbg8OHDePDgAb7//vsXfs+wsDDs2LEDK1asQHp6Or744gs4OTnB19cXu3fvBgBcunQJd+/exfLly9WOMWDAAJw4cQIJCQlIS0uDIAj4z3/+g9LSUuU2RUVFWLx4MbZs2YJff/0VmZmZ+OyzzwAAT58+Rc+ePREcHIxz584hLS0NQ4cONZln2BARvart27djx44dytdBQUGYMWOGxZxuwCUwCyUIApKTk5GUlITRo0fj3r17cHR0xPr165VLX1u3boVCocD69euVwWDjxo1wdXVFamoqOnbsiNjYWERGRuK9994DAKxduxZJSUllft/Lly/jm2++wc8//4yQkBAAEJ1c93ypq2rVqqJzgP7pypUrSEhIwG+//YbWrVsDALZt2wZfX1/Ex8fjv//9L4BnN+9au3YtateuDQAYNWoUZs+eDQDIz89HXl4eunbtqny/QYMG2h9IIiITU1RUhEWLFolqQ4YMgbe3t0QdSYMzQBJKSABat372q6Hs3bsXTk5OsLe3R+fOndG7d2/MnDkTANC4cWPReT9nz57F1atX4ezsDCcnJzg5OcHd3R1PnjzBtWvXkJeXh7t37yIoKEj5mQoVKiAwMLDM73/mzBlYW1sjODi43PuQnp6OChUqiL5v5cqVUa9ePaSnpytrFStWVIYbAKhWrRpycnIAPAtaAwYMQGhoKLp164bly5eLlseIiMzRhQsXVMLP1KlTLS78AJwBklRMDJCW9uxXQ51o3759e6xZswa2trbw9vYWXf3l6Ogo2ragoADNmzfHtm3bVMapUqVKub6/g4NDuT5XHv+expXJZKLzkzZu3IgxY8YgMTERu3btwrRp0/Dzzz/jzTffNFiPRESGIAgCNm3ahMzMTGWtbdu26NChg4RdSYszQBKKiABatXr2q6E4OjqiTp06qFGjxksvfW/WrBmuXLmCqlWrok6dOqIvFxcXuLi4oFq1ajh27JjyM0+fPsXJkyfLHLNx48ZQKBQ4ePCg2vefz0DJ5fIyx2jQoAGePn0q+r5///03Ll26hIYNG75wn/6tadOmiIyMxJEjR/D6669j+/btWn2eiMjYFRQUYPbs2aLwM2zYMIsOPwADkKS6dweOHDHc7I+2Pv74Y3h4eKBHjx44dOgQrl+/jtTUVIwZMwa3bt0CAIwdOxYxMTGIj4/HxYsXMWLECOTm5pY5pp+fH/r3749BgwYhPj5eOeY333wDAKhZsyZkMhn27t2Le/fuoaCgQGWM1157DT169MCQIUNw+PBhnD17Fn379oWPjw969Oih0b5dv34dkZGRSEtLw40bN7B//35cuXKF5wERkVk5e/YslixZonxtY2OD6dOnw9PTU8KujAMDEJWpYsWK+PXXX1GjRg289957aNCgAT755BM8efIElSpVAgBMmDAB/fr1Q//+/dGqVSs4Ozvj3XfffeG4a9asQa9evTBixAjUr18fQ4YMQWFhIQDAx8cHs2bNQkREBDw9PTFq1Ci1Y2zcuBHNmzdH165d0apVKwiCgB9//FHjqxcqVqyIixcv4v3330fdunUxdOhQjBw5Ep9++qkWR4iIyLg8P7d0zx4Ba9euRXx8vPK9Dh06YMqUKbCy4o9+AJAJ/75pCyE/Px8uLi7Iy8tT/qB/7smTJ7h+/Tr8/f3N4mm4pBn+vhORKWjdGvjzzzyEh8eK6iNHjoSHh4c0TRnQi35+/xtPgiYiIjITgwefwM2b+5SvnZycMH78eM76qMEAREREZOIUCgXmzJkjqnXq1El0uxASYwAiIiIyYdeuXcPWrVtFtTFjxsDNzU2ijkwDAxAREZGJWrZsGfLz80W1qKgoPtZHAwxA5cRzxy0Lf7+JyJjI5XLMnTtXVPPx8cHgwYMl6sj0MABp6fll1kVFRQa9qzFJq6ioCIDq3aWJiAwtPT1dee+05wYPHgwfHx+JOjJNDEBasra2hqurq/KZUhUrVuRUoxkTBAFFRUXIycmBq6srrK2tpW6JiCxMQsKzRyZFRADnzs1VuVM+l7zKhwGoHLy8vABAGYLI/Lm6uip/34mIDCkmBvj991KcPj1fVK9bty769OkjUVemjwGoHGQyGapVq4aqVauitLRU6nZIz2xsbDjzQ0SS6d//IEJDU0W1YcOG8XEWr4gB6BVYW1vzByMREenNrFmzVGozZsyQoBPzwwBERERkZIqKirBo0SJR7bXXXsNHH30kUUfmhwGIiIjIiHz//fc4d+6cqMarvHSPAYiIiMhIcMnLcIzi6WirV6+Gn58f7O3tERQUhOPHj5e5bVxcHAIDA+Hq6gpHR0cEBARgy5YtyvdLS0sxefJkNG7cGI6OjvD29kZYWBju3LljiF0hIiLSWl5enkr4qVy5MsOPHkk+A7Rr1y6Eh4dj7dq1CAoKQmxsLEJDQ3Hp0iVUrVpVZXt3d3dMnToV9evXh62tLfbu3YuBAweiatWqCA0NRVFREU6dOoXp06ejSZMmePjwIcaOHYvu3bvjxIkTEuwhERFR2bZs2YK//vpLVBsxYgSqVKkiUUeWQSZIfI//oKAgtGjRAqtWrQLw7Im2vr6+GD16NCIiIjQao1mzZujSpYvKk3Cf+/3339GyZUvcuHEDNWrUeOl4+fn5cHFxQV5eHipVqqT5zhAREWmBS166pc3Pb0mXwEpKSnDy5EmEhIQoa1ZWVggJCUFaWtpLPy8IApKTk3Hp0iW89dZbZW6Xl5cHmUwGV1dXte8XFxcjPz9f9EVERKQv9+/fVwk/fn5+DD8GJOkS2P379yGXy1Vu5uTp6YmLFy+W+bm8vDz4+PiguLgY1tbW+Pzzz/HOO++o3fbJkyeYPHky+vTpU2YajI6OVpvCiYiIdG3NmjUqTxIYO3Zsmf9IJ/2Q/Byg8nB2dsaZM2dQUFCA5ORkhIeHo1atWmjXrp1ou9LSUnzwwQcQBAFr1qwpc7zIyEiEh4crX+fn58PX11df7RMRkYXikpfxkDQAeXh4wNraGtnZ2aJ6dnb2C5+7ZGVlhTp16gAAAgICkJ6ejujoaFEAeh5+bty4gV9++eWFa4F2dnaws7N7tZ0hIiIqw507d7Bu3TpR7fXXX8f7778vUUckaQCytbVF8+bNkZycjJ49ewJ4dhJ0cnIyRo0apfE4CoUCxcXFytfPw8+VK1eQkpKCypUr67p1IiIijSxcuBCPHz8W1T777DM4OjpK1BEBRrAEFh4ejv79+yMwMBAtW7ZEbGwsCgsLMXDgQABAWFgYfHx8EB0dDeDZ+TqBgYGoXbs2iouL8eOPP2LLli3KJa7S0lL06tULp06dwt69eyGXy5GVlQXg2SX0tra20uwoERFZHC55GS/JA1Dv3r1x7949REVFISsrCwEBAUhMTFSeGJ2ZmQkrq/9drFZYWIgRI0bg1q1bcHBwQP369bF161b07t0bAHD79m0kJCQAeLY89k8pKSkq5wkRERHpWkZGBjZv3iyqtWzZEp07d5aoI/o3ye8DZIx4HyAiIiovdbM+kydPhr29vQTdWBZtfn5LPgNERERkDgRBwOzZs1XqXPIyTgxARERE5ZSQAMTEAMOHX8Jff+0UvdeuXTsEBwdL1Bm9DAMQERFROcXEAKGhs/CvR3lhypQpsLGxkaYp0ggDEBERUTkoFAqEhqo+g5JLXqaBAYiIiEhLBw8eRGpqqqjWuXNntGzZUpqGSGsMQERERFpQd5XXtGnTYG1tLUE3VF4MQERERBp4+vQp5s2bp1LnkpdpYgAiIiJ6iX379uHEiROi2ttvv402bdpI1BG9KgYgIiKiF1C35DV9+nTRUwrI9DAAERERqVFcXIyYmBiVOpe8zAMDEBER0b/s2rULFy9eFNW6deuGZs2aSdQR6RoDEBER0T+oW/KKioqCTCaToBvSFwYgIiIiAIWFhVi8eLFKnUte5okBiIiILN769etx+/ZtUe2DDz5AgwYNJOqI9I0BiIiILJq6JS/O+pg/BiAiIrJIubm5WL58uUqd4ccyMAAREZHFWbJkCQoKCkS1/v37w8/PT5qGyOAYgIiIyKJwyYsABiAiIrIQ2dnZWLt2rUqd4ccyMQAREZHZUzfrM3ToUFSrVk2CbsgYMAAREZFZ45IXqcMAREREZikzMxMbN24U1ezs7BARESFRR2RMGICIiMjsqJv1GT16NNzd3SXohowRAxAREZkVLnmRJhiAiIjILFy+fBk7duwQ1apWrYrhw4dL1BEZMwYgIiIyeepmfcLDw+Hs7CxBN2QKGICIiMhkCYKA2bNnq9S55EUvwwBEREQm6ezZs4iPjxfV6tSpg48//liahsikMAAREZHJUbfkNXnyZNjb20vQDZkiBiAiIjIZXPIiXWEAIiIik5CWlob9+/eLagEBAejRo4dEHZEpYwAiIiKjp27Ja8qUKbCxsZGgGzIHDEBERGS05HI55s6dq1Lnkhe9KgYgIiIyKgkJQEwM0K/fAeTk/CZ6r02bNnj77bcl6ozMCQMQEREZlZgYIDR0FnJyxPXp06fDyspKmqbI7PBPEhERSSohAWjd+tmvJSUlCA1V/ywvhh/SJc4AERGRpGJigLQ0YP/+7Th9+orovU6dOiEoKEiizsicMQAREZGkIiKA06dVZ32ioqIgk8kk6IgsAQMQERFJpqioCKdPL1Kp8yov0jcGICIiksSaNWuQ868znbt06YLAwECJOiJLwgBEREQG8/wS97JOdCYyFAYgIiIymNjYPISGxqrUGX7I0BiAiIjIIGbNmoXgYHHtgw8+QIMGDaRpiCwab6pAREQ69897+wDqn+U1Y8YMhh+SDGeAiIhI557f2+fzz+/g9Ol1Ku9zyYukxgBEREQ6V9a9fT788EPUq1dPgo6IxBiAiIhI59SFH876kDFhACIiIp1ISAA2bEhH06bfqLzH8EPGhgGIiIheyT/v7dO0qfi9gQMHokaNGtI0RvQCDEBERPRKeGNDMkUMQEREVG7nzp1DaOj3KnWGHzJ2DEBERFQu6u7tM3ToUFSrVk2Cboi0wwBERERaK+vGhkSmggGIiIg0duTIEfz8888qdYYfMjUMQEREpBF1sz7jxo2Di4uLBN0QvRoGICIieiFBEDB79myVOmd9yJQxABERUZmSkpJw9OhRUa1ixYqYOHGiRB0R6YZRPA1+9erV8PPzg729PYKCgnD8+PEyt42Li0NgYCBcXV3h6OiIgIAAbNmyRbSNIAiIiopCtWrV4ODggJCQEFy5ckXfu0FEZFZmzZqlEn4mTZrE8ENmQfIAtGvXLoSHh2PGjBk4deoUmjRpgtDQUOTk5Kjd3t3dHVOnTkVaWhrOnTuHgQMHYuDAgUhKSlJus3DhQqxYsQJr167FsWPH4OjoiNDQUDx58sRQu0VEZLIUCkWZV3k5ODhI0BGR7skEQRCkbCAoKAgtWrTAqlWrADz7i+fr64vRo0cjIiJCozGaNWuGLl26YM6cORAEAd7e3pgwYQI+++wzAEBeXh48PT2xadMmfPjhhy8dLz8/Hy4uLsjLy0OlSpXKv3NERCbm22+/xYULF0Q1Hx8fDB48WKKOiDSnzc9vSWeASkpKcPLkSYSEhChrVlZWCAkJQVpa2ks/LwgCkpOTcenSJbz11lsAgOvXryMrK0s0pouLC4KCgsocs7i4GPn5+aIvIiJLM2vWLJXwM2XKFIYfMkuSBqD79+9DLpfD09NTVPf09ERWVlaZn8vLy4OTkxNsbW3RpUsXrFy5Eu+88w4AKD+nzZjR0dFwcXFRfvn6+r7KbhERmZTS0tIyl7xsbGwk6IhI/0zyKjBnZ2ecOXMGBQUFSE5ORnh4OGrVqoV27dqVa7zIyEiEh4crX+fn5zMEEZFFWLduHe7cuSOqNWrUCL169ZKoIyLDkDQAeXh4wNraGtnZ2aJ6dnY2vLy8yvyclZUV6tSpAwAICAhAeno6oqOj0a5dO+XnsrOzRc+jyc7ORkBAgNrx7OzsYGdn94p7Q0RkWtTN+kyfPh1WVpJfH0Okd5L+Kbe1tUXz5s2RnJysrCkUCiQnJ6NVq1Yaj6NQKFBcXAwA8Pf3h5eXl2jM/Px8HDt2TKsxiYjM1ePHj8tc8mL4IUsh+RJYeHg4+vfvj8DAQLRs2RKxsbEoLCzEwIEDAQBhYWHw8fFBdHQ0gGfn6wQGBqJ27dooLi7Gjz/+iC1btmDNmjUAAJlMhnHjxmHu3Ll47bXX4O/vj+nTp8Pb2xs9e/aUajeJiIzCwoUL8fjxY1GtVatW6Nixo0QdEUlD8gDUu3dv3Lt3D1FRUcjKykJAQAASExOVJzFnZmaK/kVSWFiIESNG4NatW3BwcED9+vWxdetW9O7dW7nNpEmTUFhYiKFDhyI3Nxdt2rRBYmIi7O3tDb5/RETGQt2sT1RUFGQymQTdEElL8vsAGSPeB4iIzEleXh5iY2NV6nyWF5kbbX5+Sz4DRERE+qNu1qdjx448J5IsntYByNraGnfv3kXVqlVF9b///htVq1aFXC7XWXNERFR+ZZ3oTETluAqsrBWz4uJi2NravnJDRESkvYQEoHXrZ7/eu3eP4YfoJTSeAVqxYgWAZ1dZrV+/Hk5OTsr35HI5fv31V9SvX1/3HRIR0UvFxABpacDp07Nw+rT4vffeew+NGzeWpjEiI6VxAFq2bBmAZzNAa9euhbW1tfI9W1tb+Pn5Ye3atbrvkIiIXioi4ln4+TfO+hCpp3EAun79OgCgffv2iIuLg5ubm96aIiKiF0tIeDbrExEBBARk4vTpjSrbMPwQlU3rk6BTUlL00QcREWnhRUte/fr1Q61ataRpjMhEaB2ABg0a9ML3N2zYUO5miIhIM1zyIno1Wgeghw8fil6Xlpbi/PnzyM3NRYcOHXTWGBERqXfx4kWcPr1Lpc7wQ6Q5rQPQ999/r1JTKBQYPnw4ateurZOmiIhIPXWXtw8dOhTVqlWToBsi06WzR2FcunQJ7dq1w927d3UxnKT4KAwiMka8tw/Ri0nyKIxr167h6dOnuhqOiIj+v5MnT2Lv3r0qdYYfovLTOgCFh4eLXguCgLt372Lfvn3o37+/zhojIiL1sz6jR4+Gu7u7BN0QmQ+tA9Dpf11vaWVlhSpVqmDJkiUvvUKMiIg0IwgCZs+erVLnrA+RbvA+QERERubgwYNITU0V1WQyGaKioqRpiMgMlfscoJycHFy6dAkAUK9ePZWnwxMRkfbULXlNmDBB9PxFInp1Wj8NPj8/H/369YO3tzeCg4MRHBwMHx8f9O3bF3l5efrokYjI7AmCUOZVXgw/RLqndQAaMmQIjh07hn379iE3Nxe5ubnYu3cvTpw4gU8//VQfPRIRmbUffvhB5Xwfd3d3nu9DpEda3wfI0dERSUlJaNOmjah+6NAhdOrUCYWFhTptUAq8DxARGYq6WZ+IiAjY2dlJ0A2RadPrfYAqV64MFxcXlbqLiwufEE9EpCG5XI65c+eq1DnrQ2QYWgegadOmITw8HFu2bIGXlxcAICsrCxMnTsT06dN13iARkbnZunUrrl27JqrVrl0bffv2lagjIsuj9RJY06ZNcfXqVRQXF6NGjRoAgMzMTNjZ2eG1114TbXvq1CnddWpAXAIjIn1Rt+Q1bdo0WFtbS9ANkXnR6xJYjx49IJPJyt0cEZElKi4uRkxMjEqdS15E0tDZw1DNCWeAiOhVJSQAMTFARARw48ZKPHjwQPR+s2bN0K1bN4m6IzJP2vz81voy+Fq1auHvv/9Wqefm5qJWrVraDkdEZJZiYoC0NOD06Vkq4ScqKorhh0hiWi+BZWRkQC6Xq9SLi4tx69YtnTRFRGTqJkwowPnzS1TqXPIiMg4aB6CEhATlfyclJYkuhZfL5UhOToa/v79uuyMiMkGzZ8/Gv88uCA4ORrt27aRpiIhUaByAevbsCeDZA/n69+8ves/GxgZ+fn5YskT1XztERJakrMdZEJFx0TgAKRQKAIC/vz9+//13eHh46K0pIiJT8+DBA6xcuVKlzvBDZJy0Pgfo+vXr+uiDiMhkqZv16dq1K5o3by5BN0SkCa0D0L8f2PdvUVFR5W6GiMjUcMmLyDRpHYC+//570evS0lJcv34dFSpUQO3atRmAiMgi3L17F19++aVKneGHyDRoHYBOnz6tUsvPz8eAAQPw7rvv6qQpIiJjpm7Wp3fv3qhfv74E3RBReejsTtB//PEHunXrhoyMDF0MJyneCZqIysIlLyLjpddngZUlLy8PeXl5uhqOiMioXLt2DVu3blWpM/wQmSatA9CKFStErwVBwN27d7FlyxZ07txZZ40RERkLdbM+AwcORI0aNSTohoh0QesAtGzZMtFrKysrVKlSBf3790dkZKTOGiMiMgZc8iIyT7wPEBGRGn/88Qfi4uJU6gw/ROahXOcA5ebm4urVqwCAOnXqwNXVVZc9ERFJSt2sz/Dhw1G1alUJuiEifbDSZuOMjAx06dIFHh4eCAoKQlBQEDw8PNC1a1ezuPqLiKisJS+GHyLzovEM0M2bN/Hmm2/CxsYGc+bMQYMGDQAAFy5cwJo1a9CqVSv8/vvvqF69ut6aJSLSl6NHjyIpKUmlziUvIvOk8X2APvnkE1y9ehVJSUmwt7cXvff48WN06tQJr732GtavX6+XRg2J9wEisizqZn3GjRsHFxcXCbohovLSy32AEhMTsWvXLpXwAwAODg6YM2cOPvzwQ+27JSKSiCAIap9vyFkfIvOncQC6f/8+/Pz8yny/Vq1aePDggS56IiLSu59//hlHjhwR1RwcHDBp0iSJOiIiQ9I4AFWrVg0XLlwo8xyf8+fPw8vLS2eNERHpi7olr0mTJsHBwUGCbohIChpfBdazZ0989tlnuHfvnsp7OTk5mDx5Mnr27KnL3oiIdEqhUJR5lRfDD5Fl0fgk6IcPHyIoKAhZWVno27cv6tevD0EQkJ6eju3bt8PLywtHjx6Fu7u7vnvWO54ETWR+du/ejfPnz4tq3t7eGDJkiEQdEZGu6eUkaDc3Nxw7dgxTpkzBzp07kZubCwBwdXXFRx99hPnz55tF+CEi86Nu1mfKlCmwsbGRoBsiMgYazwD9kyAIyqWwKlWqQCaT6bwxKXEGiMg8lJaWYv78+Sp1XuVFZJ70MgP0TzKZjHdFJSKj9tVXX+HWrVuiWqNGjdCrVy+JOiIiY1KuAEREZMzULXlNnz4dVlZaPf2HiMwYAxARmY3Hjx9j4cKFKnUueRHRvzEAEZFZWLx4MQoLC0W1Vq1aoWPHjhJ1RETGjAGIiEyeuiWvqKgos7tAg4h0R6MAtGLFCo0HHDNmTLmbISLSRn5+PpYtW6ZS55IXEb2MRpfB+/v7azaYTIa//vrrlZuSGi+DJzJ+6mZ93nnnHbRu3VqCbojIGGjz81ujSyKuX7+u0Vd5ws/q1avh5+cHe3t7BAUF4fjx42Vuu27dOrRt2xZubm5wc3NDSEiIyvYFBQUYNWoUqlevDgcHBzRs2BBr167Vui8iMl5lPc6C4YeINFXua0JLSkpw6dIlPH36tNzffNeuXQgPD8eMGTNw6tQpNGnSBKGhocjJyVG7fWpqKvr06YOUlBSkpaXB19cXHTt2xO3bt5XbhIeHIzExEVu3bkV6ejrGjRuHUaNGISEhodx9EpFxuHfvXpnhh4hIG1rfCbqoqAijR4/G5s2bAQCXL19GrVq1MHr0aPj4+CAiIkLjsYKCgtCiRQusWrUKwLMHFfr6+mL06NEajSOXy+Hm5oZVq1YhLCwMAPD666+jd+/emD59unK75s2bo3Pnzpg7d65GfXEJjMj4qAs+7777Lt544w0JuiEiY6TzJbB/ioyMxNmzZ5Gamgp7e3tlPSQkBLt27dJ4nJKSEpw8eRIhISH/a8bKCiEhIUhLS9NojKKiIpSWloqeQda6dWskJCTg9u3bEAQBKSkpuHz5Mi+FJTJhZc36MPwQUXlpfRl8fHw8du3ahTfffFN0iWmjRo1w7do1jce5f/8+5HI5PD09RXVPT09cvHhRozEmT54Mb29vUYhauXIlhg4diurVq6NChQqwsrLCunXr8NZbb5U5TnFxMYqLi5Wv8/PzNd4PItKfmzdvYsOGDSp1LnkR0avSOgDdu3dP7XPACgsLDXrPjZiYGOzcuVNlJmrlypU4evQoEhISULNmTfz6668YOXKkSlD6p+joaLX/wiQi6aj7O1m7dl/07Vtbgm6IyNxovQQWGBiIffv2KV8/Dz3r169Hq1atNB7Hw8MD1tbWyM7OFtWzs7Ph5eX1ws8uXrwYMTEx2L9/v2gK/PHjx5gyZQqWLl2Kbt264Y033sCoUaPQu3dvLF68uMzxIiMjkZeXp/y6efOmxvtBRLpX1pIXww8R6YrWM0Dz589H586dceHCBTx9+hTLly/HhQsXcOTIERw8eFDjcWxtbdG8eXMkJyejZ8+eAJ6dBJ2cnIxRo0aV+bmFCxdi3rx5SEpKQmBgoOi90tJSlJaWqjzw0NraGgqFoswx7ezsYGdnp3HvRKQfly5dws6dO1XqXPIiIl3TOgC1adMGZ86cQUxMDBo3boz9+/ejWbNmSEtLQ+PGjbUaKzw8HP3790dgYCBatmyJ2NhYFBYWYuDAgQCAsLAw+Pj4IDo6GgCwYMECREVFYfv27fDz80NWVhYAwMnJCU5OTqhUqRKCg4MxceJEODg4oGbNmjh48CC+/vprLF26VNtdJSIDUjfrM2TIEHh7e0vQDRGZO60vg9e1VatWYdGiRcjKykJAQABWrFiBoKAgAEC7du3g5+eHTZs2AQD8/Pxw48YNlTFmzJiBmTNnAgCysrIQGRmJ/fv348GDB6hZsyaGDh2K8ePHa3yOEi+DJzIs3tuHiHRBm5/fGgUgba6KMofAwABEZBinTp3CDz/8oFJn+CGi8tDm57dGS2Curq4az57I5XKNtiMiy6Zu1mf06NGi+3oREemLRgEoJSVF+d8ZGRmIiIjAgAEDlFd9paWlYfPmzcpzdYiIXoRLXkQkNa3PAXr77bcxePBg9OnTR1Tfvn07vvzyS6SmpuqyP0lwCYxIP3799VfRP6ieY/ghIl3Q+TlA/1SxYkWcPXsWr732mqh++fJlBAQEoKioSPuOjQwDEJHuqZv1mTBhApycnCTohojMkV6fBebr64t169ap1NevXw9fX19thyMiMycIQplLXgw/RCQVre8DtGzZMrz//vv46aeflJerHz9+HFeuXMHu3bt13iARma69e/fi5MmTopqbmxvGjBkjUUdERM+U6z5At27dwueff658aGmDBg0wbNgws5kB4hIY0atTN+sTERHBu64Tkd7o9RwgS8AARFR+crkcc+fOVanzRGci0jed3wfo33Jzc/HVV18hPT0dANCoUSMMGjQILi4u5RmOiMzEvn37cOLECVGtUqU6GD/+Y4k6IiJST+sZoBMnTiA0NBQODg5o2bIlAOD333/H48ePlc8FM3WcASLSnrolr2nTpsHa2lqCbojIEul1Caxt27aoU6cO1q1bhwoVnk0gPX36FIMHD8Zff/2FX3/9tfydGwkGICLNlZSUqL0JKpe8iMjQ9BqAHBwccPr0adSvX19Uv3DhAgIDA3kfICILsmfPHpw5c0ZUCw4ORrt27STph4gsm17vA1SpUiVkZmaq1G/evAlnZ2dthyMiEzVr1iyV8JOUFMXwQ0QmQesA1Lt3b3zyySfYtWsXbt68iZs3b2Lnzp1qH49BRObnyZMnas/3SUqagYgIzR6aTEQkNa2vAlu8eDFkMhnCwsLw9OlTAICNjQ2GDx+OmJgYnTdIRMZj27ZtuHr1qqjWs2dPNGnSBDzlh4hMSbnvA1RUVIRr164BAGrXro2KFSvqtDEp8RwgIlXqZn2ioqIgk3HWh4iMg97vAwQ8eyhq48aNy/txIjIRjx49wtKlS1XqvMqLiEyZxgFo0KBBGm23YcOGcjdDRMZlzZo1yMnJEdX69OmDunXrStQREZFuaByANm3ahJo1a6Jp06bg0zOIzF9ZT3AnIjIHGgeg4cOHY8eOHbh+/ToGDhyIvn37wt3dXZ+9EZEEHjx4gJUrV6rUGX6IyJxodRJ0cXEx4uLisGHDBhw5cgRdunTBJ598go4dO5rViZA8CZosVUxMDIqLi0W1QYMGwdfXV6KOiIg0Z5Cnwd+4cQObNm3C119/jadPn+LPP/+Ek5NTuRo2NgxAZIm45EVEps4gV4FZWVlBJpNBEATI5fLyDkNEErt79y6+/PJLlTrDDxGZM60C0D+XwA4fPoyuXbti1apV6NSpE6ystL6pNBFJTN2sz7Bhw+Dp6SlBN0REhqNxABoxYgR27twJX19fDBo0CDt27ICHh4c+eyMiPeKSFxFZMo3PAbKyskKNGjXQtGnTF57wHBcXp7PmpMJzgMicZWRkYPPmzaKas7MzwsPDJeqIiEg39HIOUFhYmFld6UVkidTN+owdOxaurq6Gb4aISEJa3QiRiEwXl7yIiP6n3FeBEZFpSE9PxzfffCOq+fj4YPDgwRJ1REQkPQYgIjOmbtbns88+g6OjowTdEBEZDwYgIjMkCAJmz56tUueSFxHRMwxARGbm1KlT+OGHH0S1+vXro3fv3hJ1RERkfBiAiMyIuiWviIgI2NnZSdANEZHxYgAiMgNc8iIi0g4DEJGJO3z4MJKTk0W1Fi1a4D//+Y9EHRERGT8GICITpm7Ja+rUqahQgX+1iYhehP+XJDJBT58+xbx581TqXPIiItIMAxCRiUlMTMSxY8dEtXbt2iE4OFiijoiITA8DEJEJUbfkNX36dFhZWUnQDRGR6WIAIjIBJSUliI6OVqlzyYuIqHwYgIiM3HfffYc///xTVOvSpQsCAwMl6oiIyPQxABEZMXVLXlFRUZDJZBJ0Q0RkPhiAiIxQUVERFi1apFLnkhcRkW4wABEZmY0bNyIzM1NU69WrFxo1aiRRR0RE5ocBiMiIqFvy4qwPEZHuMQARGYG8vDzExsaq1Bl+iIj0gwGISGKxsbHIy8sT1fr164datWpJ1BERkfljACKSEJe8iIikwQBEJIF79+7h888/V6kz/BARGQYDEJGBqZv1GTJkCLy9vSXohojIMjEAERkQl7yIiIwDAxCRAdy6dQtfffWVqFahQgVMnTpVoo6IiCwbAxCRnqmb9Rk5ciQ8PDwk6IaIiAAGICK94pIXEZFxYgAi0oOrV69i27ZtolrlypUxatQoiToiIqJ/YgAi0jF1sz7jx49HpUqVJOiGiIjUYQAi0iEueRERmQYrqRtYvXo1/Pz8YG9vj6CgIBw/frzMbdetW4e2bdvCzc0Nbm5uCAkJUbt9eno6unfvDhcXFzg6OqJFixYqT9cm0qU//vhDJfz4+/sz/BARGSlJA9CuXbsQHh6OGTNm4NSpU2jSpAlCQ0ORk5OjdvvU1FT06dMHKSkpSEtLg6+vLzp27Ijbt28rt7l27RratGmD+vXrIzU1FefOncP06dNhb29vqN0iCzNr1izExcWJapMmTUJYWJhEHRER0cvIBEEQpPrmQUFBaNGiBVatWgUAUCgU8PX1xejRoxEREfHSz8vlcri5uWHVqlXKHzYffvghbGxssGXLlnL3lZ+fDxcXF+Tl5fG8DSqTIAiYPXu2Sp2zPkRE0tDm57dkM0AlJSU4efIkQkJC/teMlRVCQkKQlpam0RhFRUUoLS2Fu7s7gGcBat++fahbty5CQ0NRtWpVBAUFIT4+/oXjFBcXIz8/X/RF9CLHjh1TCT9NmjRh+CEiMhGSBaD79+9DLpfD09NTVPf09ERWVpZGY0yePBne3t7KEJWTk4OCggLExMSgU6dO2L9/P95991289957OHjwYJnjREdHw8XFRfnl6+tb/h0jszdr1iwkJiaKalOmTEHPnj2laYiIiLRmsleBxcTEYOfOnUhNTVWe36NQKAAAPXr0wPjx4wEAAQEBOHLkCNauXYvg4GC1Y0VGRiI8PFz5Oj8/nyGIVCgUCsyZM0elzlkfIiLTI1kA8vDwgLW1NbKzs0X17OxseHl5vfCzixcvRkxMDA4cOIA33nhDNGaFChXQsGFD0fYNGjTA4cOHyxzPzs4OdnZ25dgLshS//PILDh06JKq1bt0a77zzjkQdERHRq5BsCczW1hbNmzdHcnKysqZQKJCcnIxWrVqV+bmFCxdizpw5SExMRGBgoMqYLVq0wKVLl0T1y5cvo2bNmrrdAbIYs2bNUgk/06ZNY/ghIjJhki6BhYeHo3///ggMDETLli0RGxuLwsJCDBw4EAAQFhYGHx8fREdHAwAWLFiAqKgobN++HX5+fspzhZycnODk5AQAmDhxInr37o233noL7du3R2JiIn744QekpqZKso9kukpLSzF//nyVOpe8iIhMn6QBqHfv3rh37x6ioqKQlZWFgIAAJCYmKk+MzszMhJXV/yap1qxZg5KSEvTq1Us0zowZMzBz5kwAwLvvvou1a9ciOjoaY8aMQb169bB79260adPGYPtFpi8hIQGnT58W1d555x20bt1aoo6IiEiXJL0PkLHifYAsm7rHWURFRUEmk0nQDRERaUqbn98mexUYka49efIECxYsUKlzyYuIyPwwABEB2LZtG65evSqq9ezZE02aNJGoIyIi0icGILJ4XPIiIrI8DEBksR49eoSlS5eq1LnkRURk/hiAyCLt2bMHZ86cEdX69OmDunXrStMQEREZFAMQWRx1S16c9SEisiwMQGQx8vPzsWzZMlHN0dERn332mUQdERGRVBiAyCLs2LEDly9fFtWGDx+OqlWrStQRERFJiQGIzB6XvIiI6N8kexgqkb49ePBAJfxUr15dGX4SEoDWrZ/9SkREloUzQGSW1q1bhzt37ohqY8aMgZubm/J1TAyQlvbs1+7d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q25ubkKrVq2EnTt3isZTKBTC9OnTBU9PT8HOzk54++23hUuXLhlqd4yaLo/19evX1f65ByCkpKQYcK/Ml0wQBMGgU05EREREEuM5QERERGRxGICIiIjI4jAAERERkcVhACIiIiKLwwBEREREFocBiIiIiCwOAxARERFZHAYgIiIisjgMQERkdgYMGICePXuq1FNTUyGTyZCbm4vU1FT06NED1apVg6OjIwICArBt2zbDN0tEkmAAIiKLdOTIEbzxxhvYvXs3zp07h4EDByIsLAx79+6VujUiMoAKUjdARCSFKVOmiF6PHTsW+/fvR1xcHLp27SpRV0RkKJwBIiL6//Ly8uDu7i51G0RkAJwBIiKztHfvXjg5OYlqcrm8zO2/+eYb/P777/jiiy/03RoRGQEGICIyS+3bt8eaNWtEtWPHjqFv374q26akpGDgwIFYt24dGjVqZKgWiUhCDEBEZJYcHR1Rp04dUe3WrVsq2x08eBDdunXDsmXLEBYWZqj2iEhiPAeIiCxWamoqunTpggULFmDo0KFSt0NEBsQZICKySCkpKejatSvGjh2L999/H1lZWQAAW1tbnghNZAE4A0REFmnz5s0oKipCdHQ0qlWrpvx67733pG6NiAxAJgiCIHUTRERERIbEGSAiIiKyOAxAREREZHEYgIiIiMjiMAARERGRxWEAIiIiIovDAEREREQWhwGIiIiILA4DEBEREVkcBiAiIiKyOAxAREREZHEYgIiIiMjiMAARERGRxfl/t0UG4jgVH8gAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_39.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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cePGYf369di2bRscHR1V6xCcnJxQt25dCT6lfunjGEZHR6Nv377w8vLC3bt3sX79eiQnJ2PPnj3SfEg90/UxdHR0VFtzZm9vj4YNG5rkWjR9/BmcNGkSQkND0axZM9y4cQMxMTGwtLTE0KFDpfmQ+iL1aWjm7NNPPxW8vLwEa2troVu3bsLvv/+uei4oKEgIDw9XPc7IyBAAqP0EBQVVeZ+mSNfH8MCBAxq3+ed+TImuj5+m5wEIa9asMdyHMjBdH8MRI0YIzZo1E6ytrQUXFxfhueeeE/bu3WvAT2R4+vi78J9M+TR4QdD98RsyZIjg7u4uWFtbCx4eHsKQIUOE9PR0A34iw5AJgiDoLV0RERERGSGuASIiIiKzwwBEREREZocBiIiIiMwOAxARERGZHQYgIiIiMjsMQERERGR2GICIiIjI7DAAERERkdlhACKiWi0iIgIDBw5UqycnJ0Mmk6GgoADJyckYMGAA3N3dYW9vj06dOuG7775Te83t27cRGRmJZs2awdraGk2aNMGIESNw7do1A3wSIjIkBiAiMnlHjhxBx44dsXnzZvz5558YPnw4wsLCsGPHDtU2t2/fxlNPPYX9+/dj5cqVSE9Px8aNG5Geno6uXbviypUrEn4CItI13gqDiGq1iIgIFBQUYOvWraJ6cnIyevXqhTt37sDZ2Vntdf369YOrqytWr14NABgzZgy++eYbpKenw83NTbXd/fv30aJFC3To0AG7du3S50chIgPiCBARmaXCwkI0aNAAAKBUKrFx40YMGzZMFH4AoG7duhg7diz27NmD27dvS9EqEelBHakbICKqqR07dsDBwUFUUygUlW6/adMmHD9+HKtWrQIA5Ofno6CgAG3atNG4fZs2bSAIAtLT09GtWzfdNU5EkmEAIqJar1evXlixYoWodvToUbz55ptq2x44cADDhw/HF198gXbt2ome44oAIvPBAEREtZ69vT18fX1Ftb///lttu4MHDyI0NBRLlixBWFiYqu7i4gJnZ2ecP39e4/7Pnz8PmUym9h5EVHtxDRARmYXk5GT069cP8+fPx+jRo0XPWVhY4LXXXsP69euRk5Mjeu7+/fv47LPPEBISolozRES1HwMQEZm8AwcOoF+/fpg4cSIGDRqEnJwc5OTkiBY1z5s3D25ubnj++eexa9cuZGVl4dChQwgJCUF5eTkSEhIk/AREpGsMQERk8tatW4d79+4hNjYW7u7uqp9XXnlFtU3Dhg3x+++/o1evXnjnnXfQvHlzvPbaa2jevDmOHz8OHx8fCT8BEekarwNEREREZocjQERERGR2GICIiIjI7DAAERERkdlhACIiIiKzwwBEREREZocBiIiIiMwOAxARERGZHQYgIiIiMjsMQERERGR2GICIiIjI7DAAERERkdlhACIiIiKz838wBvn0vEU9iAAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_40.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_41.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAHHCAYAAABXx+fLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABgH0lEQVR4nO3deXzM1/4/8NeI7JvsC4mEEIqgqkRrTyWqJJYqt23kUlpCq60SilAqsba0vdGFRO9tpLUkVBFLJapCUWpP0UT4SkJVEglZJOf3h59pP2YSmcjkM8vr+XjMo3fecz6feZ87xryd8/mcoxBCCBAREREZkUZyJ0BERETU0FgAERERkdFhAURERERGhwUQERERGR0WQERERGR0WAARERGR0WEBREREREaHBRAREREZHRZAREREZHRYABGR3lIoFJg3b57caShFRETAx8dH7jSIqBZYABFRvUpISIBCoVA+LCws0Lp1a0yePBn5+flafe+DBw9i3rx5KCgoqNfz9unTR9InR0dHdO3aFWvXrkVVVVW9vMeiRYuQkpJSL+ciokdrLHcCRGSYPvjgA/j6+qK0tBQHDhxAXFwctm/fjtOnT8PKyqpe3uPu3bto3Pjvv8YOHjyI+fPnIyIiAk2aNKmX93igWbNmiImJAQDcuHEDX3/9NcaNG4fff/8dsbGxj33+RYsWYcSIEQgLC3vscxHRo7EAIiKtGDhwIJ566ikAwGuvvQYnJyesWLECW7ZswejRo+t83qqqKpSXl8PCwgIWFhb1le4j2dvb45VXXlE+f/311+Hv749PP/0UCxYsgKmpaYPlQkSPj1NgRNQg+vXrBwDIysoCACxbtgw9evSAk5MTLC0t0aVLF2zcuFHlOIVCgcmTJ+Obb75Bu3btYG5ujp07dypfe3AN0Lx58/Dee+8BAHx9fZXTVdnZ2ejduzc6duyoNi9/f38EBwdr3B8rKyt0794dJSUluHHjRrXtSkpK8O6778LLywvm5ubw9/fHsmXLIISQ9LGkpATr1q1T5h0REaFxTkRUexwBIqIGcenSJQCAk5MTAGDlypUYMmQIXn75ZZSXlyMpKQkvvvgitm3bhkGDBkmO/fHHH/Hdd99h8uTJcHZ2Vnuh8bBhw/D7779j/fr1+Oijj+Ds7AwAcHFxwauvvorx48fj9OnTaN++vfKYI0eO4Pfff8fs2bPr1Kc//vgDJiYm1U63CSEwZMgQ7Nu3D+PGjUOnTp2QmpqK9957D//3f/+Hjz76CADw3//+F6+99hqefvppTJgwAQDQsmXLOuVERLUkiIjqUXx8vAAg9uzZI27cuCGuXLkikpKShJOTk7C0tBRXr14VQghx584dyXHl5eWiffv2ol+/fpI4ANGoUSNx5swZlfcCIKKjo5XPly5dKgCIrKwsSbuCggJhYWEhZsyYIYm/+eabwtraWhQXF9fYp969e4s2bdqIGzduiBs3bohz586JN998UwAQgwcPVrYbM2aMaN68ufJ5SkqKACAWLlwoOd+IESOEQqEQFy9eVMasra3FmDFjasyDiOoPp8CISCuCgoLg4uICLy8vjBo1CjY2NkhOTkbTpk0BAJaWlsq2t27dQmFhIXr27Ilff/1V5Vy9e/fGE088Uedc7O3tERoaivXr1yunniorK/Htt98iLCwM1tbWjzzH+fPn4eLiAhcXF7Rt2xaffPIJBg0ahLVr11Z7zPbt22FiYoI333xTEn/33XchhMCOHTvq3CciejwsgB5h//79GDx4MDw9PaFQKLR+m2pMTAy6du0KW1tbuLq6IiwsDJmZmZI2paWliIyMhJOTE2xsbDB8+HCt315MpKnPPvsMu3fvxr59+3D27Fn88ccfkmtttm3bhu7du8PCwgKOjo5wcXFBXFwcCgsLVc7l6+v72PmEh4cjJycHP/30EwBgz549yM/Px6uvvlqr4318fLB7927s2bMHBw4cQF5eHrZt26acalPn8uXL8PT0hK2trSTetm1b5etEJA8WQI9QUlKCjh074rPPPmuQ90tPT0dkZCQOHTqE3bt3o6KiAgMGDEBJSYmyzdtvv43vv/8eGzZsQHp6Oq5du4Zhw4Y1SH5EtfX0008jKCgIffr0Qdu2bdGo0d9/3fz0008YMmQILCws8J///Afbt2/H7t278a9//UtycfAD/xwtqqvg4GC4ubnhf//7HwDgf//7H9zd3REUFFSr462trREUFIT+/fvjmWeegaur62PnRETy4UXQjzBw4EAMHDiw2tfLysrw/vvvY/369SgoKED79u2xePFi9OnTp07v9+DulgcSEhLg6uqKY8eOoVevXigsLMSaNWuQmJiovKsmPj4ebdu2xaFDh9C9e/c6vS9RQ9q0aRMsLCyQmpoKc3NzZTw+Pv6xzqtQ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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_42.png" - } - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\r", - "1/1 [==============================] - ETA: 0s" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", - "1/1 [==============================] - 0s 16ms/step\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkgAAAHHCAYAAABEEKc/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABMqElEQVR4nO3dfVxUZf7/8feAciPIoCK3oeBdapKUKKImWBiVtZK1oZV3P9Ot7UYz11XXmywLszX9mpZmpZaZrOa3zFxLMSvTrzeIpaZuGqYloOg6KCgYc35/uM42IyrgwAC+no/HPHCuc50zn3MexLw75zrXMRmGYQgAAAA2bq4uAAAAoLohIAEAADggIAEAADggIAEAADggIAEAADggIAEAADggIAEAADggIAEAADggIAEAADggIAGosZ5//nmZTKYy9TWZTHr++ecrtZ6EhAQlJCRU2+0BKDsCEoBrtnDhQplMJturTp06CgsL06BBg/Trr7+6urxqJyIiwu54BQYG6rbbbtP//u//OmX7hYWFev7557VhwwanbA+4HhGQADjNCy+8oPfff19z587V3XffrcWLFys+Pl7nzp2rlM8bP368zp49WynbrmzR0dF6//339f7772vUqFE6evSo+vTpo7lz517ztgsLCzV58mQCEnAN6ri6AAC1x913362YmBhJ0mOPPaaAgAC98sorWrlypR566CGnf16dOnVUp07N/DMWFhamRx991PZ+wIABatGihWbMmKHHH3/chZUBkDiDBKAS3XbbbZKkgwcP2rXv27dPDz74oBo2bCgvLy/FxMRo5cqVdn3Onz+vyZMnq2XLlvLy8lKjRo3UrVs3rV271tantDFIRUVFevbZZ9W4cWPVr19ff/jDH/TLL79cUtugQYMUERFxSXtp21ywYIFuv/12BQYGytPTU23bttWbb75ZrmNxNcHBwWrTpo2ysrKu2O/YsWMaMmSIgoKC5OXlpfbt22vRokW25YcOHVLjxo0lSZMnT7Zdxqvs8VdAbVMz/9cLQI1w6NAhSVKDBg1sbXv27FHXrl0VFhamMWPGyMfHR//4xz+UnJysjz76SPfff7+kC0ElNTVVjz32mDp16qT8/Hxt375dO3bsUM+ePS/7mY899pgWL16shx9+WF26dNH69evVq1eva9qPN998UzfddJP+8Ic/qE6dOvr000/15z//WVarVU8++eQ1bfui8+fP68iRI2rUqNFl+5w9e1YJCQk6cOCAnnrqKUVGRmrZsmUaNGiQTp06peHDh6tx48Z688039cQTT+j+++9Xnz59JEk333yzU+oErhsGAFyjBQsWGJKMdevWGcePHzeOHDliLF++3GjcuLHh6elpHDlyxNb3jjvuMKKiooxz587Z2qxWq9GlSxejZcuWtrb27dsbvXr1uuLnTpo0yfj9n7GdO3cakow///nPdv0efvhhQ5IxadIkW9vAgQONpk2bXnWbhmEYhYWFl/RLSkoymjVrZtcWHx9vxMfHX7FmwzCMpk2bGnfeeadx/Phx4/jx48Z3331n9O3b15BkPP3005fd3syZMw1JxuLFi21txcXFRlxcnOHr62vk5+cbhmEYx48fv2R/AZQPl9gAOE1iYqIaN26s8PBwPfjgg/Lx8dHKlSt1ww03SJJOnjyp9evX66GHHtLp06eVl5envLw8nThxQklJSfrxxx9td735+/trz549+vHHH8v8+atXr5YkPfPMM3btI0aMuKb98vb2tv3bYrEoLy9P8fHx+umnn2SxWCq0zS+++EKNGzdW48aN1b59ey1btkz9+/fXK6+8ctl1Vq9ereDgYPXr18/WVrduXT3zzDM6c+aMvvrqqwrVAuBSXGID4DRz5sxRq1atZLFY9O677+rrr7+Wp6enbfmBAwdkGIYmTJigCRMmlLqNY8eOKSwsTC+88IJ69+6tVq1aqV27drrrrrvUv3//K14q+vnnn+Xm5qbmzZvbtd94443XtF/ffvutJk2apM2bN6uwsNBumcVikdlsLvc2Y2NjNWXKFJlMJtWrV09t2rSRv7//Fdf5+eef1bJlS7m52f+/bZs2bWzLATgHAQmA03Tq1Ml2F1tycrK6deumhx9+WPv375evr6+sVqskadSoUUpKSip1Gy1atJAkde/eXQcPHtQnn3yiL774Qm+//bZmzJihuXPn6rHHHrvmWi83wWRJSYnd+4MHD+qOO+5Q69at9dprryk8PFweHh5avXq1ZsyYYdun8goICFBiYmKF1gVQ+QhIACqFu7u7UlNT1aNHD82ePVtjxoxRs2bNJF24LFSWcNCwYUMNHjxYgwcP1pkzZ9S9e3c9//zzlw1ITZs2ldVq1cGDB+3OGu3fv/+Svg0aNNCpU6cuaXc8C/Ppp5+qqKhIK1euVJMmTWztX3755VXrd7amTZvq+++/l9VqtTuLtG/fPtty6fLhD0DZMQYJQKVJSEhQp06dNHPmTJ07d06BgYFKSEjQvHnzlJ2dfUn/48eP2/594sQJu2W+vr5q0aKFioqKLvt5d999tyRp1qxZdu0zZ868pG/z5s1lsVj0/fff29qys7Mvmc3a3d1dkmQYhq3NYrFowYIFl62jstxzzz3KyclRWlqare23337T66+/Ll9fX8XHx0uS6tWrJ0mlBkAAZcMZJACV6i9/+Yv++Mc/auHChXr88cc1Z84cdevWTVFRURo6dKiaNWum3Nxcbd68Wb/88ou+++47SVLbtm2VkJCgDh06qGHDhtq+fbuWL1+up5566rKfFR0drX79+umNN96QxWJRly5dlJ6ergMHDlzSt2/fvvrrX/+q+++/X88884wKCwv15ptvqlWrVtqxY4et35133ikPDw/dd999+tOf/qQzZ85o/vz5CgwMLDXkVaZhw4Zp3rx5GjRokDIyMhQREaHly5fr22+/1cyZM1W/fn1JFwaVt23bVmlpaWrVqpUaNmyodu3aqV27dlVaL1Cjufo2OgA138Xb/Ldt23bJspKSEqN58+ZG8+bNjd9++80wDMM4ePCgMWDAACM4ONioW7euERYWZtx7773G8uXLbetNmTLF6NSpk+Hv7294e3sbrVu3Nl566SWjuLjY1qe0W/LPnj1rPPPMM0ajRo0MHx8f47777jOOHDlS6m3vX3zxhdGuXTvDw8PDuPHGG43FixeXus2VK1caN998s+Hl5WVEREQYr7zyivHuu+8akoysrCxbv/Lc5n+1KQwut73c3Fxj8ODBRkBAgOHh4WFERUUZCxYsuGTdTZs2GR06dDA8PDy45R+oAJNh/O68MQAAABiDBAAA4IiABAAA4ICABAAA4ICABAAA4ICABAAA4ICABAAA4ICJIivIarXq6NGjql+/PtP6AwBQQxiGodOnTys0NPSSBz//HgGpgo4eParw8HBXlwEAACrgyJEjuuGGGy67nIBUQRen9D9y5Ij8/PxcXA0AACiL/Px8hYeH277HL4eAVEEXL6v5+fkRkAAAqGGuNjyGQdoAAAAOCEgAAAAOCEgAAAAOGIMEAKgVSkpKdP78eVeXARerW7eu3N3dr3k7BCQAQI1mGIZycnJ06tQpV5eCasLf31/BwcHXNE8hAQkAUKNdDEeBgYGqV68ek/dexwzDUGFhoY4dOyZJCgkJqfC2CEgAgBqrpKTEFo4aNWrk6nJQDXh7e0uSjh07psDAwApfbmOQNgCgxro45qhevXourgTVycXfh2sZk0ZAAgDUeFxWw+854/eBgAQAAOCAgAQAACpdRESEZs6c6eoyyoyABKDGyLac1aaDecq2nHV1KYBTHD9+XE888YSaNGkiT09PBQcHKykpSd9++62kC5eKPv74Y9cWWUYJCQkymUyXvH777TdXl1Yh3MUGoEZI23ZYY1fsktWQ3ExSap8opXRs4uqygGvywAMPqLi4WIsWLVKzZs2Um5ur9PR0nThxwtWlVcjQoUP1wgsv2LXVqVMzowZnkABUe9mWs7ZwJElWQxq3YjdnklCjnTp1St98841eeeUV9ejRQ02bNlWnTp00duxY/eEPf1BERIQk6f7775fJZLK9l6RPPvlEt956q7y8vNSsWTNNnjzZ7kzNa6+9pqioKPn4+Cg8PFx//vOfdebMGdvyhQsXyt/fX6tWrdKNN96oevXq6cEHH1RhYaEWLVqkiIgINWjQQM8884xKSkrKvE/16tVTcHCw3etyDh8+rN69e8vX11d+fn566KGHlJubK0myWCxyd3fX9u3bJUlWq1UNGzZU586dbesvXrxY4eHhZa6tvAhIAKq9rLwCWzi6qMQwdCiv0DUFodaqysu4vr6+8vX11ccff6yioqJLlm/btk2StGDBAmVnZ9vef/PNNxowYICGDx+uH374QfPmzdPChQv10ksv2dZ1c3PTrFmztGfPHi1atEjr16/X6NGj7bZfWFioWbNmaenSpVqzZo02bNig+++/X6tXr9bq1av1/vvva968eVq+fLnT991qtap37946efKkvvrqK61du1Y//fSTUlJSJElms1nR0dHasGGDJGnXrl0ymUzKzMy0Bb2vvvpK8fHxTq/tIgISgGovMsBHbg537bqbTIoIYO4bOE/atsPqOnW9Hp6/RV2nrlfatsOV+nl16tTRwoULtWjRIvn7+6tr164aN26cvv/+e0lS48aNJf33sRkX30+ePFljxozRwIED1axZM/Xs2VMvvvii5s2bZ9v2iBEj1KNHD0VEROj222/XlClT9I9//MPu88+fP68333xTt9xyi7p3764HH3xQGzdu1DvvvKO2bdvq3nvvVY8ePfTl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Plz6M5o8PT3l6elZpv0CAAA1W7nOIHXv3l379+9XZmamMjMz1aVLF/3000+295mZmdq5c2eZt+fh4aEOHTooPT3d1ma1WpWenq64uLhS14mLi7PrL0lr16619Y+MjFRwcLBdn/z8fG3ZssXWp0OHDvL09NT+/fttfc6fP69Dhw6padOmZa4fAADUTuU6g7RhwwanFzBy5EgNHDhQMTEx6tSpk2bOnKmCggINHjxYkjRgwACFhYUpNTVVkjR8+HDFx8dr+vTp6tWrl5YuXart27frrbfeknRhosoRI0ZoypQpatmypSIjIzVhwgSFhoba5jny8/PT448/rkmTJik8PFxNmzbVq6++Kkn64x//6PR9BAAANUuFn8VWFn5+ftq5c6eaNWt22T4pKSk6fvy4Jk6cqJycHEVHR2vNmjW2QdaHDx+Wm9t/T3R16dJFS5Ys0fjx4zVu3Di1bNlSH3/8sdq1a2frM3r0aBUUFGjYsGE6deqUunXrpjVr1sjLy8vW59VXX1WdOnXUv39/nT17VrGxsVq/fr0aNGhQCUcCAADUJGV+1EhF1K9fX999990VA1JNxaNGAACoeZz+qBEAAIDrBQEJAADAAQEJAADAQaUGJJPJVJmbBwAAqBSVGpAqcfw3AABApanUgPTPf/5TYWFhlfkRAAAATleheZAMw9Dy5cv15Zdf6tixY7Znm120YsUKSVK3bt2uvUIAAIAqVqGANGLECM2bN089evRQUFAQY40AAECtUqGA9P7772vFihW65557nF0PAACAy1VoDJLZbK6Vs2MDAABIFQxIzz//vCZPnqyzZ886ux4AAACXq9AltoceekgffvihAgMDFRERobp169ot37Fjh1OKAwAAcIUKBaSBAwcqIyNDjz76KIO0AQBArVOhgPTZZ5/p888/5zZ+AABQK1VoDFJ4eLj8/PycXQsAAEC1UKGANH36dI0ePVqHDh1ycjkAAACuV6FLbI8++qgKCwvVvHlz1atX75JB2idPnnRKcQAAAK5QoYA0c+ZMJ5cBAABQfVT4LjYAAIDaqkIB6ffOnTun4uJiuzYGcAMAgJqsQoO0CwoK9NRTTykwMFA+Pj5q0KCB3QsAAKAmq1BAGj16tNavX68333xTnp6eevvttzV58mSFhobqvffec3aNAAAAVapCl9g+/fRTvffee0pISNDgwYN12223qUWLFmratKk++OADPfLII86uEwAAoMpU6AzSyZMn1axZM0kXxhtdvK2/W7du+vrrr51XHQAAgAtUKCA1a9ZMWVlZkqTWrVvrH//4h6QLZ5b8/f2dVhwAAIArVCggDR48WN99950kacyYMZozZ468vLz07LPP6i9/+YtTCwQAAKhqJsMwjGvdyM8//6yMjAy1aNFCN998szPqqvby8/NlNptlsViY1gAAgBqirN/fTpkHqWnTpmratOm1bgoAAKBaqNAltpKSEr344osKCwuTr6+vfvrpJ0nShAkT9M477zi1QAAAgKpWoYD00ksvaeHChZo2bZo8PDxs7e3atdPbb7/ttOIAAABcoUIB6b333tNbb72lRx55RO7u7rb29u3ba9++fU4rDgAAwBUqFJB+/fVXtWjR4pJ2q9Wq8+fPX3NRAAAArlShgNS2bVt98803l7QvX75ct9xyyzUXBQAA4EoVuott4sSJGjhwoH799VdZrVatWLFC+/fv13vvvadVq1Y5u0YAAIAqVaEzSL1799ann36qdevWycfHRxMnTtTevXv16aefqmfPns6uEQAAoEo5ZaLI6xETRQIAUPOU9fu7ws9iO3HixCXtp06dsj3EFgAAoKaqUEA6dOiQSkpKLmkvKirSr7/+es1FAQAAuFK5BmmvXLnS9u/PP/9cZrPZ9r6kpETp6emKiIhwWnEAAACuUK6AlJycLEkymUwaOHCg3bK6desqIiJC06dPd1pxAAAArlCugGS1WiVJkZGR2rZtmwICAiqlKAAAAFcq1xikzZs3a9WqVcrKyrKFo/fee0+RkZEKDAzUsGHDVFRUVCmFAgAAVJVyBaTJkydrz549tve7du3SkCFDlJiYqDFjxujTTz9Vamqq04sEAACoSuUKSN99953uuOMO2/ulS5cqNjZW8+fP18iRIzVr1iz94x//cHqRAAAAValcAenf//63goKCbO+/+uor3X333bb3HTt21JEjR5xXHQAAgAuUKyAFBQUpKytLklRcXKwdO3aoc+fOtuWnT59W3bp1nVshAABAFStXQLrnnns0ZswYffPNNxo7dqzq1aun2267zbb8+++/V/PmzZ1eJAAAQFUq123+L774ovr06aP4+Hj5+vpq0aJF8vDwsC1/9913deeddzq9SAAAgKpUoYfVWiwW+fr6yt3d3a795MmT8vX1tQtN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E6P58+dryZIlpY6D+b//+79L3rdp00aSlJGRIavVqunTp6tz585q1aqVjh49esk2wsPD9fjjj2vFihV67rnnbAFNkho3bqyBAwdq8eLFmjlzpt566y1n7rLNt99+q969e+vRRx9V+/bt1axZM/3rX/+yLW/ZsqW8vb1tA9QdeXh4SLpwJupymjdvLg8PD3377be2tvPnz2vbtm1q27atk/YEQB1XFwCgZisqKlJOTo6kC3eMzZ49W2fOnNF9991n6/PYY4/pqaeeko+Pj+6///5LtvHtt99q2rRpSk5O1tq1a7Vs2TJ99tlnkqQWLVro/Pnzev3113Xffffp22+/1dy5c+3WHzFihO6++261atVK//73v/Xll1/aAtbEiRPVoUMH3XTTTSoqKtKqVatsy5ytZcuWWr58uTZt2qQGDRrotddeU25uri24eHl56a9//atGjx4tDw8Pde3aVcePH9eePXs0ZMgQBQYGytvbW2vWrNENN9wgLy8vmc1mu8/w8fHRE088ob/85S9q2LChmjRpomnTpqmwsFBDhgyplP0CrkecQQJwTdasWaOQkBCFhIQoNjZW27Zt07Jly2y3qEtSv379VKdOHfXr109eXl6XbOO5557T9u3bdcstt2jKlCl67bXXlJSUJElq3769XnvtNb3yyitq166dPvjgA6WmptqtX1JSoieffFJt2rTRXXfdpVatWumNN96QdOGszNixY3XzzTere/fucnd319KlSyvlWIwfP1633nqrkpKSlJCQoODg4EtmwJ4wYYKee+45TZw4UW3atFFKSoptXFCdOnU0a9YszZs3T6Ghoerdu3epnzN16lQ98MAD6t+/v2699VYdOHBAn3/+uRo0aFAp+wVcj0yGYRiuLgJA7Xbo0CE1b95c27Zt06233mq3LCIiQiNGjNCIESNcUxwAlIJLbAAqzfnz53XixAmNHz9enTt3viQcAUB1xSU2AJXm22+/VUhIiLZt23bJuCFXe/nll+Xr61vq6+6773Z1eQBcjEtsAK5LJ0+evGTm6Yu8vb0VFhZWxRUBqE4ISAAAAA64xAYAAOCAgAQAAOCAgAQAAOCAgAQAAOCAgAQAAOCAgAQAAOCAgAQAAOCAgAQAAODg/wM7OCwNz5HaCQAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_45.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAHHCAYAAABZbpmkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABF5klEQVR4nO3de5yN9d7/8fea88nMYI6EIYRtUA41lEPUJClGe+sk2tRdUTmVQyrJNrLvoiPdtoadxCbdSTog6WZUE9khaZtmQmaMYVtjzBhj5vv7oz3rZ4XMrJk1a+aa1/PxWI+HdV3Xuq7P9W2x3n2v7/W9bMYYIwAAAIvy8nQBAAAA7kTYAQAAlkbYAQAAlkbYAQAAlkbYAQAAlkbYAQAAlkbYAQAAlkbYAQAAlkbYAQAAlkbYAVAjTJ8+XTabrVzb2mw2TZ8+3a319O7dW717966x+wNQfoQdAE4WL14sm83mePn4+Khx48YaMWKEfvnlF0+XV+PExcU5tVdUVJSuu+46vffee1Wy/4KCAk2fPl2ff/55lewPqIsIOwAuaMaMGXrrrbe0YMEC9e/fX0uXLlWvXr10+vRptxxv2rRpKiwsdMu+3a1Tp05666239NZbb2nixIk6fPiwkpKStGDBgkrvu6CgQM8++yxhB6gEH08XAKBm6t+/v7p06SJJGjVqlCIiIvT8889rzZo1+tOf/lTlx/Px8ZGPT+38J6lx48a65557HO/vvfdetWzZUnPnztWDDz7owcoASPTsACin6667TpKUnp7utPyHH37Q7bffrgYNGiggIEBdunTRmjVrnLYpLi7Ws88+q1atWikgIEANGzbUtddeq/Xr1zu2udCYnaKiIo0bN06RkZGqV6+ebr31Vh06dOi82kaMGKG4uLjzll9onykpKbr++usVFRUlf39/tWvXTvPnz69QW1xKTEyM2rZtq4yMjN/dLicnRyNHjlR0dLQCAgLUsWNHLVmyxLE+MzNTkZGRkqRnn33WcanM3eOVAKupnf8bBaDaZWZmSpLq16/vWLZnzx716NFDjRs31uTJkxUcHKx//OMfGjRokN59910NHjxY0q+hIzk5WaNGjVK3bt2Ul5enb775Rjt27NANN9xw0WOOGjVKS5cu1V133aXu3bvrs88+04ABAyp1HvPnz9cf/vAH3XrrrfLx8dEHH3yghx9+WKWlpRo9enSl9l2muLhYBw8eVMOGDS+6TWFhoXr37q39+/drzJgxat68uVauXKkRI0boxIkTeuyxxxQZGan58+froYce0uDBg5WUlCRJ6tChQ5XUCdQZBgDOkZKSYiSZDRs2mKNHj5qDBw+aVatWmcjISOPv728OHjzo2LZv374mPj7enD592rGstLTUdO/e3bRq1cqxrGPHjmbAgAG/e9xnnnnGnPtP0s6dO40k8/DDDzttd9dddxlJ5plnnnEsGz58uGnWrNkl92mMMQUFBedtl5iYaFq0aOG0rFevXqZXr16/W7MxxjRr1szceOON5ujRo+bo0aPmn//8p7njjjuMJPPII49cdH/z5s0zkszSpUsdy86cOWMSEhJMSEiIycvLM8YYc/To0fPOF0DFcBkLwAX169dPkZGRatKkiW6//XYFBwdrzZo1uuyyyyRJx48f12effaY//elPOnnypHJzc5Wbm6tjx44pMTFR//rXvxx3b4WHh2vPnj3617/+Ve7jr1u3TpL06KOPOi0fO3Zspc4rMDDQ8We73a7c3Fz16tVLP/30k+x2u0v7/PTTTxUZGanIyEh17NhRK1eu1LBhw/T8889f9DPr1q1TTEyM7rzzTscyX19fPfroo8rPz9fmzZtdqgXA+biMBeCCXnvtNbVu3Vp2u11vvvmmvvjiC/n7+zvW79+/X8YYPfXUU3rqqacuuI+cnBw1btxYM2bM0G233abWrVurffv2uummmzRs2LDfvRzz888/y8vLS5dffrnT8iuuuKJS57V161Y988wz2rZtmwoKCpzW2e12hYWFVXifV199tWbOnCmbzaagoCC1bdtW4eHhv/uZn3/+Wa1atZKXl/P/c7Zt29axHkDVIOwAuKBu3bo57sYaNGiQrr32Wt11113at2+fQkJCVFpaKkmaOHGiEhMTL7iPli1bSpJ69uyp9PR0vf/++/r000/1t7/9TXPnztWCBQs0atSoStd6sckIS0pKnN6np6erb9++atOmjV588UU1adJEfn5+WrdunebOnes4p4qKiIhQv379XPosAPcj7AC4JG9vbyUnJ6tPnz569dVXNXnyZLVo0ULSr5deyvND36BBA91333267777lJ+fr549e2r69OkXDTvNmjVTaWmp0tPTnXpz9u3bd9629evX14kTJ85b/tvekQ8++EBFRUVas2aNmjZt6li+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tQoJCdHZs2dVVFQkLy8vvfrqqyoqKtKsWbO0YcMGJSQkSJJatGihLVu26I033lCvXr0cjy8ICwtTTEyMJOn1119XkyZN9Oqrr8pms6lNmzY6fPiwJk2apKefftrxQ96qVSvNmTPHUUdWVpYkaebMmerRo4ckaeTIkZoyZYrS09PVokULSdLtt9+uTZs2adKkSeWqscyMGTN0ww03VLq92rRpo5MnT+rYsWOKioq65PaRkZGS/v/jHsqMGjVKDz74oF588UX5+/trx44d2rVrl95///1K1wigfJpHBMvLJqfA422zKS6CedPqGv4Xsxp4siu1T58+2rlzp7766isNHz5c9913n4YMGaL9+/eroKBAN9xwg0JCQhyvv//970pPT7/o/vbu3auEhASneWF69Oih/Px8HTp0yLGsc+fOF/z8ub0u0dHRCgoKcgSdsmVlj06oSI1dunSpWMNchDG//keq7Lw3gwYNkre3t9577z1Jvw6K7tOnj+OyFwD3iw0LVHJSvLz/8/fZ22bTrKT2ig0L9HBlqG707FSD3+tKdfdfuuDgYLVs2VKS9Oabb6pjx45atGiR2rdvL0n68MMP1bhxY6fP+Pv7V8lxL8TX19fx57K7xM5ls9kcY1ry8/PLXePFjldRe/fuVWhoqOPRIF5eXo4AVKY8sxz7+fnp3nvvVUpKipKSkrRs2TK99NJLVVIjgPIb2rWperaOVGZugeIiggg6dRRhpxrUlK5ULy8vTZ06VePHj9ePP/4of39/HThwwOly0KW0bdtW7777rowxjt6PrVu3ql69epW6Y+tC2rVr51KNrsrJydGyZcs0aNAgx+W4yMhIxyU4ScrLy1NGRobT53x9fS84xmfUqFFq3769Xn/9dZ09e1ZJSUnuPQEAFxQbFkjIqeO4jFUNalJX6h//+Ed5e3vrjTfe0MSJEzVu3DgtWbJE6enp2rFjh1555RUtWbLkop9/+OGHdfDgQT3yyCP64Ycf9P777+uZZ57R+PHjq3zgbb169VyqsTyMMcrOzlZWVpb27t2rN998U927d1dYWJhmz57t2O7666/XW2+9pf/7v//Trl27NHz48PMe1BkXF6eNGzcqOztb//73vx3L27Ztq2uuuUaTJk3SnXfe6XjgJwCgetGzU01qSleqj4+PxowZozlz5igjI0ORkZFKTk7WTz/9pPDwcF111VWaOnXqRT/fuHFjrVu3To8//rg6duyoBg0aaOTIkZo2bZpb6n3uuecqXGN55OXlKTY2VjabTaGhobriiis0fPhwPfbYYwoNDXVsN2XKFGVkZOiWW25RWFiYnnvuufN6dl544QWNHz9eCxcuVOPGjZWZmelYV3ZL+5///OdK1QsAcJ3N/HZAQh2Ul5ensLAw2e12px86STp9+rQyMjLUvHlzBQQEeKhC1FbPPfecVq5cqe++++53t+N7BgAV93u/3+fiMhbgBvn5+dq9e7deffVVPfLII54uBwDqNMIOLOcPf/iD063q577efvvtaqlhzJgx6ty5s3r37s0lLADwMMbswHLWrVt30dvDo6Ojq6WGxYsXW+bBqQBQ2xF2YDnNmjXzdAkAgBqEy1jlxDhuuBPfLwBwH8LOJZTN8Hvuk7iBqlb2/frtjNIAgMrjMtYleHt7Kzw83PG8pqCgoEo/NwkoY4xRQUGBcnJyFB4eft6EhQCAyiPslEPZ06zLAg9Q1X771HQAQNUh7JSDzWZTbGysoqKiyvUQSKAifH196dEBADci7FSAt7c3P0oAANQyDFAGAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBANR6WfZCpabnKste6OlSUAPxIFAAQK22Iu2ApqzepVIjedmk5KR4De3a1NNloQahZwcAUGtl2QsdQUeSSo00dfVuenjghLADAKi1MnJPOYJOmRJjlJlb4JmCUCMRdgAAtVbziGB52ZyXedtsiosI8kxBqJEIOwCAWis2LFDJSfHytv2aeLxtNs1Kaq/YsEAPV4aahAHKAIBabWjXpurZOlKZuQWKiwgi6OA8hB0AQK0XGxZIyMFFcRkLAABYGmEHAABYGmEHAABYGmEHAABYGmEHAABYGmEHAABYGmEHAABYGmEHAABYGmEHAABYGmEHAABYGmEHAABYGmEHAABYGmEHAABYGmEHAABYGmEHAABYGmEHAABYGmEHAABYWo0KO7Nnz5bNZtPYsWMdy06fPq3Ro0erYcOGCgkJ0ZAhQ3TkyBGnzx04cEADBgxQUFCQoqKi9Pjjj+vs2bPVXD0AAKiJakzYSUtL0xtvvKEOHTo4LR83bpw++OADrVy5Ups3b9bhw4eVlJTkWF9SUqIBAwbozJkzSk1N1ZIlS7R48WI9/fTT1X0KAACgBqoRYSc/P1933323Fi5cqPr16zuW2+12LVq0SC+++KKuv/56de7cWSkpKUpNTdWXX34pSfr000/1/fffa+nSperUqZP69++v5557Tq+99prOnDnjqVMCAAA1RI0IO6NHj9aAAQPUr18/p+Xbt29XcXGx0/I2bdqoadOm2rZtmyRp27Ztio+PV3R0tGObxMRE5eXlac+ePRc8XlFRkfLy8pxeAADAmnw8XcDy5cu1Y8cOpaWlnbcuOztbfn5+Cg8Pd1oeHR2t7OxsxzbnBp2y9WXrLiQ5OVnPPvtsFVQPAABqOo/27Bw8eFCPPfaY3n77bQUEBFTbcadMmSK73e54HTx4sNqODQAAqpdHw8727duVk5Ojq666Sj4+PvLx8dHmzZv18ssvy8fHR9HR0Tpz5oxOnDjh9LkjR44oJiZGkhQTE3Pe3Vll78u2+S1/f3+FhoY6vQAAgDV5NOz07dtXu3bt0s6dOx2vLl266O6773b82dfXVxs3bnR8Zt++fTpw4IASEhIkSQkJCdq1a5dycnIc26xfv16hoaFq165dtZ8TAACoWTw6ZqdevXpq376907Lg4GA1bNjQsXzkyJEaP368GjRooNDQUD3yyCNKSEjQNddcI0m68cYb1a5dOw0bNkxz5sxRdna2pk2bptGjR8vf37/azwkAANQsHh+gfClz586Vl5eXhgwZoqKiIiUmJur11193rPf29tbatWv10EMPKSEhQcHBwRo+fLhmzJjhwaoBABWVZS9URu4pNY8IVmxYoKfLgYXYjDHG00V4Wl5ensLCwmS32xm/AwAesCLtgKas3qVSI3nZpOSkeA3t2tTTZaGGK+/vd42YZwcAUHdl2QsdQUeSSo00dfVuZdkLPVsYLIOwAwDwqIzcU46gU6bEGGXmFnimIFgOYQcA4FHNI4LlZXNe5m2zKS4iyDMFwXIIOwAAj4oNC1RyUry8bb8mHm+bTbOS2jNIGVWmxt+NBQCwvqFdm6pn60hl5hYoLiKIoIMqRdgBANQIsWGBhBy4BZexAACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApbkcduLi4jRjxgwdOHCgKusBAACoUi6HnbFjx2r16tVq0aKFbrjhBi1fvlxFRUVVWRsAAEClVSrs7Ny5U19//bXatm2rRx55RLGxsRozZox27NhRlTUCAAC4zGaMMVWxo+LiYr3++uuaNGmSiouLFR8fr0cffVT33XefbDZbVRzCbfLy8hQWFia73a7Q0FBPlwMAAMqhvL/fPpU9UHFxsd577z2lpKRo/fr1uuaaazRy5EgdOnRIU6dO1YYNG7Rs2bLKHgYAAMAlLoedHTt2KCUlRe+88468vLx07733au7cuWrTpo1jm8GDB6tr165VUigAAIArXA47Xbt21Q033KD58+dr0KBB8vX1PW+b5s2b64477qhUgQAAAJXhctj56aef1KxZs9/dJjg4WCkpKa4eAgDgJln2QmXknlLziGDFhgV6uhzArVy+G6tPnz46duzYectPnDihFi1aVKoooKbLshcqNT1XWfZCT5cCVNiKtAPqMfsz3bXwK/WY/ZlWpDFfGqzN5Z6dzMxMlZSUnLe8qKhIv/zyS6WKAmqyFWkHNGX1LpUaycsmJSfFa2jXpp4uCyiXLHuh4/srSaVGmrp6t3q2jqSHB5ZV4bCzZs0ax58/+eQThYWFOd6XlJRo48aNiouLq5LigJqGHwrUdhm5pxzf3zIlxigzt4DvMCyrwpexBg0apEGDBslms2n48OGO94MGDdIdd9yh9evX64UXXijXvubPn68OHTooNDRUoaGhSkhI0EcffeRYf/r0aY0ePVoNGzZUSEiIhgwZoiNHjjjt48CBAxowYICCgoIUFRWlxx9/XGfPnq3oaQHl8ns/FEBt0DwiWF6/mfrM22ZTXESQZwoCqkGFw05paalKS0vVtGlT5eTkON6XlpaqqKhI+/bt0y233FKufV122WWaPXu2tm/frm+++UbXX3+9brvtNu3Zs0eS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klRqpKmrd9PDAwCoNoQduFVG7ilH0ClTYowycws8UxAAoM4h7MCtmkcEy8vmvMzbZlNcRJBnCgIA1DmEHbhVbFigkpPi5W37NfF422yaldResWGBHq4MAFBXMEAZbje0a1P1bB2pzNwCxUUEEXQAANWKsINqERsWSMgBAHgEl7EAAIClEXYAAIClEXYAAIClEXYAAIClEXYAAIClEXYAAIClEXYAAIClEXYAAIClEXYAAIClEXYAAIClEXYAAICl8WwsScYYSVJeXp6HKwEAAOVV9rtd9jt+MYQdSSdPnpQkNWnSxMOVAACAijp58qTCwsIuut5mLhWH6oDS0lIdPnxY9erVk81mO299Xl6emjRpooMHDyo0NNQDFdZstM+l0UaXRhtdGm10abTRpVmpjYwxOnnypBo1aiQvr4uPzKFnR5KXl5cuu+yyS24XGhpa678Y7kT7XBptdGm00aXRRpdGG12aVdro93p0yjBAGQAAWBphBwAAWBphpxz8/f31zDPPyN/f39Ol1Ei0z6XRRpdGG10abXRptNGl1cU2YoAyAACwNHp2AACApRF2AACApRF2AACApRF2AACApRF2JL322muKi4tTQECArr76an399dcX3XbPnj0aMmSI4uLiZLPZNG/evOor1IMq0kYLFy7Uddddp/r166t+/frq16/f725vFRVpo9WrV6tLly4KDw9XcHCwOnXqpLfeeqsaq/WMirTRuZYvXy6bzaZBgwa5t8AaoCJttHjxYtlsNqdXQEBANVbrGRX9Hp04cUKjR49WbGys/P391bp1a61bt66aqvWMirRR7969z/se2Ww2DRgwoBordjNTxy1fvtz4+fmZN9980+zZs8fcf//9Jjw83Bw5cuSC23/99ddm4sSJ5p133jExMTFm7ty51VuwB1S0je666y7z2muvmW+//dbs3bvXjBgxwoSFhZlDhw5Vc+XVp6JttGnTJrN69Wrz/fffm/3795t58+YZb29v8/HHH1dz5dWnom1UJiMjwzRu3Nhcd9115rbbbqueYj2kom2UkpJiQkNDTVZWluOVnZ1dzVVXr4q2UVFRkenSpYu5+eabzZYtW0xGRob5/PPPzc6dO6u58upT0TY6duyY03do9+7dxtvb26SkpFRv4W5U58NOt27dzOjRox3vS0pKTKNGjUxycvIlP9usWbM6EXYq00bGGHP27FlTr149s2TJEneV6HGVbSNjjLnyyivNtGnT3FFejeBKG509e9Z0797d/O1vfzPDhw+3fNipaBulpKSYsLCwaqquZqhoG82fP9+0aNHCnDlzprpK9LjK/ns0d+5cU69ePZOfn++uEqtdnb6MdebMGW3fvl39+vVzLPPy8lK/fv20bds2D1ZWc1RFGxUUFKi4uFgNGjRwV5keVdk2MsZo48aN2rdvn3r27OnOUj3G1TaaMWOGoqKiNHLkyOoo06NcbaP8/Hw1a9ZMTZo00W233aY9e/ZUR7ke4UobrVmzRgkJCRo9erSio6PVvn17zZo1SyUlJdVVdrWqin+zFy1apDvuuEPBwcHuKrPa1emwk5ubq5KSEkVHRzstj46OVnZ2toeqqlmqoo0mTZqkRo0aOf3lsxJX28hutyskJER+fn4aMGCAXnnlFd1www3uLtcjXGmjLVu2aNGiRVq4cGF1lOhxrrTRFVdcoTfffFPvv/++li5dqtLSUnXv3l2HDh2qjpKrnStt9NNPP2nVqlUqKSnRunXr9NRTT+mFF17QzJkzq6PkalfZf7O//vpr7d69W6NGjXJXiR7BU8/hVrNnz9by5cv1+eef14mBkxVRr1497dy5U/n5+dq4caPGjx+vFi1aqHfv3p4uzeNOnjypYcOGaeHChYqIiPB0OTVWQkKCEhISHO+7d++utm3b6o033tBzzz3nwcpqjtLSUkVFRel//ud/5O3trc6dO+uXX37RX//6Vz3zzDOeLq/GWbRokeLj49WtWzdPl1Kl6nTYiYiIkLe3t44cOeK0/MiRI4qJifFQVTVLZdrov//7vzV79mxt2LBBHTp0cGeZHuVqG3l5eally5aSpE6dOmnv3r1KTk62ZNipaBulp6crMzNTAwcOdCwrLS2VJPn4+Gjfvn26/PLL3Vt0NauKf498fX115ZVXav/+/e4o0eNcaaPY2Fj5+vrK29vbsaxt27bKzs7WmTNn5Ofn59aaq1tlvkenTp3S8uXLNWPGDHeW6BF1+jKWn5+fOnfurI0bNzqWlZaWauPGjU7/t1SXudpGc+bM0XPPPaePP/5YXbp0qY5SPaaqvkelpaUqKipyR4keV9E2atOmjXbt2qWdO3c6Xrfeeqv69OmjnTt3qkmTJtVZfrWoiu9RSUmJdu3apdjYWHeV6VGutFGPHj20f/9+R1iWpB9//FGxsbGWCzpS5b5HK1euVFFRke655x53l1n9PD1C2tOWL19u/P39zeLFi833339vHnjgARMeHu64fXPYsGFm8uTJju2LiorMt99+a7799lsTGxtrJk6caL799lvzr3/9y1On4HYVbaPZs2cbPz8/s2rVKqfbGU+ePOmpU3C7irbRrFmzzKeffmrS09PN999/b/77v//b+Pj4mIULF3rqFNyuom30W3XhbqyKttGzzz5rPvnkE5Oenm62b99u7rjjDhMQEGD27NnjqVNwu4q20YEDB0y9evXMmDFjzL59+8zatWtNVFSUmTlzpqdOwe1c/bt27bXXmqFDh1Z3udWizocdY4x55ZVXTNOmTY2fn5/p1q2b+fLLLx3revXqZYYPH+54n5GRYSSd9+rVq1f1F16NKtJGzZo1u2AbPfPMM9VfeDWqSBs9+eSTpmXLliYgIMDUr1/fJCQkmOXLl3ug6upVkTb6rboQdoypWBuNHTvWsW10dLS5+eabzY4dOzxQdfWq6PcoNTXVXH311cbf39+0aNHC/OUvfzFnz56t5qqrV0Xb6IcffjCSzKefflrNlVYPmzHGeKhTCQAAwO3q9JgdAABgfYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAKhGI0aM0KBBgzxdBlCnEHYASPr1R9hmszleDRs21E033aTvvvvO06VViXPPrex17bXXuu14mZmZstls2rlzp9Pyl156SYsXL3bbcQGcj7ADwOGmm25SVlaWsrKytHHjRvn4+OiWW27xdFlVJiUlxXF+WVlZWrNmzQW3Ky4udlsNYWFhCg8Pd9v+AZyPsAPAwd/fXzExMYqJiVGnTp00efJkHTx4UEePHtX111+vMWPGOG1/9OhR+fn5OZ6wHBcXp+eee0533nmngoOD1bhxY7322mtOn3nxxRcVHx+v4OBgNWnSRA8//LDy8/Md63/++WcNHDhQ9evXV3BwsP7whz9o3bp1kqR///vfuvvuuxUZGanAwEC1atVKKSkp5T6/8PBwx/nFxMSoQYMGjh6YFStWqFevXgoICNDbb7+tY8eO6c4771Tjxo0VFBSk+Ph4vfPOO077Ky0t1Zw5c9SyZUv5+/uradOm+stf/iJJat68uSTpyiuvlM1mU+/evSWdfxmrqKhIjz76qKKiohQQEKBrr71WaWlpjvWff/65bDabNm7cqC5duigoKEjdu3fXvn37yn3eQF1H2AFwQfn5+Vq6dKlatmyphg0batSoUVq2bJmKiooc2yxdulSNGzfW9ddf71j217/+VR07dtS3336ryZMn67HHHtP69esd6728vPTyyy9rz549WrJkiT777DM98cQTjvWjR49WUVGRvvjiC+3atUvPP/+8QkJCJElPPfWUvv/+e3300Ufau3ev5s+fr4iIiCo537Ja9+7dq8TERJ0+fVqdO3fWhx9+qN27d+uBBx7QsGHD9PXXXzs+M2XKFM2ePdtR17JlyxQdHS1Jju02bNigrKwsrV69+oLHfeKJJ/Tuu+9qyZIl2rFjh1q2bKnExEQdP37cabsnn3xSL7zwgr755hv5+Pjoz3/+c5WcN1AnePpJpABqhuHDhxtvb28THBxsgoODjSQTGxtrtm/fbowxprCw0NSvX9+sWLHC8ZkOHTqY6dOnO943a9bM3HTTTU77HTp0qOnfv/9Fj7ty5UrTsGFDx/v4+HinfZ5r4MCB5r777nPp/CSZgIAAx/kFBweb9957z2RkZBhJZt68eZfcx4ABA8yECROMMcbk5eUZf39/s3DhwgtuW7bfb7/91mn5uU9vz8/PN76+vubtt992rD9z5oxp1KiRmTNnjjHGmE2bNhlJZsOGDY5tPvzwQyPJFBYWVqQJgDqLnh0ADn369NHOnTu1c+dOff3110pMTFT//v31888/KyAgQMOGDdObb74pSdqxY4d2796tESNGOO0jISHhvPd79+51vN+wYYP69u2rxo0bq169eho2bJiOHTumgoICSdKjjz6qmTNnqkePHnrmmWecBkg/9NBDWr58uTp16qQnnnhCqampFTq/uXPnOs5v586duuGGGxzrunTp4rRtSUmJnnvuOcXHx6tBgwYKCQnRJ598ogMHDkiS9u7dq6KiIvXt27dCNZwrPT1dxcXF6tGjh2OZr6+vunXr5tRmktShQwfHn2NjYyVJOTk5Lh8bqEsIOwAcgoOD1bJlS7Vs2VJdu3bV3/72N506dUoLFy6UJI0aNUrr16/XoUOHlJKSouuvv17NmjUr9/4zMzN1yy23qEOHDnr33Xe1fft2x5ieM2fOOI7x008/adiwYdq1a5e6dOmiV155RZIcwWvcuHE6fPiw+vbtq4kTJ5b7+DExMY7za9mypYKDg53O/Vx//etf9dJLL2nSpEnatGmTdu7cqcTEREedgYGB5T5uVfD19XX82WazSfp1zBCASyPsALgom80mLy8vFRYWSpLi4+PVpUsXLVy4UMuWLbvguJEvv/zyvPdt27aVJG3fvl2lpaV64YUXdM0116h169Y6fPjwefto0qSJHnzwQa1evVoTJkxwhC1JioyM1PDhw7V06VLNmzdP//M//1OVp+ywdetW3XbbbbrnnnvUsWNHtWjRQj/++KNjfatWrRQYGOgYnP1bfn5+kn7tIbqYyy+/XH5+ftq6datjWXFxsdLS0tSuXbsqOhMAPp4uAEDNUVRUpOzsbEm/3vn06quvKj8/XwMHDnRsM2rUKI0ZM0bBwcEaPHjwefvYunWr5syZo0GDBmn9+vVauXKlPvzwQ0lSy5YtVVxcrFdeeUUDBw7U1q1btWDBAqfPjx07Vv3791fr1q3173//W5s2bXKEpaefflqdO3fWH/7wBxUVFWnt2rWOdVWtVatWWrVqlVJTU1W/fn29+OKLOnLkiCOEBAQEaNKkSXriiSfk5+enHj166OjRo9qzZ49GjhypqKgoBQYG6uOPP9Zll12mgIAAhYWFOR0jODhYDz30kB5//HE1aNBATZs21Zw5c1RQUKCRI0e65byAuoieHQAOH3/8sWJjYxUbG6urr75aaWlpWrlypeO2aUm688475ePjozvvvFMBAQHn7WPChAn65ptvdOWVV2rmzJl68cUXlZiYKEnq2LGjXnzxRT3//PNq37693n77bSUnJzt9vqSkRKNHj1bbtm110003qXXr1nr99dcl/dpbMmXKFHXo0EE9e/aUt7e3li9f7pa2mDZtmq666iolJiaqd+/eiomJOW/m46eeekoTJkzQ008/rbZt22ro0KGOcTQ+Pj56+eWX9cYbb6hRo0a67bbbLnic2bNna8iQIRo2bJiuuuoq7d+/X5988onq16/vlvMC6iKbMcZ4uggAtUdmZqYuv/xypaWl6aqrrnJaFxcXp7Fjx2rs2LGeKQ4ALoDLWADKpbi4WMeOHdO0adN0zTXXnBd0AKCm4jIWgHLZunWrYmNjlZaWdt44G0+bNWuWQkJCLvjq37+/p8sD4GFcxgJQ6x0/fvy8GYfLBAYGqnHjxtVcEYCahLADAAAsjctYAADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0v4fDsn5zMSbAfAAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_46.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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eXrvvfdcbddff726dOmiJUuWyDAMRURE6IEHHtC0adMkSU6nU82bN1dycrJGjBhRbh05OTmy2+1yOp1q3Lhx9ewcAACoUZX5/q5Tc4CcTqckKTg4uMw+27ZtU3x8vFtbQkKCtm3bJklKT09XVlaWWx+73a64uDhXn58rLCxUTk6O2wIAAOqvOhOAiouLNWXKFPXu3VsdO3Yss19WVpaaN2/u1ta8eXNlZWW53r/UVlafn0tKSpLdbnctkZGRVdkVAABQx9WZADRp0iTt27dPa9asqfXPnjFjhpxOp2s5evRordcAAABqT514FtjkyZP13nvvafPmzbrqqqsu2zc8PFwnTpxwaztx4oTCw8Nd719qczgcbn26dOlS6jb9/Pzk5+dXhT0AAACexNQRIMMwNHnyZL399tv6+OOP1apVq3LX6dmzp1JTU93aNmzYoJ49e0qSWrVqpfDwcLc+OTk5+vzzz119AACAtZk6AjRp0iS99tpreuedd9SoUSPXHB273a6AgItPpx09erRatGihpKQkSdIf//hH9evXT88884wGDx6sNWvWaNeuXfr73/8uSbLZbJoyZYqefPJJtW3bVq1atdJjjz2miIgIDR061JT9BAAAdYupAWjx4sWSpP79+7u1r1ixQmPHjpUkZWRkyMvrfwNVvXr10muvvaZHH31UjzzyiNq2bat169a5TZx+6KGHlJeXp3vvvVdnzpxRnz59tH79evn7+9f4PgEAgLqvTt0HqK7gPkAAAHgej70PEAAAQG0gAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAUMdlOgu09XC2Mp0FZpdSb/iYXQAAAChbys4MzVj7pYoNycsmJQ2L1fDuLc0uy+MxAgQAQB2V6SxwhR9JKjakR9buYySoGhCAAACoo9Kz81zh55Iiw9CR7HxzCqpHCEAAANRRrUKC5GVzb/O22RQdEmhOQfUIAQgAgDrKYQ9Q0rBYedsupiBvm01zhnWUwx5gcmWej0nQAADUYcO7t1TfdqE6kp2v6JBAwk81IQABAFDHOewBBJ9qxikwAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABg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pYKCAklSbGysunXrpqVLl+q1114rdR7K9u3bS7y+5pprJEm7d+9WcXGxnnnmGV1//fVq166djh8/XmIbkZGRuu+++7R27Vo98MADrgAmSaGhoRozZoxWrVqlhQsX6u9//3t17rLLZ599piFDhujuu+9W586d1bp1a/3f//2f6/22bdsqICDANQH853x9fSVdHEkqS5s2beTr66vPPvvM1Xb+/Hnt3LlTHTp0qKY9ASBJPmYXAKDuKiwsVFZWlqSLV1y9+OKLys3NVWJioqvPhAkTNHnyZAUFBen2228vsY3PPvtM8+fP19ChQ7Vhwwa98cYbev/99yVJMTExOn/+vF544QUlJibqs88+05IlS9zWnzJligYNGqR27drphx9+0CeffOIKUI8//ri6du2qa6+9VoWFhXrvvfdc71W3tm3b6s0339TWrVvVtGlTLViwQCdOnHAFE39/fz388MN66KGH5Ovrq969e+vUqVPav3+/xo8fr7CwMAUEBGj9+vW66qqr5O/vL7vd7vYZQUFBmjhxoh588EEFBwerZcuWmj9/vvLz8zV+/Pga2S/AqhgBAlCm9evXy+FwyOFwKC4uTjt37tQbb7zhuoRbkkaOHCkfHx+NHDlS/v7+JbbxwAMPaNeuXbruuuv05JNPasGCBUpISJAkde7cWQsWLNC8efPUsWNH/eMf/1BSUpLb+kVFRZo0aZKuueYaDRw4UO3atdPf/vY3SRdHVWbMmKFOnTqpb9++8vb21po1a2rkWDz66KP6xS9+oYSEBPXv31/h4eEl7uD82GOP6YEHHtDjjz+ua665RsOHD3fNy/Hx8dHzzz+vl156SRERERoyZEipnzN37lz96le/0qhRo/SLX/xChw4d0ocffqimTZvWyH4BVmUzDMMwuwgAnuvIkSNq06aNdu7cqV/84hdu70VHR2vKlCmaMmWKOcUBQBk4BQbgipw/f16nT5/Wo48+quuvv75E+AGAuoxTYACuyGeffSaHw6GdO3eWmLdjtjlz5qhhw4alLoMGDTK7PAB1AKfAANQ7//3vf0vcOfmSgIAAtWjRopYrAlDXEIAAAIDlcAoMAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYzv8DllQCoU3QL88AAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_47.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAloAAAHHCAYAAABnS/bqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABN00lEQVR4nO3de1xVdb7/8fcG5CIKaCigoWBeU7ykQaiFjRSmOZLNLyPzdjSbGT3mWFPapHbHtNJj42Q5k/boplk2dcwsQx1PSkioec1Jw0sJKBobCURlf39/dFynHaigLLbA6/l47AfttT5rrc/6puy337322g5jjBEAAACqnZenGwAAAKirCFoAAAA2IWgBAADYhKAFAABgE4IWAACATQhaAAAANiFoAQAA2ISgBQAAYBOCFgAAgE0IWgDqvccff1wOh6NStQ6HQ48//rit/fTr10/9+vW7YvcHoPIIWgCuGEuWLJHD4bAePj4+atmypUaPHq0ffvjB0+1dcaKiotzGq3nz5rrxxhv1wQcfVMv+i4uL9fjjj2v9+vXVsj+gPiJoAbjiPPnkk3rjjTe0cOFC3XbbbXrzzTeVkJCgU6dO2XK8xx57TCUlJbbs227du3fXG2+8oTfeeEMPPfSQjhw5oqFDh2rhwoWXve/i4mI98cQTBC3gMvh4ugEA+LXbbrtNvXr1kiSNGzdOoaGheu655/TRRx/prrvuqvbj+fj4yMendv46bNmype69917r+ciRI9W2bVvNnTtXv//97z3YGQCJGS0AtcCNN94oSdq/f7/b8m+++Ua/+93v1LRpU/n7+6tXr1766KOP3GrOnDmjJ554Qu3atZO/v7+uuuoq9e3bV2vWrLFqKrpGq7S0VH/605/UrFkzNW7cWL/97W/1/fffl+tt9OjRioqKKre8on0uXrxYv/nNb9S8eXP5+fnp2muv1csvv1ylsbiY8PBwderUSdnZ2ResO3r0qMaOHauwsDD5+/urW7duev311631Bw4cULNmzSRJTzzxhPX2pN3XpwF1Te38JxyAeuXAgQOSpCZNmljLdu3apT59+qhly5aaOnWqAgMD9e677yo5OVnvv/++7rjjDkk/B57U1FSNGzdOsbGxKiws1FdffaUtW7bolltuOe8xx40bpzfffFP33HOPevfurbVr12rQoEGXdR4vv/yyOnfurN/+9rfy8fHRf//3f+uPf/yjXC6XJkyYcFn7PufMmTM6fPiwrrrqqvPWlJSUqF+/ftq3b58mTpyo6OhoLV++XKNHj1ZBQYEeeOABNWvWTC+//LL+8Ic/6I477tDQoUMlSV27dq2WPoF6wwDAFWLx4sVGkvn888/NsWPHzOHDh817771nmjVrZvz8/Mzhw4et2v79+5uYmBhz6tQpa5nL5TK9e/c27dq1s5Z169bNDBo06ILHnTlzpvnlr8Nt27YZSeaPf/yjW90999xjJJmZM2day0aNGmVat2590X0aY0xxcXG5uqSkJNOmTRu3ZQkJCSYhIeGCPRtjTOvWrc2tt95qjh07Zo4dO2a+/vprc/fddxtJ5j//8z/Pu7958+YZSebNN9+0lp0+fdrEx8ebRo0amcLCQmOMMceOHSt3vgCqhrcOAVxxEhMT1axZM0VGRup3v/udAgMD9dFHH+nqq6+WJJ04cUJr167VXXfdpZMnTyo/P1/5+fk6fvy4kpKS9O2331qfUgwJCdGuXbv07bffVvr4q1atkiRNmjTJbfnkyZMv67wCAgKs/3Y6ncrPz1dCQoK+++47OZ3OS9rnZ599pmbNmqlZs2bq1q2bli9frhEjRui555477zarVq1SeHi4UlJSrGUNGjTQpEmTVFRUpH/961+X1AuA8njrEMAVZ8GCBWrfvr2cTqdee+01bdiwQX5+ftb6ffv2yRij6dOna/r06RXu4+jRo2rZsqWefPJJDRkyRO3bt1eXLl00YMAAjRgx4oJvgR08eFBeXl665ppr3JZ36NDhss5r48aNmjlzptLT01VcXOy2zul0Kjg4uMr7jIuL09NPPy2Hw6GGDRuqU6dOCgkJueA2Bw8eVLt27eTl5f5v7U6dOlnrAVQPghaAK05sbKz1qcPk5GT17dtX99xzj/bu3atGjRrJ5XJJkh566CElJSVVuI+2bdtKkm666Sbt379fH374oT777DP9/e9/19y5c7Vw4UKNGzfusns9341Oy8rK3J7v379f/fv3V8eOHfXiiy8qMjJSvr6+WrVqlebOnWudU1WFhoYqMTHxkrYFYD+CFoArmre3t1JTU3XzzTfrr3/9q6ZOnao2bdpI+vntrsqEjKZNm2rMmDEaM2aMioqKdNNNN+nxxx8/b9Bq3bq1XC6X9u/f7zaLtXfv3nK1TZo0UUFBQbnlv54V+u///m+Vlpbqo48+UqtWrazl69atu2j/1a1169bavn27XC6X26zWN998Y62Xzh8iAVQe12gBuOL169dPsbGxmjdvnk6dOqXmzZurX79+euWVV5STk1Ou/tixY9Z/Hz9+3G1do0aN1LZtW5WWlp73eLfddpskaf78+W7L582bV672mmuukdPp1Pbt261lOTk55e7O7u3tLUkyxljLnE6nFi9efN4+7DJw4EDl5uZq2bJl1rKzZ8/qpZdeUqNGjZSQkCBJatiwoSRVGCQBVA4zWgBqhT//+c/6f//v/2nJkiX6/e9/rwULFqhv376KiYnRfffdpzZt2igvL0/p6en6/vvv9fXXX0uSrr32WvXr1089e/ZU06ZN9dVXX+m9997TxIkTz3us7t27KyUlRX/729/kdDrVu3dvpaWlad++feVq7777bj3yyCO64447NGnSJBUXF+vll19W+/bttWXLFqvu1ltvla+vrwYPHqz7779fRUVFWrRokZo3b15hWLTT+PHj9corr2j06NHKyspSVFSU3nvvPW3cuFHz5s1T48aNJf188f61116rZcuWqX379mratKm6dOmiLl261Gi/QK3m6Y89AsA5527vkJmZWW5dWVmZueaaa8w111xjzp49a4wxZv/+/WbkyJEmPDzcNGjQwLRs2dLcfvvt5r333rO2e/rpp01sbKwJCQkxAQEBpmPHjuaZZ54xp0+ftmoquhVDSUmJmTRpkrnqqqtMYGCgGTx4sDl8+HCFtzv47LPPTJcuXYyvr6/p0KGDefPNNyvc50cffWS6du1q/P39TVRUlHnuuefMa6+9ZiSZ7Oxsq64qt3e42K0rzre/vLw8M2bMGBMaGmp8fX1NTEyMWbx4cbltN23aZHr27Gl8fX251QNwCRzG/GIeGwAAANWGa7QAAABsQtACAACwCUELAADAJgQtAAAAmxC0AAAAbELQAgAAsAk3LPUgl8ulI0eOqHHjxnzVBQAAtYQxRidPnlSLFi3KfTn7rxG0POjIkSOKjIz0dBsAAOASHD58WFdfffUFawhaHnTuay4OHz6soKAgD3cDAAAqo7CwUJGRkdbr+IUQtDzo3NuFQUFBBC0AAGqZylz2w8XwAAAANiFoAQAA2ISgBQAAYBOu0QIAoJZzuVw6ffq0p9uoU3x9fS9664bKIGgBAFCLnT59WtnZ2XK5XJ5upU7x8vJSdHS0fH19L2s/BC0AAGopY4xycnLk7e2tyMjIapmBwf/dUDwnJ0etWrW6rJuKE7QAAKilzp49q+LiYrVo0UINGzb0dDt1SrNmzXTkyBGdPXtWDRo0uOT9EH0BAKilysrKJOmy395CeefG9NwYXyqCFgAAtRzfl1v9qmtMr4igtWDBAkVFRcnf319xcXHavHnzBeuXL1+ujh07yt/fXzExMVq1apXbemOMZsyYoYiICAUEBCgxMVHffvutW82JEyc0fPhwBQUFKSQkRGPHjlVRUZG1fv369RoyZIgiIiIUGBio7t2766233nLbx5IlS+RwONwe/v7+lzkaAACgrvB40Fq2bJmmTJmimTNnasuWLerWrZuSkpJ09OjRCus3bdqklJQUjR07Vlu3blVycrKSk5O1c+dOq2b27NmaP3++Fi5cqIyMDAUGBiopKUmnTp2yaoYPH65du3ZpzZo1WrlypTZs2KDx48e7Hadr1656//33tX37do0ZM0YjR47UypUr3foJCgpSTk6O9Th48GA1jxAAAKi1jIfFxsaaCRMmWM/LyspMixYtTGpqaoX1d911lxk0aJDbsri4OHP//fcbY4xxuVwmPDzczJkzx1pfUFBg/Pz8zDvvvGOMMWb37t1GksnMzLRqPvnkE+NwOMwPP/xw3l4HDhxoxowZYz1fvHixCQ4OrvzJ/orT6TSSjNPpvOR91BVHCorNxn3HzJGCYk+3AgC1RklJidm9e7cpKSnxdCuXJCcnx0ycONFER0cbX19fc/XVV5vbb7/dfP755+b48eNm4sSJpn379sbf399ERkaa//zP/zQFBQXW9tnZ2UaS2bp1a7l9JyQkmAceeMBt2e7du83gwYNNUFCQadiwoenVq5c5ePBghb1daGyr8vrt0Rmt06dPKysrS4mJidYyLy8vJSYmKj09vcJt0tPT3eolKSkpyarPzs5Wbm6uW01wcLDi4uKsmvT0dIWEhKhXr15WTWJiory8vJSRkXHefp1Op5o2beq2rKioSK1bt1ZkZKSGDBmiXbt2nXf70tJSFRYWuj0gLcs8pD6z1uqeRRnqM2utlmUe8nRLAACbHThwQD179tTatWs1Z84c7dixQ6tXr9bNN9+sCRMm6MiRIzpy5Iief/557dy5U0uWLNHq1as1duzYSzre/v371bdvX3Xs2FHr16/X9u3bNX36dNsv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7ysyMlL9+vXTli1bzrtNamqqgoODrUdkZGSljwcAAGof7gx/iTp06KAOHTpYz3v37q39+/dr7ty5euONNyrcZtq0aZoyZYr1vLCwkLAFAEAd5rEZrdDQUHl7eysvL89teV5ensLDwyvcJjw8/IL1535erObXF9ufPXtWJ06cOO9xKys2Nlb79u0773o/Pz8FBQW5PQAAQN3lsaDl6+urnj17Ki0tzVrmcrmUlpam+Pj4CreJj493q5ekNWvWWPXR0dEKDw93qyksLFRGRoZVEx8fr4KCAmVlZVk1a9eulcvlUlxc3GWd07Zt2xQREXFZ+wAAAHWHR986nDJlikaNGqVevXopNjZW8+bN008//aQxY8ZIkkaOHKmWLVsqNTVVkvTAAw8oISFBL7zwggYNGqSlS5fqq6++0quvvipJcjgcmjx5sp5++mm1a9dO0dHRmj59ulq0aGHdC6tTp04aMGCA7rvvPi1cuFBnzpzRxIkTdffdd6tFixZWb7t379bp06d14sQJnTx5Utu2bZP088XvkjRv3jxFR0erc+fOOnXqlP7+979r7dq1+uyzz2pm8AAAwBXPo0Fr2LBhOnbsmGbMmKHc3Fx1795dq1evti5mP3TokLy8/m/SrXfv3nr77bf12GOP6dFHH1W7du30z3/+U126dLFqHn74Yf30008aP368CgoK1LdvX61evVr+/v5WzVtvvaWJEyeqf//+8vLy0p133qn58+e79TZw4EAdPHjQet6jRw9JP98QVfr5U5MPPvigfvjhBzVs2FBdu3bV559/rptvvrn6BwoAANRKDnMuOaDGFRYWKjg4WE6nk+u1AACoJary+u3xr+ABAACoqwhaAAAANiFoAQAA2ISgBQAAYBOCFgAAgE0IWgAAADYhaAEAANiEoAUAAGATghYAAIBNqhS0vv/+e+Xn51vP/+d//kfDhw/XjTfeqHvvvVfp6enV3iAAAEBtVaWgdeedd+rLL7+UJH344Yfq16+fioqK1KdPHxUXFyshIUErV660pVEAAIDapkrfddioUSPt2LFD0dHRuuGGG3THHXfokUcesdb/9a9/1WuvvaYtW7bY0mxdw3cdAgBQ+9j2XYc+Pj46efKkJCk7O1u33Xab2/rbbrtNe/furWK7AAAAdVOVglZCQoLeeecdSVKPHj20fv16t/Xr1q1Ty5Ytq605AACA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XC6XJMnHx0d79+7VNddcY2/TNag6fhc1aNBAPXr00L59++xo0eMuZYwiIiLUoEEDeXt7W8s6deqk3NxcnT59Wr6+vrb2XNMu58/RTz/9pKVLl+rJJ5+0s0WP4a1DD/H19VXPnj2VlpZmLXO5XEpLS3P7l2J9dqljNHv2bD311FNavXq1evXqVROtekx1/TlyuVwqLS21o0WPq+oYdezYUTt27NC2bdusx29/+1vdfPPN2rZtmyIjI2uyfdtVx5+hsrIy7dixQxEREXa16VGXMkZ9+vTRvn37rJAuSf/+978VERFR50KWdHl/jpYvX67S0lLde++9drfpGZ6+Gr8+W7p0qfHz8zNLliwxu3fvNuPHjzchISHWx6RHjBhhpk6datWXlpaarVu3mq1bt5qIiAjz0EMPma1bt5pvv/3WU6dgu6qO0axZs4yvr69577333D42fPLkSU+dgu2qOkbPPvus+eyzz8z+/fvN7t27zfPPP298fHzMokWLPHUKtqvqGP1aXf/UYVXH54knnjCffvqp2b9/v8nKyjJ333238ff3N7t27fLUKdiuqmN06NAh07hxYzNx4kSzd+9es3LlStO8eXPz9NNPe+oUbHepf8/69u1rhg0bVtPt1hiCloe99NJLplWrVsbX19fExsaaL7/80lqXkJBgRo0aZT3Pzs42kso9EhISar7xGlSVMWrdunWFYzRz5syab7wGVWWM/vKXv5i2bdsaf39/06RJExMfH2+WLl3qga5rVlXG6NfqetAypmrjM3nyZKs2LCzMDBw40GzZssUDXdesqv4Z2rRpk4mLizN+fn6mTZs25plnnjFnz56t4a5rVlXH6JtvvjGSzGeffVbDndYchzHGeGgyDQAAoE7jGi0AAACbELQAAABsQtACAACwCUELAADAJgQtAAAAmxC0AAAAbELQAgAAsAlBCwDqidGjRys5OdnTbQD1CkELgMeNHj1aDofDelx11VUaMGCAtm/f7unWqsUvz+3co2/fvrYd78CBA3I4HNq2bZvb8v/6r//SkiVLbDsugPIIWgCuCAMGDFBOTo5ycnKUlpYmHx8f3X777Z5uq9osXrzYOr+cnBx99NFHFdadOXPGth6Cg4MVEhJi2/4BlEfQAnBF8PPzU3h4uMLDw9W9e3dNnTpVhw8f1rFjx/Sb3/xGEydOdKs/duyYfH19lZaWJkmKiorSU089pZSUFAUGBqply5ZasGCB2zYvvviiYmJiFBgYqMjISP3xj39UUVGRtf7gwYMaPHiwmjRposDAQHXu3FmrVq2SJP34448aPny4mjVrpoCAALVr106LFy+u9PmFhIRY5xceHq6mTZtaM0/Lli1TQkKC/P399dZbb+n48eNKSUlRy5Yt1bBhQ8XExOidd95x25/L5dLs2bPVtm1b+fn5qVWrVnrmmWckSdHR0ZKkHj16yOFwqF+/fpLKv3VYWlqqSZMmqXnz5vL391ffvn2VmZlprV+/fr0cDofS0tLUq1cvNWzYUL1799bevXsrfd5AfUfQAnDFKSoq0ptvvqm2bdvqqquu0rhx4/T222+rtLTUqnnzzTfVsmVL/eY3v7GWzZkzR926ddPWrVs1depUPfDAA1qzZo213svLS/Pnz9euXbv0+uuva+3atXr44Yet9RMmTFBpaak2bNigHTt26LnnnlOjRo0kSdOnT9fu3bv1ySefaM+ePXr55ZcVGhpaLed7rtc9e/YoKSlJp06dUs+ePfXxxx9r586dGj9+vEaMGKHNmzdb20ybNk2zZs2y+nr77bcVFhYmSVbd559/rpycHK1YsaLC4z788MN6//339frrr2vLli1q27atkpKSdOLECbe6v/zlL3rhhRf01VdfycfHR//xH/9RLecN1Aue/lZrABg1apTx9vY2gYGBJjAw0EgyERERJisryxhjTElJiWnSpIlZtmyZtU3Xrl3N448/bj1v3bq1GTBggNt+hw0bZm677bbzHnf58uXmqquusp7HxMS47fOXBg8ebMaMGXNJ5yfJ+Pv7W+cXGBhoPvjgA5OdnW0kmXnz5l10H4MGDTIPPvigMcaYwsJC4+fnZxYtWlRh7bn9bt261W35qFGjzJAhQ4wxxhQVFZkGDRqYt956y1p/+vRp06JFCzN79mxjjDHr1q0zksznn39u1Xz88cdGkikpKanKEAD1FjNaAK4IN998s7Zt26Zt27Zp8+bNSkpK0m233aaDBw/K399fI0aM0GuvvSZJ2rJli3bu3KnRo0e77SM+Pr7c8z179ljPP//8c/Xv318tW7ZU48aNNWLECB0/flzFxcWSpEmTJunpp59Wnz59NHPmTLeL8f/whz9o6dKl6t69ux5++GFt2rSpSuc3d+5c6/y2bdumW265xVrXq1cvt9qysjI99dRTiomJUdOmTdWoUSN9+umnOnTokCRpz549Ki0tVf/+/avUwy/t379fZ86cUZ8+faxlDRo0UGxsrNuYSVLXrl2t/46IiJAkHT169JKPDdQnBC0AV4TAwEC1bdtWbdu21fXXX6+///3v+umnn7Ro0SJJ0rhx47RmzRp9//33Wrx4sX7zm9+odevWld7/gQMHdPvtt6tr1656//33lZWVZV3Ddfr0aesY3333nUaMGKEdO3aoV69eeumllyTJCn1/+tOfdOTIEfXv318PPfRQpY8fHh5unV/btm0VGBjodu6/NGfOHP3Xf/2XHnnkEa1bt07btm1TUlKS1WdAQEClj1sdGjRoYP23w+GQ9PM1YgAujqAF4IrkcDjk5eWlkpISSVJMTIx69eqlRYsW6e23367wOqEvv/yy3PNOnTpJkrKysuRyufTCCy/ohhtuUPv27XXkyJFy+4iMjNTvf/97rVixQg8++KAV9CSpWbNmGjVqlN58803NmzdPr776anWesmXjxo0aMmSI7r33XnXr1k1t2rTRv//9b2t9u3btFBAQYH0Q4Nd8fX0l/Twzdj7XXHONfH19tXHjRmvZmTNnlJmZqWuvvbaazgSAj6cbAADp50/A5ebmSvr5E35//etfVVRUpMGDB1s148aN08SJExUYGKg77rij3D42btyo2bNnKzk5WWvWrNHy5cv18ccfS5Latm2rM2fO6KWXXtLgwYO1ceNGLVy40G37yZMn67bbblP79u31448/at26dVZQmzFjhnr27KnOnTurtLRUK1eutNZVt3bt2um9997Tpk2b1KRJE7344ovKy8uzApC/v78eeeQRPfzww/L19VWfPn107Ngx7dq1S2PHjlXz5s0VEBCg1atX6+qrr5a/v7+Cg4PdjhEYGKg//OEP+vOf/6ymTZuqVatWmj17toqLizV27Fhbzguoj5jRAnBFWL16tSIiIhQREaG4uDhlZmZq+fLl1q0JJCklJUU+Pj5KSUmRv79/uX08+OCD+uqrr9SjRw89/fTTevHFF5WUlCRJ6tatm1588UU999xz6tKli9566y2lpqa6bV9WVqYJEyaoU6dOGjBggNq3b6+//e1vkn6eJZo2bZq6du2qm266Sd7e3lq6dKktY/HYY4/puuuuU1JSkvr166fw8PByd3SfPn26HnzwQc2YMUOdOnXSsGHDrOumfHx8NH/+fL3yyitq0aKFhgwZUuFxZs2apTvvvFMjRozQddddp3379unTTz9VkyZNbDkvoD5yGGOMp5sAgMo4cOCArrnmGmVmZuq6665zWxcVFaXJkydr8uTJnmkOACrAW4cArnhnzpzR8ePH9dhjj+mGG24oF7IA4ErFW4cArngbN25URESEMjMzy11X5WnPPvusGjVqVOHjtttu83R7ADyMtw4B4DKcOHGi3J3UzwkICFDLli1ruCMAVxKCFgAAgE146xAAAMAmBC0AAACbELQAAABsQtACAACwCUELAADAJgQtAAAAmxC0AAAAbELQAgAAsMn/B9NTRpfDtUpdAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_48.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHHCAYAAABDUnkqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABHDklEQVR4nO3de1gWdf7/8dcAchDh9gACKojnNMGzCZZamaTman63NSsPrdZWuunaEbcyO4jWalZrarZqm+viV1fLNddz1i+x9cimlu5qIJZA0uFGEBFhfn/49d7uAPVWYGB4Pq5rrsv7c39m7vd8LuR+MfOZGcM0TVMAAAA24WV1AQAAABWJcAMAAGyFcAMAAGyFcAMAAGyFcAMAAGyFcAMAAGyFcAMAAGyFcAMAAGyFcAMAAGyFcAPAEs8//7wMw7iivoZh6Pnnn6/Uevr166d+/fpV2+0BuHKEG6CWW7p0qQzDcC0+Pj5q2rSpxo4dq2+++cbq8qqd6Ohot/Fq3LixbrrpJq1Zs6ZCtn/mzBk9//zz2r59e4VsD6iNCDcAJEkvvPCC3nvvPS1YsEADBw7UsmXL1LdvX509e7ZSPu+ZZ55RQUFBpWy7snXu3Fnvvfee3nvvPT3++OM6efKkhg8frgULFlzzts+cOaPp06cTboBr4GN1AQCqh4EDB6p79+6SpPHjxyskJESzZs3S2rVr9atf/arCP8/Hx0c+PjXzV1DTpk113333uV6PHj1arVu31muvvaaHHnrIwsoASBy5AVCOm266SZJ07Ngxt/bDhw/rl7/8pRo2bCh/f391795da9eudetTVFSk6dOnq02bNvL391ejRo104403avPmza4+Zc25KSws1O9+9zuFhoYqKChIv/jFL/T111+Xqm3s2LGKjo4u1V7WNpcsWaJbbrlFjRs3lp+fnzp06KD58+d7NBaXEx4ervbt2ystLe2S/b799luNGzdOYWFh8vf3V6dOnfTuu++63k9PT1doaKgkafr06a5TX5U93wiwm5r5ZxOASpeeni5JatCggavt0KFD6t27t5o2baqnn35agYGB+t///V8NGzZMf/vb33TnnXdKuhAykpKSNH78ePXs2VO5ubnas2eP9u3bp9tuu63czxw/fryWLVume+65R/Hx8dq2bZsGDx58Tfsxf/58XX/99frFL34hHx8f/f3vf9cjjzyikpISTZgw4Zq2fVFRUZFOnDihRo0aldunoKBA/fr109GjRzVx4kS1aNFCK1eu1NixY/Xjjz9q0qRJCg0N1fz58/Xwww/rzjvv1PDhwyVJsbGxFVInUGuYAGq1JUuWmJLMLVu2mKdOnTJPnDhhrlq1ygwNDTX9/PzMEydOuPreeuutZkxMjHn27FlXW0lJiRkfH2+2adPG1dapUydz8ODBl/zcadOmmT/9FZSammpKMh955BG3fvfcc48pyZw2bZqrbcyYMWbz5s0vu03TNM0zZ86U6peQkGC2bNnSra1v375m3759L1mzaZpm8+bNzQEDBpinTp0yT506Zf7rX/8y7777blOS+dvf/rbc7c2dO9eUZC5btszVdu7cOTMuLs6sV6+emZuba5qmaZ46darU/gLwDKelAEiS+vfvr9DQUEVGRuqXv/ylAgMDtXbtWjVr1kyS9P3332vbtm361a9+pdOnTysnJ0c5OTn67rvvlJCQoP/85z+uq6vq16+vQ4cO6T//+c8Vf/769eslSY8++qhb++TJk69pvwICAlz/djqdysnJUd++ffXVV1/J6XRe1TY3bdqk0NBQhYaGqlOnTlq5cqVGjRqlWbNmlbvO+vXrFR4erpEjR7ra6tSpo0cffVR5eXn6+OOPr6oWAKXV6nDzySefaMiQIWrSpIkMw9D7779fqZ93cT7AT5frrruuUj8TuFLz5s3T5s2btWrVKg0aNEg5OTny8/NzvX/06FGZpqlnn33W9cV+cZk2bZqkC3NKpAtXXv34449q27atYmJi9MQTT+jzzz+/5OcfP35cXl5eatWqlVt7u3btrmm/duzYof79+yswMFD169dXaGiopk6dKklXHW5uuOEGbd68WVu2bFFKSopycnL05z//2S1I/dzx48fVpk0beXm5/9pt3769630AFaNWz7nJz89Xp06d9Otf/9p1bruyXX/99dqyZYvrdU29WgT207NnT9fVUsOGDdONN96oe+65R0eOHFG9evVUUlIiSXr88ceVkJBQ5jZat24tSerTp4+OHTumDz74QJs2bdI777yj1157TQsWLND48eOvudbybv5XXFzs9vrYsWO69dZbdd1112nOnDmKjIyUr6+v1q9fr9dee821T54KCQlR//79r2pdAJWvVn+zDhw4UAMHDiz3/cLCQv3+97/XX//6V/3444/q2LGjZs2adU13HfXx8VF4ePhVrw9UBW9vbyUlJenmm2/WH//4Rz399NNq2bKlpAunUq7ki71hw4a6//77df/99ysvL099+vTR888/X264ad68uUpKSnTs2DG3ozVHjhwp1bdBgwb68ccfS7X//OjH3//+dxUWFmrt2rWKiopytX/00UeXrb+iNW/eXJ9//rlKSkrcjt4cPnzY9b5UfnADcOVq9Wmpy5k4caJ27typ5ORkff7557rrrrt0++23ezSP4Of+85//qEmTJmrZsqXuvfdeZWRkVGDFQMXp16+fevbsqblz5+rs2bNq3Lix+vXrp4ULFyozM7NU/1OnTrn+/d1337m9V69ePbVu3VqFhYXlft7FPzTeeOMNt/a5c+eW6tuqVSs5nU63U12ZmZml7hLs7e0tSTJN09XmdDq1ZMmScuuoLIMGDVJWVpZWrFjhajt//rzefPNN1atXT3379pUk1a1bV5LKDG8ArkytPnJzKRkZGVqyZIkyMjLUpEkTSRcOx2/YsEFLlizRjBkzPN7mDTfcoKVLl6pdu3bKzMzU9OnTddNNN+ngwYMKCgqq6F0ArtkTTzyhu+66S0uXLtVDDz2kefPm6cYbb1RMTIweeOABtWzZUtnZ2dq5c6e+/vpr/etf/5IkdejQQf369VO3bt3UsGFD7dmzR6tWrdLEiRPL/azOnTtr5MiReuutt+R0OhUfH6+tW7fq6NGjpfrefffdeuqpp3TnnXfq0Ucf1ZkzZzR//ny1bdtW+/btc/UbMGCAfH19NWTIEP3mN79RXl6eFi1apMaNG5cZ0CrTgw8+qIULF2rs2LHau3evoqOjtWrVKu3YsUNz5851/Q4ICAhQhw4dtGLFCrVt21YNGzZUx44d1bFjxyqtF6jRrL5cq7qQZK5Zs8b1et26daYkMzAw0G3x8fExf/WrX5mmaZpffvmlKemSy1NPPVXuZ/7www9mcHCw+c4771T27gHlungp+O7du0u9V1xcbLZq1cps1aqVef78edM0TfPYsWPm6NGjzfDwcLNOnTpm06ZNzTvuuMNctWqVa72XXnrJ7Nmzp1m/fn0zICDAvO6668yXX37ZPHfunKtPWZdtFxQUmI8++qjZqFEjMzAw0BwyZIh54sSJMi+N3rRpk9mxY0fT19fXbNeunbls2bIyt7l27VozNjbW9Pf3N6Ojo81Zs2aZixcvNiWZaWlprn6eXAp+ucvcy9tedna2ef/995shISGmr6+vGRMTYy5ZsqTUuikpKWa3bt1MX19fLgsHroJhmj85XluLGYahNWvWaNiwYZKkFStW6N5779WhQ4dch7YvqlevnsLDw3Xu3Dl99dVXl9xuo0aNXHccLUuPHj3Uv39/JSUlXfM+AAAATkuVq0uXLiouLta3337rug39z/n6+l7Tpdx5eXk6duyYRo0addXbAAAA7mp1uMnLy3M7n5+WlqbU1FQ1bNhQbdu21b333qvRo0dr9uzZ6tKli06dOqWtW7cqNjb2qm4J//jjj2vIkCFq3ry5Tp48qWnTpsnb29vtpl4AAODa1OrTUtu3b9fNN99cqn3MmDFaunSpioqK9NJLL+nPf/6zvvnmG4WEhKhXr16aPn26YmJiPP68u+++W5988om+++47hYaG6sYbb9TLL79c6qZlAADg6tXqcAMAAOyH+9wAAABbIdwAAABbqXUTiktKSnTy5EkFBQVxm3MAAGoI0zR1+vRpNWnSpNQDaH+u1oWbkydPKjIy0uoyAADAVThx4oSaNWt2yT61LtxcvMX5iRMnFBwcbHE1AADgSuTm5ioyMvKKHldU68LNxVNRwcHBhBsAAGqYK5lSwoRiAABgK4QbAABgK4QbAABgK7Vuzg0AABWhpKRE586ds7oMW/H19b3sZd5XgnADAICHzp07p7S0NJWUlFhdiq14eXmpRYsW8vX1vabtVJtwM3PmTCUmJmrSpEmaO3duuf1WrlypZ599Vunp6WrTpo1mzZqlQYMGVV2hAIBazTRNZWZmytvbW5GRkRVypAH/vcluZmamoqKirulGu9Ui3OzevVsLFy5UbGzsJfulpKRo5MiRSkpK0h133KHly5dr2LBh2rdvnzp27FhF1QIAarPz58/rzJkzatKkierWrWt1ObYSGhqqkydP6vz586pTp85Vb8fyuJmXl6d7771XixYtUoMGDS7Z9/XXX9ftt9+uJ554Qu3bt9eLL76orl276o9//GMVVQsAqO2Ki4sl6ZpPnaC0i2N6cYyvluXhZsKECRo8eLD69+9/2b47d+4s1S8hIUE7d+4sd53CwkLl5ua6LQAAXCueT1jxKmpMLT0tlZycrH379mn37t1X1D8rK0thYWFubWFhYcrKyip3naSkJE2fPv2a6gQAADWHZUduTpw4oUmTJukvf/mL/P39K+1zEhMT5XQ6XcuJEycq7bMAAID1LAs3e/fu1bfffquuXbvKx8dHPj4++vjjj/XGG2/Ix8enzPNt4eHhys7OdmvLzs5WeHh4uZ/j5+fneo4Uz5OqGpnOAqUcy1Gms8DqUgAAP5OVlaXf/va3atmypfz8/BQZGakhQ4Zo69atkqTf/OY3atWqlQICAhQaGqqhQ4fq8OHDrvXT09NlGIZSU1NLbbtfv36aPHmy63VeXp4mTpyoZs2aKSAgQB06dNCCBQsqexetOy1166236sCBA25t999/v6677jo99dRT8vb2LrVOXFyctm7d6jZwmzdvVlxcXGWXiyu0YneGElcfUIkpeRlS0vAYjegRZXVZAABdCCa9e/dW/fr19eqrryomJkZFRUXauHGjJkyYoMOHD6tbt2669957FRUVpe+//17PP/+8BgwYoLS0tDK/my9lypQp2rZtm5YtW6bo6Ght2rRJjzzyiJo0aaJf/OIXlbSXFoaboKCgUpdvBwYGqlGjRq720aNHq2nTpkpKSpIkTZo0SX379tXs2bM1ePBgJScna8+ePXr77bervH47yHQWKC0nXy1CAhXhCKiQ7V0MNpJUYkpTVx9Un7ahFbJ9AMC1eeSRR2QYhnbt2qXAwEBX+/XXX69f//rXkqQHH3zQ1R4dHa2XXnpJnTp1Unp6ulq1auXR56WkpGjMmDHq16+fa9sLFy7Url27KjXcWH611KVkZGQoMzPT9To+Pl7Lly/X22+/rU6dOmnVqlV6//33ucfNVVixO0O9Z27TPYv+qd4zt2nF7oxr3mZaTr4r2FxUbJpKzzlzzdsGADuqytP433//vTZs2KAJEya4BZuL6tevX6otPz9fS5YsUYsWLRQZGenxZ8bHx2vt2rX65ptvZJqmPvroI/373//WgAEDrmYXrli1uInfRdu3b7/ka0m66667dNddd1VNQTZVWUdYWoQEysuQW8DxNgxFh3CTKwD4uao+jX/06FGZpqnrrrvusn3feustPfnkk8rPz1e7du20efPmUvf1iY+PL3V35oKCAnXu3Nn1+s0339SDDz6oZs2aycfHR15eXlq0aJH69OlTIftUnmp95AaVo7KOsEQ4ApQ0PEbe/3efAm/D0IzhHTklBQA/U94fmZV5BMc0zct3+j/33nuv9u/fr48//lht27bVr371K509e9atz4oVK5Samuq2dO/e3a3Pm2++qc8++0xr167V3r17NXv2bE2YMEFbtmypkH0qT7U6coOqUZlHWEb0iFKftqFKzzmj6JC6BBsAKMOl/sisrN+bbdq0kWEYblc+lcfhcMjhcKhNmzbq1auXGjRooDVr1mjkyJGuPpGRkWrdurXbegEB/629oKBAU6dO1Zo1azR48GBJUmxsrFJTU/WHP/zhim7ee7U4clMLVfYRlghHgOJaNSLYAEA5Lv6R+VOVfRq/YcOGSkhI0Lx585Sfn1/q/R9//LHM9UzTlGmaKiws9OjzioqKVFRUVOrUlbe3d6U/TZ0jN7UUR1gAwDoX/8icuvqgik2zyk7jz5s3T71791bPnj31wgsvKDY2VufPn9fmzZs1f/58ffjhh1qxYoUGDBig0NBQff3115o5c6YCAgI0aNAgjz4rODhYffv21RNPPKGAgAA1b95cH3/8sf785z9rzpw5lbSHFxBuarEIRwChBgAsYsUfmS1bttS+ffv08ssv67HHHlNmZqZCQ0PVrVs3zZ8/X/7+/vp//+//ae7cufrhhx8UFhamPn36KCUlRY0bN/b485KTk5WYmKh7771X33//vZo3b66XX35ZDz30UCXs3X8ZpiczjGwgNzdXDodDTqeTuxUDADx29uxZpaWlqUWLFpX6+KDa6FJj68n3N3NuAACArRBuAACArRBuAACArRBuAACArRBuAAC4CrXsepwqUVFjSrgBAMAD3t7ekqRz585ZXIn9XBzTi2N8tbjPDQAAHvDx8VHdunV16tQp1alTp9QdeHF1SkpKdOrUKdWtW1c+PtcWTwg3AAB4wDAMRUREKC0tTcePH7e6HFvx8vJSVFSUDMO4fOdLINwAAOAhX19ftWnThlNTFczX17dCjoQRbgAAuApeXl7cobia4kQhAACwFcINAACwFcINAACwFcINAACwFcINAACwFcINAACwFcINAACwFcINAACwFcINAACwFcINcBmZzgKlHMtRprPA6lIAAFeAxy8Al7Bid4YSVx9QiSl5GVLS8BiN6BFldVkAgEvgyA1QjkxngSvYSFKJKU1dfZAjOABQzRFugHKk5eS7gs1Fxaap9Jwz1hQEALgihBugHC1CAuVluLd5G4aiQ+paUxAA4IoQboByRDgClDQ8Rt7GhYTjbRiaMbyjIhwBFlcGALgUJhQD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Zt68eSouLta+ffsUFhZWaQVfK+bcAABQ81TanJuwsDClpKTo4YcfVmJioi7mIsMwlJCQoHnz5lXrYAMAAOzPo3AjXbhiav369frhhx909OhRmaapNm3a8NgFAABQLXgcbi5q0KCBevToUZG1AAAAXDOPJhQDAABUd4QbAABgK4QbAABgK4QbAABgK4QbAABgK4QbAABgK4QbAABgK4QbAABgK4QbAABgK4QbAABgK4QbAABgK4QbAABgK4QbAABgK4QbAABgK4QbAABgK4QbADVaprNAKcdylOkssLoUANWEj9UFAMDVWrE7Q4mrD6jElLwMKWl4jEb0iLK6LAAWs/TIzSeffKIhQ4aoSZMmMgxD77///iX7b9++XYZhlFqysrKqpmAA1Uams8AVbCSpxJSmrj7IERwA1oab/Px8derUSfPmzfNovSNHjigzM9O1NG7cuJIqBFBdpeXku4LNRcWmqfScM9YUBKDasPS01MCBAzVw4ECP12vcuLHq169f8QUBqDFahATKy5BbwPE2DEWH1LWuKADKdBYoLSdfLUICFeEIsKSGGjmhuHPnzoqIiNBtt92mHTt2XLJvYWGhcnNz3RYANV+EI0BJw2PkbRiSLgSbGcM7WvbLFMCFeXC9Z27TPYv+qd4zt2nF7gxL6qhRE4ojIiK0YMECde/eXYWFhXrnnXfUr18//fOf/1TXrl3LXCcpKUnTp0+v4koBVIURPaLUp22o0nPOKDqkLsEGsFB58+D6tA2t8v+bhmma5uW7VT7DMLRmzRoNGzbMo/X69u2rqKgovffee2W+X1hYqMLCQtfr3NxcRUZGyul0Kjg4+FpKBgAA/yflWI7uWfTPUu1/faCX4lo1uubt5+bmyuFwXNH3d406clOWnj176tNPPy33fT8/P/n5+VVhRQAA1D7VaR5cjZxz81OpqamKiIiwugwAAGq16jQPztIjN3l5eTp69KjrdVpamlJTU9WwYUNFRUUpMTFR33zzjf785z9LkubOnasWLVro+uuv19mzZ/XOO+9o27Zt2rRpk1W7AAAA/k91mQdnabjZs2ePbr75ZtfrKVOmSJLGjBmjpUuXKjMzUxkZ/51pfe7cOT322GP65ptvVLduXcXGxmrLli1u2wAAANaJcARYPrm/2kworiqeTEgCAADVgyff3zV+zg0AAMBPEW4AAICtEG4AAICt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/zIzM7V27doy+xUVFVVaDQ6HQ/Xr16+07QMojXAD1GJ+fn4KDw9XeHi4OnfurKefflonTpzQqVOndMstt2jixIlu/U+dOiVfX1/XU4ijo6P14osvauTIkQoMDFTTpk01b948t3XmzJmjmJgYBQYGKjIyUo888ojy8vJc7x8/flxDhgxRgwYNFBgYqOuvv17r16+XJP3www+69957FRoaqoCAALVp00ZLliy54v2rX7++a//Cw8PVsGFD1xGWFStWqG/fvvL399df/vIXfffddxo5cqSaNm2qunXrKiYmRn/961/dtldSUqJXXnlFrVu3lp+fn6KiovTyyy9Lklq0aCFJ6tKliwzDUL9+/SSVPi1VWFioRx99VI0bN5a/v79uvPFG7d692/X+9u3bZRiGtm7dqu7du6tu3bqKj4/XkSNHrni/gdqOcANAkpSXl6dly5apdevWatSokcaPH6/ly5ersLDQ1WfZsmVq2rSpbrnlFlfbq6++qk6dOmn//v16+umnNWnSJG3evNn1vpeXl9544w0dOnRI7777rrZt26Ynn3zS9f6ECRNUWFioTz75RAcOHNCsWbNUr149SdKzzz6rL774Qv/4xz/05Zdfav78+QoJCamQ/b1Y65dffqmEhASdPXtW3bp104cffqiDBw/qwQcf1KhRo7Rr1y7XOomJiZo5c6arruXLlyssLEySXP22bNmizMxMrV69uszPffLJJ/W3v/1N7777rvbt26fWrVsrISFB33//vVu/3//+95o9e7b27NkjHx8f/frXv66Q/QZqBauf3AnAGmPGjDG9vb3NwMBAMzAw0JRkRkREmHv37jVN0zQLCgrMBg0amCtWrHCtExsbaz7//POu182bNzdvv/12t+2OGDHCHDhwYLmfu3LlSrNRo0au1zExMW7b/KkhQ4aY999//1XtnyTT39/ftX+BgYHmmjVrzLS0NFOSOXfu3MtuY/DgweZjjz1mmqZp5ubmmn5+fuaiRYvK7Htxu/v373dr/+nTzfPy8sw6deqYf/nLX1zvnzt3zmzSpIn5yiuvmKZpmh999JEpydyyZYurz4cffmhKMgsKCjwZAqDW4sgNUIvdfPPNSk1NVWpqqnbt2qWEhAQNHDhQx48fl7+/v0aNGqXFixdLkvbt26eDBw9q7NixbtuIi4sr9frLL790vd6yZYtuvfVWNW3aVEFBQRo1apS+++47nTlzRpL06KOP6qWXXlLv3r01bdo0twnNDz/8sJKTk9W5c2c9+eSTSklJ8Wj/XnvtNdf+paam6rbbbnO91717d7e+xcXFevHFFxUTE6OGDRuqXr162rhxozIyMiRJX375pQoLC3Xrrbd6VMNPHTt2TEVFRerdu7errU6dOurZs6fbmElSbGys698RERGSpG+//faqPxuoTQg3QC0WGBio1q1bq3Xr1urRo4feeecd5efna9GiRZKk8ePHa/Pmzfr666+1ZMkS3XLLLWrevPkVbz89PV133HGHYmNj9be//U179+51zck5d+6c6zO++uorjRo1SgcOHFD37t315ptvSpIraP3ud7/TyZMndeutt+rxxx+/4s8PDw937V/r1q0VGBjotu8/9eqrr+r111/XU089pY8++kipqalKSEhw1RkQEHDFn1sR6tSp4/q3YRiSLsz5AXB5hBsALoZhyMvLSwUFBZKkmJgYde/eXYsWLdLy5cvLnPfx2WeflXrdvn17SdLevXtVUlKi2bNnq1evXmrbtq1OnjxZahuRkZF66KGHtHr1aj322GOucCVJoaGhGjNmjJYtW6a5c+fq7bffrshddtmxY4eGDh2q++67T506dVLLli3173//2/V+mzZtFBAQ4JpM/XO+vr6SLhwBKk+rVq3k6+urHTt2uNqKioq0e/dudejQoYL2BICP1QUAsE5hYaGysrIkXbgy6Y9//KPy8vI0ZMgQV5/x48dr4sSJCgwM1J133llqGzt27NArr7yiYcOGafPmzVq5cqU+/PBDSVLr1q1VVFSkN998U0OGDNGOHTu0YMECt/UnT56sgQMHqm3btvrhhx/00UcfucLRc889p27duun6669XYWGh1q1b53qvorVp00arVq1SSkqKGjRooDlz5ig7O9sVOvz9/fXUU0/pySeflK+vr3r37q1Tp07p0KFDGjdunBo3bqyAgABt2LBBzZo1k7+/vxwOh9tnBAYG6uGHH9YTTzyhhg0bKioqSq+88orOnDmjcePGVcp+AbURR26AWmzDhg2KiIhQRESEbrjhBu3evVsrV650XcYsSSNHjpSPj49Gjhwpf3//Utt47LHHtGfPHnXp0kUvvfSS5syZo4SEBElSp06dNGfOHM2aNUsdO3bUX/7yFyUlJbmtX1xcrAkTJqh9+/a6/fbb1bZtW7311luSLhwNSUxMVGxsrPr06SNvb28lJydXylg888wz6tq1qxISEtSvXz+Fh4eXurPws88+q8cee0zPPfec2rdvrxEjRrjmwfj4+OiNN97QwoUL1aRJEw0dOrTMz5k5c6b+53/+R6NGjVLXrl119OhRbdy4UQ0aNKiU/QJqI8M0TdPqIgBUX+np6WrVqpV2796trl27ur0XHR2tyZMna/LkydYUBwBl4LQUgDIVFRXpu+++0zPPPKNevXqVCjYAUF1xWgpAmXbs2KGIiAjt3r271DwZq82YMUP16tUrcxk4cKDV5QGwGKelANQ433//fak7+l4UEBCgpk2bVnFFAKoTwg0AALAVTksBAABbIdwAAABbIdwAAABbIdwAAABbIdwAAABbIdwAAABbIdwAAABbIdwAAABb+f8jSR1irLUxwgAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_49.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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U+31AU/w9/dXamqq+vfvr7/97W+aNGmSWrVqJen8pZSL+WJv1KiRRo8erdGjRysvL099+vTR1KlTKw03zZs3V0lJiQ4dOlTmbM2BAwfKtW3YsKFOnTpVbv6vz378+9//VlFRkVasWKFmzZo55n/66adV1u9qzZs311dffaWSkpIyZ2/279/vWC5VHtwAXDyfvixVlfHjx2vLli1atGiRvvrqK/3ud7/T9ddf79Q4gl/75ptv1KRJE7Vq1Up33nmnMjIyXFgx4Dr9+vVT9+7dNWvWLJ05c0ZRUVHq16+f3njjDWVmZpZrf/LkSce/f/jhhzLL6tWrp/j4eBUVFVW6v9I/NP7617+WmT9r1qxybVu3bi273V7mUldmZma5pwT7+/tLkowxjnl2u11paWmV1uEuN9xwg7KysrR48WLHvJ9//lmvvfaa6tWrp759+0qS6tatK0kVhjcAF8enz9xcSEZGhtLS0pSRkaEmTZpIOn86fvXq1UpLS9OLL77o9DZ79Oih+fPn6/LLL1dmZqamTZumq6++Wnv27FH9+vVdfQjAJfvTn/6k3/3ud5o/f77uvfdezZ49W71791ZCQoLuuecetWrVStnZ2dqyZYu+++47ffnll5KkDh06qF+/fkpKSlKjRo20fft2LV26VOPHj690X4mJiRo2bJhef/112e129ezZU+vWrdPBgwfLtb399tv1+OOP69Zbb9WDDz6ogoICzZkzR23bttXOnTsd7a677joFBgZq0KBB+uMf/6i8vDzNmzdPUVFRFQY0d/rDH/6gN954Q6NGjdKOHTvUokULLV26VJs2bdKsWbMcvwNCQkLUoUMHLV68WG3btlWjRo3UsWNHdezY0aP1ArWat2/XqikkmeXLlzs+r1y50kgyoaGhZaaAgADz+9//3hhjzL59+4ykC06PP/54pfv86aefTFhYmHnrrbfcfXhApUpvBd+2bVu5ZcXFxaZ169amdevW5ueffzbGGHPo0CEzYsQIExMTY+rUqWOaNm1qbrrpJrN06VLHes8//7zp3r27adCggQkJCTHt2rUzL7zwgjl79qyjTUW3bRcWFpoHH3zQNG7c2ISGhppBgwaZY8eOVXhr9CeffGI6duxoAgMDzeWXX24WLFhQ4TZXrFhhOnXqZIKDg02LFi3Myy+/bN555x0jyRw+fNjRzplbwau6zb2y7WVn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mzbVNddc45j36quvqnPnztq1a5cmTZqkhx56SGvWrHEs9/Pz01//+lft3btX7777rtavX6/HHnvMsXzcuHEqKirSxo0btXv3br388suqV6+eJOnpp5/W119/rf/85z/at2+f5syZo4iICJccb2mt+/btU0pKis6cOaOkpCR99NFH2rNnj/7whz9o+PDh2rp1q2OdyZMn66WXXnLUtXDhQkVHR0uSo93atWuVmZmpZcuWVbjfxx57TO+//77effdd7dy5U/Hx8UpJSdGPP/5Ypt2TTz6p6dOna/v27QoICNDdd9/tkuMGfIK339wJwDtGjhxp/P39TWhoqAkNDTWSTGxsrNmxY4cxxpjCwkLTsGFDs3jxYsc6nTp1MlOnTnV8bt68ubn++uvLbHfo0KFm4MCBle53yZIlpnHjxo7PCQkJZbb5S4MGDTKjR4+u1vFJMsHBwY7jCw0NNcuXLzeHDx82ksysWbOq3MaNN95oHnnkEWOMMbm5uSYoKMjMmzevwral2921a1eZ+b98u3leXp6pU6eO+cc//uFYfvbsWdOkSRPzyiuvGGOM+fTTT40ks3btWkebjz76yEgyhYWFznQB4LM4cwP4sP79+ys9PV3p6enaunWrUlJSNHDgQB09elTBwcEaPny43nnnHUnSzp07tWfPHo0aNarMNpKTk8t93rdvn+Pz2rVrde2116pp06aqX7++hg8frh9++EEFBQWSpAcffFDPP/+8evXqpSlTppQZ0Hzfffdp0aJFSkxM1GOPPabNmzc7dXwzZ850HF96erp+85vfOJZ17dq1TNvi4mI999xzSkhIUKNGjVSvXj19/PHHysjIkCTt27dPRUVFuvbaa52q4ZcOHTqkc+fOqVevXo55derUUffu3cv0mSR16tTJ8e/Y2FhJ0okTJ6q9b8CXEG4AHxYaGqr4+HjFx8erW7dueuutt5Sfn6958+ZJksaOHas1a9bou+++U1pamq655ho1b978ord/5MgR3XTTTerUqZPef/997dixwzEm5+zZs459fPvttxo+fLh2796trl276rXXXpMkR9B6+OGHdfz4cV177bV69NFHL3r/MTExjuOLj49XaGhomWP/pVdffVV/+ctf9Pjjj+vTTz9Venq6UlJSHHWGhIRc9H5doU6dOo5/22w2SefH/ACoGuEGgIPNZpOfn58KCwslSQkJCeratavmzZunhQsXVjju44svvij3uX379pKkHTt2qKSkRNOnT9dVV12ltm3b6vjx4+W2ERcXp3vvvVfLli3TI4884ghXkhQZGamRI0dqwYIFmjVrlt58801XHrLDpk2bdMstt+iuu+5S586d1apVK/3vf/9zLG/Tpo1CQkIcg6l/LTAwUNL5M0CVad26tQIDA7Vp0ybHvHPnzmnbtm3q0KGDi44EQIC3CwDgPUVFRcrKypJ0/s6kv/3tb8rLy9OgQYMcbcaOHavx48crNDRUt956a7ltbNq0Sa+88ooGDx6sNWvWaMmSJfroo48kSfHx8Tp37pxee+01DRo0SJs2bdLcuXPLrD9hwgQNHDhQbdu21U8//aRPP/3UEY6eeeYZJSUl6YorrlBRUZFWrlzpWOZqbdq00dKlS7V582Y1bNhQM2bMUHZ2tiN0BAcH6/HHH9djjz2mwMBA9erVSydPntTevXs1ZswYRUVFKSQkRKtXr9Zll12m4OBghYeHl9lHaGio7rvvPv3pT39So0aN1KxZM73yyisqKCjQmDFj3HJcgC/izA3gw1avXq3Y2FjFxsaqR48e2rZtm5YsWeK4jVmShg0bpoCAAA0bNkzBwcHltvHII49o+/bt6tKli55//nnNmDFDKSkpkqTOnTtrxowZevnll9WxY0f94x//UGpqapn1i4uLNW7cOLVv317XX3+92rZtq9dff13S+bMhkydPVqdOndSnTx/5+/tr0aJFbumLp556SldeeaVSUlLUr18/xcTElHuy8NNPP61HHnlEzzzzjNq3b6+hQ4c6xsEEBATor3/9q9544w01adJEt9xyS4X7eemll3Tbbbdp+PDhuvLKK3Xw4EF9/PHHatiwoVuOC/BFNmOM8XYRAGquI0eOqHXr1tq2bZuuvPLKMstatGihCRMmaMKECd4pDgAqwGUpABU6d+6cfvjhBz311FO66qqrygUbAKipuCwFoEKbNm1SbGystm3bVm6cjLe9+OKLqlevXoXTwIEDvV0eAC/jshSAWufHH38s90TfUiEhIWratKmHKwJQkxBuAACApXBZCgAAWArhBgAAWArhBgAAWArhBgAAWArhBgAAWArhBgAAWArhBgAAWArhBgAAWMr/B6uNvjBR9ZfMAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_50.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkgAAAHHCAYAAABEEKc/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABDPUlEQVR4nO3de1xVdb7/8fcGhI2oGxXlFgoqpgVJiRJqqRMzWGYxNjNoM96O5dRUZmqmHi9dLMzGYixPlFPao3LwWE7TcTyUYfObKRnvVFp51HC0CVAyN4qIyv7+/mjc015cFAU2l9fz8dgPZa3vWvuzvoG8+67v+m6bMcYIAAAAbj7eLgAAAKCpISABAABYEJAAAAAsCEgAAAAWBCQAAAALAhIAAIAFAQkAAMCCgAQAAGBBQAIAALAgIAFoth599FHZbLaLamuz2fToo482aD3Dhg3TsGHDmuz5AFw8AhKAy7Zq1SrZbDb3y8/PT5GRkZo4caL++c9/eru8Jic6Otqjv7p27aobbrhBf/zjH+vl/KdOndKjjz6qv/zlL/VyPqA1IiABqDePP/64Xn/9dWVlZenmm2/WG2+8oaFDh+r06dMN8n7z5s1TeXl5g5y7oSUkJOj111/X66+/rpkzZ+qbb77R6NGjlZWVddnnPnXqlB577DECEnAZ/LxdAICW4+abb1ZiYqIk6a677lJISIiefvppvfvuu/rFL35R7+/n5+cnP7/m+c9YZGSkfvWrX7m/Hj9+vHr16qXnnntO99xzjxcrAyAxggSgAd1www2SpAMHDnhs//LLL/Wzn/1MnTp1kt1uV2Jiot59912PNmfPntVjjz2m2NhY2e12de7cWUOGDNHGjRvdbaqbg1RRUaGHHnpIXbp0Ufv27XXbbbfp66+/rlLbxIkTFR0dXWV7dedcuXKlfvSjH6lr164KCAjQVVddpRdffLFOfXEhYWFh6tu3rwoKCmptd+TIEU2ePFmhoaGy2+3q16+fXnvtNff+gwcPqkuXLpKkxx57zH0br6HnXwEtTfP8Xy8AzcLBgwclSR07dnRv27NnjwYPHqzIyEjNnj1bQUFB+u///m+lpaXp7bff1k9/+lNJ3weVjIwM3XXXXRo4cKBKS0u1fft27dy5Uz/+8Y9rfM+77rpLb7zxhu68804NGjRImzZt0siRIy/rOl588UVdffXVuu222+Tn56f/+Z//0W9+8xu5XC7dd999l3Xu886ePavDhw+rc+fONbYpLy/XsGHDtH//ft1///2KiYnR2rVrNXHiRB0/flwPPvigunTpohdffFH33nuvfvrTn2r06NGSpGuuuaZe6gRaDQMAl2nlypVGkvnggw/M0aNHzeHDh81bb71lunTpYgICAszhw4fdbW+66SYTHx9vTp8+7d7mcrnMoEGDTGxsrHtbv379zMiRI2t934ULF5of/jOWn59vJJnf/OY3Hu3uvPNOI8ksXLjQvW3ChAmme/fuFzynMcacOnWqSrvU1FTTo0cPj21Dhw41Q4cOrbVmY4zp3r27+clPfmKOHj1qjh49aj755BMzZswYI8k88MADNZ4vMzPTSDJvvPGGe9uZM2dMcnKyadeunSktLTXGGHP06NEq1wugbrjFBqDepKSkqEuXLoqKitLPfvYzBQUF6d1339UVV1whSTp27Jg2bdqkX/ziFzpx4oRKSkpUUlKib7/9Vqmpqdq3b5/7qbfg4GDt2bNH+/btu+j337BhgyRp6tSpHtunTZt2WdcVGBjo/rvT6VRJSYmGDh2qr776Sk6n85LO+f7776tLly7q0qWL+vXrp7Vr12rcuHF6+umnazxmw4YNCgsL09ixY93b2rRpo6lTp+rkyZP6f//v/11SLQCq4hYbgHqzfPly9e7dW06nU6+++qr++te/KiAgwL1///79MsZo/vz5mj9/frXnOHLkiCIjI/X444/r9ttvV+/evRUXF6cRI0Zo3Lhxtd4q+sc//iEfHx/17NnTY/uVV155Wdf18ccfa+HChcrLy9OpU6c89jmdTjkcjjqfMykpSYsWLZLNZlPbtm3Vt29fBQcH13rMP/7xD8XGxsrHx/P/bfv27eveD6B+EJAA1JuBAwe6n2JLS0vTkCFDdOedd2rv3r1q166dXC6XJGnmzJlKTU2t9hy9evWSJN144406cOCA/vSnP+n999/X73//ez333HPKysrSXXfdddm11rTAZGVlpcfXBw4c0E033aQ+ffro2WefVVRUlPz9/bVhwwY999xz7muqq5CQEKWkpFzSsQAaHgEJQIPw9fVVRkaGhg8frhdeeEGzZ89Wjx49JH1/W+hiwkGnTp00adIkTZo0SSdPntSNN96oRx99tMaA1L17d7lcLh04cMBj1Gjv3r1V2nbs2FHHjx+vst06CvM///M/qqio0Lvvvqtu3bq5t3/44YcXrL++de/eXZ9++qlcLpfHKNKXX37p3i/VHP4AXDzmIAFoMMOGDdPAgQOVmZmp06dPq2vXrho2bJheeuklFRYWVml/9OhR99+//fZbj33t2rVTr169VFFRUeP73XzzzZKkZcuWeWzPzMys0rZnz55yOp369NNP3dsKCwurrGbt6+srSTLGuLc5nU6tXLmyxjoayi233KKioiKtWbPGve3cuXN6/vnn1a5dOw0dOlSS1LZtW0mqNgACuDiMIAFoUA8//LB+/vOfa9WqVbrnnnu0fPlyDRkyRPHx8br77rvVo0cPFRcXKy8vT19//bU++eQTSdJVV12lYcOGqX///urUqZO2b9+ut956S/fff3+N75WQkKCxY8fqv/7rv+R0OjVo0CDl5uZq//79VdqOGTNGjzzyiH76059q6tSpOnXqlF588UX17t1bO3fudLf7yU9+In9/f40aNUq//vWvdfLkSa1YsUJdu3atNuQ1pClTpuill17SxIkTtWPHDkVHR+utt97Sxx9/rMzMTLVv317S95PKr7rqKq1Zs0a9e/dWp06dFBcXp7i4uEatF2jWvP0YHYDm7/xj/tu2bauyr7Ky0vTs2dP07NnTnDt3zhhjzIEDB8z48eNNWFiYadOmjYmMjDS33nqreeutt9zHLVq0yAwcONAEBwebwMBA06dPH/Pkk0+aM2fOuNtU90h+eXm5mTp1quncubMJCgoyo0aNMocPH672sff333/fxMXFGX9/f3PllVeaN954o9pzvvvuu+aaa64xdrvdREdHm6efftq8+uqrRpIpKChwt6vLY/4XWsKgpvMVFxebSZMmmZCQEOPv72/i4+PNypUrqxy7efNm079/f+Pv788j/8AlsBnzg3FjAAAAMAcJAADAioAEAABgQUACAACwICABAABYEJAAAAAsCEgAAAAWLBR5iVwul7755hu1b9+eZf0BAGgmjDE6ceKEIiIiqnzw8w8RkC7RN998o6ioKG+XAQAALsHhw4d1xRVX1LifgHSJzi/pf/jwYXXo0MHL1QAAgItRWlqqqKgo9+/xmhCQLtH522odOnQgIAEA0MxcaHoMk7QBAAAsCEgAAAAWBCQAAAAL5iA1sMrKSp09e9bbZTQLbdq0ka+vr7fLAACAgNRQjDEqKirS8ePHvV1KsxIc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iy/MxIkTjcPhMF9//XUjV9546tpHH374oVm3bp35/PPPzf79+01mZqbx9fU1OTk5jVx546lrH51XUFBgIiMjzQ033GBuv/32xinWS+raRytXrjQdOnQwhYWF7ldRUVEjV9246tpHFRUVJjEx0dxyyy3mo48+MgUFBeYvf/mLyc/Pb+TKG09d++jbb7/1+B7avXu38fX1NStXrmzcwhsQAekSDBw40Nx3333urysrK01ERITJyMi44LHdu3dvFQHpcvrIGGPOnTtn2rdvb1577bWGKtHrLrePjDHm2muvNfPmzWuI8pqES+mjc+fOmUGDBpnf//73ZsKECS0+INW1j1auXGkcDkcjVdc01LWPXnzxRdOjRw9z5syZxirR6y7336PnnnvOtG/f3pw8ebKhSmx03GKrozNnzmjHjh1KSUlxb/Px8VFKSory8vK8WFnTUR99dOrUKZ09e1adOnVqqDK96nL7yBij3Nxc7d27VzfeeGNDluo1l9pHjz/+uLp27arJkyc3Rpledal9dPLkSXXv3l1RUVG6/fbbtWfPnsYo1ysupY/effddJScn67777lNoaKji4uL01FNPqbKysrHKblT18W/2K6+8ojFjxigoKKihymx0BKQ6KikpUWVlpUJDQz22h4aGqqioyEtVNS310UePPPKIIiIiPH5gW5JL7SOn06l27drJ399fI0eO1PPPP68f//jHDV2uV1xKH3300Ud65ZVXtGLFisYo0esupY+uvPJKvfrqq/rTn/6kN954Qy6XS4MGDdLXX3/dGCU3ukvpo6+++kpvvfWWKisrtWHDBs2fP19Lly7VokWLGqPkRne5/2Zv3bpVu3fv1l133dVQJXqFn7cLAKwWL16s7Oxs/eUvf2kVk0fron379srPz9fJkyeVm5ur6dOnq0ePHho2bJi3S/O6EydOaNy4cVqxYoVCQkK8XU6TlZycrOTkZPfXgwYNUt++ffXSSy/piSee8GJlTYfL5VLXrl318ssvy9fXV/3799c///lPPfPMM1q4cKG3y2tyXnnlFcXHx2vgwIHeLqVeEZDqKCQkRL6+viouLvbYXlxcrLCwMC9V1bRcTh/99re/1eLFi/XBBx/ommuuacgyvepS+8jHx0e9evWSJCUkJOiLL75QRkZGiwxIde2jAwcO6ODBgxo1apR7m8vlkiT5+flp79696tmzZ8MW3cjq49+jNm3a6Nprr9X+/fsbokSvu5Q+Cg8PV5s2beTr6+ve1rdvXxUVFenMmTPy9/dv0Job2+V8H5WVlSk7O1uPP/54Q5boFdxiqyN/f3/1799fubm57m0ul0u5ubke/1fWml1qHy1ZskRPPPGEcnJylJiY2Bilek19fR+5XC5VVFQ0RIleV9c+6tOnjz777DPl5+e7X7fddpuGDx+u/Px8RUVFNWb5jaI+vo8qKyv12WefKTw8vKHK9KpL6aPBgwdr//797oAtSf/3f/+n8PDwFheOpMv7Plq7dq0qKir0q1/9qqHLbHzeniXeHGVnZ5uAgACzatUq8/nnn5spU6aY4OBg96Oy48aNM7Nnz3a3r6ioMLt27TK7du0y4eHhZubMmWbXrl1m37593rqEBlfXPlq8eLHx9/c3b731lsejoydOnPDWJTS4uvbRU089Zd5//31z4MAB8/nnn5vf/va3xs/Pz6xYscJbl9Dg6tpHVq3hKba69tFjjz1m3nvvPXPgwAGzY8cOM2bMGGO3282ePXu8dQkNrq59dOjQIdO+fXtz//33m71795r169ebrl27mkWLFnnrEhrcpf6sDRkyxKSnpzd2uY2CgHSJnn/+edOtWzfj7+9vBg4caP7+97+79w0dOtRMmDDB/XVBQYGRVOU1dOjQxi+8EdWlj7p3715tHy1cuLDxC29Edemj//zP/zS9evUydrvddOzY0SQnJ5vs7GwvVN246tJHVq0hIBlTtz6aNm2au21oaKi55ZZbzM6dO71QdeOq6/fR5s2bTVJSkgkICDA9evQwTz75pDl37lwjV9246tpHX375pZFk3n///UautHHYjDHGS4NXAAAATRJzkAAAACwISAAAABYEJAAAAAsCEgAAgAUBCQAAwIKABAAAYEFAAgAAsCAgAUATN3HiRKWlpXm7DKBVISABuGQTJ06UzWZzvzp37qwRI0bo008/9XZp9eKH13b+NWTIkAZ7v4MHD8pmsyk/P99j++9+9zutWrWqwd4XQFUEJACXZcSIESosLFRhYaFyc3Pl5+enW2+91dtl1ZuVK1e6r6+wsFDvvvtute3Onj3bYDU4HA4FBwc32PkBVEVAAnBZAgICFBYWprCwMCUkJGj27Nk6fPiwjh49qh/96Ee6//77PdofPXpU/v7+7k8Oj46O1hNPPKGxY8cqKChIkZGRWr58uccxzz77rOLj4xUUFKSoqCj95je/0cmTJ937//GPf2jUqFHq2LGjgoKCdPXVV2vDhg2SpO+++06//OUv1aVLFwUGBio2NlYrV6686OsLDg52X19YWJg6derkHulZs2aNhg4dKrvdrjfffFPffvutxo4dq8jISLVt21bx8fH6wx/+4HE+l8ulJUuWqFevXgoICFC3bt305JNPSpJiYmIkSddee61sNpuGDRsmqeottoqKCk2dOlVdu3aV3W7XkCFDtG3bNvf+v/zlL7LZbMrNzVViYqLatm2rQYMGae/evRd93UBrR0ACUG9OnjypN954Q7169VLnzp111113afXq1aqoqHC3eeONNxQZGakf/ehH7m3PPPOM+vXrp127dmn27Nl68MEHtXHjRvd+Hx8fLVu2THv27NFrr72mTZs2adasWe799913nyoqKvTXv/5Vn332mZ5++mm1a9dOkjR//nx9/vnn+t///V998cUXevHFFxUSElIv13u+1i+++EKpqak6ffq0+vfvrz//+c/avXu3pkyZonHjxmnr1q3uY+bMmaPFixe761q9erVCQ0Mlyd3ugw8+UGFhodatW1ft+86aNUtvv/22XnvtNe3cuVO9evVSamqqjh075tHuP//zP7V06VJt375dfn5++o//+I96uW6gVfD2p+UCaL4mTJhgfH19TVBQkAkKCjKSTHh4uNmxY4cxxpjy8nLTsWNHs2bNGvcx11xzjXn00UfdX3fv3t2MGDHC47zp6enm5ptvrvF9165dazp37uz+Oj4+3uOcPzRq1CgzadKkS7o+ScZut7uvLygoyPzxj380BQUFRpLJzMy84DlGjhxpZsyYYYwxprS01AQEBJgVK1ZU2/b8eXft2uWxfcKECeb22283xhhz8uRJ06ZNG/Pmm2+69585c8ZERESYJUuWGGOM+fDDD40k88EHH7jb/PnPfzaSTHl5eV26AGi1GEECcFmGDx+u/Px85efna+vWrUpNTdXNN9+sf/zjH7Lb7Ro3bpxeffVVSdLOnTu1e/duTZw40eMcycnJVb7+4osv3F9/8MEHuummmxQZGan27dtr3Lhx+vbbb3Xq1ClJ0tSpU7Vo0SINHjxYCxcu9Jgkfu+99yo7O1sJCQmaNWuWNm/eXKfre+6559zXl5+frx//+MfufYmJiR5tKysr9cQTTyg+Pl6dOnVSu3bt9N577+nQoUOSpC+++EIVFRW66aab6lTDDx04cEBnz57V4MGD3dvatGmjgQMHevSZJF1zzTXuv4eHh0uSjhw5csnvDbQmBCQAlyUoKEi9evVSr169NGDAAP3+979XWVmZVqxYIUm66667tHHjRn399ddauXKlfvSjH6l79+4Xff6DBw/q1ltv1TXXXKO3335bO3bscM9ROnPmjPs9vvrqK40bN06fffaZEhMT9fzzz0uSO6w99NBD+uabb3TTTTdp5syZF/3+YWFh7uvr1auXgoKCPK79h5555hn97ne/0yOPPKIPP/xQ+fn5Sk1NddcZGBh40e9bH9q0aeP+u81mk/T9HCgAF0ZAAlCvbDabfHx8VF5eLkmKj49XYmKiVqxYodWrV1c7D+bvf/97la/79u0rSdqxY4dcLpeWLl2q66+/Xr1799Y333xT5RxRUVG65557tG7dOs2YMcMd0CSpS5cumjBhgt544w1lZmbq5Zdfrs9Ldvv44491++2361e/+pX69eunHj166P/+7//c+2NjYxUYGOieoG7l7+8v6fuRqJr07NlT/v7++vjjj93bzp49q23btumqq66qpysB4OftAgA0bxUVFSoqKpL0/RNjL7zwgk6ePKlRo0a529x11126//77FRQUpJ/+9KdVzvHxxx9ryZIlSktL08aNG7V27Vr9+c9/liT16tVLZ8+e1fPPP69Ro0bp448/VlZWlsfx06ZN080336zevXvru+++04cffugOWAsWLFD//v119dVXq6KiQuvXr3fvq2+xsbF66623tHnzZnXs2FHPPvusiouL3cHFbrfrkUce0axZs+Tv76/Bgwfr6NGj2rNnjyZPnqyuXbsqMDBQOTk5uuKKK2S32+VwODzeIygoSPfee68efvhhderUSd26ddOSJUt06tQpTZ48uUGuC2iNGEECcFlycnIUHh6u8PBwJSUladu2bVq7dq37EXVJGjt2rPz8/DR27FjZ7fYq55gxY4a2b9+ua6+9VosWLdKzzz6r1NRUSVK/fv307LPP6umnn1ZcXJzefPNNZWRkeBxfWVmp++67T3379tWIESPUu3dv/dd//Zek70dl5syZo2uuuUY33nijfH19lZ2d3SB9MW/ePF133XVKTU3VsGHDFBYWVmUF7Pnz52vGjBlasGCB+vbtq/T0dPe8ID8/Py1btkwvvfSSIiIidPvtt1f7PosXL9Ydd9yhcePG6brrrtP+/fv13nvvqWPHjg1yXUBrZDPGGG8XAaBlO3jwoHr27Klt27bpuuuu89gXHR2tadOmadq0ad4pDgCqwS02AA3m7Nmz+vbbbzVv3jxdf/31VcIRADRV3GID0GA+/vhjhYeHa9u2bVXmDXnbU089pXbt2lX7uvnmm71dHgAv4xYbgFbp2LFjVVaePi8wMFCRkZGNXBGApoSABAAAYMEtNgAAAAsCEgAAgAUBCQAAwIKABAAAYEFAAgAAsCAgAQAAWBCQAAAALAhIAAAAFv8f+TPHr88mtLAAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_51.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlEAAAHHCAYAAACfqw0dAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABJI0lEQVR4nO3de1xVdb7/8fcG5CIKaMjNUDBh1CQtEcJ7yQyWlWSd0BxTf16aRqc85iltUpuyMM1ybDxZVtrpplnO5JhRhs7xlISIOnkfdTCtAEWHjRdEZX9/f3Rcp514YSlswNfz8dgPZK3PWvuzvoL77VrfvZfDGGMEAACAavHydAMAAAD1ESEKAADABkIUAACADYQoAAAAGwhRAAAANhCiAAAAbCBEAQAA2ECIAgAAsIEQBQAAYAMhCkCD9tRTT8nhcFxSrcPh0FNPPVWj/fTp00d9+vSps/sDcOkIUQBqxaJFi+RwOKyHj4+PWrZsqeHDh+v777/3dHt1TkxMjNt4hYWFqWfPnvrzn/98RfZ/4sQJPfXUU/rb3/52RfYHXI0IUQBq1dNPP623335b8+fP12233aZ33nlHvXv31smTJ2vk+Z588kmVl5fXyL5rWufOnfX222/r7bff1sSJE/XDDz9o4MCBmj9//mXv+8SJE/rDH/5AiAIug4+nGwBwdbntttuUmJgoSRo1apRCQ0P1/PPPa/ny5brvvvuu+PP5+PjIx6d+/lPXsmVL/frXv7a+f+CBB9S2bVu99NJL+s1vfuPBzgBInIkC4GE9e/aUJO3du9dt+c6dO3XvvfeqefPm8vf3V2JiopYvX+5Wc/r0af3hD39QXFyc/P39dc0116hHjx5atWqVVVPVnKiKigr9+7//u1q0aKGmTZvqrrvu0nfffXdOb8OHD1dMTMw5y6va58KFC3XrrbcqLCxMfn5+6tChg1555ZVqjcXFREREqH379iooKLhg3cGDBzVy5EiFh4fL399fnTp10ltvvWWt37dvn1q0aCFJ+sMf/mBdMqzp+WBAQ1M//3sGoMHYt2+fJKlZs2bWsm3btql79+5q2bKlJk2apMDAQH3wwQdKT0/XRx99pLvvvlvSj2EmMzNTo0aNUlJSksrKyrRhwwZt3LhRv/zlL8/7nKNGjdI777yj+++/X926ddPq1avVv3//yzqOV155Rddff73uuusu+fj46K9//at++9vfyuVyaezYsZe177NOnz6tAwcO6JprrjlvTXl5ufr06aM9e/Zo3Lhxio2N1dKlSzV8+HCVlpbqkUceUYsWLfTKK6/ooYce0t13362BAwdKkm644YYr0idw1TAAUAsWLlxoJJkvvvjCHDp0yBw4cMB8+OGHpkWLFsbPz88cOHDAqu3bt69JSEgwJ0+etJa5XC7TrVs3ExcXZy3r1KmT6d+//wWfd9q0aean/9Rt3rzZSDK//e1v3eruv/9+I8lMmzbNWjZs2DDTunXri+7TGGNOnDhxTl1aWppp06aN27LevXub3r17X7BnY4xp3bq1+dWvfmUOHTpkDh06ZP7+97+bQYMGGUnmd7/73Xn3N2fOHCPJvPPOO9ayU6dOmZSUFNOkSRNTVlZmjDHm0KFD5xwvgOrhch6AWpWamqoWLVooOjpa9957rwIDA7V8+XJde+21kqQjR45o9erVuu+++3T06FGVlJSopKREhw8fVlpamnbv3m29my8kJETbtm3T7t27L/n5V65cKUl6+OGH3ZaPHz/+so4rICDA+rPT6VRJSYl69+6tf/7zn3I6nbb2+fnnn6tFixZq0aKFOnXqpKVLl2ro0KF6/vnnz7vNypUrFRERocGDB1vLGjVqpIcffljHjh3Tf//3f9vqBcC5uJwHoFbNmzdP8fHxcjqdevPNN7V27Vr5+flZ6/fs2SNjjKZMmaIpU6ZUuY+DBw+qZcuWevrppzVgwADFx8erY8eO6tevn4YOHXrBy1LffvutvLy8dN1117kt/8UvfnFZx/XVV19p2rRpysnJ0YkTJ9zWOZ1OBQcHV3ufycnJmj59uhwOhxo3bqz27dsrJCTkgtt8++23iouLk5eX+/+R27dvb60HcGUQogDUqqSkJOvdeenp6erRo4fuv/9+7dq1S02aNJHL5ZIkTZw4UWlpaVXuo23btpKkXr16ae/evfr444/1+eef6/XXX9dLL72k+fPna9SoUZfd6/k+pLOystLt+71796pv375q166dXnzxRUVHR8vX11crV67USy+9ZB1TdYWGhio1NdXWtgBqHiEKgMd4e3srMzNTt9xyi/70pz9p0qRJatOmjaQfL0FdSoBo3ry5RowYoREjRujYsWPq1auXnnrqqfOGqNatW8vlcmnv3r1uZ5927dp1Tm2zZs1UWlp6zvKfn83561//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WfL397dq3n33XY0bN059+/aVl5eX7rnnHs2dO9etN5fLpUWLFmn48OHy9vau4ZEAAAD1icMYYzzdRENVVlam4OBgOZ1O5kcBAFBPXOrrN+/OAwAAsIEQBQAAYAMhCgAAwAZCFAAAgA2EKAAAABsIUQAAADYQogAAAGwgRAEAANhAiAIAALCBEAUAAGADIQoAAMAGQhQAAIANhCgAAAAbCFEAAAA2EKIAAABsIEQBAADYQIgCAACwgRAFAABgAyEKAADABkIUAACADYQoAAAAGwhRAAAANhCiAAAAbCBEAQAA2ECIAgAAsIEQBQAAYAMhCgAAwAZCFAAAgA2EKAAAABsIUQAAADYQogAAAGwgRAEAANhAiAIAALCBEAUAAGADIQoAAMAGQhQAAIANhCgAAAAbCFEAAAA2EKIAAABsIEQBAADYQIgCAACwgRAFAABgAyEKAADABkIUAACADYQoAAAAGwhRAAAANhCiAAAAbCBEAQAA2ECIAgAAsIEQBQAAYIPHQ9S8efMUExMjf39/JScna/369ResX7p0qdq1ayd/f38lJCRo5cqVbuuNMZo6daoiIyMVEBCg1NRU7d69263myJEjGjJkiIKCghQSEqKRI0fq2LFj5+znhRdeUHx8vPz8/NSyZUs9++yzV+agAQBAvefRELVkyRJNmDBB06ZN08aNG9WpUyelpaXp4MGDVdavW7dOgwcP1siRI7Vp0yalp6crPT1dW7dutWpmzpypuXPnav78+crNzVVgYKDS0tJ08uRJq2bIkCHatm2bVq1apRUrVmjt2rUaM2aM23M98sgjev311/XCCy9o586dWr58uZKSkmpmIAAAQP1jPCgpKcmMHTvW+r6ystJERUWZzMzMKuvvu+8+079/f7dlycnJ5sEHHzTGGONyuUxERISZNWuWtb60tNT4+fmZ999/3xhjzPbt240kk5eXZ9V8+umnxuFwmO+//96q8fHxMTt37rys43M6nUaScTqdl7UfAABQey719dtjZ6JOnTql/Px8paamWsu8vLyUmpqqnJycKrfJyclxq5ektLQ0q76goEBFRUVuNcHBwUpOTrZqcnJyFBISosTERKsmNTVVXl5eys3NlST99a9/VZs2bbRixQrFxsYqJiZGo0aN0pEjRy54TBUVFSorK3N7AACAhsljIaqkpESVlZUKDw93Wx4eHq6i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pE2bNmnSpEl65JFHtGrVKmu9l5eX5s6dq23btumtt97S6tWr9dhjj1nrx44dq4qKCq1du1ZbtmzR888/ryZNmkiSpkyZou3bt+vTTz/Vjh079Morryg0NPSKHO/ZXnfs2KG0tDSdPHlSXbp00SeffKKtW7dqzJgxGjp0qNavX29tM3nyZM2YMcPq67333lN4eLgkWXVffPGFCgsLtWzZsiqf97HHHtNHH32kt956Sxs3blTbtm2VlpamI0eOuNX9/ve/1+zZs7Vhwwb5+Pjo//2//3dFjhu4Knj6DsgAGrZhw4YZb29vExgYaAIDA40kExkZafLz840xxpSXl5tmzZqZJUuWWNvccMMN5qmnnrK+b926tenXr5/bfjMyMsxtt9123uddunSpueaaa6zvExIS3Pb5U3feeacZMWKEreOTZPz9/a3jCwwMNH/+859NQUGBkWTmzJlz0X3079/fPProo8YYY8rKyoyfn59ZsGBBlbVn97tp0ya35cOGDTMDBgwwxhhz7Ngx06hRI/Puu+9a60+dOmWioqLMzJkzjTHGrFmzxkgyX3zxhVXzySefGEmmvLy8OkMAXLU4EwWgxt1yyy3avHmzNm/erPXr1ystLU233Xabvv32W/n7+2vo0KF68803JUkbN27U1q1bNXz4cLd9pKSknPP9jh07rO+/+OIL9e3bVy1btlTTpk01dOhQHT58WCdOnJAkPfzww5o+fbq6d++uadOmuU1sf+ihh7R48WJ17txZjz32mNatW1et43vppZes49u8ebN++ctfWusSExPdaisrK/XMM88oISFBzZs3V5MmTfTZZ59p//79kqQdO3aooqJCffv2rVYPP7V3716dPn1a3bt3t5Y1atRISUlJbmMmSTfccIP158jISEnSwYMHbT83cDUhRAGocYGBgWrbtq3atm2rrl276vXXX9fx48e1YMECSdKoUaO0atUqfffdd1q4cKFuvfVWtW7d+pL3v2/fPt1xxx264YYb9NFHHyk/P9+aM3Xq1CnrOf75z39q6NCh2rJlixITE/Xyyy9LkhXo/v3f/10//PCD+vbtq4kTJ17y80dERFjH17ZtWwUGBrod+0/NmjVLf/zjH/X4449rzZo12rx5s9LS0qw+AwICLvl5r4RGjRpZf3Y4HJJ+nJMF4OIIUQBqncPhkJeXl8rLyyVJCQkJSkxM1IIFC/Tee+9VOS/n66+/Puf79u3bS5Ly8/Plcrk0e/Zs3XzzzYqPj9cPP/xwzj6io6P1m9/8RsuWLdOjjz5qhThJatGihYYNG6Z33nlHc+bM0WuvvXYlD9ny1VdfacCAAfr1r3+tTp06qU2bNvrHP/5hrY+Li1NAQIA1qf7nfH19Jf14Rut8rrvuOvn6+uqrr76ylp0+fVp5eXnq0KHDFToSAD6ebgBAw1dRUaGioiJJP74T7k9/+pOOHTumO++806oZNWqUxo0bp8DAQN19993n7OOrr77SzJkzlZ6erlWrVmnp0qX65JNPJElt27bV6dOn9fLLL+vOO+/UV199pfnz57ttP378eN12222Kj4/Xv/71L61Zs8YKYVOnTlWXLl10/fXXq6KiQitWrLDWXWlxcXH68MMPtW7dOjVr1kwvvviiiouLrXDj7++vxx9/XI899ph8fX3VvXt3HTp0SNu2bdPIkSMVFhamgIAAZWVl6dprr5W/v7+Cg4PdniMwMFAPPfSQ/uM//kPNmzdXq1atNHPmTJ04cUIjR46skeMCrkaciQJQ47KyshQZGanIyEglJycrLy9PS5cutd6eL0mDBw+Wj4+PBg8eLH9//3P28eijj2rDhg268cYbNX36dL344otKS0uTJHXq1Ekvvviinn/+eXXs2FHvvvuuMjMz3bavrKzU2LFj1b59e/Xr10/x8fH6z//8T0k/nt2ZPHmybrjhBvXq1Uve3t5avHhxjYzFk08+qZtuuklpaWnq06ePIiIizvmk8SlTpujRRx/V1KlT1b59e2VkZFjzlHx8fDR37ly9+uqrioqK0oABA6p8nhkzZuiee+7R0KFDddNNN2nPnj367LPP1KxZsxo5LuBq5DDGGE83AQD79u3Tddddp7y8PN10001u62JiYjR+/HiNHz/eM80BQBW4nAfAo06fPq3Dhw/rySef1M0333xOgAKAuorLeQA86quvvlJkZKTy8vLOmcfkac8995yaNGlS5eO2227zdHsAPIzLeQBwHkeOHDnnE77PCggIUMuWLWu5IwB1CSEKAADABi7nAQAA2ECIAgAAsIEQBQAAYAMhCgAAwAZCFAAAgA2EKAAAABsIUQAAADYQogAAAGz4/y/xZ0FK6qSHAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_52.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAloAAAHHCAYAAABnS/bqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABJH0lEQVR4nO3dfVxUdf7//+cAciHGoKGAhoIiakpaKoRWWFKYZrruflJyTf160e7qlh9rS9vMaitMK91cN81W7ZOVZrqbW65lqNsnJSXUvMxV07QCFI1BBa+Y9+8PP55fE6igHIaLx/12mxvOeb/mnNd534h5ds6ZMw5jjBEAAAAqnY+3GwAAAKitCFoAAAA2IWgBAADYhKAFAABgE4IWAACATQhaAAAANiFoAQAA2ISgBQAAYBOCFgAAgE0IWgDqvKeffloOh6NctQ6HQ08//bSt/fTo0UM9evSotusDUH4ELQDVxoIFC+RwOKyHn5+fmjVrpmHDhun777/3dnvVTnR0tMd8NWnSRLfeeqv+/ve/V8r6i4qK9PTTT2vt2rWVsj6gLiJoAah2nn32Wb311luaPXu27r77bi1cuFDJyck6deqULdt78sknVVxcbMu67dapUye99dZbeuutt/Too4/qhx9+0IABAzR79uyrXndRUZGeeeYZghZwFfy83QAA/Nzdd9+tLl26SJJGjhypsLAwvfjii1q+fLnuu+++St+en5+f/Pxq5p/DZs2a6de//rX1/IEHHlBsbKymT5+u3/zmN17sDIDEES0ANcCtt94qSdq3b5/H8q+//lq/+tWv1KhRIwUGBqpLly5avny5R83Zs2f1zDPPqHXr1goMDNS1116rW265RatWrbJqyrpG6/Tp0/rv//5vNW7cWNdcc43uvfdefffdd6V6GzZsmKKjo0stL2ud8+fP1x133KEmTZooICBA119/vV577bUKzcXlREREqF27dtq/f/8l6w4fPqwRI0YoPDxcgYGB6tixo958801r/MCBA2rcuLEk6ZlnnrFOT9p9fRpQ29TM/4UDUKccOHBAktSwYUNr2Y4dO9S9e3c1a9ZMEyZMUHBwsN577z31799fS5cu1S9+8QtJ5wNPenq6Ro4cqYSEBBUWFurLL7/Upk2bdOedd150myNHjtTChQt1//33q1u3blq9erX69OlzVfvx2muvqX379rr33nvl5+enf/7zn/rd734nt9utMWPGXNW6Lzh79qwOHTqka6+99qI1xcXF6tGjh/bu3auxY8cqJiZGS5Ys0bBhw1RQUKCHH35YjRs31muvvabf/va3+sUvfqEBAwZIkm644YZK6ROoMwwAVBPz5883ksynn35qjhw5Yg4dOmTef/9907hxYxMQEGAOHTpk1fbs2dPEx8ebU6dOWcvcbrfp1q2bad26tbWsY8eOpk+fPpfc7uTJk81P/xxu2bLFSDK/+93vPOruv/9+I8lMnjzZWjZ06FDTokWLy67TGGOKiopK1aWmppqWLVt6LEtOTjbJycmX7NkYY1q0aGHuuusuc+TIEXPkyBHz1VdfmUGDBhlJ5ve///1F1zdjxgwjySxcuNBadubMGZOUlGQaNGhgCgsLjTHGHDlypNT+AqgYTh0CqHZSUlLUuHFjRUVF6Ve/+pWCg4O1fPlyXXfddZKkY8eOafXq1brvvvt0/Phx5efnKz8/X0ePHlVqaqr27NljfUoxNDRUO3bs0J49e8q9/RUrVkiSHnroIY/l48aNu6r9CgoKsv7tcrmUn5+v5ORkffPNN3K5XFe0zk8++USNGzdW48aN1bFjRy1ZskRDhgzRiy++eNHXrFixQhEREUpLS7OW1atXTw899JBOnDihf//731fUC4DSOHUIoNqZNWuW4uLi5HK5NG/ePH322WcKCAiwxvfu3StjjCZNmqRJkyaVuY7Dhw+rWbNmevbZZ9WvXz/FxcWpQ4cO6tWrl4YMGXLJU2DffvutfHx81KpVK4/lbdq0uar9WrdunSZPnqzMzEwVFRV5jLlcLjmdzgqvMzExUc8995wcDofq16+vdu3aKTQ09JKv+fbbb9W6dWv5+Hj+v3a7du2scQCVg6AFoNpJSEiwPnXYv39/3XLLLbr//vu1e/duNWjQQG63W5L06KOPKjU1tcx1xMbGSpJuu+027du3Tx988IE++eQTvfHGG5o+fbpmz56tkSNHXnWvF7vRaUlJicfzffv2qWfPnmrbtq1eeeUVRUVFyd/fXytWrND06dOtfaqosLAwpaSkXNFrAdiPoAWgWvP19VV6erpuv/12/eUvf9GECRPUsmVLSedPd5UnZDRq1EjDhw/X8OHDdeLECd122216+umnLxq0WrRoIbfbrX379nkcxdq9e3ep2oYNG6qgoKDU8p8fFfrnP/+p06dPa/ny5WrevLm1fM2aNZftv7K1aNFCW7duldvt9jiq9fXXX1vj0sVDJIDy4xotANVejx49lJCQoBkzZujUqVNq0qSJevTooTlz5ignJ6dU/ZEjR6x/Hz161GOsQYMGio2N1enTpy+6vbvvvluS9Oqrr3osnzFjRqnaVq1ayeVyaevWrdaynJycUndn9/X1lSQZY6xlLpdL8+fPv2gfdundu7dyc3O1ePFia9m5c+c0c+ZMNWjQQMnJyZKk+vXrS1KZQRJA+XBEC0CN8Ic//EH/9V//pQULFug3v/mNZs2apVtuuUXx8fEaNWqUWrZsqby8PGVmZuq7777TV199JUm6/vrr1aNHD3Xu3FmNGjXSl19+qffff19jx4696LY6deqktLQ0/fWvf5XL5VK3bt2UkZGhvXv3lqodNGiQHn/8cf3iF7/QQw89pKKiIr322muKi4vTpk2brLq77rpL/v7+6tu3rx588EGdOHFCc+fOVZMmTcoMi3YaPXq05syZo2HDhik7O1vR0dF6//33tW7dOs2YMUPXXHONpPMX719//fVavHix4uLi1KhRI3Xo0EEdOnSo0n6BGs3bH3sEgAsu3N4hKyur1FhJSYlp1aqVadWqlTl37pwxxph9+/aZBx54wERERJh69eqZZs2amXvuuce8//771uuee+45k5CQYEJDQ01QUJBp27atef75582ZM2esmrJuxVBcXGweeughc+2115rg4GDTt29fc+jQoTJvd/DJJ5+YDh06GH9/f9OmTRuzcOHCMte5fPlyc8MNN5jAwEATHR1tXnzxRTNv3jwjyezfv9+qq8jtHS5364qLrS8vL88MHz7chIWFGX9/fxMfH2/mz59f6rXr1683nTt3Nv7+/tzqAbgCDmN+chwbAAAAlYZrtAAAAGxC0AIAALAJQQsAAMAmBC0AAACbELQAAABsQtACAACwCTcs9SK3260ffvhB11xzDV91AQBADWGM0fHjx9W0adNSX87+cwQtL/rhhx8UFRXl7TYAAMAVOHTokK677rpL1hC0vOjC11wcOnRIISEhXu4GAACUR2FhoaKioqz38UshaHnRhdOFISEhBC0AAGqY8lz2w8XwAAAANiFoAQAA2ISgBQAAYBOu0aoBSkpKdPbsWW+3UWPUq1dPvr6+3m4DAACCVnVmjFFubq4KCgq83UqNExoaqoiI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Xe3founTp5trrrnGnDhxwq4WvYJTh15y5swZZWdnKyUlxVrm4+OjlJQUZWZmerGz6qMy5qioqEhnz55Vo0aN7GrTq652jowxysjI0O7du3XbbbfZ2arXXOkcPfvss2rSpIlGjBhRFW16zZXOz4kTJ9SiRQtFRUWpX79+2rFjR1W06xVXMkfLly9XUlKSxowZo/DwcHXo0EEvvPCCSkpKqqrtKlUZf6//9re/adCgQQoODrarTa8gaHlJfn6+SkpKFB4e7rE8PDxcubm5XuqqeqmMOXr88cfVtGlTj//4a5MrnSOXy6UGDRrI399fffr00cyZM3XnnXfa3a5XXMkcff755/rb3/6muXPnVkWLXnUl89OmTRvNmzdPH3zwgRYuXCi3261u3brpu+++q4qWq9yVzNE333yj999/XyUlJVqxYoUmTZqkl19+Wc8991xVtFzlrvbv9caNG7V9+3aNHDnSrha9xs/bDQB2mTJlihYtWqS1a9fWiQt1K+Kaa67Rli1bdOLECWVkZGj8+PFq2bKlevTo4e3WvO748eMaMmSI5s6dq7CwMG+3Uy0lJSUpKSnJet6tWze1a9dOc+bM0Z/+9CcvdlZ9uN1uNWnSRK+//rp8fX3VuXNnff/995o2bZomT57s7faqnb/97W+Kj49XQkKCt1updAQtLwkLC5Ovr6/y8vI8lufl5SkiIsJLXVUvVzNHL730kqZMmaJPP/1UN9xwg51tetWVzpGPj49iY2MlSZ06ddKuXbuUnp5eK4NWRedo3759OnDggPr27Wstc7vdkiQ/Pz/t3r1brVq1srfpKlQZf4vq1aunG2+8UXv37rWjRa+7kjmKjIxUvXr15Ovray1r166dcnNzdebMGfn7+9vac1W7mt+jkydPatGiRXr22WftbNFrOHXoJf7+/urcubMyMjKsZW63WxkZGR7/p1iXXekcTZ06VX/605+0cuVKdenSpSpa9ZrK+j1yu906ffq0HS16XUXnqG3bttq2bZu2bNliPe69917dfvvt2rJli6KioqqyfdtVxu9QSUmJtm3bpsjISLva9KormaPu3btr7969VkiXpP/85z+KjIysdSFLurrfoyVLluj06dP69a9/bXeb3uHtq/HrskWLFpmAgACzYMECs3PnTjN69GgTGhpqfUx6yJAhZsKECVb96dOnzebNm83mzZtNZGSkefTRR83mzZvNnj17vLULtqvoHE2ZMsX4+/ub999/3+Njw8ePH/fWLtiuonP0wgsvmE8++cTs27fP7Ny507z00kvGz8/PzJ0711u7YLuKztHP1fZPHVZ0fp555hnz8ccfm3379pns7GwzaNAgExgYaHbs2OGtXbBdRefo4MGD5pprrjFjx441u3fvNh9++KFp0qSJee6557y1C7a70v/ObrnlFjNw4MCqbrfKELS8bObMmaZ58+bG39/fJCQkmC+++MIaS05ONkOHDrWe79+/30gq9UhOTq76xqtQReaoRYsWZc7R5MmTq77xKlSROfrjH/9oYmNjTWBgoGnYsKFJSkoyixYt8kLXVasic/RztT1oGVOx+Rk3bpxVGx4ebnr37m02bdrkha6rVkV/h9avX28SExNNQECAadmypXn++efNuXPnqrjrqlXROfr666+NJPPJJ59UcadVx2GMMV46mAYAAFCrcY0WAACATQhaAAAANiFoAQAA2ISgBQAAYBOCFgAAgE0IWgAAADYhaAEAANiEoAUAdcSwYcPUv39/b7cB1CkELQBeN2zYMDkcDutx7bXXqlevXtq6dau3W6sUP923C49bbrnFtu0dOHBADodDW7Zs8Vj+5z//WQsWLLBtuwBKI2gBqBZ69eqlnJwc5eTkKCMjQ35+frrnnnu83ValmT9/vrV/OTk5Wr58eZl1Z8+eta0Hp9Op0NBQ29YPoDSCFoBqISAgQBEREYqIiFCnTp00YcIEHTp0SEeOHNEdd9yhsWPHetQfOXJE/v7+ysjIkCRFR0frT3/6k9LS0hQcHKxmzZpp1qxZHq955ZVXFB8fr+DgYEVFRel3v/udTpw4YY1/++236tu3rxo2bKjg4GC1b99eK1askCT9+OOPGjx4sBo3bqygoCC1bt1a8+fPL/f+hYaGWvsXERGhRo0aWUeeFi9erOTkZAUGBurtt9/W0aNHlZaWpmbNmql+/fqKj4/Xu+++67E+t9utqVOnKjY2VgEBAWrevLmef/55SVJMTIwk6cYbb5TD4VCPHj0klT51ePr0aT300ENq0qSJAgMDdcsttygrK8saX7t2rRwOhzIyMtSlSxfVr19f3bp10+7du8u930BdR9ACUO2cOHFCCxcuVGxsrK699lqNHDlS77zzjk6fPm3VLFy4UM2aNdMdd9xhLZs2bZo6duyozZs3a8KECXr44Ye1atUqa9zHx0evvvqqduzYoTfffFOrV6/WY489Zo2PGTNGp0+f1meffaZt27bpxRdfVIMGDSRJkyZN0s6dO/Wvf/1Lu3bt0muvvaawsLBK2d8Lve7atUupqak6deqUOnfurI8++kjbt2/X6NGjNWTIEG3cuNF6zcSJEzVlyhSrr3feeUfh4eGSZNV9+umnysnJ0bJly8rc7mOPPaalS5fqzTff1KZNmxQbG6vU1FQdO3bMo+6Pf/yjXn75ZX355Zfy8/PT//t//69S9huoE7z9rdYAMHToUOPr62uCg4NNcHCwkWQiIyNNdna2McaY4uJi07BhQ7N48WLrNTfccIN5+umnrectWrQwvXr18ljvwIEDzd13333R7S5ZssRce+211vP4+HiPdf5U3759zfDhw69o/ySZwMBAa/+Cg4PN3//+d7N//34jycyYMeOy6+jTp4955JFHjDHGFBYWmoCAADN37twyay+sd/PmzR7Lhw4davr162eMMebEiROmXr165u2337bGz5w5Y5o2bWqmTp1qjDFmzZo1RpL59NNPrZqPPvrISDLFxcUVmQKgzuKIFoBq4fbbb9eWLVu0ZcsWbdy4Uampqbr77rv17bffKjAwUEOGDNG8efMkSZs2bdL27ds1bNgwj3UkJSWVer5r1y7r+aeffqqePXuqWbNmuuaaazRkyBAdPXpURUVFkqSHHnpIzz33nLp3767Jkyd7XIz/29/+VosWLVKnTp302GOPaf369RXav+nTp1v7t2XLFt15553WWJcuXTxqS0pK9Kc//Unx8fFq1KiRGjRooI8//lgHDx6UJO3atUunT59Wz549K9TDT+3bt09nz55V9+7drWX16tVTQkKCx5xJ0g033GD9OzIyUpJ0+PDhK942UJcQtABUC8HBwYqNjVVsbKy6du2qN954QydPntTcuXMlSSNHjtSqVav03Xffaf78+brjjjvUokWLcq//wIEDuueee3TDDTdo6dKlys7Otq7hOnPmjLWNb775RkOGDNG2bdvUpUsXzZw5U5Ks0Pff//3f+uGHH9SzZ089+uij5d5+RESEtX+xsbEKDg722PefmjZtmv785z/r8ccf15o1a7RlyxalpqZafQYFBZV7u5WhXr161r8dDoek89eIAbg8ghaAasnhcMjHx0fFxcWSpPj4eHXp0kVz587VO++8U+Z1Ql988UWp5+3atZMkZWdny+126+WXX9bNN9+suLg4/fDDD6XWERUVpd/85jdatmyZHnnkESvoSVLjxo01dOhQLVy4UDNmzNDrr79embtsWbdunfr166df//rX6tixo1q2bKn//Oc/1njr1q0VFBRkfRDg5/z9/SWdPzJ2Ma1atZK/v7/WrVtnLTt79qyysrJ0/fXXV9KeAPDzdgMAIJ3/BFxubq6k85/w+8tf/qITJ06ob9++Vs3IkSM1duxYBQcH6xe/+EWpdaxbt05Tp05V//79tWrVKi1ZskQfffSRJCk2NlZnz57VzJkz1bdvX61bt06zZ8/2eP24ceN09913Ky4uTj/++KPWrFljBbWnnnpKnTt3Vvv27XX69Gl9+OGH1lhla926td5//32tX79eDRs21CuvvKK8vDwrAAUGBurxxx/XY489Jn9/f3Xv3l1HjhzRjh07NGLECDVp0kRBQUFauXKlrrvuOgUGBsrpdHpsIzg4WL/97W/1hz/8QY0aNVLz5s01depUFRUVacSIEbbsF1AXcUQLQLWwcuVKRUZGKjIyUomJicrKytKSJUusWxNIUlpamvz8/JSWlqbAwMBS63jkkUf05Zdf6sYbb9Rzzz2nV155RampqZKkjh076pVXXtGLL76oDh066O2331Z6errH60tKSjRmzBi1a9dOvXr1UlxcnP76179KOn+UaOLEibrhhht02223ydfXV4sWLbJlLp588knddNNNSk1NVY8ePRQREVHqju6TJk3SI488oqeeekrt2rXTwIEDreum/Pz89Oqrr2rOnDlq2rSp+vXrV+Z2pkyZol/+8pcaMmSIbrrpJu3du1cff/yxGjZsaMt+AXWRwxhjvN0EAJTHgQMH1KpVK2VlZemmm27yGIuOjta4ceM0btw47zQHAGXg1CGAau/s2bM6evSonnzySd18882lQhYAVFecOgRQ7a1bt06RkZHKysoqdV2Vt73wwgtq0KBBmY+7777b2+0B8DJOHQLAVTh27FipO6lfEBQUpGbNmlVxRwCqE4IWAACATTh1CAAAYBOCFgAAgE0IWgAAADYhaAEAANiEoAUAAGATghYAAIBNCFoAAAA2IWgBAADY5P8Doslh1gPc9DwAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_53.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlEAAAHHCAYAAACfqw0dAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABP/0lEQVR4nO3dfVhUZf4/8PfMIAygDCrCDISCCqmJ4oogamI5GxaZZLshmaKLsdtq6aLr0ypUa2GU5VpulG3ipiZZbmtkFKHWLyFElBKf1gxDVwZFYlBAUOb+/eGXs008CEfg8PB+XddcyH0+55zPuS+VN+ecOaMSQggQERERUYuolW6AiIiIqDNiiCIiIiKSgSGKiIiISAaGKCIiIiIZGKKIiIiIZGCIIiIiIpKBIYqIiIhIBoYoIiIiIhkYooiIiIhkYIgioi7tmWeegUqlalatSqXCM88806b9TJo0CZMmTeqw2yOi5mOIIqJ2kZycDJVKJb1sbGzg4eGBOXPm4L///a/S7XU4Xl5eVvPl6uqKu+++G//6179aZfuVlZV45plnsH///lbZHlF3xBBFRO3queeew7vvvoukpCTcf//92Lp1K0JCQnDt2rU22d+qVatQVVXVJttua/7+/nj33Xfx7rvvYsmSJbhw4QKmT5+OpKSk2952ZWUlnn32WYYoottgo3QDRNS93H///QgICAAAzJs3Dy4uLnjxxRexe/duPProo62+PxsbG9jYdM7/6jw8PPD4449L38+ePRuDBw/Gq6++ij/84Q8KdkZEAM9EEZHC7r77bgDAmTNnrMZPnjyJ3/zmN+jTpw+0Wi0CAgKwe/duq5rr16/j2WefhY+PD7RaLfr27YsJEyYgPT1dqmnonqjq6mr86U9/Qr9+/dCrVy889NBDOH/+fL3e5syZAy8vr3rjDW1z8+bNuPfee+Hq6go7OzsMGzYMb7zxRovm4lb0ej2GDh2KgoKCJusuXryI6OhouLm5QavVYuTIkdiyZYu0/OzZs+jXrx8A4Nlnn5UuGbb1/WBEXU3n/PWMiLqMs2fPAgB69+4tjR07dgzjx4+Hh4cHli9fDkdHR7z//vsIDw/Hhx9+iIcffhjAzTCTkJCAefPmITAwEOXl5Th06BAOHz6MX//6143uc968edi6dSsee+wxjBs3Dnv37kVYWNhtHccbb7yBu+66Cw899BBsbGzw8ccf449//CMsFgvmz59/W9uuc/36dZw7dw59+/ZttKaqqgqTJk3C999/jwULFsDb2xs7d+7EnDlzUFZWhoULF6Jfv35444038OSTT+Lhhx/G9OnTAQAjRoxolT6Jug1BRNQONm/eLACIL774Qly6dEmcO3dOfPDBB6Jfv37Czs5OnDt3TqqdPHmy8PPzE9euXZPGLBaLGDdunPDx8ZHGRo4cKcLCwprcb3x8vPj5f3V5eXkCgPjjH/9oVffYY48JACI+Pl4ai4qKEgMGDLjlNoUQorKysl5daGioGDhwoNVYSEiICAkJabJnIYQYMGCAuO+++8SlS5fEpUuXxLfffitmzJghAIinnnqq0e2tX79eABBbt26VxmpqakRwcLDo2bOnKC8vF0IIcenSpXrHS0Qtw8t5RNSujEYj+vXrB09PT/zmN7+Bo6Mjdu/ejTvuuAMAUFpair179+LRRx/FlStXUFJSgpKSEly+fBmhoaE4ffq09G4+Z2dnHDt2DKdPn272/vfs2QMAePrpp63GFy1adFvHZW9vL/3ZbDajpKQEISEh+OGHH2A2m2Vt8/PPP0e/fv3Qr18/jBw5Ejt37sSsWbPw4osvNrrOnj17oNfrERkZKY316NEDTz/9NK5evYovv/xSVi9EVB8v5xFRu9q4cSN8fX1hNpvxzjvv4KuvvoKdnZ20/Pvvv4cQAqtXr8bq1asb3MbFixfh4eGB5557DtOmTYOvry+GDx+OKVOmYNasWU1elvrxxx+hVqsxaNAgq/E777zzto7rwIEDiI+PR1ZWFiorK62Wmc1m6HS6Fm8zKCgIa9asgUqlgoODA4YOHQpnZ+cm1/nxxx/h4+MDtdr6d+ShQ4dKy4modTBEEVG7CgwMlN6dFx4ejgkTJuCxxx7DqVOn0LNnT1gsFgDAkiVLEBoa2uA2Bg8eDACYOHEizpw5g3//+9/4/PPP8fbbb+PVV19FUlIS5s2bd9u9NvaQztraWqvvz5w5g8mTJ2PIkCF45ZVX4OnpCVtbW+zZswevvvqqdEwt5eLiAqPRKGtdImp7DFFEpBiNRoOEhATcc889eP3117F8+XIMHDgQwM1LUM0JEH369MHcuXMxd+5cXL16FRMnTsQzzzzTaIgaMGAALBYLzpw5Y3X26dSpU/Vqe/fujbKysnrjvzyb8/HHH6O6uhq7d+9G//79pfF9+/bdsv/WNmDAAHz33XewWCxWZ6NOnjwpLQcaD4hE1Hy8J4qIFDVp0iQEBgZi/fr1uHbtGlxdXTFp0iS8+eabKCoqqld/6dIl6c+XL1+2WtazZ08MHjwY1dXVje7v/vvvBwBs2LDBanz9+vX1agcNGgSz2YzvvvtOGisqKqr31HCNRgMAEEJIY2azGZs3b260j7bywAMPwGQyISUlRRq7ceMGXnvtNfTs2RMhISEAAAcHBwBoMCQSUfPwTBQRKe7Pf/4zfvvb3yI5ORl/+MMfsHHjRkyYMAF+fn544oknMHDgQBQXFyMrKwvnz5/Ht99+CwAYNmwYJk2ahNGjR6NPnz44dOgQPvjgAyxYsKDRffn7+yMyMhJ///vfYTabMW7cOGRkZOD777+vVztjxgwsW7YMDz/8MJ5++mlUVlbijTfegK+vLw4fPizV3XfffbC1tcXUqVPx+9//HlevXsWmTZvg6uraYBBsSzExMXjzzTcxZ84c5ObmwsvLCx988AEOHDiA9evXo1evXgBu3gg/bNgwpKSkwNfXF3369MHw4cMxfPjwdu2XqFNT+u2BRNQ91D3iICcnp96y2tpaMWjQIDFo0CBx48YNIYQQZ86cEbNnzxZ6vV706NFDeHh4iAcffFB88MEH0npr1qwRgYGBwtnZWdjb24shQ4aI559/XtTU1Eg1DT2OoKqqSjz99NOib9++wtHRUUydOlWcO3euwbf8f/7552L48OHC1tZW3HnnnWLr1q0NbnP37t1ixIgRQqvVCi8vL/Hiiy+Kd955RwAQBQUFUl1LHnFwq8c3NLa94uJiMXfuXOHi4iJsbW2Fn5+f2Lx5c711MzMzxejRo4WtrS0fd0Akg0qIn51/JiIiIqJm4T1RRERERDIwRBERERHJwBBFREREJANDFBEREZEMDFFEREREMjBEEREREcnAh222IYvFggsXLqBXr178iAUiIqJOQgiBK1euwN3dvd6Hef8cQ1QbunDhAjw9PZVug4iIiGQ4d+4c7rjjjkaXM0S1obqPVzh37hycnJwU7oaIiIiao7y8HJ6entLP8cYwRLWhukt4Tk5ODFFERESdzK1uxeGN5UREREQyMEQRERERycAQRURERCQD74lSWG1tLa5fv650G4rr0aMHNBqN0m0QERE1G0OUQoQQMJlMKCsrU7qVDsPZ2Rl6vZ7P1CIiok6BIUohdQHK1dUVDg4O3To4CCFQWVmJixcvAgAMBoPCHREREd0aQ5QCamtrpQDVt29fpdvpEOzt7QEAFy9ehKurKy/tERFRh8cbyxVQdw+Ug4ODwp10LHXzwXvEiIioM2CIUlB3voTXEM4HERF1JgxRRERERDIwRBERERHJwBBFLTJnzhyEh4fXG9+/fz9UKhXKysqwf/9+TJs2DQaDAY6OjvD398e2bdvav1kiIpIUmauQeaYEReYqpVvpMvjuPGp1mZmZGDFiBJYtWwY3NzekpqZi9uzZ0Ol0ePDBB5Vuj4io20nJKcSKXUdhEYBaBSRM90PEmP5Kt9XpMURRq1u5cqXV9wsXLsTnn3+OXbt2MUQREbWzInOVFKAAwCKAlbvyMdG3Hww6e2Wb6+R4Oa8L6AynaM1mM/r06aN0G0RE3U5BSYUUoOrUCoGzJZXKNNSF8ExUJ6fEKdrU1FT07NnTaqy2trbR+vfffx85OTl4880327QvIiKqz9vFEWoVrIKURqWClwufVXi7eCaqE2vsFG1bn5G65557kJeXZ/V6++23G6zdt28f5s6di02bNuGuu+5q076IiKg+g84eCdP9oPm/Z/FpVCq8MH04L+W1Ap6J6sSaOkXblv84HB0dMXjwYKux8+fP16v78ssvMXXqVLz66quYPXt2m/VDRERNixjTHxN9++FsSSW8XBwYoFoJQ1Qn1pFP0e7fvx8PPvggXnzxRcTExCjdDhFRt2fQ2TM8tTJezuvEOuop2n379iEsLAxPP/00HnnkEZhMJphMJpSWliraFxERUWvimahOriOeot2yZQsqKyuRkJCAhIQEaTwkJAT79+9XrjEiIqJWpBJCiFuXkRzl5eXQ6XQwm81wcnKSxq9du4aCggJ4e3tDq9Uq2GHHwnkhIqKOoLGf37/Ey3lEREREMjBEEREREcnAEEVEREQkA0MUERERkQyKh6iNGzfCy8sLWq0WQUFBOHjwYJP1O3fuxJAhQ6DVauHn54c9e/ZYLRdCIC4uDgaDAfb29jAajTh9+rRVzfPPP49x48bBwcEBzs7OTe7v8uXLuOOOO6BSqVBWVibnEBvFe/qtcT6IiKgzUTREpaSkIDY2FvHx8Th8+DBGjhyJ0NBQXLx4scH6zMxMREZGIjo6GkeOHEF4eDjCw8ORn58v1SQmJmLDhg1ISkpCdnY2HB0dERoaimvXrkk1NTU1+O1vf4snn3zylj1GR0djxIgRt3+wP9OjRw8AQGUlP/zx5+rmo25+iIiIOjJFH3EQFBSEMWPG4PXXXwcAWCwWeHp64qmnnsLy5cvr1UdERKCiogKpqanS2NixY+Hv74+kpCQIIeDu7o7FixdjyZIlAACz2Qw3NzckJydjxowZVttLTk7GokWLGj3D9MYbbyAlJQVxcXGYPHkyfvrpp1ueufq5pt4iWVRUhLKyMri6usLBwQGq/3tgZnckhEBlZSUuXrwIZ2dnGAwGpVsiIqJurLmPOFDsYZs1NTXIzc3FihUrpDG1Wg2j0YisrKwG18nKykJsbKzVWGhoKD766CMAQEFBAUwmE4xGo7Rcp9MhKCgIWVlZ9UJUU44fP47nnnsO2dnZ+OGHH5q1TnV1Naqrq6Xvy8vLG63V6/UA0OhZt+7I2dlZmhciIqKOTrEQVVJSgtraWri5uVmNu7m54eTJkw2uYzKZGqw3mUzS8rqxxmqao7q6GpGRkXjppZfQv3//ZoeohIQEPPvss82qValUMBgMcHV1xfXr15vdW1fVo0cPaDQapdsgIiJqNn7sSwNWrFiBoUOH4vHHH2/xej8/U1ZeXg5PT88m19FoNAwPREREnZBiN5a7uLhAo9GguLjYary4uLjRSzp6vb7J+rqvLdlmQ/bu3YudO3fCxsYGNjY2mDx5stRzfHx8o+vZ2dnBycnJ6kVERERdk2IhytbWFqNHj0ZGRoY0ZrFYkJGRgeDg4AbXCQ4OtqoHgPT0dKne29sber3eqqa8vBzZ2dmNbrMhH374Ib799lvk5eUhLy8Pb7/9NgDg//2//4f58+c3eztERETUdSl6OS82NhZRUVEICAhAYGAg1q9fj4qKCsydOxcAMHv2bHh4eCAhIQEAsHDhQoSEhGDdunUICwvDjh07cOjQIbz11lsAbt5ntGjRIqxZswY+Pj7w9vbG6tWr4e7ujvDwcGm/hYWFKC0tRWFhIWpra5GXlwcAGDx4MHr27IlBgwZZ9VlSUgIAGDp0aIvenUdERERdl6IhKiIiApcuXUJcXBxMJhP8/f2RlpYm3RheWFgItfp/J8vGjRuH7du3Y9WqVVi5ciV8fHzw0UcfYfjw4VLN0qVLUVFRgZiYGJSVlWHChAlIS0uDVquVauLi4rBlyxbp+1GjRgEA9u3bh0mTJrXxURMREVFXoOhzorq65j5ngoiIiDqO5v78VvxjX4iIiIg6I4YoIiIiIhkYooiIiIhkYIgiIiIikoEhioiIiEgGhigiIiIiGRiiiIiIiGRgiCIiIiKSgSGKiIiISAaGKCIiIiIZGKKIiIiIZGCIIiIiIpKBIYqIiIhIBoYoIiIiIhkYooiIiIhkYIgiIiIi2YrMVcg8U4Iic5XSrbQ7G6UbICIios4pJacQK3YdhUUAahWQMN0PEWP6K91Wu+GZKCIiImqxInOVFKAAwCKAlbvyu9UZKYYoIiIiarGCkgopQNWpFQJnSyqVaUgBDFFERETUYt4ujlCrrMc0KhW8XByUaUgBDFFERETUYgadPRKm+0GjupmkNCoVXpg+HAadvcKdtR/eWE5ERESyRIzpj4m+/XC2pBJeLg7dKkABDFFERER0Gww6+24Xnurwch4RERGRDAxRRERERDIwRBERERHJwBBFREREJANDFBEREZEMDFFEREREMjBEEREREcnAEEVEREQkA0MUERERkQwMUUREREQyMEQRERERycAQRURERCSD4iFq48aN8PLyglarRVBQEA4ePNhk/c6dOzFkyBBotVr4+flhz549VsuFEIiLi4PBYIC9vT2MRiNOnz5tVfP8889j3LhxcHBwgLOzc719fPvtt4iMjISnpyfs7e0xdOhQ/O1vf7vtYyUiIqKuQ9EQlZKSgtjYWMTHx+Pw4cMYOXIkQkNDcfHixQbrMzMzERkZiejoaBw5cgTh4eEIDw9Hfn6+VJOYmIgNGzYgKSkJ2dnZcHR0RGhoKK5duybV1NTU4Le//S2efPLJBveTm5sLV1dXbN26FceOHcNf/vIXrFixAq+//nrrTgARERF1WiohhFBq50FBQRgzZowUTiwWCzw9PfHUU09h+fLl9eojIiJQUVGB1NRUaWzs2LHw9/dHUlIShBBwd3fH4sWLsWTJEgCA2WyGm5sbkpOTMWPGDKvtJScnY9GiRSgrK7tlr/Pnz8eJEyewd+/eZh9feXk5dDodzGYznJycmr0eERERKae5P78VOxNVU1OD3NxcGI3G/zWjVsNoNCIrK6vBdbKysqzqASA0NFSqLygogMlksqrR6XQICgpqdJvNZTab0adPnyZrqqurUV5ebvUiIiKirkmxEFVSUoLa2lq4ublZjbu5ucFkMjW4jslkarK+7mtLttkcmZmZSElJQUxMTJN1CQkJ0Ol00svT01P2PomIiKhjU/zG8o4uPz8f06ZNQ3x8PO67774ma1esWAGz2Sy9zp07105dEhERUXtTLES5uLhAo9GguLjYary4uBh6vb7BdfR6fZP1dV9bss2mHD9+HJMnT0ZMTAxWrVp1y3o7Ozs4OTlZvYiIiKhrUixE2draYvTo0cjIyJDGLBYLMjIyEBwc3OA6wcHBVvUAkJ6eLtV7e3tDr9db1ZSXlyM7O7vRbTbm2LFjuOeeexAVFYXnn3++ResSERFR12ej5M5jY2MRFRWFgIAABAYGYv369aioqMDcuXMBALNnz4aHhwcSEhIAAAsXLkRISAjWrVuHsLAw7NixA4cOHcJbb70FAFCpVFi0aBHWrFkDHx8feHt7Y/Xq1XB3d0d4eLi038LCQpSWlqKwsBC1tbXIy8sDAAwePBg9e/ZEfn4+7r33XoSGhiI2Nla6n0qj0aBfv37tN0FERETUcQmFvfbaa6J///7C1tZWBAYGim+++UZaFhISIqKioqzq33//feHr6ytsbW3FXXfdJT755BOr5RaLRaxevVq4ubkJOzs7MXnyZHHq1CmrmqioKAGg3mvfvn1CCCHi4+MbXD5gwIAWHZvZbBYAhNlsbtF6RNS1XCirFAe+vyQulFUq3QoRNUNzf34r+pyoro7PiSKilJxCrNh1FBYBqFVAwnQ/RIzpr3RbRNSEDv+cKCKirq7IXCUFKACwCGDlrnwUmauUbYyIWgVDFBFRGykoqZACVJ1aIXC2pFKZhoioVTFEERG1EW8XR6hV1mMalQpeLg7KNERErYohioiojRh09kiY7geN6maS0qhUeGH6cBh09gp3RkStQdFHHBARdXURY/pjom8/nC2phJeLAwMUURfCEEVE1MYMOnuGJ6IuiJfziIiIiGRgiCIiIiKSgSGKiIiISAaGKCKibqjIXIXMMyV88CfRbeCN5URE3Qw/ioaodfBMFBFRN8KPoiFqPQxRRETdCD+Khqj1MEQREXUj/CgaotbDEEVE1I3wo2iIWg9vLCci6mb4UTRErYMhioioG+JH0RDdPl7OIyIiIpKBIYqIiIhIBoYoIiIiIhkYooiIiIhkYIgiIiIikoEhioiIiEgGhigiIiIiGRiiiIiIiGRgiCIiIiKSgSGKiIiISAaGKCIiAEXmKmSeKUGRuUrpVoiok+Bn5xFRt5eSU4gVu47CIgC1CkiY7oeIMf2VbouIOjieiSKibq3IXCUFKACwCGDlrnyekSKiW2KIIqJuraCkQgpQdWqFwNmSSmUaIqJOgyGKiLo1bxdHqFXWYxqVCl4uDso0RESdBkMUEXVrBp09Eqb7QaO6maQ0KhVemD4cBp29wp0RUUfHG8uJqNuLGNMfE3374WxJJbxcHBigiKhZGKKIiHDzjBTDExG1BC/nERF1Q3wuFtHtUzxEbdy4EV5eXtBqtQgKCsLBgwebrN+5cyeGDBkCrVYLPz8/7Nmzx2q5EAJxcXEwGAywt7eH0WjE6dOnrWqef/55jBs3Dg4ODnB2dm5wP4WFhQgLC4ODgwNcXV3x5z//GTdu3LitYyUi6ghScgoxfu1ePLYpG+PX7kVKTqHSLRF1SoqGqJSUFMTGxiI+Ph6HDx/GyJEjERoaiosXLzZYn5mZicjISERHR+PIkSMIDw9HeHg48vPzpZrExERs2LABSUlJyM7OhqOjI0JDQ3Ht2jWppqamBr/97W/x5JNPNrif2tpahIWFoaamBpmZmdiyZQuSk5MRFxfXuhNARNTO+FwsotajEkKIW5e1jaCgIIwZMwavv/46AMBiscDT0xNPPfUUli9fXq8+IiICFRUVSE1NlcbGjh0Lf39/JCUlQQgBd3d3LF68GEuWLAEAmM1muLm5ITk5GTNmzLDaXnJyMhYtWoSysjKr8U8//RQPPvggLly4ADc3NwBAUlISli1bhkuXLsHW1rZZx1deXg6dTgez2QwnJ6dmzwsRUVvJPFOCxzZl1xt/74mxCB7UV4GOiDqe5v78VuxMVE1NDXJzc2E0Gv/XjFoNo9GIrKysBtfJysqyqgeA0NBQqb6goAAmk8mqRqfTISgoqNFtNrYfPz8/KUDV7ae8vBzHjh1rdL3q6mqUl5dbvYiIOhI+F4uo9SgWokpKSlBbW2sVVADAzc0NJpOpwXVMJlOT9XVfW7LNluzn5/toSEJCAnQ6nfTy9PRs9j6JiNoDn4tF1Hr4iINWtGLFCsTGxkrfl5eXM0jh5j0YBSUV8HZx5H/URB0An4tF1DoUC1EuLi7QaDQoLi62Gi8uLoZer29wHb1e32R93dfi4mIYDAarGn9//2b3ptfr671LsG6/jfUGAHZ2drCzs2v2frqDlJxC6SZWtQpImO6HiDH9lW6LqNvjc7GIbp9il/NsbW0xevRoZGRkSGMWiwUZGRkIDg5ucJ3g4GCregBIT0+X6r29vaHX661qysvLkZ2d3eg2G9vP0aNHrd4lmJ6eDicnJwwbNqzZ2+nu+C4gIiLqyhS9nBcbG4uoqCgEBAQgMDAQ69evR0VFBebOnQsAmD17Njw8PJCQkAAAWLhwIUJCQrBu3TqEhYVhx44dOHToEN566y0AgEqlwqJFi7BmzRr4+PjA29sbq1evhru7O8LDw6X9FhYWorS0FIWFhaitrUVeXh4AYPDgwejZsyfuu+8+DBs2DLNmzUJiYiJMJhNWrVqF+fPn80xTCxSUVEgBqk6tEDhbUsnfgImIqNNTNERFRETg0qVLiIuLg8lkgr+/P9LS0qSbuAsLC6FW/+9k2bhx47B9+3asWrUKK1euhI+PDz766CMMHz5cqlm6dCkqKioQExODsrIyTJgwAWlpadBqtVJNXFwctmzZIn0/atQoAMC+ffswadIkaDQapKam4sknn0RwcDAcHR0RFRWF5557rq2npEupexfQz4MU3wVERERdhaLPierq+Jyom/dErdyVj1ohpHcB8Z4oIiLqyJr785vvzqM2xXcBERFRV8UQRW2O7wIiIqKuSPEPICYiIiLqjBiiiIiIiGRgiCIiIiKSgSGKiIiISAaGKCIiIiIZGKKIiIiIZGCIIiIiIpKBIYo6tSJzFTLPlPBDjYmIqN3xYZvUaaXkFGLFrqOwCECtAhKm+/EjZYiIqN3wTBR1SkXmKilAATc/5HjlrnyekSIionbDEEWdUkFJhRSg6tQKgbMllco0RERE3Q5DFHVK3i6OUKusxzQqFbxcHJRpiIiIuh2GKOqUDDp7JEz3g0Z1M0lpVCq8MH04P+iYiIjaDW8sp04rYkx/TPTth7MllfBycWCAIiKidsUQRZ2aQWfP8ERERIrg5TwiIiIiGRiiiIiIiGRgiCIiIiKSgSGKiIiISAaGKCIiIiIZGKKIiIiIZGCIIiIiIpKBIYqIiIhIBoYoIiIiIhkYooiIiIhkYIgiIgJQZK5C5pkSFJmrlG6FiDoJfnYeEXV7KTmFWLHrKCwCUKuAhOl+iBjTX+m2iKiD45koIurWisxVUoACAIsAVu7K5xkpIrolhigi6tYKSiqkAFWnVgicLalUpiEi6jQYooioW/N2cYRaZT2mUang5eKgTENE1GkwRBFRt2bQ2SNhuh80qptJSqNS4YXpw2HQ2SvcGRF1dLyxnIi6vYgx/THRtx/OllTCy8WBAYqImoUhiogIN89IMTwRUUsofjlv48aN8PLyglarRVBQEA4ePNhk/c6dOzFkyBBotVr4+flhz549VsuFEIiLi4PBYIC9vT2MRiNOnz5tVVNaWoqZM2fCyckJzs7OiI6OxtWrV61qPvvsM4wdOxa9evVCv3798Mgjj+Ds2bOtcsxERF0Vn7dF3YmiISolJQWxsbGIj4/H4cOHMXLkSISGhuLixYsN1mdmZiIyMhLR0dE4cuQIwsPDER4ejvz8fKkmMTERGzZsQFJSErKzs+Ho6IjQ0FBcu3ZNqpk5cyaOHTuG9PR0pKam4quvvkJMTIy0vKCgANOmTcO9996LvLw8fPbZZygpKcH06dPbbjKIiDq5lJxCjF+7F49tysb4tXuRklOodEtEbUolhBC3LmsbQUFBGDNmDF5//XUAgMVigaenJ5566iksX768Xn1ERAQqKiqQmpoqjY0dOxb+/v5ISkqCEALu7u5YvHgxlixZAgAwm81wc3NDcnIyZsyYgRMnTmDYsGHIyclBQEAAACAtLQ0PPPAAzp8/D3d3d3zwwQeIjIxEdXU11OqbOfPjjz/GtGnTUF1djR49ejTr+MrLy6HT6WA2m+Hk5HRbc0VE1JEVmaswfu1eq8dFaFQqfL38Hl4mpU6nuT+/FTsTVVNTg9zcXBiNxv81o1bDaDQiKyurwXWysrKs6gEgNDRUqi8oKIDJZLKq0el0CAoKkmqysrLg7OwsBSgAMBqNUKvVyM7OBgCMHj0aarUamzdvRm1tLcxmM959910YjcYmA1R1dTXKy8utXkRE3QGft0XdkWIhqqSkBLW1tXBzc7Mad3Nzg8lkanAdk8nUZH3d11vVuLq6Wi23sbFBnz59pBpvb298/vnnWLlyJezs7ODs7Izz58/j/fffb/KYEhISoNPppJenp2eT9UREXQWft0XdkeI3lndEJpMJTzzxBKKiopCTk4Mvv/wStra2+M1vfoOmrn6uWLECZrNZep07d64duyYigDc2K4XP26LuSLFHHLi4uECj0aC4uNhqvLi4GHq9vsF19Hp9k/V1X4uLi2EwGKxq/P39pZpf3rh+48YNlJaWSutv3LgROp0OiYmJUs3WrVvh6emJ7OxsjB07tsH+7OzsYGdnd6tDJ6I2wg8SVhaft0XdjWJnomxtbTF69GhkZGRIYxaLBRkZGQgODm5wneDgYKt6AEhPT5fqvb29odfrrWrKy8uRnZ0t1QQHB6OsrAy5ublSzd69e2GxWBAUFAQAqKyslG4or6PRaKQeiajj4QcJdwwGnT2CB/VlgKJuQdHLebGxsdi0aRO2bNmCEydO4Mknn0RFRQXmzp0LAJg9ezZWrFgh1S9cuBBpaWlYt24dTp48iWeeeQaHDh3CggULAAAqlQqLFi3CmjVrsHv3bhw9ehSzZ8+Gu7s7wsPDAQBDhw7FlClT8MQTT+DgwYM4cOAAFixYgBkzZsDd3R0AEBYWhpycHDz33HM4ffo0Dh8+jLlz52LAgAEYNWpU+04SETULb2wmovam6BPLIyIicOnSJcTFxcFkMsHf3x9paWnSjeGFhYVWZ4TGjRuH7du3Y9WqVVi5ciV8fHzw0UcfYfjw4VLN0qVLUVFRgZiYGJSVlWHChAlIS0uDVquVarZt24YFCxZg8uTJUKvVeOSRR7BhwwZp+b333ovt27cjMTERiYmJcHBwQHBwMNLS0mBvz9+uiDqiuhubf/kWe97YTERtRdHnRHV1fE4UUftKySnEyl35qBVCurGZ90QRUUs19+c3PzuPiLoM3thMRO2pxfdE7dmzB/PmzcPSpUtx8uRJq2U//fQT7r333lZrjoiopXhjMxG1lxaFqO3bt+Ohhx6CyWRCVlYWRo0ahW3btknLa2pq8OWXX7Z6k0REREQdTYsu57300kt45ZVX8PTTTwMA3n//ffzud7/DtWvXEB0d3SYNEhEREXVELQpRp0+fxtSpU6XvH330UfTr1w8PPfQQrl+/jocffrjVGyQiIiLqiFoUopycnFBcXAxvb29p7J577kFqaioefPBBnD9/vtUbJCIiIuqIWnRPVGBgID799NN64yEhIfj444+xfv361uqLiIiIqENrUYj605/+ZPXQyp+bNGkSPv74Y8yePbtVGiMiIiLqyFr0sM3y8vJm1fHBkjfxYZtERESdT5s8bNPZ2RkqleqWdbW1tS3ZLBHh5gfoFpRUwNvFkc84IiLqBFoUovbt2yf9WQiBBx54AG+//TY8PDxavTGi7iQlpxArdh2FRQBqFZAw3Y8fV0JE1MG1KESFhIRYfa/RaDB27FgMHDiwVZsi6k6KzFVSgAJufoDuyl35mOjbj2ekiIg6sBZ/7AsRta6CkgopQNWpFQJnSyqVaYiIiJqFIYpIYd4ujlD/4lZDjUoFLxcHZRoiIqJmue0Q1ZwbzYmocQadPRKm+0Hzf/+WNCoVXpg+nJfyiIg6uBbdEzV9+nSr769du4Y//OEPcHR0tBrftWvX7XdG1I1EjOmPib79cLakEl4uDgxQRESdQItClE6ns/r+8ccfb9VmiLozg86e4YmIqBNpUYjavHlzW/VBRERE1KnwxnIiIiIiGRiiiIiIiGRgiCIiIiKSgSGKiIiISAaGKCIiIiIZGKKIiIiIZGCIIiJqhiJzFTLPlKDIXKV0K0TUQbToOVFERN1RSk4hVuw6CosA1CogYbofIsb0V7otIlIYz0QRETWhyFwlBSgAsAhg5a58npEiIoYoIqKmFJRUSAGqTq0QOFtSqUxDRNRhMEQRETXB28URapX1mEalgpeLgzINEVGHwRBFRNQEg84eCdP9oFHdTFIalQovTB/OD4smIt5YTkR0KxFj+mOibz+cLamEl4sDAxQRAWCIIiJqFoPOnuGJiKzwch4RERGRDAxRRERERDIwRBERERHJoHiI2rhxI7y8vKDVahEUFISDBw82Wb9z504MGTIEWq0Wfn5+2LNnj9VyIQTi4uJgMBhgb28Po9GI06dPW9WUlpZi5syZcHJygrOzM6Kjo3H16tV623n55Zfh6+sLOzs7eHh44Pnnn2+dgyYiIqJOT9EQlZKSgtjYWMTHx+Pw4cMYOXIkQkNDcfHixQbrMzMzERkZiejoaBw5cgTh4eEIDw9Hfn6+VJOYmIgNGzYgKSkJ2dnZcHR0RGhoKK5duybVzJw5E8eOHUN6ejpSU1Px1VdfISYmxmpfCxcuxNtvv42XX34ZJ0+exO7duxEYGNg2E0FERESdj1BQYGCgmD9/vvR9bW2tcHd3FwkJCQ3WP/rooyIsLMxqLCgoSPz+978XQghhsViEXq8XL730krS8rKxM2NnZiffee08IIcTx48cFAJGTkyPVfPrpp0KlUon//ve/Uo2NjY04efLkbR2f2WwWAITZbL6t7RAREVH7ae7Pb8XORNXU1CA3NxdGo1EaU6vVMBqNyMrKanCdrKwsq3oACA0NleoLCgpgMpmsanQ6HYKCgqSarKwsODs7IyAgQKoxGo1Qq9XIzs4GAHz88ccYOHAgUlNT4e3tDS8vL8ybNw+lpaWtc/BERETU6SkWokpKSlBbWws3NzercTc3N5hMpgbXMZlMTdbXfb1Vjaurq9VyGxsb9OnTR6r54Ycf8OOPP2Lnzp345z//ieTkZOTm5uI3v/lNk8dUXV2N8vJyqxcRERF1TXzYZgMsFguqq6vxz3/+E76+vgCAf/zjHxg9ejROnTqFO++8s8H1EhIS8Oyzz7Znq0RERKQQxc5Eubi4QKPRoLi42Gq8uLgYer2+wXX0en2T9XVfb1XzyxvXb9y4gdLSUqnGYDDAxsZGClAAMHToUABAYWFho8e0YsUKmM1m6XXu3LlGa4mIiKhzUyxE2draYvTo0cjIyJDGLBYLMjIyEBwc3OA6wcHBVvUAkJ6eLtV7e3tDr9db1ZSXlyM7O1uqCQ4ORllZGXJzc6WavXv3wmKxICgoCAAwfvx43LhxA2fOnJFq/vOf/wAABgwY0Ogx2dnZwcnJyepFRERE8hSZq5B5pgRF5iqlW2lYO93o3qAdO3YIOzs7kZycLI4fPy5iYmKEs7OzMJlMQgghZs2aJZYvXy7VHzhwQNjY2IiXX35ZnDhxQsTHx4sePXqIo0ePSjVr164Vzs7O4t///rf47rvvxLRp04S3t7eoqqqSaqZMmSJGjRolsrOzxddffy18fHxEZGSktLy2tlb86le/EhMnThSHDx8Whw4dEkFBQeLXv/51i46P784jIiKSZ8fBH4X38lQxYFmq8F6eKnYc/LHd9t3cn9+K3hMVERGBS5cuIS4uDiaTCf7+/khLS5NuDC8sLIRa/b+TZePGjcP27duxatUqrFy5Ej4+Pvjoo48wfPhwqWbp0qWoqKhATEwMysrKMGHCBKSlpUGr1Uo127Ztw4IFCzB58mSo1Wo88sgj2LBhg7RcrVbj448/xlNPPYWJEyfC0dER999/P9atW9cOs0JERNS9FZmrsGLXUVjEze8tAli5Kx8Tfft1qA8CVwkhhNJNdFXl5eXQ6XQwm828tEdERNRMmWdK8Nim7Hrj7z0xFsGD+rb5/pv781vxj30hIuoMOvy9GURdiLeLI9Qq6zGNSgUvFwdlGmoEQxQR0S2k5BRi/Nq9eGxTNsav3YuUnMbfpUtEt8+gs0fCdD9oVDeTlEalwgvTh3eoS3kAL+e1qba6nFdkrkJBSQW8XRw73F8ooq6myFyF8Wv3SvdmADf/Q/96+T3890fUxorMVThbUgkvF4d2/ffW3J/ffNhmJ5OSUyjdbKdWAQnT/RAxpr/SbRF1WQUlFVYBCgBqhcDZkkqGKKI2ZtDZd+h/Z7yc14k09m4F3qNB1HY6y70ZRNT+GKI6kaZ+IyaittFZ7s0govbHy3mdSN1vxL+8N4O/ERO1rYgx/THRt58i92YQUcfFM1GdCH8jJlKOQWeP4EF9+e+NiCQ8E9XJ8DdiIiKijoEhqhPq6O9WICIi6g54OY+IiIhIBoYoIiIiIhkYooiIiIhkYIgiIiIikoEhioiIiEgGhigiIiIiGRiiiIiIiGRgiCIiIiKSgSGKiIiISAaGKCIiIiIZGKKIiIiIZGCIIiIiIpKBIYqIiIhIBoYoIiIiIhkYooiIiIhkYIgiIiIikoEhioiIiEgGhigiIiIiGRiiiIiIiGRgiCIiIiKSgSGKiIiISAaGKCIiIiIZGKKIiIiIZGCIIiIiIpKBIYqIiIhIBoYoIiIiIhk6RIjauHEjvLy8oNVqERQUhIMHDzZZv3PnTgwZMgRarRZ+fn7Ys2eP1XIhBOLi4mAwGGBvbw+j0YjTp09b1ZSWlmLmzJlwcnKCs7MzoqOjcfXq1Qb39/3336NXr15wdna+reMkIiKirkPxEJWSkoLY2FjEx8fj8OHDGDlyJEJDQ3Hx4sUG6zMzMxEZGYno6GgcOXIE4eHhCA8PR35+vlSTmJiIDRs2ICkpCdnZ2XB0dERoaCiuXbsm1cycORPHjh1Deno6UlNT8dVXXyEmJqbe/q5fv47IyEjcfffdrX/wRERE1GmphBBCyQaCgoIwZswYvP766wAAi8UCT09PPPXUU1i+fHm9+oiICFRUVCA1NVUaGzt2LPz9/ZGUlAQhBNzd3bF48WIsWbIEAGA2m+Hm5obk5GTMmDEDJ06cwLBhw5CTk4OAgAAAQFpaGh544AGcP38e7u7u0raXLVuGCxcuYPLkyVi0aBHKysqafWzl5eXQ6XQwm81wcnKSMz1ERETUzpr781vRM1E1NTXIzc2F0WiUxtRqNYxGI7KyshpcJysry6oeAEJDQ6X6goICmEwmqxqdToegoCCpJisrC87OzlKAAgCj0Qi1Wo3s7GxpbO/evdi5cyc2btzYrOOprq5GeXm51YuIiIi6JkVDVElJCWpra+Hm5mY17ubmBpPJ1OA6JpOpyfq6r7eqcXV1tVpuY2ODPn36SDWXL1/GnDlzkJyc3OyzSAkJCdDpdNLL09OzWesRERFR56P4PVEd1RNPPIHHHnsMEydObPY6K1asgNlsll7nzp1rww6JiIhISYqGKBcXF2g0GhQXF1uNFxcXQ6/XN7iOXq9vsr7u661qfnnj+o0bN1BaWirV7N27Fy+//DJsbGxgY2OD6OhomM1m2NjY4J133mmwNzs7Ozg5OVm9iIiIqGtSNETZ2tpi9OjRyMjIkMYsFgsyMjIQHBzc4DrBwcFW9QCQnp4u1Xt7e0Ov11vVlJeXIzs7W6oJDg5GWVkZcnNzpZq9e/fCYrEgKCgIwM37pvLy8qTXc889h169eiEvLw8PP/xw60wAERERdVo2SjcQGxuLqKgoBAQEIDAwEOvXr0dFRQXmzp0LAJg9ezY8PDyQkJAAAFi4cCFCQkKwbt06hIWFYceOHTh06BDeeustAIBKpcKiRYuwZs0a+Pj4wNvbG6tXr4a7uzvCw8MBAEOHDsWUKVPwxBNPICkpCdevX8eCBQswY8YM6Z15Q4cOterz0KFDUKvVGD58eDvNDBEREXVkioeoiIgIXLp0CXFxcTCZTPD390daWpp0Y3hhYSHU6v+dMBs3bhy2b9+OVatWYeXKlfDx8cFHH31kFW6WLl2KiooKxMTEoKysDBMmTEBaWhq0Wq1Us23bNixYsACTJ0+GWq3GI488gg0bNrTfgRMREVGnpvhzoroyPieKiIio8+kUz4kiIiIi6qwYooiIiIhkYIgiIiIikoEhioiIiEgGhigiIiIiGRiiiIiIiGRgiCIiIiKSgSGKiIiISAaGKCIiIiIZGKKIiIiIZGCIIiIiIpKBIYqIiIhIBoYoIiIiIhkYooiIiIhkYIgiIiIikoEhioiIiEgGhigiIiIiGRiiiIiIiGRgiCIiIiKSgSGKiIiISAaGKCIiIiIZGKKIiIiIZGCIIiIiIpKBIYqIiIhIBoYoIiIi6nSKzFXIPFOCInOVYj3YKLZnIiIiIhlScgqxYtdRWASgVgEJ0/0QMaZ/u/fBM1FERETUaRSZq6QABQAWAazcla/IGSmGKCIiIuo0CkoqpABVp1YInC2pbPdeGKKIiIio0/B2cYRaZT2mUang5eLQ7r0wRBEREVGnYdDZI2G6HzSqm0lKo1LhhenDYdDZt3svvLGciIiIOpWIMf0x0bcfzpZUwsvFQZEABTBEERERUSdk0NkrFp7q8HIeERERkQwMUURE1KV1hIcyUtfEy3lERNRldZSHMlLX1CHORG3cuBFeXl7QarUICgrCwYMHm6zfuXMnhgwZAq1WCz8/P+zZs8dquRACcXFxMBgMsLe3h9FoxOnTp61qSktLMXPmTDg5OcHZ2RnR0dG4evWqtHz//v2YNm0aDAYDHB0d4e/vj23btrXeQRMRUZvqSA9lpK5J8RCVkpKC2NhYxMfH4/Dhwxg5ciRCQ0Nx8eLFBuszMzMRGRmJ6OhoHDlyBOHh4QgPD0d+fr5Uk5iYiA0bNiApKQnZ2dlwdHREaGgorl27JtXMnDkTx44dQ3p6OlJTU/HVV18hJibGaj8jRozAhx9+iO+++w5z587F7NmzkZqa2naTQUREraYjPZSRuiaVEELcuqztBAUFYcyYMXj99dcBABaLBZ6ennjqqaewfPnyevURERGoqKiwCjNjx46Fv78/kpKSIISAu7s7Fi9ejCVLlgAAzGYz3NzckJycjBkzZuDEiRMYNmwYcnJyEBAQAABIS0vDAw88gPPnz8Pd3b3BXsPCwuDm5oZ33nmnWcdWXl4OnU4Hs9kMJyenFs0LERHdniJzFcav3WsVpDQqFb5efo/i7+qijq25P78VPRNVU1OD3NxcGI1GaUytVsNoNCIrK6vBdbKysqzqASA0NFSqLygogMlksqrR6XQICgqSarKysuDs7CwFKAAwGo1Qq9XIzs5utF+z2Yw+ffo0ury6uhrl5eVWLyIiUkZHeigjdU2K3lheUlKC2tpauLm5WY27ubnh5MmTDa5jMpkarDeZTNLyurGmalxdXa2W29jYoE+fPlLNL73//vvIycnBm2++2ejxJCQk4Nlnn210ORERta+O8lBG6poUvyeqM9i3bx/mzp2LTZs24a677mq0bsWKFTCbzdLr3Llz7dglERE1xKCzR/CgvgxQ1OoUDVEuLi7QaDQoLi62Gi8uLoZer29wHb1e32R93ddb1fzyxvUbN26gtLS03n6//PJLTJ06Fa+++ipmz57d5PHY2dnBycnJ6kVERERdk6IhytbWFqNHj0ZGRoY0ZrFYkJGRgeDg4AbXCQ4OtqoHgPT0dKne29sber3eqqa8vBzZ2dlSTXBwMMrKypCbmyvV7N27FxaLBUFBQdLY/v37ERYWhhdffNHqnXtERER8iCcp/rDN2NhYREVFISAgAIGBgVi/fj0qKiowd+5cAMDs2bPh4eGBhIQEAMDChQsREhKCdevWISwsDDt27MChQ4fw1ltvAQBUKhUWLVqENWvWwMfHB97e3li9ejXc3d0RHh4OABg6dCimTJmCJ554AklJSbh+/ToWLFiAGTNmSO/M27dvHx588EEsXLgQjzzyiHSvlK2tbZM3lxMRUdfHh3gSAEB0AK+99pro37+/sLW1FYGBgeKbb76RloWEhIioqCir+vfff1/4+voKW1tbcdddd4lPPvnEarnFYhGrV68Wbm5uws7OTkyePFmcOnXKquby5csiMjJS9OzZUzg5OYm5c+eKK1euSMujoqIEgHqvkJCQZh+X2WwWAITZbG7+ZBARUYd2oaxSeC9PFQOW/e81cPkn4kJZpdKtUStp7s9vxZ8T1ZXxOVFERF1P5pkSPLap/uNw3ntiLIIH9VWgI2ptneI5UURERJ2Nt4sj1CrrMY1KBS8XB2UaIsUwRBEREbUAH+JJdRS/sZyIiKiz4UM8CWCIIiIiksWgs2d46uZ4OY+IiIhIBoYoIiIiIhkYooiIiIhkYIgiIiIikoEhioiIiEgGhigiIiIiGRiiiIiIiGRgiCIiIiKSgSGKiIiISAaGKCIiIiIZGKKIiIiIZGCIIiIiIpKBIYqIiIhIBoYoIiIiIhkYooiIiIhkYIgiIiIikoEhioiIiEgGhigiIiIiGRiiiIiIiGRgiCIiIiKSgSGKiIiISAaGKCIiIiIZGKKIiIiIZGCIIiIiIpKBIYqIiIhIBoYoIiIiIhkYooiIiIhkYIgiIiIikoEhioiIqAFF5ipknilBkblK6Vaog7JRugEiIqKOJiWnECt2HYVFAGoVkDDdDxFj+ivdFnUwPBNFRET0M0XmKilAAYBFACt35fOMFNXTIULUxo0b4eXlBa1Wi6CgIBw8eLDJ+p07d2LIkCHQarXw8/PDnj17rJYLIRAXFweDwQB7e3sYjUacPn3aqqa0tBQzZ86Ek5MTnJ2dER0djatXr1rVfPfdd7j77ruh1Wrh6emJxMTE1jlgIiLqsApKKqQAVadWCJwtqVSmIeqwFA9RKSkpiI2NRXx8PA4fPoyRI0ciNDQUFy9ebLA+MzMTkZGRiI6OxpEjRxAeHo7w8HDk5+dLNYmJidiwYQOSkpKQnZ0NR0dHhIaG4tq1a1LNzJkzcezYMaSnpyM1NRVfffUVYmJipOXl5eW47777MGDAAOTm5uKll17CM888g7feeqvtJoOIiBTn7eIItcp6TKNSwcvFQZmGqOMSCgsMDBTz58+Xvq+trRXu7u4iISGhwfpHH31UhIWFWY0FBQWJ3//+90IIISwWi9Dr9eKll16SlpeVlQk7Ozvx3nvvCSGEOH78uAAgcnJypJpPP/1UqFQq8d///lcIIcTf//530bt3b1FdXS3VLFu2TNx5553NPjaz2SwACLPZ3Ox1iIhIeTsO/igGLv9EDFiWKgYu/0TsOPij0i1RO2ruz29Fz0TV1NQgNzcXRqNRGlOr1TAajcjKympwnaysLKt6AAgNDZXqCwoKYDKZrGp0Oh2CgoKkmqysLDg7OyMgIECqMRqNUKvVyM7OlmomTpwIW1tbq/2cOnUKP/30020eORERdWQRY/rj6+X34L0nxuLr5ffwpnJqkKLvzispKUFtbS3c3Nysxt3c3HDy5MkG1zGZTA3Wm0wmaXndWFM1rq6uVsttbGzQp08fqxpvb+9626hb1rt373q9VVdXo7q6Wvq+vLy8wWMgIqKOz6Czh0Fnr3Qb1IEpfk9UV5KQkACdTie9PD09lW6JiIiI2oiiIcrFxQUajQbFxcVW48XFxdDr9Q2uo9frm6yv+3qrml/euH7jxg2UlpZa1TS0jZ/v45dWrFgBs9ksvc6dO9fwgRMREVGnp2iIsrW1xejRo5GRkSGNWSwWZGRkIDg4uMF1goODreoBID09Xar39vaGXq+3qikvL0d2drZUExwcjLKyMuTm5ko1e/fuhcViQVBQkFTz1Vdf4fr161b7ufPOOxu8lAcAdnZ2cHJysnoRERFRF9VON7o3aseOHcLOzk4kJyeL48ePi5iYGOHs7CxMJpMQQohZs2aJ5cuXS/UHDhwQNjY24uWXXxYnTpwQ8fHxokePHuLo0aNSzdq1a4Wzs7P497//Lb777jsxbdo04e3tLaqqqqSaKVOmiFGjRons7Gzx9ddfCx8fHxEZGSktLysrE25ubmLWrFkiPz9f7NixQzg4OIg333yz2cfGd+cRERF1Ps39+a14iBJCiNdee030799f2NraisDAQPHNN99Iy0JCQkRUVJRV/fvvvy98fX2Fra2tuOuuu8Qnn3xitdxisYjVq1cLNzc3YWdnJyZPnixOnTplVXP58mURGRkpevbsKZycnMTcuXPFlStXrGq+/fZbMWHCBGFnZyc8PDzE2rVrW3RcDFFERESdT3N/fquEEKLpc1UkV3l5OXQ6HcxmMy/tERERdRLN/fnNd+cRERERycAQRURERCQDQxQRERGRDAxRRERERDIwRBERERHJoOhn53V1dW985GfoERERdR51P7dv9QADhqg2dOXKFQDgZ+gRERF1QleuXIFOp2t0OZ8T1YYsFgsuXLiAXr16QaVSWS0rLy+Hp6cnzp07x2dINYJzdGuco1vjHN0a5+jWOEdN62rzI4TAlStX4O7uDrW68TufeCaqDanVatxxxx1N1vAz9m6Nc3RrnKNb4xzdGufo1jhHTetK89PUGag6vLGciIiISAaGKCIiIiIZGKIUYmdnh/j4eNjZ2SndSofFObo1ztGtcY5ujXN0a5yjpnXX+eGN5UREREQy8EwUERERkQwMUUREREQyMEQRERERycAQRURERCQDQ1Qb2rhxI7y8vKDVahEUFISDBw82Wnvs2DE88sgj8PLygkqlwvr169uvUQW1ZI42bdqEu+++G71790bv3r1hNBqbrO8qWjJHu3btQkBAAJydneHo6Ah/f3+8++677ditMloyRz+3Y8cOqFQqhIeHt22DHUBL5ig5ORkqlcrqpdVq27Hb9tfSv0NlZWWYP38+DAYD7Ozs4Ovriz179rRTt8poyRxNmjSp3t8hlUqFsLCwduy4HQhqEzt27BC2trbinXfeEceOHRNPPPGEcHZ2FsXFxQ3WHzx4UCxZskS89957Qq/Xi1dffbV9G1ZAS+foscceExs3bhRHjhwRJ06cEHPmzBE6nU6cP3++nTtvPy2do3379oldu3aJ48ePi++//16sX79eaDQakZaW1s6dt5+WzlGdgoIC4eHhIe6++24xbdq09mlWIS2do82bNwsnJydRVFQkvUwmUzt33X5aOj/V1dUiICBAPPDAA+Lrr78WBQUFYv/+/SIvL6+dO28/LZ2jy5cvW/39yc/PFxqNRmzevLl9G29jDFFtJDAwUMyfP1/6vra2Vri7u4uEhIRbrjtgwIBuEaJuZ46EEOLGjRuiV69eYsuWLW3VouJud46EEGLUqFFi1apVbdFehyBnjm7cuCHGjRsn3n77bREVFdXlQ1RL52jz5s1Cp9O1U3fKa+n8vPHGG2LgwIGipqam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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_54.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlEAAAHHCAYAAACfqw0dAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABVMElEQVR4nO3dfVxUZf4//tcMODOIMiMhM+CiYELeobgiI2ZiOe1YVJK1IZF3H4zatHTNj6mr0I0bplau5UZpabtqkK3bDRpFqOs3JUTUVdRMXUxNBkWWQRAQmev3Rz/Ppwnk5ggcbl7Px+M8kOu8z8z7XOs6r845c45KCCFARERERE2iVroBIiIiovaIIYqIiIhIBoYoIiIiIhkYooiIiIhkYIgiIiIikoEhioiIiEgGhigiIiIiGRiiiIiIiGRgiCIiIiKSgSGKiDq0F198ESqVqlG1KpUKL774Yov2M3bsWIwdO7bNvh4RNR5DFBG1ig0bNkClUkmLq6srevXqhWnTpuGnn35Sur02x9/f32m+vL29cdddd+Gf//xns7z+1atX8eKLL2LXrl3N8npEnRFDFBG1qpdffhl///vfkZycjPvuuw8bN25EREQEKisrW+T9Fi9ejIqKihZ57ZYWEhKCv//97/j73/+OefPm4cKFC5g4cSKSk5Nv+bWvXr2Kl156iSGK6Ba4Kt0AEXUu9913H0JDQwEAM2bMgJeXF1577TV8/vnneOyxx5r9/VxdXeHq2j7/qevVqxeeeOIJ6fcpU6agX79+ePPNN/H0008r2BkRATwSRUQKu+uuuwAAp0+fdhr//vvv8eijj8LT0xM6nQ6hoaH4/PPPnWqqq6vx0ksvITAwEDqdDrfddhtGjx6NjIwMqaaua6Kqqqrwxz/+ET179kT37t3x0EMP4fz587V6mzZtGvz9/WuN1/Wa69evxz333ANvb29otVoMHDgQ77zzTpPmoiEmkwkDBgxAfn5+vXUXL15EXFwcjEYjdDodhg4dig8//FBaf+bMGfTs2RMA8NJLL0mnDFv6ejCijqZ9/ucZEXUYZ86cAQD06NFDGjt69CjuvPNO9OrVCwsWLIC7uzs+/vhjREVF4R//+AcefvhhAD+HmaSkJMyYMQNhYWEoLS3F/v37ceDAAdx77703fc8ZM2Zg48aNePzxxzFq1Cjs2LEDkZGRt7Qf77zzDgYNGoSHHnoIrq6u+OKLL/DMM8/A4XBg5syZt/TaN1RXV+PcuXO47bbbblpTUVGBsWPH4tSpU5g1axYCAgKwZcsWTJs2DSUlJZg9ezZ69uyJd955B3/4wx/w8MMPY+LEiQCAIUOGNEufRJ2GICJqBevXrxcAxDfffCMuXbokzp07Jz755BPRs2dPodVqxblz56TacePGieDgYFFZWSmNORwOMWrUKBEYGCiNDR06VERGRtb7vomJieKX/9QdOnRIABDPPPOMU93jjz8uAIjExERpbOrUqaJPnz4NvqYQQly9erVWndVqFX379nUai4iIEBEREfX2LIQQffr0Eb/73e/EpUuXxKVLl8S///1vMWnSJAFAPPvsszd9vVWrVgkAYuPGjdLYtWvXRHh4uOjWrZsoLS0VQghx6dKlWvtLRE3D03lE1KosFgt69uwJPz8/PProo3B3d8fnn3+O3/zmNwCA4uJi7NixA4899hiuXLmCoqIiFBUV4fLly7BarTh58qT0bT6DwYCjR4/i5MmTjX7/7du3AwCee+45p/E5c+bc0n65ublJf7bb7SgqKkJERAT+85//wG63y3rNr7/+Gj179kTPnj0xdOhQbNmyBZMnT8Zrr7120222b98Ok8mEmJgYaaxLly547rnnUFZWhn/961+yeiGi2ng6j4ha1Zo1axAUFAS73Y4PPvgAu3fvhlarldafOnUKQggsWbIES5YsqfM1Ll68iF69euHll1/GhAkTEBQUhMGDB2P8+PGYPHlyvaelfvzxR6jVatx+++1O43fcccct7deePXuQmJiIrKwsXL161Wmd3W6HXq9v8muazWYsXboUKpUKXbt2xYABA2AwGOrd5scff0RgYCDUauf/Rh4wYIC0noiaB0MUEbWqsLAw6dt5UVFRGD16NB5//HGcOHEC3bp1g8PhAADMmzcPVqu1ztfo168fAGDMmDE4ffo0PvvsM3z99ddYt24d3nzzTSQnJ2PGjBm33OvNbtJZU1Pj9Pvp06cxbtw49O/fH2+88Qb8/Pyg0Wiwfft2vPnmm9I+NZWXlxcsFousbYmo5TFEEZFiXFxckJSUhLvvvhtvv/02FixYgL59+wL4+RRUYwKEp6cnpk+fjunTp6OsrAxjxozBiy++eNMQ1adPHzgcDpw+fdrp6NOJEydq1fbo0QMlJSW1xn99NOeLL75AVVUV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EnXt2jXk5ubCYrFIY2q1GhaLBVlZWXVuk5WV5VQPAFarVarPz8+HzWZzqtHr9TCbzVJNVlYWDAYDQkNDpRqLxQK1Wo3s7Ow633fdunUICgrCXXfdddP9qaqqQmlpqdNCREREHZOiIaqoqAg1NTUwGo1O40ajETabrc5tbDZbvfU3fjZU4+3t7bTe1dUVnp6edb5vZWUlNm3ahLi4uHr3JykpCXq9Xlr8/PzqrSciIqL2S/FrotqDf/7zn7hy5QqmTp1ab93ChQtht9ul5dy5c63UIREREbU2RUOUl5cXXFxcUFhY6DReWFgIk8lU5zYmk6ne+hs/G6r59YXr169fR3FxcZ3vu27dOjzwwAO1jm79mlarhYeHh9NCREREHZOiIUqj0WD48OHIzMyUxhwOBzIzMxEeHl7nNuHh4U71AJCRkSHVBwQEwGQyOdWUlpYiOztbqgkPD0dJSQlyc3Olmh07dsDhcMBsNju9dn5+Pnbu3NngqTwiIiLqXFyVbmDu3LmYOnUqQkNDERYWhlWrVqG8vBzTp08HAEyZMgW9evVCUlISAGD27NmIiIjA66+/jsjISKSkpGD//v147733AAAqlQpz5szB0qVLERgYiICAACxZsgS+vr6IiooCAAwYMADjx4/Hk08+ieTkZFRXV2PWrFmYNGkSfH19nfr74IMP4OPjg/vuu6/1JoWIiIjaPMVDVHR0NC5duoSEhATYbDaEhIQgPT1dOnV29uxZqNX/d8Bs1KhR2Lx5MxYvXoxFixYhMDAQn376KQYPHizVzJ8/H+Xl5YiPj0dJSQlGjx6N9PR06HQ6qWbTpk2YNWsWxo0bB7VajUceeQSrV6926s3hcGDDhg2YNm0aXFxcWngmiIiIqD1RCSGE0k10VKWlpdDr9bDb7bw+ioiIqJ1o7Oc3v51HREREJANDFBEREZEMDFFEREREMjBEEREREcnAEEVEREQkA0MUERERkQwMUUREREQyMEQRERERycAQRURERCQDQxQRERGRDAxRRERERDIwRBERERHJwBBFREREJANDFBEREZEMDFFEREREMjBEEREREcnAEEVEREQkA0MUERERkQwMUUREREQyMEQRERERycAQRURERCQDQxQRERGRDAxRRERERDIwRBERERHJwBBFREREJANDFBEREZEMDFFEREREMjBEEREREcnAEEVEREQkA0MUERERkQwMUUREREQyMEQRERERycAQRURERCQDQxQRERGRDIqHqDVr1sDf3x86nQ5msxn79u2rt37Lli3o378/dDodgoODsX37dqf1QggkJCTAx8cHbm5usFgsOHnypFNNcXExYmNj4eHhAYPBgLi4OJSVldV6nZUrVyIoKAharRa9evXCn//85+bZaSIiImr3FA1RqampmDt3LhITE3HgwAEMHToUVqsVFy9erLN+7969iImJQVxcHA4ePIioqChERUUhLy9Pqlm+fDlWr16N5ORkZGdnw93dHVarFZWVlVJNbGwsjh49ioyMDKSlpWH37t2Ij493eq/Zs2dj3bp1WLlyJb7//nt8/vnnCAsLa5mJICIiovZHKCgsLEzMnDlT+r2mpkb4+vqKpKSkOusfe+wxERkZ6TRmNpvFU089JYQQwuFwCJPJJFasWCGtLykpEVqtVnz00UdCCCGOHTsmAIicnByp5ssvvxQqlUr89NNPUo2rq6v4/vvvb2n/7Ha7ACDsdvstvQ4RERG1nsZ+fit2JOratWvIzc2FxWKRxtRqNSwWC7KysurcJisry6keAKxWq1Sfn58Pm83mVKPX62E2m6WarKwsGAwGhIaGSjUWiwVqtRrZ2dkAgC+++AJ9+/ZFWloaAgIC4O/vjxkzZqC4uLh5dp6IiIjaPcVCVFFREWpqamA0Gp3GjUYjbDZbndvYbLZ662/8bKjG29vbab2rqys8PT2lmv/85z/48ccfsWXLFvztb3/Dhg0bkJubi0cffbTefaqqqkJpaanTQkRERB2Tq9INtEUOhwNVVVX429/+hqCgIADA+++/j+HDh+PEiRO444476twuKSkJL730Umu2SkRERApR7EiUl5cXXFxcUFhY6DReWFgIk8lU5zYmk6ne+hs/G6r59YXr169fR3FxsVTj4+MDV1dXKUABwIABAwAAZ8+evek+LVy4EHa7XVrOnTt301oiIiJq3xQLURqNBsOHD0dmZqY05nA4kJmZifDw8Dq3CQ8Pd6oHgIyMDKk+ICAAJpPJqaa0tBTZ2dlSTXh4OEpKSpCbmyvV7NixAw6HA2azGQBw55134vr16zh9+rRU88MPPwAA+vTpc9N90mq18PDwcFqIiIiog2qlC93rlJKSIrRardiwYYM4duyYiI+PFwaDQdhsNiGEEJMnTxYLFiyQ6vfs2SNc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Uv2ePXuEq6urWLlypTh+/LhITEwUXbp0EUeOHJFqli1bJgwGg/jss8/E4cOHxYQJE0RAQICoqKiQasaPHy+GDRsmsrOzxbfffisCAwNFTEzMTfvkt/OIOq6UfT+Kvgu2iT4vpIm+C7aJlH0/Kt0SESmosZ/fTQpRISEh4i9/+Yv0e2pqqnB3dxfr1q0TQsgLUUII8dZbb4nevXsLjUYjwsLCxHfffSeti4iIEFOnTnWq//jjj0VQUJDQaDRi0KBBYtu2bU7rHQ6HWLJkiTAajUKr1Ypx48aJEydOONVcvnxZxMTEiG7dugkPDw8xffp0ceXKlZv2yBBF1LFdKLkq9p4qEhdKrirdChEprLGf3016dl63bt1w5MgRBAQESGM7d+7EQw89hBUrVuDhhx+Gr68vampqmv2IWXvEZ+cRERG1Py3y7DwPDw8UFhY6hai7774baWlpeOCBB3D+/Hn5HRMRERG1I026sDwsLAxffvllrfGIiAh88cUXWLVqVXP1RURERNSmNSlE/fGPf4ROp6tz3dixY/HFF19gypQpzdIYERERUVvWpGuiGvsYE17/8zNeE0VERNT+tMg1UQaDoVE31uSF5URERNTRNSlE7dy5U/qzEAL3338/1q1bh169ejV7Y0RERERtWZNCVEREhNPvLi4uGDlyJPr27dusTRERERG1dbKfnUdERETUmTFEEREREclwyyGqMReaExEREXU0TbomauLEiU6/V1ZW4umnn4a7u7vT+NatW2+9MyIiIqI2rEkhSq/XO/3+xBNPNGszRERERO1Fk0LU+vXrW6oPIiIionaFF5YTERERycAQRURERCQDQxQRERGRDAxRRERERDIwRBERERHJwBBFREREJANDFBEREZEMDFFEREREMjBEEREREcnAEEXtWoG9AntPF6HAXqF0K0RE1Mk06bEvRG1Jas5ZLNx6BA4BqFVA0sRgRI/orXRbpLACewXyi8oR4OUOH72b0u0QUQfGEEUtriU+1ArsFVKAAgCHABZtzcOYoJ784OzEGKyJqDUxRFGLaqkPtfyicilA3VAjBM4UXWWI6qQYrImotfGaKGoxN/tQa47rlwK83KFWOY+5qFTw9+p6y6+tFF7fdWvqC9ZERC2BIYpaTEt+qPno3ZA0MRguqp+TlItKhVcnDm63RxxSc87izmU78PjabNy5bAdSc84q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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_55.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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C3OqB4D09HSpPjAwEEaj0ammvLwc2dnZdW6zNh9//DG+++475OXlIS8vD++88w4A4H/+538wZ86cBm+HiIiI2iZ3pRuYP38+oqOjMXToUISGhmLFihW4ePEiZs6cCQCYPn06unbtioSEBADA3LlzER4ejldffRURERFISUnB3r178fbbbwMAVCoV5s2bh8WLF6N3794IDAzEwoUL4efnh8jISGm/hYWFKC0tRWFhIWpqapCXlwcA6NWrF9q3b4+ePXs69VlSUgIA6Nu3b733lSIiIqK2T/EQNXnyZJw9exaLFi2CzWZDSEgItm/fLl0YXlhY6PTJuBEjRuDDDz/Ec889h2eeeQa9e/fGJ598ggEDBkg1Tz31FC5evIjZs2ejrKwMo0aNwvbt26HT6aSaRYsWYd26ddLzwYMHAwB27tyJMWPGuPioiYiIqLVTCSGE0k20VeXl5dDr9bDb7bw+ioiIqJVo6Os3P51HREREJANDFBEREZEMDFFEREREMjBEEREREcnAEEVEREQkA0MUERERkQwMUUREREQyMEQRERERycAQRURERCQDQxQRERGRDAxRRERERDIwRBERERHJwBBFREREJANDFBEREZEMDFFEREREMjBEEREREcnAEEVEREQkA0MUERERkQwMUUREREQyMEQRERERycAQRURERCQDQxQRkYsV2SuReaIERfZKpVshoibkrnQDRERtWWpOIeI2HYRDAGoVkDAxGJOHdVO6LSJqAjwTRUTkIkX2SilAAYBDAM9syucZKaI2giGKiMhFCkouSgHqqhohcLKkQpmGiKhJMUQREblIoK8X1CrnMTeVCgG+nso0RERNiiGKiMhFTHoPJEwMhpvq1yTlplLh5YkDYNJ7KNwZETUFXlhORORCk4d1w+igzjhZUoEAX08GKKI2hCGKiMjFTHoPhieiNohv5xEREcnA+38Rz0QRERE1Eu//RUALORO1evVqBAQEQKfTwWw2Y8+ePdetT0tLQ58+faDT6RAcHIxt27Y5LRdCYNGiRTCZTPDw8IDFYsHx48edapYsWYIRI0bA09MTPj4+1+zju+++Q1RUFPz9/eHh4YG+ffviH//4xw0fKzUt/iVIRM2N9/+iqxQPUampqZg/fz7i4+Oxb98+DBo0CFarFWfOnKm1PjMzE1FRUYiJicH+/fsRGRmJyMhI5OfnSzWJ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Kd5lnYiI2ipeWE4ux7usExFRW8QQRc2Cd1knIqK2hm/nEREREcnAEEVEREQkA0MUERERkQwMUUREREQyMEQRERERycAQRURERCQDQxQRERGRDAxRRERERDIwRBERERHJwBBFREREJANDFBEREZEMDFFEREREMjBEEREREcnAEEVEREQkQ6ND1LZt2zBr1iw89dRTOHr0qNOyX375BXfccUeTNUdERETUUjUqRH344Ye47777YLPZkJWVhcGDB+ODDz6QlldXV+Orr75q8iaJiIiIWppGhajly5fjtddew5YtW/A///M/WLduHR555BG8++67N9TE6tWrERAQAJ1OB7PZjD179ly3Pi0tDX369IFOp0NwcDC2bdvmtFwIgUWLFsFkMsHDwwMWiwXHjx93qiktLcXUqVPh7e0NHx8fxMTE4MKFC041n3/+OYYPH44OHTqgc+fOeOCBB3Dy5MkbOlYiIiJqGxoVoo4fP47x48dLzydNmoTPPvsM8+bNQ1JSkqwGUlNTMX/+fMTHx2Pfvn0YNGgQrFYrzpw5U2t9ZmYmoqKiEBMTg/379yMyMhKRkZHIz8+XahITE7Fy5UokJSUhOzsbXl5esFqtuHTpklQzdepUHDp0COnp6diyZQu+/vprzJ49W1peUFCACRMm4I477kBeXh4+//xzlJSUYOLEibKOk4iIiNoY0Qgmk0lkZWVdM75r1y7Rvn178eyzzwq1Wt2YTYrQ0FAxZ84c6XlNTY3w8/MTCQkJtdZPmjRJREREOI2ZzWbxyCOPCCGEcDgcwmg0iuXLl0vLy8rKhFarFRs2bBBCCHH48GEBQOTk5Eg1//nPf4RKpRI//fSTEEKItLQ04e7uLmpqaqSazZs3C5VKJaqrqxt0bHa7XQAQdru9QfVERESkvIa+fjfqTFRoaCj+85//XDMeHh6Ozz77DCtWrGhUgKuurkZubi4sFos0plarYbFYkJWVVes6WVlZTvUAYLVapfqCggLYbDanGr1eD7PZLNVkZWXBx8cHQ4cOlWosFgvUajWys7MBAEOGDIFarcbatWtRU1MDu92O999/HxaLBe3atau1t6qqKpSXlzs9iIiIqG1qVIj629/+Bp1OV+uyMWPG4LPPPsP06dMbvL2SkhLU1NTAYDA4jRsMBthstlrXsdls162/+rO+mi5dujgtd3d3R6dOnaSawMBA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LRG1SopfE9VSORwOVFVV4V//+hduu+02jBkzBu+++y527tyJY8eO1bpOXFwc7Ha79Dh16lQzd01EdH1F9krEbToIh/j1uUMAz2zK5xkpIhkUDVG+vr5wc3NDcXGx03hxcTGMRmOt6xiNxuvWX/1ZX83vL1y/cuUKSktLpRqTyQR3d3cEBQVJNX379gUAFBbW/lebVquFt7e304OIqCUpKLkoBairaoTAyZIKZRoiasUUDVEajQZDhgxBRkaGNOZwOJCRkYGwsLBa1wkLC3OqB4D09HSpPjAwEEaj0ammvLwc2dnZUk1YWBjKysqQm5sr1ezYsQMOhwNmsxkAMHLkSFy5cgUnTpyQav773/8CALp3734jh01EpJhAXy+oVc5jbioVAnw9lWmIqDVrpgvd65SSkiK0Wq1ITk4Whw8fFrNnzxY+Pj7CZrMJIYSYNm2aiI2Nlep3794t3N3dxSuvvCKOHDki4uPjRbt27cTBgwelmqVLlwofHx/x6aefigMHDogJEyaIwMBAUVlZKdWMGzdODB48WGRnZ4tvvvlG9O7dW0RFRUnLa2pqxB//+EcxevRosW/fPrF3715hNpvFnXfe2eBj46fziKglStnzo+gRu1V0f3qL6BG7VaTs+VHplohalIa+fiseooQQYtWqVaJbt25Co9GI0NBQ8e2330rLwsPDRXR0tFP9xo0bRVBQkNBoNKJ///5i69atTssdDodYuHChMBgMQqvVirFjx4pjx4451Zw7d05ERUWJ9u3bC29vbzFz5kxx/vx5p5qffvpJTJw4UbRv314YDAYxY8YMce7cuQYfF0MUEbVUP5dViMzvS8TPZRVKt0LU4jT09VslhBDXP1dFcpWXl0Ov18Nut/P6KCIiolaioa/f/HQeERERkQwMUUREREQyMEQRERERycAQRURERCQDQxQRERGRDAxRRERERDIwRBERERHJwBBFREREJANDFBEREZEMDFFEREREMjBEEREREcnAEEVEREQkA0MUERERkQwMUUREREQyMEQRERERycAQRURERCQDQxQRERGRDAxRRERERDIwRBERERHJwBBFREREJANDFBEREZEMDFFEREREMjBEEREREcnAEEVEREQkA0MUERERkQwMUUREREQyMEQRERERycAQRURERCQDQxQR0U2oyF6JzBMlKLJXKt0KUavlrnQDRETU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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_56.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAioAAAHHCAYAAACRAnNyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA8P0lEQVR4nO3de1iU1f7//9cAchBhFAEB4+CxPKBWaNssD6WRlWXuXWZmWlmfCjN3R+2kVop2MHcnKytsZ6Zb03K3y1LLutLaocZOzUxNFBMPaA0iNCis3x9+nV8ECggz9w08H9c119Xcs+ae96wIXq217nU7jDFGAAAANuRndQEAAAAnQ1ABAAC2RVABAAC2RVABAAC2RVABAAC2RVABAAC2RVABAAC2RVABAAC2RVABAAC2RVABUGOTJk2Sw+GoUluHw6FJkyZ5tZ6+ffuqb9++tj0fgKojqAD1yJw5c+RwODyPgIAAtWzZUqNGjdIvv/xidXm2k5SUVKa/oqOjdeGFF2rJkiW1cv7CwkJNmjRJq1atqpXzAQ0RQQWohx5//HG9/fbbeuWVVzRw4EDNnTtXffr00e+//+6Vz3vkkUdUVFTklXN7W7du3fT222/r7bff1n333ac9e/ZoyJAheuWVV2p87sLCQk2ePJmgAtRAgNUFAKh9AwcOVEpKiiRp9OjRioyM1PTp07V06VJde+21tf55AQEBCgiom79OWrZsqRtuuMHz/MYbb1Tbtm313HPP6fbbb7ewMgASIypAg3DhhRdKkrZv317m+I8//qi//e1vioiIUHBwsFJSUrR06dIybY4eParJkyerXbt2Cg4OVvPmzXXBBRdo+fLlnjYVrVFxu936+9//rqioKIWFhenKK6/U7t27y9U2atQoJSUllTte0TkzMjJ00UUXKTo6WkFBQerYsaNmzZpVrb6oTExMjDp06KAdO3acst3+/ft1yy23qEWLFgoODlbXrl311ltveV7Pzs5WVFSUJGny5Mme6SVvr88B6pu6+b9AAKolOztbktSsWTPPsU2bNqlXr15q2bKlxo8fr9DQUP3rX//S4MGD9d577+nqq6+WdDwwpKena/To0erRo4fy8/O1du1arV+/XgMGDDjpZ44ePVpz587V9ddfr/PPP1+fffaZLr/88hp9j1mzZqlTp0668sorFRAQoH//+9+68847VVpaqrS0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tggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqaFByXUVasz1Pua4iq0sBAFRBgNUFAL6yIHOXJizeoFIj+Tmk9CHJGto9weqyAACnwIgKGoRcV5EnpEhSqZEeWryRkRUAsDnLg8ovv/yiG264Qc2bN1dISIiSk5O1du1aq8tCPbMj74gnpJxQYoyy8wqtKQgAUCWWTv38+uuv6tWrl/r166ePP/5YUVFR2rp1q5o1a2ZlWaiHWkWGys+hMmHF3+FQUmRj64oCAFTK0qAyffp0xcfHKyMjw3OsVatWFlaE+irWGaL0Icl6aPFGlRgjf4dDU4d0VqwzxOrSAACn4DDGmMqbeUfHjh2Vmpqq3bt364svvlDLli1155136tZbb62wvdvtltvt9jzPz89XfHy8XC6XwsPDfVU26rBcV5Gy8wqVFNmYkAIAFsnPz5fT6azS329L16j8/PPPmjVrltq1a6dPPvlEd9xxh8aOHau33nqrwvbp6elyOp2eR3x8vI8rRl0X6wxRzzbNCSkAUEdYOqISGBiolJQUrVmzxnNs7NixyszM1Ndff12uPSMqAAD4Tq6rSDvyjqhVZGit/g9edUZULF2jEhsbq44dO5Y51qFDB7333nsVtg8KClJQUJAvSgMAoEGzy95Tlk799OrVS1u2bClz7KefflJiYqJFFQEAADvtPWVpUPn73/+ub775RlOnTtW2bds0b948vfbaa0pLS7OyLAAAGjQ77T1laVDp3r27lixZonfffVedO3fWE088oZkzZ2r48OFWlgUAQIN2Yu+pP7Jq7ylLF9PWVHUW4wAAgKpbkLmr3N5TtbVGpc4spgUAAPY0tHuCerePsnzvKYIKAACoUKwzxPJ9pyy/KSEAAMDJEFQAAGigcl1FWrM9z5LLjquKqR8AABogu2zoVhlGVAAAaGDstKFbZQgqAAA0MHba0K0yBBUAABoYO23oVhmCCgAADUysM0TpQ5Ll7zieVk5s6Gb1pcgVYTEtAAANkF02dKsMQQUAgAbKDhu6VYap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pDFjxpRpf+DAAQUGBnru1JqUlKQnnnhCw4YNU2hoqFq2bKmXXnqpzHtmzJih5ORkhYaGKj4+XnfeeacKCgo8r+/cuVODBg1Ss2bNFBoaqk6dOumjjz6SJP36668aPny4oqKiFBISonbt2ikjI6PK369p06ae7xcTE6OIiAjPyMeCBQvUp08fBQcH65133tHBgwc1bNgwtWzZUo0bN1ZycrLefffdMucrLS3VU089pbZt2yooKEgJCQmaMmWKJKlVq1aSpLPPPlsOh0N9+/aVVH7qx+12a+zYsYqOjlZwcLAuuOACZWZmel5ftWqVHA6HVq5cqZSUFDVu3Fjnn3++tmzZUuXvDYCgAtQ7BQUFmjt3rtq2bavmzZtr9OjRmjdvntxut6fN3Llz1bJlS1100UWeY08//bS6du2q7777TuPHj9fdd9+t5cuXe1738/PT888/r02bNumtt97SZ599pgceeMDzelpamtxut7788ktt2LBB06dPV5MmTSRJjz76qH744Qd9/PHH2rx5s2bNmqXIyMha+b4nat28ebNSU1P1+++/69xzz9V//vMfbdy4UbfddptGjBihb7/91vOeCRMmaNq0aZ665s2bpxYtWkiSp92KFSuUm5urxYsXV/i5DzzwgN577z299dZbWr9+vdq2bavU1FQdOnSoTLuHH35Yzz77rNauXauAgADdfPPNtfK9gQbD6rsiAqiZkSNHGn9/fxMaGmpCQ0ONJBMbG2vWrVtnjDGmqKjINGvWzCxYsMDzni5duphJkyZ5nicmJppLL720zHmHDh1qBg4ceNLPXbhwoWnevLnneXJycplz/tGgQYPMTTfddFrfT5IJDg72fL/Q0FCzZMkSz93QZ86cWek5Lr/8cnPvvfcaY4zJz883QUFBZvbs2RW2PXHe7777rszxP94FuqCgwDRq1Mi88847nteLi4tNXFyceeqpp4wxxnz++edGklmxYoWnzX/+8x8jyRQVFVWnC4AGjREVoB7o16+fsrKylJWVpW+//VapqakaOHCgdu7cqeDgYI0YMUJvvvmmJGn9+vXauHGjRo0aVeYcPXv2LPd88+bNnucrVqzQxRdfrJYtWyosLEwjRozQwYMHVVhYKEkaO3asnnzySfXq1UsTJ04ss5j3jjvu0Pz589WtWzc98MADWrNmTbW+33PPPef5fllZWRowYIDntZSUlDJtS0pK9MQTTyg5OVkRERFq0qSJPvnkE+3atUuStHnzZrndbl188cXVquGPtm/frqNHj6pXr16eY40aNVKPHj3K9JkkdenSxfPPsbGxkqT9+/ef9mcDDQ1BBagHQkND1bZtW7Vt21bdu3fX66+/riNHjmj27NmSpNGjR2v58uXavXu3MjIydNFFFykxMbHK58/OztYVV1yhLl266L333tO6des8a1iKi4s9n/Hzzz9rxIgR2rBhg1JSUvTCCy9Ikic0/f3vf9eePXt08cUX67777qvy58fExHi+X9u2bRUaGlrmu//R008/rX/84x968MEH9fnnnysrK0upqameOkNCQqr8ubWhUaNGnn92OBySjq+RAVA1BBWgHnI4HPLz81NRUZEkKTk5WSkpKZo9e7bmzZtX4TqJb775ptzzDh06SJLWrVun0tJSPfvss/rLX/6i9u3ba8+ePeXOER8fr9tvv12LFy/Wvffe6wlKkhQVFaWRI0dq7ty5mjlzpl577bXa/Moeq1ev1lVXXaUbbrhBXbt2VevWrfXTTz95Xm/Xrp1CQkI8C4n/LDAwUNLxkZmTadOmjQIDA7V69WrPsaNHjyozM1MdO3aspW8CQJICrC4AQM253W7t3btX0vErbF588UUVFBRo0KBBnjajR4/WmDFjFBoaqquvvrrcOVavXq2nnnpKgwcP1vLly7Vw4UL95z//kSS1bdtWR48e1QsvvKBBgwZp9erVeuWVV8q8f9y4cRo4cKDat2+vX3/9VZ9//rkn6Dz22GM699xz1alTJ7ndbn344Yee12pbu3bttGjRIq1Zs0bNmjXTjBkztG/fPk+ACA4O1oMPPqgHHnhAgYGB6tWrlw4cOKBNmzbplltuUXR0tEJCQrRs2TKdccYZCg4OltPpLPMZoaGhuuOOO3T//fcrIiJCCQkJeuqpp1RYWKhbbrnFK98LaKgYUQHqgWXLlik2NlaxsbE677zzlJmZqYULF3ourZWkYcOGKSAgQMOGDVNwcHC5c9x7771au3atzj77bD355JOaMWOGUlNTJUldu3bVjBkzNH36dHXu3FnvvPOO0tPTy7y/pKREaWlp6tChgy699FK1b99eL7/8sqTjoxQTJkxQly5d1Lt3b/n7+2v+/Ple6YtHHnlE55xzjlJTU9W3b1/FxMSU21H20Ucf1b333qvHHntMHTp00NChQz3rRgICAvT888/r1VdfVVxcnK666qoKP2fatGn661//qhEjRuicc87Rtm3b9Mknn6hZs2Ze+V5AQ+UwxhiriwDgfdnZ2WrTpo0yMzN1zjnnlHktKSlJ48aN07hx46wpDgBOgqkfoJ47evSoDh48qEceeUR/+ctfyoUUALAzpn6Aem716tWKjY1VZmZmuXUlVps6daqaNGlS4WPgwIFWlwfABpj6AWCZQ4cOldvJ9YSQkBC1bNnSxxUBsBuCCgAAsC2mfgAAgG0RVAAAgG0RVAAAgG0RVAAAgG0RVAAAgG0RVAAAgG0RVAAAgG0RVAAAgG39f0KmAMcCtQRwAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_57.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkgAAAHHCAYAAABEEKc/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABN+UlEQVR4nO3de1hU1eL/8c+AchEENRCEUBA1NQnKC6ImWBiVlWQlaqn5Na1zyjQrj3pU1C7YxfJ4Ka1TaRcTLY+V+aUM0zL5ekG0NO2YYpoCih4HxTuzf3/4Y04zogEODIPv1/PMg7P22nvW3s+W+bD22mubDMMwBAAAACs3ZzcAAACgpiEgAQAA2CEgAQAA2CEgAQAA2CEgAQAA2CEgAQAA2CEgAQAA2CEgAQAA2CEgAQAA2CEgAXBZkydPlslkKlddk8mkyZMnV2l7EhISlJCQUGO3B6D8CEgArtj8+fNlMpmsrzp16ig0NFQPP/ywDhw44Ozm1Tjh4eE2x6tx48a6+eab9a9//csh2z958qQmT56s1atXO2R7wNWIgATAYaZOnaoPPvhAc+fO1R133KEPP/xQ8fHxOn36dJV83oQJE3Tq1Kkq2XZVi4mJ0QcffKAPPvhAzzzzjA4ePKg+ffpo7ty5V7ztkydPasqUKQQk4ArUcXYDANQed9xxhzp06CBJeuSRRxQQEKCXXnpJn3/+ufr27evwz6tTp47q1HHNX2OhoaF66KGHrO8HDRqkFi1a6PXXX9djjz3mxJYBkOhBAlCFbr75ZknS7t27bcp37typ+++/X40aNZKXl5c6dOigzz//3KbOuXPnNGXKFLVs2VJeXl665ppr1K1bN61cudJap6wxSGfOnNFTTz2lwMBA1a9fX/fcc49+//33i9r28MMPKzw8/KLysrb53nvv6ZZbblHjxo3l6emptm3b6s0336zQsfgzwcHBatOmjXJzcy9b79ChQxo6dKiCgoLk5eWl6OhoLViwwLp87969CgwMlCRNmTLFehmvqsdfAbWNa/7pBcAl7N27V5LUsGFDa9n27dvVtWtXhYaGauzYsfLx8dHixYuVnJysTz/9VPfee6+kC0ElLS1NjzzyiDp16qSioiJt2rRJmzdvVs+ePS/5mY888og+/PBDDRgwQF26dNGqVavUq1evK9qPN998U9dff73uuece1alTR1988YX++te/ymKx6PHHH7+ibZc6d+6c9u/fr2uuueaSdU6dOqWEhAT9+uuveuKJJxQREaElS5bo4Ycf1rFjxzRy5EgFBgbqzTff1F/+8hfde++96tOnjyTphhtucEg7gauGAQBX6L333jMkGd98841x+PBhY//+/cYnn3xiBAYGGp6ensb+/futdW+99VYjKirKOH36tLXMYrEYXbp0MVq2bGkti46ONnr16nXZz01NTTX++Gtsy5YthiTjr3/9q029AQMGGJKM1NRUa9ngwYONZs2a/ek2DcMwTp48eVG9pKQko3nz5jZl8fHxRnx8/GXbbBiG0axZM+O2224zDh8+bBw+fNjYunWr0a9fP0OSMWLEiEtub8aMGYYk48MPP7SWnT171oiLizN8fX2NoqIiwzAM4/DhwxftL4CK4RIbAIdJTExUYGCgwsLCdP/998vHx0eff/65rr32WknS0aNHtWrVKvXt21fHjx9XYWGhCgsLdeTIESUlJWnXrl3Wu94aNGig7du3a9euXeX+/BUrVkiSnnzySZvyUaNGXdF+eXt7W/9tNptVWFio+Ph47dmzR2azuVLb/PrrrxUYGKjAwEBFR0dryZIlGjhwoF566aVLrrNixQoFBwerf//+1rK6devqySef1IkTJ7RmzZpKtQXAxbjEBsBh5syZo1atWslsNuvdd9/Vd999J09PT+vyX3/9VYZhaOLEiZo4cWKZ2zh06JBCQ0M1depU9e7dW61atVK7du10++23a+DAgZe9VPTbb7/Jzc1NkZGRNuXXXXfdFe3XDz/8oNTUVGVlZenkyZM2y8xms/z9/Su8zdjYWD3//PMymUyqV6+e2rRpowYNGlx2nd9++00tW7aUm5vt37Zt2rSxLgfgGAQkAA7TqVMn611sycnJ6tatmwYMGKBffvlFvr6+slgskqRnnnlGSUlJZW6jRYsWkqTu3btr9+7d+uyzz/T111/rn//8p15//XXNnTtXjzzyyBW39VITTJaUlNi83717t2699Va1bt1ar732msLCwuTh4aEVK1bo9ddft+5TRQUEBCgxMbFS6wKoegQkAFXC3d1daWlp6tGjh2bPnq2xY8eqefPmki5cFipPOGjUqJGGDBmiIUOG6MSJE+revbsmT558yYDUrFkzWSwW7d6926bX6JdffrmobsOGDXXs2LGLyu17Yb744gudOXNGn3/+uZo2bWot//bbb/+0/Y7WrFkz/fjjj7JYLDa9SDt37rQuly4d/gCUH2OQAFSZhIQEderUSTNmzNDp06fVuHFjJSQkaN68ecrLy7uo/uHDh63/PnLkiM0yX19ftWjRQmfOnLnk591xxx2SpJkzZ9qUz5gx46K6kZGRMpvN+vHHH61leXl5F81m7e7uLkkyDMNaZjab9d57712yHVXlzjvvVH5+vtLT061l58+f16xZs+Tr66v4+HhJUr169SSpzAAIoHzoQQJQpZ599lk98MADmj9/vh577DHNmTNH3bp1U1RUlIYNG6bmzZuroKBAWVlZ+v3337V161ZJUtu2bZWQkKD27durUaNG2rRpkz755BM98cQTl/ysmJgY9e/fX2+88YbMZrO6dOmizMxM/frrrxfV7devn/72t7/p3nvv1ZNPPqmTJ0/qzTffVKtWrbR582Zrvdtuu00eHh66++679eijj+rEiRN6++231bhx4zJDXlUaPny45s2bp4cffljZ2dkKDw/XJ598oh9++EEzZsxQ/fr1JV0YVN62bVulp6erVatWatSokdq1a6d27dpVa3sBl+bs2+gAuL7S2/w3btx40bKSkhIjMjLSiIyMNM6fP28YhmHs3r3bGDRokBEcHGzUrVvXCA0NNe666y7jk08+sa73/PPPG506dTIaNGhgeHt7G61btzZeeOEF4+zZs9Y6Zd2Sf+rUKePJJ580rrnmGsPHx8e4++67jf3795d52/vXX39ttGvXzvDw8DCuu+4648MPPyxzm59//rlxww03GF5eXkZ4eLjx0ksvGe+++64hycjNzbXWq8ht/n82hcGltldQUGAMGTLECAgIMDw8PIyoqCjjvffeu2jddevWGe3btzc8PDy45R+oBJNh/KHfGAAAAIxBAgAAsEdAAgAAsENAAgAAsENAAgAAsENAAgAAsENAAgAAsMNEkZVksVh08OBB1a9fn2n9AQBwEYZh6Pjx4woJCbnowc9/RECqpIMHDyosLMzZzQAAAJWwf/9+XXvttZdcTkCqpNIp/ffv3y8/Pz8ntwYAAJRHUVGRwsLCrN/jl0JAqqTSy2p+fn4EJAAAXMyfDY9hkDYAAIAdAhIAAIAdAhIAAIAdxiBVsZKSEp07d87ZzYCTeXh4XPZ2UgBAzUJAqiKGYSg/P1/Hjh1zdlNQA7i5uSkiIkIeHh7ObgoAoBwISFWkNBw1btxY9erVYzLJq1jppKJ5eXlq2rQp5wIAuAACUhUoKSmxhqNrrrnG2c1BDRAYGKiDBw/q/Pnzqlu3rrObAwD4EwyKqAKlY47q1avn5Jagpii9tFZSUuLklgAAyoOAVIW4lIJSnAsA4FoISAAAAHYISLhqhYeHa8aMGc5uBgCgBiIgwcbhw4f1l7/8RU2bNpWnp6eCg4OVlJSkH374QdKFS0XLli1zbiPLKSEhQSaT6aLX+fPnnd00oMbJM5/Sut2FyjOfcnZTgBqBu9hg47777tPZs2e1YMECNW/eXAUFBcrMzNSRI0ec3bRKGTZsmKZOnWpTVqcOpz3wR+kb92nc0p9kMSQ3k5TWJ0opHZs6u1mAU9GDBKtjx47p+++/10svvaQePXqoWbNm6tSpk8aNG6d77rlH4eHhkqR7771XJpPJ+l6SPvvsM910003y8vJS8+bNNWXKFJuemtdee01RUVHy8fFRWFiY/vrXv+rEiRPW5fPnz1eDBg20fPlyXXfddapXr57uv/9+nTx5UgsWLFB4eLgaNmyoJ598skJ3gtWrV0/BwcE2r0vZt2+fevfuLV9fX/n5+alv374qKCiQJJnNZrm7u2vTpk2SLsxt1KhRI3Xu3Nm6/ocffqiwsLBytw2oCfLMp6zhSJIshjR+6TZ6knDVIyDVcNXZ7e3r6ytfX18tW7ZMZ86cuWj5xo0bJUnvvfee8vLyrO+///57DRo0SCNHjtTPP/+sefPmaf78+XrhhRes67q5uWnmzJnavn27FixYoFWrVmnMmDE22z958qRmzpypRYsWKSMjQ6tXr9a9996rFStWaMWKFfrggw80b948ffLJJw7fd4vFot69e+vo0aNas2aNVq5cqT179iglJUWS5O/vr5iYGK1evVqS9NNPP8lkMiknJ8ca9NasWaP4+HiHtw2oSrmFxdZwVKrEMLS38KRzGgTUEASkGix94z51nbZKA95er67TVil9474q/bw6depo/vz5WrBggRo0aKCuXbtq/Pjx+vHHHyVdmOxQkho0aKDg4GDr+ylTpmjs2LEaPHiwmjdvrp49e+q5557TvHnzrNseNWqUevToofDwcN1yyy16/vnntXjxYpvPP3funN58803deOON6t69u+6//36tXbtW77zzjtq2bau77rpLPXr00LffflvufXrjjTes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AHBllQpIY8aM0apVq/Tmm2/K09NT//znPzVlyhSFhITo/fffd3QbAQAAqlWlLrF98cUXev/995WQkKAhQ4bo5ptvVosWLdSsWTN99NFHevDBBx3dTgAAgGpTqR6ko0ePqnnz5pIujDcqva2/W7du+u677xzXOgAAACeoVEBq3ry5cnNzJUmtW7fW4sWLJV3oWWrQoIHDGgcAAOAMlQpIQ4YM0datWyVJY8eO1Zw5c+Tl5aWnnnpKzz77rEMbCAAAUN1MhmEYV7qR3377TdnZ2WrRooVuuOEGR7SrxisqKpK/v7/MZjPTGgAA4CLK+/3tkHmQmjVrpmbNml3ppgAAAGqESl1iKykp0XPPPafQ0FD5+vpqz549kqSJEyfqnXfecWgDAQAAqlulAtILL7yg+fPn6+WXX5aHh4e1vF27dvrnP//psMYBAAA4Q6UC0vvvv6+33npLDz74oNzd3a3l0dHR2rlzp8MaBwAA4AyVCkgHDhxQixYtLiq3WCw6d+7cFTcKAADAmSoVkNq2bavvv//+ovJPPvlEN9544xU3CgAAwJkqdRfbpEmTNHjwYB04cEAWi0VLly7VL7/8ovfff1/Lly93dBsBAACqVaV6kHr37q0vvvhC33zzjXx8fDRp0iTt2LFDX3zxhXr27OnoNgIAAFQrh0wUeTViokgAAFxPeb+/K/0stiNHjlxUfuzYMetDbAEAAFxVpQLS3r17VVJSclH5mTNndODAgStuFAAAgDNVaJD2559/bv33V199JX9/f+v7kpISZWZmKjw83GGNAwAAcIYKBaTk5GRJkslk0uDBg22W1a1bV+Hh4Zo+fbrDGgcAAOAMFQpIFotFkhQREaGNGzcqICCgShoFAADgTBUag5SVlaXly5crNzfXGo7ef/99RUREqHHjxho+fLjOnDlTJQ0FAACoLhUKSFOmTNH27dut73/66ScNHTpUiYmJGjt2rL744gulpaU5vJEAAADVqUIBaevWrbr11lut7xctWqTY2Fi9/fbbGj16tGbOnKnFixc7vJEAAADVqUIB6T//+Y+CgoKs79esWaM77rjD+r5jx47av3+/41oHAADgBBUKSEFBQcrNzZUknT17Vps3b1bnzp2ty48fP666des6toUAAADVrEIB6c4779TYsWP1/fffa9y4capXr55uvvlm6/Iff/xRkZGRDm8kAABA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PrPWCQ8P14wZMxyyb1Wt9NiZTCbVrVtXERERGjNmjE6fPl2h7SQkJGjUqFE2ZV26dFFeXp78/f0d2GLg6kRAAlApXl5eeumll/Sf//ynzOWGYWjAgAF68skndeedd+rrr7/Wzz//rHfeeUdeXl56/vnny/U5jz32mJYuXapZs2Zp586dysjI0P33368jR444cneq1e233668vDzt2bNHr7/+uubNm6fU1NQr3q6Hh4eCg4NtQiqASnLYQ0sAXDUGDx5s3HXXXUbr1q2NZ5991lr+r3/9yyj9tfLxxx8bkozPPvuszG1YLJZyfZa/v78xf/78Sy4v65lNpb7//nujW7duhpeXl3HttdcaI0aMME6cOGFd/v777xvt27c3fH19jaCgIKN///5GQUGBdXnp86MyMjKMmJgYw8vLy+jRo4dRUFBgrFixwmjdurVRv359o3///kZxcXG59mfw4MFG7969bcr69Olj3Hjjjdb3hYWFRr9+/YyQkBDD29vbaNeunbFw4UKbbdjvc25urrW9f3yO4yeffGK0bdvW8PDwMJo1a2a8+uqr5WoncLWjBwlApbi7u+vFF1/UrFmz9Pvvv1+0/OOPP9Z1112ne+65p8z1y9vLERwcrBUrVuj48eNlLl+6dKmuvfZaTZ06VXl5ecrLy5Mk7d69W7fffrvuu+8+/fjjj0pPT9fatWv1xBNPWNc9d+6cnnvuOW3dulXLli3T3r179fDDD1/0GZMnT9bs2bO1bt067d+/X3379tWMGTO0cOFCffnll/r66681a9ascu2PvW3btmndunXy8PCwlp0+fVrt27fXl19+qW3btmn48OEaOHCgNmzYIEn6xz/+obi4OA0bNsy6z2FhYRdtOzs7W3379lW/fv30008/afLkyZo4caLmz59fqbYCVxVnJzQAruePvSCdO3c2/ud//scwDNsepNatWxv33HOPzXojR440fHx8DB8fHyM0NLRcn7VmzRrj2muvNerWrWt06NDBGDVqlLF27VqbOs2aNTNef/11m7KhQ4caw4cPtyn7/vvvDTc3N+PUqVNlftbGjRsNScbx48cNw/hvD9I333xjrZOWlmZIMnbv3m0te/TRR42kpKRy7c/gwYMNd3d3w8fHx/D09DQkGW5ubsYnn3xy2fV69eplPP3009b38fHxxsiRI23q2PcgDRgwwOjZs6dNnWeffdZo27ZtudoKXM3oQQJwRV566SUtWLBAO3bs+NO6f//737VlyxZNmjRJJ06cKNf2u3fvrj179igzM1P333+/tm/frptvvlnPPffcZdfbunWr5s+fL19fX+srKSlJFotFubm5ki70sNx9991q2rSp6tevr/j4eEnSvn37bLZ1ww03WP8dFBSkevXqqXnz5jZlhw4dKtf+SFKPHj20ZcsWrV+/XoMHD9aQIUN03333WZeXlJToueeeU1RUlBo1aiRfX1999dVXF7Xrz+zYsUNdu3a1Kevatat27dqlkpKSCm0LuNoQkABcke7duyspKUnjxo2zKW/ZsqV++eUXm7LAwEC1aNFCjRs3rtBn1K1bVzfffLP+9re/6euvv9bUqVP13HPP6ezZs5dc58SJE3r00Ue1ZcsW62vr1q3atWuXIiMjVVxcrKSkJPn5+emjjz7Sxo0b9a9//UuSLtpu3bp1rf8uvfvsj0wmkywWS7n3x8fHRy1atFB0dLTeffddrV+/Xu+88451+SuvvKJ//OMf+tvf/qZvv/1WW7ZsUVJS0mX3F4Bj1XF2AwC4vmnTpikmJkbXXXedtax///4aMGCAPvvsM/Xu3duhn9e2bVudP39ep0+floeHhzw8PC7qEbnpppv0888/q0WLFmVu46efftKRI0c0bdo06/idTZs2ObSd5eHm5qbx48dr9OjRGjBggLy9vfXDDz+od+/eeuihhyRJFotF//73v9W2bVvremXts702bdrohx9+sCn74Ycf1KpVK7m7uzt+Z4BahB4kAFcsKipKDz74oGbOnGkt69evn+6//37169dPU6dO1fr167V3716tWbNG6enp5f6CTkhI0Lx585Sdna29e/dqxYoVGj9+vHr06CE/Pz9JF+ZB+u6773TgwAEVFhZKkv72t79p3bp1euKJJ7Rlyxbt2rVLn332mXWQdtOmTeXh4aFZs2Zpz549+vzzz//0sl1VeeCBB+Tu7q45c+ZIutD7tnLlSq1bt047duzQo48+qoKCApt1wsPDrce0sLCwzB6sp59+WpmZmXruuef073//WwsWLNDs2bP1zDPPVMt+Aa6MgATAIaZOnWrzJW0ymZSenq4ZM2ZoxYoVuvXWW3Xdddfpf/7nfxQWFqa1a9eWa7tJSUlasGCBbrvtNrVp00YjRoxQUlKSFi9ebPPZe/fuVWRkpAIDAyVdGDe0Zs0a/fvf/9bNN9+sG2+8UZMmTVJISIikC5f75s+fryVLlqht27aaNm2aXn31VQcekfKrU6eOnnjiCb388ssqLi7WhAkTdNNNNykpKUkJCQkKDg5WcnKyzTrPPPOM3N3d1bZtWwUGBpY5Pummm27S4sWLtWjRIrVr106TJk3S1KlTy7xTD4Atk2EYhrMbAQAAUJPQgwQAAGCHgATAqf54G7796/vvv3d28ypk3759l92fit6mD8B5uMQGwKku99Da0NBQeXt7V2Nrrsz58+e1d+/eSy4PDw9XnTrcPAy4AgISAACAHS6xAQAA2CEgAQAA2CEgAQAA2CEgAQAA2CEgAQAA2CEgAQAA2CEgAQAA2CEgAQAA2Pl/9eBkKoQKGmcAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_58.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAHHCAYAAABZbpmkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABHCElEQVR4nO3deVRV9f7/8ddhngRTRk1FLUMStcwKLYeyqGxQ7KZZpqaNag4NDrdy6ivW996ytNLVr8BbWWZpNnhLs9QUM9MsNbNESE2QqOtBZFDh8/ujy/l6EhUOBw5sno+1zlqez/7sfd57tzvnxR4+22aMMQIAALAoL08XAAAAUJMIOwAAwNIIOwAAwNIIOwAAwNIIOwAAwNIIOwAAwNIIOwAAwNIIOwAAwNIIOwAAwNIIOwDqhGnTpslms1Wqr81m07Rp02q0nl69eqlXr151dnkAKo+wA8BJWlqabDab4+Xj46PmzZtr2LBh+vXXXz1dXp0TGxvrtL0iIyN15ZVXatmyZW5ZfmFhoaZNm6Y1a9a4ZXlAQ0TYAVChGTNm6PXXX9f8+fN1/fXX64033lDPnj1VXFxcI5/3+OOPq6ioqEaWXdM6d+6s119/Xa+//roeeeQRHTx4UMnJyZo/f361l11YWKjp06cTdoBq8PF0AQDqpuuvv16XXHKJJGnkyJEKDw/X008/rQ8++EC33Xab2z/Px8dHPj718yupefPmuvPOOx3v77rrLp133nl67rnndP/993uwMgASR3YAVNKVV14pScrIyHBq//HHH3XrrbeqSZMmCggI0CWXXKIPPvjAqc/x48c1ffp0nX/++QoICFDTpk11xRVXaNWqVY4+FV2zU1JSovHjxysiIkKNGjXSzTffrAMHDpxS27BhwxQbG3tKe0XLTE1N1VVXXaXIyEj5+/srPj5eL7/8cpW2xdlER0erffv2yszMPGO/3NxcjRgxQlFRUQoICFCnTp20cOFCx/SsrCxFRERIkqZPn+44VVbT1ysBVlM//4wCUOuysrIkSeecc46jbefOnerevbuaN2+uSZMmKTg4WO+884769eun9957T/3795f0Z+hISUnRyJEjdemllyo/P1/ffPONtm7dqmuuuea0nzly5Ei98cYbGjx4sLp166bPP/9cffv2rdZ6vPzyy7rwwgt18803y8fHRx9++KEefPBBlZWVadSoUdVadrnjx49r//79atq06Wn7FBUVqVevXtqzZ49Gjx6t1q1ba8mSJRo2bJgOHz6ssWPHKiIiQi+//LIeeOAB9e/fX8nJyZKkjh07uqVOoMEwAHCS1NRUI8l89tln5rfffjP79+837777romIiDD+/v5m//79jr5XX321SUhIMMXFxY62srIy061bN3P++ec72jp16mT69u17xs+dOnWqOfkradu2bUaSefDBB536DR482EgyU6dOdbQNHTrUtGrV6qzLNMaYwsLCU/olJSWZNm3aOLX17NnT9OzZ84w1G2NMq1atzLXXXmt+++0389tvv5nvvvvODBo0yEgyY8aMOe3y5syZYySZN954w9F27Ngxk5iYaEJCQkx+fr4xxpjffvvtlPUFUDWcxgJQoT59+igiIkItWrTQrbfequDgYH3wwQc699xzJUl//PGHPv/8c9122206cuSI8vLylJeXp99//11JSUn6+eefHXdvNW7cWDt37tTPP/9c6c9fsWKFJOmhhx5yah83bly11iswMNDxb7vdrry8PPXs2VN79+6V3W53aZkrV65URESEIiIi1KlTJy1ZskRDhgzR008/fdp5VqxYoejoaN1+++2ONl9fXz300EMqKCjQ2rVrXaoFwKk4jQWgQi+++KLatWsnu92u1157TevWrZO/v79j+p49e2SM0RNPPKEnnniiwmXk5uaqefPmmjFjhm655Ra1a9dOHTp00HXXXachQ4ac8XTML7/8Ii8vL7Vt29ap/YILLqjWem3YsEFTp07Vxo0bVVhY6DTNbrcrLCysysu87LLL9NRTT8lmsykoKEjt27dX48aNzzjPL7/8ovPPP19eXs5/c7Zv394xHYB7EHYAVOjSSy913I3Vr18/XXHFFRo8eLB2796tkJAQlZWVSZIeeeQRJSUlVbiM8847T5LUo0cPZWRkaPny5Vq5cqX+3//7f3ruuec0f/58jRw5stq1nm4wwtLSUqf3GRkZuvrqqxUXF6dnn31WLVq0kJ+fn1asWKHnnnvOsU5VFR4erj59+rg0L4CaR9gBcFbe3t5KSUlR7969NW/ePE2aNElt2rSR9Oepl8r80Ddp0kTDhw/X8OHDVVBQoB49emjatGmnDTutWrVSWVmZMjIynI7m7N69+5S+55xzjg4fPnxK+1+Pjnz44YcqKSnRBx98oJYtWzrav/jii7PW726tWrXS999/r7KyMqejOz/++KNjunT6IAeg8rhmB0Cl9OrVS5deeqnmzJmj4uJiRUZGqlevXlqwYIGys7NP6f/bb785/v377787TQsJCdF5552nkpKS037e9ddfL0l64YUXnNrnzJlzSt+2bdvKbrfr+++/d7RlZ2efMoqxt7e3JMkY42iz2+1KTU09bR015YYbblBOTo4WL17saDtx4oTmzp2rkJAQ9ezZU5IUFBQkSRWGOQCVw5EdAJX26KOP6m9/+5vS0tJ0//3368UXX9QVV1yhhIQE3XPPPWrTpo0OHTqkjRs36sCBA/ruu+8kSfHx8erVq5e6dOmiJk2a6JtvvtG7776r0aNHn/azOnfurNtvv10vvfSS7Ha7unXrptWrV2vPnj2n9B00aJAmTpyo/v3766GHHlJhYaFefvlltWvXTlu3bnX0u/baa+Xn56ebbrpJ9913nwoKCvTKK68oMjKywsBWk+69914tWLBAw4YN05YtWxQbG6t3331XGzZs0Jw5c9SoUSNJf15QHR8fr8WLF6tdu3Zq0qSJOnTooA4dOtRqvUC95unbwQDULeW3nm/evPmUaaWlpaZt27ambdu25sSJE8YYYzIyMsxdd91loqOjja+vr2nevLm58cYbzbvvvuuY76mnnjKXXnqpady4sQkMDDRxcXHmf/7nf8yxY8ccfSq6TbyoqMg89NBDpmnTpiY4ONjcdNNNZv/+/RXeir1y5UrToUMH4+fnZy644ALzxhtvVLjMDz74wHTs2NEEBASY2NhY8/TTT5vXXnvNSDKZmZmOflW59fxst9WfbnmHDh0yw4cPN+Hh4cbPz88kJCSY1NTUU+ZNT083Xbp0MX5+ftyGDrjAZsxJx3MBAAAshmt2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApTGooKSysjIdPHhQjRo1Ymh2AADqCWOMjhw5ombNmp3yUN2TEXYkHTx4UC1atPB0GQAAwAX79+/Xueeee9rphB3JMSz7/v37FRoa6uFqAABAZeTn56tFixaO3/HTIezo/54qHBoaStgBAKCeOdslKFygDAAALI2wAwAALI2wAwAALI1rdgAA1VJaWqrjx497ugxYkK+vr7y9vau9HMIOAMAlxhjl5OTo8OHDni4FFta4cWNFR0dXaxw8wg4AwCXlQScyMlJB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ioyM1DnnnKO77777lGdXAQAAeFKVr9nJz89Xt27dVFBQoOHDhysuLk7GGP3www966623tH79em3dulUhISE1US8AAECVVDnsPP/88/L29tbOnTsVERHhNO3xxx9X9+7d9cILL2jKlCluKxIAAMBVVT6N9fHHH2vKlCmnBB1JioyM1OTJk/Xhhx+6pTgAAIDqqnLY+emnn9StW7fTTu/WrZt2795draIAAADcpcphJz8//5SHc56scePGPEUcAADUGVUOO8YYeXmdfjabzSaG7gEAAHVFlS9QNsaoXbt2stlsp52O+iPbXqTMvKNqHR6smLBAT5cDAIDbVTnspKam1kQd8IDFm/dp8tLtKjOSl01KSU7QwK4tPV0WAABuVeOPi3jrrbd08803Kzg4uCY/ploa4uMisu1F6j77c5Wd9F/f22bT+km9OcIDAKgXauVxEZVx3333MapyHZSZd9Qp6EhSqTHKyiv0TEEAANSQGg87XMNTN7UOD5bXXy678rbZFBse5JmCAACoITUedlA3xYQFKiU5Qd7/vdDc22bTrOQOnMICAFhOlS9QhnUM7NpSPdpFKCuvULHhQQQdAIAlEXYauJiwQEIOAMDSOI0FAAAszaWwU1paqnXr1unw4cNn7duqVSv5+vq68jEAABdk24uUnpGnbHuRp0sB6gSXTmN5e3vr2muv1a5du874nCxJ2rFjhysfAQBwgdUHC2XUd7jC5Wt2OnTooL1796p169burAcA4KJse5Ej6EhSmZGmLN2hHu0iLBEMrB7kUHNcvmbnqaee0iOPPKKPPvpI2dnZys/Pd3oBAGqXlQcLPV2Q41QdKsPlIzs33HCDJOnmm292eiioMUY2m02lpaXVrw4AUGnlg4X+9TEwVhgs9ExBzgpHrVCzXA47X3zxhTvrAABUU/lgoVOW7lCpMZYaLNTKQQ41r8YfBFofNMQHgQKwrmx7kSUHC128ed8pQY5rdhq2yv5+V2tQwS+//FILFizQ3r17tWTJEjVv3lyvv/66WrdurSuuuKI6iwYAuMiqg4Uy6jtc5fIFyu+9956SkpIUGBiorVu3qqSkRJJkt9s1a9YstxUIAEC5mLBAJbZtStBBlVTrbqz58+frlVdecRo0sHv37tq6datbigMAAKgul8PO7t271aNHj1Paw8LCKjWyMgAAQG1wOexER0drz549p7Sv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O3bscGfpblET6y/9ObLwyfvAL7/84q6S3a6q22DdunW65pprtGLFCm3ZskW9e/fWTTfdVPu/CQandemll5pRo0Y53peWlppmzZqZlJSUCvuPGjXKXHXVVU5tEyZMMN27d3e8nzp1qunUqVON1FsTqroNYmJizLx585zakpOTzR133OHyMj2tJrZBfdsPTibJLFu27Ix9HnvsMXPhhRc6tQ0cONAkJSU53te3/eBk7toGVt8PTtazZ08zduzYU9pvu+0207dvX6e2yy67zNx3333VrLBmuWv9U1NTTVhYmNvqqk1V3Qbl4uPjzfTp0x3va+O7gCM7p3Hs2DFt2bJFffr0cbR5eXmpT58+2rhxY4XzdOvWTVu2bHEcftu7d69WrFihG264wanfzz//rGbNmqlNmza64447tG/fvppbkWpwZRuUlJSccgg2MDDQ8deqK8v0pJrYBuXqy37gio0bNzptM0lKSkpybLP6th+44mzboJyV94PKqOx2srKCggK1atVKLVq00C233KKdO3d6uqQaU1ZWpiNHjqhJkyaSau+7gLBzGnl5eSotLVVUVJRTe1RUlHJyciqcZ/DgwZoxY4auuOIK+fr6qm3bturVq5fTaazLLrtMaWlp+uSTT/Tyyy8rMzNTV155pY4cOVKj6+MKV7ZBUlKSnn32Wf38888qKyvTqlWrtHTpUmVnZ7u8TE+qiW0g1a/9wBU5OTkVbrP8/HwVFRXVu/3AFWfbBpL194PKON12ssp+cDYXXHCBXnvtNS1fvlxvvPGGysrK1K1bNx04cMDTpdWIf/zjHyooKNBtt90mqfZ+Ewg7brRmzRrNmjVLL730krZu3aqlS5fq448/1syZMx19rr/+ev3tb39Tx44dlZSUpBUrVujw4cN65513PFi5+zz//PM6//zzFRcXJz8/P40ePVrDhw+Xl1fD2dUqsw2svh+gctgPkJiYqLvuukudO3dWz549tXTpUkVERGjBggWeLs3tFi1apOnTp+udd95RZGRkrX52w/kFqqLw8HB5e3vr0KFDTu2HDh1SdHR0hfM88cQTGjJkiEaOHKmEhAT1799fs2bNUkpKisrKyiqcp3HjxmrXrp327Nnj9nWoLle2QUREhN5//30dPXpUv/zyi3788UeFhISoTZs2Li/Tk2piG1SkLu8HroiOjq5wm4WGhiowMLDe7QeuONs2qIjV9oPKON12ssp+UFW+vr666KKLLLcPvP322xo5cqTeeecdp1NWtfVdQNg5DT8/P3Xp0kWrV692tJWVlWn16tVKTEyscJ7CwsJTjmB4e3tLksxpHkFWUFCgjIwMxcTEuKly93FlG5QLCAhQ8+bNdeLECb333nu65ZZbqr1MT6iJbVCRurwfuCIxMdFpm0nSqlWrHNusvu0HrjjbNqiI1faDynBlO1lZaWmptm/fbql94K233tLw4cP11ltvqW/fvk7Tau27wG2XOlvQ22+/bfz9/U1aWpr54YcfzL333msaN25scnJyjDHGDBkyxEyaNMnRf+rUqaZRo0bmrbfeMnv37jUrV640bdu2Nbfddpujz8MPP2zWrFljMjMzzYYNG0yfPn1MeHi4yc3NrfX1q4yqboOvvvrKvPfeeyYjI8OsW7fOXHXVVaZ169bmP//5T6WXWdfUxDaob/vBkSNHzLfffmu+/fZbI8k8++yz5ttvvzW//PKLMcaYSZMmmSFDhjj679271wQFBZlHH33U7Nq1y7z44ovG29vbfPLJJ44+9W0/qIltYPX9wBjj6N+lSxczePBg8+2335qdO3c6pm/YsMH4+PiYf/zjH2bXrl1m6tSpxtfX12zfvr1W160yamL9p0+fbj799FOTkZFhtmzZYgYNGmQCAgKc+tQlVd0Gb775pvHx8TEvvviiyc7OdrwOHz7s6FMb3wWEnbOYO3euadmypfHz8zOXXnqp+eqrrxzTevbsaYYOHep4f/z4cTNt2jTTtm1bExAQYFq0aGEefPBBpx+5gQMHmpiYGOPn52eaN29uBg4caPbs2VOLa1R1VdkGa9asMe3btzf+/v6madOmZsiQIebXX3+t0jLrIndvg/q2H3zxxRdG0imv8vUeOnSo6dmz5ynzdO7c2fj5+Zk2bdqY1NTUU5Zbn/aDmtgGDWE/qKh/q1atnPq88847pl27dsbPz89ceOGF5uOPP66dFaqimlj/cePGOf4fiIqKMjfccIPZunVr7a1UFVV1G/Ts2fOM/cvV9HeBzZjTnF8BAACwAK7ZAQAAlkbYAQAAlkbYAQAAlkbYAQAAlkbYAQAAlkbYAQAAlkbYAQAAlkbYAYA6aM2aNbLZbDp8+LCnSwHqPcIO0MANGzZMNptNs2fPdmp///33ZbPZHO+NMXrllVeUmJio0NBQhYSE6MILL9TYsWMr/dDCwsJCTZ48WW3btlVAQIAiIiLUs2dPLV++3NEnNjZWc+bMccu61bTybWez2eTr66vWrVvrscceU3FxcZWW06tXL40bN86prVu3bsrOzlZYWJgbKwYaJsIOAAUEBOjpp5/Wf/7znwqnG2M0ePBgPfTQQ7rhhhu0cuVK/fDDD3r11VcVEBCgp556qlKfc//992vp0qWaO3eufvzxR33yySe69dZb9fvvv7tzdWrVddddp+zsbO3du1fPPfecFixYoKlTp1Z7uX5+foqOjnYKnABc5NaHTwCod4YOHWpuvPFGExcXZx599FFH+7Jly0z5V8Rbb71lJJnly5dXuIyysrJKfVZYWJhJS0s77fSKnqNT7ssvvzRXXHGFCQgIMOeee64ZM2aMKSgocEz/17/+Zbp06WJCQkJMVFSUuf32282hQ4cc08uf6fPJJ5+Yzp07m4CAANO7d29z6NAhs2LFChMXF2caNWpkbr/9dnP06NFKrc/QoUPNLbfc4tSWnJxsLrroIsf7vLw8M2jQINOsWTMTGBhoOnToYBYtWuS0jL+uc2ZmpqPek5+t9+6775r4+Hjj5+dnWrVqZf7xj39Uqk6goePIDgB5e3tr1qxZmjt3rg4cOHDK9LfeeksXXHCBbr755grnr+zRh+joaK1YsUJHjhypcPrSpUt17rnnasaMGcrOzlZ2drYkKSMjQ9ddd50GDBig77//XosXL9b69es1evRox7zHjx/XzJkz9d133+n9999XVlaWhg0bdspnTJs2TfPmzVN6err279+v2267TXPmzNGiRYv08ccfa+XKlZo7d26l1uevduzYofT0dPn5+TnaiouL1aVLF3388cfasWOH7r33Xg0ZMkRff/21JOn5559XYmKi7rnnHsc6t2jR4pRlb9myRbfddpsGDRqk7du3a9q0aXriiSeUlpbmUq1Ag+LptAXAs04+OnH55Zebu+++2xjjfGQnLi7O3HzzzU7zjR071gQHB5vg4GDTvHnzSn3W2rVrzbnnnmt8fX3NJZdcYsaNG2fWr1/v1KdVq1bmueeec2obMWKEuffee53avvzyS+Pl5WWKiooq/KzNmzcbSebIkSPGmP87svPZZ585+qSkpBhJJiMjw9F23333maSkpEqtz9ChQ423t7cJDg42/v7+RpLx8vIy77777hnn69u3r3n44Ycd73v27GnGjh3r1OevR3YGDx5srrnmGqc+jz76qImPj69UrUBDxpEdAA5PP/20Fi5cqF27dp2179///ndt27ZNTz75pAoKCiq1/B49emjv3r1avXq1br31Vu3cuVNXXnmlZs6cecb5vvvuO6WlpSkkJMTxSkpKUllZmTIzMyX9eeTjpptuUsuWLdWoUSP17NlTkrRv3z6nZXXs2NHx76ioKAUFBalNmzZObbm5uZVaH0nq3bu3tm3bpk2bNmno0KEaPny4BgwY4JheWlqqmTNnKiEhQU2aNFFISIg+/fTTU+o6m127dql79+5Obd27d9fPP/+s0tLSKi0LaGgIOwAcevTooaSkJE2ePNmp/fzzz9fu3bud2iIiInTeeecpMjKySp/h6+urK6+8UhMnTtTKlSs1Y8YMzZw5U8eOHTvtPAUFBbrvvvu0bds2x+u7777Tzz//rLZt2+ro0aNKSkpSaGio3nzzTW3evFnLli2TpFOW6+vr6/h3+V1UJ7PZbCorK6v0+gQHB+u8885Tp06d9Nprr2nTpk169dVXHdP/93//V88//7wmTpyoL774Qtu2bVNSUtIZ1xeAe/l4ugAAdcvs2bPVuXNnXXDBBY6222+/XYMHD9by5ct1yy23uPXz4uPjdeLECRUXF8vPz09+fn6nHKm4+OKL9cMPP+i8886rcBnbt2/X77//rtmzZzuud/nmm2/cWmdleHl5acqUKZowYYIGDx6swMBAbdiwQbfccovuvPNOSVJZWZl++uknxcfHO+araJ3/qn379tqwYYNT24YNG9SuXTt5e3u7f2UAC+HIDgAnCQkJuuOOO/TCCy842gYNGqRbb71VgwYN0owZM7Rp0yZlZWVp7dq1Wrx4caV/bHv16qUFCxZoy5YtysrK0ooVKzRlyhT17t1boaGhkv4cZ2fdunX69ddflZeXJ0maOHGi0tPTNXr0aG3btk0///yzli9f7rhAuWXLlvLz89PcuXO1d+9effDBB2c9NVZT/va3v8nb21svvviipD+Piq1atUrp6enatWuX7rvvPh06dMhpntjYWMc2zcvLq/DI0sMPP6zVq1dr5syZ+umnn7Rw4ULNmzdPjzzySK2sF1CfEXYAnGLGjBlOP7g2m02LFy/WnDlztGLFCl199dW64IILdPfdd6tFixZav359pZablJSkhQsX6tprr1X79u01ZswYJSUl6Z133nH67KysLLVt21YRERGS/rzOZu3atfrpp5905ZVX6qKLLtKTTz6pZs2aSfrzlFpaWpqWLFmi+Ph4zZ49W//4xz/cuEUqz8fHR6NHj9Yzzzyjo0eP6vHHH9fFF1+spKQk9erVS9HR0erXr5/TPI888oi8vb0VHx+viIiICq/nufjii/XOO+/o7bffVocOHfTkk09qxowZFd5xBsCZzRhjPF0EAABATeHIDgAAsDTCDgC3OfnW8L++vvzyS0+XVyX79u074/pU9dZxAJ7DaSwAbnOmB4I2b95cgYGBtVhN9Zw4cUJZWVmnnR4bGysfH25oBeoDwg4AALA0TmMBAABLI+wAAABLI+wAAABLI+wAAABLI+wAAABLI+wAAABLI+wAAABLI+wAAABL+/9oYS3y5bjC8AAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_59.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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rVoKDg6+6u2ByuDp6an4+Hj17dtXb7zxhiZOnKjmzZtLunTZpiw//g0aNNDo0aM1evRo5eTkqFevXpo2bVqpAahp06YqLCxUcnKy06jP/v37i9W97rrrdPr06WLlvx5F+ec//6n8/Hx9/PHHatKkiaP83//+9xXbX9GaNm2qb7/9VoWFhU6jQD/++KNjvVR6uANQdlwCu0bjx4/Xli1btHTpUn377be67777dOedd5ZrXsOvHThwQKGhoWrevLnuv/9+paamVmCLgYrTp08fde3aVXPnztW5c+cUFBSkPn366K233lJaWlqx+idPnnT896lTp5zW1a1bVy1btlR+fn6p31f0j5G//e1vTuVz584tVrdFixbKyspyuqyWlpZW7GnMnp6ekiRjjKMsKytLixYtKrUdrnLXXXcpPT1diYmJjrKLFy/q9ddfV926ddW7d29Jkp+fnySVGPAAlA0jQNcgNTVVixYtUmpqqkJDQyVdGvpfs2aNFi1apJkzZ5Z7n1FRUUpISFCbNm2Ulpam6dOnq2fPntq7d6/q1atX0V0Artkzzzyj++67TwkJCXr00Uc1b9489ejRQxEREXrooYfUvHlzZWRkaMuWLTp69Ki++eYbSVK7du3Up08fde7cWQ0aNNCOHTv04Ycfavz48aV+V6dOnTR8+HD9/e9/V1ZWlrp3766kpCQdPHiwWN1hw4bpueee0z333KMnnnhCZ8+e1ZtvvqnWrVtr165djnp33HGHvLy8NGDAAD3yyCPKycnR22+/raCgoBJDnCs9/PDDeuuttzRq1Cjt3LlT4eHh+vDDD/XVV19p7ty5jr8Bvr6+ateunRITE9W6dWs1aNBAHTp0UIcOHSq1vUC15u7b0KoTSWbFihWOz5988omRZOrUqeO01KpVywwZMsQYY8y+ffuMpMsuzz33XKnf+fPPPxt/f3/zj3/8w9XdA0pVdBv89u3bi60rKCgwLVq0MC1atDAXL140xhiTnJxsRo4caYKDg03t2rVN48aNzW9/+1vz4YcfOrZ76aWXTNeuXU39+vWNr6+vadu2rfnzn/9szp8/76hT0i3reXl55oknnjANGzY0derUMQMGDDBHjhwp8bbwtWvXmg4dOhgvLy/Tpk0b895775W4z48//th07NjR+Pj4mPDwcDN79myzcOFCI8mkpKQ46pXnNvgr3eJf2v4y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Y4xGjBihJ554QnfddZfWrl2rH374QQsWLJCPj49eeumlMn3Po48+quXLl+v111/Xjz/+qDVr1ujee+/VqVOnKrI7lerOO+9UWlqaDh06pFdffVVvvfWWpk6des379fLyUnBwsFMIBXANKvTFGgCqvdjYWPPb3/7WtG3b1jzzzDOO8hUrVpiiPxlLliwxksyqVatK3EdhYWGZvstut5uEhIRS15f0zqAiX375penRo4fx8fEx119/vXn88cdNTk6OY/3ixYtN586dTd26dU2jRo3M8OHDTUZGhmN90fuL1qxZYzp16mR8fHxM3759TUZGhlm9erVp27atqVevnhk+fLjJzc0tU39iY2PNwIEDncoGDx5sbrzxRsfnzMxMM2zYMBMaGmp8fX1Nhw4dzPvvv++0j1/3OSUlxdHeX75H8MMPPzTt2rUzXl5epmnTpmbOnDllaicAYxgBAlCMp6enZs6cqddff11Hjx4ttn7JkiVq06aN7r777hK3L+soRXBwsFavXq0zZ86UuH758uW6/vrrNWPGDKWlpSktLU2SlJycrDvvvFO/+93v9O233yoxMVGbNm3S+PHjHdteuHBBL774or755hutXLlShw8f1qhRo4p9x7Rp0/TGG29o8+bNOnLkiIYMGaK5c+fq/fff16effqq1a9fq9ddfL1N/fm3v3r3avHmzvLy8HGXnzp1T586d9emnn2rv3r16+OGH9eCDD+rrr7+WJL322mvq1q2bHnroIUefw8LCiu17586dGjJkiIYNG6bvvvtO06ZN0wsvvKCEhISraitgOe5OYACqll+OYtxyyy3m97//vTHGeQSobdu25u6773ba7sknnzR16tQxderUMY0bNy7Td23YsMFcf/31pnbt2ubmm282EyZMMJs2bXKq07RpU/Pqq686lY0ZM8Y8/PDDTmVffvml8fDwMHl5eSV+1/bt240kc+bMGWPM/x8B+vzzzx114uPjjSSTnJzsKHvkkUdMTExMmfoTGxtrPD09TZ06dYy3t7eRZDw8PMyHH3542e369+9vnnrqKcfn3r17myeffNKpzq9HgEaMGGFuv/12pzrPPPOMadeuXZnaClgdI0AASjV79my988472rdv3xXr/ulPf9KePXs0ZcoU5eTklGn/vXr10qFDh5SUlKR7771X33//vXr27KkXX3zxstt98803SkhIUN26dR1LTEyMCgsLlZKSIunSCMmAAQPUpEkT1atXT71795YkpaamOu2rY8eOjv9u1KiR/Pz81Lx5c6eyEydOlKk/ktS3b1/t2bNH27ZtU2xsrEaPHq3f/e53jvUFBQV68cUXFRERoQYNGqhu3br67LPPirXrSvbt26dbb73VqezWW2/VgQMHVFBQUK59AVZEAAJQql69eikmJkaTJk1yKm/VqpX279/vVBYYGKiWLVsqKCioXN9Ru3Zt9ezZU88995zWrl2rGTNm6MUXX9T58+dL3SYnJ0ePPPKI9uzZ41i++eYbHThwQC1atFBubq5iYmLk7++v//3f/9X27du1YsUKSSq239q1azv+u+jurV+y2WwqLCwsc3/q1Kmjli1bKjIyUgsXLtS2bdu0YMECx/q//OUveu211/Tcc8/p3//+t/bs2aOYmJjL9hdAxavl7gYAqNpmzZqlTp06qU2bNo6y4cOHa8SIEVq1apUGDhxYod/Xrl07Xbx4UefOnZOXl5e8vLyKjWjcdNNN+uGHH9SyZcsS9/Hdd9/p1KlTmjVrlmP+zI4dOyq0nWXh4eGhyZMnKy4uTiNGjJCvr6+++uorDRw4UA888IAkqbCwUP/5z3/Url07x3Yl9fnXbrjhBn311VdOZV999ZVat24tT0/Piu8MUMMwAgTgsiIiInT//ffrb3/7m6Ns2LBhuvfeezVs2DDNmDFD27Zt0+HDh7VhwwYlJiaW+Qe4T58+euutt7Rz504dPnxYq1ev1uTJk9W3b1/5+/tLuvQcoI0bN+rYsWPKzMyUJD333HPavHmzxo8frz179ujAgQNatWqVYxJ0kyZN5OXlpddff12HDh3Sxx9/fMXLaq5y3333ydPTU/PmzZN0afRs3bp12rx5s/bt26dHHnlEGRkZTtuEh4c7jmlmZmaJI1BPPfWUkpKS9OKLL+o///mP3nnnHb3xxht6+umnK6VfQHVHAAJwRTNmzHD6EbbZbEpMTNTcuXO1evVq3XbbbWrTpo1+//vfKywsTJs2bSrTfmNiYvTOO+/ojjvu0A033KDHH39cMTExWrZsmdN3Hz58WC1atFBgYKCkS/N2NmzYoP/85z/q2bOnbrzxRk2ZMkWhoaGSLl2OS0hI0AcffKB27dpp1qxZmjNnTgUekbKrVauWxo8fr5dfflm5ubl6/vnnddNNNykmJkZ9+vRRcHCwBg0a5LTN008/LU9PT7Vr106BgYElzg+66aabtGzZMi1dulQdOnTQlClTNGPGjBLvdANQnM0YY9zdCAAAgMrECBAAALAcAhAAl/nlbeq/Xr788kt3N69cUlNTL9uf8t7GDsC9uAQGwGUu91LUxo0by9fXtxJbc20uXryow4cPl7o+PDxctWpxYy1QXRCAAACA5XAJDAAAWA4BCAAAWA4BCAAAWA4BCAAAWA4BCAAAWA4BCAAAWA4BCAAAWA4BCAAAWM7/AyVaS1YbZFwHAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_60.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAloAAAHHCAYAAABnS/bqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABO2UlEQVR4nO3de1xVdb7/8fcG5CIKZCCgoaB5ScVLmgxmoROFaY5kjaaOmqPpnNEpx6ZJmxSzJkydycmcdDqT9uuiWFl20izTzFQiQ81rjhpeUkDR2Kjgjf39/dFhnbaigrLcXF7Px2M/aH/XZ631XV93rDffvfbaDmOMEQAAACqcl6c7AAAAUF0RtAAAAGxC0AIAALAJQQsAAMAmBC0AAACbELQAAABsQtACAACwCUELAADAJgQtAAAAmxC0ANR4kydPlsPhKFOtw+HQ5MmTbe1Pt27d1K1bt0q7PQBlR9ACUGnMnz9fDofDevj4+Khhw4Z6+OGHdejQIU93r9KJjo52G6/69evrjjvu0Pvvv18h2y8sLNTkyZO1evXqCtkeUBMRtABUOlOmTNEbb7yhOXPm6N5779Wbb76phIQEnT592pb9Pf300yoqKrJl23Zr37693njjDb3xxhv605/+pMOHD6tv376aM2fONW+7sLBQzzzzDEELuAY+nu4AAFzo3nvvVadOnSRJI0aMUGhoqF544QV9+OGH6tevX4Xvz8fHRz4+VfPXYcOGDfWb3/zGej5kyBDdfPPNevHFF/W73/3Ogz0DIDGjBaAKuOOOOyRJe/fudWv/7rvv9OCDD6pevXry9/dXp06d9OGHH7rVnDt3Ts8884yaNWsmf39/3XjjjeratatWrFhh1ZR2jdaZM2f0xz/+UWFhYapbt65+9atf6Ycffriobw8//LCio6Mvai9tm/PmzdMvf/lL1a9fX35+fmrVqpVeeeWVco3FlUREROiWW25RVlbWZeuOHDmi4cOHKzw8XP7+/mrXrp1ef/11a/m+ffsUFhYmSXrmmWestyftvj4NqG6q5p9wAGqUffv2SZJuuOEGq2379u26/fbb1bBhQ40fP16BgYFatGiRkpOT9d577+n++++X9FPgSU1N1YgRI9S5c2cVFBTom2++0caNG3X33Xdfcp8jRozQm2++qYEDB6pLly5atWqVevXqdU3H8corr6h169b61a9+JR8fH/3P//yPfv/738vlcmn06NHXtO0S586d08GDB3XjjTdesqaoqEjdunXTnj17NGbMGMXExOidd97Rww8/rPz8fD322GMKCwvTK6+8ov/6r//S/fffr759+0qS2rZtWyH9BGoMAwCVxLx584wk89lnn5mjR4+agwcPmnfffdeEhYUZPz8/c/DgQav2rrvuMrGxseb06dNWm8vlMl26dDHNmjWz2tq1a2d69ep12f2mpKSYn/863Lx5s5Fkfv/737vVDRw40EgyKSkpVtvQoUNN48aNr7hNY4wpLCy8qC4pKck0adLErS0hIcEkJCRcts/GGNO4cWNzzz33mKNHj5qjR4+ab7/91jz00ENGkvnDH/5wye3NnDnTSDJvvvmm1Xb27FkTHx9v6tSpYwoKCowxxhw9evSi4wVQPrx1CKDSSUxMVFhYmKKiovTggw8qMDBQH374oW666SZJ0vHjx7Vq1Sr169dPJ06cUF5envLy8nTs2DElJSVp9+7d1qcUQ0JCtH37du3evbvM+1+2bJkk6dFHH3VrHzt27DUdV0BAgPXfTqdTeXl5SkhI0Pfffy+n03lV2/z0008VFhamsLAwtWvXTu+8844GDx6sF1544ZLrLFu2TBERERowYIDVVqtWLT366KM6efKkvvjii6vqC4CL8dYhgEpn9uzZat68uZxOp1577TWtWbNGfn5+1vI9e/bIGKOJEydq4sSJpW7jyJEjatiwoaZMmaI+ffqoefPmatOmjXr06KHBgwdf9i2w/fv3y8vLS02bNnVrb9GixTUd17p165SSkqL09HQVFha6LXM6nQoODi73NuPi4vTcc8/J4XCodu3auuWWWxQSEnLZdfbv369mzZrJy8v9b+1bbrnFWg6gYhC0AFQ6nTt3tj51mJycrK5du2rgwIHatWuX6tSpI5fLJUn605/+pKSkpFK3cfPNN0uS7rzzTu3du1dLlizRp59+qv/+7//Wiy++qDlz5mjEiBHX3NdL3ei0uLjY7fnevXt11113qWXLlvr73/+uqKgo+fr6atmyZXrxxRetYyqv0NBQJSYmXtW6AOxH0AJQqXl7eys1NVXdu3fXyy+/rPHjx6tJkyaSfnq7qywho169eho2bJiGDRumkydP6s4779TkyZMvGbQaN24sl8ulvXv3us1i7dq166LaG264Qfn5+Re1Xzgr9D//8z86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+vpaF8RPmTJFv/jFL3TzzTcrPz9f06dP1/79+zVixIjrOYSXdbnpUztecM2aNZPD4bjkNXY/d+LECfXo0UN169bV+++/r1q1al1UExUVpZtvvtmtreQrdKSfZkV9fHzUqlUrt5pbbrlFa9euvcqjAABUdf1va6Q7m4dpX16hokNreyRkSZUgaPXv319Hjx7VpEmTlJOTo/bt22v58uXWxewHDhyQl9f/Tbx16dJFb7/9tp5++mk99dRTatasmT744AO1adPGqvnzn/+sU6dOaeTIkcrPz1fXrl21fPlyt0+hvfXWWxozZozuuusueXl56YEHHtBLL71kLX/99ddVWFio1NRUK+RJUkJCglavXi1J+vHHH/XII48oJydHN9xwgzp27Kj169dfdNL3pJLp05+HLTunT+vVq6ekpCTNnj1bjz766EXXaeXn5yskJEQFBQVKSkqSn5+fPvzww6v+hKCvr69uu+027dq1y639P//5jxo3bnzVxwEAqPoigwM8FrBKOEx53+tBhSkoKFBwcLB1IfjPnT59WllZWYqJibnm2xSkbTigpxZvU7Ex1vRp/9saXdM2L+f777/X7bffrnr16mnKlClq27atzp8/rxUrVuiVV15RRkaG7rnnHhUWFur99993C2NhYWHy9vbWvn37FBMTo02bNql9+/Zu2+/WrZvat2+vmTNnSpLef/999e/fX7Nnz1b37t21fPlyjR07VqtXr1bXrl1L7WNFji8AoGa53Pn7Qh6f0YL9rvf0aZMmTbRx40b99a9/1eOPP67s7GyFhYWpY8eOeuWVV7Rx40brfmUXvi2YlZWl6Ojocu3v/vvv15w5c5SamqpHH31ULVq00HvvvXfJkAUAwPXCjJYHXa8ZLVyM8QUAXK3yzGhxHy0AAACbELQAAABsQtACAACwCUELAADAJgStSo7PKtiDcQUAXA8ErUqq5C7phYXX/wswa4KScS3tbvQAAFQU7qNVSXl7eyskJMT68uvatWvL4XBcYS1ciTFGhYWFOnLkiEJCQuTt7e3pLgEAqjGCViUWEREhSVbYQsUJCQmxxhcAALsQtCoxh8OhyMhI1a9fX+fOnfN0d6qNWrVqMZMFALguCFpVgLe3N8EAAIAqiIvhAQAAbELQAgAA1VK2s0jr9+Yp21nksT7w1iEAAKh20jYc0ITFW+UykpdDSu0bq/63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f1V9BWoUTyc9ADXXz2dlfvGLX5jf/va3xhj3Ga2WLVuaX/3qV27rPfbYYyYwMNAEBgaahg0blmlfX3zxhbnppptMrVq1TKdOnczYsWPN2rVr3WoaN25sXnzxRbe24cOHm5EjR7q1ffnll8bLy8sUFRWVuq8NGzYYSebEiRPGmP+b0frss8+smtTUVCPJ7N2712obNWqUSUpKKtPxDB061Hh7e5vAwEDj5+dnJBkvLy/z7rvvXna9Xr16mccff9x6npCQYB577DG3mgtntAYOHGjuvvtut5onnnjCtGrVqkx9BWoyZrQAVAovvPCCXn/9de3cufOKtX/5y1+0efNmTZo0SSdPnizT9u+88059//33WrlypR588EFt375dd9xxh5599tnLrvftt99q/vz5qlOnjvVISkqSy+VSVlaWpJ9mfHr37q1GjRqpbt26SkhIkCQdOHDAbVtt27a1/js8PFy1a9dWkyZN3NqOHDlSpuORpO7du2vz5s3KyMjQ0KFDNWzYMD3wwAPW8uLiYj377LOKjY1VvXr1VKdOHX3yyScX9etKdu7cqdtvv92t7fbbb9fu3btVXFxcrm0BNQ1BC0ClcOeddyopKUkTJkxwa2/WrJl27drl1hYWFqabb75Z9evXL9c+atWqpTvuuENPPvmkPv30U02ZMkXPPvuszp49e8l1Tp48qVGjRmnz5s3W49tvv9Xu3bvVtGlTnTp1SklJSQoKCtJbb72lDRs26P3335eki7Zbq1Yt679LPi34cw6HQy6Xq8zHExgYqJtvvlnt2rXTa6+9poyMDP373/+2lk+fPl3/+Mc/9OSTT+rzzz/X5s2blZSUdNnjBVCxfDzdAQAoMXXqVLVv314tWrSw2gYMGKCBAwdqyZIl6tOnT4Xur1WrVjp//rxOnz4tX19f+fr6XjRDc+utt2rHjh26+eabS93G1q1bdezYMU2dOtW6vumbb76p0H6WhZeXl5566imNGzdOAwcOVEBAgNatW6c+ffroN7/5jSTJ5XLpP//5j1q1amWtV9oxX+iWW27RunXr3NrWrVun5s2by9vbu+IPBqhGmNECUGnExsZq0KBBeumll6y2hx56SA8++KAeeughTZkyRRkZGdq3b5+++OILpaWllflE361bN82dO1eZmZnat2+fli1bpqeeekrdu3dXUFCQpJ/uo7VmzRodOnRIeXl5kqQnn3xS69ev15gxY7R582bt3r1bS5YssS6Gb9SokXx9fTVr1ix9//33+vDDD6/4dqRdfv3rX8vb21uzZ8+W9NNs4IoVK7R+/Xrt3LlTo0aNUm5urts60dHR1pjm5eWVOqP2+OOPa+XKlXr22Wf1n//8R6+//rpefvll/elPf7ouxwVUZQQtAJXKlClT3E72DodDaWlpmjlzppYtW6a77rpLLVq00G9/+1tFRUVp7dq1ZdpuUlKSXn/9dd1zzz265ZZb9Ic//EFJSUlatGiR27737dunpk2bKiwsTNJP11V98cUX+s9//qM77rhDHTp00KRJk9SgQQNJP72NOX/+fL3zzjtq1aqVpk6dqhkzZlTgiJSdj4+PxowZo2nTpunUqVN6+umndeuttyopKUndunVTRESEkpOT3db505/+JG9vb7Vq1UphYWGlXr916623atGiRVq4cKHatGmjSZMmacqUKaV+shKAO4cxxni6EwAAANURM1oAAAA2IWgBqBZ+fvuFCx9ffvmlp7tXLgcOHLjs8ZT39gwAPIe3DgFUC5f7cumGDRsqICDgOvbm2pw/f1779u275PLo6Gj5+PChcaAqIGgBAADYhLcOAQAAbELQAgAAsAlBCwAAwCYELQAAAJsQtAAAAGxC0AIAALAJQQsAAMAmBC0AAACb/H8183h3F1VwEAAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_61.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHHCAYAAABDUnkqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABHu0lEQVR4nO3de1xUdf7H8feAchFl1EBARfF+RbykhZborklqpvkrr5vmZlctXast/FXeSnQ3yzJTq00q1zTN269cL1nqKlbeKLVsU0GsAKXNQRDR4Pv7w3W2SVBQhoHD6/l4nMej+c73nPmcr7PMe8/5nnNsxhgjAAAAi/DydAEAAACliXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADwCOmTJkim81WrL42m01Tpkxxaz09evRQjx49yu32ABQf4Qao5BISEmSz2ZxLlSpVVK9ePd1zzz364YcfPF1euRMREeEyXnXq1NHNN9+sVatWlcr2z5w5oylTpmjLli2lsj2gMiLcAJAkTZs2Te+++64WLFigPn36aPHixYqJidHZs2fd8nlPP/20cnNz3bJtd2vfvr3effddvfvuu3r88cf1448/atCgQVqwYME1b/vMmTOaOnUq4Qa4BlU8XQCA8qFPnz66/vrrJUljxoxRUFCQZs2apbVr12rw4MGl/nlVqlRRlSoV809QvXr19Ic//MH5euTIkWratKleeuklPfjggx6sDIDEkRsARbj55pslSUeOHHFpP3TokO68807Vrl1bfn5+uv7667V27VqXPufPn9fUqVPVrFkz+fn56brrrtNNN92kTZs2OfsUNucmLy9Pf/rTnxQcHKwaNWro9ttv1/fff39Jbffcc48iIiIuaS9sm4sWLdLvfvc71alTR76+vmrdurXmz59forG4ktDQULVq1UrJycmX7XfixAnde++9CgkJkZ+fn6KiovT22287309JSVFwcLAkaerUqc5TX+6ebwRYTcX8v00A3C4lJUWSVKtWLWfbwYMH1a1bN9WrV09PPfWUAgIC9P7772vgwIH64IMPdMcdd0i6EDLi4+M1ZswYdenSRVlZWdq9e7f27t2rW265pcjPHDNmjBYvXqzhw4era9eu+uSTT9SvX79r2o/58+erTZs2uv3221WlShX93//9nx5++GEVFBRo7Nix17Tti86fP6/jx4/ruuuuK7JPbm6uevToocOHD2vcuHFq1KiRli9frnvuuUenTp3S+PHjFRwcrPnz5+uhhx7SHXfcoUGDBkmS2rVrVyp1ApWGAVCpLVq0yEgyH3/8sTl58qQ5fvy4WbFihQkODja+vr7m+PHjzr6///3vTWRkpDl79qyzraCgwHTt2tU0a9bM2RYVFWX69et32c+dPHmy+fWfoKSkJCPJPPzwwy79hg8fbiSZyZMnO9tGjRplGjZseMVtGmPMmTNnLukXGxtrGjdu7NIWExNjYmJiLluzMcY0bNjQ9O7d25w8edKcPHnSfPnll2bo0KFGknnkkUeK3N6cOXOMJLN48WJn27lz50x0dLSpXr26ycrKMsYYc/LkyUv2F0DJcFoKgCSpV69eCg4OVnh4uO68804FBARo7dq1ql+/viTp3//+tz755BMNHjxYp0+fVmZmpjIzM/XTTz8pNjZW3333nfPqqpo1a+rgwYP67rvviv3569atkyQ9+uijLu0TJky4pv3y9/d3/rfD4VBmZqZiYmJ09OhRORyOq9rmxo0bFRwcrODgYEVFRWn58uW6++67NWvWrCLXWbdunUJDQzVs2DBnW9WqVfXoo48qOztbW7duvapaAFyqUoebbdu2qX///qpbt65sNptWr17t1s+7OB/g10vLli3d+plAcc2bN0+bNm3SihUr1LdvX2VmZsrX19f5/uHDh2WM0TPPPOP8Yb+4TJ48WdKFOSXShSuvTp06pebNmysyMlJPPPGEvvrqq8t+/rFjx+Tl5aUmTZq4tLdo0eKa9mvHjh3q1auXAgICVLNmTQUHB2vSpEmSdNXh5oYbbtCmTZv08ccfKzExUZmZmXrnnXdcgtRvHTt2TM2aNZOXl+uf3VatWjnfB1A6KvWcm5ycHEVFRemPf/yj89y2u7Vp00Yff/yx83VFvVoE1tOlSxfn1VIDBw7UTTfdpOHDh+vbb79V9erVVVBQIEl6/PHHFRsbW+g2mjZtKknq3r27jhw5ojVr1mjjxo1688039dJLL2nBggUaM2bMNdda1M3/8vPzXV4fOXJEv//979WyZUu9+OKLCg8Pl4+Pj9atW6eXXnrJuU8lFRQUpF69el3VugDcr1L/svbp00d9+vQp8v28vDz97//+r9577z2dOnVKbdu21axZs67prqNVqlRRaGjoVa8PlAVvb2/Fx8erZ8+eevXVV/XUU0+pcePGki6cSinOD3vt2rU1evRojR49WtnZ2erevbumTJlSZLhp2LChCgoKdOTIEZejNd9+++0lfWvVqqVTp05d0v7box//93//p7y8PK1du1YNGjRwtn/66adXrL+0NWzYUF999ZUKCgpcjt4cOnTI+b5UdHADUHyV+rTUlYwbN047d+7U0qVL9dVXX+muu+7SrbfeWqJ5BL/13XffqW7dumrcuLFGjBih1NTUUqwYKD09evRQly5dNGfOHJ09e1Z16tRRjx49tHDhQqWlpV3S/+TJk87//umnn1zeq169upo2baq8vLwiP+/i/9F45ZVXXNrnzJlzSd8mTZrI4XC4nOpKS0u75C7B3t7ekiRjjLPN4XBo0aJFRdbhLn379lV6erqWLVvmbPvll180d+5cVa9eXTExMZKkatWqSVKh4Q1A8VTqIzeXk5qaqkWLFik1NVV169aVdOFw/Pr167Vo0SLNmDGjxNu84YYblJCQoBYtWigtLU1Tp07VzTffrAMHDqhGjRqlvQvANXviiSd01113KSEhQQ8++KDmzZunm266SZGRkbrvvvvUuHFjZWRkaOfOnfr+++/15ZdfSpJat26tHj16qFOnTqpdu7Z2796tFStWaNy4cUV+Vvv27TVs2DC99tprcjgc6tq1qzZv3qzDhw9f0nfo0KF68skndccdd+jRRx/VmTNnNH/+fDVv3lx79+519uvdu7d8fHzUv39/PfDAA8rOztYbb7yhOnXqFBrQ3On+++/XwoULdc8992jPnj2KiIjQihUrtGPHDs2ZM8f5N8Df31+tW7fWsmXL1Lx5c9WuXVtt27ZV27Zty7ReoELz9OVa5YUks2rVKufrDz/80EgyAQEBLkuVKlXM4MGDjTHGfPPNN0bSZZcnn3yyyM/8+eefTWBgoHnzzTfdvXtAkS5eCr5r165L3svPzzdNmjQxTZo0Mb/88osxxpgjR46YkSNHmtDQUFO1alVTr149c9ttt5kVK1Y413vuuedMly5dTM2aNY2/v79p2bKlef755825c+ecfQq7bDs3N9c8+uij5rrrrjMBAQGmf//+5vjx44VeGr1x40bTtm1b4+PjY1q0aGEWL15c6DbXrl1r2rVrZ/z8/ExERISZNWuWeeutt4wkk5yc7OxXkkvBr3SZe1Hb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Pz+/MqwYAIDKIczur+gm11W4YCN5+MhN/fr1NXPmTDVr1kzGGL399tsaMGCA9u3bpzZt2hS6TmBgoL799lvna5vNVmg/AABQOXk03PTv39/l9fPPP6/58+frs88+KzLc2Gw2hYaGlkV5AACgAio3E4rz8/O1dOlS5eTkKDo6ush+2dnZatiwocLDwzVgwAAdPHjwstvNy8tTVlaWywIAAKzL4+Fm//79ql69unx9ffXggw9q1apVat26daF9W7Roobfeektr1qzR4sWLVVBQoK5du+r7778vcvvx8fGy2+3OJTw83F27AgAAygGbMcZcuZv7nDt3TqmpqXI4HFqxYoXefPNNbd26tciA82vnz59Xq1atNGzYME2fPr3QPnl5ecrLy3O+zsrKUnh4uBwOhwIDA0ttPwAAgPtkZWXJbrcX6/fb45eC+/j4qGnTppKkTp06adeuXXr55Ze1cOHCK65btWpVdejQQYcPHy6yj6+vr3x9fUutXgAAUL55/LTUbxUUFLgcabmc/Px87d+/X2FhYW6uCgAAVBQePXITFxenPn36qEGDBjp9+rSWLFmiLVu2aMOGDZKkkSNHql69eoqPj5ckTZs2TTfeeKOaNm2qU6dO6a9//auOHTumMWPGeHI3AABAOeLRcHPixAmNHDlSaWlpstvtateunTZs2KBbbrlFkpSamiovr/8eXPr555913333KT09XbVq1VKnTp2UmJhYrPk55VWaI1fJmTlqFBRQIW+UBABAeePxCcVlrSQTktxt2a5U52PlvWxS/KBIDencwKM1AQBQHpXk97vczbmpLNIcuc5gI0kFRpq08oDSHLmeLQwAgAqOcOMhyZk5zmBzUb4xSsk845mCAACwCMKNhzQKCpDXbx6L5W2zKSKommcKAgDAIgg3HhJm91f8oEh5/+fBn942m2YMasukYgAArpHHb+JXmQ3p3EDdmwcrJfOMIoKqEWwAACgFhBsPC7P7E2oAAChFnJYCAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACW4tFwM3/+fLVr106BgYEKDAxUdHS0/vGPf1x2neXLl6tly5by8/NTZGSk1q1bV0bVAgCAisCj4aZ+/fqaOXOm9uzZo927d+t3v/udBgwYoIMHDxbaPzExUcOGDdO9996rffv2aeDAgRo4cKAOHDhQxpUDAIDCpDlylXgkU2mOXI/VYDPGGI99eiFq166tv/71r7r33nsveW/IkCHKycnRhx9+6Gy78cYb1b59ey1YsKBY28/KypLdbpfD4VBgYGCp1Q0AQGW3bFeq4lbuV4GRvGxS/KBIDencoFS2XZLf73Iz5yY/P19Lly5VTk6OoqOjC+2zc+dO9erVy6UtNjZWO3fuLHK7eXl5ysrKclkAAEDpSnPkOoONJBUYadLKAx45guPxcLN//35Vr15dvr6+evDBB7Vq1Sq1bt260L7p6ekKCQlxaQsJCVF6enqR24+Pj5fdbncu4eHhpVo/AACQkjNznMHmonxjlJJ5psxr8Xi4adGihZKSkvT555/roYce0qhRo/T111+X2vbj4uLkcDicy/Hjx0tt2wAA4IJGQQHysrm2edtsigiqVua1eDzc+Pj4qGnTpurUqZPi4+MVFRWll19+udC+oaGhysjIcGnLyMhQaGhokdv39fV1Xo11cQEAAKUrzO6v+EGR8rZdSDjeNptmDGqrMLt/mddSpcw/8QoKCgqUl5dX6HvR0dHavHmzJkyY4GzbtGlTkXN0AABA2RnSuYG6Nw9WSuYZRQRV80iwkTwcbuLi4tSnTx81aNBAp0+f1pIlS7RlyxZt2LBBkjRy5EjVq1dP8fHxkqTx48crJiZGs2fPVr9+/bR06VLt3r1br7/+uid3AwAA/EeY3d9joeYij4abEydOaOTIkUpLS5Pdble7du20YcMG3XLLLZKk1NRUeXn998xZ165dtWTJEj399NOaNGmSmjVrptWrV6tt27ae2gUAAFDOlLv73Lgb97kBAKDiqZD3uQEAACgNhBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAACwszZGrxCOZSnPkerqUMlPF0wUAAAD3WLYrVXEr96vASF42KX5QpIZ0buDpstyOIzcAAFhQmiPXGWwkqcBIk1YeqBRHcAg3AABYUHJmjjPYXJRvjFIyz3imoDLk0XATHx+vzp07q0aNGqpTp44GDhyob7/99rLrJCQkyGazuSx+fn5lVDEAABVDo6AAedlc27xtNkUEVfNMQWXIo+Fm69atGjt2rD777DNt2rRJ58+fV+/evZWTk3PZ9QIDA5WWluZcjh07VkYVAwBQMYTZ/RU/KFLetgsJx9tm04xBbRVm9/dwZe7n0QnF69evd3mdkJCgOnXqaM+ePerevXuR69lsNoWGhrq7PAAAKrQhnRuoe/NgpWSeUURQtUoRbKRydrWUw+GQJNWuXfuy/bKzs9WwYUMVFBSoY8eOmjFjhtq0aVNo37y8POXl5TlfZ2VllV7BFVCaI1fJmTlqFBRQab7kAFCZhdn9K93f+3IzobigoEATJkxQt27d1LZt2yL7tWjRQm+99ZbWrFmjxYsXq6CgQF27dtX3339faP/4+HjZ7XbnEh4e7q5dKPeW7UpVt5mfaPgbn6vbzE+0bFeqp0sCAKDU2Ywx5srd3O+hhx7SP/7xD23fvl3169cv9nrnz59Xq1atNGzYME2fPv2S9ws7chMeHi6Hw6HAwMBSqb0iSHPkqtvMT1xmznvbbNr+VM9Kl+gBABVPVlaW7HZ7sX6/y8VpqXHjxunDDz/Utm3bShRsJKlq1arq0KGDDh8+XOj7vr6+8vX1LY0yK7TLXRJIuAEAWIlHT0sZYzRu3DitWrVKn3zyiRo1alTibeTn52v//v0KCwtzQ4XWUZkvCQQAVC4eDTdjx47V4sWLtWTJEtWoUUPp6elKT09Xbu5/7544cuRIxcXFOV9PmzZNGzdu1NGjR7V371794Q9/0LFjxzRmzBhP7EKFUZkvCQQAVC4ePS01f/58SVKPHj1c2hctWqR77rlHkpSamiovr/9msJ9//ln33Xef0tPTVatWLXXq1EmJiYlq3bp1WZVdYVXWSwIBAJVLuZlQXFZKMiEJAACUDyX5/S43l4IDAACUBsINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwlBKHmw8//FDPPvusduzYIUn65JNP1LdvX9166616/fXXS71AAACAkihRuFm4cKHuuOMOrVu3Tn379tXixYs1cOBA1atXTxEREZowYYJefvlld9UKAABwRVVK0vmVV17Ra6+9pvvuu0+ffvqp+vbtq9mzZ+vhhx+WJN144436y1/+ovHjx7ulWAAAgCsp0ZGb5ORkxcbGSpJ69uyp/Px8de/e3fl+jx49dOzYsdKtEAAAoARKFG6uu+46Z3j58ccf9csvvyg1NdX5/rFjx1S7du3SrRAAAKAESnRaasCAAbr33ns1atQorV27ViNHjtRjjz0mLy8v2Ww2PfHEE+rdu7e7agUAALiiEoWbWbNm6dy5c1q6dKm6du2quXPn6pVXXtGAAQN0/vx5xcTEKD4+3l21AgAAXJHNGGOudSNnz57V+fPnVaNGjdKoya2ysrJkt9vlcDgUGBjo6XIAAEAxlOT3u0RHbori5+cnPz+/0tgUAADANSlRuJk4cWKx+r344otXVQwAAMC1KlG42bdvn8vr7du3q1OnTvL393e22Wy20qkMAADgKpQo3Hz66acur2vUqKElS5aocePGV/Xh8fHxWrlypQ4dOiR/f3917dpVs2bNUosWLS673vLly/XMM88oJSVFzZo106xZs9S3b9+rqgEAAFiLRx+cuXXrVo0dO1afffaZNm3apPPnz6t3797Kyckpcp3ExEQNGzZM9957r/bt26eBAwdq4MCBOnDgQBlWDgAAyqtrulqqRo0a+vLLL6/6yM1vnTx5UnXq1NHWrVtd7nz8a0OGDFFOTo4+/PBDZ9uNN96o9u3ba8GCBVf8DK6WAgCg4inJ77dHj9z8lsPhkKTL3uV4586d6tWrl0tbbGysdu7cWWj/vLw8ZWVluSwAAMC6SjTn5quvvnJ5bYzRoUOHlJ2d7dLerl27EhdSUFCgCRMmqFu3bmrbtm2R/dLT0xUSEuLSFhISovT09EL7x8fHa+rUqSWuBwAAVEwlCjft27eXzWbTr89k3XbbbZLkbLfZbMrPzy9xIWPHjtWBAwe0ffv2Eq97OXFxcS6XsGdlZSk8PLxUPwMAAJQfJQo3ycnJbili3Lhx+vDDD7Vt2zbVr1//sn1DQ0OVkZHh0paRkaHQ0NBC+/v6+srX17fUagUAAOVbicJNw4YNS/XDjTF65JFHtGrVKm3ZskWNGjW64jrR0dHavHmzJkyY4GzbtGmToqOjS7U2AABQMZX48QvGGKWkpCg8PFxVqlTRuXPntGrVKuXl5alv374KCgoq9rbGjh2rJUuWaM2aNapRo4Zz3ozdbnfeGHDkyJGqV6+e84Gc48ePV0xMjGbPnq1+/fpp6dKl2r17t15//fWS7goAALCgEoWbb7/9VrGxsTp+/LgaN26sjRs36q677tKhQ4dkjFG1atWUmJioZs2aFWt78+fPlyT16NHDpX3RokW65557JEmpqany8vrvRV1du3bVkiVL9PTTT2vSpElq1qyZVq9efdlJyAAAoPIo0X1uBg4cKGOMnnvuOb311lvasGGDmjdvruXLl6ugoEB33XWX7Ha73n33XXfWfE24zw0AABVPSX6/SxRu6tSpo40bN6p9+/bKyclRjRo1tG3bNt10002S/nv34GPHjl3bHrgR4QYAgIrHbTfxy87Odt5gLyAgQAEBAQoLC3O+Hx4efsmVTAAAXI00R64Sj2QqzZHr6VJQwZRozk3dunWVmpqqBg0aSJL+8pe/qE6dOs73T548qVq1apVuhQCASmfZrlTFrdyvAiN52aT4QZEa0rmBp8tCBVGiIze9evXSoUOHnK8feugh1ahRw/l648aN6tixY+lVBwCodNIcuc5gI0kFRpq08gBHcFBsJTpyc6UHUw4dOlSjRo26poIAAJVbcmaOM9hclG+MUjLPKMzu75miUKGU6MjNJ598otatWxf68EmHw6F+/frp8OHDpVYcAKDyaRQUIC+ba5u3zaaIoGqeKQgVTonCzZw5c3TfffcVOkvZbrfrgQce0IsvvlhqxQEAKp8wu7/iB0XK23Yh4XjbbJoxqC1HbVBsJboUvGHDhlq/fr1atWpV6PuHDh1S7969lZqaWmoFljYuBQeAiiHNkauUzDOKCKpGsEGJfr9LNOcmIyNDVatWLXpjVaro5MmTJdkkAACFCrP7E2pwVUp0WqpevXo6cOBAke9/9dVXLve9AQAAKGslCjd9+/bVM888o7Nnz17yXm5uriZPnqzbbrut1IoDAAAoqRLNucnIyFDHjh3l7e2tcePGqUWLFpIuzLWZN2+e8vPztXfvXoWEhLit4GvFnBsAACoet825CQkJUWJioh566CHFxcXpYi6y2WyKjY3VvHnzynWwAQAA1leicCNduGJq3bp1+vnnn3X48GEZY9SsWTMeuwAAAMqFEoebi2rVqqXOnTuXZi0AAADXrEQTigEAAMo7wg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AoNjSHLlKPJKpNEeup0sBilTF0wUAACqGZbtSFbdyvwqM5GWT4gdFakjnBp4uC7iER4/cbNu2Tf3791fdunVls9m0evXqy/bfsmWLbDbbJUt6enrZFAwAlVSaI9cZbCSpwEiTVh7gCA7KJY+Gm5ycHEVFRWnevHklWu/bb79VWlqac6lTp46bKgQASFJyZo4z2FyUb4xSMs94piDgMjx6WqpPnz7q06dPiderU6eOatasWfoFAQAK1SgoQF42uQQcb5tNEUHVPFcUUIQKOaG4ffv2CgsL0y233KIdO3Zctm9eXp6ysrJcFgBAyYTZ/XVHh3oubQM71FWY3d9DFQFFq1DhJiwsTAsWLNAHH3ygDz74QOHh4erRo4f27t1b5Drx8fGy2+3OJTw8vAwrBgBrSHPkatW+H1zaVu/7kTk3KJcq1NVSLVq0UIsWLZyvu3btqiNHjuill17Su+++W+g6cXFxmjhxovN1VlYWAQcASuhyc244eoPypkKFm8J06dJF27dvL/J9X19f+fr6lmFFAGA9zLlBRVKhTksVJikpSWFhYZ4uAwAsLczur/hBkfK22SRdCDYzBrXlqA3KJY8eucnOztbhw4edr5OTk5WUlKTatWurQYMGiouL0w8//KB33nlHkjRnzhw1atRIbdq00dmzZ/Xmm2/qk08+0caNGz21CwBQaQzp3EDdmwcrJfOMIoKqEWxQbnk03OzevVs9e/Z0vr44N2bUqFFKSEhQWlqaUlNTne+fO3dOjz32mH744QdVq1ZN7dq108cff+yyDQCA+4TZ/Qk1KPdsxhhz5W7WkZWVJbvdLofDocDAQE+XAwAAiqEkv98Vfs4NAADArxFuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBugDKS5shV4pFMpTlyPV0KAFiaR58KDlQW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UadOnbR582ZnW0FBgTZv3qzo6OhibSM/P1/79+9XWFhYoe/7+voqMDDQZQGAyqpRUIC8bK5t3jabIoKqeaYgwA08flpq4sSJeuONN/T222/rm2++0UMPPaScnByNHj1akjRy5EjFxcU5+0+bNk0bN27U0aNHtXfvXv3hD3/QsWPHNGbMGE/tAgBUGGF2f8UPipS37ULC8bbZNGNQWx6yCkvx+FPBhwwZopMnT+rZZ59Venq62rdvr/Xr1zsnGaempsrL678Z7Oeff9Z9992n9PR01apVS506dVJiYqJat27tqV0AgAplSOcG6t48WCmZZxQRVI1gA8uxGWPMlbtZR1ZWlux2uxwOB6eoAACoIEry++3x01IAAACliXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXAD4JqlOXKVeCRTaY5cT5cCAKri6QIAVGzLdqUqbuV+FRjJyybFD4rUkM4NPF0WgEqMIzcArlqaI9cZbCSpwEiTVh7gCA4AjyLcALhqyZk5zmBzUb4xSsk845mCAECEGwDXoFFQgLxsrm3eNpsigqp5piAAEOEGwDUIs/srflCkvG0XEo63zaYZg9oqzO7v4coAVGZMKAZwTYZ0bqDuzYOVknlGEUHVCDYAPI5wA+Cahdn9CTUAyg1OSwEAAEsh3AAAAEsh3AAAAEsh3JQibkEPAIDnMaG4lHALegAAyodyceRm3rx5ioiIkJ+fn2644QZ98cUXl+2/fPlytWzZUn5+foqMjNS6devKqNLCcQt6AADKD4+Hm2XLlmnixImaPHmy9u7dq6ioKMXGxurEiROF9k9MTNSwYcN07733at++fRo4cKAGDhyoAwcOlHHl/8Ut6AEAKD9sxhhz5W7uc8MNN6hz58569dVXJUkFBQUKDw/XI488oqeeeuqS/kOGDFFOTo4+/PBDZ9uNN96o9u3ba8GCBVf8vKysLNntdjkcDgUGBpbKPqQ5ctVt5icuAcfbZtP2p3py7w8AAEpBSX6/PXrk5ty5c9qzZ4969erlbPPy8lKvXr20c+fOQtfZuXOnS39Jio2NLbJ/WeAW9AAAlB8enVCcmZmp/Px8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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_62.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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garg6+urhIQE9evXT6+//rqefvpptWzZUtK5Qyll+WGvX7++xo0bp3HjxikvL099+vTR9OnTSw03zZo1k91u18GDB51Ga/bt23de28suu0wnTpw4b/rvRz/+/e9/q7CwUMuXL1fTpk0d07/44ouL1l/ZmjVrpu+//152u91p9Gbv3r2O+VLpwQ1A2VXrw1IXM3HiRG3ZskUffvihvv/+e91+++264YYbynUewe/t379fjRo1UsuWLXXHHXcoPT29EisGKk/fvn3Vo0cPzZ49W6dPn1bDhg3Vt29fvfnmm8rIyDiv/fHjxx3//vnnn53m1alTR61bt1ZhYWGpn1f8h8bf//53p+mzZ88+r22rVq2Uk5PjdKgrIyPjvLsE+/r6SpKMMY5pOTk5mj9/fql1uMqNN96ozMxMJSUlOab9+uuveu2111SnTh3FxcVJkmrVqiVJJYY3AGVTrUduLiQ9PV3z589Xenq6GjVqJOnccPzKlSs1f/58vfDCC+VeZ8+ePZWYmKh27dopIyNDM2bM0NVXX61du3apbt26lb0JwCV78skndfvttysxMVEPPPCA5syZo6uuukpRUVG699571bJlS2VlZWnLli368ccf9d1330mSOnbsqL59+6pbt26qX7++tm7dqsWLF2vixImlflZMTIxGjhypN954Qzk5OerVq5fWrFmjAwcOnNd2xIgReuqpp3TLLbfokUce0alTpzR37ly1bdtW27dvd7S7/vrr5efnp0GDBun+++9XXl6e/vnPf6phw4YlBjRXuu+++/Tmm2/qrrvu0rZt29S8eXMtXrxYmzZt0uzZsx3fAYGBgerYsaOSkpLUtm1b1a9fX507d1bnzp2rtF7Aq7n7ci1PIcksWbLE8f6TTz4xkkzt2rWdXjVq1DDDhg0zxhizZ88eI+mCr6eeeqrUz/zll19MUFCQeeutt1y9eUCpii8F//bbb8+bV1RUZFq1amVatWplfv31V2OMMQcPHjRjxowx4eHhpmbNmqZx48bmpptuMosXL3Ys96c//cn06NHD1KtXzwQGBpr27dubP//5z+bMmTOONiVdtl1QUGAeeeQR06BBA1O7dm0zaNAgc+TIkRIvjV61apXp3Lmz8fPzM+3atTMLFiwocZ3Lly83Xbp0MQEBAaZ58+bmpZdeMu+8846RZFJTUx3tynMp+MUucy9tfVlZWWbcuHEmJCTE+Pn5maioKDN//vzzlt28ebPp1q2b8fPz47JwoAJsxvxmvLYas9lsWrJkiYYMGSJJSkpK0h133KHdu3c7hraL1alTR+Hh4Tpz5owOHTp0wfU2aNDAccfRknTv3l39+/dXQkLCJW8DAADgsFSpunbtqqKiIh07dsxxG/rf8/Pzu6RLufPy8nTw4EGNHj26wusAAADOqnW4ycvLczqen5qaqpSUFNWvX19t27bVHXfcoTFjxuiVV15R165ddfz4ca1Zs0ZdunSp0C3hn3jiCQ0aNEjNmjXT0aNHNW3aNPn6+jrd1AsAAFyaan1Yat26derXr99508eOHavExESdPXtWf/rTn/Tee+/pp59+UkhIiK688krNmDFDUVFR5f68ESNGaMOGDfr5558VGhqqq666Sn/+85/Pu2kZAACouGodbgAAgPVwnxsAAGAphBsAAGAp1e6EYrvdrqNHj6pu3brc5hwAAC9hjNHJkyfVqFGj8x5A+3vVLtwcPXpUkZGR7i4DAABUwJEjR9SkSZMLtql24ab4FudHjhxRUFCQm6sBAABlkZubq8jIyDI9rqjahZviQ1FBQUGEGwAAvExZTinhhGIAAGAphBsAAGAphBsAAGAp1e6cm7IqKirS2bNn3V1GtVKzZs3znsAOAEB5EW5+xxijzMxMnThxwt2lVEv16tVTeHg49yACAFQY4eZ3ioNNw4YNVatWLX5kq4gxRqdOndKxY8ckSREREW6uCADgrQg3v1FUVOQINg0aNHB3OdVOYGCgJOnYsWNq2LAhh6gAABXCCcW/UXyOTa1atdxcSfVV3Pec7wQAqCjCTQk4FOU+9D0A4FIRbgAAgKUQbgAAgKUQbiwkMzNTDz/8sFq2bCl/f39FRkZq0KBBWrNmjVM7Y4wGDBggm82mpUuXOqanpaXJZrMpJSXlvHX37dtXkyZNcrxPTk7W9ddfrwYNGpS6zOnTpzVhwgQ1aNBAderU0a233qqsrKxK2loAQFlk5BRo88FsZeQUuLuUKkO4sYi0tDR169ZNa9eu1V//+lft3LlTK1euVL9+/TRhwgSntrNnz77kc1vy8/N11VVX6aWXXiq1zWOPPaZ///vf+uijj7R+/XodPXpUQ4cOvaTPBQCUXdK36er94lqN+ufX6v3iWiV9m+7ukqoEl4JbxEMPPSSbzaZvvvlGtWvXdkzv1KmT7r77bsf7lJQUvfLKK9q6desl3Utm9OjRks6FqpLk5OTo7bff1sKFC3XNNddIkubPn68OHTroq6++0pVXXlnhzwYAXFxGToGmJO+U3Zx7bzfS1ORd6tM2VBHBge4tzsUYuXGhqhoK/N///qeVK1dqwoQJTsGmWL169SRJp06d0qhRozRnzhyFh4e7tKZt27bp7Nmz6t+/v2Na+/bt1bRpU23ZssWlnw0AkFKz8x3BpliRMUrLPuWegqoQIzcukvRtuiMx+9ikhKFRGt69qUs+68CBAzLGqH379hds99hjj6lXr14aPHjwBdv16tVLPj7OubegoEAxMTFlrikzM1N+fn6OYFUsLCxMmZmZZV4PAKBiWoTUlo9NTgHH12ZT8xDr38uNcOMCVT0UaIy5aJvly5dr7dq12rFjx0XbJiUlqUOHDk7T7rjjjgrXBwCoehHBgUoYGqWpybtUZIx8bTa9MLSz5Q9JSYQbl7jQUKArdqo2bdrIZrNp7969pbZZu3atDh48eN5Iyq233qqrr75a69atc0yLjIxU69atndoVPxqhrMLDw3XmzBmdOHHC6TOzsrJcfkgMAHDO8O5N1adtqNKyT6l5SK1qEWwkzrlxieKhwN9y5VBg/fr1FR8frzlz5ig/P/+8+SdOnNDTTz+t77//XikpKY6XJM2aNUvz58+v9Jq6deummjVrOl2Gvm/fPqWnpys2NrbSPw8AULKI4EDFtmpQbYKNxMiNS7hjKHDOnDnq3bu3evTooZkzZ6pLly769ddftXr1as2dO1d79uwpccSkadOmatGiRbk/73//+5/S09N19OhRSeeCi3RuxCY8PFzBwcG65557NHnyZNWvX19BQUF6+OGHFRsby5VSAACXIty4SFUPBbZs2VLbt2/Xn//8Zz3++OPKyMhQaGiounXrprlz51b65y1fvlzjxo1zvB8xYoQkadq0aZo+fbqkc6NCPj4+uvXWW1VYWKj4+Hi98cYblV4LAAC/ZTNlORvVQnJzcxUcHKycnBwFBQU5zTt9+rRSU1PVokULBQQEuKnC6o3/BgDg3TJyCpSana8WIbUr9Q/7C/1+/x4jNwAAoFJU5W1QLoQTigEAwCUr7TYo7nimFeEGAABcMk+6IzLhBgAAXLKqvg3KhRBuSlDNzrH2KPQ9AHin4tug+NrOJRx33hGZE4p/o2bNmpLOPWCyvHfkReU4derc8GXxfwsAgPfwlDsiE25+w9fXV/Xq1dOxY8ckSbVq1ZLNZrvIUqgMxhidOnVKx44dU7169eTr6+vukgAAFRARHOj2uyETbn6n+C6+xQEHVatevXo8ewoAcEkIN79js9kUERGhhg0b6uzZs+4up1qpWbMmIzYAgEtGuCmFr68vP7QAAHghrpYCAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACW4tZwk5CQoO7du6tu3bpq2LChhgwZon379l1wmcTERNlsNqdXQEBAFVUMAAA8nVvDzfr16zVhwgR99dVXWr16tc6ePavrr79e+fn5F1wuKChIGRkZjtfhw4erqGIAAODparjzw1euXOn0PjExUQ0bNtS2bdvUp0+fUpez2WwKDw93dXkAAMALedQ5Nzk5OZKk+vXrX7BdXl6emjVrpsjISA0ePFi7d++uivIAAIAX8JhwY7fbNWnSJPXu3VudO3cutV27du30zjvvaNmyZVqwYIHsdrt69eqlH3/8scT2hYWFys3NdXoBAADrshljjLuLkKQHH3xQ//nPf7Rx40Y1adKkzMudPXtWHTp00MiRI/X888+fN3/69OmaMWPGedNzcnIUFBR0STUDAICqkZubq+Dg4DL9fnvEyM3EiRP1ySef6IsvvihXsJGkmjVrqmvXrjpw4ECJ86dMmaKcnBzH68iRI5VRMgAA8FBuPaHYGKOHH35YS5Ys0bp169SiRYtyr6OoqEg7d+7UjTfeWOJ8f39/+fv7X2qpAADAS7g13EyYMEELFy7UsmXLVLduXWVmZkqSgoODFRgYKEkaM2aMGjdurISEBEnSzJkzdeWVV6p169Y6ceKE/vrXv+rw4cMaP36827YDAAB4DreGm7lz50qS+vbt6zR9/vz5uuuuuyRJ6enp8vH5v6Nnv/zyi+69915lZmbqsssuU7du3bR582Z17NixqsoGAAAezGNOKK4q5TkhCQAAeAavO6EYAACgshBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApbg13CQkJKh79+6qW7euGjZsqCFDhmjfvn0XXe6jjz5S+/btFRAQoKioKK1YsaIKqgUAAN7AreFm/fr1mjBhgr766iutXr1aZ8+e1fXXX6/8/PxSl9m8ebNGjhype+65Rzt27NCQIUM0ZMgQ7dq1qworBwAAnspmjDHuLqLY8ePH1bBhQ61fv159+vQpsc3w4cOVn5+vTz75xDHtyiuvVExMjObNm3fRz8jNzVVwcLBycnIUFBRUabUDAADXKc/vt0edc5OTkyNJql+/fqlttmzZov79+ztNi4+P15YtW0psX1hYqNzcXKcXAACwLo8JN3a7XZMmTVLv3r3VuXPnUttlZmYqLCzMaVpYWJgyMzNLbJ+QkKDg4GDHKzIyslLrBgAAnsVjws2ECRO0a9cuffjhh5W63ilTpignJ8fxOnLkSKWuHwCqk4ycAm0+mK2MnAJ3lwKUqoa7C5CkiRMn6pNPPtGGDRvUpEmTC7YNDw9XVlaW07SsrCyFh4eX2N7f31/+/v6VVisAVFdJ36ZrSvJO2Y3kY5MShkZpePem7i4LOI9bR26MMZo4caKWLFmitWvXqkWLFhddJjY2VmvWrHGatnr1asXGxrqqTACo9jJyChzBRpLsRpqavIsRHHgkt4abCRMmaMGCBVq4cKHq1q2rzMxMZWZmqqDg//5nGTNmjKZMmeJ4/+ijj2rlypV65ZVXtHfvXk2fPl1bt27VxIkT3bEJAFAtpGbnO4JNsSJjlJZ9yj0FARfg1nAzd+5c5eTkqG/fvoqIiHC8kpKSHG3S09OVkZHheN+rVy8tXLhQ//jHPxQdHa3Fixdr6dKlFzwJGQBwaVqE1JaPzXmar82m5iG13FMQcAEedZ+bqsB9bgCgYpK+TdfU5F0qMka+NpteGNqZc25QZcrz++0RJxQDADzf8O5N1adtqNKyT6l5SC1FBAe6uySgRIQbAECZRQQHEmrg8TzmPjcAAACVgXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADWFRGToE2H8xWRk6Bu0sBgCpVw90FAKh8Sd+ma0ryTtmN5GOTEoZGaXj3pu4uCwCqBCM3gMVk5BQ4go0k2Y00NXkXIzgAqg3CDWAxqdn5jmBTrMgYpWWfck9BAFDFCDeAxbQIqS0fm/M0X5tNzUNquacgAKhihBvAYiKCA5UwNEq+tnMJx9dm0wtDOysiONDNlQFA1eCEYsCChndvqj5tQ5WWfUrNQ2oRbABUK4QbwKIiggMJNQCqJQ5LAQAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAAS6nQfW6++eYbbdmyRZmZmZKk8PBwxcbGqkePHpVaHAAAQHmVK9wcO3ZMt956qzZt2qSmTZsqLCxMkpSVlaXHHntMvXv31scff6yGDRu6pFgAAICLKddhqYceekhFRUXas2eP0tLS9PXXX+vrr79WWlqa9uzZI7vdrgkTJriqVgAAgIuyGWNMWRvXrVtXGzZsUNeuXUucv23bNvXt21cnT56stAIrW25uroKDg5WTk6OgoCB3lwMAAMqgPL/f5Rq58ff3V25ubqnzT548KX9///KsEgAAoFKVK9wMHz5cY8eO1ZIlS5xCTm5urpYsWaJx48Zp5MiRlV4kAABAWZXrhOJXX31VdrtdI0aM0K+//io/Pz9J0pkzZ1SjRg3dc889evnll11SKAAAQFmU65ybYrm5udq2bZvTpeDdunXzinNYOOcGAADvU57f7wrd5yYoKEj9+vWrUHEAAACuVKl3KM7KytLMmTMrc5UAAADlUqnhJjMzUzNmzChz+w0bNmjQoEFq1KiRbDabli5desH269atk81mO+9VfHgMAACgXIelvv/++wvO37dvX7k+PD8/X9HR0br77rs1dOjQMi+3b98+p+Nt3BEZAAAUK1e4iYmJkc1mU0nnIBdPt9lsZV7fgAEDNGDAgPKUIOlcmKlXr165lwMAANZXrnBTv359/eUvf9G1115b4vzdu3dr0KBBlVLYhcTExKiwsFCdO3fW9OnT1bt371LbFhYWqrCw0PH+QjchBAAA3q9c4aZbt246evSomjVrVuL8EydOlDiqU1kiIiI0b948XXHFFSosLNRbb72lvn376uuvv9bll19e4jIJCQnlOg8IAAB4t3Ld52bJkiXKz8/XnXfeWeL8X375RcuXL9fYsWPLX4jNpiVLlmjIkCHlWi4uLk5NmzbV+++/X+L8kkZuIiMjuc8NAABexGX3ubnlllsuOP+yyy6rULC5FD169NDGjRtLne/v78/zrgAAqEYq9VJwd0hJSVFERIS7ywAAAB6iXCM3kydPLlO7V199tUzt8vLydODAAcf71NRUpaSkqH79+mratKmmTJmin376Se+9954kafbs2WrRooU6deqk06dP66233tLatWu1atWq8mwGAACwsHKFmx07dji937hxo7p166bAwEDHtPJcCr5161anxzgUh6exY8cqMTFRGRkZSk9Pd8w/c+aMHn/8cf3000+qVauWunTpos8//5xHQQAAAIcKPTizWN26dfXdd9+pZcuWlVmTS/HgTAAAvE95fr+9/pwbb5eRU6DNB7OVkVPg7lIAALCECj0VHJUj6dt0TUneKbuRfGxSwtAoDe/e1N1lAeWWkVOg1Ox8tQiprYjgwIsvAAAuRLhxk4ycAkewkSS7kaYm71KftqH8OMCrENIBeJpLenCmMUZ79+5VXl6e0/QuXbpcemUWl5qd7wg2xYqMUVr2KcINvAYhHYAnuuQHZ950002SnB+cWVRUVLlVWlCLkNrysckp4PjabGoeUst9RQHlREgH4InKFW5SU1NdVUe1ExEcqIShUZqavEtFxsjXZtMLQzvzgwCvQkgH4InKFW5Ke2AmKmZ496bq0zZUadmn1DykFsEGXoeQDsATVcoJxddcc43mz59P+KmAiOBAfgjg1QjpADxNucLN8uXLS5y+YcMGffLJJ4qMjJQk3XzzzZdeGQCvQUgH4EnKdYdiHx+f804oPm+FHn5CMXcoBgDA+7jsDsXx8fEaMGCAMjMzZbfbHS9fX1/t2rVLdrvdo4MNAACwvnKFm//85z+69tprdcUVV+iTTz5xVU0AAAAVVu5nSz322GNavny5nnrqKd1///06deqUK+oC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7NmzK2XbXK2472w2m2rWrKkWLVroD3/4g06fPl2u9fTt21eTJk1ymtarVy9lZGQoODi4EisGqifCDVANBQQE6KWXXtIvv/xS4nxjjEaNGqVHHnlEN954o1atWqUffvhBb7/9tgICAvSnP/2pTJ/zwAMPKDk5Wa+99pr27t2rlStX6rbbbtPPP/9cmZtTpW644QZlZGTo0KFDmjVrlt58801Nmzbtktfr5+en8PBwp4AJoIIq9WEOADze2LFjzU033WTat29vnnzyScf0JUuWmOKvhA8++MBIMsuWLStxHXa7vUyfFRwcbBITE0udX9JzaIp9+eWX5qqrrjIBAQGmSZMm5uGHHzZ5eXmO+e+9957p1q2bqVOnjgkLCzMjR440WVlZjvnFz8RZuXKliYmJMQEBAaZfv34mKyvLrFixwrRv397UrVvXjBw50uTn55dpe8aOHWsGDx7sNG3o0KGma9eujvfZ2dlmxIgRplGjRiYwMNB07tzZLFy40Gkdv9/m1NRUR72/fTbd4sWLTceOHY2fn59p1qyZefnll8tUJ1DdMXIDVEO+vr564YUX9Nprr+nHH388b/4HH3ygdu3a6eabby5x+bKOLoSHh2vFihU6efJkifOTk5PVpEkTzZw5UxkZGcrIyJAkHTx4UDfccINuvfVWff/990pKStLGjRs1ceJEx7Jnz57V888/r++++05Lly5VWlqa7rrrrvM+Y/r06Xr99de1efNmHTlyRMOGDdPs2bO1cOFCffrpp1q1apVee+21Mm3P7+3atUubN2+Wn5+fY9rp06fVrVs3ffrpp9q1a5fuu+8+jR49Wt98840k6W9/+5tiY2N17733OrY5MjLyvHVv27ZNw4YN04gRI7Rz505Nnz5dzz77rBITEytUK1CtuDtdAahavx19uPLKK83dd99tjHEeuWnfvr25+eabnZZ79NFHTe3atU3t2rVN48aNy/RZ69evN02aNDE1a9Y0V1xxhZk0aZLZuHGjU5tmzZqZWbNmOU275557zH333ec07csvvzQ+Pj6moKCgxM/69ttvjSRz8uRJY8z/jdx8/vnnjjYJCQlGkjl48KBj2v3332/i4+PLtD1jx441vr6+pnbt2sbf399IMj4+Pmbx4sUXXG7gwIHm8ccfd7yPi4szjz76qFOb34/cjBo1ylx33XVObZ588knTsWPHMtUKVGeM3ADV2EsvvaR3331Xe/bsuWjbP/7xj0pJSdFzzz2nvLy8Mq2/T58+OnTokNasWaPbbrtNu3fv1tVXX63nn3/+gst99913SkxMVJ06dRyv+Ph42e12paamSjo3sjFo0CA1bdpUdevWVVxcnCQpPT3daV1dunRx/DssLEy1atVSy5YtnaYdO3asTNsjSf369VNKSoq+/vprjR07VuPGjdOtt97qmF9UVKTnn39eUVFRql+/vurUqaPPPvvsvLouZs+ePerdu7fTtN69e2v//v0qKioq17qA6oZwA1Rjffr0UXx8vKZMmeI0vU2bNtq3b5/TtNDQULVu3VoNGzYs12fUrFlTV199tZ566imtWrVKM2fO1PPPP68zZ86UukxeXp7uv/9+paSkOF7fffed9u/fr1atWik/P1/x8fEKCgrSv/71L3377bdasmSJJJ233po1azr+XXyV02/ZbDbZ7fYyb0/t2rXVunVrRUdH65133tHXX3+tt99+2zH/r3/9q/72t7/pqaee0hdffKGUlBTFx8dfcHsBVK4a7i4AgHu9+OKLiomJUbt27RzTRo4cqVGjRmnZsmUaPHhwpX5ex44d9euvv+r06dPy8/OTn5/feSMRl19+uX744Qe1bt26xHXs3LlTP//8s1588UXH+Spbt26t1DrLwsfHR1OnTtXkyZM1atQoBQYGatOmTRo8eLDuvPNOSZLdbtd///tfdezY0bFcSdv8ex06dNCmTZucpm3atElt27aVr69v5W8MYCGM3ADVXFRUlO644w79/e9/d0wbMWKEbrvtNo0YMUIzZ87U119/rbS0NK1fv15JSUll/nHt27ev3nzzTW3btk1paWlasWKFpk6dqn79+ikoKEjSufvcbNiwQT/99JOys7MlSU899ZQ2b96siRMnKiUlRfv379eyZcscJxQ3bdpUfn5+eu2113To0CEtX778ooe6XOX222+Xr6+v5syZI+ncqNfq1au1efNm7dmzR/fff7+ysrKclmnevLmjT7Ozs0scOXr88ce1Zs0aPf/88/rvf/+rd999V6+//rqeeOKJKtkuwJsRbgBo5syZTj+wNptNSUlJmj17tlasWKFrr71W7dq10913363IyEht3LixTOuNj4/Xu+++q+uvv14dOnTQww8/rPj4eC1atMjps9PS0tSqVSuFhoZKOneezPr16/Xf//5XV199tbp27arnnntOjRo1knTuEFliYqI++ugjdezYUS+++KJefvnlSuyRsqtRo4YmTpyov/zlL8rPz9czzzyjyy+/XPHx8erbt6/Cw8M1ZMgQp2WeeOIJ+fr6qmPHjgoNDS3xfJzLL79cixYt0ocffqjOnTvrueee08yZM0u8IgyAM5sxxri7CAAAgMrCyA0AALAUwg2ACvvtpdq/f3355ZfuLq9c0tPTL7g95b2UG4D7cFgKQIVd6AGajRs3VmBgYBVWc2l+/fVXpaWllTq/efPmqlGDC0wBb0C4AQAAlsJhKQAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCn/D+nY8kdwchNrAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_63.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkgAAAHHCAYAAABEEKc/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABEKElEQVR4nO3de1xVVcL/8e8BhYMomIFcDAUVNYOkvBBmoTM0p8mpyKlQGzXHsmbSNDVTfypqTljTxVF5ouZpomcakyzHehoeyoem6SKDd8tu4wXTClCm8aB456zfHz2e6WxQAYFzwM/79TovZO2191l7zR7Ot7XXXsdmjDECAACAm5+3GwAAAOBrCEgAAAAWBCQAAAALAhIAAIAFAQkAAMCCgAQAAGBBQAIAALAgIAEAAFgQkAAAACwISABarAULFshms9Wprs1m04IFC5q0PUOHDtXQoUN99ngA6o6ABOCC5ebmymazuV9t2rRRly5ddPfdd+ubb77xdvN8TmxsrEd/de7cWdddd53+/Oc/N8rxjx49qgULFui9995rlOMBFyMCEoBGs2jRIv3xj39UTk6OfvrTn+rll19Wamqqjh8/3iTvN3fuXB07dqxJjt3UkpKS9Mc//lF//OMfNWPGDH377bcaMWKEcnJyLvjYR48e1cKFCwlIwAVo4+0GAGg9fvrTn2rAgAGSpHvuuUdhYWF6/PHH9eabb+rOO+9s9Pdr06aN2rRpmX/GunTpol/84hfu38eOHauePXvqmWee0f333+/FlgGQGEEC0ISuu+46SdLu3bs9yr/44gvdfvvt6tSpk+x2uwYMGKA333zTo86pU6e0cOFCxcfHy26369JLL9WQIUO0bt06d53a5iCdOHFCDz30kMLDw9WhQwfdcsst+vrrr2u07e6771ZsbGyN8tqO+eKLL+pHP/qROnfurMDAQPXt21fPPvtsvfrifCIjI3X55ZerpKTknPUOHDigCRMmKCIiQna7Xf369dNLL73k3r53716Fh4dLkhYuXOi+jdfU86+A1qZl/qcXgBZh7969kqRLLrnEXfbpp5/q2muvVZcuXTRr1iwFBwfr1VdfVXp6ul5//XXddtttkr4PKllZWbrnnns0aNAgVVZWatOmTdqyZYtuuOGGs77nPffco5dfflmjR4/W4MGD9e6772r48OEXdB7PPvusrrjiCt1yyy1q06aN/vu//1u//vWv5XK59MADD1zQsc84deqU9u/fr0svvfSsdY4dO6ahQ4dq165dmjRpkuLi4rR69WrdfffdOnTokKZMmaLw8HA9++yz+tWvfqXbbrtNI0aMkCRdeeWVjdJO4KJhAOACvfjii0aS+d///V9z8OBBs3//fvPaa6+Z8PBwExgYaPbv3++u++Mf/9gkJiaa48ePu8tcLpcZPHiwiY+Pd5f169fPDB8+/Jzvm5mZaX74Z2zbtm1Gkvn1r3/tUW/06NFGksnMzHSXjRs3znTr1u28xzTGmKNHj9ao53A4TPfu3T3KUlNTTWpq6jnbbIwx3bp1Mz/5yU/MwYMHzcGDB8327dvNyJEjjSQzefLksx5v6dKlRpJ5+eWX3WUnT540KSkppn379qaystIYY8zBgwdrnC+A+uEWG4BGk5aWpvDwcMXExOj2229XcHCw3nzzTV122WWSpO+++07vvvuu7rzzTh0+fFgVFRWqqKjQP//5TzkcDu3cudP91FvHjh316aefaufOnXV+//z8fEnSgw8+6FE+derUCzqvoKAg97+dTqcqKiqUmpqqPXv2yOl0NuiY77zzjsLDwxUeHq5+/fpp9erVGjNmjB5//PGz7pOfn6/IyEiNGjXKXda2bVs9+OCDOnLkiP72t781qC0AauIWG4BGk52drV69esnpdOoPf/iD3n//fQUGBrq379q1S8YYzZs3T/Pmzav1GAcOHFCXLl20aNEi3XrrrerVq5cSEhJ04403asyYMee8VfTVV1/Jz89PPXr08Cjv3bv3BZ3XRx99pMzMTBUVFeno0aMe25xOp0JDQ+t9zOTkZC1evFg2m03t2rXT5Zdfro4dO55zn6+++krx8fHy8/P8b9vLL7/cvR1A4yAgAWg0gwYNcj/Flp6eriFDhmj06NH68ssv1b59e7lcLknSjBkz5HA4aj1Gz549JUnXX3+9du/erTfeeEPvvPOO/vM//1PPPPOMcnJydM8991xwW8+2wGR1dbXH77t379aPf/xj9enTR08//bRiYmIUEBCg/Px8PfPMM+5zqq+wsDClpaU1aF8ATY+ABKBJ+Pv7KysrS8OGDdOKFSs0a9Ysde/eXdL3t4XqEg46deqk8ePHa/z48Tpy5Iiuv/56LViw4KwBqVu3bnK5XNq9e7fHqNGXX35Zo+4ll1yiQ4cO1Si3jsL893//t06cOKE333xTXbt2dZf/9a9/PW/7G1u3bt308ccfy+VyeYwiffHFF+7t0tnDH4C6Yw4SgCYzdOhQDRo0SEuXLtXx48fVuXNnDR06VM8995xKS0tr1D948KD73//85z89trVv3149e/bUiRMnzvp+P/3pTyVJy5Yt8yhfunRpjbo9evSQ0+nUxx9/7C4rLS2tsZq1v7+/JMkY4y5zOp168cUXz9qOpnLTTTeprKxMeXl57rLTp09r+fLlat++vVJTUyVJ7dq1k6RaAyCAumEECUCTevjhh3XHHXcoNzdX999/v7KzszVkyBAlJibq3nvvVffu3VVeXq6ioiJ9/fXX2r59uySpb9++Gjp0qPr3769OnTpp06ZNeu211zRp0qSzvldSUpJGjRql//iP/5DT6dTgwYNVWFioXbt21ag7cuRIPfLII7rtttv04IMP6ujRo3r22WfVq1cvbdmyxV3vJz/5iQICAnTzzTfrvvvu05EjR/T73/9enTt3rjXkNaWJEyfqueee0913363NmzcrNjZWr732mj766CMtXbpUHTp0kPT9pPK+ffsqLy9PvXr1UqdOnZSQkKCEhIRmbS/Qonn7MToALd+Zx/w3btxYY1t1dbXp0aOH6dGjhzl9+rQxxpjdu3ebsWPHmsjISNO2bVvTpUsX87Of/cy89tpr7v0WL15sBg0aZDp27GiCgoJMnz59zG9+8xtz8uRJd53aHsk/duyYefDBB82ll15qgoODzc0332z2799f62Pv77zzjklISDABAQGmd+/e5uWXX671mG+++aa58sorjd1uN7Gxsebxxx83f/jDH4wkU1JS4q5Xn8f8z7eEwdmOV15ebsaPH2/CwsJMQECASUxMNC+++GKNfdevX2/69+9vAgICeOQfaACbMT8YNwYAAABzkAAAAKwISAAAABYEJAAAAAsCEgAAgAUBCQAAwIKABAAAYMFCkQ3kcrn07bffqkOHDizrDwBAC2GM0eHDhxUdHV3ji59/iIDUQN9++61iYmK83QwAANAA+/fv12WXXXbW7QSkBjqzpP/+/fsVEhLi5dYAAIC6qKysVExMjPtz/GwISA105rZaSEgIAQkAgBbmfNNjmKQNAABgQUACAACwICABAABYMAepiVVXV+vUqVPebkaL0LZtW/n7+3u7GQAAEJCaijFGZWVlOnTokLeb0qJ0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cYVKS0vdrw8//LA5TqdB6tsHc+fO1XPPPafly5frs88+0/3336/bbrtNW7dubfAxva0p+kBqWddBVVWV+vXrp+zs7DrVLykp0fDhwzVs2DBt27ZNU6dO1T333OPxh7GlXQdN0QdS674OTpw4ofDwcM2dO1f9+vWrtc769es1atQoTZgwQVu3blV6errS09O1Y8eOxmx6o2iK85e+X2H6h9fAV1991VhNbnT17YP3339fN9xwg/Lz87V582YNGzZMN998c/N/Jhg0qkGDBpkHHnjA/Xt1dbWJjo42WVlZtdZ/4IEHzI9+9COPsmnTpplrr73W/XtmZqbp169fk7S3KdS3D6KiosyKFSs8ykaMGGHuuuuuBh/T25qiD1radfBDksyf//znc9aZOXOmueKKKzzKMjIyjMPhcP/e0q6DH2qsPmjt18EPpaammilTptQov/POO83w4cM9ypKTk8199913gS1sWo11/i+++KIJDQ1ttHY1p/r2wRl9+/Y1CxcudP/eHH8LGEFqRCdPntTmzZuVlpbmLvPz81NaWpqKiopq3Wfw4MHavHmze2hwz549ys/P10033eRRb+fOnYqOjlb37t111113ad++fU13IhegIX1w4sSJGsPDQUFB7v8qbsgxvakp+uCMlnIdNERRUZFHn0mSw+Fw91lLuw4a4nx9cEZrvg7qoq791JodOXJE3bp1U0xMjG699VZ9+umn3m5Sk3G5XDp8+LA6deokqfn+FhCQGlFFRYWqq6sVERHhUR4REaGysrJa9xk9erQWLVqkIUOGqG3bturRo4eGDh3qcYstOTlZubm5Kigo0LPPPquSkhJdd911Onz4cJOeT0M0pA8cDoeefvpp7dy5Uy6XS+vWrdOaNWtUWlra4GN6U1P0gdSyroOGKCsrq7XPKisrdezYsRZ3HTTE+fpAav3XQV2crZ9ay3VwPr1799Yf/vAHvfHGG3r55Zflcrk0ePBgff31195uWpN48skndeTIEd15552Smu8zgYDkZe+9954ee+wx/cd//Ie2bNmiNWvW6C9/+YseffRRd52f/vSnuuOOO3TllVfK4XAoPz9fhw4d0quvvurFljee3/3ud4qPj1efPn0UEBCgSZMmafz48fLzu3guz7r0QWu/DlA3XAdISUnR2LFjlZSUpNTUVK1Zs0bh4eF67rnnvN20Rrdy5UotXLhQr776qjp37tys733xfAI1g7CwMPn7+6u8vNyjvLy8XJGRkbXuM2/ePI0ZM0b33HOPEhMTddttt+mxxx5TVlaWXC5Xrft07NhRvXr10q5duxr9HC5UQ/ogPDxca9euVVVVlb766it98cUXat++vbp3797gY3pTU/RBbXz5OmiIyMjIWvssJCREQUFBLe46aIjz9UFtWtt1UBdn66fWch3UV9u2bXXVVVe1umtg1apVuueee/Tqq6963E5rrr8FBKRGFBAQoP79+6uwsNBd5nK5VFhYqJSUlFr3OXr0aI2REn9/f0mSOcvX5B05ckS7d+9WVFRUI7W88TSkD86w2+3q0qWLTp8+rddff1233nrrBR/TG5qiD2rjy9dBQ6SkpHj0mSStW7fO3Wct7TpoiPP1QW1a23VQFw3pp9asurpan3zySau6Bl555RWNHz9er7zyioYPH+6xrdn+FjTadG8YY4xZtWqVCQwMNLm5ueazzz4zEydONB07djRlZWXGGGPGjBljZs2a5a6fmZlpOnToYF555RWzZ88e884775gePXqYO++8011n+vTp5r333jMlJSXmo48+MmlpaSYsLMwcOHCg2c+vLurbB3//+9/N66+/bnbv3m3ef/9986Mf/cjExcWZf/3rX3U+pq9pij5oadfB4cOHzdatW83WrVuNJPP000+brVu3mq+++soYY8ysWbPMmDFj3PX37Nlj2rVrZx5++GHz+eefm+zsbOPv728KCgrcdVraddAUfdDarwNjjLt+//79zejRo83WrVvNp59+6t7+0UcfmTZt2pgnn3zSfP755yYzM9O0bdvWfPLJJ816bnXRFOe/cOFC8/bbb5vdu3ebzZs3m5EjRxq73e5Rx5fUtw/+9Kc/mTZt2pjs7GxTWlrqfh06dMhdpzn+FhCQmsDy5ctN165dTUBAgBk0aJD5+9//7t6Wmppqxo0b5/791KlTZsGCBaZHjx7GbrebmJgY8+tf/9rjgzEjI8NERUWZgIAA06VLF5ORkWF27drVjGdUf/Xpg/fee89cfvnlJjAw0Fx66aVmzJgx5ptvvqnXMX1RY/dBS7sO/vrXvxpJNV5nznvcuHEmNTW1xj5JSUkmICDAdO/e3bz44os1jtuSroOm6IOL4TqorX63bt086rz66qumV69eJiAgwFxxxRXmL3/5S/OcUD01xflPnTrV/f+BiIgIc9NNN5ktW7Y030nVU337IDU19Zz1z2jqvwU2Y85yHwcAAOAixRwkAAAACwISAACABQEJAADAgoAEAABgQUACAACwICABAABYEJAAAAAsCEgA0Eq89957stlsOnTokLebArR4BCQA9Xb33XfLZrNpyZIlHuVr166VzWZz/26M0e9//3ulpKQoJCRE7du31xVXXKEpU6bU+Ys1jx49qtmzZ6tHjx6y2+0KDw9Xamqq3njjDXed2NhYLV26tFHOramd6Tubzaa2bdsqLi5OM2fO1PHjx+t1nKFDh2rq1KkeZYMHD1ZpaalCQ0MbscXAxYmABKBB7Ha7Hn/8cf3rX/+qdbsxRqNHj9aDDz6om266Se+8844+++wzvfDCC7Lb7Vq8eHGd3uf+++/XmjVrtHz5cn3xxRcqKCjQ7bffrn/+85+NeTrN6sYbb1Rpaan27NmjZ555Rs8995wyMzMv+LgBAQGKjIz0CKkAGqhRv7gEwEVh3Lhx5mc/+5np06ePefjhh93lf/7zn82ZPyuvvPKKkWTeeOONWo/hcrnq9F6hoaEmNzf3rNtr+96mMz744AMzZMgQY7fbzWWXXWYmT55sjhw54t7+X//1X6Z///6mffv2JiIiwowaNcqUl5e7t5/5DqmCggKTlJRk7Ha7GTZsmCkvLzf5+fmmT58+pkOHDmbUqFGmqqqqTuczbtw4c+utt3qUjRgxwlx11VXu3ysqKszIkSNNdHS0CQoKMgkJCWblypUex7Cec0lJibu9P/wux9dee8307dvXBAQEmG7dupknn3yyTu0ELnaMIAFoEH9/fz322GNavny5vv766xrbX3nlFfXu3Vu33HJLrfvXdZQjMjJS+fn5Onz4cK3b16xZo8suu0yLFi1SaWmpSktLJUm7d+/WjTfeqJ///Of6+OOPlZeXpw8//FCTJk1y73vq1Ck9+uij2r59u9auXau9e/fq7rvvrvEeCxYs0IoVK7R+/Xrt379fd955p5YuXaqVK1fqL3/5i9555x0tX768TudjtWPHDq1fv14BAQHusuPHj6t///76y1/+oh07dmjixIkaM2aMNmzYIEn63e9+p5SUFN17773uc46Jialx7M2bN+vOO+/UyJEj9cknn2jBggWaN2+ecnNzG9RW4KLi7YQGoOX54SjINddcY375y18aYzxHkPr06WNuueUWj/2mTJligoODTXBwsOnSpUud3utvf/ubueyyy0zbtm3NgAEDzNSpU82HH37oUadbt27mmWee8SibMGGCmThxokfZBx98YPz8/MyxY8dqfa+NGzcaSebw4cPGmH+PIP3v//6vu05WVpaRZHbv3u0uu++++4zD4ajT+YwbN874+/ub4OBgExgYaCQZPz8/89prr51zv+HDh5vp06e7f09NTTVTpkzxqGMdQRo9erS54YYbPOo8/PDDpm/fvnVqK3AxYwQJwAV5/PHH9dJLL+nzzz8/b93/9//+n7Zt26b58+fryJEjdTr+9ddfrz179qiwsFC33367Pv30U1133XV69NFHz7nf9u3blZubq/bt27tfDodDLpdLJSUlkr4fYbn55pvVtWtXdejQQampqZKkffv2eRzryiuvdP87IiJC7dq1U/fu3T3KDhw4UKfzkaRhw4Zp27ZtKi4u1rhx4zR+/Hj9/Oc/d2+vrq7Wo48+qsTERHXq1Ent27fX22+/XaNd5/P555/r2muv9Si79tprtXPnTlVXV9frWMDFhoAE4IJcf/31cjgcmj17tkd5fHy8vvzyS4+y8PBw9ezZU507d67Xe7Rt21bXXXedHnnkEb3zzjtatGiRHn30UZ08efKs+xw5ckT33Xeftm3b5n5t375dO3fuVI8ePVRVVSWHw6GQkBD96U9/0saNG/XnP/9Zkmoct23btu5/n3n67IdsNptcLledzyc4OFg9e/ZUv3799Ic//EHFxcV64YUX3Nt/+9vf6ne/+50eeeQR/fWvf9W2bdvkcDjOeb4AGlcbbzcAQMu3ZMkSJSUlqXfv3u6yUaNGafTo0XrjjTd06623Nur79e3bV6dPn9bx48cVEBCggICAGiMiV199tT777DP17Nmz1mN88skn+uc//6klS5a45+9s2rSpUdtZF35+fpozZ46mTZum0aNHKygoSB999JFuvfVW/eIXv5AkuVwu/eMf/1Dfvn3d+9V2zlaXX365PvroI4+yjz76SL169ZK/v3/jnwzQijCCBOCCJSYm6q677tKyZcvcZSNHjtTtt9+ukSNHatGiRSouLtbevXv1t7/9TXl5eXX+gB46dKiee+45bd68WXv37lV+fr7mzJmjYcOGKSQkRNL36yC9//77+uabb1RRUSFJeuSRR7R+/XpNmjRJ27Zt086dO/XGG2+4J2l37dpVAQEBWr58ufbs2aM333zzvLftmsodd9whf39/ZWdnS/p+9G3dunVav369Pv/8c913330qLy/32Cc2NtbdpxUVFbWOYE2fPl2FhYV69NFH9Y9//EMvvfSSVqxYoRkzZjTLeQEtGQEJQKNYtGiRx4e0zWZTXl6eli5dqvz8fP34xz9W79699ctf/lIxMTH68MMP63Rch8Ohl156ST/5yU90+eWXa/LkyXI4HHr11Vc93nvv3r3q0aOHwsPDJX0/b+hvf/ub/vGPf+i6667TVVddpfnz5ys6OlrS97f7cnNztXr1avXt21dLlizRk08+2Yg9Undt2rTRpEmT9MQTT6iqqkpz587V1VdfLYfDoaFDhyoyMlLp6eke+8yYMUP+/v7q27evwsPDa52fdPXVV+vVV1/VqlWrlJCQoPnz52vRokW1PqkHwJPNGGO83QgAAABfwggSAACABQEJgFf98DF86+uDDz7wdvPqZd++fec8n/o+pg/Ae7jFBsCrzvWltV26dFFQUFAztubCnD59Wnv37j3r9tjYWLVpw8PDQEtAQAIAALDgFhsAAIAFAQkAAMCCgAQAAGBBQAIAALAgIAEAAFgQkAAAACwISAAAABYEJAAAAIv/D7qANZWJ0OT1AAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_64.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlEAAAHHCAYAAACfqw0dAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABKT0lEQVR4nO3de1xVdb7/8fcG5CIKZCAXQ0GT1GS0NAlTsaSwnIrMES8nL8fUmcnSY02TTopZE2U3szzZ3WZKRcvKKYd0tHJKQkUtr2WGaQUoOmwU8cb+/v7osH7tRIUlsAVez8djPYi1Pmvt7/q2Yr/7ru/ey2GMMQIAAEC1eHm6AQAAAPURIQoAAMAGQhQAAIANhCgAAAAbCFEAAAA2EKIAAABsIEQBAADYQIgCAACwgRAFAABgAyEKQIM2Y8YMORyOKtU6HA7NmDGjVtvTt29f9e3b94I9HoCqI0QBqBPz58+Xw+GwFh8fH7Vq1UqjRo3Sjz/+6OnmXXBiYmLc+qtly5bq3bu33n333Ro5/tGjRzVjxgx98sknNXI8oDEiRAGoUzNnztTf//53zZs3TzfeeKPefPNNJSUl6dixY7Xyeg8++KDKyspq5di1rWvXrvr73/+uv//977rvvvv0008/aeDAgZo3b955H/vo0aN66KGHCFHAefDxdAMANC433nijunfvLkm68847FRoaqscff1zLli3T4MGDa/z1fHx85ONTP//UtWrVSv/1X/9l/T5ixAhdeumleuaZZ/T73//egy0DIDESBcDDevfuLUnavXu32/qdO3dq0KBBatGihfz9/dW9e3ctW7bMrebkyZN66KGH1L59e/n7++viiy9Wr169tHLlSqumsjlRx48f1//8z/8oLCxMzZs31y233KIffvjhtLaNGjVKMTExp62v7Jivv/66rrvuOrVs2VJ+fn7q1KmTXnjhhWr1xblERESoY8eOysvLO2vd/v37NWbMGIWHh8vf319dunTRG2+8YW3fs2ePwsLCJEkPPfSQdcuwtueDAQ1N/fzfMwANxp49eyRJF110kbVu27Ztuuaaa9SqVSs98MADCgwM1OLFi5Wamqp33nlHt912m6Sfw0xGRobuvPNO9ejRQyUlJdqwYYM2btyo66+//oyveeedd+rNN9/UsGHD1LNnT61evVoDBgw4r/N44YUXdPnll+uWW26Rj4+P/vGPf+iPf/yjXC6X7rrrrvM6doWTJ09q3759uvjii89YU1ZWpr59++rbb7/VhAkTFBsbqyVLlmjUqFEqLi7WxIkTFRYWphdeeEF/+MMfdNttt2ngwIGSpN/85jc10k6g0TAAUAdef/11I8n861//MgcOHDD79u0zb7/9tgkLCzN+fn5m3759Vm2/fv1MfHy8OXbsmLXO5XKZnj17mvbt21vrunTpYgYMGHDW101PTze//FO3efNmI8n88Y9/dKsbNmyYkWTS09OtdSNHjjRt2rQ55zGNMebo0aOn1aWkpJi2bdu6rUtKSjJJSUlnbbMxxrRp08bccMMN5sCBA+bAgQPmyy+/NEOGDDGSzN13333G482ePdtIMm+++aa17sSJEyYxMdE0a9bMlJSUGGOMOXDgwGnnC6B6uJ0HoE4lJycrLCxM0dHRGjRokAIDA7Vs2TJdcsklkqRDhw5p9erVGjx4sA4fPqyioiIVFRXp4MGDSklJ0a5du6xP84WEhGjbtm3atWtXlV9/+fLlkqR77rnHbf2kSZPO67wCAgKsf3Y6nSoqKlJSUpK+++47OZ1OW8dcsWKFwsLCFBYWpi5dumjJkiW644479Pjjj59xn+XLlysiIkJDhw611jVp0kT33HOPjhw5ok8//dRWWwCcjtt5AOrU3LlzFRcXJ6fTqddee01r1qyRn5+ftf3bb7+VMUbTpk3TtGnTKj3G/v371apVK82cOVO33nqr4uLi1LlzZ/Xv31933HHHWW9Lff/99/Ly8lK7du3c1l922WXndV6ff/650tPTlZ2draNHj7ptczqdCg4OrvYxExIS9Mgjj8jhcKhp06bq2LGjQkJCzrrP999/r/bt28vLy/3/kTt27GhtB1AzCFEA6lSPHj2sT+elpqaqV69eGjZsmL7++ms1a9ZMLpdLknTfffcpJSWl0mNceumlkqQ+ffpo9+7dev/997VixQq98soreuaZZzRv3jzdeeed593WM31JZ3l5udvvu3fvVr9+/dShQwc9/fTTio6Olq+vr5YvX65nnnnGOqfqCg0NVXJysq19AdQ+QhQAj/H29lZGRoauvfZaPf/883rggQfUtm1bST/fgqpKgGjRooVGjx6t0aNH68iRI+rTp49mzJhxxhDVpk0buVwu7d6922306euvvz6t9qKLLlJxcfFp6389mvOPf/xDx48f17Jly9S6dWtr/ccff3zO9te0Nm3a6KuvvpLL5XIbjdq5c6e1XTpzQARQdcyJAuBRffv2VY8ePTR79mwdO3ZMLVu2VN++ffXiiy8qPz//tPoDBw5Y/3zw4EG3bc2aNdOll16q48ePn/H1brzxRknSnDlz3NbPnj37tNp27drJ6XTqq6++stbl5+ef9q3h3t7ekiRjjLXO6XTq9ddfP2M7astNN92kgoICZWZmWutOnTql5557Ts2aNVNSUpIkqWnTppJUaUgEUDWMRAHwuD/96U/63e9+p/nz5+v3v/+95s6dq169eik+Pl5jx45V27ZtVVhYqOzsbP3www/68ssvJUmdOnVS37591a1bN7Vo0UIbNmzQ22+/rQkTJpzxtbp27aqhQ4fqf//3f+V0OtWzZ0+tWrVK33777Wm1Q4YM0Z///Gfddtttuueee3T06FG98MILiouL08aNG626G264Qb6+vrr55ps1fvx4HTlyRC+//LJatmxZaRCsTePGjdOLL76oUaNGKTc3VzExMXr77bf1+eefa/bs2WrevLmknyfCd+rUSZmZmYqLi1OLFi3UuXNnde7cuU7bC9Rrnv54IIDGoeIrDtavX3/atvLyctOuXTvTrl07c+rUKWOMMbt37zYjRowwERERpkmTJqZVq1bmt7/9rXn77bet/R555BHTo0cPExISYgICAkyHDh3MX//6V3PixAmrprKvIygrKzP33HOPufjii01gYKC5+eabzb59+yr9yP+KFStM586dja+vr7nsssvMm2++Wekxly1bZn7zm98Yf39/ExMTYx5//HHz2muvGUkmLy/PqqvOVxyc6+sbznS8wsJCM3r0aBMaGmp8fX1NfHy8ef3110/bd+3ataZbt27G19eXrzsAbHAY84vxZwAAAFQJc6IAAABsIEQBAADYQIgCAACwgRAFAABgAyEKAADABkIUAACADXzZZi1yuVz66aef1Lx5cx6xAABAPWGM0eHDhxUVFXXaw7x/iRBVi3766SdFR0d7uhkAAMCGffv26ZJLLjnjdkJULap4vMK+ffsUFBTk4dYAAICqKCkpUXR0tPU+fiaEqFpUcQsvKCiIEAUAQD1zrqk4TCwHAACwgRAFAABgAyEKAADABuZEeVh5eblOnjzp6WZcEJo0aSJvb29PNwMAgCohRHmIMUYFBQUqLi72dFMuKCEh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AADABkIUAACADYQoAAAAGwhRAAAANhCiAAAAbCBEAQAA2ECIAgAAsIEQBQAAYAMhCgAAwAZCFAAAgA2EKAAAABsIUQAAADYQogAAAGywFaKWLFmigQMHqnPnzurcubMGDhyot99+u6bbBgAAcMGqVohyuVxKS0tTWlqatm/frksvvVSXXnqptm3bprS0NA0ZMkTGmNpqKwAAwAXDpzrFzz77rP71r39p2bJl+u1vf+u2bdmyZRo9erSeffZZTZo0qSbbCAAAcMGp1kjU66+/rieeeOK0ACVJt9xyi2bNmqXXXnutxhoHAABwoapWiNq1a5eSk5PPuD05OVm7du0670YBAABc6KoVogICAlRcXHzG7SUlJfL39z/fNqEByHeWae3uIuU7yzzdFAAAakW1QlRiYqJeeOGFM26fO3euEhMTz7tRqN8y1+/VNY+t1rCXc3TNY6uVuX6vp5sEAECNq9bE8r/85S/q27evDh48qPvuu08dOnSQMUY7duzQU089pffff18ff/xxbbUV9UC+s0xTlm6R6/8+pOky0tSlW9UnLkyRwQGebRwAADWoWiGqZ8+eyszM1Lhx4/TOO++4bbvooou0cOFCXXPNNTXaQNQveUWlVoCqUG6M9hQdJUQBABqUaoUoSbrtttuUkpKijz76yJpEHhcXpxtuuEFNmzat8QaifokNDZSXQ25BytvhUEwo1wYAoGGpVohavXq1JkyYoC+++EK33Xab2zan06nLL79c8+bNU+/evWu0kag/IoMDlDEwXlOXblW5MfJ2OPTowM6MQgEAGpxqhajZs2dr7NixCgoKOm1bcHCwxo8fr6effpoQ1cilXdVafeLCtKfoqGJCmxKgAAANUrU+nffll1+qf//+Z9x+ww03KDc397wbhfovMjhAie0uJkABABqsaoWowsJCNWnS5IzbfXx8dODAgfNuFAAAwIWuWiGqVatW2rp16xm3f/XVV4qMjDzvRgEAAFzoqhWibrrpJk2bNk3Hjh07bVtZWZnS09Mrfa4eAABAQ+Mwxphzl/2ssLBQV155pby9vTVhwgRddtllkqSdO3dq7ty5Ki8v18aNGxUeHl5rDa5PSkpKFBwcLKfTWelkfAAAcOGp6vt3tT6dFx4errVr1+oPf/iDpkyZoor85XA4lJKSorlz5xKgAABAo1DtL9ts06aNli9frv/85z/6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Suvvuusuc91117mtmzx5srnmmmus39PT002XLl1qpb21obp9EBkZaZ5//nm3dQMHDjTDhw+3fUxPq40+qG/XwS9JMu++++5Za+6//35z+eWXu61LS0szKSkp1u/17TqoUFPn39CvgV9KSkoyEydOPG394MGDzYABA9zWJSQkmPHjx59nC2tfTfXB66+/boKDg2usXXWpun1QoVOnTuahhx6yfq+LvwWMRNWxEydOKDc3V8nJydY6Ly8vJScnKzs7u9J9evbsqdzcXGsY8rvvvtPy5ct10003udXt2rVLUVFRatu2rYYPH669e/fW3omcBzt9cPz48dOGogMCAqz/w7ZzTE+qjT6oUF+uAzuys7Pd+kySUlJSrD6rb9dBdZ3r/Cs05GugKqraTw3dkSNH1KZNG0VHR+vWW2/Vtm3bPN2kWuNyuXT48GG1aNFCUt39LSBE1bGioiKVl5crPDzcbX14eLgKCgoq3WfYsGGaOXOmevXqpSZNmqhdu3bq27ev2+28hIQEzZ8/X1lZWXrhhReUl5en3r176/Dhw7V6PnbY6YOUlBQ9/fTT2rVrl1wul1auXKmlS5cqPz/f9jE9qTb6QKpf14EdBQUFlfZZSUmJysrK6t11UF3nOn+p4V8DVXGmfmoI10BVXXbZZXrttdf0/vvv680335TL5VLPnj31ww8/eLppteLJJ5/UkSNHNHjwYEl1955AiKoHPvnkEz366KP63//9X23cuFFLly7Vhx9+qIcfftiqufHGG/W73/1Ov/nNb5SSkqLly5eruLhYixcv9mDLa86zzz6r9u3bq0OHDvL19dWECRM0evRoeXk1nku4Kn3Q0K8DnBvXACQpMTFRI0aMUNeuXZWUlKSlS5cqLCxML774oqebVuMWLFighx56SIsXL1bLli3r9LUbzzvQBSI0NFTe3t4qLCx0W19YWKiIiIhK95k2bZruuOMO3XnnnYqPj9dtt92mRx99VBkZGXK5XJXuExISori4OH377bc1fg7ny04fhIWF6b333lNpaam+//577dy5U82aNVPbtm1tH9OTaqMPKnMhXwd2REREVNpnQUFBCggIqHfXQXWd6/wr09Cugao4Uz81hGvAriZNmuiKK65ocNfBokWLdOedd2rx4sVut+7q6m8BIaqO+fr6qlu3blq1apW1zuVyadWqVUpMTKx0n6NHj5424uLt7S1JMmd49OGRI0e0e/duRUZG1lDLa46dPqjg7++vVq1a6dSpU3rnnXd06623nvcxPaE2+qAyF/J1YEdiYqJbn0nSypUrrT6rb9dBdZ3r/CvT0K6BqrDTTw1deXm5tmzZ0qCug4ULF2r06NFauHChBgwY4Latzv4W1NgUdVTZokWLjJ+fn5k/f77Zvn27GTdunAkJCTEFBQXGGGPuuOMO88ADD1j16enppnnz5mbhwoXmu+++MytWrDDt2rUzgwcPtmruvfde88knn5i8vDzz+eefm+TkZBMaGmr2799f5+dXFdXtgy+++MK88847Zvfu3WbNmjXmuuuuM7GxseY///lPlY95oamNPqhv18Hhw4fNpk2bzKZNm4wk8/TTT5tNmzaZ77//3hhjzAMPPGDuuOMOq/67774zTZs2NX/605/Mjh07zNy5c423t7fJysqyaurTdVAb59/QrwFjjFXfrVs3M2zYMLNp0yazbds2a/vnn39ufHx8zJNPPml27Nhh0tPTTZMmTcyWLVvq9Nyqqjb64KGHHjIfffSR2b17t8nNzTVDhgwx/v7+bjUXkur2wVtvvWV8fHzM3LlzTX5+vrUUFxdbNXXxt4AQ5SHPPfecad26tfH19TU9evQwX3zxhbUtKSnJjBw50vr95MmTZsaMGaZdu3bG39/fREdHmz/+8Y9ub55paWkmMjLS+Pr6mlatWpm0tDTz7bff1uEZVV91+uCTTz4xHTt2NH5+fubiiy82d9xxh/nxxx+rdcwLUU33QX27Dj7++GMj6bSl4rxHjhxpkpKSTtuna9euxtfX17Rt29a8/vrrpx23vlwHtXH+jeEaqKy+TZs2bjWLFy82cXFxxtfX11x++eXmww8/rJsTsqE2+mDSpEnWfwPh4eHmpptuMhs3bqy7k6qm6vZBUlLSWesr1PbfAocxZ7gfBAAAgDNiThQAAIANhCgAAAAbCFEAAAA2EKIAAABsIEQBAADYQIgCAACwgRAFAABgAyEKABqRTz75RA6HQ8XFxZ5uClDvEaIA1IpRo0bJ4XDosccec1v/3nvvyeFwWL8bY/Tyyy8rMTFRQUFBatasmS6//HJNnDixyg9LPXr0qKZMmaJ27drJ399fYWFhSkpK0vvvv2/VxMTEaPbs2TVybrWtou8cDoeaNGmi2NhY3X///Tp27Fi1jtO3b19NmjTJbV3Pnj2Vn5+v4ODgGmwx0DgRogDUGn9/fz3++OP6z3/+U+l2Y4yGDRume+65RzfddJNWrFih7du369VXX5W/v78eeeSRKr3O73//ey1dulTPPfecdu7cqaysLA0aNEgHDx6sydOpU/3791d+fr6+++47PfPMM3rxxReVnp5+3sf19fVVRESEW5AFYFONPkQGAP7PyJEjzW9/+1vToUMH86c//cla/+6775qKPz0LFy40ksz7779f6TFcLleVXis4ONjMnz//jNsre85WhX//+9+mV69ext/f31xyySXm7rvvNkeOHLG2/+1vfzPdunUzzZo1M+Hh4Wbo0KGmsLDQ2l7xzK+srCzTtWtX4+/vb6699lpTWFholi9fbjp06GCaN29uhg4dakpLS6t0PiNHjjS33nqr27qBAweaK664wvq9qKjIDBkyxERFRZmAgADTuXNns2DBArdj/Pqc8/LyrPb+8tmbb7/9tunUqZPx9fU1bdq0MU8++WSV2gk0doxEAag13t7eevTRR/Xcc8/phx9+OG37woULddlll+mWW26pdP+qjpZERERo+fLlOnz4cKXbly5dqksuuUQzZ85Ufn6+8vPzJUm7d+9W//79dfvtt+urr75SZmamPvvsM02YMMHa9+TJk3r44Yf15Zdf6r333tOePXs0atSo015jxowZev7557V27Vrt27dPgwcP1uzZs7VgwQJ9+OGHWrFihZ577rkqnc+vbd26VWvXrpWvr6+17tixY+rWrZs+/PBDbd26VePGjdMdd9yhdevWSZKeffZZJSYmauzYsdY5R0dHn3bs3NxcDR48WEOGDNGWLVs0Y8YMTZs2TfPnz7fVVqBR8XSKA9Aw/XI05eqrrzb//d//bYxxH4nq0KGDueWWW9z2mzhxogkMDDSBgYGmVatWVXqtTz/91FxyySWmSZMmpnv37mbSpEnms88+c6tp06aNeeaZZ9zWjRkzxowbN85t3b///W/j5eVlysrKKn2t9evXG0nm8OHDxpj/PxL1r3/9y6rJyMgwkszu3butdePHjzcpKSlVOp+RI0cab29vExgYaPz8/Iwk4+XlZd5+++2z7jdgwABz7733Wr8nJSWZiRMnutX8eiRq2LBh5vrrr3er+dOf/mQ6depUpbYCjRkjUQBq3eOPP6433nhDO3bsOGftX/7yF23evFnTp0/XkSNHqnT8Pn366LvvvtOqVas0aNAgbdu2Tb1799bDDz981v2+/PJLzZ8/X82aNbOWlJQUuVwu5eXlSfp5pObmm29W69at1bx5cyUlJUmS9u7d63as3/zmN9Y/h4eHq2nTpmrbtq3buv3791fpfCTp2muv1ebNm5WTk6ORI0dq9OjRuv32263t5eXlevjhhxUfH68WLVqoWbNm+uijj05r17ns2LFD11xzjdu6a665Rrt27VJ5eXm1jgU0NoQoALWuT58+SklJ0ZQpU9zWt2/fXl9//bXburCwMF166aVq2bJltV6jSZMm6t27t/785z9rxYoVmjlzph5++GGdOHHijPscOXJE48eP1+bNm63lyy+/1K5du9SuXTuVlpYqJSVFQUFBeuutt7R+/Xq9++67knTacZs0aWL9c8Wn6n7J4XDI5XJV+XwCAwN16aWXqkuXLnrttdeUk5OjV1991dr+xBNP6Nlnn9Wf//xnffzxx9q8ebNSUlLOer4AapaPpxsAoHF47LHH1LVrV1122WXWuqFDh2rYsGF6//33deutt9bo63Xq1EmnTp3SsWPH5OvrK19f39NGVq688kpt375dl156aaXH2LJliw4ePKjHHnvMmk+0YcOGGm1nVXh5eWnq1KmaPHmyhg0bpoCAAH3++ee69dZb9V//9V+SJJfLpW+++UadOnWy9qvsnH+tY8eO+vzzz93Wff7554qLi5O3t3fNnwzQgDASBaBOxMfHa/jw4ZozZ461bsiQIRo0aJCGDBmimTNnKicnR3v27NGnn36qzMzMKr+J9+3bVy+++KJyc3O1Z88eLV++XFOnTtW1116roKAgST9/T9SaNWv0448/qqioSJL05z//WWvXrtWECRO0efNm7dq1S++//741sbx169by9fXVc889p++++07Lli075y3C2vK73/1O3t7emjt3rqSfR/FWrlyptWvXaseOHRo/frwKCwvd9omJibH6tKioqNKRsHvvvVerVq3Sww8/rG+++UZvvPGGnn/+ed133311cl5AfUaIAlBnZs6c6fZG7nA4lJmZqdmzZ2v58uXq16+fLrvsMv33f/+3oqOj9dlnn1XpuCkpKXrjjTd0ww03qGPHjrr77ruVkpKixYsXu732nj171K5dO4WFhUn6eR7Tp59+qm+++Ua9e/fWFVdcoenTpysqKkrSz7cW58+fryVLlqhTp0567LHH9OSTT9Zgj1Sdj4+PJkyYoFmzZqm0tFQPPvigrrzySqWkpKhv376KiIhQamqq2z733XefvL291alTJ4WFhVU6X+rKK6/U4sWLtWjRInXu3FnTp0/XzJkzK/0EIgB3DmOM8XQjAAAA6htGogAAAGwgRAG44P3yKwh+vfz73//2dPOqZe/evWc9n+p+RQEAz+F2HoAL3tkeRNyqVSsFBATUYWvOz6lTp7Rnz54zbo+JiZGPDx+cBuoDQhQAAIAN3M4DAACwgRAFAABgAyEKAADABkIUAACADYQoAAAAGwhRAAAANhCiAAAAbCBEAQAA2PD/AGa3BcspeTHwAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_65.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAloAAAHHCAYAAABnS/bqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABJ/UlEQVR4nO3deXwV9b3/8ffJvmASMSEJGEhYAgIRFCENqMEaDUIR5FogcFlyUfDWjYtawRbj0hpUqihSobaS3qoQEBQrFKUsUkmMNICsUohBEJNgoDlhCVvO9/eHl/l5TIAEMjlZXs/H4zzi+c5nZr7zdTzn7cycGYcxxggAAAB1zsvTHQAAAGiqCFoAAAA2IWgBAADYhKAFAABgE4IWAACATQhaAAAANiFoAQAA2ISgBQAAYBOCFgAAgE0IWgCavaeeekoOh6NGtQ6HQ0899ZSt/enfv7/69+/fYJcHoOYIWgAajKysLDkcDuvl4+OjNm3aaPz48Tp48KCnu9fgxMbGuo1Xq1atdNNNN+m9996rk+WfOHFCTz31lNatW1cnywOaI4IWgAbnmWee0V/+8hfNnTtXd9xxh9566y0lJyfr5MmTtqzv17/+tSoqKmxZtt169uypv/zlL/rLX/6iRx99VN9++62GDRumuXPnXvayT5w4oaeffpqgBVwGH093AAB+7I477tANN9wgSbrnnnsUHh6u559/Xh988IGGDx9e5+vz8fGRj0/j/Dhs06aN/vM//9N6P3bsWHXs2FEvv/yy7rvvPg/2DIDEES0AjcBNN90kSSooKHBr//LLL3X33XerZcuWCggI0A033KAPPvjArebMmTN6+umn1alTJwUEBOiqq67SjTfeqFWrVlk11V2jderUKf3P//yPIiIidMUVV+jOO+/UN998U6Vv48ePV2xsbJX26pY5f/58/fSnP1WrVq3k7++vrl276vXXX6/VWFxMVFSUrrnmGhUWFl6w7tChQ5owYYIiIyMVEBCgHj166M9//rM1fd++fYqIiJAkPf3009bpSbuvTwOamsb5v3AAmpV9+/ZJkq688kqrbceOHerXr5/atGmjqVOnKjg4WIsWLdLQoUO1ZMkS3XXXXZK+DzyZmZm655571KdPH5WXl+uf//ynNm3apNtuu+2867znnnv01ltvadSoUerbt6/WrFmjQYMGXdZ2vP766+rWrZvuvPNO+fj46K9//at+8YtfyOVy6f7777+sZZ9z5swZHThwQFddddV5ayoqKtS/f3/t3btXDzzwgOLi4rR48WKNHz9eZWVlevjhhxUREaHXX39d//3f/6277rpLw4YNkyRde+21ddJPoNkwANBAzJ8/30gyf//73813331nDhw4YN59910TERFh/P39zYEDB6zaW2+91SQkJJiTJ09abS6Xy/Tt29d06tTJauvRo4cZNGjQBdebkZFhfvhxuGXLFiPJ/OIXv3CrGzVqlJFkMjIyrLZx48aZdu3aXXSZxhhz4sSJKnWpqammffv2bm3JyckmOTn5gn02xph27dqZ22+/3Xz33Xfmu+++M1988YUZOXKkkWQefPDB8y5v1qxZRpJ56623rLbTp0+bpKQk06JFC1NeXm6MMea7776rsr0AaodThwAanJSUFEVERCgmJkZ33323goOD9cEHH+jqq6+WJB05ckRr1qzR8OHDdfToUZWWlqq0tFSHDx9Wamqq9uzZY/1KMSwsTDt27NCePXtqvP4VK1ZIkh566CG39smTJ1/WdgUGBlr/7HQ6VVpaquTkZH311VdyOp2XtMyPP/5YERERioiIUI8ePbR48WKNGTNGzz///HnnWbFihaKiopSWlma1+fr66qGHHtKxY8f0ySefXFJfAFTFqUMADc6cOXMUHx8vp9OpN998U+vXr5e/v781fe/evTLGaPr06Zo+fXq1yzh06JDatGmjZ555RkOGDFF8fLy6d++uAQMGaMyYMRc8Bfb111/Ly8tLHTp0cGvv3LnzZW3Xhg0blJGRodzcXJ04ccJtmtPpVGhoaK2XmZiYqN/85jdyOBwKCgrSNddco7CwsAvO8/XXX6tTp07y8nL/f+1rrrnGmg6gbhC0ADQ4ffr0sX51OHToUN14440aNWqUdu/erRYtWsjlckmSHn30UaWmpla7jI4dO0qSbr75ZhUUFGjZsmX6+OOP9cc//lEvv/yy5s6dq3vuueey+3q+G51WVla6vS8oKNCtt96qLl266KWXXlJMTIz8/Py0YsUKvfzyy9Y21VZ4eLhSUlIuaV4A9iNoAWjQvL29lZmZqVtuuUWvvfaapk6dqvbt20v6/nRXTUJGy5YtlZ6ervT0dB07dkw333yznnrqqfMGrXbt2snlcqmgoMDtKNbu3bur1F555ZUqKyur0v7jo0J//etfderUKX3wwQdq27at1b527dqL9r+utWvXTlu3bpXL5XI7qvXll19a06Xzh0gANcc1WgAavP79+6tPnz6aNWuWTp48qVatWql///6aN2+eioqKqtR/99131j8fPnzYbVqLFi3UsWNHnTp16rzru+OOOyRJr776qlv7rFmzqtR26NBBTqdTW7dutdqKioqq3J3d29tbkmSMsdqcTqfmz59/3n7YZeDAgSouLlZ2drbVdvbsWc2ePVstWrRQcnKyJCkoKEiSqg2SAGqGI1oAGoXHHntMP//5z5WVlaX77rtPc+bM0Y033qiEhATde++9at++vUpKSpSbm6tvvvlGX3zxhSSpa9eu6t+/v3r16qWWLVvqn//8p95991098MAD511Xz549lZaWpt///vdyOp3q27evVq9erb1791apHTlypB5//HHdddddeuihh3TixAm9/vrrio+P16ZNm6y622+/XX5+fho8eLAmTZqkY8eO6Y033lCrVq2qDYt2mjhxoubNm6fx48crPz9fsbGxevfdd7VhwwbNmjVLV1xxhaTvL97v2rWrsrOzFR8fr5YtW6p79+7q3r17vfYXaNQ8/bNHADjn3O0dNm7cWGVaZWWl6dChg+nQoYM5e/asMcaYgoICM3bsWBMVFWV8fX1NmzZtzM9+9jPz7rvvWvP95je/MX369DFhYWEmMDDQdOnSxfz2t781p0+ftmqquxVDRUWFeeihh8xVV11lgoODzeDBg82BAweqvd3Bxx9/bLp37278/PxM586dzVtvvVXtMj/44ANz7bXXmoCAABMbG2uef/558+abbxpJprCw0Kqrze0dLnbrivMtr6SkxKSnp5vw8HDj5+dnEhISzPz586vMm5OTY3r16mX8/Py41QNwCRzG/OA4NgAAAOoM12gBAADYhKAFAABgE4IWAACATQhaAAAANiFoAQAA2ISgBQAAYBNuWOpBLpdL3377ra644goedQEAQCNhjNHRo0fVunXrKg9n/zGClgd9++23iomJ8XQ3AADAJThw4ICuvvrqC9YQtDzo3GMuDhw4oJCQEA/3BgAA1ER5ebliYmKs7/ELIWh50LnThSEhIQQtAAAamZpc9sPF8AAAADYhaAEAANiEoAUAAGATghYAAIBNCFoAAAA2IWgBAADYhKAFAABgE4IWAACATQhaAAAANiFoAQAA2ISgBQAAYBOCFixFzgrlFJSqyFnh6a4AANAk8FBpSJKyN+7XtKXb5DKSl0PKHJagEb3berpbAAA0ahzRgoqcFVbIkiSXkZ5Yup0jWwAAXCaCFlRYetwKWedUGqN9pSc80yEAAJoIghYUFx4sL4d7m7fDodjwIM90CACAJoKgBUWHBipzWIK8Hd+nLW+HQ88N667o0EAP9wwA0JQ0xx9dcTE8JEkjerfVzfER2ld6QrHhQYQsAECdaq4/uuKIFizRoYFK6nAVIQsAUKea84+uCFoAAMBWzflHVw0iaM2ZM0exsbEKCAhQYmKiPv/88wvWL168WF26dFFAQIASEhK0YsUKt+nGGD355JOKjo5WYGCgUlJStGfPHreaI0eOaPTo0QoJCVFYWJgmTJigY8eOWdPXrVunIUOGKDo6WsHBwerZs6fefvttt2VkZWXJ4XC4vQICAi5zNAAAaFqa84+uPB60srOzNWXKFGVkZGjTpk3q0aOHUlNTdejQoWrrc3JylJaWpgkTJmjz5s0aOnSohg4dqu3bt1s1L7zwgl599VXNnTtXeXl5Cg4OVmpqqk6ePGnVjB49Wjt27NCqVav04Ycfav369Zo4caLbeq699lotWbJEW7duVXp6usaOHasPP/zQrT8hISEqKiqyXl9//XUdjxAAAI1bs/7RlfGwPn36mPvvv996X1lZaVq3bm0yMzOrrR8+fLgZNGiQW1tiYqKZNGmSMcYYl8tloqKizIsvvmhNLysrM/7+/mbBggXGGGN27txpJJmNGzdaNX/729+Mw+EwBw8ePG9fBw4caNLT06338+fPN6GhoTXf2B9xOp1GknE6nZe8DAAAGotvy06YnL2l5tuyE57uymWpzfe3R49onT59Wvn5+UpJSbHavLy8lJKSotzc3Grnyc3NdauXpNTUVKu+sLBQxcXFbjWhoaFKTEy0anJzcxUWFqYbbrjBqklJSZGXl5fy8vLO21+n06mWLVu6tR07dkzt2rVTTEyMhgwZoh07dpx3/lOnTqm8vNztBQBAc9Ecf3Tl0aBVWlqqyspKRUZGurVHRkaquLi42nmKi4svWH/u78VqWrVq5Tbdx8dHLVu2PO96Fy1apI0bNyo9Pd1q69y5s958800tW7ZMb731llwul/r27atvvvmm2mVkZmYqNDTUesXExFRbBwAAmgaPX6PVGKxdu1bp6el644031K1bN6s9KSlJY8eOVc+ePZWcnKylS5cqIiJC8+bNq3Y506ZNk9PptF4HDhyor00AAAAe4NGgFR4eLm9vb5WUlLi1l5SUKCoqqtp5oqKiLlh/7u/Fan58sf3Zs2d15MiRKuv95JNPNHjwYL388ssaO3bsBbfH19dX1113nfbu3VvtdH9/f4WEhLi9AABA0+XRoOXn56devXpp9erVVpvL5dLq1auVlJRU7TxJSUlu9ZK0atUqqz4uLk5RUVFuNeXl5crLy7NqkpKSVFZWpvz8fKtmzZo1crlcSkxMtNrWrVunQYMG6fnnn3f7ReL5VFZWatu2bYqOjq7B1gMAgCavHi7Ov6CFCxcaf39/k5WVZXbu3GkmTpxowsLCTHFxsTHGmDFjxpipU6da9Rs2bDA+Pj5m5syZZteuXSYjI8P4+vqabdu2WTUzZswwYWFhZtmyZWbr1q1myJAhJi4uzlRUVFg1AwYMMNddd53Jy8szn376qenUqZNJS0uzpq9Zs8YEBQWZadOmmaKiIut1+PBhq+bpp582H330kSkoKDD5+flm5MiRJiAgwOzYsaNG286vDgEAaHxq8/3t8aBljDGzZ882bdu2NX5+fqZPnz7ms88+s6YlJyebcePGudUvWrTIxMfHGz8/P9OtWzezfPlyt+kul8tMnz7dREZGGn9/f3Prrbea3bt3u9UcPnzYpKWlmRYtWpiQkBCTnp5ujh49ak0fN26ckVTllZycbNVMnjzZ6ndkZKQZOHCg2bRpU423m6AFAEDjU5vvb4cxxpz3cBdsVV5ertDQUDmdTq7XAgCgkajN9ze/OgQAALAJQQsAAMAmBC0AAACbELQAAABsQtACAACwCUELAADAJgQtAAAAmxC0AAAAbELQAgAAsAlBCwAANElFzgrlFJSqyFnhsT74eGzNAAAANsneuF/Tlm6Ty0heDilzWIJG9G5b7/3giBYAAGhSipwVVsiSJJeRnli63SNHtghaAACgSSksPW6FrHMqjdG+0hP13heCFgAAaFLiwoPl5XBv83Y4FBseVO99IWgBAIAmJTo0UJnDEuTt+D5teTscem5Yd0WHBtZ7X7gYHgAANDkjerfVzfER2ld6QrHhQR4JWRJBCwAANFHRoYEeC1jncOoQAADAJgQtAAAAmxC0AAAAbELQAgAAsAlBCwAAwCYELQAAAJsQtAAAAGxC0AIAALAJQQsAAMAmBC0AAACbELQAAABsQtACAACwCUELAAA0SUXOCuUUlKrIWeGxPvh4bM0AAAA2yd64X9OWbpPLSF4OKXNYgkb0blvv/eCIFgAAaFKKnBVWyJIkl5GeWLrdI0e2CFoAAKBJKSw9boWscyqN0b7SE/XeF4IWAABoUuLCg+XlcG/zdjgUGx5U730haAEAgCYlOjRQmcMS5O34Pm15Oxx6blh3RYcG1ntfuBgeAAA0OSN6t9XN8RHaV3pCseFBHglZEkELAAA0UdGhgR4LWOdw6hAAAMAmBC0AAACbELQAAABsQtACAACwCUELAADAJgQtAAAAmxC0AAAAbELQAgAAsAlBCwAAwCYELQAAAJsQtAAAAGxC0AIAALAJQQsAAMAmBC0AAACbELQAAABsQtACAACwCUELAADAJgQtAAAAmxC0AAAAbELQAgAAsAlBCwAAwCYELQAAAJsQtAAAAGxC0AIAALAJQQsAAMAmBC0AANAkFTkrlFNQqiJnhcf60CCC1pw5cxQbG6uAgAAlJibq888/v2D94sWL1aVLFwUEBCghIUErVqxwm26M0ZNPPqno6GgFBgYqJSVFe/bscas5cuSIRo8erZCQEIWFhWnChAk6duyYNX3dunUaMmSIoqOjFRwcrJ49e+rtt9+udV8AAED9y964X/1mrNGoN/LUb8YaZW/c75F+eDxoZWdna8qUKcrIyNCmTZvUo0cPpaam6tChQ9XW5+TkKC0tTRMmTNDmzZs1dOhQDR06VNu3b7dqXnjhBb366quaO3eu8vLyFBwcrNTUVJ08edKqGT16tHbs2KFVq1bpww8/1Pr16zVx4kS39Vx77bVasmSJtm7dqvT0dI0dO1YffvhhrfoCAADqV5GzQtOWbpPLfP/eZaQnlm73yJEthzHG1PtafyAxMVG9e/fWa6+9JklyuVyKiYnRgw8+qKlTp1apHzFihI4fP+4WeH7yk5+oZ8+emjt3rowxat26tR555BE9+uijkiSn06nIyEhlZWVp5MiR2rVrl7p27aqNGzfqhhtukCStXLlSAwcO1DfffKPWrVtX29dBgwYpMjJSb775Zo36cjHl5eUKDQ2V0+lUSEhIDUcMAABcSE5BqUa9kVelfcG9P1FSh6sue/m1+f726BGt06dPKz8/XykpKVabl5eXUlJSlJubW+08ubm5bvWSlJqaatUXFhaquLjYrSY0NFSJiYlWTW5ursLCwqyQJUkpKSny8vJSXl7VfzHnOJ1OtWzZssZ9+bFTp06pvLzc7QUAAOpWXHiwvBzubd4Oh2LDg+q9Lx4NWqWlpaqsrFRkZKRbe2RkpIqLi6udp7i4+IL15/5erKZVq1Zu0318fNSyZcvzrnfRokXauHGj0tPTa9yXH8vMzFRoaKj1iomJqbYOAABcuujQQGUOS5C34/u05e1w6Llh3RUdGljvffGp9zU2QmvXrlV6erreeOMNdevW7ZKXM23aNE2ZMsV6X15eTtgCAMAGI3q31c3xEdpXekKx4UEeCVmSh4NWeHi4vL29VVJS4tZeUlKiqKioaueJioq6YP25vyUlJYqOjnar6dmzp1Xz44vtz549qyNHjlRZ7yeffKLBgwfr5Zdf1tixY2vVlx/z9/eXv79/tdMAAEDdig4N9FjAOsejpw79/PzUq1cvrV692mpzuVxavXq1kpKSqp0nKSnJrV6SVq1aZdXHxcUpKirKraa8vFx5eXlWTVJSksrKypSfn2/VrFmzRi6XS4mJiVbbunXrNGjQID3//PNuv0isaV8AAEAzZzxs4cKFxt/f32RlZZmdO3eaiRMnmrCwMFNcXGyMMWbMmDFm6tSpVv2GDRuMj4+PmTlzptm1a5fJyMgwvr6+Ztu2bVbNjBkzTFhYmFm2bJnZunWrGTJkiImLizMVFRVWzYABA8x1111n8vLyzKeffmo6depk0tLSrOlr1qwxQUFBZtq0aaaoqMh6HT58uFZ9uRCn02kkGafTecnjBwAA6ldtvr89HrSMMWb27Nmmbdu2xs/Pz/Tp08d89tln1rTk5GQzbtw4t/pFixaZ+Ph44+fnZ7p162aWL1/uNt3lcpnp06ebyMhI4+/vb2699Vaze/dut5rDhw+btLQ006JFCxMSEmLS09PN0aNHrenjxo0zkqq8kpOTa9WXCyFoAQDQ+NTm+9vj99FqzriPFgAAjU+juY8WAABAU0bQAgAAsAlBCwAAwCYELQAAAJsQtAAAAGxC0AIAALAJQQsAAMAmBC0AAACbELQAAABsQtACAACwCUELAADAJgQtAAAAmxC0AAAAbELQAgAAsAlBCwAAwCYELQAAAJsQtAAAAGxC0AIAALAJQQsAAMAmBC0AAACbELQAAABsQtACAACwCUELAADAJgQtAAAAmxC0AAAAbELQAgAAsAlBCwAAwCYELQAAAJsQtAAAAGxC0AIAALAJQQsAAMAmBC0AAACbELQAAABsQtACAACwCUELAADAJgQtAECjVOSsUE5BqYqcFZ7uCnBePp7uAAAAtZW9cb+mLd0ml5G8HFLmsASN6N3W090CquCIFgCgUSlyVlghS5JcRnpi6XaObKFBImgBABqVwtLjVsg6p9IY7Ss94ZkOARdA0AIANCpx4cHycri3eTscig0P8kyHgAsgaAEAGpXo0EBlDkuQt+P7tOXtcOi5Yd0VHRro4Z4BVXExPACg0RnRu61ujo/QvtITig0PImShwSJoAQAapejQQAIWGjxOHQIAANiEoAUAAGATghYAAIBNCFrwGB6fAQBo6rgYHh7B4zMAAM0BR7RQ73h8BgCguSBood7x+AwAQHNB0EK94/EZjRfX1QFA7RC0UO94fEbjlL1xv/rNWKNRb+Sp34w1yt6439NdAoAGz2GMMRcvgx3Ky8sVGhoqp9OpkJAQT3en3hU5K3h8RiNR5KxQvxlr3E75ejsc+nTqLfy7A9Ds1Ob7m18dwmN4fEbjcaHr6vh3CADnx6lDABfFdXUAcGkIWgAuiuvqAODScOoQQI2M6N1WN8dHcF0dANQCQQtAjXFdHQDUDqcOAQAAbELQAgAAsAlBCwAAwCYELQAAAJsQtAAAAGzi8aA1Z84cxcbGKiAgQImJifr8888vWL948WJ16dJFAQEBSkhI0IoVK9ymG2P05JNPKjo6WoGBgUpJSdGePXvcao4cOaLRo0crJCREYWFhmjBhgo4dO2ZNP3nypMaPH6+EhAT5+Pho6NChVfqxbt06ORyOKq/i4uJLHwwAANCkeDRoZWdna8qUKcrIyNCmTZvUo0cPpaam6tChQ9XW5+TkKC0tTRMmTNDmzZs1dOhQDR06VNu3b7dqXnjhBb366quaO3eu8vLyFBwcrNTUVJ08edKqGT16tHbs2KFVq1bpww8/1Pr16zVx4kRremVlpQIDA/XQQw8pJSXlgtuwe/duFRUVWa9WrVpd5qgAAIAmw3hQnz59zP3332+9r6ysNK1btzaZmZnV1g8fPtwMGjTIrS0xMdFMmjTJGGOMy+UyUVFR5sUXX7Sml5WVGX9/f7NgwQJjjDE7d+40kszGjRutmr/97W/G4XCYgwcPVlnnuHHjzJAhQ6q0r1271kgy//73v2u8vT/mdDqNJON0Oi95GQAAoH7V5vu7Vke0zpw5o1/+8pfq2LGj+vTpozfffNNteklJiby9vWu0rNOnTys/P9/tiJGXl5dSUlKUm5tb7Ty5ublVjjClpqZa9YWFhSouLnarCQ0NVWJiolWTm5ursLAw3XDDDVZNSkqKvLy8lJeXV6O+/1DPnj0VHR2t2267TRs2bLhg7alTp1ReXu72AgAATVetgtZvf/tb/e///q/uu+8+3X777ZoyZYomTZrkVmOMqdGySktLVVlZqcjISLf2yMjI817nVFxcfMH6c38vVvPj03s+Pj5q2bJlra6vio6O1ty5c7VkyRItWbJEMTEx6t+/vzZt2nTeeTIzMxUaGmq9YmJiarw+AADQ+NTqETxvv/22/vjHP+pnP/uZJGn8+PG64447lJ6ebh3dcvzfQ2ebus6dO6tz587W+759+6qgoEAvv/yy/vKXv1Q7z7Rp0zRlyhTrfXl5OWELAIAmrFZHtA4ePKju3btb7zt27Kh169YpJydHY8aMUWVlZY2XFR4eLm9vb5WUlLi1l5SUKCoqqtp5oqKiLlh/7u/Fan58sf3Zs2d15MiR8663pvr06aO9e/eed7q/v79CQkLcXgAAoOmqVdCKiopSQUGBW1ubNm20du1abdy4UePHj6/xsvz8/NSrVy+tXr3aanO5XFq9erWSkpKqnScpKcmtXpJWrVpl1cfFxSkqKsqtpry8XHl5eVZNUlKSysrKlJ+fb9WsWbNGLpdLiYmJNe5/dbZs2aLo6OjLWgYAAGg6anXq8Kc//aneeecd3XrrrW7trVu31po1a9S/f/9arXzKlCkaN26cbrjhBvXp00ezZs3S8ePHlZ6eLkkaO3as2rRpo8zMTEnSww8/rOTkZP3ud7/ToEGDtHDhQv3zn//UH/7wB0nfn7acPHmyfvOb36hTp06Ki4vT9OnT1bp1a+teWNdcc40GDBige++9V3PnztWZM2f0wAMPaOTIkWrdurXVt507d+r06dM6cuSIjh49qi1btkj6/uJ3SZo1a5bi4uLUrVs3nTx5Un/84x+1Zs0affzxx7UaAwAA0ITV5ueM+/btMytXrjzv9IMHD5qsrKzaLNLMnj3btG3b1vj5+Zk+ffqYzz77zJqWnJxsxo0b51a/aNEiEx8fb/z8/Ey3bt3M8uXL3aa7XC4zffp0ExkZafz9/c2tt95qdu/e7VZz+PBhk5aWZlq0aGFCQkJMenq6OXr0qFtNu3btjKQqr3Oef/5506FDBxMQEGBatmxp+vfvb9asWVOrbef2DgAAND61+f52GFPDnwmizpWXlys0NFROp5PrtQAAaCRq8/19SXeGX7x4sYYNG6bu3bure/fuGjZsmN59991L6iwAAEBTVaug5XK5NGLECI0YMUI7d+5Ux44d1bFjR+3YsUMjRozQyJEja3wfLQAAgKauVhfDv/LKK/r73/+uDz74wLqX1jkffPCB0tPT9corr2jy5Ml12UcAAIBGqVZHtObPn68XX3yxSsiSpDvvvFMvvPBClcfyAAAANFe1Clp79uyp8qzBH0pJSdGePXsuu1MAmpYiZ4VyCkpV5KzwdFcAoF7V6tRhYGCgysrK1LZt22qnl5eXKyAgoE46BqBpyN64X9OWbpPLSF4OKXNYgkb0rv4zBACamlod0UpKStLrr79+3ulz5sw5713dATQ/Rc4KK2RJkstITyzdzpEtAM1GrY5o/epXv1L//v11+PBhPfroo+rSpYuMMdq1a5d+97vfadmyZVq7dq1dfQXQyBSWHrdC1jmVxmhf6QlFhwZ6plMAUI9qFbT69u2r7OxsTZw4UUuWLHGbduWVV2rBggXq169fnXYQQOMVFx4sL4fcwpa3w6HY8CDPdQoA6tEl3Rn+xIkT+uijj6wL3+Pj43X77bcrKIgPz9rgzvBoDrI37tcTS7er0hh5Oxx6blh3rtEC0KjV5vu7VkFrzZo1euCBB/TZZ59VWbDT6VTfvn01d+5c3XTTTZfW82aGoIXmoshZoX2lJxQbHsQpQwCNnm2P4Jk1a5buvffeahcaGhqqSZMm6aWXXqpdbwE0edGhgUrqcBUhC0CzU6ug9cUXX2jAgAHnnX777bcrPz//sjsFAADQFNQqaJWUlMjX1/e80318fPTdd99ddqcAAACagloFrTZt2mj79u3nnb5161ZFR0dfdqcAAACagloFrYEDB2r69Ok6efJklWkVFRXKyMio9jmIAAAAzVGtfnVYUlKi66+/Xt7e3nrggQfUuXNnSdKXX36pOXPmqLKyUps2bVJkZKRtHW5K+NUhAACNT22+v2t1w9LIyEjl5OTov//7vzVt2jSdy2gOh0OpqamaM2cOIQsAAOD/1CpoSVK7du20YsUK/fvf/9bevXtljFGnTp105ZVX2tE/AKiVImeFCkuPKy48mNtJAPC4Wgetc6688kr17t27LvsCAJcle+N+6yHWXg4pc1gCd6EH4FG1uhgeABqqImeFFbKk75+v+MTS7SpyVni2YwCaNYIWgCahsPS428OrJanSGO0rPeGZDgGACFoAmoi48GB5OdzbvB0OxYbzsHsAnkPQAtAkRIcGKnNYgrwd36ctb4dDzw3rzgXxADzqki+GB4CGZkTvtro5PkL7Sk8oNjyIkAXA4whaAJqU6NBAAhaABoNThwAAADYhaAEAgAatyFmhnILSRnm7Fk4dAgCABqux34iYI1oAAKBBago3IiZoAQCABqkp3IiYoAUAABqkpnAjYoIWAABokJrCjYi5GB4AADRYjf1GxAQtAADQoDXmGxFz6hAAAMAmBC0AAACbELQAAABsQtACAACwCUELAADAJgQtAAAAmxC0AAAAbELQAgAAsAlBCwAAwCYELQAAAJsQtAAAAGxC0AIAALAJQQsAAMAmBC0AAACbELQAAABsQtACAACwCUELAJqwImeFcgpKVeSs8HRXgGbJx9MdAADYI3vjfk1buk0uI3k5pMxhCRrRu62nuwU0KxzRAoAmqMhZYYUsSXIZ6Yml2zmyBdQzghYANEGFpcetkHVOpTHaV3rCMx0CmimCFgA0QXHhwfJyuLd5OxyKDQ/yTIeAZoqgBQBNUHRooDKHJcjb8X3a8nY49Nyw7ooODfRwz4DmhYvhAaCJGtG7rW6Oj9C+0hOKDQ8iZAEeQNACgCYsOjSQgAV4EKcOAQAAbELQAgAAsAlBCwAAwCYELQBAneGRP4A7jwetOXPmKDY2VgEBAUpMTNTnn39+wfrFixerS5cuCggIUEJCglasWOE23RijJ598UtHR0QoMDFRKSor27NnjVnPkyBGNHj1aISEhCgsL04QJE3Ts2DFr+smTJzV+/HglJCTIx8dHQ4cOrbYv69at0/XXXy9/f3917NhRWVlZlzQGANAUZG/cr34z1mjUG3nqN2ONsjfu93SXAI/zaNDKzs7WlClTlJGRoU2bNqlHjx5KTU3VoUOHqq3PyclRWlqaJkyYoM2bN2vo0KEaOnSotm/fbtW88MILevXVVzV37lzl5eUpODhYqampOnnypFUzevRo7dixQ6tWrdKHH36o9evXa+LEidb0yspKBQYG6qGHHlJKSkq1fSksLNSgQYN0yy23aMuWLZo8ebLuueceffTRR3U0OgDQePDIH6B6DmOMuXiZPRITE9W7d2+99tprkiSXy6WYmBg9+OCDmjp1apX6ESNG6Pjx4/rwww+ttp/85Cfq2bOn5s6dK2OMWrdurUceeUSPPvqoJMnpdCoyMlJZWVkaOXKkdu3apa5du2rjxo264YYbJEkrV67UwIED9c0336h169Zu6xw/frzKysr0/vvvu7U//vjjWr58uVvIGzlypMrKyrRy5coabX95eblCQ0PldDoVEhJSo3kAoCHKKSjVqDfyqrQvuPcnSupwlQd6BNinNt/fHjuidfr0aeXn57sdMfLy8lJKSopyc3OrnSc3N7fKEabU1FSrvrCwUMXFxW41oaGhSkxMtGpyc3MVFhZmhSxJSklJkZeXl/Lyqn5InM/F+lKdU6dOqby83O0FAE0Bj/wBquexoFVaWqrKykpFRka6tUdGRqq4uLjaeYqLiy9Yf+7vxWpatWrlNt3Hx0ctW7Y873pr05fy8nJVVFR/qDwzM1OhoaHWKyYmpsbrA4CGjEf+ANXjzvD1aNq0aZoyZYr1vry8nLAFoMngkT9AVR4LWuHh4fL29lZJSYlbe0lJiaKioqqdJyoq6oL15/6WlJQoOjraraZnz55WzY8vtj979qyOHDly3vXWpi8hISEKDKz+w8Xf31/+/v41XgcANDY88gdw57FTh35+furVq5dWr15ttblcLq1evVpJSUnVzpOUlORWL0mrVq2y6uPi4hQVFeVWU15erry8PKsmKSlJZWVlys/Pt2rWrFkjl8ulxMTEGvf/Yn0BAACQ8aCFCxcaf39/k5WVZXbu3GkmTpxowsLCTHFxsTHGmDFjxpipU6da9Rs2bDA+Pj5m5syZZteuXSYjI8P4+vqabdu2WTUzZswwYWFhZtmyZWbr1q1myJAhJi4uzlRUVFg1AwYMMNddd53Jy8szn376qenUqZNJS0tz69uOHTvM5s2bzeDBg03//v3N5s2bzebNm63pX331lQkKCjKPPfaY2bVrl5kzZ47x9vY2K1eurPH2O51OI8k4nc7aDh0AAPCQ2nx/ezRoGWPM7NmzTdu2bY2fn5/p06eP+eyzz6xpycnJZty4cW71ixYtMvHx8cbPz89069bNLF++3G26y+Uy06dPN5GRkcbf39/ceuutZvfu3W41hw8fNmlpaaZFixYmJCTEpKenm6NHj7rVtGvXzkiq8vqhtWvXmp49exo/Pz/Tvn17M3/+/FptO0ELAIDGpzbf3x69j1Zzx320AABofBrFfbQAAACaOoIWAACATQhaAAAANiFoAQAA2ISgBQAAYBOCFgAAgE0IWgAAADYhaAEAANiEoAUAAGATghYAAIBNCFoAAAA2IWgBAADYhKAFAABgE4IWAACATQhaAIBGqchZoZyCUhU5KzzdFeC8fDzdAQAAait7435NW7pNLiN5OaTMYQka0butp7sFVMERLQBAo1LkrLBCliS5jPTE0u0c2UKDRNACADQqhaXHrZB1TqUx2ld6wjMdAi6AoAUAaFTiwoPl5XBv83Y4FBse5JkOARdA0AIANCrRoYHKHJYgb8f3acvb4dBzw7orOjTQwz0DquJieABAozOid1vdHB+hfaUnFBseRMhCg0XQAgA0StGhgQQsNHicOgQAALAJQQsAAMAmBC0AAACbELQAAABsQtACAACwCUELAADAJgQtAAAAmxC0AAAAbELQAgAAsAlBCwDgUUXOCuUUlKrIWeHprgB1jkfwAAA8Jnvjfk1buk0uI3k5pMxhCRrRu62nuwXUGY5oAQA8oshZYYUsSXIZ6Yml2zmyhSaFoAUA8IjC0uNWyDqn0hjtKz3hmQ4BNiBoAQA8Ii48WF4O9zZvh0Ox4UGe6RBgA4IWAMAjokMDlTksQd6O79OWt8Oh54Z1V3RooId7BtQdLoYHAHjMiN5tdXN8hPaVnlBseBAhC00OQQsA4FHRoYEELDRZnDoEYDvukwSgueKIFgBbcZ8kAM0ZR7QA2Ib7JAFo7ghaAGzDfZIANHcELQC24T5JAJo7ghYA23CfJADNHRfDA7AV90kC0JwRtADYjvskAWiuOHXYRHHfIgAAPI8jWk0Q9y2CXYqcFSosPa648GCOUKFZYd/HpSJoNTHnu2/RzfERfDjgshDg0Vyx7+NycOqwieG+RbADNx5Fc8W+j8tF0GpiuG8R7ECAR3PFvo/LRdBqYrhvEexAgEdzxb6Py8U1Wk0Q9y1CXTsX4J9Yul2VxhDg0Wyw7+NyOYwx5uJlsEN5eblCQ0PldDoVEhLi6e4AF1XkrCDAo1li38cP1eb7myNaAGqMG4+iuWLfx6XiGi0AAACbELQAAABsQtACAACwCUELAADAJgQtAAAAmxC0AAAAbELQAgAAsEmDCFpz5sxRbGysAgIClJiYqM8///yC9YsXL1aXLl0UEBCghIQErVixwm26MUZPPvmkoqOjFRgYqJSUFO3Zs8et5siRIxo9erRCQkIUFhamCRMm6NixY241W7du1U033aSAgADFxMTohRdecJuelZUlh8Ph9goICLiMkQAAAE2Jx4NWdna2pkyZooyMDG3atEk9evRQamqqDh06VG19Tk6O0tLSNGHCBG3evFlDhw7V0KFDtX37dqvmhRde0Kuvvqq5c+cqLy9PwcHBSk1N1cmTJ62a0aNHa8eOHVq1apU+/PBDrV+/XhMnTrSml5eX6/bbb1e7du2Un5+vF198UU899ZT+8Ic/uPUnJCRERUVF1uvrr7+u4xECAACNlvGwPn36mPvvv996X1lZaVq3bm0yMzOrrR8+fLgZNGiQW1tiYqKZNGmSMcYYl8tloqKizIsvvmhNLysrM/7+/mbBggXGGGN27txpJJmNGzdaNX/729+Mw+EwBw8eNMYY8/vf/95ceeWV5tSpU1bN448/bjp37my9nz9/vgkNDb3ELTfG6XQaScbpdF7yMgAAQP2qzfe3R49onT59Wvn5+UpJSbHavLy8lJKSotzc3Grnyc3NdauXpNTUVKu+sLBQxcXFbjWhoaFKTEy0anJzcxUWFqYbbrjBqklJSZGXl5fy8vKsmptvvll+fn5u69m9e7f+/e9/W23Hjh1Tu3btFBMToyFDhmjHjh3n3d5Tp06pvLzc7QUAAJoujwat0tJSVVZWKjIy0q09MjJSxcXF1c5TXFx8wfpzfy9W06pVK7fpPj4+atmypVtNdcv44To6d+6sN998U8uWLdNbb70ll8ulvn376ptvvqm275mZmQoNDbVeMTEx1dYBAICmwePXaDVmSUlJGjt2rHr27Knk5GQtXbpUERERmjdvXrX106ZNk9PptF4HDhyo5x4DAID65NGgFR4eLm9vb5WUlLi1l5SUKCoqqtp5oqKiLlh/7u/Fan58sf3Zs2d15MgRt5rqlvHDdfyYr6+vrrvuOu3du7fa6f7+/goJCXF7AQCApsujQcvPz0+9evXS6tWrrTaXy6XVq1crKSmp2nmSkpLc6iVp1apVVn1cXJyioqLcasrLy5WXl2fVJCUlqaysTPn5+VbNmjVr5HK5lJiYaNWsX79eZ86ccVtP586ddeWVV1bbt8rKSm3btk3R0dG1GQYAANBU1cPF+Re0cOFC4+/vb7KysszOnTvNxIkTTVhYmCkuLjbGGDNmzBgzdepUq37Dhg3Gx8fHzJw50+zatctkZGQYX19fs23bNqtmxowZJiwszCxbtsxs3brVDBkyxMTFxZmKigqrZsCAAea6664zeXl55tNPPzWdOnUyaWlp1vSysjITGRlpxowZY7Zv324WLlxogoKCzLx586yap59+2nz00UemoKDA5Ofnm5EjR5qAgACzY8eOGm07vzoEAKDxqc33t8eDljHGzJ4927Rt29b4+fmZPn36mM8++8yalpycbMaNG+dWv2jRIhMfH2/8/PxMt27dzPLly92mu1wuM336dBMZGWn8/f3Nrbfeanbv3u1Wc/jwYZOWlmZatGhhQkJCTHp6ujl69KhbzRdffGFuvPFG4+/vb9q0aWNmzJjhNn3y5MlWvyMjI83AgQPNpk2barzdBC0AABqf2nx/O4wxxrPH1Jqv8vJyhYaGyul0cr0WAACNRG2+v/nVIQAAgE0IWgAAADYhaAEAANiEoAUAAGATghYAAIBNCFoAAAA2IWgBAADYxMfTHcCFGWN09uxZVVZWerorjYa3t7d8fHzkcDg83RUAQDNH0GrATp8+raKiIp04ccLTXWl0goKCFB0dLT8/P093BQDQjBG0GiiXy6XCwkJ5e3urdevW8vPz4whNDRhjdPr0aX333XcqLCxUp06d5OXFGXIAgGcQtBqo06dPy+VyKSYmRkFBQZ7uTqMSGBgoX19fff311zp9+rQCAgI83SUAQDPF/+o3cByNuTSMGwCgIeDbCAAAwCYELQAAAJsQtGCL4uJiPfjgg2rfvr38/f0VExOjwYMHa/Xq1VZNTk6OBg4cqCuvvFIBAQFKSEjQSy+95HYri3379mnChAmKi4tTYGCgOnTooIyMDJ0+fdoTmwUAQK1wMTzq3L59+9SvXz+FhYXpxRdfVEJCgs6cOaOPPvpI999/v7788ku99957Gj58uNLT07V27VqFhYXp73//u375y18qNzdXixYtksPh0JdffimXy6V58+apY8eO2r59u+69914dP35cM2fO9PSmAgBwQQ5jjPF0J5qr8vJyhYaGyul0KiQkxG3ayZMnVVhYqLi4uEb3q7mBAwdq69at2r17t4KDg92mlZWV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Ke0DNXUp49TUVVZWatu2bU1qP1iwYIHS09O1YMECDRo0yG1avX0e1Nll9ahTCxcuNP7+/iYrK8vs3LnTTJw40YSFhZni4mJjjDFjxowxU6dOteozMjLMFVdcYRYsWGC++uor8/HHH5sOHTqY4cOHWzWPPPKIWbdunSksLDQbNmwwKSkpJjw83Bw6dKjet68majsGn332mVmyZIkpKCgw69evNz/96U9NXFyc+fe//13jZTY0doxBY9oPjh49ajZv3mw2b95sJJmXXnrJbN682Xz99dfGGGOmTp1qxowZY9V/9dVXJigoyDz22GNm165dZs6cOcbb29usXLnSqmls+4AdY9CY9gFjaj8GxhirvlevXmbUqFFm8+bNZseOHdb0DRs2GB8fHzNz5kyza9cuk5GRYXx9fc22bdvqddtqyo4xePrpp81HH31kCgoKTH5+vhk5cqQJCAhwq2lIajsGb7/9tvHx8TFz5swxRUVF1qusrMyqqY/PA4JWAzZ79mzTtm1b4+fnZ/r06WM+++wza1pycrIZN26c9f7MmTPmqaeeMh06dDABAQEmJibG/OIXv3D7gh0xYoSJjo42fn5+pk2bNmbEiBFm79699bhFtVebMVi3bp255pprjL+/v7nqqqvMmDFjzMGDB2u1zIaorsegMe0Ha9euNZKqvM5t87hx40xycnKVeXr27Gn8/PxM+/btzfz586sstzHtA3aMQWPaB4y5tDGorr5du3ZuNYsWLTLx8fHGz8/PdOvWzSxfvrx+NugS2DEGkydPtv47iIyMNAMHDjSbNm2qv42qpdqOQXJy8gXrz7H788BhzHnOKwEAAOCycI0WAACATQhaAAAANiFoAQAA2ISgBQAAYBOCFgAAgE0IWgAAADYhaAEAANiEoAUAcLNu3To5HA6VlZV5uitAo0fQAuAx48ePl8Ph0IwZM9za33//fTkcDuu9MUZvvPGGkpKSFBISohYtWqhbt256+OGHa/wA3BMnTmjatGnq0KGDAgICFBERoeTkZC1btsyqiY2N1axZs+pk2+x2buwcDod8fX0VFxenX/7ylzp58mStltO/f39NnjzZra1v374qKipSaGhoHfYYaJ4IWgA8KiAgQM8//7z+/e9/VzvdGKNRo0bpoYce0sCBA/Xxxx9r586d+tOf/qSAgAD95je/qdF67rvvPi1dulSzZ8/Wl19+qZUrV+ruu+/W4cOH63Jz6tWAAQNUVFSkr776Si+//LLmzZunjIyMy16un5+foqKi3MIugEtUpw/0AYBaGDdunPnZz35munTpYh577DGr/b333jPnPp4WLFhgJJlly5ZVuwyXy1WjdYWGhpqsrKzzTq/uuWjn/OMf/zA33nijCQgIMFdffbV58MEHzbFjx6zp//u//2t69eplWrRoYSIjI01aWpopKSmxpp97RtvKlStNz549TUBAgLnllltMSUmJWbFihenSpYu54oorTFpamjl+/HiNtmfcuHFmyJAhbm3Dhg0z1113nfW+tLTUjBw50rRu3doEBgaa7t27m3feecdtGT/e5sLCQqu/P3xW6rvvvmu6du1q/Pz8TLt27czMmTNr1E+gueOIFgCP8vb21nPPPafZs2frm2++qTJ9wYIF6ty5s+68885q56/pUZeoqCitWLFCR48erXb60qVLdfXVV+uZZ55RUVGRioqKJEkFBQUaMGCA/uM//kNbt25Vdna2Pv30Uz3wwAPWvGfOnNGzzz6rL774Qu+//7727dun8ePHV1nHU089pddee005OTk6cOCAhg8frlmzZumdd97R8uXL9fHHH2v27Nk12p4f2759u3JycuTn52e1nTx5Ur169dLy5cu1fft2TZw4UWPGjNHnn38uSXrllVeUlJSke++919rmmJiYKsvOz8/X8OHDNXLkSG3btk1PPfWUpk+frqysrEvqK9CseDrpAWi+fnhU5ic/+Yn5r//6L2OM+xGtLl26mDvvvNNtvocfftgEBweb4OBg06ZNmxqt65NPPjFXX3218fX1NTfccIOZPHmy+fTTT91q2rVrZ15++WW3tgkTJpiJEye6tf3jH/8wXl5epqKiotp1bdy40UgyR48eNcb8/yNaf//7362azMxMI8kUFBRYbZMmTTKpqak12p5x48YZb29vExwcbPz9/Y0k4+XlZd59990Lzjdo0CDzyCOPWO+Tk5PNww8/7Fbz4yNao0aNMrfddptbzWOPPWa6du1ao74CzRlHtAA0CM8//7z+/Oc/a9euXRet/dWvfqUtW7boySef1LFjx2q0/JtvvllfffWVVq9erbvvvls7duzQTTfdpGefffaC833xxRfKyspSixYtrFdqaqpcLpcKCwslfX/EZ/DgwWrbtq2uuOIKJScnS5L279/vtqxrr73W+ufIyEgFBQWpffv2bm2HDh2q0fZI0i233KItW7YoLy9P48aNU3p6uv7jP/7Dml5ZWalnn31WCQkJatmypVq0aKGPPvqoSr8uZteuXerXr59bW79+/bRnzx5VVlbWallAc0PQAtAg3HzzzUpNTdW0adPc2jt16qTdu3e7tUVERKhjx45q1apVrdbh6+urm266SY8//rg+/vhjPfPMM3r22Wd1+vTp885z7NgxTZo0SVu2bLFeX3zxhfbs2aMOHTro+PHjSk1NVUhIiN5++21t3LhR7733niRVWa6vr6/1z+d+LfhDDodDLperxtsTHBysjh07qkePHnrzzTeVl5enP/3pT9b0F198Ua+88ooef/xxrV27Vlu2bFFqauoFtxdA3fLxdAcA4JwZM2aoZ8+e6ty5s9WWlpamUaNGadmyZRoyZEidrq9r1646e/asTp48KT8/P/n5+VU5QnP99ddr586d6tixY7XL2LZtmw4fPqwZM2ZY1zf985//rNN+1oSXl5eeeOIJTZkyRaNGjVJgYKA2bNigIUOG6D//8z8lSS6XS//617/UtWtXa77qtvnHrrnmGm3YsMGtbcOGDYqPj5e3t3fdbwzQhHBEC0CDkZCQoNGjR+vVV1+12kaOHKm7775bI0eO1DPPPKO8vDzt27dPn3zyibKzs2v8Rd+/f3/NmzdP+fn52rdvn1asWKEnnnhCt9xyi0JCQiR9fx+t9evX6+DBgyotLZUkPf7448rJydEDDzygLVu2aM+ePVq2bJl1MXzbtm3l5+en2bNn66uvvtIHH3xw0dORdvn5z38ub29vzZkzR9L3RwNXrVqlnJwc7dq1S5MmTVJJSYnbPLGxsdaYlpaWVntE7ZFHHtHq1av17LPP6l//+pf+/Oc/67XXXtOjjz5aL9sFNGYELQANyjPPPOP2Ze9wOJSdna1Zs2ZpxYoVuvXWW9W5c2f913/9l2JiYvTpp5/WaLmpqan685//rNtvv13XXHONHnzwQaWmpmrRokVu6963b586dOigiIgISd9fV/XJJ5/oX//6l2666SZdd911evLJJ9W6dWtJ35/GzMrK0uLFi9W1a1fNmDFDM2fOrMMRqTkfHx898MADeuGFF3T8+HH9+te/1vXXX6/U1FT1799fUVFRGjp0qNs8jz76qLy9vdW1a1dFRERUe/3W9ddfr0WLFmnhwoXq3r27nnzyST3zzDPV/rISgDuHMcZ4uhMAAABNEUe0AAAAbELQAtAk/PD2Cz9+/eMf//B092pl//79F9ye2t6eAYDncOoQQJNwoYdLt2nTRoGBgfXYm8tz9uxZ7du377zTY2Nj5ePDj8aBxoCgBQAAYBNOHQIAANiEoAUAAGATghYAAIBNCFoAAAA2IWgBAADYhKAFAABgE4IWAACATQhaAAAANvl/lwqgeaG/T2wAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_66.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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nj17btr/lta7d298++23MJvNFnujTp48KU0HGg6IRNR0PCeKiGxq/PjxCAoKwrp161BdXY0ePXpg/Pjx2LRpE4qLi+vVX7x4Ufr3zz//bDGta9eu6NevH2pqahpc3wMPPAAAWL9+vUX7unXr6tX27dsXJpMJ3377rdRWXFxc767hKpUKACCEkNpMJhPee++9BvvRWh588EEYjUakpqZKbdevX8eGDRvQtWtXhIaGAgCcnZ0BwGpIJKKm4Z4oIrK5F154AU888QRSUlLwzDPPICkpCWPHjkVAQACeeuop9OnTByUlJcjJycH58+fxzTffAAAGDx6M8ePHY8SIEejevTsOHjyIjz76CLNnz25wXYGBgYiMjMRf//pXmEwmjBkzBllZWfj+++/r1U6dOhULFy7Eo48+iueffx6VlZV488034e/vj0OHDkl19913H9RqNR5++GE8/fTTuHLlCt5++2306NHDahBsTbGxsdi0aROefPJJ5Ofnw9fXFx999BH279+PdevWoVu3bgBunAg/ePBgpKamwt/fH927d8fQoUMxdOjQNu0vkV2z9eWBRNQ51N3iIC8vr9602tpa0bdvX9G3b19x/fp1IYQQp0+fFjNnzhQ6nU506dJF9OzZUzz00EPio48+kuZbtWqVCAoKEm5ubsLJyUkMHDhQvPzyy+Lq1atSjbXbEVRVVYnnn39e3HbbbcLFxUU8/PDD4ty5c1Yv+d+1a5cYOnSoUKvVYsCAAeL999+3usxPP/1U3HHHHUKj0QhfX1/x6quvinfffVcAEIWFhVJdc25xcLPbNzS0vJKSEhEdHS3c3d2FWq0WAQEB4r333qs3b3Z2thgxYoRQq9W83QGRDAohfrX/mYiIiIiahOdEEREREcnAEEVEREQkA0MUERERkQwMUUREREQyMEQRERERycAQRURERCQDb7bZisxmM3766Sd069aNj1ggIiKyE0IIXL58Gd7e3vUe5v1rDFGt6KeffoKPj4+tu0FEREQynDt3DrfffnuD0xmiWlHd4xXOnTsHV1dXG/eGiIiImqK8vBw+Pj7S93hDGKJaUd0hPFdXV4YoIiIiO3OzU3F4YjkRERGRDAxRRERERDIwRBERERHJwHOibKy2thbXrl2zdTdsrkuXLlCpVLbuBhERUZMxRNmIEAJGoxFlZWW27kq74ebmBp1Ox3tqERGR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ANizZw/Gjx/fyltNREREHYFN7xPV0TX1PhNERETUfjT1+9vmj30hIiIiskcMUUREREQyMEQRERERycAQRURERCQDQxQRERGRDAxRRERERDIwRBERERHJwBBFREREJANDFBEREZEMDFFEREREMjBEEREREcnAEEVEREQkA0MUERERkQwMUUREREQyMEQRERERycAQRURERC2i2FSF7NOlKDZV2borbcLB1h0gIiIi+5eaV4TFO47CLAClAkicHICIUb1s3a1WxT1RREREdEuKTVVSgAIAswCW7Cjo8HukGKKIiIjolhSWVkgBqk6tEDhbWmmbDrURhigiIiK6JX7uLlAqLNtUCgV83Z1t06E2whBFREREt8RL64TEyQFQKW4kKZVCgVcmD4WX1snGPWtdPLGciIiIblnEqF4Y5++Bs6WV8HV37vABCmCIIiIiohbipXXqFOGpDg/nEREREcnAEEVEREQkA0MUERERkQwMUUREREQyMEQRERERycAQRURERCQDQxQRERGRDAxRRERERDIwRBERERHJwBBFREREJANDFBEREZEMDFFEREREMtg8RCUlJcHX1xcajQbBwcE4cOBAo/Xbt2/HwIEDodFoEBAQgPT0dIvpQgjEx8fDy8sLTk5O0Ov1OHXqlEXNyy+/jDFjxsDZ2Rlubm711vHNN98gMjISPj4+cHJywqBBg/CXv/zllreViIiIOg6bhqjU1FTExcUhISEBhw4dwrBhw2AwGHDhwgWr9dnZ2YiMjERMTAwOHz6M8PBwhIeHo6CgQKpZs2YN1q9fj+TkZOTm5sLFxQUGgwHV1dVSzdWrV/HEE0/g2Weftbqe/Px89OjRA++//z6OHTuG//u//8PixYuxcePGlh0AIiIislsKIYSw1cqDg4MxatQoKZyYzWb4+Phgzpw5WLRoUb36iIgIVFRUIC0tTWobPXo0AgMDkZycDCEEvL29MX/+fCxYsAAAYDKZ4OnpiZSUFEydOtVieSkpKZg3bx7Kyspu2tfnnnsOJ06cwO7du5u8feXl5dBqtTCZTHB1dW3yfERERGQ7Tf3+ttmeqKtXryI/Px96vf5/nVEqodfrkZOTY3WenJwci3oAMBgMUn1hYSGMRqNFjVarRXBwcIPLbCqTyYTu3bs3WlNTU4Py8nKLFxEREXVMNgtRpaWlqK2thaenp0W7p6cnjEaj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tGj39PSE0Wi0Oo/RaGy0vu7nzWp69OhhMd3BwQHdu3eXan7++Wc8+eSTSElJafJepMTERGi1Wunl4+PTpPmIiIjI/tj8nKj26qmnnsK0adMwbty4Js+zePFimEwm6XXu3LlW7CERERHZkk1DlLu7O1QqFUpKSizaS0pKoNPprM6j0+kara/7ebOa3564fv36dVy6dEmq2b17N9auXQsHBwc4ODggJiYGJpMJDg4OePfdd632zdHREa6urhYvIiIi6phsGqLUajVGjBiBrKwsqc1sNiMrKwshISFW5wkJCbGoB4DMzEyp3s/PDzqdzqKmvLwcubm5Uk1ISAjKysqQn58v1ezevRtmsxnBwcEAbpw3deTIEem1cuVKdOvWDUeOHMGjjz7aMgNAREREdsvB1h2Ii4tDVFQURo4ciaCgIKxbtw4VFRWIjo4GAMycORM9e/ZEYmIiAGDu3LkIDQ3F66+/jrCwMGzduhUHDx7EW2+9BQBQKBSYN28eVq1ahf79+8PPzw/Lli2Dt7c3wsPDAQCDBg3C/fffj6eeegrJycm4du0aZs+ejalTp0pX5g0aNMiinwcPHoRSqcTQoUPbaGSIiIioPbN5iIqIiMDFixcRHx8Po9GIwMBAZGRkSCeGFxUVQan83w6zMWPGYMuWLVi6dCmWLFmC/v37Y+fOnRbh5sUXX0RFRQViY2NRVlaGsWPHIiMjAxqNRqr54IMPMHv2bEycOBFKpRKPPfYY1q9f33YbTkRERHbN5veJ6sh4nygiIiL7Yxf3iSIiIiKyVwxRRERERDIwRBERERHJwBBFREREJANDFBEREZEMDFFEREREMjBEEREREcnAEEVEREQkA0MUERERkQwMUUREREQyMEQRERERycAQRURERCQDQxQRERGRDAxRRERERDIwRBERERHJwBBFREREJANDFBEREZEMDFFEREREMjBEEREREcnAEEVEREQkA0MUERERkQwMUUREREQyMEQRERERycAQRURERCQDQxQREbU7xaYqZJ8uRbGpytZdIWqQg607QERE9GupeUVYvOMozAJQKoDEyQGIGNXL1t0iqod7ooiIqN0oNlVJAQoAzAJYsqOAe6SoXWKIIiKidqOwtEIKUHVqhcDZ0krbdIioEQxRRETUbvi5u0CpsGxTKRTwdXe2TYeIGsEQRURE7YaX1gmJkwOgUtxI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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_67.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlEAAAHHCAYAAACfqw0dAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABWOElEQVR4nO3dfVxUZf4//tcMMAyiDBnIgKGg4j2JqYyYiiXtmFSSlYqsd0th383StbbUj4JanzCzzTQ3KivazRu0NS0lksXMTQkJNW8zNUwtBkWWQbnxhnn//ujH+TSBCEdguHk9H4/zQK7zPmeu6+ws8+o6Z87RiIiAiIiIiOpE6+gOEBERETVHDFFEREREKjBEEREREanAEEVERESkAkMUERERkQoMUUREREQqMEQRERERqcAQRURERKQCQxQRERGRCgxRRNSiLVy4EBqNpla1Go0GCxcubND+jBgxAiNGjGiy+yOi2mOIIqJGkZycDI1GoyzOzs7o2LEjpk6dip9//tnR3WtyAgIC7I5Xhw4dMGzYMHzyySf1sv/S0lIsXLgQO3furJf9EbVGDFFE1KgWL16Mf/7zn0hKSsL999+Pjz76COHh4SgvL2+Q15s/fz7KysoaZN8NLSQkBP/85z/xz3/+E8899xx++eUXjB07FklJSbe879LSUixatIghiugWODu6A0TUutx///0YOHAgAODxxx+Hl5cXXnnlFXz66acYN25cvb+es7MznJ2b55+6jh074o9//KPy++TJk9GtWze8/vrrePLJJx3YMyICOBNFRA42bNgwAMCpU6fs2r///ns8+uijaN++PfR6PQYOHIhPP/3UrubatWtYtGgRgoKCoNfrcfvtt2Po0KFIT09Xaqq7JurKlSv4y1/+Am9vb7Rr1w4PPfQQzp07V6VvU6dORUBAQJX26vb5wQcf4N5770WHDh3g6uqK3r1746233qrTsbgZo9GIXr16ITc3t8a68+fPIzY2Fj4+PtDr9ejXrx8+/PBDZf3p06fh7e0NAFi0aJFyyrChrwcjamma53+eEVGLcfr0aQDAbbfdprQdOXIEd999Nzp27Ig5c+bA3d0dGzZsQFRUFP71r3/h4YcfBvBrmElMTMTjjz+O0NBQFBcX49tvv8W+fftw33333fA1H3/8cXz00UeYOHEihgwZgh07diAyMvKWxvHWW2+hT58+eOihh+Ds7IzPPvsMf/7zn2Gz2fDUU0/d0r4rXbt2DWfPnsXtt99+w5qysjKMGDECJ0+exIwZMxAYGIiNGzdi6tSpKCoqwsyZM+Ht7Y233noL/+///T88/PDDGDt2LADgzjvvrJd+ErUaQkTUCD744AMBIP/+97/lwoULcvbsWfn444/F29tbXF1d5ezZs0rtyJEjJTg4WMrLy5U2m80mQ4YMkaCgIKWtX79+EhkZWePrJiQkyG//1B04cEAAyJ///Ge7uokTJwoASUhIUNqmTJkinTt3vuk+RURKS0ur1JnNZunSpYtdW3h4uISHh9fYZxGRzp07yx/+8Ae5cOGCXLhwQb777juZMGGCAJCnn376hvtbvny5AJCPPvpIabt69aqEhYVJ27Ztpbi4WERELly4UGW8RFQ3PJ1HRI0qIiIC3t7e8Pf3x6OPPgp3d3d8+umnuOOOOwAAhYWF2LFjB8aNG4dLly6hoKAABQUFuHjxIsxmM06cOKF8m8/T0xNHjhzBiRMnav36qampAIBnnnnGrn3WrFm3NC43Nzfl31arFQUFBQgPD8ePP/4Iq9Wqap/bt2+Ht7c3vL290a9fP2zcuBGTJk3CK6+8csNtUlNTYTQaER0drbS5uLjgmWeeweXLl/HVV1+p6gsRVcXTeUTUqFatWoXu3bvDarXi/fffx65du+Dq6qqsP3nyJEQECxYswIIFC6rdx/nz59GxY0csXrwYY8aMQffu3dG3b1+MGjUKkyZNqvG01E8//QStVouuXbvatffo0eOWxrV7924kJCQgMzMTpaWlduusVisMBkOd92kymfDSSy9Bo9GgTZs26NWrFzw9PWvc5qeffkJQUBC0Wvv/Ru7Vq5eynojqB0MUETWq0NBQ5dt5UVFRGDp0KCZOnIjjx4+jbdu2sNlsAIDnnnsOZrO52n1069YNADB8+HCcOnUKW7Zswfbt27F69Wq8/vrrSEpKwuOPP37Lfb3RTTorKirsfj916hRGjhyJnj174m9/+xv8/f2h0+mQmpqK119/XRlTXXl5eSEiIkLVtkTU8BiiiMhhnJyckJiYiHvuuQdvvvkm5syZgy5dugD49RRUbQJE+/btMW3aNEybNg2XL1/G8OHDsXDhwhuGqM6dO8Nms+HUqVN2s0/Hjx+vUnvbbbehqKioSvvvZ3M+++wzXLlyBZ9++ik6deqktH/55Zc37X9969y5Mw4ePAibzWY3G/X9998r64EbB0Qiqj1eE0VEDjVixAiEhoZi+fLlKC8vR4cOHTBixAi8/fbbyMvLq1J/4cIF5d8XL160W9e2bVt069YNV65cueHr3X///QCAFStW2LUvX768Sm3Xrl1htVpx8OBBpS0vL6/KXcOdnJwAACKitFmtVnzwwQc37EdDGT16NCwWC1JSUpS269evY+XKlWjbti3Cw8MBAG3atAGAakMiEdUOZ6KIyOH++te/4rHHHkNycjKefPJJrFq1CkOHDkVwcDCeeOIJdOnSBfn5+cjMzMS5c+fw3XffAQB69+6NESNGYMCAAWjfvj2+/fZbfPzxx5gxY8YNXyskJATR0dH4+9//DqvViiFDhiAjIwMnT56sUjthwgS88MILePjhh/HMM8+gtLQUb731Frp37459+/YpdX/4wx+g0+nw4IMPYvr06bh8+TLeffdddOjQodog2JDi4uLw9ttvY+rUqcjJyUFAQAA+/vhj7N69G8uXL0e7du0A/HohfO/evZGSkoLu3bujffv26Nu3L/r27duo/SVq1hz99UAiah0qb3GQnZ1dZV1FRYV07dpVunbtKtevXxcRkVOnTsnkyZPFaDSKi4uLdOzYUR544AH5+OOPle1eeuklCQ0NFU9PT3Fzc5OePXvK//7v/8rVq1eVmupuR1BWVibPPPOM3H777eLu7i4PPvignD17ttqv/G/fvl369u0rOp1OevToIR999FG1+/z000/lzjvvFL1eLwEBAfLKK6/I+++/LwAkNzdXqavLLQ5udvuGG+0vPz9fpk2bJl5eXqLT6SQ4OFg++OCDKtvu2bNHBgwYIDqdjrc7IFJBI/Kb+WciIiIiqhVeE0VERESkAkMUERERkQoMUUREREQqMEQRERERqeDwELVq1SoEBARAr9fDZDJh7969NdZv3LgRPXv2hF6vR3BwsPIcrEoigvj4ePj6+sLNzQ0RERFVnqtVWFiImJgYeHh4wNPTE7Gxsbh8+bJdzRdffIHBgwejXbt28Pb2xiOPPKI8bZ6IiIjIoSEqJSUFs2fPRkJCAvbt24d+/frBbDbj/Pnz1dbv2bMH0dHRiI2Nxf79+xEVFYWoqCgcPnxYqVm6dClWrFiBpKQkZGVlwd3dHWazGeXl5UpNTEwMjhw5gvT0dGzduhW7du1CXFycsj43NxdjxozBvffeiwMHDuCLL75AQUEBxo4d23AHg4iIiJoVh97iwGQyYdCgQXjzzTcBADabDf7+/nj66acxZ86cKvXjx49HSUkJtm7dqrQNHjwYISEhSEpKgojAz88Pzz77LJ577jkAv9412MfHB8nJyZgwYQKOHTuG3r17Izs7W3l+V1paGkaPHo1z587Bz88PH3/8MaKjo3HlyhXlsQmfffYZxowZgytXrsDFxaVW47PZbPjll1/Qrl07PmKBiIiomRARXLp0CX5+flUe5v37Qoe4cuWKODk5ySeffGLXPnnyZHnooYeq3cbf319ef/11u7b4+Hi58847ReTXm/MBkP3799vVDB8+XJ555hkREXnvvffE09PTbv21a9fEyclJNm3aJCIiP/74o+h0Olm9erVcv35dioqK5LHHHpP77ruvxjGVl5eL1WpVlqNHjwoALly4cOHChUszXM6ePVvj577DHvtSUFCAiooK+Pj42LX7+PgoD8r8PYvFUm29xWJR1le21VTToUMHu/XOzs5o3769UhMYGIjt27dj3LhxmD59OioqKhAWFlbl+qvfS0xMxKJFi6q0nz17Fh4eHjVuS0RERE1DcXEx/P39lcck3QifnVcNi8WCJ554AlOmTEF0dDQuXbqE+Ph4PProo0hPT7/hqbm5c+di9uzZyu+V/yN4eHgwRBERETUzN7sUx2EhysvLC05OTsjPz7drz8/Ph9ForHYbo9FYY33lz/z8fPj6+trVhISEKDW/v3D9+vXrKCwsVLZftWoVDAYDli5dqtR89NFH8Pf3R1ZWFgYPHlxt/1xdXeHq6nqzoRMREVEL4LBv5+l0OgwYMAAZGRlKm81mQ0ZGBsLCwqrdJiwszK4eANLT05X6wMBAGI1Gu5ri4mJkZWUpNWFhYSgqKkJOTo5Ss2PHDthsNphMJgBAaWlplQvJnJyclD4SEREROezCchGR9evXi6urqyQnJ8vRo0clLi5OPD09xWKxiIjIpEmTZM6cOUr97t27xdnZWZYtWybHjh2ThIQEcXFxkUOHDik1S5YsEU9PT9myZYscPHhQxowZI4GBgVJWVqbUjBo1Svr37y9ZWVny9ddfS1BQkERHRyvrMzIyRKPRyKJFi+SHH36QnJwcMZvN0rlzZyktLa31+KxWqwAQq9V6K4eJiIiIGlFtP78dek3U+PHjceHCBcTHx8NisSAkJARpaWnKheFnzpyxmxEaMmQI1q5di/nz52PevHkICgrC5s2b0bdvX6Xm+eefR0lJCeLi4lBUVIShQ4ciLS0Ner1eqVmzZg1mzJiBkSNHQqvV4pFHHsGKFSuU9ffeey/Wrl2LpUuXYunSpWjTpg3CwsKQlpYGNze3RjgyREREtWOz2XD16lVHd6NZcXFxUc4w3QqH3ieqpSsuLobBYIDVauWF5UREVO+uXr2K3NxcXmqigqenJ4xGY7UXj9f285vfziMiImqGRAR5eXlwcnKCv79/zTeFJIWIoLS0VPmS2W+/iFZXDFFERETN0PXr11FaWgo/Pz+0adPG0d1pViovzTl//jw6dOig+tQeYysREVEzVFFRAeDXb7tT3VUGz2vXrqneB0MUERFRM8Zns6pTH8eNIYqIiIhIBYYoIiIiIhUYooiIqMnJs5Zhz6kC5FnLHN0VqmdTp05FVFRUlfadO3dCo9GgqKgIO3fuxJgxY+Dr6wt3d3eEhIRgzZo1VbYpLCzErFmz0LlzZ+h0Ovj5+eFPf/oTzpw50wgj4bfziIioiUnJPoO5mw7BJoBWAySODcb4QZ0c3S1qRHv27MGdd96JF154AT4+Pti6dSsmT54Mg8GABx54AMCvAWrw4MHQ6XRISkpCnz59cPr0acyfPx+DBg1CZmYmunTp0qD9ZIgiIqImI89apgQoALAJMG/TYQzv7g1fA58Y0VrMmzfP7veZM2di+/bt2LRpkxKi/ud//ge//PILTp48CaPRCADo1KkTvvjiCwQFBeGpp57C559/3qD95Ok8IiJqMnILSpQAValCBKcLSh3ToVaiOZw+tVqtaN++PYBfH3Wzfv16xMTEKAGqkpubG/785z/jiy++QGFhYYP2iTNRRETUZAR6uUOrgV2QctJoEODFm0k2FEecPt26dSvatm1r11Z536vqbNiwAdnZ2Xj77bcBABcuXEBRURF69epVbX2vXr0gIjh58iRCQ0Prr+O/w5koIiJqMnwNbkgcGwyn//8ePk4aDV4e25en8hrIjU6fNvSM1D333IMDBw7YLatXr6629ssvv8S0adPw7rvvok+fPnbrHP34X85EERFRkzJ+UCcM7+6N0wWlCPBqwwDVgGo6fdqQx93d3R3dunWzazt37lyVuq+++goPPvggXn/9dUyePFlp9/b2hqenJ44dO1bt/o8dOwaNRlPlNeobZ6KIiKjJ8TW4Iazr7QxQDazy9OlvNZXTpzt37kRkZCReeeUVxMXF2a3TarUYN24c1q5dC4vFYreurKwMf//732E2m5VrqBoKQxQREVEr1VRPn3755ZeIjIzEM888g0ceeQQWiwUWi8XuQvGXX34ZRqMR9913Hz7//HOcPXsWu3btgtlsxrVr17Bq1aoG7ydP5xEREbViTfH06YcffojS0lIkJiYiMTFRaQ8PD8fOnTsBALfffju++eYbLF68GNOnT4fFYkH79u1x//3346OPPkKnTg1/bzGNOPqqrBasuLgYBoMBVqsVHh4eju4OERG1IOXl5cjNzUVgYCD0er2ju9Ps1HT8avv5zdN5RERERCowRBERERGpwBBFREREpAJDFBEREZEKDFFERETNGL8fpk59HDeGKCIiombIyckJAHD16lUH96R5Ki399aHWLi4uqvfB+0QRERE1Q87OzmjTpg0uXLgAFxcXaLWcF6kNEUFpaSnOnz8PT09PJYyqwRBFRETUDGk0Gvj6+iI3Nxc//fSTo7vT7Hh6esJoNN7SPhiiiIiImimdToegoCCe0qsjFxeXW5qBqsQQRURE1IxptVresdxBeAKViIiISAWGKCIiIiIVGKKIiIiIVGCIIiIiIlKBIYqIiIhIBYYoIiIiIhUYooiIiIhUaBIhatWqVQgICIBer4fJZMLevXtrrN+4cSN69uwJvV6P4OBgpKam2q0XEcTHx8PX1xdubm6IiIjAiRMn7GoKCwsRExMDDw8PeHp6IjY2FpcvX1bWL1y4EBqNpsri7u5efwMnIiKiZsvhISolJQWzZ89GQkIC9u3bh379+sFsNuP8+fPV1u/ZswfR0dGIjY3F/v37ERUVhaioKBw+fFipWbp0KVasWIGkpCRkZWXB3d0dZrMZ5eXlSk1MTAyOHDmC9PR0bN26Fbt27UJcXJyy/rnnnkNeXp7d0rt3bzz22GMNdzCIiIio+RAHCw0Nlaeeekr5vaKiQvz8/CQxMbHa+nHjxklkZKRdm8lkkunTp4uIiM1mE6PRKK+++qqyvqioSFxdXWXdunUiInL06FEBINnZ2UrN559/LhqNRn7++edqX/fAgQMCQHbt2lXrsVmtVgEgVqu11tsQERGRY9X289uhM1FXr15FTk4OIiIilDatVouIiAhkZmZWu01mZqZdPQCYzWalPjc3FxaLxa7GYDDAZDIpNZmZmfD09MTAgQOVmoiICGi1WmRlZVX7uqtXr0b37t0xbNiwG47nypUrKC4utluIiIioZXJoiCooKEBFRQV8fHzs2n18fGCxWKrdxmKx1Fhf+fNmNR06dLBb7+zsjPbt21f7uuXl5VizZg1iY2NrHE9iYiIMBoOy+Pv711hPREREzZfDr4lqDj755BNcunQJU6ZMqbFu7ty5sFqtynL27NlG6iERERE1NoeGKC8vLzg5OSE/P9+uPT8/H0ajsdptjEZjjfWVP29W8/sL169fv47CwsJqX3f16tV44IEHqsxu/Z6rqys8PDzsFiIiImqZHBqidDodBgwYgIyMDKXNZrMhIyMDYWFh1W4TFhZmVw8A6enpSn1gYCCMRqNdTXFxMbKyspSasLAwFBUVIScnR6nZsWMHbDYbTCaT3b5zc3Px5Zdf3vRUHhEREbUuzo7uwOzZszFlyhQMHDgQoaGhWL58OUpKSjBt2jQAwOTJk9GxY0ckJiYCAGbOnInw8HC89tpriIyMxPr16/Htt9/inXfeAQBoNBrMmjULL730EoKCghAYGIgFCxbAz88PUVFRAIBevXph1KhReOKJJ5CUlIRr165hxowZmDBhAvz8/Oz69/7778PX1xf3339/4x0UIiIiavIcHqLGjx+PCxcuID4+HhaLBSEhIUhLS1NOnZ05cwZa7f9NmA0ZMgRr167F/PnzMW/ePAQFBWHz5s3o27evUvP888+jpKQEcXFxKCoqwtChQ5GWlga9Xq/UrFmzBjNmzMDIkSOh1WrxyCOPYMWKFXZ9s9lsSE5OxtSpU+Hk5NTAR4KIiIiaE42IiKM70VIVFxfDYDDAarXy+igiIqJmoraf3/x2HhEREZEKDFFEREREKjBEEREREanAEEVERESkAkMUERERkQoMUUREREQqMEQRERERqcAQRURERKQCQxQRERGRCgxRRERERCowRBERERGpwBBFREREpAJDFBEREZEKDFFEREREKjBEEREREanAEEVERESkAkMUERERkQoMUUREREQqMEQRERERqcAQRURERKQCQxQRERGRCgxRRERERCowRBERERGpwBBFREREpAJDFBEREZEKDFFEREREKjBEEREREanAEEVERESkAkMUERERkQoMUUREREQqMEQRERERqcAQRURE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JSUliIuLQ1FREYYOHYq0tDTo9XqlZs2aNZgxYwZGjhwJrVaLRx55BCtWrLDr24svvoiffvoJzs7O6NmzJ1JSUvDoo4828BEhcow8axlyC0oQ6OXOu80TUZPXFJ6MoRERuXkZqVFcXAyDwQCr1dokro/ihyTdSEr2GeXbLloNkDg2GOMHdXJ0t4iIHKK2n98On4mixsEPSbqRG31deHh3b4ZtIqIaOPyxL9TwmtI9NajpqenrwkREdGMMUa0APySpJk3p68JERM0JQ1QrwA9JqklT+rowEVFzwmuiWoHKD8l5mw6jQoQfklRFU/m6MBFRc8IQ1UrwQ5Jupil8XZiIqDlhiGpF+CFJRERUf3hNFBEREZEKDFFEREREKjBEEREREanAEEVERESkAkMUERERkQoMUUREREQqMEQRERERqcAQRURERKQCQxQRERGRCgxRRERERCowRBERERGpwBBFREREpAJDFBEREZEKDFFEREREKjBEEREREanAEEVERESkAkMUERERkQoMUUREREQqMEQRERERqcAQRURERKQCQxQRERGRCgxRRERERCo4q92wqKgIJ0+eBAB069YNnp6e9dUnIiIioiavzjNRp0+fRmRkJLy8vGAymWAymeDl5YUHHngAp0+fboAuEhERETU9dZqJOnv2LAYPHgwXFxe8+OKL6NWrFwDg6NGjeOuttxAWFobs7GzccccdDdJZIiIioqZCIyJS2+LY2FicPHkSX3zxBfR6vd26srIyjBo1CkFBQVi9enW9d7Q5Ki4uhsFggNVqhYeHh6O7Q0RERLVQ28/vOs1EpaWlISUlpUqAAgA3Nze8+OKLmDBhQt17S0RERNTM1OmaqIKCAgQEBNxwfZcuXVBYWFjnTqxatQoBAQHQ6/UwmUzYu3dvjfUbN25Ez549odfrERwcjNTUVLv1IoL4+Hj4+vrCzc0NEREROHHihF1NYWEhYmJi4OHhAU9PT8TGxuLy5cvVvt7JkyfRrl07XjxPREREijqFKF9fXxw9evSG6w8fPgyj0VinDqSkpGD27NlISEjAvn370K9fP5jNZpw/f77a+j179iA6OhqxsbHYv38/oqKiEBUVhcOHDys1S5cuxYoVK5CUlISsrCy4u7vDbDajvLxcqYmJicGRI0eQnp6OrVu3YteuXYiLi6vyeteuXUN0dDSGDRtWp3ERERFR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ObhnRERErQ8vLG9mxg/qhOHdvXG6oBQBXm0YoIiIiByEIaoZ8jW4MTwRERE5GE/nEREREanAEEVERESkAkMUERERkQoMUUREREQqMEQRERERqcAQRURERKQCQxQRERGRCgxRRERERCowRBERERGpwBBFRERE9SLPWoY9pwqQZy1zdFcaBR/7QkRERLcsJfsM5m46BJsAWg2QODYY4wd1cnS3GhRnooiIiOiW5FnLlAAFADYB5m063OJnpBiiiIio1Wttp6HqW25BiRKgKlWI4HRBqWM61Eh4Oo+IiFq11ngaqr4FerlDq4FdkHLSaBDg1cZxnWoEnIkiIqJWq7WehqpvvgY3JI4NhpNGA+DXAPXy2L7wNbg5uGcNizNRRETUatV0GqqlB4D6Nn5QJwzv7o3TBaUI8GrTKo4fQxQREbVarfU0VEPxNbi1ivBUiafziIio1Wqtp6GofnAmioiIWrXWeBqK6gdDFBERtXqt7TQU1Y8mcTpv1apVCAgIgF6vh8lkwt69e2us37hxI3r27Am9Xo/g4GCkpqbarRcRxMfHw9fXF25uboiIiMCJEyfsagoLCxETEwMPDw94enoiNjYWly9ftqs5ePAghg0bBr1eD39/fyxdurR+BkxERETNnsNDVEpKCmbPno2EhATs27cP/fr1g9lsxvnz56ut37NnD6KjoxEbG4v9+/cjKioKUVFROHz4sFKzdOlSrFixAklJScjKyoK7uzvMZjPKy8uVmpiYGBw5cgTp6enYunUrdu3ahbi4OGV9cXEx/vCHP6Bz587IycnBq6++ioULF+Kdd95puINBREREzYc4WGhoqDz11FPK7xUVFeLn5yeJiYnV1o8bN04iIyPt2kwmk0yfPl1ERGw2mxiNRnn11VeV9UVFReLq6irr1q0TEZGjR48KAMnOzlZqPv/8c9FoNPLzzz+LiMjf//53ue222+TKlStKzQsvvCA9evSo9disVqsAEKvVWuttiIiIyLFq+/nt0Jmoq1evIicnBxEREUqbVqtFREQEMjMzq90mMzPTrh4AzGazUp+bmwuLxWJXYzAYYDKZlJrMzEx4enpi4MCBSk1ERAS0Wi2ysrKUmuHDh0On09m9zvHjx/Hf//632r5duXIFxcXFdgsRERG1TA4NUQUFBaioqICPj49du4+PDywWS7XbWCyWGusrf96spkOHDnbr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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_68.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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IrVv27btmv1val27dsWBAwdgtVptZqOOHj0qrQfqD4hE5DheE0VETjV8+HBERERgyZIluHDhAjp16oThw4fj7bffRnFx8VX1Z86ckf757NmzNuvat2+PHj164OLFi/Ue79577wUALF261KZ9yZIlV9V2794dFosFBw4ckNqKi4uvumu4m5sbAEAIIbVZLBasXLmy3n40l/vuuw9msxnp6elS2+XLl7Fs2TK0b98eUVFRAABPT08AsBsSicgxnIkiIqd7+umn8cgjjyAtLQ1/+9vfsHz5ctxxxx0IDQ3Fo48+im7duqGkpAQ5OTn4+eef8d133wEA+vTpg+HDh2PAgAHo2LEj9u7di08++QQzZsyo91jh4eGIjY3Fv/71L1gsFgwePBhZWVn44YcfrqodN24cnn32WTz44IN44oknUFVVhbfeegshISHYt2+fVHf33XdDpVLh/vvvx7Rp03D+/Hm8++676NSpk90g2JymTp2Kt99+G5MnT0ZeXh6CgoLwySefYNeuXViyZAk6dOgA4MqF8H369EF6ejpCQkLQsWNH9OvXD/369WvR/hK5NGd/PZCIbgx1tzjYs2fPVetqa2tF9+7dRffu3cXly5eFEEKcOHFCTJo0Sej1etGuXTvRuXNn8ec//1l88skn0nYvvfSSiIiIED4+PsLDw0P06tVLvPzyy6KmpkaqsXc7gurqavHEE0+Im266SXh5eYn7779fnDp1yu5X/r/66ivRr18/oVKpxC233CI+/PBDu/v8/PPPxa233io0Go0ICgoSCxcuFO+//74AIAoLC6W6xtzi4Fq3b6hvfyUlJSI+Pl74+voKlUolQkNDxcqVK6/aNjs7WwwYMECoVCre7oBIBoUQv5t/JiIiIiKH8JooIiIiIhkYooiIiIhkYIgiIiIikoEhioiIiEgGhigiIiIiGRiiiIiIiGTgzTabkdVqxa+//ooOHTrwJxaIiIhchBAC586dQ0BAwFU/5v17DFHN6Ndff0VgYKCzu0FEREQynDp1CjfffHO96xmimlHdzyucOnUK3t7eTu4NEREROaKiogKBgYHS+3h9GKKaUd1HeN7e3gxRRERELuZal+LwwnIiIiIiGRiiiIiIiGRgiCIiIiKSgddEOZnVakVNTY2zu+F07dq1g5ubm7O7QURE5DCGKCeqqalBYWEhrFars7vSKvj4+ECv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woABA5CVlSW1Wa1WZGVlITIy0u42kZGRNvUAkJmZKdUHBwdDr9fb1FRUVCA3N7fefdrz6aef4rvvvkN+fj7y8/Px73//GwDwzTffYPr06Q7vh4iIiNomd2d3IDExEXFxcRg4cCAiIiKwZMkSVFZWIj4+HgAwadIkdO7cGampqQCAmTNnIioqCq+99hqio6OxZs0a7N27F++88w4AQKFQYNasWXjppZfQs2dPBAcHY86cOQgICEBMTIx03KKiIpSVlaGoqAi1tbXIz88HAPTo0QPt27dH9+7dbfpZWloKAOjdu/c17ytFREREbZ/TQ9TYsWNx5swZzJ07F2azGeHh4diyZYt0YXhRUZHNN+MGDx6Mjz/+GM8//zxmz56Nnj17YsOGDejXr59U88wzz6CyshJTp05FeXk57rjjDmzZsgUajUaqmTt3LlatWiU979+/PwBg27ZtGD58eDOfNREREbk6hRBCOLsTbVVFRQW0Wi0sFguvjyIiInIRjr5/89t5RERERDIwRBERERHJwBBFREREJANDFBEREZEMDFFEREREMjBEEREREcnAEEVEREQkA0MUERERkQwMUUREREQyMEQRERERycAQRURERCQDQxQRERGRDAxRRERERDIwRBERERHJwBBFREREJANDFBEREZEMDFFEREREMjBEEREREcnAEEVEREQkA0MUERERkQwMUUREREQyMETdQIot1cg+UYpiS7Wzu0JEROTy3J3dAWoZ6XuKkLz+IKwCUCqA1NGhGDuoi7O7RURE5LI4E3UDKLZUSwEKAKwCmL2+gDNSRERE14Eh6gZQWFopBag6tULgZGmVczpERETUBjBE3QCCfb2gVNi2uSkUCPL1dE6HiIiI2gCGqBuAv9YDqaND4aa4kqTcFAq8Mrof/LUeTu4ZERGR6+KF5TeIsYO6YFiIH06WViHI15MBioiI6DoxRN1A/LUeDE9ERERNhB/nuSDe74mIiMj5OBPlYni/JyIiotahVcxELV++HEFBQdBoNDAYDNi9e3eD9evWrUOvXr2g0WgQGhqKjIwMm/VCCMydOxf+/v7w8PCA0WjE8ePHbWpefvllDB48GJ6envDx8bnqGN999x1iY2MRGBgIDw8P9O7dG//85z+v+1yvB+/3REREdEVr+FTG6SEqPT0diYmJSElJwb59+xAWFgaTyYTTp0/brc/OzkZsbCwSEhKwf/9+xMTEICYmBgUFBVLNokWLsHTpUqxYsQK5ubnw8vKCyWTChQsXpJqamho88sgjeOyxx+weJy8vD506dcKHH36IQ4cO4bnnnkNycjLefPPNph2ARuD9noiIiK58KjNkwVaMfzcXQxZsRfqeIqf0QyGEENcuaz4GgwGDBg2SwonVakVgYCAef/xxJCUlXVU/duxYVFZWYtOmTVLb7bffjvDwcKxYsQJCCAQEBODJJ5/EU089BQCwWCzQ6XRIS0vDuHHjbPaXlpaGWbNmoby8/Jp9nT59Oo4cOYKtW7c6dG4VFRXQarWwWCzw9vZ2aJuGFFuqMWTBVpsg5aZQYGfSCF4wTkR0HYot1SgsrUSwrxf/nrZyLfFe6Oj7t1NnompqapCXlwej0Si1KZVKGI1G5OTk2N0mJyfHph4ATCaTVF9YWAiz2WxTo9VqYTAY6t2noywWCzp27Hhd+7gevN8TEVHTay2zGuSY1vSpjFMvLC8tLUVtbS10Op1Nu06nw9GjR+1uYzab7dabzWZpfV1bfTVyZGdnIz09HZs3b6635uLFi7h48aL0vKKiQvbx6sP7PRERNZ36rjUdFuLHv6+tVN2vcPxxJsoZv8Lh9GuiXEFBQQFGjRqFlJQU3H333fXWpaamQqvVSktgYGCz9Mdf64HI7jfxP3AiouvUmmY1yDGt6VMZp85E+fr6ws3NDSUlJTbtJSUl0Ov1drfR6/UN1tc9lpSUwN/f36YmPDy80X08fPgwRo4cialTp+L5559vsDY5ORmJiYnS84qKimYLUkREdP1a06wGOa61fCrj1JkolUqFAQMGICsrS2qzWq3IyspCZGSk3W0iIyNt6gEgMzNTqg8ODoZer7epqaioQG5ubr37rM+hQ4cwYsQIxMXF4eWXX75mvVqthre3t81CREStV2ua1aDGaQ2fyjj9ZpuJiYmIi4vDwIEDERERgSVLlqCyshLx8fEAgEmTJqFz585ITU0FAMycORNRUVF47bXXEB0djTVr1mDv3r145513AAAKhQKzZs3CSy+9hJ49eyI4OBhz5sxBQEAAYmJipOMWFRWhrKwMRUVFqK2tRX5+PgCgR48eaN++PQoKCnDnnXfCZDIhMTFRup7Kzc0Nfn5+LTdARETUrFrLrAa5INEKLFu2THTp0kWoVCoREREhvv32W2ldVFSUiIuLs6lfu3atCAkJESqVSvTt21ds3rzZZr3VahVz5swROp1OqNVqMXLkSHHs2DGbmri4OAHgqmXbtm1CCCFSUlLsru/atavD52WxWAQAYbFYGjUeRERE5DyOvn87/T5RbVlT3yeKiIiImp9L3CeKiIiIyFUxRBERERHJwBBFREREJANDFBEREZEMDFFEREREMjBEEREREcnAEEVEREQkA0MUERE5pNhSjewTpSi2VDu7K0StgtN/9oWIiFq/9D1FSF5/EFYBKBVA6uhQjB3UxdndInIqzkQREVGDii3VUoACAKsAZq8v4IwU3fAYooiIqEGFpZVSgKpTKwROllY5p0NErQRDFBERNSjY1wtKhW2bm0KBIF9P53SIqJVgiCIiogb5az2QOjoUboorScpNocAro/vBX+vRbMfkRezkCnhhORERXdPYQV0wLMQPJ0urEOTr2awBihexk6vgTBQRETnEX+uByO43NfsMFC9iJ1fBEEVERK0GL2InV8IQRURErQYvYidXwhBFRESthjMuYieSixeWExFRq9KSF7ETXQ+GKCIianX8tR4MT9Tq8eM8IiIiIhkYooiIiIhkYIgiouvy3anf8O43J/Ddqd+c3RUiohbFa6KISLYn1+bj032/SM8fuq0zXhsT7rwOERG1IM5EEZEs3536zSZAAcCn+37hjBQR3TAYoohIlt0ny+y27z3JEEVENwaGKCKSJSKoo932gUF/auGeEBE5B0MUEckSFvgnPHRbZ5u2h27rjLBAhigiujHwwnIiku21MeGYFNkVe0/+hoFBf2KAIqIbCkMUEV2XsECGJ2cqtlSjsLQSwb5evMM3UQtjiCIiclHpe4qQvP4grAJQKoDU0aEYO6iLs7tFdMPgNVFERC6o2FItBSgAsApg9voCFFuqndsxohtIqwhRy5cvR1BQEDQaDQwGA3bv3t1g/bp169CrVy9oNBqEhoYiIyPDZr0QAnPnzoW/vz88PDxgNBpx/Phxm5qXX34ZgwcPhqenJ3x8fOwep6ioCNHR0fD09ESnTp3w9NNP4/Lly9d1rkRETaGwtFIKUHVqhcDJ0irndIjoBuT0EJWeno7ExESkpKRg3759CAsLg8lkwunTp+3WZ2dnIzY2FgkJCdi/fz9iYmIQExODgoICqWbRokVYunQpVqxYgdzcXHh5ecFkMuHChQtSTU1NDR555BE8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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_69.png" - } - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAioAAAHHCAYAAACRAnNyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA9wklEQVR4nO3deXxU1d3H8e8kIQuBDEICSSAhEHYIoAIWURYFIlIUU2VVAfcKIqVaARe2SqD1UVpEpFaJLYJBDEsVkUWBCi4soqCoEAiLhCUqEyAhYHKeP3gyj2MCJCHJvTP5vF+veb2cO2fu/O7xmvl67plzHcYYIwAAABvys7oAAACACyGoAAAA2yKoAAAA2yKoAAAA2yKoAAAA2yKoAAAA2yKoAAAA2yKoAAAA2yKoAAAA2yKoALhskyZNksPhKFFbh8OhSZMmVWg93bt3V/fu3W27PwAlR1ABfEhKSoocDof7ERAQoPr162v48OH6/vvvrS7PduLi4jz6q27durr++uu1ZMmSctl/Tk6OJk2apHXr1pXL/oCqiKAC+KApU6bo3//+t15++WX16dNH8+fPV7du3XTmzJkK+bynnnpKubm5FbLvita+fXv9+9//1r///W899thjOnz4sJKSkvTyyy9f9r5zcnI0efJkggpwGQKsLgBA+evTp486dOggSbrvvvsUHh6uGTNmaPny5RowYEC5f15AQIACArzzz0n9+vV15513up/ffffdatKkiV544QU99NBDFlYGQGJEBagSrr/+eklSenq6x/ZvvvlGt99+u2rXrq3g4GB16NBBy5cv92hz7tw5TZ48WU2bNlVwcLDq1Kmj6667TqtXr3a3KW6OSl5env7whz8oIiJCNWvW1C233KJDhw4VqW348OGKi4srsr24fc6bN0833HCD6tatq6CgILVq1Upz5swpVV9cSmRkpFq2bKl9+/ZdtN2xY8d07733ql69egoODla7du30+uuvu1/PyMhQRESEJGny5Mnuy0sVPT8H8DXe+b9AAEolIyNDknTFFVe4t3311Vfq0qWL6tevr3Hjxik0NFSLFi1S//799fbbb+u2226TdD4wJCcn67777lOnTp2UnZ2tLVu2aNu2berVq9cFP/O+++7T/PnzNWTIEF177bX64IMP1Ldv38s6jjlz5qh169a65ZZbFBAQoP/85z96+OGHVVBQoJEjR17WvgudO3dOBw8eVJ06dS7YJjc3V927d9eePXs0atQoNWrUSG+99ZaGDx+uEydO6NFHH1VERITmzJmj3//+97rtttuUlJQkSWrbtm251AlUGQaAz5g3b56RZNasWWOOHz9uDh48aBYvXmwiIiJMUFCQOXjwoLvtjTfeaBISEsyZM2fc2woKCsy1115rmjZt6t7Wrl0707dv34t+7sSJE80v/5xs377dSDIPP/ywR7shQ4YYSWbixInubcOGDTMNGza85D6NMSYnJ6dIu8TERNO4cWOPbd26dTPdunW7aM3GGNOwYUPTu3dvc/z4cXP8+HHzxRdfmEGDBhlJ5pFHHrng/mbOnGkkmfnz57u3nT171nTu3NnUqFHDZGdnG2OMOX78eJHjBVA6XPoBfFDPnj0VERGhmJgY3X777QoNDdXy5cvVoEEDSdKPP/6oDz74QAMGDNDJkyeVlZWlrKws/fDDD0pMTNTu3bvdvxKqVauWvvrqK+3evbvEn79ixQpJ0ujRoz22jxkz5rKOKyQkxP3PLpdLWVlZ6tatm/bu3SuXy1Wmfa5atUoRERGKiIhQu3bt9NZbb+muu+7SjBkzLvieFStWKDIyUoMHD3Zvq1atmkaPHq1Tp05p/fr1ZaoFQFE+E1Q2bNigfv36KTo6Wg6HQ0uXLq3Qz0tOTlbHjh1Vs2ZN1a1bV/3799e3337rfv3HH3/UI488oubNmyskJESxsbEaPXp0mf+YAqUxe/ZsrV69WosXL9bNN9+srKwsBQUFuV/fs2ePjDF6+umn3V/ShY+JEydKOj8HQzr/C6ITJ06oWbNmSkhI0OOPP64vv/zyop+/f/9++fn5KT4+3mN78+bNL+u4Nm7cqJ49eyo0NFS1atVSRESEJkyYIEll/m/rmmuu0erVq7VmzRpt2rRJWVlZ+te//uURin5t//79atq0qfz8PP+EtmzZ0v06gPLhM3NUTp8+rXbt2umee+5xXwuuSOvXr9fIkSPVsWNH/fzzz5owYYJ69+6tr7/+WqGhoTp8+LAOHz6s5557Tq1atdL+/fv10EMP6fDhw1q8eHGF14eqrVOnTu5f/fTv31/XXXedhgwZom+//VY1atRQQUGBJOmxxx5TYmJisfto0qSJJKlr165KT0/XsmXLtGrVKv3zn//UCy+8oJdffln33XffZdd6oYXi8vPzPZ6np6frxhtvVIsWLfT8888rJiZGgYGBWrFihV544QX3MZVWeHi4evbsWab3Aqh4PhNU+vTpoz59+lzw9by8PD355JNauHChTpw4oTZt2mjGjBllXm1y5cqVHs9TUlJUt25dbd26VV27dlWbNm309ttvu1+Pj4/Xs88+qzvvvFM///yz1/6UE97H399fycnJ6tGjh1588UWNGzdOjRs3lnT+ckVJvqRr166tESNGaMSIETp16pS6du2qSZMmXTCoNGzYUAUFBUpPT/cYRfnlqGOhK664QidOnCiy/dejEv/5z3+Ul5en5cuXKzY21r39ww8/vGT95a1hw4b68ssvVVBQ4DGq8s0337hfly4cwgCUnM9c+rmUUaNG6eOPP9abb76pL7/8UnfccYduuummUl13v5jCYefatWtftE1YWBghBZWue/fu6tSpk2bOnKkzZ86obt266t69u+bOnavMzMwi7Y8fP+7+5x9++MHjtRo1aqhJkybKy8u74OcV/k/D3//+d4/tM2fOLNI2Pj5eLpfL43JSZmZmkdVh/f39JUnGGPc2l8ulefPmXbCOinLzzTfryJEjSk1NdW/7+eefNWvWLNWoUUPdunWTJFWvXl2Sig1iAEqmSnxjHjhwQPPmzdOBAwcUHR0t6fyQ98qVKzVv3jxNmzbtsvZfUFCgMWPGqEuXLmrTpk2xbbKysjR16lQ98MADl/VZQFk9/vjjuuOOO5SSkqKHHnpIs2fP1nXXXaeEhATdf//9aty4sY4ePaqPP/5Yhw4d0hdffCFJatWqlbp3766rr75atWvX1pYtW7R48WKNGjXqgp/Vvn17DR48WC+99JJcLpeuvfZarV27Vnv27CnSdtCgQXriiSd02223afTo0crJydGcOXPUrFkzbdu2zd2ud+/eCgwMVL9+/fTggw/q1KlTeuWVV1S3bt1iw1ZFeuCBBzR37lwNHz5cW7duVVxcnBYvXqyNGzdq5syZqlmzpqTzk39btWql1NRUNWvWTLVr11abNm0u+HcCQDGs/tlRRZBklixZ4n7+zjvvGEkmNDTU4xEQEGAGDBhgjDFm165dRtJFH0888USxn/fQQw+Zhg0bevz085dcLpfp1KmTuemmm8zZs2fL/XiBQoU/T968eXOR1/Lz8018fLyJj483P//8szHGmPT0dHP33XebyMhIU61aNVO/fn3z29/+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AADYFkEFAADYFkEFAADYFkEFAADYFkEFAADYFkEFqESZrlxtSs/ipnEAUEIs+AZUktTNB9x3uvVzSMlJCRrYMdbqsgDA1hhRASpBpivXHVIkqcBIE9J2MrICAJdAUAEqwb6s0+6QUijfGGVk5VhTEAB4CYIKUAkahYfKz+G5zd/hUFx4dWsKAgAvQVABKkGUM0TJSQnyd5xPK/4Oh6YlteFGcgBwCUymBSrJwI6x6tosQhlZOYoLr05IAYASIKgAlSjKGUJAAYBS4NIPAACwLYIKAACwLYIKAACwLYIKAACwLYIKAACwLYIKAACwLUuDyqRJk+RwODweLVq0sLIkAABgI5avo9K6dWutWbPG/TwgwPKSAACATVieCgICAhQZGWl1GQAAwIYsn6Oye/duRUdHq3Hjxho6dKgOHDhgdUkAAMAmLB1Rueaaa5SSkqLmzZsrMzNTkydP1vXXX6+dO3eqZs2aRdrn5eUpLy/P/Tw7O7syywUAAJXMYYwxVhdR6MSJE2rYsKGef/553XvvvUVenzRpkiZPnlxku8vlUlhYWGWUCAAALlN2dracTmeJvr8tv/TzS7Vq1VKzZs20Z8+eYl8fP368XC6X+3Hw4MFKrhAAAFQmWwWVU6dOKT09XVFRUcW+HhQUpLCwMI8HAADwXZYGlccee0zr169XRkaGNm3apNtuu03+/v4aPHiwlWUBAACbsHQy7aFDhzR48GD98MMPioiI0HXXXadPPvlEERERVpYFAABswtKg8uabb1r58QAAwOZsNUcFAADglwgqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtggqAADAtmwTVKZPny6Hw6ExY8ZYXQoAALCJMgWVQ4cO6dSpU0W2nzt3Ths2bCj1/jZv3qy5c+eqbdu2ZSkHAAD4qFIFlczMTHXq1EkNGzZUrVq1dPfdd3sElh9//FE9evQoVQGnTp3S0KFD9corr+iKK64o1XsBAIBv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3weZmZkaMmSImjVrJj8/P40ZM6bYdm+99ZZatGih4OBgJSQkaMWKFeVffDmpiD5ISUkpch4EBwdXzAGUg9L2QVpamnr16qWIiAiFhYWpc+fOev/994u0q+i/Bz4bVFJTUzV27FhNnDhR27ZtU7t27ZSYmKhjx44V237BggUaN26cJk6cqF27dunVV19VamqqJkyY4NGudevWyszMdD8++uijyjicMiltHzz11FOaO3euZs2apa+//loPPfSQbrvtNn3++edl3qfVKqIPJO85D06fPq127dpp9uzZJWq/b98+9e3bVz169ND27ds1ZswY3XfffR5/nLztHKiIPpC85xyQSt8HeXl5ioiI0FNPPaV27doV22bTpk0aPHiw7r33Xn3++efq37+/+vfvr507d5Zn6eWmIvpAOr9i6y/Pg/3795dXyeWutH2wYcMG9erVSytWrNDWrVvVo0cP9evXr/K/E4yP6tSpkxk5cqT7eX5+vomOjjbJycnFth85cqS54YYbPLaNHTvWdOnSxf184sSJpl27dhVSb0UobR9ERUWZF1980WNbUlKSGTp0aJn3abWK6ANvOw8KSTJLliy5aJs//elPpnXr1h7bBg4caBITE93Pve0c+KXy6gNvPQeMKVkf/FK3bt3Mo48+WmT7gAEDTN++fT22XXPNNebBBx+8zAorXnn1wbx584zT6Sy3uipTafugUKtWrczkyZPdzyvj74FPjqicPXtWW7duVc+ePd3b/Pz81LNnT3388cfFvufaa6/V1q1b3UNWe/fu1YoVK3TzzTd7tNu9e7eio6PVuHFjDR06VAcOHKi4A7kMZemDvLy8IsOWISEh7v9TLMs+rVQRfVDIW86D0vr44489+kuSEhMT3f3lbedAWVyqDwr56jlQUiXtJ1936tQpNWzYUDExMbr11lv11VdfWV1ShSkoKNDJkydVu3ZtSZX398Ang0pWVpby8/NVr149j+316tXTkSNHin3PkCFDNGXKFF133XWqVq2a4uPj1b17d49LP9dcc41SUlK0cuVKzZkzR/v27dP111+vkydPVujxlEVZ+iAxMVHPP/+8du/erYKCAq1evVppaWnKzMws8z6tVBF9IHnXeVBaR44cKba/srOzlZub63XnQFlcqg8k3z4HSupC/eQr50FJNG/eXK+99pqWLVum+fPnq6CgQNdee60OHTpkdWkV4rnnntOpU6c0YMAASZX3neCTQaUs1q1bp2nTpumll17Stm3blJaWpnfffVdTp051t+nTp4/uuOMOtW3bVomJiVqxYoVOnDihRYsWWVh5+fnb3/6mpk2bqkWLFgoMDNSoUaM0YsSIS96C25eUpA98/TzApXEOQJI6d+6su+++W+3bt1e3bt2UlpamiIgIzZ071+rSyt2CBQs0efJkLVq0SHXr1q3Uz/bJb6Dw8HD5+/vr6NGjHtuPHj2qyMjIYt/z9NNP66677tJ9992nhIQE3XbbbZo2bZqSk5NVUFBQ7Htq1aqlZs2aac+ePeV+DJerLH0QERGhpUuX6vTp09q/f7+++eYb1ahRQ40bNy7zPq1UEX1QHDufB6UVGRlZbH+FhYUpJCTE686BsrhUHxTHl86BkrpQP/nKeVAW1apV05VXXulz58Gbb76p++67T4sWLfK4zFNZfw98MqgEBgbq6quv1tq1a93bCgoKtHbtWnXu3LnY9+Tk5BQZOfD395ckmQvcDunUqVNKT09XVFRUOVVefsrSB4WCg4NVv359/fzzz3r77bd16623XvY+rVARfVAcO58HpdW5c2eP/pKk1atXu/vL286BsrhUHxTHl86BkipLP/m6/Px87dixw6fOg4ULF2rEiBFauHCh+vbt6/Fapf09KLdpuTbz5ptvmqCgIJOSkmK+/vpr88ADD5hatWqZI0eOGGOMueuuu8y4cePc7SdOnGhq1qxpFi5caPbu3WtWrVpl4uPjzYABA9xt/vjHP5p169aZffv2mY0bN5qePXua8PBwc+zYsUo/vpIobR988skn5u233zbp6elmw4YN5oYbbjCNGjUyP/30U4n3aTcV0QfedB6cPHnSfP755+bzzz83kszzzz9vPv/8c7N//35jjDHjxo0zd911l7v93r17TfXq1c3jjz9udu3aZWbPnm38/f3NypUr3W287RyoiD7wpnPAmNL3gTHG3f7qq682Q4YMMZ9//rn56quv3K9v3LjRBAQEmOeee87s2rXLTJw40VSrVs3s2LGjUo+tpCqiDyZPnmzef/99k56ebrZu3WoGDRpkgoODPdrYSWn74I033jABAQFm9uzZJjMz0/04ceKEu01l/D3w2aBijDGzZs0ysbGxJjAw0HTq1Ml88skn7te6detmhg0b5n5+7tw5M2nSJBMfH2+Cg4NNTEyMefjhhz2+oAYOHGiioqJMYGCgqV+/vhk4cKDZs2dPJR5R6ZWmD9atW2datmxpgoKCTJ06dcxdd91lvv/++1Lt047Kuw+86Tz48MMPjaQij8JjHjZsmOnWrVuR97Rv394EBgaaxo0bm3nz5hXZrzedAxXRB950DhhTtj4orn3Dhg092ixatMg0a9bMBAYGmtatW5t33323cg6oDCqiD8aMGeP+76BevXrm5ptvNtu2bau8gyql0vZBt27dLtq+UEX/PXAYc4HrGgAAABbzyTkqAADANxBUAACAbRFUAACAbRFUAACAbRFUAACAbRFUAACAbRFUAACAbRFUAKCcrVu3Tg6HQydOnLC6FMDrEVQALzZ8+HA5HA5Nnz7dY/vSpUvlcDjcz40xeuWVV9S5c2eFhYWpRo0aat26tR599NES30AtJydH48ePV3x8vIKDgxUREaFu3bpp2bJl7jZxcXGaOXNmuRxbRSvsO4fDoWrVqqlRo0b605/+pDNnzpRqP927d9eYMWM8tl177bXKzMyU0+ksx4qBqomgAni54OBgzZgxQz/99FOxrxtjNGTIEI0ePVo333yzVq1apa+//lqvvvqqgoOD9ec//7lEn/PQQw8pLS1Ns2bN0jfffKOVK1fq9ttv1w8//FCeh1OpbrrpJmVmZmrv3r164YUXNHfuXE2cOPGy9xsYGKjIyEiPsAigjMp1QX4AlWrYsGHmt7/9rWnRooV5/PHH3duXLFliCv/zXrhwoZFkli1bVuw+CgoKSvRZTqfTpKSkXPD14u4LUui///2vue6660xwcLBp0KCBeeSRR8ypU6fcr//rX/8yV199talRo4apV6+eGTx4sDl69Kj79cJ7lKxcudK0b9/eBAcHmx49epijR4+aFStWmBYtWpiaNWuawYMHm9OnT5foeIYNG2ZuvfVWj21JSUnmyiuvdD/PysoygwYNMtHR0SYkJMS0adPGLFiwwGMfvz7mffv2uev95b3CFi9ebFq1amUCAwNNw4YNzXPPPVeiOoGqjhEVwMv5+/tr2rRpmjVrlg4dOlTk9YULF6p58+a65ZZbin1/Sf+vPzIyUitWrNDJkyeLfT0tLU0NGjTQlClTlJmZqczMTElSenq6brrpJv3ud7/Tl19+qdTUVH300UcaNWqU+73nzp3T1KlT9cUXX2jp0qXKyMjQ8OHDi3zGpEmT9OKLL2rTpk06ePCgBgwYoJkzZ2rBggV69913tWrVKs2aNatEx/NrO3fu1KZNmxQYGOjedubMGV199dV69913tXPnTj3wwAO666679Nlnn0mS/va3v6lz5866//773cccExNTZN9bt27VgAEDNGjQIO3YsUOTJk3S008/rZSUlDLVClQpViclAGX3y1GB3/zmN+aee+4xxniOqLRo0cLccsstHu979NFHTWhoqAkNDTX169cv0WetX7/eNGjQwFSrVs106NDBjBkzxnz00UcebRo2bGheeOEFj2333nuveeCBBzy2/fe//zV+fn4mNze32M/avHmzkWROnjxpjPn/EZU1a9a42yQnJxtJJj093b3twQcfNImJiSU6nmHDhhl/f38TGhpqgoKCjCTj5+dnFi9efNH39e3b1/zxj390P+/WrZt59NFHPdr8ekRlyJAhplevXh5tHn/8cdOqVasS1QpUZYyoAD5ixowZev3117Vr165Ltn3yySe1fft2PfPMMzp16lSJ9t+1a1ft3btXa9eu1e23366vvvpK119/vaZOnXrR933xxRdKSUlRjRo13I/ExEQVFBRo3759ks6POPTr10+xsbGqWbOmunXrJkk6cOCAx77atm3r/ud69eqpevXqaty4sce2Y8eOleh4JKlHjx7avn27Pv30Uw0bNkwjRozQ7373O/fr+fn5mjp1qhISElS7dm3VqFFD77//fpG6LmXXrl3q0qWLx7YuXbpo9+7dys/PL9W+gKqGoAL4iK5duyoxMVHjx4/32N60aVN9++23HtsiIiLUpEkT1a1bt1SfUa1aNV1//fV64okntGrVKk2ZMkVTp07V2bNnL/ieU6dO6cEHH9T27dvdjy+++EK7d+9WfHy8Tp8+rcTERIWFhemNN97Q5s2btWTJEkkqst9q1aq5/7nw1zq/5HA4VFBQUOLjCQ0NVZMmTdSuXTu99tpr+vTTT/Xqq6+6X//rX/+qv/3tb3riiSf04Ycfavv27UpMTLzo8QIoXwFWFwCg/EyfPl3t27dX8+bN3dsGDx6sIUOGaNmyZbr11lvL9fNatWqln3/+WWfOnFFgYKACAwOLjBBcddVV+vrrr9WkSZNi97Fjxw798MMPmj59unt+x5YtW8q1zpLw8/PThAkTNHbsWA0ZMkQhISHauHGjbr31Vt15552SpIKCAn333Xdq1aqV+33FHfOvtWzZUhs3bvTYtnHjRjVr1kz+/v7lfzCAD2FEBfAhCQkJGjp0qP7+97+7tw0aNEi33367Bg0apClTpujTTz9VRkaG1q9fr9TU1BJ/UXbv3l1z587V1q1blZGRoRUrVmjChAnq0aOHwsLCJJ1fR2XDhg36/vvvlZWVJUl64okntGnTJo0aNUrbt2/X7t27tWzZMvdk2tjYWAUGBmrWrFnau3evli9ffsnLSRXljjvukL+/v2bPni3p/GjU6tWrtWnTJu3atUsPPvigjh496vGeuLg4d59mZWUVO6Lzxz/+UWvXrtXUqVP13Xff6fXXX9eLL76oxx57rFKOC/BmBBXAx0yZMsXjy9LhcCg1NVUzZ87UihUrdOONN6p58+a65557FBMTo48++qhE+01MTNTrr7+u3r17q2XLlnrkkUeUmJioRYsWeXx2RkaG4uPjFRERIen8vJL169fru+++0/XXX68rr7xSzzzzjKKjoyWdvwyVkpKit956S61atdL06dP13HPPlWOPlFxAQIBGjRqlv/zlLzp9+rSeeuopXXXVVUpMTFT37t0VGRmp/v37e7znsccek7+/v1q1aqWIiIhi569cddVVWrRokd588021adNGzzzzjKZMmVLsL5sAeHIYY4zVRQAAABSHERUAAGBbBBUAkuTx8+FfP/773/9aXV6pHDhw4KLHU9qfFwOwDpd+AEjSRW9OWL9+fYWEhFRiNZfn559/VkZGxgVfj4uLU0AAP3oEvAFBBQAA2BaXfgAAgG0RVAAAgG0RVAAAgG0RVAAAgG0RVAAAgG0RVAAAgG0RVAAAgG0RVAAAgG39L5YjMkcWEhUMAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "C:\\Users\\dkgun\\src\\dangunter\\examples\\idaes_examples\\notebooks\\_build\\jupyter_execute\\docs\\surrogates\\omlt\\keras_flowsheet_optimization_doc_17_70.png" - } - }, - "output_type": "display_data" - } - ], - "source": [ - "# visualize with IDAES surrogate plotting tools\n", - "surrogate_scatter2D(\n", - " keras_surrogate, data_validation, filename=\"keras_val_scatter2D.pdf\"\n", - ")\n", - "surrogate_parity(keras_surrogate, data_validation, filename=\"keras_val_parity.pdf\")\n", - "surrogate_residual(keras_surrogate, data_validation, filename=\"keras_val_residual.pdf\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 4. IDAES Flowsheet Integration" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 4.1 Build and Run IDAES Flowsheet" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Next, we will build an IDAES flowsheet and import the surrogate model object. A single Keras neural network model accounts for all input and output variables, and the JSON model serialized earlier may be imported into a single SurrogateBlock() component." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: \n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 2567\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 80\n", - "\n", - "Total number of variables............................: 231\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 192\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 231\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 1.02e+04 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 2.71e+03 4.59e+01 -1.0 2.08e+04 - 1.55e-02 7.34e-01f 1\n", - " 2 0.0000000e+00 3.06e-02 5.09e+00 -1.0 5.74e+03 - 9.18e-01 1.00e+00h 1\n", - " 3 0.0000000e+00 1.07e-05 1.06e-03 -1.0 1.12e+02 - 1.00e+00 1.00e+00h 1\n", - " 4 0.0000000e+00 1.82e-12 3.85e-16 -2.5 2.61e-02 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 4\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Constraint violation....: 6.0616859024126514e-15 1.8189894035458565e-12\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 6.0616859024126514e-15 1.8189894035458565e-12\n", - "\n", - "\n", - "Number of objective function evaluations = 5\n", - "Number of objective gradient evaluations = 5\n", - "Number of equality constraint evaluations = 5\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 5\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 4\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.006\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n", - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b" - ] - } - ], - "source": [ - "# create the IDAES model and flowsheet\n", - "m = ConcreteModel()\n", - "m.fs = FlowsheetBlock(dynamic=False)\n", - "\n", - "# create flowsheet input variables\n", - "m.fs.bypass_frac = Var(\n", - " initialize=0.80, bounds=[0.1, 0.8], doc=\"natural gas bypass fraction\"\n", - ")\n", - "m.fs.ng_steam_ratio = Var(\n", - " initialize=0.80, bounds=[0.8, 1.2], doc=\"natural gas to steam ratio\"\n", - ")\n", - "\n", - "# create flowsheet output variables\n", - "m.fs.steam_flowrate = Var(initialize=0.2, doc=\"steam flowrate\")\n", - "m.fs.reformer_duty = Var(initialize=10000, doc=\"reformer heat duty\")\n", - "m.fs.AR = Var(initialize=0, doc=\"AR fraction\")\n", - "m.fs.C2H6 = Var(initialize=0, doc=\"C2H6 fraction\")\n", - "m.fs.C3H8 = Var(initialize=0, doc=\"C3H8 fraction\")\n", - "m.fs.C4H10 = Var(initialize=0, doc=\"C4H10 fraction\")\n", - "m.fs.CH4 = Var(initialize=0, doc=\"CH4 fraction\")\n", - "m.fs.CO = Var(initialize=0, doc=\"CO fraction\")\n", - "m.fs.CO2 = Var(initialize=0, doc=\"CO2 fraction\")\n", - "m.fs.H2 = Var(initialize=0, doc=\"H2 fraction\")\n", - "m.fs.H2O = Var(initialize=0, doc=\"H2O fraction\")\n", - "m.fs.N2 = Var(initialize=0, doc=\"N2 fraction\")\n", - "m.fs.O2 = Var(initialize=0, doc=\"O2 fraction\")\n", - "\n", - "# create input and output variable object lists for flowsheet\n", - "inputs = [m.fs.bypass_frac, m.fs.ng_steam_ratio]\n", - "outputs = [\n", - " m.fs.steam_flowrate,\n", - " m.fs.reformer_duty,\n", - " m.fs.AR,\n", - " m.fs.C2H6,\n", - " m.fs.C4H10,\n", - " m.fs.C3H8,\n", - " m.fs.CH4,\n", - " m.fs.CO,\n", - " m.fs.CO2,\n", - " m.fs.H2,\n", - " m.fs.H2O,\n", - " m.fs.N2,\n", - " m.fs.O2,\n", - "]\n", - "\n", - "# create the Pyomo/IDAES block that corresponds to the surrogate\n", - "# Keras\n", - "keras_surrogate = KerasSurrogate.load_from_folder(\"keras_surrogate\")\n", - "m.fs.surrogate = SurrogateBlock()\n", - "m.fs.surrogate.build_model(\n", - " keras_surrogate,\n", - " formulation=KerasSurrogate.Formulation.FULL_SPACE,\n", - " input_vars=inputs,\n", - " output_vars=outputs,\n", - ")\n", - "\n", - "# fix input values and solve flowsheet\n", - "m.fs.bypass_frac.fix(0.5)\n", - "m.fs.ng_steam_ratio.fix(1)\n", - "\n", - "solver = SolverFactory(\"ipopt\")\n", - "results = solver.solve(m, tee=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's print some model results:" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Steam flowrate = 0.6077815115578293\n", - "Reformer duty = 20894.99849692314\n", - "Mole Fraction Ar = 0.003685928708625731\n", - "Mole Fraction C2H6 = 0.004174498761104526\n", - "Mole Fraction C3H8 = 0.0005304604040521441\n", - "Mole Fraction C4H10 = 0.0009065647744530309\n", - "Mole Fraction CH4 = 0.12893526499890756\n", - "Mole Fraction CO = 0.0973757815625882\n", - "Mole Fraction CO2 = 0.04594305744149133\n", - "Mole Fraction H2 = 0.2947117425194844\n", - "Mole Fraction H2O = 0.12005265455241615\n", - "Mole Fraction N2 = 0.3067577132635225\n", - "Mole Fraction O2 = 2.4775618019229293e-20\n" - ] - } - ], - "source": [ - "print(\"Steam flowrate = \", value(m.fs.steam_flowrate))\n", - "print(\"Reformer duty = \", value(m.fs.reformer_duty))\n", - "print(\"Mole Fraction Ar = \", value(m.fs.AR))\n", - "print(\"Mole Fraction C2H6 = \", value(m.fs.C2H6))\n", - "print(\"Mole Fraction C3H8 = \", value(m.fs.C3H8))\n", - "print(\"Mole Fraction C4H10 = \", value(m.fs.C4H10))\n", - "print(\"Mole Fraction CH4 = \", value(m.fs.CH4))\n", - "print(\"Mole Fraction CO = \", value(m.fs.CO))\n", - "print(\"Mole Fraction CO2 = \", value(m.fs.CO2))\n", - "print(\"Mole Fraction H2 = \", value(m.fs.H2))\n", - "print(\"Mole Fraction H2O = \", value(m.fs.H2O))\n", - "print(\"Mole Fraction N2 = \", value(m.fs.N2))\n", - "print(\"Mole Fraction O2 = \", value(m.fs.O2))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 4.2 Optimizing the Autothermal Reformer\n", - "Extending this example, we will unfix the input variables and optimize hydrogen production. We will restrict nitrogen below 34 mol% of the product stream and leave all other variables unfixed.\n", - "\n", - "Above, variable values are called in reference to actual objects names; however, as shown below this may be done much more compactly by calling the list objects we created earlier." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: \n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 2569\n", - "Number of nonzeros in inequality constraint Jacobian.: 1\n", - "Number of nonzeros in Lagrangian Hessian.............: 80\n", - "\n", - "Total number of variables............................: 233\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 194\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 231\n", - "Total number of inequality constraints...............: 1\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 1\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 -2.9471174e-01 1.82e-12 7.70e-04 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 -2.9581536e-01 1.20e-04 8.37e-03 -1.0 1.91e+02 - 1.00e+00 1.00e+00f 1\n", - " 2 -2.9633393e-01 3.93e-05 4.70e-03 -2.5 1.27e+02 - 1.00e+00 1.00e+00h 1\n", - " 3 -3.0889147e-01 1.93e-02 1.12e-02 -3.8 3.11e+03 - 8.54e-01 1.00e+00f 1\n", - " 4 -3.2218328e-01 2.63e-02 7.48e-03 -3.8 6.21e+03 - 1.00e+00 7.13e-01h 1\n", - " 5 -3.2632547e-01 1.41e-02 4.84e-02 -3.8 3.83e+03 - 1.00e+00 5.68e-01h 1\n", - " 6 -3.2962499e-01 1.80e-02 1.29e-01 -3.8 4.15e+03 - 7.03e-01 1.00e+00h 1\n", - " 7 -3.2891795e-01 1.64e-03 1.88e-04 -3.8 9.52e+02 - 1.00e+00 1.00e+00h 1\n", - " 8 -3.2891270e-01 2.73e-06 1.19e-06 -3.8 4.83e+01 - 1.00e+00 1.00e+00h 1\n", - " 9 -3.3134549e-01 4.77e-03 1.44e-02 -5.7 3.35e+03 - 7.85e-01 7.19e-01h 1\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 10 -3.3265276e-01 3.97e-03 1.14e-02 -5.7 2.96e+03 - 9.82e-01 5.04e-01h 1\n", - " 11 -3.3253961e-01 1.13e-05 1.91e-02 -5.7 8.04e+01 - 9.43e-01 1.00e+00h 1\n", - " 12 -3.3255403e-01 2.51e-07 2.88e-07 -5.7 1.84e+01 - 1.00e+00 1.00e+00h 1\n", - " 13 -3.3256308e-01 2.83e-08 5.83e-04 -8.6 6.96e+00 - 1.00e+00 9.64e-01h 1\n", - " 14 -3.3256321e-01 7.97e-11 9.37e-03 -8.6 1.78e-01 - 5.45e-01 1.00e+00f 1\n", - " 15 -3.3256321e-01 3.64e-12 2.50e-14 -8.6 1.77e-04 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 15\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: -3.3256321112789822e-01 -3.3256321112789822e-01\n", - "Dual infeasibility......: 2.5035529205297280e-14 2.5035529205297280e-14\n", - "Constraint violation....: 1.2123371804825303e-14 3.6379788070917130e-12\n", - "Complementarity.........: 2.5392404073929864e-09 2.5392404073929864e-09\n", - "Overall NLP error.......: 2.5392404073929864e-09 2.5392404073929864e-09\n", - "\n", - "\n", - "Number of objective function evaluations = 16\n", - "Number of objective gradient evaluations = 16\n", - "Number of equality constraint evaluations = 16\n", - "Number of inequality constraint evaluations = 16\n", - "Number of equality constraint Jacobian evaluations = 16\n", - "Number of inequality constraint Jacobian evaluations = 16\n", - "Number of Lagrangian Hessian evaluations = 15\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.012\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n", - "\b\b\b\b\b\b\b\b\b\b\b\b\b\b" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[+ 0.06] solve\n", - "Model status: \n", - "Problem: \n", - "- Lower bound: -inf\n", - " Upper bound: inf\n", - " Number of objectives: 1\n", - " Number of constraints: 232\n", - " Number of variables: 233\n", - " Sense: unknown\n", - "Solver: \n", - "- Status: ok\n", - " Message: Ipopt 3.13.2\\x3a Optimal Solution Found\n", - " Termination condition: optimal\n", - " Id: 0\n", - " Error rc: 0\n", - " Time: 0.05810403823852539\n", - "Solution: \n", - "- number of solutions: 0\n", - " number of solutions displayed: 0\n", - "\n", - "Solve time: 0.06416339997667819\n", - "fs.bypass_frac : 0.10000021929992625\n", - "fs.ng_steam_ratio : 1.1046796492824769\n", - "fs.steam_flowrate : 1.1959739002454326\n", - "fs.reformer_duty : 38028.68461541513\n", - "fs.AR : 0.004110458211653681\n", - "fs.C2H6 : 0.00044761800884280994\n", - "fs.C4H10 : 0.00011014452363028629\n", - "fs.C3H8 : 7.244928916496591e-05\n", - "fs.CH4 : 0.017681638298364968\n", - "fs.CO : 0.10597963482121954\n", - "fs.CO2 : 0.053167024686581285\n", - "fs.H2 : 0.3325632111278982\n", - "fs.H2O : 0.14710267683917747\n", - "fs.N2 : 0.3400000024525687\n", - "fs.O2 : 3.321321379533168e-20\n" - ] - } - ], - "source": [ - "# unfix input values and add the objective/constraint to the model\n", - "m.fs.bypass_frac.unfix()\n", - "m.fs.ng_steam_ratio.unfix()\n", - "m.fs.obj = Objective(expr=m.fs.H2, sense=maximize)\n", - "m.fs.con = Constraint(expr=m.fs.N2 <= 0.34)\n", - "\n", - "# solve the model\n", - "tmr = TicTocTimer()\n", - "status = solver.solve(m, tee=True)\n", - "solve_time = tmr.toc(\"solve\")\n", - "\n", - "# print and check results\n", - "assert abs(value(m.fs.H2) - 0.33) <= 0.01\n", - "assert value(m.fs.N2 <= 0.4 + 1e-8)\n", - "print(\"Model status: \", status)\n", - "print(\"Solve time: \", solve_time)\n", - "for var in inputs:\n", - " print(var.name, \": \", value(var))\n", - "for var in outputs:\n", - " print(var.name, \": \", value(var))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.5" - } - }, - "nbformat": 4, - "nbformat_minor": 3 + "nbformat": 4, + "nbformat_minor": 3 } \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/surrogates/omlt/keras_flowsheet_optimization_test.ipynb b/idaes_examples/notebooks/docs/surrogates/omlt/keras_flowsheet_optimization_test.ipynb index a3b477fa..603e227a 100644 --- a/idaes_examples/notebooks/docs/surrogates/omlt/keras_flowsheet_optimization_test.ipynb +++ b/idaes_examples/notebooks/docs/surrogates/omlt/keras_flowsheet_optimization_test.ipynb @@ -250,7 +250,7 @@ "# Train surrogate (calls optimizer on neural network and solves for weights)\n", "model.compile(loss=loss, optimizer=optimizer, metrics=metrics)\n", "mcp_save = tf.keras.callbacks.ModelCheckpoint(\n", - " \".mdl_wts.hdf5\", save_best_only=True, monitor=\"val_loss\", mode=\"min\"\n", + " \".mdl_wts.keras\", save_best_only=True, monitor=\"val_loss\", mode=\"min\"\n", ")\n", "history = model.fit(\n", " x=x, y=y, validation_split=0.2, verbose=1, epochs=1000, callbacks=[mcp_save]\n", @@ -268,7 +268,7 @@ " input_scaler=input_scaler,\n", " output_scaler=output_scaler,\n", ")\n", - "keras_surrogate.save_to_folder(\"keras_surrogate\")\n", + "keras_surrogate.save_to_folder(keras_folder_name=\"keras_surrogate\", keras_model_name=\"keras_model\")\n", "\n", "# revert back to normal output capture\n", "sys.stdout = oldstdout\n", @@ -411,7 +411,7 @@ "\n", "# create the Pyomo/IDAES block that corresponds to the surrogate\n", "# Keras\n", - "keras_surrogate = KerasSurrogate.load_from_folder(\"keras_surrogate\")\n", + "keras_surrogate = KerasSurrogate.load_from_folder(keras_folder_name=\"keras_surrogate\", keras_model_name=\"keras_model\")\n", "m.fs.surrogate = SurrogateBlock()\n", "m.fs.surrogate.build_model(\n", " keras_surrogate,\n", diff --git a/idaes_examples/notebooks/docs/surrogates/omlt/keras_flowsheet_optimization_usr.ipynb b/idaes_examples/notebooks/docs/surrogates/omlt/keras_flowsheet_optimization_usr.ipynb index a3b477fa..603e227a 100644 --- a/idaes_examples/notebooks/docs/surrogates/omlt/keras_flowsheet_optimization_usr.ipynb +++ b/idaes_examples/notebooks/docs/surrogates/omlt/keras_flowsheet_optimization_usr.ipynb @@ -250,7 +250,7 @@ "# Train surrogate (calls optimizer on neural network and solves for weights)\n", "model.compile(loss=loss, optimizer=optimizer, metrics=metrics)\n", "mcp_save = tf.keras.callbacks.ModelCheckpoint(\n", - " \".mdl_wts.hdf5\", save_best_only=True, monitor=\"val_loss\", mode=\"min\"\n", + " \".mdl_wts.keras\", save_best_only=True, monitor=\"val_loss\", mode=\"min\"\n", ")\n", "history = model.fit(\n", " x=x, y=y, validation_split=0.2, verbose=1, epochs=1000, callbacks=[mcp_save]\n", @@ -268,7 +268,7 @@ " input_scaler=input_scaler,\n", " output_scaler=output_scaler,\n", ")\n", - "keras_surrogate.save_to_folder(\"keras_surrogate\")\n", + "keras_surrogate.save_to_folder(keras_folder_name=\"keras_surrogate\", keras_model_name=\"keras_model\")\n", "\n", "# revert back to normal output capture\n", "sys.stdout = oldstdout\n", @@ -411,7 +411,7 @@ "\n", "# create the Pyomo/IDAES block that corresponds to the surrogate\n", "# Keras\n", - "keras_surrogate = KerasSurrogate.load_from_folder(\"keras_surrogate\")\n", + "keras_surrogate = KerasSurrogate.load_from_folder(keras_folder_name=\"keras_surrogate\", keras_model_name=\"keras_model\")\n", "m.fs.surrogate = SurrogateBlock()\n", "m.fs.surrogate.build_model(\n", " keras_surrogate,\n", diff --git a/idaes_examples/notebooks/docs/surrogates/omlt/keras_surrogate/keras_model.keras b/idaes_examples/notebooks/docs/surrogates/omlt/keras_surrogate/keras_model.keras new file mode 100644 index 00000000..55b0068b Binary files /dev/null and b/idaes_examples/notebooks/docs/surrogates/omlt/keras_surrogate/keras_model.keras differ diff --git a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/.mdl_co2.h5 b/idaes_examples/notebooks/docs/surrogates/sco2/omlt/.mdl_co2.h5 deleted file mode 100644 index ee565e8f..00000000 Binary files a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/.mdl_co2.h5 and /dev/null differ diff --git a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/.mdl_co2.keras b/idaes_examples/notebooks/docs/surrogates/sco2/omlt/.mdl_co2.keras new file mode 100644 index 00000000..c090ddac Binary files /dev/null and b/idaes_examples/notebooks/docs/surrogates/sco2/omlt/.mdl_co2.keras differ diff --git a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/flowsheet_optimization_doc.ipynb b/idaes_examples/notebooks/docs/surrogates/sco2/omlt/flowsheet_optimization_doc.ipynb index 921a163b..b4ba5863 100644 --- a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/flowsheet_optimization_doc.ipynb +++ b/idaes_examples/notebooks/docs/surrogates/sco2/omlt/flowsheet_optimization_doc.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -17,7 +17,7 @@ "# University, West Virginia University Research Corporation, et al.\n", "# All rights reserved. Please see the files COPYRIGHT.md and LICENSE.md\n", "# for full copyright and license information.\n", - "###############################################################################" + "###############################################################################\n" ] }, { @@ -37,7 +37,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -47,7 +47,7 @@ "" ] }, - "execution_count": 1, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } @@ -75,9 +75,19 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING: DEPRECATED: pyomo.core.expr.current is deprecated. Please import\n", + "expression symbols from pyomo.core.expr (deprecated in 6.6.2) (called from\n", + ":241)\n" + ] + } + ], "source": [ "from pyomo.environ import (ConcreteModel,\n", " Block,\n", @@ -117,33 +127,33 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "2023-08-19 22:20:40 [INFO] idaes.init.fs.boiler.control_volume: Initialization Complete\n", - "2023-08-19 22:20:40 [INFO] idaes.init.fs.boiler: Initialization Complete: optimal - Optimal Solution Found\n", - "2023-08-19 22:20:41 [INFO] idaes.init.fs.turbine: Initialization Complete: optimal - Optimal Solution Found\n", - "2023-08-19 22:20:41 [INFO] idaes.init.fs.HTR_pseudo_shell.control_volume: Initialization Complete\n", - "2023-08-19 22:20:41 [INFO] idaes.init.fs.HTR_pseudo_shell: Initialization Complete: optimal - Optimal Solution Found\n", - "2023-08-19 22:20:41 [INFO] idaes.init.fs.LTR_pseudo_shell.control_volume: Initialization Complete\n", - "2023-08-19 22:20:42 [INFO] idaes.init.fs.LTR_pseudo_shell: Initialization Complete: optimal - Optimal Solution Found\n", - "2023-08-19 22:20:42 [INFO] idaes.init.fs.splitter_1: Initialization Step 2 Complete: optimal - Optimal Solution Found\n", - "2023-08-19 22:20:42 [INFO] idaes.init.fs.co2_cooler.control_volume: Initialization Complete\n", - "2023-08-19 22:20:42 [INFO] idaes.init.fs.co2_cooler: Initialization Complete: optimal - Optimal Solution Found\n", - "2023-08-19 22:20:43 [INFO] idaes.init.fs.bypass_compressor: Initialization Complete: optimal - Optimal Solution Found\n", - "2023-08-19 22:20:44 [INFO] idaes.init.fs.main_compressor: Initialization Complete: optimal - Optimal Solution Found\n", - "2023-08-19 22:20:44 [INFO] idaes.init.fs.splitter_2: Initialization Step 2 Complete: optimal - Optimal Solution Found\n", - "2023-08-19 22:20:44 [INFO] idaes.init.fs.FG_cooler.control_volume: Initialization Complete\n", - "2023-08-19 22:20:44 [INFO] idaes.init.fs.FG_cooler: Initialization Complete: optimal - Optimal Solution Found\n", - "2023-08-19 22:20:44 [INFO] idaes.init.fs.LTR_pseudo_tube.control_volume: Initialization Complete\n", - "2023-08-19 22:20:45 [INFO] idaes.init.fs.LTR_pseudo_tube: Initialization Complete: optimal - Optimal Solution Found\n", - "2023-08-19 22:20:45 [INFO] idaes.init.fs.mixer: Initialization Complete: optimal - Optimal Solution Found\n", - "2023-08-19 22:20:45 [INFO] idaes.init.fs.HTR_pseudo_tube.control_volume: Initialization Complete\n", - "2023-08-19 22:20:45 [INFO] idaes.init.fs.HTR_pseudo_tube: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:41:57 [INFO] idaes.init.fs.boiler.control_volume: Initialization Complete\n", + "2024-01-24 21:42:01 [INFO] idaes.init.fs.boiler: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:42:02 [INFO] idaes.init.fs.turbine: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:42:03 [INFO] idaes.init.fs.HTR_pseudo_shell.control_volume: Initialization Complete\n", + "2024-01-24 21:42:03 [INFO] idaes.init.fs.HTR_pseudo_shell: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:42:03 [INFO] idaes.init.fs.LTR_pseudo_shell.control_volume: Initialization Complete\n", + "2024-01-24 21:42:03 [INFO] idaes.init.fs.LTR_pseudo_shell: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:42:04 [INFO] idaes.init.fs.splitter_1: Initialization Step 2 Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:42:04 [INFO] idaes.init.fs.co2_cooler.control_volume: Initialization Complete\n", + "2024-01-24 21:42:04 [INFO] idaes.init.fs.co2_cooler: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:42:05 [INFO] idaes.init.fs.bypass_compressor: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:42:07 [INFO] idaes.init.fs.main_compressor: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:42:07 [INFO] idaes.init.fs.splitter_2: Initialization Step 2 Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:42:07 [INFO] idaes.init.fs.FG_cooler.control_volume: Initialization Complete\n", + "2024-01-24 21:42:08 [INFO] idaes.init.fs.FG_cooler: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:42:08 [INFO] idaes.init.fs.LTR_pseudo_tube.control_volume: Initialization Complete\n", + "2024-01-24 21:42:08 [INFO] idaes.init.fs.LTR_pseudo_tube: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:42:09 [INFO] idaes.init.fs.mixer: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:42:09 [INFO] idaes.init.fs.HTR_pseudo_tube.control_volume: Initialization Complete\n", + "2024-01-24 21:42:09 [INFO] idaes.init.fs.HTR_pseudo_tube: Initialization Complete: optimal - Optimal Solution Found\n", "--------------------------------------------------------------------\n", "The degrees of freedom for the flowsheet is 0\n", "--------------------------------------------------------------------\n", @@ -204,8 +214,8 @@ "Number of equality constraint Jacobian evaluations = 2\n", "Number of inequality constraint Jacobian evaluations = 0\n", "Number of Lagrangian Hessian evaluations = 1\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.119\n", - "Total CPU secs in NLP function evaluations = 0.003\n", + "Total CPU secs in IPOPT (w/o function evaluations) = 0.362\n", + "Total CPU secs in NLP function evaluations = 0.008\n", "\n", "EXIT: Optimal Solution Found.\n", "\n", @@ -689,9 +699,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.12" + "version": "3.10.6" } }, "nbformat": 4, "nbformat_minor": 3 -} +} \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/flowsheet_optimization_test.ipynb b/idaes_examples/notebooks/docs/surrogates/sco2/omlt/flowsheet_optimization_test.ipynb index 45b7dd73..b4ba5863 100644 --- a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/flowsheet_optimization_test.ipynb +++ b/idaes_examples/notebooks/docs/surrogates/sco2/omlt/flowsheet_optimization_test.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -37,7 +37,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -47,7 +47,7 @@ "" ] }, - "execution_count": 1, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } @@ -75,9 +75,19 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING: DEPRECATED: pyomo.core.expr.current is deprecated. Please import\n", + "expression symbols from pyomo.core.expr (deprecated in 6.6.2) (called from\n", + ":241)\n" + ] + } + ], "source": [ "from pyomo.environ import (ConcreteModel,\n", " Block,\n", @@ -117,33 +127,33 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "2023-08-19 22:20:40 [INFO] idaes.init.fs.boiler.control_volume: Initialization Complete\n", - "2023-08-19 22:20:40 [INFO] idaes.init.fs.boiler: Initialization Complete: optimal - Optimal Solution Found\n", - "2023-08-19 22:20:41 [INFO] idaes.init.fs.turbine: Initialization Complete: optimal - Optimal Solution Found\n", - "2023-08-19 22:20:41 [INFO] idaes.init.fs.HTR_pseudo_shell.control_volume: Initialization Complete\n", - "2023-08-19 22:20:41 [INFO] idaes.init.fs.HTR_pseudo_shell: Initialization Complete: optimal - Optimal Solution Found\n", - "2023-08-19 22:20:41 [INFO] idaes.init.fs.LTR_pseudo_shell.control_volume: Initialization Complete\n", - "2023-08-19 22:20:42 [INFO] idaes.init.fs.LTR_pseudo_shell: Initialization Complete: optimal - Optimal Solution Found\n", - "2023-08-19 22:20:42 [INFO] idaes.init.fs.splitter_1: Initialization Step 2 Complete: optimal - Optimal Solution Found\n", - "2023-08-19 22:20:42 [INFO] idaes.init.fs.co2_cooler.control_volume: Initialization Complete\n", - "2023-08-19 22:20:42 [INFO] idaes.init.fs.co2_cooler: Initialization Complete: optimal - Optimal Solution Found\n", - "2023-08-19 22:20:43 [INFO] idaes.init.fs.bypass_compressor: Initialization Complete: optimal - Optimal Solution Found\n", - "2023-08-19 22:20:44 [INFO] idaes.init.fs.main_compressor: Initialization Complete: optimal - Optimal Solution Found\n", - "2023-08-19 22:20:44 [INFO] idaes.init.fs.splitter_2: Initialization Step 2 Complete: optimal - Optimal Solution Found\n", - "2023-08-19 22:20:44 [INFO] idaes.init.fs.FG_cooler.control_volume: Initialization Complete\n", - "2023-08-19 22:20:44 [INFO] idaes.init.fs.FG_cooler: Initialization Complete: optimal - Optimal Solution Found\n", - "2023-08-19 22:20:44 [INFO] idaes.init.fs.LTR_pseudo_tube.control_volume: Initialization Complete\n", - "2023-08-19 22:20:45 [INFO] idaes.init.fs.LTR_pseudo_tube: Initialization Complete: optimal - Optimal Solution Found\n", - "2023-08-19 22:20:45 [INFO] idaes.init.fs.mixer: Initialization Complete: optimal - Optimal Solution Found\n", - "2023-08-19 22:20:45 [INFO] idaes.init.fs.HTR_pseudo_tube.control_volume: Initialization Complete\n", - "2023-08-19 22:20:45 [INFO] idaes.init.fs.HTR_pseudo_tube: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:41:57 [INFO] idaes.init.fs.boiler.control_volume: Initialization Complete\n", + "2024-01-24 21:42:01 [INFO] idaes.init.fs.boiler: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:42:02 [INFO] idaes.init.fs.turbine: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:42:03 [INFO] idaes.init.fs.HTR_pseudo_shell.control_volume: Initialization Complete\n", + "2024-01-24 21:42:03 [INFO] idaes.init.fs.HTR_pseudo_shell: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:42:03 [INFO] idaes.init.fs.LTR_pseudo_shell.control_volume: Initialization Complete\n", + "2024-01-24 21:42:03 [INFO] idaes.init.fs.LTR_pseudo_shell: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:42:04 [INFO] idaes.init.fs.splitter_1: Initialization Step 2 Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:42:04 [INFO] idaes.init.fs.co2_cooler.control_volume: Initialization Complete\n", + "2024-01-24 21:42:04 [INFO] idaes.init.fs.co2_cooler: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:42:05 [INFO] idaes.init.fs.bypass_compressor: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:42:07 [INFO] idaes.init.fs.main_compressor: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:42:07 [INFO] idaes.init.fs.splitter_2: Initialization Step 2 Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:42:07 [INFO] idaes.init.fs.FG_cooler.control_volume: Initialization Complete\n", + "2024-01-24 21:42:08 [INFO] idaes.init.fs.FG_cooler: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:42:08 [INFO] idaes.init.fs.LTR_pseudo_tube.control_volume: Initialization Complete\n", + "2024-01-24 21:42:08 [INFO] idaes.init.fs.LTR_pseudo_tube: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:42:09 [INFO] idaes.init.fs.mixer: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:42:09 [INFO] idaes.init.fs.HTR_pseudo_tube.control_volume: Initialization Complete\n", + "2024-01-24 21:42:09 [INFO] idaes.init.fs.HTR_pseudo_tube: Initialization Complete: optimal - Optimal Solution Found\n", "--------------------------------------------------------------------\n", "The degrees of freedom for the flowsheet is 0\n", "--------------------------------------------------------------------\n", @@ -204,8 +214,8 @@ "Number of equality constraint Jacobian evaluations = 2\n", "Number of inequality constraint Jacobian evaluations = 0\n", "Number of Lagrangian Hessian evaluations = 1\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.119\n", - "Total CPU secs in NLP function evaluations = 0.003\n", + "Total CPU secs in IPOPT (w/o function evaluations) = 0.362\n", + "Total CPU secs in NLP function evaluations = 0.008\n", "\n", "EXIT: Optimal Solution Found.\n", "\n", @@ -689,9 +699,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.12" + "version": "3.10.6" } }, "nbformat": 4, "nbformat_minor": 3 -} +} \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/flowsheet_optimization_usr.ipynb b/idaes_examples/notebooks/docs/surrogates/sco2/omlt/flowsheet_optimization_usr.ipynb index 45b7dd73..b4ba5863 100644 --- a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/flowsheet_optimization_usr.ipynb +++ b/idaes_examples/notebooks/docs/surrogates/sco2/omlt/flowsheet_optimization_usr.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -37,7 +37,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -47,7 +47,7 @@ "" ] }, - "execution_count": 1, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } @@ -75,9 +75,19 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING: DEPRECATED: pyomo.core.expr.current is deprecated. Please import\n", + "expression symbols from pyomo.core.expr (deprecated in 6.6.2) (called from\n", + ":241)\n" + ] + } + ], "source": [ "from pyomo.environ import (ConcreteModel,\n", " Block,\n", @@ -117,33 +127,33 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "2023-08-19 22:20:40 [INFO] idaes.init.fs.boiler.control_volume: Initialization Complete\n", - "2023-08-19 22:20:40 [INFO] idaes.init.fs.boiler: Initialization Complete: optimal - Optimal Solution Found\n", - "2023-08-19 22:20:41 [INFO] idaes.init.fs.turbine: Initialization Complete: optimal - Optimal Solution Found\n", - "2023-08-19 22:20:41 [INFO] idaes.init.fs.HTR_pseudo_shell.control_volume: Initialization Complete\n", - "2023-08-19 22:20:41 [INFO] idaes.init.fs.HTR_pseudo_shell: Initialization Complete: optimal - Optimal Solution Found\n", - "2023-08-19 22:20:41 [INFO] idaes.init.fs.LTR_pseudo_shell.control_volume: Initialization Complete\n", - "2023-08-19 22:20:42 [INFO] idaes.init.fs.LTR_pseudo_shell: Initialization Complete: optimal - Optimal Solution Found\n", - "2023-08-19 22:20:42 [INFO] idaes.init.fs.splitter_1: Initialization Step 2 Complete: optimal - Optimal Solution Found\n", - "2023-08-19 22:20:42 [INFO] idaes.init.fs.co2_cooler.control_volume: Initialization Complete\n", - "2023-08-19 22:20:42 [INFO] idaes.init.fs.co2_cooler: Initialization Complete: optimal - Optimal Solution Found\n", - "2023-08-19 22:20:43 [INFO] idaes.init.fs.bypass_compressor: Initialization Complete: optimal - Optimal Solution Found\n", - "2023-08-19 22:20:44 [INFO] idaes.init.fs.main_compressor: Initialization Complete: optimal - Optimal Solution Found\n", - "2023-08-19 22:20:44 [INFO] idaes.init.fs.splitter_2: Initialization Step 2 Complete: optimal - Optimal Solution Found\n", - "2023-08-19 22:20:44 [INFO] idaes.init.fs.FG_cooler.control_volume: Initialization Complete\n", - "2023-08-19 22:20:44 [INFO] idaes.init.fs.FG_cooler: Initialization Complete: optimal - Optimal Solution Found\n", - "2023-08-19 22:20:44 [INFO] idaes.init.fs.LTR_pseudo_tube.control_volume: Initialization Complete\n", - "2023-08-19 22:20:45 [INFO] idaes.init.fs.LTR_pseudo_tube: Initialization Complete: optimal - Optimal Solution Found\n", - "2023-08-19 22:20:45 [INFO] idaes.init.fs.mixer: Initialization Complete: optimal - Optimal Solution Found\n", - "2023-08-19 22:20:45 [INFO] idaes.init.fs.HTR_pseudo_tube.control_volume: Initialization Complete\n", - "2023-08-19 22:20:45 [INFO] idaes.init.fs.HTR_pseudo_tube: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:41:57 [INFO] idaes.init.fs.boiler.control_volume: Initialization Complete\n", + "2024-01-24 21:42:01 [INFO] idaes.init.fs.boiler: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:42:02 [INFO] idaes.init.fs.turbine: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:42:03 [INFO] idaes.init.fs.HTR_pseudo_shell.control_volume: Initialization Complete\n", + "2024-01-24 21:42:03 [INFO] idaes.init.fs.HTR_pseudo_shell: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:42:03 [INFO] idaes.init.fs.LTR_pseudo_shell.control_volume: Initialization Complete\n", + "2024-01-24 21:42:03 [INFO] idaes.init.fs.LTR_pseudo_shell: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:42:04 [INFO] idaes.init.fs.splitter_1: Initialization Step 2 Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:42:04 [INFO] idaes.init.fs.co2_cooler.control_volume: Initialization Complete\n", + "2024-01-24 21:42:04 [INFO] idaes.init.fs.co2_cooler: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:42:05 [INFO] idaes.init.fs.bypass_compressor: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:42:07 [INFO] idaes.init.fs.main_compressor: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:42:07 [INFO] idaes.init.fs.splitter_2: Initialization Step 2 Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:42:07 [INFO] idaes.init.fs.FG_cooler.control_volume: Initialization Complete\n", + "2024-01-24 21:42:08 [INFO] idaes.init.fs.FG_cooler: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:42:08 [INFO] idaes.init.fs.LTR_pseudo_tube.control_volume: Initialization Complete\n", + "2024-01-24 21:42:08 [INFO] idaes.init.fs.LTR_pseudo_tube: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:42:09 [INFO] idaes.init.fs.mixer: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-01-24 21:42:09 [INFO] idaes.init.fs.HTR_pseudo_tube.control_volume: Initialization Complete\n", + "2024-01-24 21:42:09 [INFO] idaes.init.fs.HTR_pseudo_tube: Initialization Complete: optimal - Optimal Solution Found\n", "--------------------------------------------------------------------\n", "The degrees of freedom for the flowsheet is 0\n", "--------------------------------------------------------------------\n", @@ -204,8 +214,8 @@ "Number of equality constraint Jacobian evaluations = 2\n", "Number of inequality constraint Jacobian evaluations = 0\n", "Number of Lagrangian Hessian evaluations = 1\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.119\n", - "Total CPU secs in NLP function evaluations = 0.003\n", + "Total CPU secs in IPOPT (w/o function evaluations) = 0.362\n", + "Total CPU secs in NLP function evaluations = 0.008\n", "\n", "EXIT: Optimal Solution Found.\n", "\n", @@ -689,9 +699,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.12" + "version": "3.10.6" } }, "nbformat": 4, "nbformat_minor": 3 -} +} \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/keras_training.ipynb b/idaes_examples/notebooks/docs/surrogates/sco2/omlt/keras_training.ipynb index 32827f85..cc95e24b 100644 --- a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/keras_training.ipynb +++ b/idaes_examples/notebooks/docs/surrogates/sco2/omlt/keras_training.ipynb @@ -748,7 +748,7 @@ "# Train surrogate (calls optimizer on neural network and solves for weights)\n", "model.compile(loss=loss, optimizer=optimizer, metrics=metrics)\n", "mcp_save = tf.keras.callbacks.ModelCheckpoint(\n", - " \".mdl_co2.h5\", save_best_only=True, monitor=\"val_loss\", mode=\"min\"\n", + " \".mdl_co2.keras\", save_best_only=True, monitor=\"val_loss\", mode=\"min\"\n", ")\n", "history = model.fit(x=x, y=y, validation_split=0.2, verbose=2, epochs=250, callbacks=[mcp_save])\n", "\n", @@ -793,7 +793,7 @@ " input_scaler=input_scaler,\n", " output_scaler=output_scaler,\n", ")\n", - "keras_surrogate.save_to_folder(\"sco2_keras_surr\")" + "keras_surrogate.save_to_folder(keras_folder_name=\"sco2_keras_surr\", keras_model_name=\"sco2_keras_model\")" ] }, { diff --git a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/keras_training_doc.ipynb b/idaes_examples/notebooks/docs/surrogates/sco2/omlt/keras_training_doc.ipynb index 79bbaf1d..49a26fbf 100644 --- a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/keras_training_doc.ipynb +++ b/idaes_examples/notebooks/docs/surrogates/sco2/omlt/keras_training_doc.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -17,7 +17,7 @@ "# University, West Virginia University Research Corporation, et al.\n", "# All rights reserved. Please see the files COPYRIGHT.md and LICENSE.md\n", "# for full copyright and license information.\n", - "###############################################################################" + "###############################################################################\n" ] }, { @@ -53,7 +53,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -63,7 +63,7 @@ "" ] }, - "execution_count": 1, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } @@ -91,9 +91,19 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING: DEPRECATED: pyomo.core.expr.current is deprecated. Please import\n", + "expression symbols from pyomo.core.expr (deprecated in 6.6.2) (called from\n", + ":241)\n" + ] + } + ], "source": [ "# Import statements\n", "import os\n", @@ -134,7 +144,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -182,7 +192,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -190,505 +200,505 @@ "output_type": "stream", "text": [ "Epoch 1/250\n", - "13/13 - 2s - loss: 0.4963 - mae: 0.5592 - mse: 0.4963 - val_loss: 0.1685 - val_mae: 0.3349 - val_mse: 0.1685 - 2s/epoch - 173ms/step\n", + "13/13 - 3s - loss: 0.4963 - mae: 0.5592 - mse: 0.4963 - val_loss: 0.1685 - val_mae: 0.3349 - val_mse: 0.1685 - 3s/epoch - 249ms/step\n", "Epoch 2/250\n", - "13/13 - 0s - loss: 0.1216 - mae: 0.2839 - mse: 0.1216 - val_loss: 0.0809 - val_mae: 0.2245 - val_mse: 0.0809 - 220ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.1216 - mae: 0.2839 - mse: 0.1216 - val_loss: 0.0809 - val_mae: 0.2245 - val_mse: 0.0809 - 237ms/epoch - 18ms/step\n", "Epoch 3/250\n", - "13/13 - 0s - loss: 0.0665 - mae: 0.2043 - mse: 0.0665 - val_loss: 0.0359 - val_mae: 0.1503 - val_mse: 0.0359 - 228ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 0.0665 - mae: 0.2043 - mse: 0.0665 - val_loss: 0.0359 - val_mae: 0.1503 - val_mse: 0.0359 - 262ms/epoch - 20ms/step\n", "Epoch 4/250\n", - "13/13 - 0s - loss: 0.0294 - mae: 0.1329 - mse: 0.0294 - val_loss: 0.0221 - val_mae: 0.1119 - val_mse: 0.0221 - 239ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 0.0294 - mae: 0.1329 - mse: 0.0294 - val_loss: 0.0221 - val_mae: 0.1119 - val_mse: 0.0221 - 283ms/epoch - 22ms/step\n", "Epoch 5/250\n", - "13/13 - 0s - loss: 0.0170 - mae: 0.0964 - mse: 0.0170 - val_loss: 0.0115 - val_mae: 0.0792 - val_mse: 0.0115 - 229ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 0.0170 - mae: 0.0964 - mse: 0.0170 - val_loss: 0.0115 - val_mae: 0.0792 - val_mse: 0.0115 - 351ms/epoch - 27ms/step\n", "Epoch 6/250\n", - "13/13 - 0s - loss: 0.0097 - mae: 0.0734 - mse: 0.0097 - val_loss: 0.0067 - val_mae: 0.0636 - val_mse: 0.0067 - 202ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 0.0097 - mae: 0.0734 - mse: 0.0097 - val_loss: 0.0067 - val_mae: 0.0636 - val_mse: 0.0067 - 364ms/epoch - 28ms/step\n", "Epoch 7/250\n", - "13/13 - 0s - loss: 0.0061 - mae: 0.0610 - mse: 0.0061 - val_loss: 0.0048 - val_mae: 0.0550 - val_mse: 0.0048 - 241ms/epoch - 19ms/step\n", + "13/13 - 0s - loss: 0.0061 - mae: 0.0610 - mse: 0.0061 - val_loss: 0.0048 - val_mae: 0.0550 - val_mse: 0.0048 - 245ms/epoch - 19ms/step\n", "Epoch 8/250\n", - "13/13 - 0s - loss: 0.0042 - mae: 0.0521 - mse: 0.0042 - val_loss: 0.0034 - val_mae: 0.0464 - val_mse: 0.0034 - 233ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 0.0042 - mae: 0.0521 - mse: 0.0042 - val_loss: 0.0034 - val_mae: 0.0464 - val_mse: 0.0034 - 203ms/epoch - 16ms/step\n", "Epoch 9/250\n", - "13/13 - 0s - loss: 0.0032 - mae: 0.0458 - mse: 0.0032 - val_loss: 0.0027 - val_mae: 0.0418 - val_mse: 0.0027 - 227ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0032 - mae: 0.0458 - mse: 0.0032 - val_loss: 0.0027 - val_mae: 0.0418 - val_mse: 0.0027 - 300ms/epoch - 23ms/step\n", "Epoch 10/250\n", - "13/13 - 0s - loss: 0.0028 - mae: 0.0420 - mse: 0.0028 - val_loss: 0.0024 - val_mae: 0.0379 - val_mse: 0.0024 - 240ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 0.0028 - mae: 0.0420 - mse: 0.0028 - val_loss: 0.0024 - val_mae: 0.0379 - val_mse: 0.0024 - 255ms/epoch - 20ms/step\n", "Epoch 11/250\n", - "13/13 - 0s - loss: 0.0024 - mae: 0.0384 - mse: 0.0024 - val_loss: 0.0021 - val_mae: 0.0358 - val_mse: 0.0021 - 224ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0024 - mae: 0.0384 - mse: 0.0024 - val_loss: 0.0021 - val_mae: 0.0358 - val_mse: 0.0021 - 247ms/epoch - 19ms/step\n", "Epoch 12/250\n", - "13/13 - 0s - loss: 0.0022 - mae: 0.0358 - mse: 0.0022 - val_loss: 0.0018 - val_mae: 0.0330 - val_mse: 0.0018 - 227ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0022 - mae: 0.0358 - mse: 0.0022 - val_loss: 0.0018 - val_mae: 0.0330 - val_mse: 0.0018 - 321ms/epoch - 25ms/step\n", "Epoch 13/250\n", - "13/13 - 0s - loss: 0.0020 - mae: 0.0338 - mse: 0.0020 - val_loss: 0.0017 - val_mae: 0.0315 - val_mse: 0.0017 - 197ms/epoch - 15ms/step\n", + "13/13 - 0s - loss: 0.0020 - mae: 0.0338 - mse: 0.0020 - val_loss: 0.0017 - val_mae: 0.0315 - val_mse: 0.0017 - 219ms/epoch - 17ms/step\n", "Epoch 14/250\n", - "13/13 - 0s - loss: 0.0018 - mae: 0.0323 - mse: 0.0018 - val_loss: 0.0015 - val_mae: 0.0302 - val_mse: 0.0015 - 234ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 0.0018 - mae: 0.0323 - mse: 0.0018 - val_loss: 0.0015 - val_mae: 0.0302 - val_mse: 0.0015 - 272ms/epoch - 21ms/step\n", "Epoch 15/250\n", - "13/13 - 0s - loss: 0.0017 - mae: 0.0311 - mse: 0.0017 - val_loss: 0.0015 - val_mae: 0.0296 - val_mse: 0.0015 - 207ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 0.0017 - mae: 0.0311 - mse: 0.0017 - val_loss: 0.0015 - val_mae: 0.0296 - val_mse: 0.0015 - 299ms/epoch - 23ms/step\n", "Epoch 16/250\n", - "13/13 - 0s - loss: 0.0016 - mae: 0.0303 - mse: 0.0016 - val_loss: 0.0014 - val_mae: 0.0289 - val_mse: 0.0014 - 215ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0016 - mae: 0.0303 - mse: 0.0016 - val_loss: 0.0014 - val_mae: 0.0289 - val_mse: 0.0014 - 271ms/epoch - 21ms/step\n", "Epoch 17/250\n", - "13/13 - 0s - loss: 0.0016 - mae: 0.0293 - mse: 0.0016 - val_loss: 0.0014 - val_mae: 0.0281 - val_mse: 0.0014 - 227ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0016 - mae: 0.0293 - mse: 0.0016 - val_loss: 0.0014 - val_mae: 0.0281 - val_mse: 0.0014 - 248ms/epoch - 19ms/step\n", "Epoch 18/250\n", - "13/13 - 0s - loss: 0.0015 - mae: 0.0287 - mse: 0.0015 - val_loss: 0.0013 - val_mae: 0.0275 - val_mse: 0.0013 - 234ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 0.0015 - mae: 0.0287 - mse: 0.0015 - val_loss: 0.0013 - val_mae: 0.0275 - val_mse: 0.0013 - 256ms/epoch - 20ms/step\n", "Epoch 19/250\n", - "13/13 - 0s - loss: 0.0015 - mae: 0.0285 - mse: 0.0015 - val_loss: 0.0014 - val_mae: 0.0285 - val_mse: 0.0014 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 0.0015 - mae: 0.0285 - mse: 0.0015 - val_loss: 0.0014 - val_mae: 0.0285 - val_mse: 0.0014 - 153ms/epoch - 12ms/step\n", "Epoch 20/250\n", - "13/13 - 0s - loss: 0.0015 - mae: 0.0282 - mse: 0.0015 - val_loss: 0.0012 - val_mae: 0.0269 - val_mse: 0.0012 - 246ms/epoch - 19ms/step\n", + "13/13 - 0s - loss: 0.0015 - mae: 0.0282 - mse: 0.0015 - val_loss: 0.0012 - val_mae: 0.0269 - val_mse: 0.0012 - 239ms/epoch - 18ms/step\n", "Epoch 21/250\n", - "13/13 - 0s - loss: 0.0015 - mae: 0.0278 - mse: 0.0015 - val_loss: 0.0012 - val_mae: 0.0266 - val_mse: 0.0012 - 172ms/epoch - 13ms/step\n", + "13/13 - 0s - loss: 0.0015 - mae: 0.0278 - mse: 0.0015 - val_loss: 0.0012 - val_mae: 0.0266 - val_mse: 0.0012 - 263ms/epoch - 20ms/step\n", "Epoch 22/250\n", - "13/13 - 0s - loss: 0.0015 - mae: 0.0279 - mse: 0.0015 - val_loss: 0.0012 - val_mae: 0.0266 - val_mse: 0.0012 - 209ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 0.0015 - mae: 0.0279 - mse: 0.0015 - val_loss: 0.0012 - val_mae: 0.0266 - val_mse: 0.0012 - 243ms/epoch - 19ms/step\n", "Epoch 23/250\n", - "13/13 - 0s - loss: 0.0014 - mae: 0.0274 - mse: 0.0014 - val_loss: 0.0012 - val_mae: 0.0265 - val_mse: 0.0012 - 108ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 0.0014 - mae: 0.0274 - mse: 0.0014 - val_loss: 0.0012 - val_mae: 0.0265 - val_mse: 0.0012 - 138ms/epoch - 11ms/step\n", "Epoch 24/250\n", - "13/13 - 0s - loss: 0.0014 - mae: 0.0264 - mse: 0.0014 - val_loss: 0.0012 - val_mae: 0.0259 - val_mse: 0.0012 - 219ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0014 - mae: 0.0264 - mse: 0.0014 - val_loss: 0.0012 - val_mae: 0.0259 - val_mse: 0.0012 - 189ms/epoch - 15ms/step\n", "Epoch 25/250\n", - "13/13 - 0s - loss: 0.0014 - mae: 0.0268 - mse: 0.0014 - val_loss: 0.0012 - val_mae: 0.0258 - val_mse: 0.0012 - 212ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 0.0014 - mae: 0.0268 - mse: 0.0014 - val_loss: 0.0012 - val_mae: 0.0258 - val_mse: 0.0012 - 280ms/epoch - 22ms/step\n", "Epoch 26/250\n", - "13/13 - 0s - loss: 0.0013 - mae: 0.0268 - mse: 0.0013 - val_loss: 0.0011 - val_mae: 0.0258 - val_mse: 0.0011 - 220ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0013 - mae: 0.0268 - mse: 0.0013 - val_loss: 0.0011 - val_mae: 0.0258 - val_mse: 0.0011 - 222ms/epoch - 17ms/step\n", "Epoch 27/250\n", - "13/13 - 0s - loss: 0.0013 - mae: 0.0265 - mse: 0.0013 - val_loss: 0.0011 - val_mae: 0.0247 - val_mse: 0.0011 - 224ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0013 - mae: 0.0265 - mse: 0.0013 - val_loss: 0.0011 - val_mae: 0.0247 - val_mse: 0.0011 - 286ms/epoch - 22ms/step\n", "Epoch 28/250\n", - "13/13 - 0s - loss: 0.0013 - mae: 0.0259 - mse: 0.0013 - val_loss: 0.0012 - val_mae: 0.0259 - val_mse: 0.0012 - 108ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 0.0013 - mae: 0.0259 - mse: 0.0013 - val_loss: 0.0012 - val_mae: 0.0259 - val_mse: 0.0012 - 116ms/epoch - 9ms/step\n", "Epoch 29/250\n", - "13/13 - 0s - loss: 0.0013 - mae: 0.0259 - mse: 0.0013 - val_loss: 0.0011 - val_mae: 0.0252 - val_mse: 0.0011 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 0.0013 - mae: 0.0259 - mse: 0.0013 - val_loss: 0.0011 - val_mae: 0.0252 - val_mse: 0.0011 - 157ms/epoch - 12ms/step\n", "Epoch 30/250\n", - "13/13 - 0s - loss: 0.0013 - mae: 0.0256 - mse: 0.0013 - val_loss: 0.0011 - val_mae: 0.0248 - val_mse: 0.0011 - 223ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0013 - mae: 0.0256 - mse: 0.0013 - val_loss: 0.0011 - val_mae: 0.0248 - val_mse: 0.0011 - 267ms/epoch - 21ms/step\n", "Epoch 31/250\n", - "13/13 - 0s - loss: 0.0013 - mae: 0.0254 - mse: 0.0013 - val_loss: 0.0011 - val_mae: 0.0245 - val_mse: 0.0011 - 219ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0013 - mae: 0.0254 - mse: 0.0013 - val_loss: 0.0011 - val_mae: 0.0245 - val_mse: 0.0011 - 264ms/epoch - 20ms/step\n", "Epoch 32/250\n", - "13/13 - 0s - loss: 0.0012 - mae: 0.0254 - mse: 0.0012 - val_loss: 0.0010 - val_mae: 0.0243 - val_mse: 0.0010 - 228ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 0.0012 - mae: 0.0254 - mse: 0.0012 - val_loss: 0.0010 - val_mae: 0.0243 - val_mse: 0.0010 - 269ms/epoch - 21ms/step\n", "Epoch 33/250\n", - "13/13 - 0s - loss: 0.0012 - mae: 0.0248 - mse: 0.0012 - val_loss: 0.0012 - val_mae: 0.0251 - val_mse: 0.0012 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 0.0012 - mae: 0.0248 - mse: 0.0012 - val_loss: 0.0012 - val_mae: 0.0251 - val_mse: 0.0012 - 353ms/epoch - 27ms/step\n", "Epoch 34/250\n", - "13/13 - 0s - loss: 0.0012 - mae: 0.0256 - mse: 0.0012 - val_loss: 0.0010 - val_mae: 0.0248 - val_mse: 0.0010 - 244ms/epoch - 19ms/step\n", + "13/13 - 1s - loss: 0.0012 - mae: 0.0256 - mse: 0.0012 - val_loss: 0.0010 - val_mae: 0.0248 - val_mse: 0.0010 - 537ms/epoch - 41ms/step\n", "Epoch 35/250\n", - "13/13 - 0s - loss: 0.0012 - mae: 0.0254 - mse: 0.0012 - val_loss: 0.0010 - val_mae: 0.0243 - val_mse: 0.0010 - 202ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 0.0012 - mae: 0.0254 - mse: 0.0012 - val_loss: 0.0010 - val_mae: 0.0243 - val_mse: 0.0010 - 330ms/epoch - 25ms/step\n", "Epoch 36/250\n", - "13/13 - 0s - loss: 0.0012 - mae: 0.0245 - mse: 0.0012 - val_loss: 0.0010 - val_mae: 0.0234 - val_mse: 0.0010 - 224ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0012 - mae: 0.0245 - mse: 0.0012 - val_loss: 0.0010 - val_mae: 0.0234 - val_mse: 0.0010 - 289ms/epoch - 22ms/step\n", "Epoch 37/250\n", - "13/13 - 0s - loss: 0.0011 - mae: 0.0244 - mse: 0.0011 - val_loss: 0.0010 - val_mae: 0.0239 - val_mse: 0.0010 - 114ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 0.0011 - mae: 0.0244 - mse: 0.0011 - val_loss: 0.0010 - val_mae: 0.0239 - val_mse: 0.0010 - 155ms/epoch - 12ms/step\n", "Epoch 38/250\n", - "13/13 - 0s - loss: 0.0011 - mae: 0.0243 - mse: 0.0011 - val_loss: 9.9094e-04 - val_mae: 0.0235 - val_mse: 9.9094e-04 - 231ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 0.0011 - mae: 0.0243 - mse: 0.0011 - val_loss: 9.9094e-04 - val_mae: 0.0235 - val_mse: 9.9094e-04 - 289ms/epoch - 22ms/step\n", "Epoch 39/250\n", - "13/13 - 0s - loss: 0.0011 - mae: 0.0243 - mse: 0.0011 - val_loss: 0.0010 - val_mae: 0.0238 - val_mse: 0.0010 - 107ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 0.0011 - mae: 0.0243 - mse: 0.0011 - val_loss: 0.0010 - val_mae: 0.0238 - val_mse: 0.0010 - 118ms/epoch - 9ms/step\n", "Epoch 40/250\n", - "13/13 - 0s - loss: 0.0011 - mae: 0.0241 - mse: 0.0011 - val_loss: 9.7491e-04 - val_mae: 0.0239 - val_mse: 9.7491e-04 - 219ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0011 - mae: 0.0241 - mse: 0.0011 - val_loss: 9.7491e-04 - val_mae: 0.0239 - val_mse: 9.7491e-04 - 299ms/epoch - 23ms/step\n", "Epoch 41/250\n", - "13/13 - 0s - loss: 0.0011 - mae: 0.0241 - mse: 0.0011 - val_loss: 9.9821e-04 - val_mae: 0.0227 - val_mse: 9.9821e-04 - 167ms/epoch - 13ms/step\n", + "13/13 - 0s - loss: 0.0011 - mae: 0.0241 - mse: 0.0011 - val_loss: 9.9821e-04 - val_mae: 0.0227 - val_mse: 9.9821e-04 - 151ms/epoch - 12ms/step\n", "Epoch 42/250\n", - "13/13 - 0s - loss: 0.0011 - mae: 0.0240 - mse: 0.0011 - val_loss: 0.0010 - val_mae: 0.0235 - val_mse: 0.0010 - 100ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 0.0011 - mae: 0.0240 - mse: 0.0011 - val_loss: 0.0010 - val_mae: 0.0235 - val_mse: 0.0010 - 192ms/epoch - 15ms/step\n", "Epoch 43/250\n", - "13/13 - 0s - loss: 0.0011 - mae: 0.0238 - mse: 0.0011 - val_loss: 9.4863e-04 - val_mae: 0.0232 - val_mse: 9.4863e-04 - 225ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0011 - mae: 0.0238 - mse: 0.0011 - val_loss: 9.4863e-04 - val_mae: 0.0232 - val_mse: 9.4863e-04 - 237ms/epoch - 18ms/step\n", "Epoch 44/250\n", - "13/13 - 0s - loss: 0.0011 - mae: 0.0236 - mse: 0.0011 - val_loss: 9.8018e-04 - val_mae: 0.0230 - val_mse: 9.8018e-04 - 118ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 0.0011 - mae: 0.0236 - mse: 0.0011 - val_loss: 9.8018e-04 - val_mae: 0.0230 - val_mse: 9.8018e-04 - 154ms/epoch - 12ms/step\n", "Epoch 45/250\n", - "13/13 - 0s - loss: 0.0011 - mae: 0.0239 - mse: 0.0011 - val_loss: 9.5093e-04 - val_mae: 0.0233 - val_mse: 9.5093e-04 - 121ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 0.0011 - mae: 0.0239 - mse: 0.0011 - val_loss: 9.5093e-04 - val_mae: 0.0233 - val_mse: 9.5093e-04 - 158ms/epoch - 12ms/step\n", "Epoch 46/250\n", - "13/13 - 0s - loss: 0.0010 - mae: 0.0230 - mse: 0.0010 - val_loss: 9.4785e-04 - val_mae: 0.0223 - val_mse: 9.4785e-04 - 234ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 0.0010 - mae: 0.0230 - mse: 0.0010 - val_loss: 9.4785e-04 - val_mae: 0.0223 - val_mse: 9.4785e-04 - 218ms/epoch - 17ms/step\n", "Epoch 47/250\n", - "13/13 - 0s - loss: 0.0010 - mae: 0.0231 - mse: 0.0010 - val_loss: 9.7827e-04 - val_mae: 0.0230 - val_mse: 9.7827e-04 - 108ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 0.0010 - mae: 0.0231 - mse: 0.0010 - val_loss: 9.7827e-04 - val_mae: 0.0230 - val_mse: 9.7827e-04 - 116ms/epoch - 9ms/step\n", "Epoch 48/250\n", - "13/13 - 0s - loss: 0.0010 - mae: 0.0232 - mse: 0.0010 - val_loss: 9.0671e-04 - val_mae: 0.0225 - val_mse: 9.0671e-04 - 221ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0010 - mae: 0.0232 - mse: 0.0010 - val_loss: 9.0671e-04 - val_mae: 0.0225 - val_mse: 9.0671e-04 - 288ms/epoch - 22ms/step\n", "Epoch 49/250\n", - "13/13 - 0s - loss: 0.0010 - mae: 0.0230 - mse: 0.0010 - val_loss: 9.2521e-04 - val_mae: 0.0218 - val_mse: 9.2521e-04 - 113ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 0.0010 - mae: 0.0230 - mse: 0.0010 - val_loss: 9.2521e-04 - val_mae: 0.0218 - val_mse: 9.2521e-04 - 140ms/epoch - 11ms/step\n", "Epoch 50/250\n", - "13/13 - 0s - loss: 0.0010 - mae: 0.0231 - mse: 0.0010 - val_loss: 9.7818e-04 - val_mae: 0.0231 - val_mse: 9.7818e-04 - 114ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 0.0010 - mae: 0.0231 - mse: 0.0010 - val_loss: 9.7818e-04 - val_mae: 0.0231 - val_mse: 9.7818e-04 - 149ms/epoch - 11ms/step\n", "Epoch 51/250\n", - "13/13 - 0s - loss: 9.9977e-04 - mae: 0.0232 - mse: 9.9977e-04 - val_loss: 9.4350e-04 - val_mae: 0.0221 - val_mse: 9.4350e-04 - 119ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 9.9977e-04 - mae: 0.0232 - mse: 9.9977e-04 - val_loss: 9.4350e-04 - val_mae: 0.0221 - val_mse: 9.4350e-04 - 146ms/epoch - 11ms/step\n", "Epoch 52/250\n", - "13/13 - 0s - loss: 9.8599e-04 - mae: 0.0229 - mse: 9.8599e-04 - val_loss: 9.0638e-04 - val_mae: 0.0230 - val_mse: 9.0638e-04 - 219ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 9.8599e-04 - mae: 0.0229 - mse: 9.8599e-04 - val_loss: 9.0638e-04 - val_mae: 0.0230 - val_mse: 9.0638e-04 - 265ms/epoch - 20ms/step\n", "Epoch 53/250\n", - "13/13 - 0s - loss: 9.8295e-04 - mae: 0.0228 - mse: 9.8295e-04 - val_loss: 9.0667e-04 - val_mae: 0.0215 - val_mse: 9.0667e-04 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 9.8295e-04 - mae: 0.0228 - mse: 9.8295e-04 - val_loss: 9.0667e-04 - val_mae: 0.0215 - val_mse: 9.0667e-04 - 179ms/epoch - 14ms/step\n", "Epoch 54/250\n", - "13/13 - 0s - loss: 9.7266e-04 - mae: 0.0225 - mse: 9.7266e-04 - val_loss: 9.0391e-04 - val_mae: 0.0224 - val_mse: 9.0391e-04 - 208ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 9.7266e-04 - mae: 0.0225 - mse: 9.7266e-04 - val_loss: 9.0391e-04 - val_mae: 0.0224 - val_mse: 9.0391e-04 - 287ms/epoch - 22ms/step\n", "Epoch 55/250\n", - "13/13 - 0s - loss: 9.5234e-04 - mae: 0.0225 - mse: 9.5234e-04 - val_loss: 8.7426e-04 - val_mae: 0.0219 - val_mse: 8.7426e-04 - 223ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 9.5234e-04 - mae: 0.0225 - mse: 9.5234e-04 - val_loss: 8.7426e-04 - val_mae: 0.0219 - val_mse: 8.7426e-04 - 284ms/epoch - 22ms/step\n", "Epoch 56/250\n", - "13/13 - 0s - loss: 9.4315e-04 - mae: 0.0221 - mse: 9.4315e-04 - val_loss: 8.6742e-04 - val_mae: 0.0224 - val_mse: 8.6742e-04 - 227ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 9.4315e-04 - mae: 0.0221 - mse: 9.4315e-04 - val_loss: 8.6742e-04 - val_mae: 0.0224 - val_mse: 8.6742e-04 - 297ms/epoch - 23ms/step\n", "Epoch 57/250\n", - "13/13 - 0s - loss: 9.9226e-04 - mae: 0.0230 - mse: 9.9226e-04 - val_loss: 8.7793e-04 - val_mae: 0.0225 - val_mse: 8.7793e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 9.9226e-04 - mae: 0.0230 - mse: 9.9226e-04 - val_loss: 8.7793e-04 - val_mae: 0.0225 - val_mse: 8.7793e-04 - 206ms/epoch - 16ms/step\n", "Epoch 58/250\n", - "13/13 - 0s - loss: 9.4137e-04 - mae: 0.0226 - mse: 9.4137e-04 - val_loss: 8.7477e-04 - val_mae: 0.0225 - val_mse: 8.7477e-04 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 9.4137e-04 - mae: 0.0226 - mse: 9.4137e-04 - val_loss: 8.7477e-04 - val_mae: 0.0225 - val_mse: 8.7477e-04 - 160ms/epoch - 12ms/step\n", "Epoch 59/250\n", - "13/13 - 0s - loss: 9.2474e-04 - mae: 0.0219 - mse: 9.2474e-04 - val_loss: 8.5320e-04 - val_mae: 0.0212 - val_mse: 8.5320e-04 - 195ms/epoch - 15ms/step\n", + "13/13 - 0s - loss: 9.2474e-04 - mae: 0.0219 - mse: 9.2474e-04 - val_loss: 8.5320e-04 - val_mae: 0.0212 - val_mse: 8.5320e-04 - 274ms/epoch - 21ms/step\n", "Epoch 60/250\n", - "13/13 - 0s - loss: 9.1133e-04 - mae: 0.0217 - mse: 9.1133e-04 - val_loss: 8.6082e-04 - val_mae: 0.0217 - val_mse: 8.6082e-04 - 114ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 9.1133e-04 - mae: 0.0217 - mse: 9.1133e-04 - val_loss: 8.6082e-04 - val_mae: 0.0217 - val_mse: 8.6082e-04 - 160ms/epoch - 12ms/step\n", "Epoch 61/250\n", - "13/13 - 0s - loss: 9.1801e-04 - mae: 0.0217 - mse: 9.1801e-04 - val_loss: 8.5403e-04 - val_mae: 0.0223 - val_mse: 8.5403e-04 - 109ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 9.1801e-04 - mae: 0.0217 - mse: 9.1801e-04 - val_loss: 8.5403e-04 - val_mae: 0.0223 - val_mse: 8.5403e-04 - 143ms/epoch - 11ms/step\n", "Epoch 62/250\n", - "13/13 - 0s - loss: 9.1987e-04 - mae: 0.0221 - mse: 9.1987e-04 - val_loss: 8.5714e-04 - val_mae: 0.0219 - val_mse: 8.5714e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 9.1987e-04 - mae: 0.0221 - mse: 9.1987e-04 - val_loss: 8.5714e-04 - val_mae: 0.0219 - val_mse: 8.5714e-04 - 128ms/epoch - 10ms/step\n", "Epoch 63/250\n", - "13/13 - 0s - loss: 9.0862e-04 - mae: 0.0222 - mse: 9.0862e-04 - val_loss: 8.6160e-04 - val_mae: 0.0225 - val_mse: 8.6160e-04 - 110ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 9.0862e-04 - mae: 0.0222 - mse: 9.0862e-04 - val_loss: 8.6160e-04 - val_mae: 0.0225 - val_mse: 8.6160e-04 - 154ms/epoch - 12ms/step\n", "Epoch 64/250\n", - "13/13 - 0s - loss: 8.9349e-04 - mae: 0.0220 - mse: 8.9349e-04 - val_loss: 8.2851e-04 - val_mae: 0.0214 - val_mse: 8.2851e-04 - 224ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 8.9349e-04 - mae: 0.0220 - mse: 8.9349e-04 - val_loss: 8.2851e-04 - val_mae: 0.0214 - val_mse: 8.2851e-04 - 284ms/epoch - 22ms/step\n", "Epoch 65/250\n", - "13/13 - 0s - loss: 8.7848e-04 - mae: 0.0216 - mse: 8.7848e-04 - val_loss: 8.5189e-04 - val_mae: 0.0218 - val_mse: 8.5189e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 8.7848e-04 - mae: 0.0216 - mse: 8.7848e-04 - val_loss: 8.5189e-04 - val_mae: 0.0218 - val_mse: 8.5189e-04 - 168ms/epoch - 13ms/step\n", "Epoch 66/250\n", - "13/13 - 0s - loss: 8.9773e-04 - mae: 0.0219 - mse: 8.9773e-04 - val_loss: 8.5650e-04 - val_mae: 0.0211 - val_mse: 8.5650e-04 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 8.9773e-04 - mae: 0.0219 - mse: 8.9773e-04 - val_loss: 8.5650e-04 - val_mae: 0.0211 - val_mse: 8.5650e-04 - 113ms/epoch - 9ms/step\n", "Epoch 67/250\n", - "13/13 - 0s - loss: 8.7443e-04 - mae: 0.0217 - mse: 8.7443e-04 - val_loss: 8.2545e-04 - val_mae: 0.0214 - val_mse: 8.2545e-04 - 221ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 8.7443e-04 - mae: 0.0217 - mse: 8.7443e-04 - val_loss: 8.2545e-04 - val_mae: 0.0214 - val_mse: 8.2545e-04 - 264ms/epoch - 20ms/step\n", "Epoch 68/250\n", - "13/13 - 0s - loss: 8.9141e-04 - mae: 0.0217 - mse: 8.9141e-04 - val_loss: 8.4471e-04 - val_mae: 0.0219 - val_mse: 8.4471e-04 - 106ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 8.9141e-04 - mae: 0.0217 - mse: 8.9141e-04 - val_loss: 8.4471e-04 - val_mae: 0.0219 - val_mse: 8.4471e-04 - 189ms/epoch - 15ms/step\n", "Epoch 69/250\n", - "13/13 - 0s - loss: 8.9507e-04 - mae: 0.0224 - mse: 8.9507e-04 - val_loss: 8.7916e-04 - val_mae: 0.0217 - val_mse: 8.7916e-04 - 114ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 8.9507e-04 - mae: 0.0224 - mse: 8.9507e-04 - val_loss: 8.7916e-04 - val_mae: 0.0217 - val_mse: 8.7916e-04 - 175ms/epoch - 13ms/step\n", "Epoch 70/250\n", - "13/13 - 0s - loss: 8.5737e-04 - mae: 0.0216 - mse: 8.5737e-04 - val_loss: 8.8807e-04 - val_mae: 0.0215 - val_mse: 8.8807e-04 - 114ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 8.5737e-04 - mae: 0.0216 - mse: 8.5737e-04 - val_loss: 8.8807e-04 - val_mae: 0.0215 - val_mse: 8.8807e-04 - 322ms/epoch - 25ms/step\n", "Epoch 71/250\n", - "13/13 - 0s - loss: 8.5560e-04 - mae: 0.0214 - mse: 8.5560e-04 - val_loss: 8.3750e-04 - val_mae: 0.0213 - val_mse: 8.3750e-04 - 115ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 8.5560e-04 - mae: 0.0214 - mse: 8.5560e-04 - val_loss: 8.3750e-04 - val_mae: 0.0213 - val_mse: 8.3750e-04 - 207ms/epoch - 16ms/step\n", "Epoch 72/250\n", - "13/13 - 0s - loss: 8.5576e-04 - mae: 0.0218 - mse: 8.5576e-04 - val_loss: 8.1156e-04 - val_mae: 0.0210 - val_mse: 8.1156e-04 - 211ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 8.5576e-04 - mae: 0.0218 - mse: 8.5576e-04 - val_loss: 8.1156e-04 - val_mae: 0.0210 - val_mse: 8.1156e-04 - 257ms/epoch - 20ms/step\n", "Epoch 73/250\n", - "13/13 - 0s - loss: 8.4688e-04 - mae: 0.0216 - mse: 8.4688e-04 - val_loss: 8.0221e-04 - val_mae: 0.0210 - val_mse: 8.0221e-04 - 216ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 8.4688e-04 - mae: 0.0216 - mse: 8.4688e-04 - val_loss: 8.0221e-04 - val_mae: 0.0210 - val_mse: 8.0221e-04 - 233ms/epoch - 18ms/step\n", "Epoch 74/250\n", - "13/13 - 0s - loss: 8.3636e-04 - mae: 0.0211 - mse: 8.3636e-04 - val_loss: 7.9384e-04 - val_mae: 0.0208 - val_mse: 7.9384e-04 - 219ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 8.3636e-04 - mae: 0.0211 - mse: 8.3636e-04 - val_loss: 7.9384e-04 - val_mae: 0.0208 - val_mse: 7.9384e-04 - 250ms/epoch - 19ms/step\n", "Epoch 75/250\n", - "13/13 - 0s - loss: 8.4758e-04 - mae: 0.0222 - mse: 8.4758e-04 - val_loss: 8.2932e-04 - val_mae: 0.0212 - val_mse: 8.2932e-04 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 8.4758e-04 - mae: 0.0222 - mse: 8.4758e-04 - val_loss: 8.2932e-04 - val_mae: 0.0212 - val_mse: 8.2932e-04 - 119ms/epoch - 9ms/step\n", "Epoch 76/250\n", - "13/13 - 0s - loss: 8.4142e-04 - mae: 0.0213 - mse: 8.4142e-04 - val_loss: 8.0552e-04 - val_mae: 0.0209 - val_mse: 8.0552e-04 - 118ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 8.4142e-04 - mae: 0.0213 - mse: 8.4142e-04 - val_loss: 8.0552e-04 - val_mae: 0.0209 - val_mse: 8.0552e-04 - 150ms/epoch - 12ms/step\n", "Epoch 77/250\n", - "13/13 - 0s - loss: 8.5035e-04 - mae: 0.0215 - mse: 8.5035e-04 - val_loss: 8.6014e-04 - val_mae: 0.0215 - val_mse: 8.6014e-04 - 115ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 8.5035e-04 - mae: 0.0215 - mse: 8.5035e-04 - val_loss: 8.6014e-04 - val_mae: 0.0215 - val_mse: 8.6014e-04 - 126ms/epoch - 10ms/step\n", "Epoch 78/250\n", - "13/13 - 0s - loss: 8.9015e-04 - mae: 0.0228 - mse: 8.9015e-04 - val_loss: 9.2548e-04 - val_mae: 0.0225 - val_mse: 9.2548e-04 - 108ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 8.9015e-04 - mae: 0.0228 - mse: 8.9015e-04 - val_loss: 9.2548e-04 - val_mae: 0.0225 - val_mse: 9.2548e-04 - 242ms/epoch - 19ms/step\n", "Epoch 79/250\n", - "13/13 - 0s - loss: 8.1577e-04 - mae: 0.0212 - mse: 8.1577e-04 - val_loss: 8.4703e-04 - val_mae: 0.0211 - val_mse: 8.4703e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 8.1577e-04 - mae: 0.0212 - mse: 8.1577e-04 - val_loss: 8.4703e-04 - val_mae: 0.0211 - val_mse: 8.4703e-04 - 165ms/epoch - 13ms/step\n", "Epoch 80/250\n", - "13/13 - 0s - loss: 8.0555e-04 - mae: 0.0211 - mse: 8.0555e-04 - val_loss: 8.5652e-04 - val_mae: 0.0214 - val_mse: 8.5652e-04 - 108ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 8.0555e-04 - mae: 0.0211 - mse: 8.0555e-04 - val_loss: 8.5652e-04 - val_mae: 0.0214 - val_mse: 8.5652e-04 - 131ms/epoch - 10ms/step\n", "Epoch 81/250\n", - "13/13 - 0s - loss: 8.3478e-04 - mae: 0.0219 - mse: 8.3478e-04 - val_loss: 9.1057e-04 - val_mae: 0.0222 - val_mse: 9.1057e-04 - 114ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 8.3478e-04 - mae: 0.0219 - mse: 8.3478e-04 - val_loss: 9.1057e-04 - val_mae: 0.0222 - val_mse: 9.1057e-04 - 166ms/epoch - 13ms/step\n", "Epoch 82/250\n", - "13/13 - 0s - loss: 8.2593e-04 - mae: 0.0217 - mse: 8.2593e-04 - val_loss: 8.1172e-04 - val_mae: 0.0209 - val_mse: 8.1172e-04 - 113ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 8.2593e-04 - mae: 0.0217 - mse: 8.2593e-04 - val_loss: 8.1172e-04 - val_mae: 0.0209 - val_mse: 8.1172e-04 - 143ms/epoch - 11ms/step\n", "Epoch 83/250\n", - "13/13 - 0s - loss: 8.2887e-04 - mae: 0.0213 - mse: 8.2887e-04 - val_loss: 8.2033e-04 - val_mae: 0.0211 - val_mse: 8.2033e-04 - 165ms/epoch - 13ms/step\n", + "13/13 - 0s - loss: 8.2887e-04 - mae: 0.0213 - mse: 8.2887e-04 - val_loss: 8.2033e-04 - val_mae: 0.0211 - val_mse: 8.2033e-04 - 115ms/epoch - 9ms/step\n", "Epoch 84/250\n", - "13/13 - 0s - loss: 8.1454e-04 - mae: 0.0219 - mse: 8.1454e-04 - val_loss: 8.1589e-04 - val_mae: 0.0211 - val_mse: 8.1589e-04 - 109ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 8.1454e-04 - mae: 0.0219 - mse: 8.1454e-04 - val_loss: 8.1589e-04 - val_mae: 0.0211 - val_mse: 8.1589e-04 - 148ms/epoch - 11ms/step\n", "Epoch 85/250\n", - "13/13 - 0s - loss: 8.0777e-04 - mae: 0.0212 - mse: 8.0777e-04 - val_loss: 7.8637e-04 - val_mae: 0.0208 - val_mse: 7.8637e-04 - 177ms/epoch - 14ms/step\n", + "13/13 - 0s - loss: 8.0777e-04 - mae: 0.0212 - mse: 8.0777e-04 - val_loss: 7.8637e-04 - val_mae: 0.0208 - val_mse: 7.8637e-04 - 282ms/epoch - 22ms/step\n", "Epoch 86/250\n", - "13/13 - 0s - loss: 7.8107e-04 - mae: 0.0213 - mse: 7.8107e-04 - val_loss: 7.8138e-04 - val_mae: 0.0212 - val_mse: 7.8138e-04 - 223ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 7.8107e-04 - mae: 0.0213 - mse: 7.8107e-04 - val_loss: 7.8138e-04 - val_mae: 0.0212 - val_mse: 7.8138e-04 - 246ms/epoch - 19ms/step\n", "Epoch 87/250\n", "13/13 - 0s - loss: 7.9729e-04 - mae: 0.0210 - mse: 7.9729e-04 - val_loss: 7.3667e-04 - val_mae: 0.0204 - val_mse: 7.3667e-04 - 237ms/epoch - 18ms/step\n", "Epoch 88/250\n", - "13/13 - 0s - loss: 7.5931e-04 - mae: 0.0205 - mse: 7.5931e-04 - val_loss: 7.5522e-04 - val_mae: 0.0210 - val_mse: 7.5522e-04 - 108ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 7.5931e-04 - mae: 0.0205 - mse: 7.5931e-04 - val_loss: 7.5522e-04 - val_mae: 0.0210 - val_mse: 7.5522e-04 - 208ms/epoch - 16ms/step\n", "Epoch 89/250\n", - "13/13 - 0s - loss: 7.6036e-04 - mae: 0.0211 - mse: 7.6036e-04 - val_loss: 7.5503e-04 - val_mae: 0.0207 - val_mse: 7.5503e-04 - 106ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 7.6036e-04 - mae: 0.0211 - mse: 7.6036e-04 - val_loss: 7.5503e-04 - val_mae: 0.0207 - val_mse: 7.5503e-04 - 193ms/epoch - 15ms/step\n", "Epoch 90/250\n", - "13/13 - 0s - loss: 7.6322e-04 - mae: 0.0204 - mse: 7.6322e-04 - val_loss: 7.7629e-04 - val_mae: 0.0203 - val_mse: 7.7629e-04 - 117ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 7.6322e-04 - mae: 0.0204 - mse: 7.6322e-04 - val_loss: 7.7629e-04 - val_mae: 0.0203 - val_mse: 7.7629e-04 - 168ms/epoch - 13ms/step\n", "Epoch 91/250\n", - "13/13 - 0s - loss: 7.5436e-04 - mae: 0.0208 - mse: 7.5436e-04 - val_loss: 7.4549e-04 - val_mae: 0.0210 - val_mse: 7.4549e-04 - 109ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 7.5436e-04 - mae: 0.0208 - mse: 7.5436e-04 - val_loss: 7.4549e-04 - val_mae: 0.0210 - val_mse: 7.4549e-04 - 156ms/epoch - 12ms/step\n", "Epoch 92/250\n", - "13/13 - 0s - loss: 7.8479e-04 - mae: 0.0208 - mse: 7.8479e-04 - val_loss: 8.0607e-04 - val_mae: 0.0208 - val_mse: 8.0607e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 7.8479e-04 - mae: 0.0208 - mse: 7.8479e-04 - val_loss: 8.0607e-04 - val_mae: 0.0208 - val_mse: 8.0607e-04 - 137ms/epoch - 11ms/step\n", "Epoch 93/250\n", - "13/13 - 0s - loss: 7.7194e-04 - mae: 0.0211 - mse: 7.7194e-04 - val_loss: 7.7994e-04 - val_mae: 0.0206 - val_mse: 7.7994e-04 - 109ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 7.7194e-04 - mae: 0.0211 - mse: 7.7194e-04 - val_loss: 7.7994e-04 - val_mae: 0.0206 - val_mse: 7.7994e-04 - 174ms/epoch - 13ms/step\n", "Epoch 94/250\n", - "13/13 - 0s - loss: 7.4802e-04 - mae: 0.0205 - mse: 7.4802e-04 - val_loss: 7.2386e-04 - val_mae: 0.0201 - val_mse: 7.2386e-04 - 190ms/epoch - 15ms/step\n", + "13/13 - 0s - loss: 7.4802e-04 - mae: 0.0205 - mse: 7.4802e-04 - val_loss: 7.2386e-04 - val_mae: 0.0201 - val_mse: 7.2386e-04 - 303ms/epoch - 23ms/step\n", "Epoch 95/250\n", - "13/13 - 0s - loss: 7.2616e-04 - mae: 0.0203 - mse: 7.2616e-04 - val_loss: 7.2728e-04 - val_mae: 0.0204 - val_mse: 7.2728e-04 - 121ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 7.2616e-04 - mae: 0.0203 - mse: 7.2616e-04 - val_loss: 7.2728e-04 - val_mae: 0.0204 - val_mse: 7.2728e-04 - 129ms/epoch - 10ms/step\n", "Epoch 96/250\n", - "13/13 - 0s - loss: 7.2310e-04 - mae: 0.0204 - mse: 7.2310e-04 - val_loss: 7.1349e-04 - val_mae: 0.0206 - val_mse: 7.1349e-04 - 219ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 7.2310e-04 - mae: 0.0204 - mse: 7.2310e-04 - val_loss: 7.1349e-04 - val_mae: 0.0206 - val_mse: 7.1349e-04 - 218ms/epoch - 17ms/step\n", "Epoch 97/250\n", - "13/13 - 0s - loss: 7.0905e-04 - mae: 0.0201 - mse: 7.0905e-04 - val_loss: 7.6242e-04 - val_mae: 0.0205 - val_mse: 7.6242e-04 - 117ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 7.0905e-04 - mae: 0.0201 - mse: 7.0905e-04 - val_loss: 7.6242e-04 - val_mae: 0.0205 - val_mse: 7.6242e-04 - 128ms/epoch - 10ms/step\n", "Epoch 98/250\n", - "13/13 - 0s - loss: 7.1839e-04 - mae: 0.0200 - mse: 7.1839e-04 - val_loss: 7.7098e-04 - val_mae: 0.0202 - val_mse: 7.7098e-04 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 7.1839e-04 - mae: 0.0200 - mse: 7.1839e-04 - val_loss: 7.7098e-04 - val_mae: 0.0202 - val_mse: 7.7098e-04 - 147ms/epoch - 11ms/step\n", "Epoch 99/250\n", - "13/13 - 0s - loss: 7.3924e-04 - mae: 0.0208 - mse: 7.3924e-04 - val_loss: 7.8554e-04 - val_mae: 0.0206 - val_mse: 7.8554e-04 - 114ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 7.3924e-04 - mae: 0.0208 - mse: 7.3924e-04 - val_loss: 7.8554e-04 - val_mae: 0.0206 - val_mse: 7.8554e-04 - 130ms/epoch - 10ms/step\n", "Epoch 100/250\n", - "13/13 - 0s - loss: 7.5556e-04 - mae: 0.0209 - mse: 7.5556e-04 - val_loss: 8.6021e-04 - val_mae: 0.0215 - val_mse: 8.6021e-04 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 7.5556e-04 - mae: 0.0209 - mse: 7.5556e-04 - val_loss: 8.6021e-04 - val_mae: 0.0215 - val_mse: 8.6021e-04 - 174ms/epoch - 13ms/step\n", "Epoch 101/250\n", - "13/13 - 0s - loss: 7.9288e-04 - mae: 0.0213 - mse: 7.9288e-04 - val_loss: 7.2968e-04 - val_mae: 0.0203 - val_mse: 7.2968e-04 - 110ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 7.9288e-04 - mae: 0.0213 - mse: 7.9288e-04 - val_loss: 7.2968e-04 - val_mae: 0.0203 - val_mse: 7.2968e-04 - 125ms/epoch - 10ms/step\n", "Epoch 102/250\n", - "13/13 - 0s - loss: 7.1861e-04 - mae: 0.0204 - mse: 7.1861e-04 - val_loss: 7.0941e-04 - val_mae: 0.0207 - val_mse: 7.0941e-04 - 227ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 7.1861e-04 - mae: 0.0204 - mse: 7.1861e-04 - val_loss: 7.0941e-04 - val_mae: 0.0207 - val_mse: 7.0941e-04 - 260ms/epoch - 20ms/step\n", "Epoch 103/250\n", - "13/13 - 0s - loss: 7.5092e-04 - mae: 0.0208 - mse: 7.5092e-04 - val_loss: 6.8788e-04 - val_mae: 0.0198 - val_mse: 6.8788e-04 - 218ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 7.5092e-04 - mae: 0.0208 - mse: 7.5092e-04 - val_loss: 6.8788e-04 - val_mae: 0.0198 - val_mse: 6.8788e-04 - 275ms/epoch - 21ms/step\n", "Epoch 104/250\n", - "13/13 - 0s - loss: 7.0460e-04 - mae: 0.0200 - mse: 7.0460e-04 - val_loss: 7.2570e-04 - val_mae: 0.0200 - val_mse: 7.2570e-04 - 115ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 7.0460e-04 - mae: 0.0200 - mse: 7.0460e-04 - val_loss: 7.2570e-04 - val_mae: 0.0200 - val_mse: 7.2570e-04 - 125ms/epoch - 10ms/step\n", "Epoch 105/250\n", - "13/13 - 0s - loss: 6.9255e-04 - mae: 0.0202 - mse: 6.9255e-04 - val_loss: 6.7411e-04 - val_mae: 0.0199 - val_mse: 6.7411e-04 - 193ms/epoch - 15ms/step\n", + "13/13 - 0s - loss: 6.9255e-04 - mae: 0.0202 - mse: 6.9255e-04 - val_loss: 6.7411e-04 - val_mae: 0.0199 - val_mse: 6.7411e-04 - 275ms/epoch - 21ms/step\n", "Epoch 106/250\n", - "13/13 - 0s - loss: 6.8175e-04 - mae: 0.0196 - mse: 6.8175e-04 - val_loss: 6.7593e-04 - val_mae: 0.0196 - val_mse: 6.7593e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 6.8175e-04 - mae: 0.0196 - mse: 6.8175e-04 - val_loss: 6.7593e-04 - val_mae: 0.0196 - val_mse: 6.7593e-04 - 157ms/epoch - 12ms/step\n", "Epoch 107/250\n", - "13/13 - 0s - loss: 6.7018e-04 - mae: 0.0196 - mse: 6.7018e-04 - val_loss: 6.8702e-04 - val_mae: 0.0196 - val_mse: 6.8702e-04 - 110ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 6.7018e-04 - mae: 0.0196 - mse: 6.7018e-04 - val_loss: 6.8702e-04 - val_mae: 0.0196 - val_mse: 6.8702e-04 - 183ms/epoch - 14ms/step\n", "Epoch 108/250\n", - "13/13 - 0s - loss: 6.7955e-04 - mae: 0.0198 - mse: 6.7955e-04 - val_loss: 7.6778e-04 - val_mae: 0.0204 - val_mse: 7.6778e-04 - 107ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 6.7955e-04 - mae: 0.0198 - mse: 6.7955e-04 - val_loss: 7.6778e-04 - val_mae: 0.0204 - val_mse: 7.6778e-04 - 192ms/epoch - 15ms/step\n", "Epoch 109/250\n", - "13/13 - 0s - loss: 6.8953e-04 - mae: 0.0198 - mse: 6.8953e-04 - val_loss: 6.7251e-04 - val_mae: 0.0195 - val_mse: 6.7251e-04 - 192ms/epoch - 15ms/step\n", + "13/13 - 1s - loss: 6.8953e-04 - mae: 0.0198 - mse: 6.8953e-04 - val_loss: 6.7251e-04 - val_mae: 0.0195 - val_mse: 6.7251e-04 - 516ms/epoch - 40ms/step\n", "Epoch 110/250\n", - "13/13 - 0s - loss: 6.6819e-04 - mae: 0.0197 - mse: 6.6819e-04 - val_loss: 6.8310e-04 - val_mae: 0.0197 - val_mse: 6.8310e-04 - 102ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 6.6819e-04 - mae: 0.0197 - mse: 6.6819e-04 - val_loss: 6.8310e-04 - val_mae: 0.0197 - val_mse: 6.8310e-04 - 146ms/epoch - 11ms/step\n", "Epoch 111/250\n", - "13/13 - 0s - loss: 6.7136e-04 - mae: 0.0197 - mse: 6.7136e-04 - val_loss: 6.5858e-04 - val_mae: 0.0199 - val_mse: 6.5858e-04 - 224ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 6.7136e-04 - mae: 0.0197 - mse: 6.7136e-04 - val_loss: 6.5858e-04 - val_mae: 0.0199 - val_mse: 6.5858e-04 - 208ms/epoch - 16ms/step\n", "Epoch 112/250\n", - "13/13 - 0s - loss: 6.5784e-04 - mae: 0.0195 - mse: 6.5784e-04 - val_loss: 6.5838e-04 - val_mae: 0.0196 - val_mse: 6.5838e-04 - 234ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 6.5784e-04 - mae: 0.0195 - mse: 6.5784e-04 - val_loss: 6.5838e-04 - val_mae: 0.0196 - val_mse: 6.5838e-04 - 215ms/epoch - 17ms/step\n", "Epoch 113/250\n", - "13/13 - 0s - loss: 6.6861e-04 - mae: 0.0198 - mse: 6.6861e-04 - val_loss: 6.9871e-04 - val_mae: 0.0196 - val_mse: 6.9871e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 6.6861e-04 - mae: 0.0198 - mse: 6.6861e-04 - val_loss: 6.9871e-04 - val_mae: 0.0196 - val_mse: 6.9871e-04 - 149ms/epoch - 11ms/step\n", "Epoch 114/250\n", - "13/13 - 0s - loss: 6.6345e-04 - mae: 0.0196 - mse: 6.6345e-04 - val_loss: 6.8190e-04 - val_mae: 0.0196 - val_mse: 6.8190e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 6.6345e-04 - mae: 0.0196 - mse: 6.6345e-04 - val_loss: 6.8190e-04 - val_mae: 0.0196 - val_mse: 6.8190e-04 - 141ms/epoch - 11ms/step\n", "Epoch 115/250\n", - "13/13 - 0s - loss: 6.4121e-04 - mae: 0.0193 - mse: 6.4121e-04 - val_loss: 6.6493e-04 - val_mae: 0.0196 - val_mse: 6.6493e-04 - 120ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 6.4121e-04 - mae: 0.0193 - mse: 6.4121e-04 - val_loss: 6.6493e-04 - val_mae: 0.0196 - val_mse: 6.6493e-04 - 166ms/epoch - 13ms/step\n", "Epoch 116/250\n", "13/13 - 0s - loss: 6.5036e-04 - mae: 0.0194 - mse: 6.5036e-04 - val_loss: 6.5858e-04 - val_mae: 0.0191 - val_mse: 6.5858e-04 - 107ms/epoch - 8ms/step\n", "Epoch 117/250\n", - "13/13 - 0s - loss: 6.4983e-04 - mae: 0.0194 - mse: 6.4983e-04 - val_loss: 7.0443e-04 - val_mae: 0.0198 - val_mse: 7.0443e-04 - 115ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 6.4983e-04 - mae: 0.0194 - mse: 6.4983e-04 - val_loss: 7.0443e-04 - val_mae: 0.0198 - val_mse: 7.0443e-04 - 109ms/epoch - 8ms/step\n", "Epoch 118/250\n", - "13/13 - 0s - loss: 6.4994e-04 - mae: 0.0195 - mse: 6.4994e-04 - val_loss: 6.3181e-04 - val_mae: 0.0193 - val_mse: 6.3181e-04 - 216ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 6.4994e-04 - mae: 0.0195 - mse: 6.4994e-04 - val_loss: 6.3181e-04 - val_mae: 0.0193 - val_mse: 6.3181e-04 - 296ms/epoch - 23ms/step\n", "Epoch 119/250\n", - "13/13 - 0s - loss: 6.6252e-04 - mae: 0.0199 - mse: 6.6252e-04 - val_loss: 6.3527e-04 - val_mae: 0.0191 - val_mse: 6.3527e-04 - 115ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 6.6252e-04 - mae: 0.0199 - mse: 6.6252e-04 - val_loss: 6.3527e-04 - val_mae: 0.0191 - val_mse: 6.3527e-04 - 165ms/epoch - 13ms/step\n", "Epoch 120/250\n", - "13/13 - 0s - loss: 6.4578e-04 - mae: 0.0193 - mse: 6.4578e-04 - val_loss: 6.3127e-04 - val_mae: 0.0189 - val_mse: 6.3127e-04 - 251ms/epoch - 19ms/step\n", + "13/13 - 0s - loss: 6.4578e-04 - mae: 0.0193 - mse: 6.4578e-04 - val_loss: 6.3127e-04 - val_mae: 0.0189 - val_mse: 6.3127e-04 - 190ms/epoch - 15ms/step\n", "Epoch 121/250\n", - "13/13 - 0s - loss: 6.1375e-04 - mae: 0.0191 - mse: 6.1375e-04 - val_loss: 6.5351e-04 - val_mae: 0.0192 - val_mse: 6.5351e-04 - 107ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 6.1375e-04 - mae: 0.0191 - mse: 6.1375e-04 - val_loss: 6.5351e-04 - val_mae: 0.0192 - val_mse: 6.5351e-04 - 125ms/epoch - 10ms/step\n", "Epoch 122/250\n", - "13/13 - 0s - loss: 6.4650e-04 - mae: 0.0196 - mse: 6.4650e-04 - val_loss: 8.0733e-04 - val_mae: 0.0210 - val_mse: 8.0733e-04 - 120ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 6.4650e-04 - mae: 0.0196 - mse: 6.4650e-04 - val_loss: 8.0733e-04 - val_mae: 0.0210 - val_mse: 8.0733e-04 - 142ms/epoch - 11ms/step\n", "Epoch 123/250\n", - "13/13 - 0s - loss: 6.5887e-04 - mae: 0.0198 - mse: 6.5887e-04 - val_loss: 6.2666e-04 - val_mae: 0.0191 - val_mse: 6.2666e-04 - 227ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 6.5887e-04 - mae: 0.0198 - mse: 6.5887e-04 - val_loss: 6.2666e-04 - val_mae: 0.0191 - val_mse: 6.2666e-04 - 278ms/epoch - 21ms/step\n", "Epoch 124/250\n", - "13/13 - 0s - loss: 6.1387e-04 - mae: 0.0189 - mse: 6.1387e-04 - val_loss: 6.1020e-04 - val_mae: 0.0188 - val_mse: 6.1020e-04 - 210ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 6.1387e-04 - mae: 0.0189 - mse: 6.1387e-04 - val_loss: 6.1020e-04 - val_mae: 0.0188 - val_mse: 6.1020e-04 - 246ms/epoch - 19ms/step\n", "Epoch 125/250\n", - "13/13 - 0s - loss: 6.1348e-04 - mae: 0.0191 - mse: 6.1348e-04 - val_loss: 6.1093e-04 - val_mae: 0.0193 - val_mse: 6.1093e-04 - 108ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 6.1348e-04 - mae: 0.0191 - mse: 6.1348e-04 - val_loss: 6.1093e-04 - val_mae: 0.0193 - val_mse: 6.1093e-04 - 135ms/epoch - 10ms/step\n", "Epoch 126/250\n", - "13/13 - 0s - loss: 6.1374e-04 - mae: 0.0189 - mse: 6.1374e-04 - val_loss: 6.1062e-04 - val_mae: 0.0188 - val_mse: 6.1062e-04 - 116ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 6.1374e-04 - mae: 0.0189 - mse: 6.1374e-04 - val_loss: 6.1062e-04 - val_mae: 0.0188 - val_mse: 6.1062e-04 - 174ms/epoch - 13ms/step\n", "Epoch 127/250\n", - "13/13 - 0s - loss: 6.1279e-04 - mae: 0.0190 - mse: 6.1279e-04 - val_loss: 6.4391e-04 - val_mae: 0.0190 - val_mse: 6.4391e-04 - 107ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 6.1279e-04 - mae: 0.0190 - mse: 6.1279e-04 - val_loss: 6.4391e-04 - val_mae: 0.0190 - val_mse: 6.4391e-04 - 142ms/epoch - 11ms/step\n", "Epoch 128/250\n", - "13/13 - 0s - loss: 6.0951e-04 - mae: 0.0189 - mse: 6.0951e-04 - val_loss: 5.9592e-04 - val_mae: 0.0188 - val_mse: 5.9592e-04 - 228ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 6.0951e-04 - mae: 0.0189 - mse: 6.0951e-04 - val_loss: 5.9592e-04 - val_mae: 0.0188 - val_mse: 5.9592e-04 - 249ms/epoch - 19ms/step\n", "Epoch 129/250\n", - "13/13 - 0s - loss: 6.2194e-04 - mae: 0.0192 - mse: 6.2194e-04 - val_loss: 5.9344e-04 - val_mae: 0.0188 - val_mse: 5.9344e-04 - 180ms/epoch - 14ms/step\n", + "13/13 - 0s - loss: 6.2194e-04 - mae: 0.0192 - mse: 6.2194e-04 - val_loss: 5.9344e-04 - val_mae: 0.0188 - val_mse: 5.9344e-04 - 279ms/epoch - 21ms/step\n", "Epoch 130/250\n", - "13/13 - 0s - loss: 6.1795e-04 - mae: 0.0191 - mse: 6.1795e-04 - val_loss: 5.8880e-04 - val_mae: 0.0188 - val_mse: 5.8880e-04 - 218ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 6.1795e-04 - mae: 0.0191 - mse: 6.1795e-04 - val_loss: 5.8880e-04 - val_mae: 0.0188 - val_mse: 5.8880e-04 - 356ms/epoch - 27ms/step\n", "Epoch 131/250\n", - "13/13 - 0s - loss: 6.6297e-04 - mae: 0.0199 - mse: 6.6297e-04 - val_loss: 7.2306e-04 - val_mae: 0.0197 - val_mse: 7.2306e-04 - 117ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 6.6297e-04 - mae: 0.0199 - mse: 6.6297e-04 - val_loss: 7.2306e-04 - val_mae: 0.0197 - val_mse: 7.2306e-04 - 151ms/epoch - 12ms/step\n", "Epoch 132/250\n", - "13/13 - 0s - loss: 5.8788e-04 - mae: 0.0189 - mse: 5.8788e-04 - val_loss: 6.0686e-04 - val_mae: 0.0189 - val_mse: 6.0686e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 5.8788e-04 - mae: 0.0189 - mse: 5.8788e-04 - val_loss: 6.0686e-04 - val_mae: 0.0189 - val_mse: 6.0686e-04 - 102ms/epoch - 8ms/step\n", "Epoch 133/250\n", - "13/13 - 0s - loss: 5.7425e-04 - mae: 0.0184 - mse: 5.7425e-04 - val_loss: 5.7895e-04 - val_mae: 0.0183 - val_mse: 5.7895e-04 - 218ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 5.7425e-04 - mae: 0.0184 - mse: 5.7425e-04 - val_loss: 5.7895e-04 - val_mae: 0.0183 - val_mse: 5.7895e-04 - 239ms/epoch - 18ms/step\n", "Epoch 134/250\n", - "13/13 - 0s - loss: 5.8783e-04 - mae: 0.0186 - mse: 5.8783e-04 - val_loss: 5.7846e-04 - val_mae: 0.0188 - val_mse: 5.7846e-04 - 230ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 5.8783e-04 - mae: 0.0186 - mse: 5.8783e-04 - val_loss: 5.7846e-04 - val_mae: 0.0188 - val_mse: 5.7846e-04 - 285ms/epoch - 22ms/step\n", "Epoch 135/250\n", - "13/13 - 0s - loss: 5.8541e-04 - mae: 0.0188 - mse: 5.8541e-04 - val_loss: 6.7887e-04 - val_mae: 0.0191 - val_mse: 6.7887e-04 - 108ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 5.8541e-04 - mae: 0.0188 - mse: 5.8541e-04 - val_loss: 6.7887e-04 - val_mae: 0.0191 - val_mse: 6.7887e-04 - 178ms/epoch - 14ms/step\n", "Epoch 136/250\n", - "13/13 - 0s - loss: 5.9158e-04 - mae: 0.0185 - mse: 5.9158e-04 - val_loss: 5.9231e-04 - val_mae: 0.0188 - val_mse: 5.9231e-04 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 5.9158e-04 - mae: 0.0185 - mse: 5.9158e-04 - val_loss: 5.9231e-04 - val_mae: 0.0188 - val_mse: 5.9231e-04 - 113ms/epoch - 9ms/step\n", "Epoch 137/250\n", - "13/13 - 0s - loss: 5.9616e-04 - mae: 0.0192 - mse: 5.9616e-04 - val_loss: 7.0218e-04 - val_mae: 0.0212 - val_mse: 7.0218e-04 - 102ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 5.9616e-04 - mae: 0.0192 - mse: 5.9616e-04 - val_loss: 7.0218e-04 - val_mae: 0.0212 - val_mse: 7.0218e-04 - 138ms/epoch - 11ms/step\n", "Epoch 138/250\n", - "13/13 - 0s - loss: 6.2132e-04 - mae: 0.0190 - mse: 6.2132e-04 - val_loss: 6.3436e-04 - val_mae: 0.0186 - val_mse: 6.3436e-04 - 105ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 6.2132e-04 - mae: 0.0190 - mse: 6.2132e-04 - val_loss: 6.3436e-04 - val_mae: 0.0186 - val_mse: 6.3436e-04 - 144ms/epoch - 11ms/step\n", "Epoch 139/250\n", - "13/13 - 0s - loss: 5.8416e-04 - mae: 0.0189 - mse: 5.8416e-04 - val_loss: 5.7793e-04 - val_mae: 0.0184 - val_mse: 5.7793e-04 - 215ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 5.8416e-04 - mae: 0.0189 - mse: 5.8416e-04 - val_loss: 5.7793e-04 - val_mae: 0.0184 - val_mse: 5.7793e-04 - 279ms/epoch - 21ms/step\n", "Epoch 140/250\n", - "13/13 - 0s - loss: 6.5695e-04 - mae: 0.0195 - mse: 6.5695e-04 - val_loss: 5.8062e-04 - val_mae: 0.0189 - val_mse: 5.8062e-04 - 109ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 6.5695e-04 - mae: 0.0195 - mse: 6.5695e-04 - val_loss: 5.8062e-04 - val_mae: 0.0189 - val_mse: 5.8062e-04 - 174ms/epoch - 13ms/step\n", "Epoch 141/250\n", - "13/13 - 0s - loss: 6.4168e-04 - mae: 0.0200 - mse: 6.4168e-04 - val_loss: 6.9879e-04 - val_mae: 0.0196 - val_mse: 6.9879e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 6.4168e-04 - mae: 0.0200 - mse: 6.4168e-04 - val_loss: 6.9879e-04 - val_mae: 0.0196 - val_mse: 6.9879e-04 - 118ms/epoch - 9ms/step\n", "Epoch 142/250\n", - "13/13 - 0s - loss: 6.5517e-04 - mae: 0.0198 - mse: 6.5517e-04 - val_loss: 6.3928e-04 - val_mae: 0.0193 - val_mse: 6.3928e-04 - 118ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 6.5517e-04 - mae: 0.0198 - mse: 6.5517e-04 - val_loss: 6.3928e-04 - val_mae: 0.0193 - val_mse: 6.3928e-04 - 120ms/epoch - 9ms/step\n", "Epoch 143/250\n", - "13/13 - 0s - loss: 5.8456e-04 - mae: 0.0190 - mse: 5.8456e-04 - val_loss: 5.4596e-04 - val_mae: 0.0181 - val_mse: 5.4596e-04 - 225ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 5.8456e-04 - mae: 0.0190 - mse: 5.8456e-04 - val_loss: 5.4596e-04 - val_mae: 0.0181 - val_mse: 5.4596e-04 - 304ms/epoch - 23ms/step\n", "Epoch 144/250\n", - "13/13 - 0s - loss: 5.9458e-04 - mae: 0.0186 - mse: 5.9458e-04 - val_loss: 5.8598e-04 - val_mae: 0.0181 - val_mse: 5.8598e-04 - 107ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 5.9458e-04 - mae: 0.0186 - mse: 5.9458e-04 - val_loss: 5.8598e-04 - val_mae: 0.0181 - val_mse: 5.8598e-04 - 178ms/epoch - 14ms/step\n", "Epoch 145/250\n", - "13/13 - 0s - loss: 5.6787e-04 - mae: 0.0186 - mse: 5.6787e-04 - val_loss: 5.6263e-04 - val_mae: 0.0186 - val_mse: 5.6263e-04 - 124ms/epoch - 10ms/step\n", + "13/13 - 0s - loss: 5.6787e-04 - mae: 0.0186 - mse: 5.6787e-04 - val_loss: 5.6263e-04 - val_mae: 0.0186 - val_mse: 5.6263e-04 - 131ms/epoch - 10ms/step\n", "Epoch 146/250\n", - "13/13 - 0s - loss: 5.3545e-04 - mae: 0.0178 - mse: 5.3545e-04 - val_loss: 5.3802e-04 - val_mae: 0.0179 - val_mse: 5.3802e-04 - 186ms/epoch - 14ms/step\n", + "13/13 - 0s - loss: 5.3545e-04 - mae: 0.0178 - mse: 5.3545e-04 - val_loss: 5.3802e-04 - val_mae: 0.0179 - val_mse: 5.3802e-04 - 396ms/epoch - 30ms/step\n", "Epoch 147/250\n", - "13/13 - 0s - loss: 5.2310e-04 - mae: 0.0177 - mse: 5.2310e-04 - val_loss: 5.4103e-04 - val_mae: 0.0179 - val_mse: 5.4103e-04 - 102ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 5.2310e-04 - mae: 0.0177 - mse: 5.2310e-04 - val_loss: 5.4103e-04 - val_mae: 0.0179 - val_mse: 5.4103e-04 - 151ms/epoch - 12ms/step\n", "Epoch 148/250\n", - "13/13 - 0s - loss: 5.2826e-04 - mae: 0.0176 - mse: 5.2826e-04 - val_loss: 5.9310e-04 - val_mae: 0.0181 - val_mse: 5.9310e-04 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 5.2826e-04 - mae: 0.0176 - mse: 5.2826e-04 - val_loss: 5.9310e-04 - val_mae: 0.0181 - val_mse: 5.9310e-04 - 155ms/epoch - 12ms/step\n", "Epoch 149/250\n", - "13/13 - 0s - loss: 5.3295e-04 - mae: 0.0179 - mse: 5.3295e-04 - val_loss: 5.4002e-04 - val_mae: 0.0176 - val_mse: 5.4002e-04 - 110ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 5.3295e-04 - mae: 0.0179 - mse: 5.3295e-04 - val_loss: 5.4002e-04 - val_mae: 0.0176 - val_mse: 5.4002e-04 - 120ms/epoch - 9ms/step\n", "Epoch 150/250\n", - "13/13 - 0s - loss: 5.1491e-04 - mae: 0.0174 - mse: 5.1491e-04 - val_loss: 5.9602e-04 - val_mae: 0.0179 - val_mse: 5.9602e-04 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 5.1491e-04 - mae: 0.0174 - mse: 5.1491e-04 - val_loss: 5.9602e-04 - val_mae: 0.0179 - val_mse: 5.9602e-04 - 137ms/epoch - 11ms/step\n", "Epoch 151/250\n", - "13/13 - 0s - loss: 5.2334e-04 - mae: 0.0179 - mse: 5.2334e-04 - val_loss: 5.2811e-04 - val_mae: 0.0178 - val_mse: 5.2811e-04 - 222ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 5.2334e-04 - mae: 0.0179 - mse: 5.2334e-04 - val_loss: 5.2811e-04 - val_mae: 0.0178 - val_mse: 5.2811e-04 - 315ms/epoch - 24ms/step\n", "Epoch 152/250\n", - "13/13 - 0s - loss: 5.2768e-04 - mae: 0.0178 - mse: 5.2768e-04 - val_loss: 5.5139e-04 - val_mae: 0.0184 - val_mse: 5.5139e-04 - 118ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 5.2768e-04 - mae: 0.0178 - mse: 5.2768e-04 - val_loss: 5.5139e-04 - val_mae: 0.0184 - val_mse: 5.5139e-04 - 198ms/epoch - 15ms/step\n", "Epoch 153/250\n", - "13/13 - 0s - loss: 5.2962e-04 - mae: 0.0179 - mse: 5.2962e-04 - val_loss: 5.7462e-04 - val_mae: 0.0178 - val_mse: 5.7462e-04 - 99ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 5.2962e-04 - mae: 0.0179 - mse: 5.2962e-04 - val_loss: 5.7462e-04 - val_mae: 0.0178 - val_mse: 5.7462e-04 - 129ms/epoch - 10ms/step\n", "Epoch 154/250\n", - "13/13 - 0s - loss: 5.0260e-04 - mae: 0.0173 - mse: 5.0260e-04 - val_loss: 5.3387e-04 - val_mae: 0.0181 - val_mse: 5.3387e-04 - 102ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 5.0260e-04 - mae: 0.0173 - mse: 5.0260e-04 - val_loss: 5.3387e-04 - val_mae: 0.0181 - val_mse: 5.3387e-04 - 131ms/epoch - 10ms/step\n", "Epoch 155/250\n", - "13/13 - 0s - loss: 5.0501e-04 - mae: 0.0175 - mse: 5.0501e-04 - val_loss: 5.0751e-04 - val_mae: 0.0172 - val_mse: 5.0751e-04 - 211ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 5.0501e-04 - mae: 0.0175 - mse: 5.0501e-04 - val_loss: 5.0751e-04 - val_mae: 0.0172 - val_mse: 5.0751e-04 - 267ms/epoch - 21ms/step\n", "Epoch 156/250\n", - "13/13 - 0s - loss: 5.0518e-04 - mae: 0.0173 - mse: 5.0518e-04 - val_loss: 5.5553e-04 - val_mae: 0.0174 - val_mse: 5.5553e-04 - 189ms/epoch - 15ms/step\n", + "13/13 - 0s - loss: 5.0518e-04 - mae: 0.0173 - mse: 5.0518e-04 - val_loss: 5.5553e-04 - val_mae: 0.0174 - val_mse: 5.5553e-04 - 182ms/epoch - 14ms/step\n", "Epoch 157/250\n", - "13/13 - 0s - loss: 5.0064e-04 - mae: 0.0172 - mse: 5.0064e-04 - val_loss: 5.1205e-04 - val_mae: 0.0172 - val_mse: 5.1205e-04 - 108ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 5.0064e-04 - mae: 0.0172 - mse: 5.0064e-04 - val_loss: 5.1205e-04 - val_mae: 0.0172 - val_mse: 5.1205e-04 - 160ms/epoch - 12ms/step\n", "Epoch 158/250\n", - "13/13 - 0s - loss: 4.9541e-04 - mae: 0.0172 - mse: 4.9541e-04 - val_loss: 5.0799e-04 - val_mae: 0.0172 - val_mse: 5.0799e-04 - 106ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.9541e-04 - mae: 0.0172 - mse: 4.9541e-04 - val_loss: 5.0799e-04 - val_mae: 0.0172 - val_mse: 5.0799e-04 - 131ms/epoch - 10ms/step\n", "Epoch 159/250\n", - "13/13 - 0s - loss: 5.4153e-04 - mae: 0.0182 - mse: 5.4153e-04 - val_loss: 5.2077e-04 - val_mae: 0.0171 - val_mse: 5.2077e-04 - 106ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 5.4153e-04 - mae: 0.0182 - mse: 5.4153e-04 - val_loss: 5.2077e-04 - val_mae: 0.0171 - val_mse: 5.2077e-04 - 172ms/epoch - 13ms/step\n", "Epoch 160/250\n", - "13/13 - 0s - loss: 4.8280e-04 - mae: 0.0170 - mse: 4.8280e-04 - val_loss: 5.1410e-04 - val_mae: 0.0168 - val_mse: 5.1410e-04 - 114ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.8280e-04 - mae: 0.0170 - mse: 4.8280e-04 - val_loss: 5.1410e-04 - val_mae: 0.0168 - val_mse: 5.1410e-04 - 164ms/epoch - 13ms/step\n", "Epoch 161/250\n", - "13/13 - 0s - loss: 4.8993e-04 - mae: 0.0171 - mse: 4.8993e-04 - val_loss: 5.1744e-04 - val_mae: 0.0171 - val_mse: 5.1744e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.8993e-04 - mae: 0.0171 - mse: 4.8993e-04 - val_loss: 5.1744e-04 - val_mae: 0.0171 - val_mse: 5.1744e-04 - 169ms/epoch - 13ms/step\n", "Epoch 162/250\n", - "13/13 - 0s - loss: 4.8044e-04 - mae: 0.0169 - mse: 4.8044e-04 - val_loss: 5.1099e-04 - val_mae: 0.0168 - val_mse: 5.1099e-04 - 103ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.8044e-04 - mae: 0.0169 - mse: 4.8044e-04 - val_loss: 5.1099e-04 - val_mae: 0.0168 - val_mse: 5.1099e-04 - 188ms/epoch - 14ms/step\n", "Epoch 163/250\n", - "13/13 - 0s - loss: 4.9657e-04 - mae: 0.0171 - mse: 4.9657e-04 - val_loss: 4.9877e-04 - val_mae: 0.0171 - val_mse: 4.9877e-04 - 227ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 4.9657e-04 - mae: 0.0171 - mse: 4.9657e-04 - val_loss: 4.9877e-04 - val_mae: 0.0171 - val_mse: 4.9877e-04 - 258ms/epoch - 20ms/step\n", "Epoch 164/250\n", - "13/13 - 0s - loss: 4.8858e-04 - mae: 0.0170 - mse: 4.8858e-04 - val_loss: 5.0099e-04 - val_mae: 0.0169 - val_mse: 5.0099e-04 - 99ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.8858e-04 - mae: 0.0170 - mse: 4.8858e-04 - val_loss: 5.0099e-04 - val_mae: 0.0169 - val_mse: 5.0099e-04 - 150ms/epoch - 12ms/step\n", "Epoch 165/250\n", - "13/13 - 0s - loss: 4.7747e-04 - mae: 0.0170 - mse: 4.7747e-04 - val_loss: 5.8449e-04 - val_mae: 0.0174 - val_mse: 5.8449e-04 - 97ms/epoch - 7ms/step\n", + "13/13 - 0s - loss: 4.7747e-04 - mae: 0.0170 - mse: 4.7747e-04 - val_loss: 5.8449e-04 - val_mae: 0.0174 - val_mse: 5.8449e-04 - 158ms/epoch - 12ms/step\n", "Epoch 166/250\n", - "13/13 - 0s - loss: 4.9897e-04 - mae: 0.0171 - mse: 4.9897e-04 - val_loss: 4.9512e-04 - val_mae: 0.0173 - val_mse: 4.9512e-04 - 174ms/epoch - 13ms/step\n", + "13/13 - 0s - loss: 4.9897e-04 - mae: 0.0171 - mse: 4.9897e-04 - val_loss: 4.9512e-04 - val_mae: 0.0173 - val_mse: 4.9512e-04 - 265ms/epoch - 20ms/step\n", "Epoch 167/250\n", - "13/13 - 0s - loss: 4.8695e-04 - mae: 0.0173 - mse: 4.8695e-04 - val_loss: 5.0306e-04 - val_mae: 0.0165 - val_mse: 5.0306e-04 - 97ms/epoch - 7ms/step\n", + "13/13 - 0s - loss: 4.8695e-04 - mae: 0.0173 - mse: 4.8695e-04 - val_loss: 5.0306e-04 - val_mae: 0.0165 - val_mse: 5.0306e-04 - 151ms/epoch - 12ms/step\n", "Epoch 168/250\n", - "13/13 - 0s - loss: 4.7948e-04 - mae: 0.0171 - mse: 4.7948e-04 - val_loss: 6.8895e-04 - val_mae: 0.0193 - val_mse: 6.8895e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.7948e-04 - mae: 0.0171 - mse: 4.7948e-04 - val_loss: 6.8895e-04 - val_mae: 0.0193 - val_mse: 6.8895e-04 - 128ms/epoch - 10ms/step\n", "Epoch 169/250\n", - "13/13 - 0s - loss: 4.8055e-04 - mae: 0.0168 - mse: 4.8055e-04 - val_loss: 4.9053e-04 - val_mae: 0.0171 - val_mse: 4.9053e-04 - 215ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 4.8055e-04 - mae: 0.0168 - mse: 4.8055e-04 - val_loss: 4.9053e-04 - val_mae: 0.0171 - val_mse: 4.9053e-04 - 234ms/epoch - 18ms/step\n", "Epoch 170/250\n", - "13/13 - 0s - loss: 4.5980e-04 - mae: 0.0168 - mse: 4.5980e-04 - val_loss: 5.2267e-04 - val_mae: 0.0170 - val_mse: 5.2267e-04 - 113ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.5980e-04 - mae: 0.0168 - mse: 4.5980e-04 - val_loss: 5.2267e-04 - val_mae: 0.0170 - val_mse: 5.2267e-04 - 167ms/epoch - 13ms/step\n", "Epoch 171/250\n", - "13/13 - 0s - loss: 4.6495e-04 - mae: 0.0168 - mse: 4.6495e-04 - val_loss: 4.6718e-04 - val_mae: 0.0165 - val_mse: 4.6718e-04 - 216ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 4.6495e-04 - mae: 0.0168 - mse: 4.6495e-04 - val_loss: 4.6718e-04 - val_mae: 0.0165 - val_mse: 4.6718e-04 - 243ms/epoch - 19ms/step\n", "Epoch 172/250\n", - "13/13 - 0s - loss: 4.6046e-04 - mae: 0.0168 - mse: 4.6046e-04 - val_loss: 4.6731e-04 - val_mae: 0.0166 - val_mse: 4.6731e-04 - 98ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.6046e-04 - mae: 0.0168 - mse: 4.6046e-04 - val_loss: 4.6731e-04 - val_mae: 0.0166 - val_mse: 4.6731e-04 - 148ms/epoch - 11ms/step\n", "Epoch 173/250\n", - "13/13 - 0s - loss: 4.6993e-04 - mae: 0.0168 - mse: 4.6993e-04 - val_loss: 4.8190e-04 - val_mae: 0.0167 - val_mse: 4.8190e-04 - 101ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.6993e-04 - mae: 0.0168 - mse: 4.6993e-04 - val_loss: 4.8190e-04 - val_mae: 0.0167 - val_mse: 4.8190e-04 - 143ms/epoch - 11ms/step\n", "Epoch 174/250\n", - "13/13 - 0s - loss: 4.8411e-04 - mae: 0.0172 - mse: 4.8411e-04 - val_loss: 5.0800e-04 - val_mae: 0.0164 - val_mse: 5.0800e-04 - 99ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.8411e-04 - mae: 0.0172 - mse: 4.8411e-04 - val_loss: 5.0800e-04 - val_mae: 0.0164 - val_mse: 5.0800e-04 - 131ms/epoch - 10ms/step\n", "Epoch 175/250\n", - "13/13 - 0s - loss: 4.5295e-04 - mae: 0.0164 - mse: 4.5295e-04 - val_loss: 6.2583e-04 - val_mae: 0.0182 - val_mse: 6.2583e-04 - 113ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.5295e-04 - mae: 0.0164 - mse: 4.5295e-04 - val_loss: 6.2583e-04 - val_mae: 0.0182 - val_mse: 6.2583e-04 - 136ms/epoch - 10ms/step\n", "Epoch 176/250\n", - "13/13 - 0s - loss: 5.3742e-04 - mae: 0.0183 - mse: 5.3742e-04 - val_loss: 5.6727e-04 - val_mae: 0.0187 - val_mse: 5.6727e-04 - 106ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 5.3742e-04 - mae: 0.0183 - mse: 5.3742e-04 - val_loss: 5.6727e-04 - val_mae: 0.0187 - val_mse: 5.6727e-04 - 141ms/epoch - 11ms/step\n", "Epoch 177/250\n", - "13/13 - 0s - loss: 5.3634e-04 - mae: 0.0182 - mse: 5.3634e-04 - val_loss: 4.6197e-04 - val_mae: 0.0157 - val_mse: 4.6197e-04 - 212ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 5.3634e-04 - mae: 0.0182 - mse: 5.3634e-04 - val_loss: 4.6197e-04 - val_mae: 0.0157 - val_mse: 4.6197e-04 - 316ms/epoch - 24ms/step\n", "Epoch 178/250\n", - "13/13 - 0s - loss: 4.8847e-04 - mae: 0.0169 - mse: 4.8847e-04 - val_loss: 4.6646e-04 - val_mae: 0.0160 - val_mse: 4.6646e-04 - 108ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.8847e-04 - mae: 0.0169 - mse: 4.8847e-04 - val_loss: 4.6646e-04 - val_mae: 0.0160 - val_mse: 4.6646e-04 - 214ms/epoch - 16ms/step\n", "Epoch 179/250\n", - "13/13 - 0s - loss: 4.3622e-04 - mae: 0.0160 - mse: 4.3622e-04 - val_loss: 5.3203e-04 - val_mae: 0.0164 - val_mse: 5.3203e-04 - 107ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.3622e-04 - mae: 0.0160 - mse: 4.3622e-04 - val_loss: 5.3203e-04 - val_mae: 0.0164 - val_mse: 5.3203e-04 - 181ms/epoch - 14ms/step\n", "Epoch 180/250\n", - "13/13 - 0s - loss: 4.7108e-04 - mae: 0.0165 - mse: 4.7108e-04 - val_loss: 4.6548e-04 - val_mae: 0.0161 - val_mse: 4.6548e-04 - 114ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.7108e-04 - mae: 0.0165 - mse: 4.7108e-04 - val_loss: 4.6548e-04 - val_mae: 0.0161 - val_mse: 4.6548e-04 - 144ms/epoch - 11ms/step\n", "Epoch 181/250\n", - "13/13 - 0s - loss: 4.3932e-04 - mae: 0.0164 - mse: 4.3932e-04 - val_loss: 4.4195e-04 - val_mae: 0.0157 - val_mse: 4.4195e-04 - 212ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 4.3932e-04 - mae: 0.0164 - mse: 4.3932e-04 - val_loss: 4.4195e-04 - val_mae: 0.0157 - val_mse: 4.4195e-04 - 302ms/epoch - 23ms/step\n", "Epoch 182/250\n", - "13/13 - 0s - loss: 4.3340e-04 - mae: 0.0159 - mse: 4.3340e-04 - val_loss: 4.5463e-04 - val_mae: 0.0158 - val_mse: 4.5463e-04 - 95ms/epoch - 7ms/step\n", + "13/13 - 0s - loss: 4.3340e-04 - mae: 0.0159 - mse: 4.3340e-04 - val_loss: 4.5463e-04 - val_mae: 0.0158 - val_mse: 4.5463e-04 - 216ms/epoch - 17ms/step\n", "Epoch 183/250\n", - "13/13 - 0s - loss: 4.2639e-04 - mae: 0.0162 - mse: 4.2639e-04 - val_loss: 4.3874e-04 - val_mae: 0.0156 - val_mse: 4.3874e-04 - 169ms/epoch - 13ms/step\n", + "13/13 - 0s - loss: 4.2639e-04 - mae: 0.0162 - mse: 4.2639e-04 - val_loss: 4.3874e-04 - val_mae: 0.0156 - val_mse: 4.3874e-04 - 296ms/epoch - 23ms/step\n", "Epoch 184/250\n", - "13/13 - 0s - loss: 4.4119e-04 - mae: 0.0159 - mse: 4.4119e-04 - val_loss: 4.7791e-04 - val_mae: 0.0169 - val_mse: 4.7791e-04 - 107ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.4119e-04 - mae: 0.0159 - mse: 4.4119e-04 - val_loss: 4.7791e-04 - val_mae: 0.0169 - val_mse: 4.7791e-04 - 195ms/epoch - 15ms/step\n", "Epoch 185/250\n", - "13/13 - 0s - loss: 4.4805e-04 - mae: 0.0164 - mse: 4.4805e-04 - val_loss: 4.6275e-04 - val_mae: 0.0163 - val_mse: 4.6275e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.4805e-04 - mae: 0.0164 - mse: 4.4805e-04 - val_loss: 4.6275e-04 - val_mae: 0.0163 - val_mse: 4.6275e-04 - 119ms/epoch - 9ms/step\n", "Epoch 186/250\n", - "13/13 - 0s - loss: 4.4495e-04 - mae: 0.0163 - mse: 4.4495e-04 - val_loss: 4.4746e-04 - val_mae: 0.0155 - val_mse: 4.4746e-04 - 107ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.4495e-04 - mae: 0.0163 - mse: 4.4495e-04 - val_loss: 4.4746e-04 - val_mae: 0.0155 - val_mse: 4.4746e-04 - 115ms/epoch - 9ms/step\n", "Epoch 187/250\n", - "13/13 - 0s - loss: 4.7030e-04 - mae: 0.0167 - mse: 4.7030e-04 - val_loss: 5.6234e-04 - val_mae: 0.0169 - val_mse: 5.6234e-04 - 106ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.7030e-04 - mae: 0.0167 - mse: 4.7030e-04 - val_loss: 5.6234e-04 - val_mae: 0.0169 - val_mse: 5.6234e-04 - 147ms/epoch - 11ms/step\n", "Epoch 188/250\n", - "13/13 - 0s - loss: 4.4920e-04 - mae: 0.0160 - mse: 4.4920e-04 - val_loss: 4.2347e-04 - val_mae: 0.0154 - val_mse: 4.2347e-04 - 204ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 4.4920e-04 - mae: 0.0160 - mse: 4.4920e-04 - val_loss: 4.2347e-04 - val_mae: 0.0154 - val_mse: 4.2347e-04 - 451ms/epoch - 35ms/step\n", "Epoch 189/250\n", - "13/13 - 0s - loss: 4.1850e-04 - mae: 0.0159 - mse: 4.1850e-04 - val_loss: 4.5828e-04 - val_mae: 0.0156 - val_mse: 4.5828e-04 - 114ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.1850e-04 - mae: 0.0159 - mse: 4.1850e-04 - val_loss: 4.5828e-04 - val_mae: 0.0156 - val_mse: 4.5828e-04 - 110ms/epoch - 8ms/step\n", "Epoch 190/250\n", - "13/13 - 0s - loss: 4.2816e-04 - mae: 0.0159 - mse: 4.2816e-04 - val_loss: 4.2983e-04 - val_mae: 0.0155 - val_mse: 4.2983e-04 - 114ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.2816e-04 - mae: 0.0159 - mse: 4.2816e-04 - val_loss: 4.2983e-04 - val_mae: 0.0155 - val_mse: 4.2983e-04 - 121ms/epoch - 9ms/step\n", "Epoch 191/250\n", - "13/13 - 0s - loss: 4.1442e-04 - mae: 0.0156 - mse: 4.1442e-04 - val_loss: 4.5135e-04 - val_mae: 0.0154 - val_mse: 4.5135e-04 - 103ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.1442e-04 - mae: 0.0156 - mse: 4.1442e-04 - val_loss: 4.5135e-04 - val_mae: 0.0154 - val_mse: 4.5135e-04 - 173ms/epoch - 13ms/step\n", "Epoch 192/250\n", - "13/13 - 0s - loss: 4.1126e-04 - mae: 0.0159 - mse: 4.1126e-04 - val_loss: 4.2590e-04 - val_mae: 0.0151 - val_mse: 4.2590e-04 - 159ms/epoch - 12ms/step\n", + "13/13 - 0s - loss: 4.1126e-04 - mae: 0.0159 - mse: 4.1126e-04 - val_loss: 4.2590e-04 - val_mae: 0.0151 - val_mse: 4.2590e-04 - 149ms/epoch - 11ms/step\n", "Epoch 193/250\n", - "13/13 - 0s - loss: 4.1197e-04 - mae: 0.0155 - mse: 4.1197e-04 - val_loss: 4.2111e-04 - val_mae: 0.0151 - val_mse: 4.2111e-04 - 209ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 4.1197e-04 - mae: 0.0155 - mse: 4.1197e-04 - val_loss: 4.2111e-04 - val_mae: 0.0151 - val_mse: 4.2111e-04 - 243ms/epoch - 19ms/step\n", "Epoch 194/250\n", - "13/13 - 0s - loss: 4.0958e-04 - mae: 0.0157 - mse: 4.0958e-04 - val_loss: 4.1117e-04 - val_mae: 0.0149 - val_mse: 4.1117e-04 - 185ms/epoch - 14ms/step\n", + "13/13 - 0s - loss: 4.0958e-04 - mae: 0.0157 - mse: 4.0958e-04 - val_loss: 4.1117e-04 - val_mae: 0.0149 - val_mse: 4.1117e-04 - 272ms/epoch - 21ms/step\n", "Epoch 195/250\n", - "13/13 - 0s - loss: 3.9243e-04 - mae: 0.0153 - mse: 3.9243e-04 - val_loss: 4.1405e-04 - val_mae: 0.0150 - val_mse: 4.1405e-04 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.9243e-04 - mae: 0.0153 - mse: 3.9243e-04 - val_loss: 4.1405e-04 - val_mae: 0.0150 - val_mse: 4.1405e-04 - 136ms/epoch - 10ms/step\n", "Epoch 196/250\n", - "13/13 - 0s - loss: 4.0300e-04 - mae: 0.0153 - mse: 4.0300e-04 - val_loss: 4.3989e-04 - val_mae: 0.0150 - val_mse: 4.3989e-04 - 113ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.0300e-04 - mae: 0.0153 - mse: 4.0300e-04 - val_loss: 4.3989e-04 - val_mae: 0.0150 - val_mse: 4.3989e-04 - 151ms/epoch - 12ms/step\n", "Epoch 197/250\n", - "13/13 - 0s - loss: 4.0142e-04 - mae: 0.0154 - mse: 4.0142e-04 - val_loss: 4.3665e-04 - val_mae: 0.0151 - val_mse: 4.3665e-04 - 109ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.0142e-04 - mae: 0.0154 - mse: 4.0142e-04 - val_loss: 4.3665e-04 - val_mae: 0.0151 - val_mse: 4.3665e-04 - 160ms/epoch - 12ms/step\n", "Epoch 198/250\n", - "13/13 - 0s - loss: 3.9936e-04 - mae: 0.0153 - mse: 3.9936e-04 - val_loss: 4.2897e-04 - val_mae: 0.0149 - val_mse: 4.2897e-04 - 107ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.9936e-04 - mae: 0.0153 - mse: 3.9936e-04 - val_loss: 4.2897e-04 - val_mae: 0.0149 - val_mse: 4.2897e-04 - 114ms/epoch - 9ms/step\n", "Epoch 199/250\n", - "13/13 - 0s - loss: 4.0143e-04 - mae: 0.0153 - mse: 4.0143e-04 - val_loss: 4.0877e-04 - val_mae: 0.0148 - val_mse: 4.0877e-04 - 214ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 4.0143e-04 - mae: 0.0153 - mse: 4.0143e-04 - val_loss: 4.0877e-04 - val_mae: 0.0148 - val_mse: 4.0877e-04 - 209ms/epoch - 16ms/step\n", "Epoch 200/250\n", - "13/13 - 0s - loss: 3.9668e-04 - mae: 0.0152 - mse: 3.9668e-04 - val_loss: 4.3571e-04 - val_mae: 0.0150 - val_mse: 4.3571e-04 - 106ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.9668e-04 - mae: 0.0152 - mse: 3.9668e-04 - val_loss: 4.3571e-04 - val_mae: 0.0150 - val_mse: 4.3571e-04 - 198ms/epoch - 15ms/step\n", "Epoch 201/250\n", - "13/13 - 0s - loss: 3.9516e-04 - mae: 0.0154 - mse: 3.9516e-04 - val_loss: 5.1984e-04 - val_mae: 0.0161 - val_mse: 5.1984e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.9516e-04 - mae: 0.0154 - mse: 3.9516e-04 - val_loss: 5.1984e-04 - val_mae: 0.0161 - val_mse: 5.1984e-04 - 147ms/epoch - 11ms/step\n", "Epoch 202/250\n", - "13/13 - 0s - loss: 4.5166e-04 - mae: 0.0161 - mse: 4.5166e-04 - val_loss: 5.4696e-04 - val_mae: 0.0182 - val_mse: 5.4696e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.5166e-04 - mae: 0.0161 - mse: 4.5166e-04 - val_loss: 5.4696e-04 - val_mae: 0.0182 - val_mse: 5.4696e-04 - 128ms/epoch - 10ms/step\n", "Epoch 203/250\n", - "13/13 - 0s - loss: 4.5904e-04 - mae: 0.0166 - mse: 4.5904e-04 - val_loss: 4.1240e-04 - val_mae: 0.0150 - val_mse: 4.1240e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.5904e-04 - mae: 0.0166 - mse: 4.5904e-04 - val_loss: 4.1240e-04 - val_mae: 0.0150 - val_mse: 4.1240e-04 - 137ms/epoch - 11ms/step\n", "Epoch 204/250\n", - "13/13 - 0s - loss: 3.9851e-04 - mae: 0.0150 - mse: 3.9851e-04 - val_loss: 4.5210e-04 - val_mae: 0.0154 - val_mse: 4.5210e-04 - 115ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.9851e-04 - mae: 0.0150 - mse: 3.9851e-04 - val_loss: 4.5210e-04 - val_mae: 0.0154 - val_mse: 4.5210e-04 - 141ms/epoch - 11ms/step\n", "Epoch 205/250\n", - "13/13 - 0s - loss: 3.8760e-04 - mae: 0.0151 - mse: 3.8760e-04 - val_loss: 4.0982e-04 - val_mae: 0.0149 - val_mse: 4.0982e-04 - 116ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.8760e-04 - mae: 0.0151 - mse: 3.8760e-04 - val_loss: 4.0982e-04 - val_mae: 0.0149 - val_mse: 4.0982e-04 - 121ms/epoch - 9ms/step\n", "Epoch 206/250\n", - "13/13 - 0s - loss: 4.1937e-04 - mae: 0.0156 - mse: 4.1937e-04 - val_loss: 3.8857e-04 - val_mae: 0.0145 - val_mse: 3.8857e-04 - 222ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 4.1937e-04 - mae: 0.0156 - mse: 4.1937e-04 - val_loss: 3.8857e-04 - val_mae: 0.0145 - val_mse: 3.8857e-04 - 294ms/epoch - 23ms/step\n", "Epoch 207/250\n", - "13/13 - 0s - loss: 3.7173e-04 - mae: 0.0146 - mse: 3.7173e-04 - val_loss: 3.9353e-04 - val_mae: 0.0147 - val_mse: 3.9353e-04 - 108ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.7173e-04 - mae: 0.0146 - mse: 3.7173e-04 - val_loss: 3.9353e-04 - val_mae: 0.0147 - val_mse: 3.9353e-04 - 146ms/epoch - 11ms/step\n", "Epoch 208/250\n", - "13/13 - 0s - loss: 3.9673e-04 - mae: 0.0153 - mse: 3.9673e-04 - val_loss: 3.9003e-04 - val_mae: 0.0145 - val_mse: 3.9003e-04 - 114ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.9673e-04 - mae: 0.0153 - mse: 3.9673e-04 - val_loss: 3.9003e-04 - val_mae: 0.0145 - val_mse: 3.9003e-04 - 115ms/epoch - 9ms/step\n", "Epoch 209/250\n", - "13/13 - 0s - loss: 4.2359e-04 - mae: 0.0155 - mse: 4.2359e-04 - val_loss: 3.9027e-04 - val_mae: 0.0146 - val_mse: 3.9027e-04 - 110ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.2359e-04 - mae: 0.0155 - mse: 4.2359e-04 - val_loss: 3.9027e-04 - val_mae: 0.0146 - val_mse: 3.9027e-04 - 150ms/epoch - 12ms/step\n", "Epoch 210/250\n", - "13/13 - 0s - loss: 3.9302e-04 - mae: 0.0154 - mse: 3.9302e-04 - val_loss: 4.1320e-04 - val_mae: 0.0152 - val_mse: 4.1320e-04 - 113ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.9302e-04 - mae: 0.0154 - mse: 3.9302e-04 - val_loss: 4.1320e-04 - val_mae: 0.0152 - val_mse: 4.1320e-04 - 167ms/epoch - 13ms/step\n", "Epoch 211/250\n", - "13/13 - 0s - loss: 3.6641e-04 - mae: 0.0147 - mse: 3.6641e-04 - val_loss: 3.9564e-04 - val_mae: 0.0141 - val_mse: 3.9564e-04 - 116ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.6641e-04 - mae: 0.0147 - mse: 3.6641e-04 - val_loss: 3.9564e-04 - val_mae: 0.0141 - val_mse: 3.9564e-04 - 167ms/epoch - 13ms/step\n", "Epoch 212/250\n", - "13/13 - 0s - loss: 3.6259e-04 - mae: 0.0143 - mse: 3.6259e-04 - val_loss: 3.8787e-04 - val_mae: 0.0146 - val_mse: 3.8787e-04 - 228ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 3.6259e-04 - mae: 0.0143 - mse: 3.6259e-04 - val_loss: 3.8787e-04 - val_mae: 0.0146 - val_mse: 3.8787e-04 - 309ms/epoch - 24ms/step\n", "Epoch 213/250\n", - "13/13 - 0s - loss: 4.0665e-04 - mae: 0.0156 - mse: 4.0665e-04 - val_loss: 5.0910e-04 - val_mae: 0.0160 - val_mse: 5.0910e-04 - 120ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.0665e-04 - mae: 0.0156 - mse: 4.0665e-04 - val_loss: 5.0910e-04 - val_mae: 0.0160 - val_mse: 5.0910e-04 - 158ms/epoch - 12ms/step\n", "Epoch 214/250\n", - "13/13 - 0s - loss: 4.5758e-04 - mae: 0.0169 - mse: 4.5758e-04 - val_loss: 4.1241e-04 - val_mae: 0.0141 - val_mse: 4.1241e-04 - 104ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.5758e-04 - mae: 0.0169 - mse: 4.5758e-04 - val_loss: 4.1241e-04 - val_mae: 0.0141 - val_mse: 4.1241e-04 - 125ms/epoch - 10ms/step\n", "Epoch 215/250\n", - "13/13 - 0s - loss: 4.0666e-04 - mae: 0.0155 - mse: 4.0666e-04 - val_loss: 4.6639e-04 - val_mae: 0.0151 - val_mse: 4.6639e-04 - 104ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.0666e-04 - mae: 0.0155 - mse: 4.0666e-04 - val_loss: 4.6639e-04 - val_mae: 0.0151 - val_mse: 4.6639e-04 - 177ms/epoch - 14ms/step\n", "Epoch 216/250\n", - "13/13 - 0s - loss: 3.6615e-04 - mae: 0.0145 - mse: 3.6615e-04 - val_loss: 3.8294e-04 - val_mae: 0.0138 - val_mse: 3.8294e-04 - 201ms/epoch - 15ms/step\n", + "13/13 - 0s - loss: 3.6615e-04 - mae: 0.0145 - mse: 3.6615e-04 - val_loss: 3.8294e-04 - val_mae: 0.0138 - val_mse: 3.8294e-04 - 253ms/epoch - 19ms/step\n", "Epoch 217/250\n", - "13/13 - 0s - loss: 3.8135e-04 - mae: 0.0149 - mse: 3.8135e-04 - val_loss: 5.1259e-04 - val_mae: 0.0162 - val_mse: 5.1259e-04 - 119ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.8135e-04 - mae: 0.0149 - mse: 3.8135e-04 - val_loss: 5.1259e-04 - val_mae: 0.0162 - val_mse: 5.1259e-04 - 136ms/epoch - 10ms/step\n", "Epoch 218/250\n", - "13/13 - 0s - loss: 3.5877e-04 - mae: 0.0144 - mse: 3.5877e-04 - val_loss: 3.7918e-04 - val_mae: 0.0142 - val_mse: 3.7918e-04 - 222ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 3.5877e-04 - mae: 0.0144 - mse: 3.5877e-04 - val_loss: 3.7918e-04 - val_mae: 0.0142 - val_mse: 3.7918e-04 - 254ms/epoch - 20ms/step\n", "Epoch 219/250\n", - "13/13 - 0s - loss: 4.1097e-04 - mae: 0.0155 - mse: 4.1097e-04 - val_loss: 3.7973e-04 - val_mae: 0.0144 - val_mse: 3.7973e-04 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.1097e-04 - mae: 0.0155 - mse: 4.1097e-04 - val_loss: 3.7973e-04 - val_mae: 0.0144 - val_mse: 3.7973e-04 - 167ms/epoch - 13ms/step\n", "Epoch 220/250\n", - "13/13 - 0s - loss: 3.7840e-04 - mae: 0.0149 - mse: 3.7840e-04 - val_loss: 4.7988e-04 - val_mae: 0.0153 - val_mse: 4.7988e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.7840e-04 - mae: 0.0149 - mse: 3.7840e-04 - val_loss: 4.7988e-04 - val_mae: 0.0153 - val_mse: 4.7988e-04 - 157ms/epoch - 12ms/step\n", "Epoch 221/250\n", - "13/13 - 0s - loss: 3.5545e-04 - mae: 0.0143 - mse: 3.5545e-04 - val_loss: 3.7230e-04 - val_mae: 0.0136 - val_mse: 3.7230e-04 - 226ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 3.5545e-04 - mae: 0.0143 - mse: 3.5545e-04 - val_loss: 3.7230e-04 - val_mae: 0.0136 - val_mse: 3.7230e-04 - 218ms/epoch - 17ms/step\n", "Epoch 222/250\n", - "13/13 - 0s - loss: 3.4610e-04 - mae: 0.0141 - mse: 3.4610e-04 - val_loss: 4.1371e-04 - val_mae: 0.0142 - val_mse: 4.1371e-04 - 110ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.4610e-04 - mae: 0.0141 - mse: 3.4610e-04 - val_loss: 4.1371e-04 - val_mae: 0.0142 - val_mse: 4.1371e-04 - 141ms/epoch - 11ms/step\n", "Epoch 223/250\n", - "13/13 - 0s - loss: 3.7775e-04 - mae: 0.0149 - mse: 3.7775e-04 - val_loss: 3.8045e-04 - val_mae: 0.0142 - val_mse: 3.8045e-04 - 115ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.7775e-04 - mae: 0.0149 - mse: 3.7775e-04 - val_loss: 3.8045e-04 - val_mae: 0.0142 - val_mse: 3.8045e-04 - 176ms/epoch - 14ms/step\n", "Epoch 224/250\n", - "13/13 - 0s - loss: 3.5911e-04 - mae: 0.0145 - mse: 3.5911e-04 - val_loss: 3.5609e-04 - val_mae: 0.0134 - val_mse: 3.5609e-04 - 233ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 3.5911e-04 - mae: 0.0145 - mse: 3.5911e-04 - val_loss: 3.5609e-04 - val_mae: 0.0134 - val_mse: 3.5609e-04 - 421ms/epoch - 32ms/step\n", "Epoch 225/250\n", - "13/13 - 0s - loss: 3.5933e-04 - mae: 0.0144 - mse: 3.5933e-04 - val_loss: 3.5900e-04 - val_mae: 0.0134 - val_mse: 3.5900e-04 - 105ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.5933e-04 - mae: 0.0144 - mse: 3.5933e-04 - val_loss: 3.5900e-04 - val_mae: 0.0134 - val_mse: 3.5900e-04 - 159ms/epoch - 12ms/step\n", "Epoch 226/250\n", - "13/13 - 0s - loss: 3.6466e-04 - mae: 0.0144 - mse: 3.6466e-04 - val_loss: 3.5378e-04 - val_mae: 0.0135 - val_mse: 3.5378e-04 - 232ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 3.6466e-04 - mae: 0.0144 - mse: 3.6466e-04 - val_loss: 3.5378e-04 - val_mae: 0.0135 - val_mse: 3.5378e-04 - 307ms/epoch - 24ms/step\n", "Epoch 227/250\n", - "13/13 - 0s - loss: 3.5876e-04 - mae: 0.0144 - mse: 3.5876e-04 - val_loss: 3.6523e-04 - val_mae: 0.0133 - val_mse: 3.6523e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.5876e-04 - mae: 0.0144 - mse: 3.5876e-04 - val_loss: 3.6523e-04 - val_mae: 0.0133 - val_mse: 3.6523e-04 - 193ms/epoch - 15ms/step\n", "Epoch 228/250\n", - "13/13 - 0s - loss: 3.4559e-04 - mae: 0.0142 - mse: 3.4559e-04 - val_loss: 3.5907e-04 - val_mae: 0.0139 - val_mse: 3.5907e-04 - 162ms/epoch - 12ms/step\n", + "13/13 - 0s - loss: 3.4559e-04 - mae: 0.0142 - mse: 3.4559e-04 - val_loss: 3.5907e-04 - val_mae: 0.0139 - val_mse: 3.5907e-04 - 133ms/epoch - 10ms/step\n", "Epoch 229/250\n", - "13/13 - 0s - loss: 3.4162e-04 - mae: 0.0142 - mse: 3.4162e-04 - val_loss: 4.2194e-04 - val_mae: 0.0141 - val_mse: 4.2194e-04 - 101ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.4162e-04 - mae: 0.0142 - mse: 3.4162e-04 - val_loss: 4.2194e-04 - val_mae: 0.0141 - val_mse: 4.2194e-04 - 107ms/epoch - 8ms/step\n", "Epoch 230/250\n", - "13/13 - 0s - loss: 3.6967e-04 - mae: 0.0146 - mse: 3.6967e-04 - val_loss: 3.7720e-04 - val_mae: 0.0138 - val_mse: 3.7720e-04 - 105ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.6967e-04 - mae: 0.0146 - mse: 3.6967e-04 - val_loss: 3.7720e-04 - val_mae: 0.0138 - val_mse: 3.7720e-04 - 165ms/epoch - 13ms/step\n", "Epoch 231/250\n", - "13/13 - 0s - loss: 3.3735e-04 - mae: 0.0136 - mse: 3.3735e-04 - val_loss: 3.3976e-04 - val_mae: 0.0129 - val_mse: 3.3976e-04 - 227ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 3.3735e-04 - mae: 0.0136 - mse: 3.3735e-04 - val_loss: 3.3976e-04 - val_mae: 0.0129 - val_mse: 3.3976e-04 - 276ms/epoch - 21ms/step\n", "Epoch 232/250\n", - "13/13 - 0s - loss: 3.3844e-04 - mae: 0.0141 - mse: 3.3844e-04 - val_loss: 3.8716e-04 - val_mae: 0.0135 - val_mse: 3.8716e-04 - 109ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.3844e-04 - mae: 0.0141 - mse: 3.3844e-04 - val_loss: 3.8716e-04 - val_mae: 0.0135 - val_mse: 3.8716e-04 - 134ms/epoch - 10ms/step\n", "Epoch 233/250\n", - "13/13 - 0s - loss: 3.6741e-04 - mae: 0.0145 - mse: 3.6741e-04 - val_loss: 3.8668e-04 - val_mae: 0.0136 - val_mse: 3.8668e-04 - 117ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.6741e-04 - mae: 0.0145 - mse: 3.6741e-04 - val_loss: 3.8668e-04 - val_mae: 0.0136 - val_mse: 3.8668e-04 - 146ms/epoch - 11ms/step\n", "Epoch 234/250\n", - "13/13 - 0s - loss: 3.4129e-04 - mae: 0.0139 - mse: 3.4129e-04 - val_loss: 3.4933e-04 - val_mae: 0.0133 - val_mse: 3.4933e-04 - 118ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.4129e-04 - mae: 0.0139 - mse: 3.4129e-04 - val_loss: 3.4933e-04 - val_mae: 0.0133 - val_mse: 3.4933e-04 - 165ms/epoch - 13ms/step\n", "Epoch 235/250\n", - "13/13 - 0s - loss: 3.2338e-04 - mae: 0.0137 - mse: 3.2338e-04 - val_loss: 3.4566e-04 - val_mae: 0.0133 - val_mse: 3.4566e-04 - 108ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.2338e-04 - mae: 0.0137 - mse: 3.2338e-04 - val_loss: 3.4566e-04 - val_mae: 0.0133 - val_mse: 3.4566e-04 - 153ms/epoch - 12ms/step\n", "Epoch 236/250\n", - "13/13 - 0s - loss: 3.1652e-04 - mae: 0.0134 - mse: 3.1652e-04 - val_loss: 3.9728e-04 - val_mae: 0.0136 - val_mse: 3.9728e-04 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.1652e-04 - mae: 0.0134 - mse: 3.1652e-04 - val_loss: 3.9728e-04 - val_mae: 0.0136 - val_mse: 3.9728e-04 - 187ms/epoch - 14ms/step\n", "Epoch 237/250\n", - "13/13 - 0s - loss: 3.2047e-04 - mae: 0.0136 - mse: 3.2047e-04 - val_loss: 3.3756e-04 - val_mae: 0.0130 - val_mse: 3.3756e-04 - 225ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 3.2047e-04 - mae: 0.0136 - mse: 3.2047e-04 - val_loss: 3.3756e-04 - val_mae: 0.0130 - val_mse: 3.3756e-04 - 209ms/epoch - 16ms/step\n", "Epoch 238/250\n", - "13/13 - 0s - loss: 3.3167e-04 - mae: 0.0138 - mse: 3.3167e-04 - val_loss: 3.3191e-04 - val_mae: 0.0126 - val_mse: 3.3191e-04 - 228ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 3.3167e-04 - mae: 0.0138 - mse: 3.3167e-04 - val_loss: 3.3191e-04 - val_mae: 0.0126 - val_mse: 3.3191e-04 - 175ms/epoch - 13ms/step\n", "Epoch 239/250\n", - "13/13 - 0s - loss: 3.2033e-04 - mae: 0.0134 - mse: 3.2033e-04 - val_loss: 3.2969e-04 - val_mae: 0.0128 - val_mse: 3.2969e-04 - 215ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 3.2033e-04 - mae: 0.0134 - mse: 3.2033e-04 - val_loss: 3.2969e-04 - val_mae: 0.0128 - val_mse: 3.2969e-04 - 234ms/epoch - 18ms/step\n", "Epoch 240/250\n", - "13/13 - 0s - loss: 3.5224e-04 - mae: 0.0141 - mse: 3.5224e-04 - val_loss: 3.9061e-04 - val_mae: 0.0148 - val_mse: 3.9061e-04 - 110ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.5224e-04 - mae: 0.0141 - mse: 3.5224e-04 - val_loss: 3.9061e-04 - val_mae: 0.0148 - val_mse: 3.9061e-04 - 130ms/epoch - 10ms/step\n", "Epoch 241/250\n", - "13/13 - 0s - loss: 3.9777e-04 - mae: 0.0153 - mse: 3.9777e-04 - val_loss: 3.7065e-04 - val_mae: 0.0137 - val_mse: 3.7065e-04 - 107ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.9777e-04 - mae: 0.0153 - mse: 3.9777e-04 - val_loss: 3.7065e-04 - val_mae: 0.0137 - val_mse: 3.7065e-04 - 122ms/epoch - 9ms/step\n", "Epoch 242/250\n", - "13/13 - 0s - loss: 3.2502e-04 - mae: 0.0138 - mse: 3.2502e-04 - val_loss: 3.3236e-04 - val_mae: 0.0124 - val_mse: 3.3236e-04 - 109ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.2502e-04 - mae: 0.0138 - mse: 3.2502e-04 - val_loss: 3.3236e-04 - val_mae: 0.0124 - val_mse: 3.3236e-04 - 128ms/epoch - 10ms/step\n", "Epoch 243/250\n", - "13/13 - 0s - loss: 3.0734e-04 - mae: 0.0133 - mse: 3.0734e-04 - val_loss: 3.2635e-04 - val_mae: 0.0126 - val_mse: 3.2635e-04 - 227ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 3.0734e-04 - mae: 0.0133 - mse: 3.0734e-04 - val_loss: 3.2635e-04 - val_mae: 0.0126 - val_mse: 3.2635e-04 - 321ms/epoch - 25ms/step\n", "Epoch 244/250\n", - "13/13 - 0s - loss: 3.2928e-04 - mae: 0.0137 - mse: 3.2928e-04 - val_loss: 3.2871e-04 - val_mae: 0.0125 - val_mse: 3.2871e-04 - 104ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.2928e-04 - mae: 0.0137 - mse: 3.2928e-04 - val_loss: 3.2871e-04 - val_mae: 0.0125 - val_mse: 3.2871e-04 - 167ms/epoch - 13ms/step\n", "Epoch 245/250\n", - "13/13 - 0s - loss: 2.9711e-04 - mae: 0.0131 - mse: 2.9711e-04 - val_loss: 3.2920e-04 - val_mae: 0.0121 - val_mse: 3.2920e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 2.9711e-04 - mae: 0.0131 - mse: 2.9711e-04 - val_loss: 3.2920e-04 - val_mae: 0.0121 - val_mse: 3.2920e-04 - 129ms/epoch - 10ms/step\n", "Epoch 246/250\n", - "13/13 - 0s - loss: 3.2661e-04 - mae: 0.0134 - mse: 3.2661e-04 - val_loss: 3.6936e-04 - val_mae: 0.0134 - val_mse: 3.6936e-04 - 107ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.2661e-04 - mae: 0.0134 - mse: 3.2661e-04 - val_loss: 3.6936e-04 - val_mae: 0.0134 - val_mse: 3.6936e-04 - 191ms/epoch - 15ms/step\n", "Epoch 247/250\n", - "13/13 - 0s - loss: 2.9618e-04 - mae: 0.0128 - mse: 2.9618e-04 - val_loss: 3.3549e-04 - val_mae: 0.0123 - val_mse: 3.3549e-04 - 106ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 2.9618e-04 - mae: 0.0128 - mse: 2.9618e-04 - val_loss: 3.3549e-04 - val_mae: 0.0123 - val_mse: 3.3549e-04 - 119ms/epoch - 9ms/step\n", "Epoch 248/250\n", - "13/13 - 0s - loss: 2.9979e-04 - mae: 0.0130 - mse: 2.9979e-04 - val_loss: 3.8099e-04 - val_mae: 0.0135 - val_mse: 3.8099e-04 - 118ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 2.9979e-04 - mae: 0.0130 - mse: 2.9979e-04 - val_loss: 3.8099e-04 - val_mae: 0.0135 - val_mse: 3.8099e-04 - 122ms/epoch - 9ms/step\n", "Epoch 249/250\n", - "13/13 - 0s - loss: 3.0599e-04 - mae: 0.0131 - mse: 3.0599e-04 - val_loss: 3.2729e-04 - val_mae: 0.0122 - val_mse: 3.2729e-04 - 106ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.0599e-04 - mae: 0.0131 - mse: 3.0599e-04 - val_loss: 3.2729e-04 - val_mae: 0.0122 - val_mse: 3.2729e-04 - 150ms/epoch - 12ms/step\n", "Epoch 250/250\n", - "13/13 - 0s - loss: 3.1256e-04 - mae: 0.0134 - mse: 3.1256e-04 - val_loss: 3.3855e-04 - val_mae: 0.0134 - val_mse: 3.3855e-04 - 109ms/epoch - 8ms/step\n" + "13/13 - 0s - loss: 3.1256e-04 - mae: 0.0134 - mse: 3.1256e-04 - val_loss: 3.3855e-04 - val_mae: 0.0134 - val_mse: 3.3855e-04 - 127ms/epoch - 10ms/step\n" ] }, { @@ -738,7 +748,7 @@ "# Train surrogate (calls optimizer on neural network and solves for weights)\n", "model.compile(loss=loss, optimizer=optimizer, metrics=metrics)\n", "mcp_save = tf.keras.callbacks.ModelCheckpoint(\n", - " \".mdl_co2.h5\", save_best_only=True, monitor=\"val_loss\", mode=\"min\"\n", + " \".mdl_co2.keras\", save_best_only=True, monitor=\"val_loss\", mode=\"min\"\n", ")\n", "history = model.fit(x=x, y=y, validation_split=0.2, verbose=2, epochs=250, callbacks=[mcp_save])\n", "\n", @@ -759,7 +769,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -783,7 +793,7 @@ " input_scaler=input_scaler,\n", " output_scaler=output_scaler,\n", ")\n", - "keras_surrogate.save_to_folder(\"sco2_keras_surr\")" + "keras_surrogate.save_to_folder(keras_folder_name=\"sco2_keras_surr\", keras_model_name=\"sco2_keras_model\")" ] }, { @@ -797,14 +807,14 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "13/13 [==============================] - 0s 3ms/step\n" + "13/13 [==============================] - 1s 3ms/step\n" ] }, { @@ -878,7 +888,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "13/13 [==============================] - 0s 3ms/step\n" + "13/13 [==============================] - 0s 4ms/step\n" ] }, { @@ -939,7 +949,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -993,7 +1003,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "4/4 [==============================] - 0s 3ms/step\n" + "4/4 [==============================] - 0s 4ms/step\n" ] }, { @@ -1020,7 +1030,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "4/4 [==============================] - 0s 4ms/step\n" + "4/4 [==============================] - 0s 5ms/step\n" ] }, { @@ -1075,7 +1085,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now, the surrogate is trained and validated, we shall embed it in the property package, which is demonstrated in the [surrogate_embedding_doc.ipynb](./surrogate_embedding_doc.ipynb) file." + "Now, the surrogate is trained and validated, we shall embed it in the property package, which is demonstrated in the [surrogate_embedding_doc.md](./surrogate_embedding_doc.md) file." ] } ], @@ -1101,4 +1111,4 @@ }, "nbformat": 4, "nbformat_minor": 3 -} +} \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/keras_training_test.ipynb b/idaes_examples/notebooks/docs/surrogates/sco2/omlt/keras_training_test.ipynb index a4c68e87..132b5b88 100644 --- a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/keras_training_test.ipynb +++ b/idaes_examples/notebooks/docs/surrogates/sco2/omlt/keras_training_test.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -17,7 +17,7 @@ "# University, West Virginia University Research Corporation, et al.\n", "# All rights reserved. Please see the files COPYRIGHT.md and LICENSE.md\n", "# for full copyright and license information.\n", - "###############################################################################" + "###############################################################################\n" ] }, { @@ -53,7 +53,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -63,7 +63,7 @@ "" ] }, - "execution_count": 1, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } @@ -91,9 +91,19 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING: DEPRECATED: pyomo.core.expr.current is deprecated. Please import\n", + "expression symbols from pyomo.core.expr (deprecated in 6.6.2) (called from\n", + ":241)\n" + ] + } + ], "source": [ "# Import statements\n", "import os\n", @@ -134,7 +144,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -182,7 +192,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -190,505 +200,505 @@ "output_type": "stream", "text": [ "Epoch 1/250\n", - "13/13 - 2s - loss: 0.4963 - mae: 0.5592 - mse: 0.4963 - val_loss: 0.1685 - val_mae: 0.3349 - val_mse: 0.1685 - 2s/epoch - 173ms/step\n", + "13/13 - 3s - loss: 0.4963 - mae: 0.5592 - mse: 0.4963 - val_loss: 0.1685 - val_mae: 0.3349 - val_mse: 0.1685 - 3s/epoch - 249ms/step\n", "Epoch 2/250\n", - "13/13 - 0s - loss: 0.1216 - mae: 0.2839 - mse: 0.1216 - val_loss: 0.0809 - val_mae: 0.2245 - val_mse: 0.0809 - 220ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.1216 - mae: 0.2839 - mse: 0.1216 - val_loss: 0.0809 - val_mae: 0.2245 - val_mse: 0.0809 - 237ms/epoch - 18ms/step\n", "Epoch 3/250\n", - "13/13 - 0s - loss: 0.0665 - mae: 0.2043 - mse: 0.0665 - val_loss: 0.0359 - val_mae: 0.1503 - val_mse: 0.0359 - 228ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 0.0665 - mae: 0.2043 - mse: 0.0665 - val_loss: 0.0359 - val_mae: 0.1503 - val_mse: 0.0359 - 262ms/epoch - 20ms/step\n", "Epoch 4/250\n", - "13/13 - 0s - loss: 0.0294 - mae: 0.1329 - mse: 0.0294 - val_loss: 0.0221 - val_mae: 0.1119 - val_mse: 0.0221 - 239ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 0.0294 - mae: 0.1329 - mse: 0.0294 - val_loss: 0.0221 - val_mae: 0.1119 - val_mse: 0.0221 - 283ms/epoch - 22ms/step\n", "Epoch 5/250\n", - "13/13 - 0s - loss: 0.0170 - mae: 0.0964 - mse: 0.0170 - val_loss: 0.0115 - val_mae: 0.0792 - val_mse: 0.0115 - 229ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 0.0170 - mae: 0.0964 - mse: 0.0170 - val_loss: 0.0115 - val_mae: 0.0792 - val_mse: 0.0115 - 351ms/epoch - 27ms/step\n", "Epoch 6/250\n", - "13/13 - 0s - loss: 0.0097 - mae: 0.0734 - mse: 0.0097 - val_loss: 0.0067 - val_mae: 0.0636 - val_mse: 0.0067 - 202ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 0.0097 - mae: 0.0734 - mse: 0.0097 - val_loss: 0.0067 - val_mae: 0.0636 - val_mse: 0.0067 - 364ms/epoch - 28ms/step\n", "Epoch 7/250\n", - "13/13 - 0s - loss: 0.0061 - mae: 0.0610 - mse: 0.0061 - val_loss: 0.0048 - val_mae: 0.0550 - val_mse: 0.0048 - 241ms/epoch - 19ms/step\n", + "13/13 - 0s - loss: 0.0061 - mae: 0.0610 - mse: 0.0061 - val_loss: 0.0048 - val_mae: 0.0550 - val_mse: 0.0048 - 245ms/epoch - 19ms/step\n", "Epoch 8/250\n", - "13/13 - 0s - loss: 0.0042 - mae: 0.0521 - mse: 0.0042 - val_loss: 0.0034 - val_mae: 0.0464 - val_mse: 0.0034 - 233ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 0.0042 - mae: 0.0521 - mse: 0.0042 - val_loss: 0.0034 - val_mae: 0.0464 - val_mse: 0.0034 - 203ms/epoch - 16ms/step\n", "Epoch 9/250\n", - "13/13 - 0s - loss: 0.0032 - mae: 0.0458 - mse: 0.0032 - val_loss: 0.0027 - val_mae: 0.0418 - val_mse: 0.0027 - 227ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0032 - mae: 0.0458 - mse: 0.0032 - val_loss: 0.0027 - val_mae: 0.0418 - val_mse: 0.0027 - 300ms/epoch - 23ms/step\n", "Epoch 10/250\n", - "13/13 - 0s - loss: 0.0028 - mae: 0.0420 - mse: 0.0028 - val_loss: 0.0024 - val_mae: 0.0379 - val_mse: 0.0024 - 240ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 0.0028 - mae: 0.0420 - mse: 0.0028 - val_loss: 0.0024 - val_mae: 0.0379 - val_mse: 0.0024 - 255ms/epoch - 20ms/step\n", "Epoch 11/250\n", - "13/13 - 0s - loss: 0.0024 - mae: 0.0384 - mse: 0.0024 - val_loss: 0.0021 - val_mae: 0.0358 - val_mse: 0.0021 - 224ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0024 - mae: 0.0384 - mse: 0.0024 - val_loss: 0.0021 - val_mae: 0.0358 - val_mse: 0.0021 - 247ms/epoch - 19ms/step\n", "Epoch 12/250\n", - "13/13 - 0s - loss: 0.0022 - mae: 0.0358 - mse: 0.0022 - val_loss: 0.0018 - val_mae: 0.0330 - val_mse: 0.0018 - 227ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0022 - mae: 0.0358 - mse: 0.0022 - val_loss: 0.0018 - val_mae: 0.0330 - val_mse: 0.0018 - 321ms/epoch - 25ms/step\n", "Epoch 13/250\n", - "13/13 - 0s - loss: 0.0020 - mae: 0.0338 - mse: 0.0020 - val_loss: 0.0017 - val_mae: 0.0315 - val_mse: 0.0017 - 197ms/epoch - 15ms/step\n", + "13/13 - 0s - loss: 0.0020 - mae: 0.0338 - mse: 0.0020 - val_loss: 0.0017 - val_mae: 0.0315 - val_mse: 0.0017 - 219ms/epoch - 17ms/step\n", "Epoch 14/250\n", - "13/13 - 0s - loss: 0.0018 - mae: 0.0323 - mse: 0.0018 - val_loss: 0.0015 - val_mae: 0.0302 - val_mse: 0.0015 - 234ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 0.0018 - mae: 0.0323 - mse: 0.0018 - val_loss: 0.0015 - val_mae: 0.0302 - val_mse: 0.0015 - 272ms/epoch - 21ms/step\n", "Epoch 15/250\n", - "13/13 - 0s - loss: 0.0017 - mae: 0.0311 - mse: 0.0017 - val_loss: 0.0015 - val_mae: 0.0296 - val_mse: 0.0015 - 207ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 0.0017 - mae: 0.0311 - mse: 0.0017 - val_loss: 0.0015 - val_mae: 0.0296 - val_mse: 0.0015 - 299ms/epoch - 23ms/step\n", "Epoch 16/250\n", - "13/13 - 0s - loss: 0.0016 - mae: 0.0303 - mse: 0.0016 - val_loss: 0.0014 - val_mae: 0.0289 - val_mse: 0.0014 - 215ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0016 - mae: 0.0303 - mse: 0.0016 - val_loss: 0.0014 - val_mae: 0.0289 - val_mse: 0.0014 - 271ms/epoch - 21ms/step\n", "Epoch 17/250\n", - "13/13 - 0s - loss: 0.0016 - mae: 0.0293 - mse: 0.0016 - val_loss: 0.0014 - val_mae: 0.0281 - val_mse: 0.0014 - 227ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0016 - mae: 0.0293 - mse: 0.0016 - val_loss: 0.0014 - val_mae: 0.0281 - val_mse: 0.0014 - 248ms/epoch - 19ms/step\n", "Epoch 18/250\n", - "13/13 - 0s - loss: 0.0015 - mae: 0.0287 - mse: 0.0015 - val_loss: 0.0013 - val_mae: 0.0275 - val_mse: 0.0013 - 234ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 0.0015 - mae: 0.0287 - mse: 0.0015 - val_loss: 0.0013 - val_mae: 0.0275 - val_mse: 0.0013 - 256ms/epoch - 20ms/step\n", "Epoch 19/250\n", - "13/13 - 0s - loss: 0.0015 - mae: 0.0285 - mse: 0.0015 - val_loss: 0.0014 - val_mae: 0.0285 - val_mse: 0.0014 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 0.0015 - mae: 0.0285 - mse: 0.0015 - val_loss: 0.0014 - val_mae: 0.0285 - val_mse: 0.0014 - 153ms/epoch - 12ms/step\n", "Epoch 20/250\n", - "13/13 - 0s - loss: 0.0015 - mae: 0.0282 - mse: 0.0015 - val_loss: 0.0012 - val_mae: 0.0269 - val_mse: 0.0012 - 246ms/epoch - 19ms/step\n", + "13/13 - 0s - loss: 0.0015 - mae: 0.0282 - mse: 0.0015 - val_loss: 0.0012 - val_mae: 0.0269 - val_mse: 0.0012 - 239ms/epoch - 18ms/step\n", "Epoch 21/250\n", - "13/13 - 0s - loss: 0.0015 - mae: 0.0278 - mse: 0.0015 - val_loss: 0.0012 - val_mae: 0.0266 - val_mse: 0.0012 - 172ms/epoch - 13ms/step\n", + "13/13 - 0s - loss: 0.0015 - mae: 0.0278 - mse: 0.0015 - val_loss: 0.0012 - val_mae: 0.0266 - val_mse: 0.0012 - 263ms/epoch - 20ms/step\n", "Epoch 22/250\n", - "13/13 - 0s - loss: 0.0015 - mae: 0.0279 - mse: 0.0015 - val_loss: 0.0012 - val_mae: 0.0266 - val_mse: 0.0012 - 209ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 0.0015 - mae: 0.0279 - mse: 0.0015 - val_loss: 0.0012 - val_mae: 0.0266 - val_mse: 0.0012 - 243ms/epoch - 19ms/step\n", "Epoch 23/250\n", - "13/13 - 0s - loss: 0.0014 - mae: 0.0274 - mse: 0.0014 - val_loss: 0.0012 - val_mae: 0.0265 - val_mse: 0.0012 - 108ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 0.0014 - mae: 0.0274 - mse: 0.0014 - val_loss: 0.0012 - val_mae: 0.0265 - val_mse: 0.0012 - 138ms/epoch - 11ms/step\n", "Epoch 24/250\n", - "13/13 - 0s - loss: 0.0014 - mae: 0.0264 - mse: 0.0014 - val_loss: 0.0012 - val_mae: 0.0259 - val_mse: 0.0012 - 219ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0014 - mae: 0.0264 - mse: 0.0014 - val_loss: 0.0012 - val_mae: 0.0259 - val_mse: 0.0012 - 189ms/epoch - 15ms/step\n", "Epoch 25/250\n", - "13/13 - 0s - loss: 0.0014 - mae: 0.0268 - mse: 0.0014 - val_loss: 0.0012 - val_mae: 0.0258 - val_mse: 0.0012 - 212ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 0.0014 - mae: 0.0268 - mse: 0.0014 - val_loss: 0.0012 - val_mae: 0.0258 - val_mse: 0.0012 - 280ms/epoch - 22ms/step\n", "Epoch 26/250\n", - "13/13 - 0s - loss: 0.0013 - mae: 0.0268 - mse: 0.0013 - val_loss: 0.0011 - val_mae: 0.0258 - val_mse: 0.0011 - 220ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0013 - mae: 0.0268 - mse: 0.0013 - val_loss: 0.0011 - val_mae: 0.0258 - val_mse: 0.0011 - 222ms/epoch - 17ms/step\n", "Epoch 27/250\n", - "13/13 - 0s - loss: 0.0013 - mae: 0.0265 - mse: 0.0013 - val_loss: 0.0011 - val_mae: 0.0247 - val_mse: 0.0011 - 224ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0013 - mae: 0.0265 - mse: 0.0013 - val_loss: 0.0011 - val_mae: 0.0247 - val_mse: 0.0011 - 286ms/epoch - 22ms/step\n", "Epoch 28/250\n", - "13/13 - 0s - loss: 0.0013 - mae: 0.0259 - mse: 0.0013 - val_loss: 0.0012 - val_mae: 0.0259 - val_mse: 0.0012 - 108ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 0.0013 - mae: 0.0259 - mse: 0.0013 - val_loss: 0.0012 - val_mae: 0.0259 - val_mse: 0.0012 - 116ms/epoch - 9ms/step\n", "Epoch 29/250\n", - "13/13 - 0s - loss: 0.0013 - mae: 0.0259 - mse: 0.0013 - val_loss: 0.0011 - val_mae: 0.0252 - val_mse: 0.0011 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 0.0013 - mae: 0.0259 - mse: 0.0013 - val_loss: 0.0011 - val_mae: 0.0252 - val_mse: 0.0011 - 157ms/epoch - 12ms/step\n", "Epoch 30/250\n", - "13/13 - 0s - loss: 0.0013 - mae: 0.0256 - mse: 0.0013 - val_loss: 0.0011 - val_mae: 0.0248 - val_mse: 0.0011 - 223ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0013 - mae: 0.0256 - mse: 0.0013 - val_loss: 0.0011 - val_mae: 0.0248 - val_mse: 0.0011 - 267ms/epoch - 21ms/step\n", "Epoch 31/250\n", - "13/13 - 0s - loss: 0.0013 - mae: 0.0254 - mse: 0.0013 - val_loss: 0.0011 - val_mae: 0.0245 - val_mse: 0.0011 - 219ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0013 - mae: 0.0254 - mse: 0.0013 - val_loss: 0.0011 - val_mae: 0.0245 - val_mse: 0.0011 - 264ms/epoch - 20ms/step\n", "Epoch 32/250\n", - "13/13 - 0s - loss: 0.0012 - mae: 0.0254 - mse: 0.0012 - val_loss: 0.0010 - val_mae: 0.0243 - val_mse: 0.0010 - 228ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 0.0012 - mae: 0.0254 - mse: 0.0012 - val_loss: 0.0010 - val_mae: 0.0243 - val_mse: 0.0010 - 269ms/epoch - 21ms/step\n", "Epoch 33/250\n", - "13/13 - 0s - loss: 0.0012 - mae: 0.0248 - mse: 0.0012 - val_loss: 0.0012 - val_mae: 0.0251 - val_mse: 0.0012 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 0.0012 - mae: 0.0248 - mse: 0.0012 - val_loss: 0.0012 - val_mae: 0.0251 - val_mse: 0.0012 - 353ms/epoch - 27ms/step\n", "Epoch 34/250\n", - "13/13 - 0s - loss: 0.0012 - mae: 0.0256 - mse: 0.0012 - val_loss: 0.0010 - val_mae: 0.0248 - val_mse: 0.0010 - 244ms/epoch - 19ms/step\n", + "13/13 - 1s - loss: 0.0012 - mae: 0.0256 - mse: 0.0012 - val_loss: 0.0010 - val_mae: 0.0248 - val_mse: 0.0010 - 537ms/epoch - 41ms/step\n", "Epoch 35/250\n", - "13/13 - 0s - loss: 0.0012 - mae: 0.0254 - mse: 0.0012 - val_loss: 0.0010 - val_mae: 0.0243 - val_mse: 0.0010 - 202ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 0.0012 - mae: 0.0254 - mse: 0.0012 - val_loss: 0.0010 - val_mae: 0.0243 - val_mse: 0.0010 - 330ms/epoch - 25ms/step\n", "Epoch 36/250\n", - "13/13 - 0s - loss: 0.0012 - mae: 0.0245 - mse: 0.0012 - val_loss: 0.0010 - val_mae: 0.0234 - val_mse: 0.0010 - 224ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0012 - mae: 0.0245 - mse: 0.0012 - val_loss: 0.0010 - val_mae: 0.0234 - val_mse: 0.0010 - 289ms/epoch - 22ms/step\n", "Epoch 37/250\n", - "13/13 - 0s - loss: 0.0011 - mae: 0.0244 - mse: 0.0011 - val_loss: 0.0010 - val_mae: 0.0239 - val_mse: 0.0010 - 114ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 0.0011 - mae: 0.0244 - mse: 0.0011 - val_loss: 0.0010 - val_mae: 0.0239 - val_mse: 0.0010 - 155ms/epoch - 12ms/step\n", "Epoch 38/250\n", - "13/13 - 0s - loss: 0.0011 - mae: 0.0243 - mse: 0.0011 - val_loss: 9.9094e-04 - val_mae: 0.0235 - val_mse: 9.9094e-04 - 231ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 0.0011 - mae: 0.0243 - mse: 0.0011 - val_loss: 9.9094e-04 - val_mae: 0.0235 - val_mse: 9.9094e-04 - 289ms/epoch - 22ms/step\n", "Epoch 39/250\n", - "13/13 - 0s - loss: 0.0011 - mae: 0.0243 - mse: 0.0011 - val_loss: 0.0010 - val_mae: 0.0238 - val_mse: 0.0010 - 107ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 0.0011 - mae: 0.0243 - mse: 0.0011 - val_loss: 0.0010 - val_mae: 0.0238 - val_mse: 0.0010 - 118ms/epoch - 9ms/step\n", "Epoch 40/250\n", - "13/13 - 0s - loss: 0.0011 - mae: 0.0241 - mse: 0.0011 - val_loss: 9.7491e-04 - val_mae: 0.0239 - val_mse: 9.7491e-04 - 219ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0011 - mae: 0.0241 - mse: 0.0011 - val_loss: 9.7491e-04 - val_mae: 0.0239 - val_mse: 9.7491e-04 - 299ms/epoch - 23ms/step\n", "Epoch 41/250\n", - "13/13 - 0s - loss: 0.0011 - mae: 0.0241 - mse: 0.0011 - val_loss: 9.9821e-04 - val_mae: 0.0227 - val_mse: 9.9821e-04 - 167ms/epoch - 13ms/step\n", + "13/13 - 0s - loss: 0.0011 - mae: 0.0241 - mse: 0.0011 - val_loss: 9.9821e-04 - val_mae: 0.0227 - val_mse: 9.9821e-04 - 151ms/epoch - 12ms/step\n", "Epoch 42/250\n", - "13/13 - 0s - loss: 0.0011 - mae: 0.0240 - mse: 0.0011 - val_loss: 0.0010 - val_mae: 0.0235 - val_mse: 0.0010 - 100ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 0.0011 - mae: 0.0240 - mse: 0.0011 - val_loss: 0.0010 - val_mae: 0.0235 - val_mse: 0.0010 - 192ms/epoch - 15ms/step\n", "Epoch 43/250\n", - "13/13 - 0s - loss: 0.0011 - mae: 0.0238 - mse: 0.0011 - val_loss: 9.4863e-04 - val_mae: 0.0232 - val_mse: 9.4863e-04 - 225ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0011 - mae: 0.0238 - mse: 0.0011 - val_loss: 9.4863e-04 - val_mae: 0.0232 - val_mse: 9.4863e-04 - 237ms/epoch - 18ms/step\n", "Epoch 44/250\n", - "13/13 - 0s - loss: 0.0011 - mae: 0.0236 - mse: 0.0011 - val_loss: 9.8018e-04 - val_mae: 0.0230 - val_mse: 9.8018e-04 - 118ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 0.0011 - mae: 0.0236 - mse: 0.0011 - val_loss: 9.8018e-04 - val_mae: 0.0230 - val_mse: 9.8018e-04 - 154ms/epoch - 12ms/step\n", "Epoch 45/250\n", - "13/13 - 0s - loss: 0.0011 - mae: 0.0239 - mse: 0.0011 - val_loss: 9.5093e-04 - val_mae: 0.0233 - val_mse: 9.5093e-04 - 121ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 0.0011 - mae: 0.0239 - mse: 0.0011 - val_loss: 9.5093e-04 - val_mae: 0.0233 - val_mse: 9.5093e-04 - 158ms/epoch - 12ms/step\n", "Epoch 46/250\n", - "13/13 - 0s - loss: 0.0010 - mae: 0.0230 - mse: 0.0010 - val_loss: 9.4785e-04 - val_mae: 0.0223 - val_mse: 9.4785e-04 - 234ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 0.0010 - mae: 0.0230 - mse: 0.0010 - val_loss: 9.4785e-04 - val_mae: 0.0223 - val_mse: 9.4785e-04 - 218ms/epoch - 17ms/step\n", "Epoch 47/250\n", - "13/13 - 0s - loss: 0.0010 - mae: 0.0231 - mse: 0.0010 - val_loss: 9.7827e-04 - val_mae: 0.0230 - val_mse: 9.7827e-04 - 108ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 0.0010 - mae: 0.0231 - mse: 0.0010 - val_loss: 9.7827e-04 - val_mae: 0.0230 - val_mse: 9.7827e-04 - 116ms/epoch - 9ms/step\n", "Epoch 48/250\n", - "13/13 - 0s - loss: 0.0010 - mae: 0.0232 - mse: 0.0010 - val_loss: 9.0671e-04 - val_mae: 0.0225 - val_mse: 9.0671e-04 - 221ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0010 - mae: 0.0232 - mse: 0.0010 - val_loss: 9.0671e-04 - val_mae: 0.0225 - val_mse: 9.0671e-04 - 288ms/epoch - 22ms/step\n", "Epoch 49/250\n", - "13/13 - 0s - loss: 0.0010 - mae: 0.0230 - mse: 0.0010 - val_loss: 9.2521e-04 - val_mae: 0.0218 - val_mse: 9.2521e-04 - 113ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 0.0010 - mae: 0.0230 - mse: 0.0010 - val_loss: 9.2521e-04 - val_mae: 0.0218 - val_mse: 9.2521e-04 - 140ms/epoch - 11ms/step\n", "Epoch 50/250\n", - "13/13 - 0s - loss: 0.0010 - mae: 0.0231 - mse: 0.0010 - val_loss: 9.7818e-04 - val_mae: 0.0231 - val_mse: 9.7818e-04 - 114ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 0.0010 - mae: 0.0231 - mse: 0.0010 - val_loss: 9.7818e-04 - val_mae: 0.0231 - val_mse: 9.7818e-04 - 149ms/epoch - 11ms/step\n", "Epoch 51/250\n", - "13/13 - 0s - loss: 9.9977e-04 - mae: 0.0232 - mse: 9.9977e-04 - val_loss: 9.4350e-04 - val_mae: 0.0221 - val_mse: 9.4350e-04 - 119ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 9.9977e-04 - mae: 0.0232 - mse: 9.9977e-04 - val_loss: 9.4350e-04 - val_mae: 0.0221 - val_mse: 9.4350e-04 - 146ms/epoch - 11ms/step\n", "Epoch 52/250\n", - "13/13 - 0s - loss: 9.8599e-04 - mae: 0.0229 - mse: 9.8599e-04 - val_loss: 9.0638e-04 - val_mae: 0.0230 - val_mse: 9.0638e-04 - 219ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 9.8599e-04 - mae: 0.0229 - mse: 9.8599e-04 - val_loss: 9.0638e-04 - val_mae: 0.0230 - val_mse: 9.0638e-04 - 265ms/epoch - 20ms/step\n", "Epoch 53/250\n", - "13/13 - 0s - loss: 9.8295e-04 - mae: 0.0228 - mse: 9.8295e-04 - val_loss: 9.0667e-04 - val_mae: 0.0215 - val_mse: 9.0667e-04 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 9.8295e-04 - mae: 0.0228 - mse: 9.8295e-04 - val_loss: 9.0667e-04 - val_mae: 0.0215 - val_mse: 9.0667e-04 - 179ms/epoch - 14ms/step\n", "Epoch 54/250\n", - "13/13 - 0s - loss: 9.7266e-04 - mae: 0.0225 - mse: 9.7266e-04 - val_loss: 9.0391e-04 - val_mae: 0.0224 - val_mse: 9.0391e-04 - 208ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 9.7266e-04 - mae: 0.0225 - mse: 9.7266e-04 - val_loss: 9.0391e-04 - val_mae: 0.0224 - val_mse: 9.0391e-04 - 287ms/epoch - 22ms/step\n", "Epoch 55/250\n", - "13/13 - 0s - loss: 9.5234e-04 - mae: 0.0225 - mse: 9.5234e-04 - val_loss: 8.7426e-04 - val_mae: 0.0219 - val_mse: 8.7426e-04 - 223ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 9.5234e-04 - mae: 0.0225 - mse: 9.5234e-04 - val_loss: 8.7426e-04 - val_mae: 0.0219 - val_mse: 8.7426e-04 - 284ms/epoch - 22ms/step\n", "Epoch 56/250\n", - "13/13 - 0s - loss: 9.4315e-04 - mae: 0.0221 - mse: 9.4315e-04 - val_loss: 8.6742e-04 - val_mae: 0.0224 - val_mse: 8.6742e-04 - 227ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 9.4315e-04 - mae: 0.0221 - mse: 9.4315e-04 - val_loss: 8.6742e-04 - val_mae: 0.0224 - val_mse: 8.6742e-04 - 297ms/epoch - 23ms/step\n", "Epoch 57/250\n", - "13/13 - 0s - loss: 9.9226e-04 - mae: 0.0230 - mse: 9.9226e-04 - val_loss: 8.7793e-04 - val_mae: 0.0225 - val_mse: 8.7793e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 9.9226e-04 - mae: 0.0230 - mse: 9.9226e-04 - val_loss: 8.7793e-04 - val_mae: 0.0225 - val_mse: 8.7793e-04 - 206ms/epoch - 16ms/step\n", "Epoch 58/250\n", - "13/13 - 0s - loss: 9.4137e-04 - mae: 0.0226 - mse: 9.4137e-04 - val_loss: 8.7477e-04 - val_mae: 0.0225 - val_mse: 8.7477e-04 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 9.4137e-04 - mae: 0.0226 - mse: 9.4137e-04 - val_loss: 8.7477e-04 - val_mae: 0.0225 - val_mse: 8.7477e-04 - 160ms/epoch - 12ms/step\n", "Epoch 59/250\n", - "13/13 - 0s - loss: 9.2474e-04 - mae: 0.0219 - mse: 9.2474e-04 - val_loss: 8.5320e-04 - val_mae: 0.0212 - val_mse: 8.5320e-04 - 195ms/epoch - 15ms/step\n", + "13/13 - 0s - loss: 9.2474e-04 - mae: 0.0219 - mse: 9.2474e-04 - val_loss: 8.5320e-04 - val_mae: 0.0212 - val_mse: 8.5320e-04 - 274ms/epoch - 21ms/step\n", "Epoch 60/250\n", - "13/13 - 0s - loss: 9.1133e-04 - mae: 0.0217 - mse: 9.1133e-04 - val_loss: 8.6082e-04 - val_mae: 0.0217 - val_mse: 8.6082e-04 - 114ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 9.1133e-04 - mae: 0.0217 - mse: 9.1133e-04 - val_loss: 8.6082e-04 - val_mae: 0.0217 - val_mse: 8.6082e-04 - 160ms/epoch - 12ms/step\n", "Epoch 61/250\n", - "13/13 - 0s - loss: 9.1801e-04 - mae: 0.0217 - mse: 9.1801e-04 - val_loss: 8.5403e-04 - val_mae: 0.0223 - val_mse: 8.5403e-04 - 109ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 9.1801e-04 - mae: 0.0217 - mse: 9.1801e-04 - val_loss: 8.5403e-04 - val_mae: 0.0223 - val_mse: 8.5403e-04 - 143ms/epoch - 11ms/step\n", "Epoch 62/250\n", - "13/13 - 0s - loss: 9.1987e-04 - mae: 0.0221 - mse: 9.1987e-04 - val_loss: 8.5714e-04 - val_mae: 0.0219 - val_mse: 8.5714e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 9.1987e-04 - mae: 0.0221 - mse: 9.1987e-04 - val_loss: 8.5714e-04 - val_mae: 0.0219 - val_mse: 8.5714e-04 - 128ms/epoch - 10ms/step\n", "Epoch 63/250\n", - "13/13 - 0s - loss: 9.0862e-04 - mae: 0.0222 - mse: 9.0862e-04 - val_loss: 8.6160e-04 - val_mae: 0.0225 - val_mse: 8.6160e-04 - 110ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 9.0862e-04 - mae: 0.0222 - mse: 9.0862e-04 - val_loss: 8.6160e-04 - val_mae: 0.0225 - val_mse: 8.6160e-04 - 154ms/epoch - 12ms/step\n", "Epoch 64/250\n", - "13/13 - 0s - loss: 8.9349e-04 - mae: 0.0220 - mse: 8.9349e-04 - val_loss: 8.2851e-04 - val_mae: 0.0214 - val_mse: 8.2851e-04 - 224ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 8.9349e-04 - mae: 0.0220 - mse: 8.9349e-04 - val_loss: 8.2851e-04 - val_mae: 0.0214 - val_mse: 8.2851e-04 - 284ms/epoch - 22ms/step\n", "Epoch 65/250\n", - "13/13 - 0s - loss: 8.7848e-04 - mae: 0.0216 - mse: 8.7848e-04 - val_loss: 8.5189e-04 - val_mae: 0.0218 - val_mse: 8.5189e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 8.7848e-04 - mae: 0.0216 - mse: 8.7848e-04 - val_loss: 8.5189e-04 - val_mae: 0.0218 - val_mse: 8.5189e-04 - 168ms/epoch - 13ms/step\n", "Epoch 66/250\n", - "13/13 - 0s - loss: 8.9773e-04 - mae: 0.0219 - mse: 8.9773e-04 - val_loss: 8.5650e-04 - val_mae: 0.0211 - val_mse: 8.5650e-04 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 8.9773e-04 - mae: 0.0219 - mse: 8.9773e-04 - val_loss: 8.5650e-04 - val_mae: 0.0211 - val_mse: 8.5650e-04 - 113ms/epoch - 9ms/step\n", "Epoch 67/250\n", - "13/13 - 0s - loss: 8.7443e-04 - mae: 0.0217 - mse: 8.7443e-04 - val_loss: 8.2545e-04 - val_mae: 0.0214 - val_mse: 8.2545e-04 - 221ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 8.7443e-04 - mae: 0.0217 - mse: 8.7443e-04 - val_loss: 8.2545e-04 - val_mae: 0.0214 - val_mse: 8.2545e-04 - 264ms/epoch - 20ms/step\n", "Epoch 68/250\n", - "13/13 - 0s - loss: 8.9141e-04 - mae: 0.0217 - mse: 8.9141e-04 - val_loss: 8.4471e-04 - val_mae: 0.0219 - val_mse: 8.4471e-04 - 106ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 8.9141e-04 - mae: 0.0217 - mse: 8.9141e-04 - val_loss: 8.4471e-04 - val_mae: 0.0219 - val_mse: 8.4471e-04 - 189ms/epoch - 15ms/step\n", "Epoch 69/250\n", - "13/13 - 0s - loss: 8.9507e-04 - mae: 0.0224 - mse: 8.9507e-04 - val_loss: 8.7916e-04 - val_mae: 0.0217 - val_mse: 8.7916e-04 - 114ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 8.9507e-04 - mae: 0.0224 - mse: 8.9507e-04 - val_loss: 8.7916e-04 - val_mae: 0.0217 - val_mse: 8.7916e-04 - 175ms/epoch - 13ms/step\n", "Epoch 70/250\n", - "13/13 - 0s - loss: 8.5737e-04 - mae: 0.0216 - mse: 8.5737e-04 - val_loss: 8.8807e-04 - val_mae: 0.0215 - val_mse: 8.8807e-04 - 114ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 8.5737e-04 - mae: 0.0216 - mse: 8.5737e-04 - val_loss: 8.8807e-04 - val_mae: 0.0215 - val_mse: 8.8807e-04 - 322ms/epoch - 25ms/step\n", "Epoch 71/250\n", - "13/13 - 0s - loss: 8.5560e-04 - mae: 0.0214 - mse: 8.5560e-04 - val_loss: 8.3750e-04 - val_mae: 0.0213 - val_mse: 8.3750e-04 - 115ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 8.5560e-04 - mae: 0.0214 - mse: 8.5560e-04 - val_loss: 8.3750e-04 - val_mae: 0.0213 - val_mse: 8.3750e-04 - 207ms/epoch - 16ms/step\n", "Epoch 72/250\n", - "13/13 - 0s - loss: 8.5576e-04 - mae: 0.0218 - mse: 8.5576e-04 - val_loss: 8.1156e-04 - val_mae: 0.0210 - val_mse: 8.1156e-04 - 211ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 8.5576e-04 - mae: 0.0218 - mse: 8.5576e-04 - val_loss: 8.1156e-04 - val_mae: 0.0210 - val_mse: 8.1156e-04 - 257ms/epoch - 20ms/step\n", "Epoch 73/250\n", - "13/13 - 0s - loss: 8.4688e-04 - mae: 0.0216 - mse: 8.4688e-04 - val_loss: 8.0221e-04 - val_mae: 0.0210 - val_mse: 8.0221e-04 - 216ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 8.4688e-04 - mae: 0.0216 - mse: 8.4688e-04 - val_loss: 8.0221e-04 - val_mae: 0.0210 - val_mse: 8.0221e-04 - 233ms/epoch - 18ms/step\n", "Epoch 74/250\n", - "13/13 - 0s - loss: 8.3636e-04 - mae: 0.0211 - mse: 8.3636e-04 - val_loss: 7.9384e-04 - val_mae: 0.0208 - val_mse: 7.9384e-04 - 219ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 8.3636e-04 - mae: 0.0211 - mse: 8.3636e-04 - val_loss: 7.9384e-04 - val_mae: 0.0208 - val_mse: 7.9384e-04 - 250ms/epoch - 19ms/step\n", "Epoch 75/250\n", - "13/13 - 0s - loss: 8.4758e-04 - mae: 0.0222 - mse: 8.4758e-04 - val_loss: 8.2932e-04 - val_mae: 0.0212 - val_mse: 8.2932e-04 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 8.4758e-04 - mae: 0.0222 - mse: 8.4758e-04 - val_loss: 8.2932e-04 - val_mae: 0.0212 - val_mse: 8.2932e-04 - 119ms/epoch - 9ms/step\n", "Epoch 76/250\n", - "13/13 - 0s - loss: 8.4142e-04 - mae: 0.0213 - mse: 8.4142e-04 - val_loss: 8.0552e-04 - val_mae: 0.0209 - val_mse: 8.0552e-04 - 118ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 8.4142e-04 - mae: 0.0213 - mse: 8.4142e-04 - val_loss: 8.0552e-04 - val_mae: 0.0209 - val_mse: 8.0552e-04 - 150ms/epoch - 12ms/step\n", "Epoch 77/250\n", - "13/13 - 0s - loss: 8.5035e-04 - mae: 0.0215 - mse: 8.5035e-04 - val_loss: 8.6014e-04 - val_mae: 0.0215 - val_mse: 8.6014e-04 - 115ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 8.5035e-04 - mae: 0.0215 - mse: 8.5035e-04 - val_loss: 8.6014e-04 - val_mae: 0.0215 - val_mse: 8.6014e-04 - 126ms/epoch - 10ms/step\n", "Epoch 78/250\n", - "13/13 - 0s - loss: 8.9015e-04 - mae: 0.0228 - mse: 8.9015e-04 - val_loss: 9.2548e-04 - val_mae: 0.0225 - val_mse: 9.2548e-04 - 108ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 8.9015e-04 - mae: 0.0228 - mse: 8.9015e-04 - val_loss: 9.2548e-04 - val_mae: 0.0225 - val_mse: 9.2548e-04 - 242ms/epoch - 19ms/step\n", "Epoch 79/250\n", - "13/13 - 0s - loss: 8.1577e-04 - mae: 0.0212 - mse: 8.1577e-04 - val_loss: 8.4703e-04 - val_mae: 0.0211 - val_mse: 8.4703e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 8.1577e-04 - mae: 0.0212 - mse: 8.1577e-04 - val_loss: 8.4703e-04 - val_mae: 0.0211 - val_mse: 8.4703e-04 - 165ms/epoch - 13ms/step\n", "Epoch 80/250\n", - "13/13 - 0s - loss: 8.0555e-04 - mae: 0.0211 - mse: 8.0555e-04 - val_loss: 8.5652e-04 - val_mae: 0.0214 - val_mse: 8.5652e-04 - 108ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 8.0555e-04 - mae: 0.0211 - mse: 8.0555e-04 - val_loss: 8.5652e-04 - val_mae: 0.0214 - val_mse: 8.5652e-04 - 131ms/epoch - 10ms/step\n", "Epoch 81/250\n", - "13/13 - 0s - loss: 8.3478e-04 - mae: 0.0219 - mse: 8.3478e-04 - val_loss: 9.1057e-04 - val_mae: 0.0222 - val_mse: 9.1057e-04 - 114ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 8.3478e-04 - mae: 0.0219 - mse: 8.3478e-04 - val_loss: 9.1057e-04 - val_mae: 0.0222 - val_mse: 9.1057e-04 - 166ms/epoch - 13ms/step\n", "Epoch 82/250\n", - "13/13 - 0s - loss: 8.2593e-04 - mae: 0.0217 - mse: 8.2593e-04 - val_loss: 8.1172e-04 - val_mae: 0.0209 - val_mse: 8.1172e-04 - 113ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 8.2593e-04 - mae: 0.0217 - mse: 8.2593e-04 - val_loss: 8.1172e-04 - val_mae: 0.0209 - val_mse: 8.1172e-04 - 143ms/epoch - 11ms/step\n", "Epoch 83/250\n", - "13/13 - 0s - loss: 8.2887e-04 - mae: 0.0213 - mse: 8.2887e-04 - val_loss: 8.2033e-04 - val_mae: 0.0211 - val_mse: 8.2033e-04 - 165ms/epoch - 13ms/step\n", + "13/13 - 0s - loss: 8.2887e-04 - mae: 0.0213 - mse: 8.2887e-04 - val_loss: 8.2033e-04 - val_mae: 0.0211 - val_mse: 8.2033e-04 - 115ms/epoch - 9ms/step\n", "Epoch 84/250\n", - "13/13 - 0s - loss: 8.1454e-04 - mae: 0.0219 - mse: 8.1454e-04 - val_loss: 8.1589e-04 - val_mae: 0.0211 - val_mse: 8.1589e-04 - 109ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 8.1454e-04 - mae: 0.0219 - mse: 8.1454e-04 - val_loss: 8.1589e-04 - val_mae: 0.0211 - val_mse: 8.1589e-04 - 148ms/epoch - 11ms/step\n", "Epoch 85/250\n", - "13/13 - 0s - loss: 8.0777e-04 - mae: 0.0212 - mse: 8.0777e-04 - val_loss: 7.8637e-04 - val_mae: 0.0208 - val_mse: 7.8637e-04 - 177ms/epoch - 14ms/step\n", + "13/13 - 0s - loss: 8.0777e-04 - mae: 0.0212 - mse: 8.0777e-04 - val_loss: 7.8637e-04 - val_mae: 0.0208 - val_mse: 7.8637e-04 - 282ms/epoch - 22ms/step\n", "Epoch 86/250\n", - "13/13 - 0s - loss: 7.8107e-04 - mae: 0.0213 - mse: 7.8107e-04 - val_loss: 7.8138e-04 - val_mae: 0.0212 - val_mse: 7.8138e-04 - 223ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 7.8107e-04 - mae: 0.0213 - mse: 7.8107e-04 - val_loss: 7.8138e-04 - val_mae: 0.0212 - val_mse: 7.8138e-04 - 246ms/epoch - 19ms/step\n", "Epoch 87/250\n", "13/13 - 0s - loss: 7.9729e-04 - mae: 0.0210 - mse: 7.9729e-04 - val_loss: 7.3667e-04 - val_mae: 0.0204 - val_mse: 7.3667e-04 - 237ms/epoch - 18ms/step\n", "Epoch 88/250\n", - "13/13 - 0s - loss: 7.5931e-04 - mae: 0.0205 - mse: 7.5931e-04 - val_loss: 7.5522e-04 - val_mae: 0.0210 - val_mse: 7.5522e-04 - 108ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 7.5931e-04 - mae: 0.0205 - mse: 7.5931e-04 - val_loss: 7.5522e-04 - val_mae: 0.0210 - val_mse: 7.5522e-04 - 208ms/epoch - 16ms/step\n", "Epoch 89/250\n", - "13/13 - 0s - loss: 7.6036e-04 - mae: 0.0211 - mse: 7.6036e-04 - val_loss: 7.5503e-04 - val_mae: 0.0207 - val_mse: 7.5503e-04 - 106ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 7.6036e-04 - mae: 0.0211 - mse: 7.6036e-04 - val_loss: 7.5503e-04 - val_mae: 0.0207 - val_mse: 7.5503e-04 - 193ms/epoch - 15ms/step\n", "Epoch 90/250\n", - "13/13 - 0s - loss: 7.6322e-04 - mae: 0.0204 - mse: 7.6322e-04 - val_loss: 7.7629e-04 - val_mae: 0.0203 - val_mse: 7.7629e-04 - 117ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 7.6322e-04 - mae: 0.0204 - mse: 7.6322e-04 - val_loss: 7.7629e-04 - val_mae: 0.0203 - val_mse: 7.7629e-04 - 168ms/epoch - 13ms/step\n", "Epoch 91/250\n", - "13/13 - 0s - loss: 7.5436e-04 - mae: 0.0208 - mse: 7.5436e-04 - val_loss: 7.4549e-04 - val_mae: 0.0210 - val_mse: 7.4549e-04 - 109ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 7.5436e-04 - mae: 0.0208 - mse: 7.5436e-04 - val_loss: 7.4549e-04 - val_mae: 0.0210 - val_mse: 7.4549e-04 - 156ms/epoch - 12ms/step\n", "Epoch 92/250\n", - "13/13 - 0s - loss: 7.8479e-04 - mae: 0.0208 - mse: 7.8479e-04 - val_loss: 8.0607e-04 - val_mae: 0.0208 - val_mse: 8.0607e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 7.8479e-04 - mae: 0.0208 - mse: 7.8479e-04 - val_loss: 8.0607e-04 - val_mae: 0.0208 - val_mse: 8.0607e-04 - 137ms/epoch - 11ms/step\n", "Epoch 93/250\n", - "13/13 - 0s - loss: 7.7194e-04 - mae: 0.0211 - mse: 7.7194e-04 - val_loss: 7.7994e-04 - val_mae: 0.0206 - val_mse: 7.7994e-04 - 109ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 7.7194e-04 - mae: 0.0211 - mse: 7.7194e-04 - val_loss: 7.7994e-04 - val_mae: 0.0206 - val_mse: 7.7994e-04 - 174ms/epoch - 13ms/step\n", "Epoch 94/250\n", - "13/13 - 0s - loss: 7.4802e-04 - mae: 0.0205 - mse: 7.4802e-04 - val_loss: 7.2386e-04 - val_mae: 0.0201 - val_mse: 7.2386e-04 - 190ms/epoch - 15ms/step\n", + "13/13 - 0s - loss: 7.4802e-04 - mae: 0.0205 - mse: 7.4802e-04 - val_loss: 7.2386e-04 - val_mae: 0.0201 - val_mse: 7.2386e-04 - 303ms/epoch - 23ms/step\n", "Epoch 95/250\n", - "13/13 - 0s - loss: 7.2616e-04 - mae: 0.0203 - mse: 7.2616e-04 - val_loss: 7.2728e-04 - val_mae: 0.0204 - val_mse: 7.2728e-04 - 121ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 7.2616e-04 - mae: 0.0203 - mse: 7.2616e-04 - val_loss: 7.2728e-04 - val_mae: 0.0204 - val_mse: 7.2728e-04 - 129ms/epoch - 10ms/step\n", "Epoch 96/250\n", - "13/13 - 0s - loss: 7.2310e-04 - mae: 0.0204 - mse: 7.2310e-04 - val_loss: 7.1349e-04 - val_mae: 0.0206 - val_mse: 7.1349e-04 - 219ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 7.2310e-04 - mae: 0.0204 - mse: 7.2310e-04 - val_loss: 7.1349e-04 - val_mae: 0.0206 - val_mse: 7.1349e-04 - 218ms/epoch - 17ms/step\n", "Epoch 97/250\n", - "13/13 - 0s - loss: 7.0905e-04 - mae: 0.0201 - mse: 7.0905e-04 - val_loss: 7.6242e-04 - val_mae: 0.0205 - val_mse: 7.6242e-04 - 117ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 7.0905e-04 - mae: 0.0201 - mse: 7.0905e-04 - val_loss: 7.6242e-04 - val_mae: 0.0205 - val_mse: 7.6242e-04 - 128ms/epoch - 10ms/step\n", "Epoch 98/250\n", - "13/13 - 0s - loss: 7.1839e-04 - mae: 0.0200 - mse: 7.1839e-04 - val_loss: 7.7098e-04 - val_mae: 0.0202 - val_mse: 7.7098e-04 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 7.1839e-04 - mae: 0.0200 - mse: 7.1839e-04 - val_loss: 7.7098e-04 - val_mae: 0.0202 - val_mse: 7.7098e-04 - 147ms/epoch - 11ms/step\n", "Epoch 99/250\n", - "13/13 - 0s - loss: 7.3924e-04 - mae: 0.0208 - mse: 7.3924e-04 - val_loss: 7.8554e-04 - val_mae: 0.0206 - val_mse: 7.8554e-04 - 114ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 7.3924e-04 - mae: 0.0208 - mse: 7.3924e-04 - val_loss: 7.8554e-04 - val_mae: 0.0206 - val_mse: 7.8554e-04 - 130ms/epoch - 10ms/step\n", "Epoch 100/250\n", - "13/13 - 0s - loss: 7.5556e-04 - mae: 0.0209 - mse: 7.5556e-04 - val_loss: 8.6021e-04 - val_mae: 0.0215 - val_mse: 8.6021e-04 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 7.5556e-04 - mae: 0.0209 - mse: 7.5556e-04 - val_loss: 8.6021e-04 - val_mae: 0.0215 - val_mse: 8.6021e-04 - 174ms/epoch - 13ms/step\n", "Epoch 101/250\n", - "13/13 - 0s - loss: 7.9288e-04 - mae: 0.0213 - mse: 7.9288e-04 - val_loss: 7.2968e-04 - val_mae: 0.0203 - val_mse: 7.2968e-04 - 110ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 7.9288e-04 - mae: 0.0213 - mse: 7.9288e-04 - val_loss: 7.2968e-04 - val_mae: 0.0203 - val_mse: 7.2968e-04 - 125ms/epoch - 10ms/step\n", "Epoch 102/250\n", - "13/13 - 0s - loss: 7.1861e-04 - mae: 0.0204 - mse: 7.1861e-04 - val_loss: 7.0941e-04 - val_mae: 0.0207 - val_mse: 7.0941e-04 - 227ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 7.1861e-04 - mae: 0.0204 - mse: 7.1861e-04 - val_loss: 7.0941e-04 - val_mae: 0.0207 - val_mse: 7.0941e-04 - 260ms/epoch - 20ms/step\n", "Epoch 103/250\n", - "13/13 - 0s - loss: 7.5092e-04 - mae: 0.0208 - mse: 7.5092e-04 - val_loss: 6.8788e-04 - val_mae: 0.0198 - val_mse: 6.8788e-04 - 218ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 7.5092e-04 - mae: 0.0208 - mse: 7.5092e-04 - val_loss: 6.8788e-04 - val_mae: 0.0198 - val_mse: 6.8788e-04 - 275ms/epoch - 21ms/step\n", "Epoch 104/250\n", - "13/13 - 0s - loss: 7.0460e-04 - mae: 0.0200 - mse: 7.0460e-04 - val_loss: 7.2570e-04 - val_mae: 0.0200 - val_mse: 7.2570e-04 - 115ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 7.0460e-04 - mae: 0.0200 - mse: 7.0460e-04 - val_loss: 7.2570e-04 - val_mae: 0.0200 - val_mse: 7.2570e-04 - 125ms/epoch - 10ms/step\n", "Epoch 105/250\n", - "13/13 - 0s - loss: 6.9255e-04 - mae: 0.0202 - mse: 6.9255e-04 - val_loss: 6.7411e-04 - val_mae: 0.0199 - val_mse: 6.7411e-04 - 193ms/epoch - 15ms/step\n", + "13/13 - 0s - loss: 6.9255e-04 - mae: 0.0202 - mse: 6.9255e-04 - val_loss: 6.7411e-04 - val_mae: 0.0199 - val_mse: 6.7411e-04 - 275ms/epoch - 21ms/step\n", "Epoch 106/250\n", - "13/13 - 0s - loss: 6.8175e-04 - mae: 0.0196 - mse: 6.8175e-04 - val_loss: 6.7593e-04 - val_mae: 0.0196 - val_mse: 6.7593e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 6.8175e-04 - mae: 0.0196 - mse: 6.8175e-04 - val_loss: 6.7593e-04 - val_mae: 0.0196 - val_mse: 6.7593e-04 - 157ms/epoch - 12ms/step\n", "Epoch 107/250\n", - "13/13 - 0s - loss: 6.7018e-04 - mae: 0.0196 - mse: 6.7018e-04 - val_loss: 6.8702e-04 - val_mae: 0.0196 - val_mse: 6.8702e-04 - 110ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 6.7018e-04 - mae: 0.0196 - mse: 6.7018e-04 - val_loss: 6.8702e-04 - val_mae: 0.0196 - val_mse: 6.8702e-04 - 183ms/epoch - 14ms/step\n", "Epoch 108/250\n", - "13/13 - 0s - loss: 6.7955e-04 - mae: 0.0198 - mse: 6.7955e-04 - val_loss: 7.6778e-04 - val_mae: 0.0204 - val_mse: 7.6778e-04 - 107ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 6.7955e-04 - mae: 0.0198 - mse: 6.7955e-04 - val_loss: 7.6778e-04 - val_mae: 0.0204 - val_mse: 7.6778e-04 - 192ms/epoch - 15ms/step\n", "Epoch 109/250\n", - "13/13 - 0s - loss: 6.8953e-04 - mae: 0.0198 - mse: 6.8953e-04 - val_loss: 6.7251e-04 - val_mae: 0.0195 - val_mse: 6.7251e-04 - 192ms/epoch - 15ms/step\n", + "13/13 - 1s - loss: 6.8953e-04 - mae: 0.0198 - mse: 6.8953e-04 - val_loss: 6.7251e-04 - val_mae: 0.0195 - val_mse: 6.7251e-04 - 516ms/epoch - 40ms/step\n", "Epoch 110/250\n", - "13/13 - 0s - loss: 6.6819e-04 - mae: 0.0197 - mse: 6.6819e-04 - val_loss: 6.8310e-04 - val_mae: 0.0197 - val_mse: 6.8310e-04 - 102ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 6.6819e-04 - mae: 0.0197 - mse: 6.6819e-04 - val_loss: 6.8310e-04 - val_mae: 0.0197 - val_mse: 6.8310e-04 - 146ms/epoch - 11ms/step\n", "Epoch 111/250\n", - "13/13 - 0s - loss: 6.7136e-04 - mae: 0.0197 - mse: 6.7136e-04 - val_loss: 6.5858e-04 - val_mae: 0.0199 - val_mse: 6.5858e-04 - 224ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 6.7136e-04 - mae: 0.0197 - mse: 6.7136e-04 - val_loss: 6.5858e-04 - val_mae: 0.0199 - val_mse: 6.5858e-04 - 208ms/epoch - 16ms/step\n", "Epoch 112/250\n", - "13/13 - 0s - loss: 6.5784e-04 - mae: 0.0195 - mse: 6.5784e-04 - val_loss: 6.5838e-04 - val_mae: 0.0196 - val_mse: 6.5838e-04 - 234ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 6.5784e-04 - mae: 0.0195 - mse: 6.5784e-04 - val_loss: 6.5838e-04 - val_mae: 0.0196 - val_mse: 6.5838e-04 - 215ms/epoch - 17ms/step\n", "Epoch 113/250\n", - "13/13 - 0s - loss: 6.6861e-04 - mae: 0.0198 - mse: 6.6861e-04 - val_loss: 6.9871e-04 - val_mae: 0.0196 - val_mse: 6.9871e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 6.6861e-04 - mae: 0.0198 - mse: 6.6861e-04 - val_loss: 6.9871e-04 - val_mae: 0.0196 - val_mse: 6.9871e-04 - 149ms/epoch - 11ms/step\n", "Epoch 114/250\n", - "13/13 - 0s - loss: 6.6345e-04 - mae: 0.0196 - mse: 6.6345e-04 - val_loss: 6.8190e-04 - val_mae: 0.0196 - val_mse: 6.8190e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 6.6345e-04 - mae: 0.0196 - mse: 6.6345e-04 - val_loss: 6.8190e-04 - val_mae: 0.0196 - val_mse: 6.8190e-04 - 141ms/epoch - 11ms/step\n", "Epoch 115/250\n", - "13/13 - 0s - loss: 6.4121e-04 - mae: 0.0193 - mse: 6.4121e-04 - val_loss: 6.6493e-04 - val_mae: 0.0196 - val_mse: 6.6493e-04 - 120ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 6.4121e-04 - mae: 0.0193 - mse: 6.4121e-04 - val_loss: 6.6493e-04 - val_mae: 0.0196 - val_mse: 6.6493e-04 - 166ms/epoch - 13ms/step\n", "Epoch 116/250\n", "13/13 - 0s - loss: 6.5036e-04 - mae: 0.0194 - mse: 6.5036e-04 - val_loss: 6.5858e-04 - val_mae: 0.0191 - val_mse: 6.5858e-04 - 107ms/epoch - 8ms/step\n", "Epoch 117/250\n", - "13/13 - 0s - loss: 6.4983e-04 - mae: 0.0194 - mse: 6.4983e-04 - val_loss: 7.0443e-04 - val_mae: 0.0198 - val_mse: 7.0443e-04 - 115ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 6.4983e-04 - mae: 0.0194 - mse: 6.4983e-04 - val_loss: 7.0443e-04 - val_mae: 0.0198 - val_mse: 7.0443e-04 - 109ms/epoch - 8ms/step\n", "Epoch 118/250\n", - "13/13 - 0s - loss: 6.4994e-04 - mae: 0.0195 - mse: 6.4994e-04 - val_loss: 6.3181e-04 - val_mae: 0.0193 - val_mse: 6.3181e-04 - 216ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 6.4994e-04 - mae: 0.0195 - mse: 6.4994e-04 - val_loss: 6.3181e-04 - val_mae: 0.0193 - val_mse: 6.3181e-04 - 296ms/epoch - 23ms/step\n", "Epoch 119/250\n", - "13/13 - 0s - loss: 6.6252e-04 - mae: 0.0199 - mse: 6.6252e-04 - val_loss: 6.3527e-04 - val_mae: 0.0191 - val_mse: 6.3527e-04 - 115ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 6.6252e-04 - mae: 0.0199 - mse: 6.6252e-04 - val_loss: 6.3527e-04 - val_mae: 0.0191 - val_mse: 6.3527e-04 - 165ms/epoch - 13ms/step\n", "Epoch 120/250\n", - "13/13 - 0s - loss: 6.4578e-04 - mae: 0.0193 - mse: 6.4578e-04 - val_loss: 6.3127e-04 - val_mae: 0.0189 - val_mse: 6.3127e-04 - 251ms/epoch - 19ms/step\n", + "13/13 - 0s - loss: 6.4578e-04 - mae: 0.0193 - mse: 6.4578e-04 - val_loss: 6.3127e-04 - val_mae: 0.0189 - val_mse: 6.3127e-04 - 190ms/epoch - 15ms/step\n", "Epoch 121/250\n", - "13/13 - 0s - loss: 6.1375e-04 - mae: 0.0191 - mse: 6.1375e-04 - val_loss: 6.5351e-04 - val_mae: 0.0192 - val_mse: 6.5351e-04 - 107ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 6.1375e-04 - mae: 0.0191 - mse: 6.1375e-04 - val_loss: 6.5351e-04 - val_mae: 0.0192 - val_mse: 6.5351e-04 - 125ms/epoch - 10ms/step\n", "Epoch 122/250\n", - "13/13 - 0s - loss: 6.4650e-04 - mae: 0.0196 - mse: 6.4650e-04 - val_loss: 8.0733e-04 - val_mae: 0.0210 - val_mse: 8.0733e-04 - 120ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 6.4650e-04 - mae: 0.0196 - mse: 6.4650e-04 - val_loss: 8.0733e-04 - val_mae: 0.0210 - val_mse: 8.0733e-04 - 142ms/epoch - 11ms/step\n", "Epoch 123/250\n", - "13/13 - 0s - loss: 6.5887e-04 - mae: 0.0198 - mse: 6.5887e-04 - val_loss: 6.2666e-04 - val_mae: 0.0191 - val_mse: 6.2666e-04 - 227ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 6.5887e-04 - mae: 0.0198 - mse: 6.5887e-04 - val_loss: 6.2666e-04 - val_mae: 0.0191 - val_mse: 6.2666e-04 - 278ms/epoch - 21ms/step\n", "Epoch 124/250\n", - "13/13 - 0s - loss: 6.1387e-04 - mae: 0.0189 - mse: 6.1387e-04 - val_loss: 6.1020e-04 - val_mae: 0.0188 - val_mse: 6.1020e-04 - 210ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 6.1387e-04 - mae: 0.0189 - mse: 6.1387e-04 - val_loss: 6.1020e-04 - val_mae: 0.0188 - val_mse: 6.1020e-04 - 246ms/epoch - 19ms/step\n", "Epoch 125/250\n", - "13/13 - 0s - loss: 6.1348e-04 - mae: 0.0191 - mse: 6.1348e-04 - val_loss: 6.1093e-04 - val_mae: 0.0193 - val_mse: 6.1093e-04 - 108ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 6.1348e-04 - mae: 0.0191 - mse: 6.1348e-04 - val_loss: 6.1093e-04 - val_mae: 0.0193 - val_mse: 6.1093e-04 - 135ms/epoch - 10ms/step\n", "Epoch 126/250\n", - "13/13 - 0s - loss: 6.1374e-04 - mae: 0.0189 - mse: 6.1374e-04 - val_loss: 6.1062e-04 - val_mae: 0.0188 - val_mse: 6.1062e-04 - 116ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 6.1374e-04 - mae: 0.0189 - mse: 6.1374e-04 - val_loss: 6.1062e-04 - val_mae: 0.0188 - val_mse: 6.1062e-04 - 174ms/epoch - 13ms/step\n", "Epoch 127/250\n", - "13/13 - 0s - loss: 6.1279e-04 - mae: 0.0190 - mse: 6.1279e-04 - val_loss: 6.4391e-04 - val_mae: 0.0190 - val_mse: 6.4391e-04 - 107ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 6.1279e-04 - mae: 0.0190 - mse: 6.1279e-04 - val_loss: 6.4391e-04 - val_mae: 0.0190 - val_mse: 6.4391e-04 - 142ms/epoch - 11ms/step\n", "Epoch 128/250\n", - "13/13 - 0s - loss: 6.0951e-04 - mae: 0.0189 - mse: 6.0951e-04 - val_loss: 5.9592e-04 - val_mae: 0.0188 - val_mse: 5.9592e-04 - 228ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 6.0951e-04 - mae: 0.0189 - mse: 6.0951e-04 - val_loss: 5.9592e-04 - val_mae: 0.0188 - val_mse: 5.9592e-04 - 249ms/epoch - 19ms/step\n", "Epoch 129/250\n", - "13/13 - 0s - loss: 6.2194e-04 - mae: 0.0192 - mse: 6.2194e-04 - val_loss: 5.9344e-04 - val_mae: 0.0188 - val_mse: 5.9344e-04 - 180ms/epoch - 14ms/step\n", + "13/13 - 0s - loss: 6.2194e-04 - mae: 0.0192 - mse: 6.2194e-04 - val_loss: 5.9344e-04 - val_mae: 0.0188 - val_mse: 5.9344e-04 - 279ms/epoch - 21ms/step\n", "Epoch 130/250\n", - "13/13 - 0s - loss: 6.1795e-04 - mae: 0.0191 - mse: 6.1795e-04 - val_loss: 5.8880e-04 - val_mae: 0.0188 - val_mse: 5.8880e-04 - 218ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 6.1795e-04 - mae: 0.0191 - mse: 6.1795e-04 - val_loss: 5.8880e-04 - val_mae: 0.0188 - val_mse: 5.8880e-04 - 356ms/epoch - 27ms/step\n", "Epoch 131/250\n", - "13/13 - 0s - loss: 6.6297e-04 - mae: 0.0199 - mse: 6.6297e-04 - val_loss: 7.2306e-04 - val_mae: 0.0197 - val_mse: 7.2306e-04 - 117ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 6.6297e-04 - mae: 0.0199 - mse: 6.6297e-04 - val_loss: 7.2306e-04 - val_mae: 0.0197 - val_mse: 7.2306e-04 - 151ms/epoch - 12ms/step\n", "Epoch 132/250\n", - "13/13 - 0s - loss: 5.8788e-04 - mae: 0.0189 - mse: 5.8788e-04 - val_loss: 6.0686e-04 - val_mae: 0.0189 - val_mse: 6.0686e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 5.8788e-04 - mae: 0.0189 - mse: 5.8788e-04 - val_loss: 6.0686e-04 - val_mae: 0.0189 - val_mse: 6.0686e-04 - 102ms/epoch - 8ms/step\n", "Epoch 133/250\n", - "13/13 - 0s - loss: 5.7425e-04 - mae: 0.0184 - mse: 5.7425e-04 - val_loss: 5.7895e-04 - val_mae: 0.0183 - val_mse: 5.7895e-04 - 218ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 5.7425e-04 - mae: 0.0184 - mse: 5.7425e-04 - val_loss: 5.7895e-04 - val_mae: 0.0183 - val_mse: 5.7895e-04 - 239ms/epoch - 18ms/step\n", "Epoch 134/250\n", - "13/13 - 0s - loss: 5.8783e-04 - mae: 0.0186 - mse: 5.8783e-04 - val_loss: 5.7846e-04 - val_mae: 0.0188 - val_mse: 5.7846e-04 - 230ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 5.8783e-04 - mae: 0.0186 - mse: 5.8783e-04 - val_loss: 5.7846e-04 - val_mae: 0.0188 - val_mse: 5.7846e-04 - 285ms/epoch - 22ms/step\n", "Epoch 135/250\n", - "13/13 - 0s - loss: 5.8541e-04 - mae: 0.0188 - mse: 5.8541e-04 - val_loss: 6.7887e-04 - val_mae: 0.0191 - val_mse: 6.7887e-04 - 108ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 5.8541e-04 - mae: 0.0188 - mse: 5.8541e-04 - val_loss: 6.7887e-04 - val_mae: 0.0191 - val_mse: 6.7887e-04 - 178ms/epoch - 14ms/step\n", "Epoch 136/250\n", - "13/13 - 0s - loss: 5.9158e-04 - mae: 0.0185 - mse: 5.9158e-04 - val_loss: 5.9231e-04 - val_mae: 0.0188 - val_mse: 5.9231e-04 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 5.9158e-04 - mae: 0.0185 - mse: 5.9158e-04 - val_loss: 5.9231e-04 - val_mae: 0.0188 - val_mse: 5.9231e-04 - 113ms/epoch - 9ms/step\n", "Epoch 137/250\n", - "13/13 - 0s - loss: 5.9616e-04 - mae: 0.0192 - mse: 5.9616e-04 - val_loss: 7.0218e-04 - val_mae: 0.0212 - val_mse: 7.0218e-04 - 102ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 5.9616e-04 - mae: 0.0192 - mse: 5.9616e-04 - val_loss: 7.0218e-04 - val_mae: 0.0212 - val_mse: 7.0218e-04 - 138ms/epoch - 11ms/step\n", "Epoch 138/250\n", - "13/13 - 0s - loss: 6.2132e-04 - mae: 0.0190 - mse: 6.2132e-04 - val_loss: 6.3436e-04 - val_mae: 0.0186 - val_mse: 6.3436e-04 - 105ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 6.2132e-04 - mae: 0.0190 - mse: 6.2132e-04 - val_loss: 6.3436e-04 - val_mae: 0.0186 - val_mse: 6.3436e-04 - 144ms/epoch - 11ms/step\n", "Epoch 139/250\n", - "13/13 - 0s - loss: 5.8416e-04 - mae: 0.0189 - mse: 5.8416e-04 - val_loss: 5.7793e-04 - val_mae: 0.0184 - val_mse: 5.7793e-04 - 215ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 5.8416e-04 - mae: 0.0189 - mse: 5.8416e-04 - val_loss: 5.7793e-04 - val_mae: 0.0184 - val_mse: 5.7793e-04 - 279ms/epoch - 21ms/step\n", "Epoch 140/250\n", - "13/13 - 0s - loss: 6.5695e-04 - mae: 0.0195 - mse: 6.5695e-04 - val_loss: 5.8062e-04 - val_mae: 0.0189 - val_mse: 5.8062e-04 - 109ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 6.5695e-04 - mae: 0.0195 - mse: 6.5695e-04 - val_loss: 5.8062e-04 - val_mae: 0.0189 - val_mse: 5.8062e-04 - 174ms/epoch - 13ms/step\n", "Epoch 141/250\n", - "13/13 - 0s - loss: 6.4168e-04 - mae: 0.0200 - mse: 6.4168e-04 - val_loss: 6.9879e-04 - val_mae: 0.0196 - val_mse: 6.9879e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 6.4168e-04 - mae: 0.0200 - mse: 6.4168e-04 - val_loss: 6.9879e-04 - val_mae: 0.0196 - val_mse: 6.9879e-04 - 118ms/epoch - 9ms/step\n", "Epoch 142/250\n", - "13/13 - 0s - loss: 6.5517e-04 - mae: 0.0198 - mse: 6.5517e-04 - val_loss: 6.3928e-04 - val_mae: 0.0193 - val_mse: 6.3928e-04 - 118ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 6.5517e-04 - mae: 0.0198 - mse: 6.5517e-04 - val_loss: 6.3928e-04 - val_mae: 0.0193 - val_mse: 6.3928e-04 - 120ms/epoch - 9ms/step\n", "Epoch 143/250\n", - "13/13 - 0s - loss: 5.8456e-04 - mae: 0.0190 - mse: 5.8456e-04 - val_loss: 5.4596e-04 - val_mae: 0.0181 - val_mse: 5.4596e-04 - 225ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 5.8456e-04 - mae: 0.0190 - mse: 5.8456e-04 - val_loss: 5.4596e-04 - val_mae: 0.0181 - val_mse: 5.4596e-04 - 304ms/epoch - 23ms/step\n", "Epoch 144/250\n", - "13/13 - 0s - loss: 5.9458e-04 - mae: 0.0186 - mse: 5.9458e-04 - val_loss: 5.8598e-04 - val_mae: 0.0181 - val_mse: 5.8598e-04 - 107ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 5.9458e-04 - mae: 0.0186 - mse: 5.9458e-04 - val_loss: 5.8598e-04 - val_mae: 0.0181 - val_mse: 5.8598e-04 - 178ms/epoch - 14ms/step\n", "Epoch 145/250\n", - "13/13 - 0s - loss: 5.6787e-04 - mae: 0.0186 - mse: 5.6787e-04 - val_loss: 5.6263e-04 - val_mae: 0.0186 - val_mse: 5.6263e-04 - 124ms/epoch - 10ms/step\n", + "13/13 - 0s - loss: 5.6787e-04 - mae: 0.0186 - mse: 5.6787e-04 - val_loss: 5.6263e-04 - val_mae: 0.0186 - val_mse: 5.6263e-04 - 131ms/epoch - 10ms/step\n", "Epoch 146/250\n", - "13/13 - 0s - loss: 5.3545e-04 - mae: 0.0178 - mse: 5.3545e-04 - val_loss: 5.3802e-04 - val_mae: 0.0179 - val_mse: 5.3802e-04 - 186ms/epoch - 14ms/step\n", + "13/13 - 0s - loss: 5.3545e-04 - mae: 0.0178 - mse: 5.3545e-04 - val_loss: 5.3802e-04 - val_mae: 0.0179 - val_mse: 5.3802e-04 - 396ms/epoch - 30ms/step\n", "Epoch 147/250\n", - "13/13 - 0s - loss: 5.2310e-04 - mae: 0.0177 - mse: 5.2310e-04 - val_loss: 5.4103e-04 - val_mae: 0.0179 - val_mse: 5.4103e-04 - 102ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 5.2310e-04 - mae: 0.0177 - mse: 5.2310e-04 - val_loss: 5.4103e-04 - val_mae: 0.0179 - val_mse: 5.4103e-04 - 151ms/epoch - 12ms/step\n", "Epoch 148/250\n", - "13/13 - 0s - loss: 5.2826e-04 - mae: 0.0176 - mse: 5.2826e-04 - val_loss: 5.9310e-04 - val_mae: 0.0181 - val_mse: 5.9310e-04 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 5.2826e-04 - mae: 0.0176 - mse: 5.2826e-04 - val_loss: 5.9310e-04 - val_mae: 0.0181 - val_mse: 5.9310e-04 - 155ms/epoch - 12ms/step\n", "Epoch 149/250\n", - "13/13 - 0s - loss: 5.3295e-04 - mae: 0.0179 - mse: 5.3295e-04 - val_loss: 5.4002e-04 - val_mae: 0.0176 - val_mse: 5.4002e-04 - 110ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 5.3295e-04 - mae: 0.0179 - mse: 5.3295e-04 - val_loss: 5.4002e-04 - val_mae: 0.0176 - val_mse: 5.4002e-04 - 120ms/epoch - 9ms/step\n", "Epoch 150/250\n", - "13/13 - 0s - loss: 5.1491e-04 - mae: 0.0174 - mse: 5.1491e-04 - val_loss: 5.9602e-04 - val_mae: 0.0179 - val_mse: 5.9602e-04 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 5.1491e-04 - mae: 0.0174 - mse: 5.1491e-04 - val_loss: 5.9602e-04 - val_mae: 0.0179 - val_mse: 5.9602e-04 - 137ms/epoch - 11ms/step\n", "Epoch 151/250\n", - "13/13 - 0s - loss: 5.2334e-04 - mae: 0.0179 - mse: 5.2334e-04 - val_loss: 5.2811e-04 - val_mae: 0.0178 - val_mse: 5.2811e-04 - 222ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 5.2334e-04 - mae: 0.0179 - mse: 5.2334e-04 - val_loss: 5.2811e-04 - val_mae: 0.0178 - val_mse: 5.2811e-04 - 315ms/epoch - 24ms/step\n", "Epoch 152/250\n", - "13/13 - 0s - loss: 5.2768e-04 - mae: 0.0178 - mse: 5.2768e-04 - val_loss: 5.5139e-04 - val_mae: 0.0184 - val_mse: 5.5139e-04 - 118ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 5.2768e-04 - mae: 0.0178 - mse: 5.2768e-04 - val_loss: 5.5139e-04 - val_mae: 0.0184 - val_mse: 5.5139e-04 - 198ms/epoch - 15ms/step\n", "Epoch 153/250\n", - "13/13 - 0s - loss: 5.2962e-04 - mae: 0.0179 - mse: 5.2962e-04 - val_loss: 5.7462e-04 - val_mae: 0.0178 - val_mse: 5.7462e-04 - 99ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 5.2962e-04 - mae: 0.0179 - mse: 5.2962e-04 - val_loss: 5.7462e-04 - val_mae: 0.0178 - val_mse: 5.7462e-04 - 129ms/epoch - 10ms/step\n", "Epoch 154/250\n", - "13/13 - 0s - loss: 5.0260e-04 - mae: 0.0173 - mse: 5.0260e-04 - val_loss: 5.3387e-04 - val_mae: 0.0181 - val_mse: 5.3387e-04 - 102ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 5.0260e-04 - mae: 0.0173 - mse: 5.0260e-04 - val_loss: 5.3387e-04 - val_mae: 0.0181 - val_mse: 5.3387e-04 - 131ms/epoch - 10ms/step\n", "Epoch 155/250\n", - "13/13 - 0s - loss: 5.0501e-04 - mae: 0.0175 - mse: 5.0501e-04 - val_loss: 5.0751e-04 - val_mae: 0.0172 - val_mse: 5.0751e-04 - 211ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 5.0501e-04 - mae: 0.0175 - mse: 5.0501e-04 - val_loss: 5.0751e-04 - val_mae: 0.0172 - val_mse: 5.0751e-04 - 267ms/epoch - 21ms/step\n", "Epoch 156/250\n", - "13/13 - 0s - loss: 5.0518e-04 - mae: 0.0173 - mse: 5.0518e-04 - val_loss: 5.5553e-04 - val_mae: 0.0174 - val_mse: 5.5553e-04 - 189ms/epoch - 15ms/step\n", + "13/13 - 0s - loss: 5.0518e-04 - mae: 0.0173 - mse: 5.0518e-04 - val_loss: 5.5553e-04 - val_mae: 0.0174 - val_mse: 5.5553e-04 - 182ms/epoch - 14ms/step\n", "Epoch 157/250\n", - "13/13 - 0s - loss: 5.0064e-04 - mae: 0.0172 - mse: 5.0064e-04 - val_loss: 5.1205e-04 - val_mae: 0.0172 - val_mse: 5.1205e-04 - 108ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 5.0064e-04 - mae: 0.0172 - mse: 5.0064e-04 - val_loss: 5.1205e-04 - val_mae: 0.0172 - val_mse: 5.1205e-04 - 160ms/epoch - 12ms/step\n", "Epoch 158/250\n", - "13/13 - 0s - loss: 4.9541e-04 - mae: 0.0172 - mse: 4.9541e-04 - val_loss: 5.0799e-04 - val_mae: 0.0172 - val_mse: 5.0799e-04 - 106ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.9541e-04 - mae: 0.0172 - mse: 4.9541e-04 - val_loss: 5.0799e-04 - val_mae: 0.0172 - val_mse: 5.0799e-04 - 131ms/epoch - 10ms/step\n", "Epoch 159/250\n", - "13/13 - 0s - loss: 5.4153e-04 - mae: 0.0182 - mse: 5.4153e-04 - val_loss: 5.2077e-04 - val_mae: 0.0171 - val_mse: 5.2077e-04 - 106ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 5.4153e-04 - mae: 0.0182 - mse: 5.4153e-04 - val_loss: 5.2077e-04 - val_mae: 0.0171 - val_mse: 5.2077e-04 - 172ms/epoch - 13ms/step\n", "Epoch 160/250\n", - "13/13 - 0s - loss: 4.8280e-04 - mae: 0.0170 - mse: 4.8280e-04 - val_loss: 5.1410e-04 - val_mae: 0.0168 - val_mse: 5.1410e-04 - 114ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.8280e-04 - mae: 0.0170 - mse: 4.8280e-04 - val_loss: 5.1410e-04 - val_mae: 0.0168 - val_mse: 5.1410e-04 - 164ms/epoch - 13ms/step\n", "Epoch 161/250\n", - "13/13 - 0s - loss: 4.8993e-04 - mae: 0.0171 - mse: 4.8993e-04 - val_loss: 5.1744e-04 - val_mae: 0.0171 - val_mse: 5.1744e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.8993e-04 - mae: 0.0171 - mse: 4.8993e-04 - val_loss: 5.1744e-04 - val_mae: 0.0171 - val_mse: 5.1744e-04 - 169ms/epoch - 13ms/step\n", "Epoch 162/250\n", - "13/13 - 0s - loss: 4.8044e-04 - mae: 0.0169 - mse: 4.8044e-04 - val_loss: 5.1099e-04 - val_mae: 0.0168 - val_mse: 5.1099e-04 - 103ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.8044e-04 - mae: 0.0169 - mse: 4.8044e-04 - val_loss: 5.1099e-04 - val_mae: 0.0168 - val_mse: 5.1099e-04 - 188ms/epoch - 14ms/step\n", "Epoch 163/250\n", - "13/13 - 0s - loss: 4.9657e-04 - mae: 0.0171 - mse: 4.9657e-04 - val_loss: 4.9877e-04 - val_mae: 0.0171 - val_mse: 4.9877e-04 - 227ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 4.9657e-04 - mae: 0.0171 - mse: 4.9657e-04 - val_loss: 4.9877e-04 - val_mae: 0.0171 - val_mse: 4.9877e-04 - 258ms/epoch - 20ms/step\n", "Epoch 164/250\n", - "13/13 - 0s - loss: 4.8858e-04 - mae: 0.0170 - mse: 4.8858e-04 - val_loss: 5.0099e-04 - val_mae: 0.0169 - val_mse: 5.0099e-04 - 99ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.8858e-04 - mae: 0.0170 - mse: 4.8858e-04 - val_loss: 5.0099e-04 - val_mae: 0.0169 - val_mse: 5.0099e-04 - 150ms/epoch - 12ms/step\n", "Epoch 165/250\n", - "13/13 - 0s - loss: 4.7747e-04 - mae: 0.0170 - mse: 4.7747e-04 - val_loss: 5.8449e-04 - val_mae: 0.0174 - val_mse: 5.8449e-04 - 97ms/epoch - 7ms/step\n", + "13/13 - 0s - loss: 4.7747e-04 - mae: 0.0170 - mse: 4.7747e-04 - val_loss: 5.8449e-04 - val_mae: 0.0174 - val_mse: 5.8449e-04 - 158ms/epoch - 12ms/step\n", "Epoch 166/250\n", - "13/13 - 0s - loss: 4.9897e-04 - mae: 0.0171 - mse: 4.9897e-04 - val_loss: 4.9512e-04 - val_mae: 0.0173 - val_mse: 4.9512e-04 - 174ms/epoch - 13ms/step\n", + "13/13 - 0s - loss: 4.9897e-04 - mae: 0.0171 - mse: 4.9897e-04 - val_loss: 4.9512e-04 - val_mae: 0.0173 - val_mse: 4.9512e-04 - 265ms/epoch - 20ms/step\n", "Epoch 167/250\n", - "13/13 - 0s - loss: 4.8695e-04 - mae: 0.0173 - mse: 4.8695e-04 - val_loss: 5.0306e-04 - val_mae: 0.0165 - val_mse: 5.0306e-04 - 97ms/epoch - 7ms/step\n", + "13/13 - 0s - loss: 4.8695e-04 - mae: 0.0173 - mse: 4.8695e-04 - val_loss: 5.0306e-04 - val_mae: 0.0165 - val_mse: 5.0306e-04 - 151ms/epoch - 12ms/step\n", "Epoch 168/250\n", - "13/13 - 0s - loss: 4.7948e-04 - mae: 0.0171 - mse: 4.7948e-04 - val_loss: 6.8895e-04 - val_mae: 0.0193 - val_mse: 6.8895e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.7948e-04 - mae: 0.0171 - mse: 4.7948e-04 - val_loss: 6.8895e-04 - val_mae: 0.0193 - val_mse: 6.8895e-04 - 128ms/epoch - 10ms/step\n", "Epoch 169/250\n", - "13/13 - 0s - loss: 4.8055e-04 - mae: 0.0168 - mse: 4.8055e-04 - val_loss: 4.9053e-04 - val_mae: 0.0171 - val_mse: 4.9053e-04 - 215ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 4.8055e-04 - mae: 0.0168 - mse: 4.8055e-04 - val_loss: 4.9053e-04 - val_mae: 0.0171 - val_mse: 4.9053e-04 - 234ms/epoch - 18ms/step\n", "Epoch 170/250\n", - "13/13 - 0s - loss: 4.5980e-04 - mae: 0.0168 - mse: 4.5980e-04 - val_loss: 5.2267e-04 - val_mae: 0.0170 - val_mse: 5.2267e-04 - 113ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.5980e-04 - mae: 0.0168 - mse: 4.5980e-04 - val_loss: 5.2267e-04 - val_mae: 0.0170 - val_mse: 5.2267e-04 - 167ms/epoch - 13ms/step\n", "Epoch 171/250\n", - "13/13 - 0s - loss: 4.6495e-04 - mae: 0.0168 - mse: 4.6495e-04 - val_loss: 4.6718e-04 - val_mae: 0.0165 - val_mse: 4.6718e-04 - 216ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 4.6495e-04 - mae: 0.0168 - mse: 4.6495e-04 - val_loss: 4.6718e-04 - val_mae: 0.0165 - val_mse: 4.6718e-04 - 243ms/epoch - 19ms/step\n", "Epoch 172/250\n", - "13/13 - 0s - loss: 4.6046e-04 - mae: 0.0168 - mse: 4.6046e-04 - val_loss: 4.6731e-04 - val_mae: 0.0166 - val_mse: 4.6731e-04 - 98ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.6046e-04 - mae: 0.0168 - mse: 4.6046e-04 - val_loss: 4.6731e-04 - val_mae: 0.0166 - val_mse: 4.6731e-04 - 148ms/epoch - 11ms/step\n", "Epoch 173/250\n", - "13/13 - 0s - loss: 4.6993e-04 - mae: 0.0168 - mse: 4.6993e-04 - val_loss: 4.8190e-04 - val_mae: 0.0167 - val_mse: 4.8190e-04 - 101ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.6993e-04 - mae: 0.0168 - mse: 4.6993e-04 - val_loss: 4.8190e-04 - val_mae: 0.0167 - val_mse: 4.8190e-04 - 143ms/epoch - 11ms/step\n", "Epoch 174/250\n", - "13/13 - 0s - loss: 4.8411e-04 - mae: 0.0172 - mse: 4.8411e-04 - val_loss: 5.0800e-04 - val_mae: 0.0164 - val_mse: 5.0800e-04 - 99ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.8411e-04 - mae: 0.0172 - mse: 4.8411e-04 - val_loss: 5.0800e-04 - val_mae: 0.0164 - val_mse: 5.0800e-04 - 131ms/epoch - 10ms/step\n", "Epoch 175/250\n", - "13/13 - 0s - loss: 4.5295e-04 - mae: 0.0164 - mse: 4.5295e-04 - val_loss: 6.2583e-04 - val_mae: 0.0182 - val_mse: 6.2583e-04 - 113ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.5295e-04 - mae: 0.0164 - mse: 4.5295e-04 - val_loss: 6.2583e-04 - val_mae: 0.0182 - val_mse: 6.2583e-04 - 136ms/epoch - 10ms/step\n", "Epoch 176/250\n", - "13/13 - 0s - loss: 5.3742e-04 - mae: 0.0183 - mse: 5.3742e-04 - val_loss: 5.6727e-04 - val_mae: 0.0187 - val_mse: 5.6727e-04 - 106ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 5.3742e-04 - mae: 0.0183 - mse: 5.3742e-04 - val_loss: 5.6727e-04 - val_mae: 0.0187 - val_mse: 5.6727e-04 - 141ms/epoch - 11ms/step\n", "Epoch 177/250\n", - "13/13 - 0s - loss: 5.3634e-04 - mae: 0.0182 - mse: 5.3634e-04 - val_loss: 4.6197e-04 - val_mae: 0.0157 - val_mse: 4.6197e-04 - 212ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 5.3634e-04 - mae: 0.0182 - mse: 5.3634e-04 - val_loss: 4.6197e-04 - val_mae: 0.0157 - val_mse: 4.6197e-04 - 316ms/epoch - 24ms/step\n", "Epoch 178/250\n", - "13/13 - 0s - loss: 4.8847e-04 - mae: 0.0169 - mse: 4.8847e-04 - val_loss: 4.6646e-04 - val_mae: 0.0160 - val_mse: 4.6646e-04 - 108ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.8847e-04 - mae: 0.0169 - mse: 4.8847e-04 - val_loss: 4.6646e-04 - val_mae: 0.0160 - val_mse: 4.6646e-04 - 214ms/epoch - 16ms/step\n", "Epoch 179/250\n", - "13/13 - 0s - loss: 4.3622e-04 - mae: 0.0160 - mse: 4.3622e-04 - val_loss: 5.3203e-04 - val_mae: 0.0164 - val_mse: 5.3203e-04 - 107ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.3622e-04 - mae: 0.0160 - mse: 4.3622e-04 - val_loss: 5.3203e-04 - val_mae: 0.0164 - val_mse: 5.3203e-04 - 181ms/epoch - 14ms/step\n", "Epoch 180/250\n", - "13/13 - 0s - loss: 4.7108e-04 - mae: 0.0165 - mse: 4.7108e-04 - val_loss: 4.6548e-04 - val_mae: 0.0161 - val_mse: 4.6548e-04 - 114ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.7108e-04 - mae: 0.0165 - mse: 4.7108e-04 - val_loss: 4.6548e-04 - val_mae: 0.0161 - val_mse: 4.6548e-04 - 144ms/epoch - 11ms/step\n", "Epoch 181/250\n", - "13/13 - 0s - loss: 4.3932e-04 - mae: 0.0164 - mse: 4.3932e-04 - val_loss: 4.4195e-04 - val_mae: 0.0157 - val_mse: 4.4195e-04 - 212ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 4.3932e-04 - mae: 0.0164 - mse: 4.3932e-04 - val_loss: 4.4195e-04 - val_mae: 0.0157 - val_mse: 4.4195e-04 - 302ms/epoch - 23ms/step\n", "Epoch 182/250\n", - "13/13 - 0s - loss: 4.3340e-04 - mae: 0.0159 - mse: 4.3340e-04 - val_loss: 4.5463e-04 - val_mae: 0.0158 - val_mse: 4.5463e-04 - 95ms/epoch - 7ms/step\n", + "13/13 - 0s - loss: 4.3340e-04 - mae: 0.0159 - mse: 4.3340e-04 - val_loss: 4.5463e-04 - val_mae: 0.0158 - val_mse: 4.5463e-04 - 216ms/epoch - 17ms/step\n", "Epoch 183/250\n", - "13/13 - 0s - loss: 4.2639e-04 - mae: 0.0162 - mse: 4.2639e-04 - val_loss: 4.3874e-04 - val_mae: 0.0156 - val_mse: 4.3874e-04 - 169ms/epoch - 13ms/step\n", + "13/13 - 0s - loss: 4.2639e-04 - mae: 0.0162 - mse: 4.2639e-04 - val_loss: 4.3874e-04 - val_mae: 0.0156 - val_mse: 4.3874e-04 - 296ms/epoch - 23ms/step\n", "Epoch 184/250\n", - "13/13 - 0s - loss: 4.4119e-04 - mae: 0.0159 - mse: 4.4119e-04 - val_loss: 4.7791e-04 - val_mae: 0.0169 - val_mse: 4.7791e-04 - 107ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.4119e-04 - mae: 0.0159 - mse: 4.4119e-04 - val_loss: 4.7791e-04 - val_mae: 0.0169 - val_mse: 4.7791e-04 - 195ms/epoch - 15ms/step\n", "Epoch 185/250\n", - "13/13 - 0s - loss: 4.4805e-04 - mae: 0.0164 - mse: 4.4805e-04 - val_loss: 4.6275e-04 - val_mae: 0.0163 - val_mse: 4.6275e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.4805e-04 - mae: 0.0164 - mse: 4.4805e-04 - val_loss: 4.6275e-04 - val_mae: 0.0163 - val_mse: 4.6275e-04 - 119ms/epoch - 9ms/step\n", "Epoch 186/250\n", - "13/13 - 0s - loss: 4.4495e-04 - mae: 0.0163 - mse: 4.4495e-04 - val_loss: 4.4746e-04 - val_mae: 0.0155 - val_mse: 4.4746e-04 - 107ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.4495e-04 - mae: 0.0163 - mse: 4.4495e-04 - val_loss: 4.4746e-04 - val_mae: 0.0155 - val_mse: 4.4746e-04 - 115ms/epoch - 9ms/step\n", "Epoch 187/250\n", - "13/13 - 0s - loss: 4.7030e-04 - mae: 0.0167 - mse: 4.7030e-04 - val_loss: 5.6234e-04 - val_mae: 0.0169 - val_mse: 5.6234e-04 - 106ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.7030e-04 - mae: 0.0167 - mse: 4.7030e-04 - val_loss: 5.6234e-04 - val_mae: 0.0169 - val_mse: 5.6234e-04 - 147ms/epoch - 11ms/step\n", "Epoch 188/250\n", - "13/13 - 0s - loss: 4.4920e-04 - mae: 0.0160 - mse: 4.4920e-04 - val_loss: 4.2347e-04 - val_mae: 0.0154 - val_mse: 4.2347e-04 - 204ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 4.4920e-04 - mae: 0.0160 - mse: 4.4920e-04 - val_loss: 4.2347e-04 - val_mae: 0.0154 - val_mse: 4.2347e-04 - 451ms/epoch - 35ms/step\n", "Epoch 189/250\n", - "13/13 - 0s - loss: 4.1850e-04 - mae: 0.0159 - mse: 4.1850e-04 - val_loss: 4.5828e-04 - val_mae: 0.0156 - val_mse: 4.5828e-04 - 114ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.1850e-04 - mae: 0.0159 - mse: 4.1850e-04 - val_loss: 4.5828e-04 - val_mae: 0.0156 - val_mse: 4.5828e-04 - 110ms/epoch - 8ms/step\n", "Epoch 190/250\n", - "13/13 - 0s - loss: 4.2816e-04 - mae: 0.0159 - mse: 4.2816e-04 - val_loss: 4.2983e-04 - val_mae: 0.0155 - val_mse: 4.2983e-04 - 114ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.2816e-04 - mae: 0.0159 - mse: 4.2816e-04 - val_loss: 4.2983e-04 - val_mae: 0.0155 - val_mse: 4.2983e-04 - 121ms/epoch - 9ms/step\n", "Epoch 191/250\n", - "13/13 - 0s - loss: 4.1442e-04 - mae: 0.0156 - mse: 4.1442e-04 - val_loss: 4.5135e-04 - val_mae: 0.0154 - val_mse: 4.5135e-04 - 103ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.1442e-04 - mae: 0.0156 - mse: 4.1442e-04 - val_loss: 4.5135e-04 - val_mae: 0.0154 - val_mse: 4.5135e-04 - 173ms/epoch - 13ms/step\n", "Epoch 192/250\n", - "13/13 - 0s - loss: 4.1126e-04 - mae: 0.0159 - mse: 4.1126e-04 - val_loss: 4.2590e-04 - val_mae: 0.0151 - val_mse: 4.2590e-04 - 159ms/epoch - 12ms/step\n", + "13/13 - 0s - loss: 4.1126e-04 - mae: 0.0159 - mse: 4.1126e-04 - val_loss: 4.2590e-04 - val_mae: 0.0151 - val_mse: 4.2590e-04 - 149ms/epoch - 11ms/step\n", "Epoch 193/250\n", - "13/13 - 0s - loss: 4.1197e-04 - mae: 0.0155 - mse: 4.1197e-04 - val_loss: 4.2111e-04 - val_mae: 0.0151 - val_mse: 4.2111e-04 - 209ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 4.1197e-04 - mae: 0.0155 - mse: 4.1197e-04 - val_loss: 4.2111e-04 - val_mae: 0.0151 - val_mse: 4.2111e-04 - 243ms/epoch - 19ms/step\n", "Epoch 194/250\n", - "13/13 - 0s - loss: 4.0958e-04 - mae: 0.0157 - mse: 4.0958e-04 - val_loss: 4.1117e-04 - val_mae: 0.0149 - val_mse: 4.1117e-04 - 185ms/epoch - 14ms/step\n", + "13/13 - 0s - loss: 4.0958e-04 - mae: 0.0157 - mse: 4.0958e-04 - val_loss: 4.1117e-04 - val_mae: 0.0149 - val_mse: 4.1117e-04 - 272ms/epoch - 21ms/step\n", "Epoch 195/250\n", - "13/13 - 0s - loss: 3.9243e-04 - mae: 0.0153 - mse: 3.9243e-04 - val_loss: 4.1405e-04 - val_mae: 0.0150 - val_mse: 4.1405e-04 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.9243e-04 - mae: 0.0153 - mse: 3.9243e-04 - val_loss: 4.1405e-04 - val_mae: 0.0150 - val_mse: 4.1405e-04 - 136ms/epoch - 10ms/step\n", "Epoch 196/250\n", - "13/13 - 0s - loss: 4.0300e-04 - mae: 0.0153 - mse: 4.0300e-04 - val_loss: 4.3989e-04 - val_mae: 0.0150 - val_mse: 4.3989e-04 - 113ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.0300e-04 - mae: 0.0153 - mse: 4.0300e-04 - val_loss: 4.3989e-04 - val_mae: 0.0150 - val_mse: 4.3989e-04 - 151ms/epoch - 12ms/step\n", "Epoch 197/250\n", - "13/13 - 0s - loss: 4.0142e-04 - mae: 0.0154 - mse: 4.0142e-04 - val_loss: 4.3665e-04 - val_mae: 0.0151 - val_mse: 4.3665e-04 - 109ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.0142e-04 - mae: 0.0154 - mse: 4.0142e-04 - val_loss: 4.3665e-04 - val_mae: 0.0151 - val_mse: 4.3665e-04 - 160ms/epoch - 12ms/step\n", "Epoch 198/250\n", - "13/13 - 0s - loss: 3.9936e-04 - mae: 0.0153 - mse: 3.9936e-04 - val_loss: 4.2897e-04 - val_mae: 0.0149 - val_mse: 4.2897e-04 - 107ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.9936e-04 - mae: 0.0153 - mse: 3.9936e-04 - val_loss: 4.2897e-04 - val_mae: 0.0149 - val_mse: 4.2897e-04 - 114ms/epoch - 9ms/step\n", "Epoch 199/250\n", - "13/13 - 0s - loss: 4.0143e-04 - mae: 0.0153 - mse: 4.0143e-04 - val_loss: 4.0877e-04 - val_mae: 0.0148 - val_mse: 4.0877e-04 - 214ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 4.0143e-04 - mae: 0.0153 - mse: 4.0143e-04 - val_loss: 4.0877e-04 - val_mae: 0.0148 - val_mse: 4.0877e-04 - 209ms/epoch - 16ms/step\n", "Epoch 200/250\n", - "13/13 - 0s - loss: 3.9668e-04 - mae: 0.0152 - mse: 3.9668e-04 - val_loss: 4.3571e-04 - val_mae: 0.0150 - val_mse: 4.3571e-04 - 106ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.9668e-04 - mae: 0.0152 - mse: 3.9668e-04 - val_loss: 4.3571e-04 - val_mae: 0.0150 - val_mse: 4.3571e-04 - 198ms/epoch - 15ms/step\n", "Epoch 201/250\n", - "13/13 - 0s - loss: 3.9516e-04 - mae: 0.0154 - mse: 3.9516e-04 - val_loss: 5.1984e-04 - val_mae: 0.0161 - val_mse: 5.1984e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.9516e-04 - mae: 0.0154 - mse: 3.9516e-04 - val_loss: 5.1984e-04 - val_mae: 0.0161 - val_mse: 5.1984e-04 - 147ms/epoch - 11ms/step\n", "Epoch 202/250\n", - "13/13 - 0s - loss: 4.5166e-04 - mae: 0.0161 - mse: 4.5166e-04 - val_loss: 5.4696e-04 - val_mae: 0.0182 - val_mse: 5.4696e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.5166e-04 - mae: 0.0161 - mse: 4.5166e-04 - val_loss: 5.4696e-04 - val_mae: 0.0182 - val_mse: 5.4696e-04 - 128ms/epoch - 10ms/step\n", "Epoch 203/250\n", - "13/13 - 0s - loss: 4.5904e-04 - mae: 0.0166 - mse: 4.5904e-04 - val_loss: 4.1240e-04 - val_mae: 0.0150 - val_mse: 4.1240e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.5904e-04 - mae: 0.0166 - mse: 4.5904e-04 - val_loss: 4.1240e-04 - val_mae: 0.0150 - val_mse: 4.1240e-04 - 137ms/epoch - 11ms/step\n", "Epoch 204/250\n", - "13/13 - 0s - loss: 3.9851e-04 - mae: 0.0150 - mse: 3.9851e-04 - val_loss: 4.5210e-04 - val_mae: 0.0154 - val_mse: 4.5210e-04 - 115ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.9851e-04 - mae: 0.0150 - mse: 3.9851e-04 - val_loss: 4.5210e-04 - val_mae: 0.0154 - val_mse: 4.5210e-04 - 141ms/epoch - 11ms/step\n", "Epoch 205/250\n", - "13/13 - 0s - loss: 3.8760e-04 - mae: 0.0151 - mse: 3.8760e-04 - val_loss: 4.0982e-04 - val_mae: 0.0149 - val_mse: 4.0982e-04 - 116ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.8760e-04 - mae: 0.0151 - mse: 3.8760e-04 - val_loss: 4.0982e-04 - val_mae: 0.0149 - val_mse: 4.0982e-04 - 121ms/epoch - 9ms/step\n", "Epoch 206/250\n", - "13/13 - 0s - loss: 4.1937e-04 - mae: 0.0156 - mse: 4.1937e-04 - val_loss: 3.8857e-04 - val_mae: 0.0145 - val_mse: 3.8857e-04 - 222ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 4.1937e-04 - mae: 0.0156 - mse: 4.1937e-04 - val_loss: 3.8857e-04 - val_mae: 0.0145 - val_mse: 3.8857e-04 - 294ms/epoch - 23ms/step\n", "Epoch 207/250\n", - "13/13 - 0s - loss: 3.7173e-04 - mae: 0.0146 - mse: 3.7173e-04 - val_loss: 3.9353e-04 - val_mae: 0.0147 - val_mse: 3.9353e-04 - 108ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.7173e-04 - mae: 0.0146 - mse: 3.7173e-04 - val_loss: 3.9353e-04 - val_mae: 0.0147 - val_mse: 3.9353e-04 - 146ms/epoch - 11ms/step\n", "Epoch 208/250\n", - "13/13 - 0s - loss: 3.9673e-04 - mae: 0.0153 - mse: 3.9673e-04 - val_loss: 3.9003e-04 - val_mae: 0.0145 - val_mse: 3.9003e-04 - 114ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.9673e-04 - mae: 0.0153 - mse: 3.9673e-04 - val_loss: 3.9003e-04 - val_mae: 0.0145 - val_mse: 3.9003e-04 - 115ms/epoch - 9ms/step\n", "Epoch 209/250\n", - "13/13 - 0s - loss: 4.2359e-04 - mae: 0.0155 - mse: 4.2359e-04 - val_loss: 3.9027e-04 - val_mae: 0.0146 - val_mse: 3.9027e-04 - 110ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.2359e-04 - mae: 0.0155 - mse: 4.2359e-04 - val_loss: 3.9027e-04 - val_mae: 0.0146 - val_mse: 3.9027e-04 - 150ms/epoch - 12ms/step\n", "Epoch 210/250\n", - "13/13 - 0s - loss: 3.9302e-04 - mae: 0.0154 - mse: 3.9302e-04 - val_loss: 4.1320e-04 - val_mae: 0.0152 - val_mse: 4.1320e-04 - 113ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.9302e-04 - mae: 0.0154 - mse: 3.9302e-04 - val_loss: 4.1320e-04 - val_mae: 0.0152 - val_mse: 4.1320e-04 - 167ms/epoch - 13ms/step\n", "Epoch 211/250\n", - "13/13 - 0s - loss: 3.6641e-04 - mae: 0.0147 - mse: 3.6641e-04 - val_loss: 3.9564e-04 - val_mae: 0.0141 - val_mse: 3.9564e-04 - 116ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.6641e-04 - mae: 0.0147 - mse: 3.6641e-04 - val_loss: 3.9564e-04 - val_mae: 0.0141 - val_mse: 3.9564e-04 - 167ms/epoch - 13ms/step\n", "Epoch 212/250\n", - "13/13 - 0s - loss: 3.6259e-04 - mae: 0.0143 - mse: 3.6259e-04 - val_loss: 3.8787e-04 - val_mae: 0.0146 - val_mse: 3.8787e-04 - 228ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 3.6259e-04 - mae: 0.0143 - mse: 3.6259e-04 - val_loss: 3.8787e-04 - val_mae: 0.0146 - val_mse: 3.8787e-04 - 309ms/epoch - 24ms/step\n", "Epoch 213/250\n", - "13/13 - 0s - loss: 4.0665e-04 - mae: 0.0156 - mse: 4.0665e-04 - val_loss: 5.0910e-04 - val_mae: 0.0160 - val_mse: 5.0910e-04 - 120ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.0665e-04 - mae: 0.0156 - mse: 4.0665e-04 - val_loss: 5.0910e-04 - val_mae: 0.0160 - val_mse: 5.0910e-04 - 158ms/epoch - 12ms/step\n", "Epoch 214/250\n", - "13/13 - 0s - loss: 4.5758e-04 - mae: 0.0169 - mse: 4.5758e-04 - val_loss: 4.1241e-04 - val_mae: 0.0141 - val_mse: 4.1241e-04 - 104ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.5758e-04 - mae: 0.0169 - mse: 4.5758e-04 - val_loss: 4.1241e-04 - val_mae: 0.0141 - val_mse: 4.1241e-04 - 125ms/epoch - 10ms/step\n", "Epoch 215/250\n", - "13/13 - 0s - loss: 4.0666e-04 - mae: 0.0155 - mse: 4.0666e-04 - val_loss: 4.6639e-04 - val_mae: 0.0151 - val_mse: 4.6639e-04 - 104ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.0666e-04 - mae: 0.0155 - mse: 4.0666e-04 - val_loss: 4.6639e-04 - val_mae: 0.0151 - val_mse: 4.6639e-04 - 177ms/epoch - 14ms/step\n", "Epoch 216/250\n", - "13/13 - 0s - loss: 3.6615e-04 - mae: 0.0145 - mse: 3.6615e-04 - val_loss: 3.8294e-04 - val_mae: 0.0138 - val_mse: 3.8294e-04 - 201ms/epoch - 15ms/step\n", + "13/13 - 0s - loss: 3.6615e-04 - mae: 0.0145 - mse: 3.6615e-04 - val_loss: 3.8294e-04 - val_mae: 0.0138 - val_mse: 3.8294e-04 - 253ms/epoch - 19ms/step\n", "Epoch 217/250\n", - "13/13 - 0s - loss: 3.8135e-04 - mae: 0.0149 - mse: 3.8135e-04 - val_loss: 5.1259e-04 - val_mae: 0.0162 - val_mse: 5.1259e-04 - 119ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.8135e-04 - mae: 0.0149 - mse: 3.8135e-04 - val_loss: 5.1259e-04 - val_mae: 0.0162 - val_mse: 5.1259e-04 - 136ms/epoch - 10ms/step\n", "Epoch 218/250\n", - "13/13 - 0s - loss: 3.5877e-04 - mae: 0.0144 - mse: 3.5877e-04 - val_loss: 3.7918e-04 - val_mae: 0.0142 - val_mse: 3.7918e-04 - 222ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 3.5877e-04 - mae: 0.0144 - mse: 3.5877e-04 - val_loss: 3.7918e-04 - val_mae: 0.0142 - val_mse: 3.7918e-04 - 254ms/epoch - 20ms/step\n", "Epoch 219/250\n", - "13/13 - 0s - loss: 4.1097e-04 - mae: 0.0155 - mse: 4.1097e-04 - val_loss: 3.7973e-04 - val_mae: 0.0144 - val_mse: 3.7973e-04 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.1097e-04 - mae: 0.0155 - mse: 4.1097e-04 - val_loss: 3.7973e-04 - val_mae: 0.0144 - val_mse: 3.7973e-04 - 167ms/epoch - 13ms/step\n", "Epoch 220/250\n", - "13/13 - 0s - loss: 3.7840e-04 - mae: 0.0149 - mse: 3.7840e-04 - val_loss: 4.7988e-04 - val_mae: 0.0153 - val_mse: 4.7988e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.7840e-04 - mae: 0.0149 - mse: 3.7840e-04 - val_loss: 4.7988e-04 - val_mae: 0.0153 - val_mse: 4.7988e-04 - 157ms/epoch - 12ms/step\n", "Epoch 221/250\n", - "13/13 - 0s - loss: 3.5545e-04 - mae: 0.0143 - mse: 3.5545e-04 - val_loss: 3.7230e-04 - val_mae: 0.0136 - val_mse: 3.7230e-04 - 226ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 3.5545e-04 - mae: 0.0143 - mse: 3.5545e-04 - val_loss: 3.7230e-04 - val_mae: 0.0136 - val_mse: 3.7230e-04 - 218ms/epoch - 17ms/step\n", "Epoch 222/250\n", - "13/13 - 0s - loss: 3.4610e-04 - mae: 0.0141 - mse: 3.4610e-04 - val_loss: 4.1371e-04 - val_mae: 0.0142 - val_mse: 4.1371e-04 - 110ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.4610e-04 - mae: 0.0141 - mse: 3.4610e-04 - val_loss: 4.1371e-04 - val_mae: 0.0142 - val_mse: 4.1371e-04 - 141ms/epoch - 11ms/step\n", "Epoch 223/250\n", - "13/13 - 0s - loss: 3.7775e-04 - mae: 0.0149 - mse: 3.7775e-04 - val_loss: 3.8045e-04 - val_mae: 0.0142 - val_mse: 3.8045e-04 - 115ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.7775e-04 - mae: 0.0149 - mse: 3.7775e-04 - val_loss: 3.8045e-04 - val_mae: 0.0142 - val_mse: 3.8045e-04 - 176ms/epoch - 14ms/step\n", "Epoch 224/250\n", - "13/13 - 0s - loss: 3.5911e-04 - mae: 0.0145 - mse: 3.5911e-04 - val_loss: 3.5609e-04 - val_mae: 0.0134 - val_mse: 3.5609e-04 - 233ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 3.5911e-04 - mae: 0.0145 - mse: 3.5911e-04 - val_loss: 3.5609e-04 - val_mae: 0.0134 - val_mse: 3.5609e-04 - 421ms/epoch - 32ms/step\n", "Epoch 225/250\n", - "13/13 - 0s - loss: 3.5933e-04 - mae: 0.0144 - mse: 3.5933e-04 - val_loss: 3.5900e-04 - val_mae: 0.0134 - val_mse: 3.5900e-04 - 105ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.5933e-04 - mae: 0.0144 - mse: 3.5933e-04 - val_loss: 3.5900e-04 - val_mae: 0.0134 - val_mse: 3.5900e-04 - 159ms/epoch - 12ms/step\n", "Epoch 226/250\n", - "13/13 - 0s - loss: 3.6466e-04 - mae: 0.0144 - mse: 3.6466e-04 - val_loss: 3.5378e-04 - val_mae: 0.0135 - val_mse: 3.5378e-04 - 232ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 3.6466e-04 - mae: 0.0144 - mse: 3.6466e-04 - val_loss: 3.5378e-04 - val_mae: 0.0135 - val_mse: 3.5378e-04 - 307ms/epoch - 24ms/step\n", "Epoch 227/250\n", - "13/13 - 0s - loss: 3.5876e-04 - mae: 0.0144 - mse: 3.5876e-04 - val_loss: 3.6523e-04 - val_mae: 0.0133 - val_mse: 3.6523e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.5876e-04 - mae: 0.0144 - mse: 3.5876e-04 - val_loss: 3.6523e-04 - val_mae: 0.0133 - val_mse: 3.6523e-04 - 193ms/epoch - 15ms/step\n", "Epoch 228/250\n", - "13/13 - 0s - loss: 3.4559e-04 - mae: 0.0142 - mse: 3.4559e-04 - val_loss: 3.5907e-04 - val_mae: 0.0139 - val_mse: 3.5907e-04 - 162ms/epoch - 12ms/step\n", + "13/13 - 0s - loss: 3.4559e-04 - mae: 0.0142 - mse: 3.4559e-04 - val_loss: 3.5907e-04 - val_mae: 0.0139 - val_mse: 3.5907e-04 - 133ms/epoch - 10ms/step\n", "Epoch 229/250\n", - "13/13 - 0s - loss: 3.4162e-04 - mae: 0.0142 - mse: 3.4162e-04 - val_loss: 4.2194e-04 - val_mae: 0.0141 - val_mse: 4.2194e-04 - 101ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.4162e-04 - mae: 0.0142 - mse: 3.4162e-04 - val_loss: 4.2194e-04 - val_mae: 0.0141 - val_mse: 4.2194e-04 - 107ms/epoch - 8ms/step\n", "Epoch 230/250\n", - "13/13 - 0s - loss: 3.6967e-04 - mae: 0.0146 - mse: 3.6967e-04 - val_loss: 3.7720e-04 - val_mae: 0.0138 - val_mse: 3.7720e-04 - 105ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.6967e-04 - mae: 0.0146 - mse: 3.6967e-04 - val_loss: 3.7720e-04 - val_mae: 0.0138 - val_mse: 3.7720e-04 - 165ms/epoch - 13ms/step\n", "Epoch 231/250\n", - "13/13 - 0s - loss: 3.3735e-04 - mae: 0.0136 - mse: 3.3735e-04 - val_loss: 3.3976e-04 - val_mae: 0.0129 - val_mse: 3.3976e-04 - 227ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 3.3735e-04 - mae: 0.0136 - mse: 3.3735e-04 - val_loss: 3.3976e-04 - val_mae: 0.0129 - val_mse: 3.3976e-04 - 276ms/epoch - 21ms/step\n", "Epoch 232/250\n", - "13/13 - 0s - loss: 3.3844e-04 - mae: 0.0141 - mse: 3.3844e-04 - val_loss: 3.8716e-04 - val_mae: 0.0135 - val_mse: 3.8716e-04 - 109ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.3844e-04 - mae: 0.0141 - mse: 3.3844e-04 - val_loss: 3.8716e-04 - val_mae: 0.0135 - val_mse: 3.8716e-04 - 134ms/epoch - 10ms/step\n", "Epoch 233/250\n", - "13/13 - 0s - loss: 3.6741e-04 - mae: 0.0145 - mse: 3.6741e-04 - val_loss: 3.8668e-04 - val_mae: 0.0136 - val_mse: 3.8668e-04 - 117ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.6741e-04 - mae: 0.0145 - mse: 3.6741e-04 - val_loss: 3.8668e-04 - val_mae: 0.0136 - val_mse: 3.8668e-04 - 146ms/epoch - 11ms/step\n", "Epoch 234/250\n", - "13/13 - 0s - loss: 3.4129e-04 - mae: 0.0139 - mse: 3.4129e-04 - val_loss: 3.4933e-04 - val_mae: 0.0133 - val_mse: 3.4933e-04 - 118ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.4129e-04 - mae: 0.0139 - mse: 3.4129e-04 - val_loss: 3.4933e-04 - val_mae: 0.0133 - val_mse: 3.4933e-04 - 165ms/epoch - 13ms/step\n", "Epoch 235/250\n", - "13/13 - 0s - loss: 3.2338e-04 - mae: 0.0137 - mse: 3.2338e-04 - val_loss: 3.4566e-04 - val_mae: 0.0133 - val_mse: 3.4566e-04 - 108ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.2338e-04 - mae: 0.0137 - mse: 3.2338e-04 - val_loss: 3.4566e-04 - val_mae: 0.0133 - val_mse: 3.4566e-04 - 153ms/epoch - 12ms/step\n", "Epoch 236/250\n", - "13/13 - 0s - loss: 3.1652e-04 - mae: 0.0134 - mse: 3.1652e-04 - val_loss: 3.9728e-04 - val_mae: 0.0136 - val_mse: 3.9728e-04 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.1652e-04 - mae: 0.0134 - mse: 3.1652e-04 - val_loss: 3.9728e-04 - val_mae: 0.0136 - val_mse: 3.9728e-04 - 187ms/epoch - 14ms/step\n", "Epoch 237/250\n", - "13/13 - 0s - loss: 3.2047e-04 - mae: 0.0136 - mse: 3.2047e-04 - val_loss: 3.3756e-04 - val_mae: 0.0130 - val_mse: 3.3756e-04 - 225ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 3.2047e-04 - mae: 0.0136 - mse: 3.2047e-04 - val_loss: 3.3756e-04 - val_mae: 0.0130 - val_mse: 3.3756e-04 - 209ms/epoch - 16ms/step\n", "Epoch 238/250\n", - "13/13 - 0s - loss: 3.3167e-04 - mae: 0.0138 - mse: 3.3167e-04 - val_loss: 3.3191e-04 - val_mae: 0.0126 - val_mse: 3.3191e-04 - 228ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 3.3167e-04 - mae: 0.0138 - mse: 3.3167e-04 - val_loss: 3.3191e-04 - val_mae: 0.0126 - val_mse: 3.3191e-04 - 175ms/epoch - 13ms/step\n", "Epoch 239/250\n", - "13/13 - 0s - loss: 3.2033e-04 - mae: 0.0134 - mse: 3.2033e-04 - val_loss: 3.2969e-04 - val_mae: 0.0128 - val_mse: 3.2969e-04 - 215ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 3.2033e-04 - mae: 0.0134 - mse: 3.2033e-04 - val_loss: 3.2969e-04 - val_mae: 0.0128 - val_mse: 3.2969e-04 - 234ms/epoch - 18ms/step\n", "Epoch 240/250\n", - "13/13 - 0s - loss: 3.5224e-04 - mae: 0.0141 - mse: 3.5224e-04 - val_loss: 3.9061e-04 - val_mae: 0.0148 - val_mse: 3.9061e-04 - 110ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.5224e-04 - mae: 0.0141 - mse: 3.5224e-04 - val_loss: 3.9061e-04 - val_mae: 0.0148 - val_mse: 3.9061e-04 - 130ms/epoch - 10ms/step\n", "Epoch 241/250\n", - "13/13 - 0s - loss: 3.9777e-04 - mae: 0.0153 - mse: 3.9777e-04 - val_loss: 3.7065e-04 - val_mae: 0.0137 - val_mse: 3.7065e-04 - 107ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.9777e-04 - mae: 0.0153 - mse: 3.9777e-04 - val_loss: 3.7065e-04 - val_mae: 0.0137 - val_mse: 3.7065e-04 - 122ms/epoch - 9ms/step\n", "Epoch 242/250\n", - "13/13 - 0s - loss: 3.2502e-04 - mae: 0.0138 - mse: 3.2502e-04 - val_loss: 3.3236e-04 - val_mae: 0.0124 - val_mse: 3.3236e-04 - 109ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.2502e-04 - mae: 0.0138 - mse: 3.2502e-04 - val_loss: 3.3236e-04 - val_mae: 0.0124 - val_mse: 3.3236e-04 - 128ms/epoch - 10ms/step\n", "Epoch 243/250\n", - "13/13 - 0s - loss: 3.0734e-04 - mae: 0.0133 - mse: 3.0734e-04 - val_loss: 3.2635e-04 - val_mae: 0.0126 - val_mse: 3.2635e-04 - 227ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 3.0734e-04 - mae: 0.0133 - mse: 3.0734e-04 - val_loss: 3.2635e-04 - val_mae: 0.0126 - val_mse: 3.2635e-04 - 321ms/epoch - 25ms/step\n", "Epoch 244/250\n", - "13/13 - 0s - loss: 3.2928e-04 - mae: 0.0137 - mse: 3.2928e-04 - val_loss: 3.2871e-04 - val_mae: 0.0125 - val_mse: 3.2871e-04 - 104ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.2928e-04 - mae: 0.0137 - mse: 3.2928e-04 - val_loss: 3.2871e-04 - val_mae: 0.0125 - val_mse: 3.2871e-04 - 167ms/epoch - 13ms/step\n", "Epoch 245/250\n", - "13/13 - 0s - loss: 2.9711e-04 - mae: 0.0131 - mse: 2.9711e-04 - val_loss: 3.2920e-04 - val_mae: 0.0121 - val_mse: 3.2920e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 2.9711e-04 - mae: 0.0131 - mse: 2.9711e-04 - val_loss: 3.2920e-04 - val_mae: 0.0121 - val_mse: 3.2920e-04 - 129ms/epoch - 10ms/step\n", "Epoch 246/250\n", - "13/13 - 0s - loss: 3.2661e-04 - mae: 0.0134 - mse: 3.2661e-04 - val_loss: 3.6936e-04 - val_mae: 0.0134 - val_mse: 3.6936e-04 - 107ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.2661e-04 - mae: 0.0134 - mse: 3.2661e-04 - val_loss: 3.6936e-04 - val_mae: 0.0134 - val_mse: 3.6936e-04 - 191ms/epoch - 15ms/step\n", "Epoch 247/250\n", - "13/13 - 0s - loss: 2.9618e-04 - mae: 0.0128 - mse: 2.9618e-04 - val_loss: 3.3549e-04 - val_mae: 0.0123 - val_mse: 3.3549e-04 - 106ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 2.9618e-04 - mae: 0.0128 - mse: 2.9618e-04 - val_loss: 3.3549e-04 - val_mae: 0.0123 - val_mse: 3.3549e-04 - 119ms/epoch - 9ms/step\n", "Epoch 248/250\n", - "13/13 - 0s - loss: 2.9979e-04 - mae: 0.0130 - mse: 2.9979e-04 - val_loss: 3.8099e-04 - val_mae: 0.0135 - val_mse: 3.8099e-04 - 118ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 2.9979e-04 - mae: 0.0130 - mse: 2.9979e-04 - val_loss: 3.8099e-04 - val_mae: 0.0135 - val_mse: 3.8099e-04 - 122ms/epoch - 9ms/step\n", "Epoch 249/250\n", - "13/13 - 0s - loss: 3.0599e-04 - mae: 0.0131 - mse: 3.0599e-04 - val_loss: 3.2729e-04 - val_mae: 0.0122 - val_mse: 3.2729e-04 - 106ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.0599e-04 - mae: 0.0131 - mse: 3.0599e-04 - val_loss: 3.2729e-04 - val_mae: 0.0122 - val_mse: 3.2729e-04 - 150ms/epoch - 12ms/step\n", "Epoch 250/250\n", - "13/13 - 0s - loss: 3.1256e-04 - mae: 0.0134 - mse: 3.1256e-04 - val_loss: 3.3855e-04 - val_mae: 0.0134 - val_mse: 3.3855e-04 - 109ms/epoch - 8ms/step\n" + "13/13 - 0s - loss: 3.1256e-04 - mae: 0.0134 - mse: 3.1256e-04 - val_loss: 3.3855e-04 - val_mae: 0.0134 - val_mse: 3.3855e-04 - 127ms/epoch - 10ms/step\n" ] }, { @@ -738,7 +748,7 @@ "# Train surrogate (calls optimizer on neural network and solves for weights)\n", "model.compile(loss=loss, optimizer=optimizer, metrics=metrics)\n", "mcp_save = tf.keras.callbacks.ModelCheckpoint(\n", - " \".mdl_co2.h5\", save_best_only=True, monitor=\"val_loss\", mode=\"min\"\n", + " \".mdl_co2.keras\", save_best_only=True, monitor=\"val_loss\", mode=\"min\"\n", ")\n", "history = model.fit(x=x, y=y, validation_split=0.2, verbose=2, epochs=250, callbacks=[mcp_save])\n", "\n", @@ -759,7 +769,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -783,7 +793,7 @@ " input_scaler=input_scaler,\n", " output_scaler=output_scaler,\n", ")\n", - "keras_surrogate.save_to_folder(\"sco2_keras_surr\")" + "keras_surrogate.save_to_folder(keras_folder_name=\"sco2_keras_surr\", keras_model_name=\"sco2_keras_model\")" ] }, { @@ -797,14 +807,14 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "13/13 [==============================] - 0s 3ms/step\n" + "13/13 [==============================] - 1s 3ms/step\n" ] }, { @@ -878,7 +888,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "13/13 [==============================] - 0s 3ms/step\n" + "13/13 [==============================] - 0s 4ms/step\n" ] }, { @@ -939,7 +949,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -993,7 +1003,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "4/4 [==============================] - 0s 3ms/step\n" + "4/4 [==============================] - 0s 4ms/step\n" ] }, { @@ -1020,7 +1030,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "4/4 [==============================] - 0s 4ms/step\n" + "4/4 [==============================] - 0s 5ms/step\n" ] }, { @@ -1101,4 +1111,4 @@ }, "nbformat": 4, "nbformat_minor": 3 -} +} \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/keras_training_usr.ipynb b/idaes_examples/notebooks/docs/surrogates/sco2/omlt/keras_training_usr.ipynb index f59ea874..3252b330 100644 --- a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/keras_training_usr.ipynb +++ b/idaes_examples/notebooks/docs/surrogates/sco2/omlt/keras_training_usr.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -17,7 +17,7 @@ "# University, West Virginia University Research Corporation, et al.\n", "# All rights reserved. Please see the files COPYRIGHT.md and LICENSE.md\n", "# for full copyright and license information.\n", - "###############################################################################" + "###############################################################################\n" ] }, { @@ -53,7 +53,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -63,7 +63,7 @@ "" ] }, - "execution_count": 1, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } @@ -91,9 +91,19 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING: DEPRECATED: pyomo.core.expr.current is deprecated. Please import\n", + "expression symbols from pyomo.core.expr (deprecated in 6.6.2) (called from\n", + ":241)\n" + ] + } + ], "source": [ "# Import statements\n", "import os\n", @@ -134,7 +144,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -182,7 +192,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -190,505 +200,505 @@ "output_type": "stream", "text": [ "Epoch 1/250\n", - "13/13 - 2s - loss: 0.4963 - mae: 0.5592 - mse: 0.4963 - val_loss: 0.1685 - val_mae: 0.3349 - val_mse: 0.1685 - 2s/epoch - 173ms/step\n", + "13/13 - 3s - loss: 0.4963 - mae: 0.5592 - mse: 0.4963 - val_loss: 0.1685 - val_mae: 0.3349 - val_mse: 0.1685 - 3s/epoch - 249ms/step\n", "Epoch 2/250\n", - "13/13 - 0s - loss: 0.1216 - mae: 0.2839 - mse: 0.1216 - val_loss: 0.0809 - val_mae: 0.2245 - val_mse: 0.0809 - 220ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.1216 - mae: 0.2839 - mse: 0.1216 - val_loss: 0.0809 - val_mae: 0.2245 - val_mse: 0.0809 - 237ms/epoch - 18ms/step\n", "Epoch 3/250\n", - "13/13 - 0s - loss: 0.0665 - mae: 0.2043 - mse: 0.0665 - val_loss: 0.0359 - val_mae: 0.1503 - val_mse: 0.0359 - 228ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 0.0665 - mae: 0.2043 - mse: 0.0665 - val_loss: 0.0359 - val_mae: 0.1503 - val_mse: 0.0359 - 262ms/epoch - 20ms/step\n", "Epoch 4/250\n", - "13/13 - 0s - loss: 0.0294 - mae: 0.1329 - mse: 0.0294 - val_loss: 0.0221 - val_mae: 0.1119 - val_mse: 0.0221 - 239ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 0.0294 - mae: 0.1329 - mse: 0.0294 - val_loss: 0.0221 - val_mae: 0.1119 - val_mse: 0.0221 - 283ms/epoch - 22ms/step\n", "Epoch 5/250\n", - "13/13 - 0s - loss: 0.0170 - mae: 0.0964 - mse: 0.0170 - val_loss: 0.0115 - val_mae: 0.0792 - val_mse: 0.0115 - 229ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 0.0170 - mae: 0.0964 - mse: 0.0170 - val_loss: 0.0115 - val_mae: 0.0792 - val_mse: 0.0115 - 351ms/epoch - 27ms/step\n", "Epoch 6/250\n", - "13/13 - 0s - loss: 0.0097 - mae: 0.0734 - mse: 0.0097 - val_loss: 0.0067 - val_mae: 0.0636 - val_mse: 0.0067 - 202ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 0.0097 - mae: 0.0734 - mse: 0.0097 - val_loss: 0.0067 - val_mae: 0.0636 - val_mse: 0.0067 - 364ms/epoch - 28ms/step\n", "Epoch 7/250\n", - "13/13 - 0s - loss: 0.0061 - mae: 0.0610 - mse: 0.0061 - val_loss: 0.0048 - val_mae: 0.0550 - val_mse: 0.0048 - 241ms/epoch - 19ms/step\n", + "13/13 - 0s - loss: 0.0061 - mae: 0.0610 - mse: 0.0061 - val_loss: 0.0048 - val_mae: 0.0550 - val_mse: 0.0048 - 245ms/epoch - 19ms/step\n", "Epoch 8/250\n", - "13/13 - 0s - loss: 0.0042 - mae: 0.0521 - mse: 0.0042 - val_loss: 0.0034 - val_mae: 0.0464 - val_mse: 0.0034 - 233ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 0.0042 - mae: 0.0521 - mse: 0.0042 - val_loss: 0.0034 - val_mae: 0.0464 - val_mse: 0.0034 - 203ms/epoch - 16ms/step\n", "Epoch 9/250\n", - "13/13 - 0s - loss: 0.0032 - mae: 0.0458 - mse: 0.0032 - val_loss: 0.0027 - val_mae: 0.0418 - val_mse: 0.0027 - 227ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0032 - mae: 0.0458 - mse: 0.0032 - val_loss: 0.0027 - val_mae: 0.0418 - val_mse: 0.0027 - 300ms/epoch - 23ms/step\n", "Epoch 10/250\n", - "13/13 - 0s - loss: 0.0028 - mae: 0.0420 - mse: 0.0028 - val_loss: 0.0024 - val_mae: 0.0379 - val_mse: 0.0024 - 240ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 0.0028 - mae: 0.0420 - mse: 0.0028 - val_loss: 0.0024 - val_mae: 0.0379 - val_mse: 0.0024 - 255ms/epoch - 20ms/step\n", "Epoch 11/250\n", - "13/13 - 0s - loss: 0.0024 - mae: 0.0384 - mse: 0.0024 - val_loss: 0.0021 - val_mae: 0.0358 - val_mse: 0.0021 - 224ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0024 - mae: 0.0384 - mse: 0.0024 - val_loss: 0.0021 - val_mae: 0.0358 - val_mse: 0.0021 - 247ms/epoch - 19ms/step\n", "Epoch 12/250\n", - "13/13 - 0s - loss: 0.0022 - mae: 0.0358 - mse: 0.0022 - val_loss: 0.0018 - val_mae: 0.0330 - val_mse: 0.0018 - 227ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0022 - mae: 0.0358 - mse: 0.0022 - val_loss: 0.0018 - val_mae: 0.0330 - val_mse: 0.0018 - 321ms/epoch - 25ms/step\n", "Epoch 13/250\n", - "13/13 - 0s - loss: 0.0020 - mae: 0.0338 - mse: 0.0020 - val_loss: 0.0017 - val_mae: 0.0315 - val_mse: 0.0017 - 197ms/epoch - 15ms/step\n", + "13/13 - 0s - loss: 0.0020 - mae: 0.0338 - mse: 0.0020 - val_loss: 0.0017 - val_mae: 0.0315 - val_mse: 0.0017 - 219ms/epoch - 17ms/step\n", "Epoch 14/250\n", - "13/13 - 0s - loss: 0.0018 - mae: 0.0323 - mse: 0.0018 - val_loss: 0.0015 - val_mae: 0.0302 - val_mse: 0.0015 - 234ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 0.0018 - mae: 0.0323 - mse: 0.0018 - val_loss: 0.0015 - val_mae: 0.0302 - val_mse: 0.0015 - 272ms/epoch - 21ms/step\n", "Epoch 15/250\n", - "13/13 - 0s - loss: 0.0017 - mae: 0.0311 - mse: 0.0017 - val_loss: 0.0015 - val_mae: 0.0296 - val_mse: 0.0015 - 207ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 0.0017 - mae: 0.0311 - mse: 0.0017 - val_loss: 0.0015 - val_mae: 0.0296 - val_mse: 0.0015 - 299ms/epoch - 23ms/step\n", "Epoch 16/250\n", - "13/13 - 0s - loss: 0.0016 - mae: 0.0303 - mse: 0.0016 - val_loss: 0.0014 - val_mae: 0.0289 - val_mse: 0.0014 - 215ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0016 - mae: 0.0303 - mse: 0.0016 - val_loss: 0.0014 - val_mae: 0.0289 - val_mse: 0.0014 - 271ms/epoch - 21ms/step\n", "Epoch 17/250\n", - "13/13 - 0s - loss: 0.0016 - mae: 0.0293 - mse: 0.0016 - val_loss: 0.0014 - val_mae: 0.0281 - val_mse: 0.0014 - 227ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0016 - mae: 0.0293 - mse: 0.0016 - val_loss: 0.0014 - val_mae: 0.0281 - val_mse: 0.0014 - 248ms/epoch - 19ms/step\n", "Epoch 18/250\n", - "13/13 - 0s - loss: 0.0015 - mae: 0.0287 - mse: 0.0015 - val_loss: 0.0013 - val_mae: 0.0275 - val_mse: 0.0013 - 234ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 0.0015 - mae: 0.0287 - mse: 0.0015 - val_loss: 0.0013 - val_mae: 0.0275 - val_mse: 0.0013 - 256ms/epoch - 20ms/step\n", "Epoch 19/250\n", - "13/13 - 0s - loss: 0.0015 - mae: 0.0285 - mse: 0.0015 - val_loss: 0.0014 - val_mae: 0.0285 - val_mse: 0.0014 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 0.0015 - mae: 0.0285 - mse: 0.0015 - val_loss: 0.0014 - val_mae: 0.0285 - val_mse: 0.0014 - 153ms/epoch - 12ms/step\n", "Epoch 20/250\n", - "13/13 - 0s - loss: 0.0015 - mae: 0.0282 - mse: 0.0015 - val_loss: 0.0012 - val_mae: 0.0269 - val_mse: 0.0012 - 246ms/epoch - 19ms/step\n", + "13/13 - 0s - loss: 0.0015 - mae: 0.0282 - mse: 0.0015 - val_loss: 0.0012 - val_mae: 0.0269 - val_mse: 0.0012 - 239ms/epoch - 18ms/step\n", "Epoch 21/250\n", - "13/13 - 0s - loss: 0.0015 - mae: 0.0278 - mse: 0.0015 - val_loss: 0.0012 - val_mae: 0.0266 - val_mse: 0.0012 - 172ms/epoch - 13ms/step\n", + "13/13 - 0s - loss: 0.0015 - mae: 0.0278 - mse: 0.0015 - val_loss: 0.0012 - val_mae: 0.0266 - val_mse: 0.0012 - 263ms/epoch - 20ms/step\n", "Epoch 22/250\n", - "13/13 - 0s - loss: 0.0015 - mae: 0.0279 - mse: 0.0015 - val_loss: 0.0012 - val_mae: 0.0266 - val_mse: 0.0012 - 209ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 0.0015 - mae: 0.0279 - mse: 0.0015 - val_loss: 0.0012 - val_mae: 0.0266 - val_mse: 0.0012 - 243ms/epoch - 19ms/step\n", "Epoch 23/250\n", - "13/13 - 0s - loss: 0.0014 - mae: 0.0274 - mse: 0.0014 - val_loss: 0.0012 - val_mae: 0.0265 - val_mse: 0.0012 - 108ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 0.0014 - mae: 0.0274 - mse: 0.0014 - val_loss: 0.0012 - val_mae: 0.0265 - val_mse: 0.0012 - 138ms/epoch - 11ms/step\n", "Epoch 24/250\n", - "13/13 - 0s - loss: 0.0014 - mae: 0.0264 - mse: 0.0014 - val_loss: 0.0012 - val_mae: 0.0259 - val_mse: 0.0012 - 219ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0014 - mae: 0.0264 - mse: 0.0014 - val_loss: 0.0012 - val_mae: 0.0259 - val_mse: 0.0012 - 189ms/epoch - 15ms/step\n", "Epoch 25/250\n", - "13/13 - 0s - loss: 0.0014 - mae: 0.0268 - mse: 0.0014 - val_loss: 0.0012 - val_mae: 0.0258 - val_mse: 0.0012 - 212ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 0.0014 - mae: 0.0268 - mse: 0.0014 - val_loss: 0.0012 - val_mae: 0.0258 - val_mse: 0.0012 - 280ms/epoch - 22ms/step\n", "Epoch 26/250\n", - "13/13 - 0s - loss: 0.0013 - mae: 0.0268 - mse: 0.0013 - val_loss: 0.0011 - val_mae: 0.0258 - val_mse: 0.0011 - 220ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0013 - mae: 0.0268 - mse: 0.0013 - val_loss: 0.0011 - val_mae: 0.0258 - val_mse: 0.0011 - 222ms/epoch - 17ms/step\n", "Epoch 27/250\n", - "13/13 - 0s - loss: 0.0013 - mae: 0.0265 - mse: 0.0013 - val_loss: 0.0011 - val_mae: 0.0247 - val_mse: 0.0011 - 224ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0013 - mae: 0.0265 - mse: 0.0013 - val_loss: 0.0011 - val_mae: 0.0247 - val_mse: 0.0011 - 286ms/epoch - 22ms/step\n", "Epoch 28/250\n", - "13/13 - 0s - loss: 0.0013 - mae: 0.0259 - mse: 0.0013 - val_loss: 0.0012 - val_mae: 0.0259 - val_mse: 0.0012 - 108ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 0.0013 - mae: 0.0259 - mse: 0.0013 - val_loss: 0.0012 - val_mae: 0.0259 - val_mse: 0.0012 - 116ms/epoch - 9ms/step\n", "Epoch 29/250\n", - "13/13 - 0s - loss: 0.0013 - mae: 0.0259 - mse: 0.0013 - val_loss: 0.0011 - val_mae: 0.0252 - val_mse: 0.0011 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 0.0013 - mae: 0.0259 - mse: 0.0013 - val_loss: 0.0011 - val_mae: 0.0252 - val_mse: 0.0011 - 157ms/epoch - 12ms/step\n", "Epoch 30/250\n", - "13/13 - 0s - loss: 0.0013 - mae: 0.0256 - mse: 0.0013 - val_loss: 0.0011 - val_mae: 0.0248 - val_mse: 0.0011 - 223ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0013 - mae: 0.0256 - mse: 0.0013 - val_loss: 0.0011 - val_mae: 0.0248 - val_mse: 0.0011 - 267ms/epoch - 21ms/step\n", "Epoch 31/250\n", - "13/13 - 0s - loss: 0.0013 - mae: 0.0254 - mse: 0.0013 - val_loss: 0.0011 - val_mae: 0.0245 - val_mse: 0.0011 - 219ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0013 - mae: 0.0254 - mse: 0.0013 - val_loss: 0.0011 - val_mae: 0.0245 - val_mse: 0.0011 - 264ms/epoch - 20ms/step\n", "Epoch 32/250\n", - "13/13 - 0s - loss: 0.0012 - mae: 0.0254 - mse: 0.0012 - val_loss: 0.0010 - val_mae: 0.0243 - val_mse: 0.0010 - 228ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 0.0012 - mae: 0.0254 - mse: 0.0012 - val_loss: 0.0010 - val_mae: 0.0243 - val_mse: 0.0010 - 269ms/epoch - 21ms/step\n", "Epoch 33/250\n", - "13/13 - 0s - loss: 0.0012 - mae: 0.0248 - mse: 0.0012 - val_loss: 0.0012 - val_mae: 0.0251 - val_mse: 0.0012 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 0.0012 - mae: 0.0248 - mse: 0.0012 - val_loss: 0.0012 - val_mae: 0.0251 - val_mse: 0.0012 - 353ms/epoch - 27ms/step\n", "Epoch 34/250\n", - "13/13 - 0s - loss: 0.0012 - mae: 0.0256 - mse: 0.0012 - val_loss: 0.0010 - val_mae: 0.0248 - val_mse: 0.0010 - 244ms/epoch - 19ms/step\n", + "13/13 - 1s - loss: 0.0012 - mae: 0.0256 - mse: 0.0012 - val_loss: 0.0010 - val_mae: 0.0248 - val_mse: 0.0010 - 537ms/epoch - 41ms/step\n", "Epoch 35/250\n", - "13/13 - 0s - loss: 0.0012 - mae: 0.0254 - mse: 0.0012 - val_loss: 0.0010 - val_mae: 0.0243 - val_mse: 0.0010 - 202ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 0.0012 - mae: 0.0254 - mse: 0.0012 - val_loss: 0.0010 - val_mae: 0.0243 - val_mse: 0.0010 - 330ms/epoch - 25ms/step\n", "Epoch 36/250\n", - "13/13 - 0s - loss: 0.0012 - mae: 0.0245 - mse: 0.0012 - val_loss: 0.0010 - val_mae: 0.0234 - val_mse: 0.0010 - 224ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0012 - mae: 0.0245 - mse: 0.0012 - val_loss: 0.0010 - val_mae: 0.0234 - val_mse: 0.0010 - 289ms/epoch - 22ms/step\n", "Epoch 37/250\n", - "13/13 - 0s - loss: 0.0011 - mae: 0.0244 - mse: 0.0011 - val_loss: 0.0010 - val_mae: 0.0239 - val_mse: 0.0010 - 114ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 0.0011 - mae: 0.0244 - mse: 0.0011 - val_loss: 0.0010 - val_mae: 0.0239 - val_mse: 0.0010 - 155ms/epoch - 12ms/step\n", "Epoch 38/250\n", - "13/13 - 0s - loss: 0.0011 - mae: 0.0243 - mse: 0.0011 - val_loss: 9.9094e-04 - val_mae: 0.0235 - val_mse: 9.9094e-04 - 231ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 0.0011 - mae: 0.0243 - mse: 0.0011 - val_loss: 9.9094e-04 - val_mae: 0.0235 - val_mse: 9.9094e-04 - 289ms/epoch - 22ms/step\n", "Epoch 39/250\n", - "13/13 - 0s - loss: 0.0011 - mae: 0.0243 - mse: 0.0011 - val_loss: 0.0010 - val_mae: 0.0238 - val_mse: 0.0010 - 107ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 0.0011 - mae: 0.0243 - mse: 0.0011 - val_loss: 0.0010 - val_mae: 0.0238 - val_mse: 0.0010 - 118ms/epoch - 9ms/step\n", "Epoch 40/250\n", - "13/13 - 0s - loss: 0.0011 - mae: 0.0241 - mse: 0.0011 - val_loss: 9.7491e-04 - val_mae: 0.0239 - val_mse: 9.7491e-04 - 219ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0011 - mae: 0.0241 - mse: 0.0011 - val_loss: 9.7491e-04 - val_mae: 0.0239 - val_mse: 9.7491e-04 - 299ms/epoch - 23ms/step\n", "Epoch 41/250\n", - "13/13 - 0s - loss: 0.0011 - mae: 0.0241 - mse: 0.0011 - val_loss: 9.9821e-04 - val_mae: 0.0227 - val_mse: 9.9821e-04 - 167ms/epoch - 13ms/step\n", + "13/13 - 0s - loss: 0.0011 - mae: 0.0241 - mse: 0.0011 - val_loss: 9.9821e-04 - val_mae: 0.0227 - val_mse: 9.9821e-04 - 151ms/epoch - 12ms/step\n", "Epoch 42/250\n", - "13/13 - 0s - loss: 0.0011 - mae: 0.0240 - mse: 0.0011 - val_loss: 0.0010 - val_mae: 0.0235 - val_mse: 0.0010 - 100ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 0.0011 - mae: 0.0240 - mse: 0.0011 - val_loss: 0.0010 - val_mae: 0.0235 - val_mse: 0.0010 - 192ms/epoch - 15ms/step\n", "Epoch 43/250\n", - "13/13 - 0s - loss: 0.0011 - mae: 0.0238 - mse: 0.0011 - val_loss: 9.4863e-04 - val_mae: 0.0232 - val_mse: 9.4863e-04 - 225ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0011 - mae: 0.0238 - mse: 0.0011 - val_loss: 9.4863e-04 - val_mae: 0.0232 - val_mse: 9.4863e-04 - 237ms/epoch - 18ms/step\n", "Epoch 44/250\n", - "13/13 - 0s - loss: 0.0011 - mae: 0.0236 - mse: 0.0011 - val_loss: 9.8018e-04 - val_mae: 0.0230 - val_mse: 9.8018e-04 - 118ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 0.0011 - mae: 0.0236 - mse: 0.0011 - val_loss: 9.8018e-04 - val_mae: 0.0230 - val_mse: 9.8018e-04 - 154ms/epoch - 12ms/step\n", "Epoch 45/250\n", - "13/13 - 0s - loss: 0.0011 - mae: 0.0239 - mse: 0.0011 - val_loss: 9.5093e-04 - val_mae: 0.0233 - val_mse: 9.5093e-04 - 121ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 0.0011 - mae: 0.0239 - mse: 0.0011 - val_loss: 9.5093e-04 - val_mae: 0.0233 - val_mse: 9.5093e-04 - 158ms/epoch - 12ms/step\n", "Epoch 46/250\n", - "13/13 - 0s - loss: 0.0010 - mae: 0.0230 - mse: 0.0010 - val_loss: 9.4785e-04 - val_mae: 0.0223 - val_mse: 9.4785e-04 - 234ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 0.0010 - mae: 0.0230 - mse: 0.0010 - val_loss: 9.4785e-04 - val_mae: 0.0223 - val_mse: 9.4785e-04 - 218ms/epoch - 17ms/step\n", "Epoch 47/250\n", - "13/13 - 0s - loss: 0.0010 - mae: 0.0231 - mse: 0.0010 - val_loss: 9.7827e-04 - val_mae: 0.0230 - val_mse: 9.7827e-04 - 108ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 0.0010 - mae: 0.0231 - mse: 0.0010 - val_loss: 9.7827e-04 - val_mae: 0.0230 - val_mse: 9.7827e-04 - 116ms/epoch - 9ms/step\n", "Epoch 48/250\n", - "13/13 - 0s - loss: 0.0010 - mae: 0.0232 - mse: 0.0010 - val_loss: 9.0671e-04 - val_mae: 0.0225 - val_mse: 9.0671e-04 - 221ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 0.0010 - mae: 0.0232 - mse: 0.0010 - val_loss: 9.0671e-04 - val_mae: 0.0225 - val_mse: 9.0671e-04 - 288ms/epoch - 22ms/step\n", "Epoch 49/250\n", - "13/13 - 0s - loss: 0.0010 - mae: 0.0230 - mse: 0.0010 - val_loss: 9.2521e-04 - val_mae: 0.0218 - val_mse: 9.2521e-04 - 113ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 0.0010 - mae: 0.0230 - mse: 0.0010 - val_loss: 9.2521e-04 - val_mae: 0.0218 - val_mse: 9.2521e-04 - 140ms/epoch - 11ms/step\n", "Epoch 50/250\n", - "13/13 - 0s - loss: 0.0010 - mae: 0.0231 - mse: 0.0010 - val_loss: 9.7818e-04 - val_mae: 0.0231 - val_mse: 9.7818e-04 - 114ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 0.0010 - mae: 0.0231 - mse: 0.0010 - val_loss: 9.7818e-04 - val_mae: 0.0231 - val_mse: 9.7818e-04 - 149ms/epoch - 11ms/step\n", "Epoch 51/250\n", - "13/13 - 0s - loss: 9.9977e-04 - mae: 0.0232 - mse: 9.9977e-04 - val_loss: 9.4350e-04 - val_mae: 0.0221 - val_mse: 9.4350e-04 - 119ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 9.9977e-04 - mae: 0.0232 - mse: 9.9977e-04 - val_loss: 9.4350e-04 - val_mae: 0.0221 - val_mse: 9.4350e-04 - 146ms/epoch - 11ms/step\n", "Epoch 52/250\n", - "13/13 - 0s - loss: 9.8599e-04 - mae: 0.0229 - mse: 9.8599e-04 - val_loss: 9.0638e-04 - val_mae: 0.0230 - val_mse: 9.0638e-04 - 219ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 9.8599e-04 - mae: 0.0229 - mse: 9.8599e-04 - val_loss: 9.0638e-04 - val_mae: 0.0230 - val_mse: 9.0638e-04 - 265ms/epoch - 20ms/step\n", "Epoch 53/250\n", - "13/13 - 0s - loss: 9.8295e-04 - mae: 0.0228 - mse: 9.8295e-04 - val_loss: 9.0667e-04 - val_mae: 0.0215 - val_mse: 9.0667e-04 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 9.8295e-04 - mae: 0.0228 - mse: 9.8295e-04 - val_loss: 9.0667e-04 - val_mae: 0.0215 - val_mse: 9.0667e-04 - 179ms/epoch - 14ms/step\n", "Epoch 54/250\n", - "13/13 - 0s - loss: 9.7266e-04 - mae: 0.0225 - mse: 9.7266e-04 - val_loss: 9.0391e-04 - val_mae: 0.0224 - val_mse: 9.0391e-04 - 208ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 9.7266e-04 - mae: 0.0225 - mse: 9.7266e-04 - val_loss: 9.0391e-04 - val_mae: 0.0224 - val_mse: 9.0391e-04 - 287ms/epoch - 22ms/step\n", "Epoch 55/250\n", - "13/13 - 0s - loss: 9.5234e-04 - mae: 0.0225 - mse: 9.5234e-04 - val_loss: 8.7426e-04 - val_mae: 0.0219 - val_mse: 8.7426e-04 - 223ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 9.5234e-04 - mae: 0.0225 - mse: 9.5234e-04 - val_loss: 8.7426e-04 - val_mae: 0.0219 - val_mse: 8.7426e-04 - 284ms/epoch - 22ms/step\n", "Epoch 56/250\n", - "13/13 - 0s - loss: 9.4315e-04 - mae: 0.0221 - mse: 9.4315e-04 - val_loss: 8.6742e-04 - val_mae: 0.0224 - val_mse: 8.6742e-04 - 227ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 9.4315e-04 - mae: 0.0221 - mse: 9.4315e-04 - val_loss: 8.6742e-04 - val_mae: 0.0224 - val_mse: 8.6742e-04 - 297ms/epoch - 23ms/step\n", "Epoch 57/250\n", - "13/13 - 0s - loss: 9.9226e-04 - mae: 0.0230 - mse: 9.9226e-04 - val_loss: 8.7793e-04 - val_mae: 0.0225 - val_mse: 8.7793e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 9.9226e-04 - mae: 0.0230 - mse: 9.9226e-04 - val_loss: 8.7793e-04 - val_mae: 0.0225 - val_mse: 8.7793e-04 - 206ms/epoch - 16ms/step\n", "Epoch 58/250\n", - "13/13 - 0s - loss: 9.4137e-04 - mae: 0.0226 - mse: 9.4137e-04 - val_loss: 8.7477e-04 - val_mae: 0.0225 - val_mse: 8.7477e-04 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 9.4137e-04 - mae: 0.0226 - mse: 9.4137e-04 - val_loss: 8.7477e-04 - val_mae: 0.0225 - val_mse: 8.7477e-04 - 160ms/epoch - 12ms/step\n", "Epoch 59/250\n", - "13/13 - 0s - loss: 9.2474e-04 - mae: 0.0219 - mse: 9.2474e-04 - val_loss: 8.5320e-04 - val_mae: 0.0212 - val_mse: 8.5320e-04 - 195ms/epoch - 15ms/step\n", + "13/13 - 0s - loss: 9.2474e-04 - mae: 0.0219 - mse: 9.2474e-04 - val_loss: 8.5320e-04 - val_mae: 0.0212 - val_mse: 8.5320e-04 - 274ms/epoch - 21ms/step\n", "Epoch 60/250\n", - "13/13 - 0s - loss: 9.1133e-04 - mae: 0.0217 - mse: 9.1133e-04 - val_loss: 8.6082e-04 - val_mae: 0.0217 - val_mse: 8.6082e-04 - 114ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 9.1133e-04 - mae: 0.0217 - mse: 9.1133e-04 - val_loss: 8.6082e-04 - val_mae: 0.0217 - val_mse: 8.6082e-04 - 160ms/epoch - 12ms/step\n", "Epoch 61/250\n", - "13/13 - 0s - loss: 9.1801e-04 - mae: 0.0217 - mse: 9.1801e-04 - val_loss: 8.5403e-04 - val_mae: 0.0223 - val_mse: 8.5403e-04 - 109ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 9.1801e-04 - mae: 0.0217 - mse: 9.1801e-04 - val_loss: 8.5403e-04 - val_mae: 0.0223 - val_mse: 8.5403e-04 - 143ms/epoch - 11ms/step\n", "Epoch 62/250\n", - "13/13 - 0s - loss: 9.1987e-04 - mae: 0.0221 - mse: 9.1987e-04 - val_loss: 8.5714e-04 - val_mae: 0.0219 - val_mse: 8.5714e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 9.1987e-04 - mae: 0.0221 - mse: 9.1987e-04 - val_loss: 8.5714e-04 - val_mae: 0.0219 - val_mse: 8.5714e-04 - 128ms/epoch - 10ms/step\n", "Epoch 63/250\n", - "13/13 - 0s - loss: 9.0862e-04 - mae: 0.0222 - mse: 9.0862e-04 - val_loss: 8.6160e-04 - val_mae: 0.0225 - val_mse: 8.6160e-04 - 110ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 9.0862e-04 - mae: 0.0222 - mse: 9.0862e-04 - val_loss: 8.6160e-04 - val_mae: 0.0225 - val_mse: 8.6160e-04 - 154ms/epoch - 12ms/step\n", "Epoch 64/250\n", - "13/13 - 0s - loss: 8.9349e-04 - mae: 0.0220 - mse: 8.9349e-04 - val_loss: 8.2851e-04 - val_mae: 0.0214 - val_mse: 8.2851e-04 - 224ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 8.9349e-04 - mae: 0.0220 - mse: 8.9349e-04 - val_loss: 8.2851e-04 - val_mae: 0.0214 - val_mse: 8.2851e-04 - 284ms/epoch - 22ms/step\n", "Epoch 65/250\n", - "13/13 - 0s - loss: 8.7848e-04 - mae: 0.0216 - mse: 8.7848e-04 - val_loss: 8.5189e-04 - val_mae: 0.0218 - val_mse: 8.5189e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 8.7848e-04 - mae: 0.0216 - mse: 8.7848e-04 - val_loss: 8.5189e-04 - val_mae: 0.0218 - val_mse: 8.5189e-04 - 168ms/epoch - 13ms/step\n", "Epoch 66/250\n", - "13/13 - 0s - loss: 8.9773e-04 - mae: 0.0219 - mse: 8.9773e-04 - val_loss: 8.5650e-04 - val_mae: 0.0211 - val_mse: 8.5650e-04 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 8.9773e-04 - mae: 0.0219 - mse: 8.9773e-04 - val_loss: 8.5650e-04 - val_mae: 0.0211 - val_mse: 8.5650e-04 - 113ms/epoch - 9ms/step\n", "Epoch 67/250\n", - "13/13 - 0s - loss: 8.7443e-04 - mae: 0.0217 - mse: 8.7443e-04 - val_loss: 8.2545e-04 - val_mae: 0.0214 - val_mse: 8.2545e-04 - 221ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 8.7443e-04 - mae: 0.0217 - mse: 8.7443e-04 - val_loss: 8.2545e-04 - val_mae: 0.0214 - val_mse: 8.2545e-04 - 264ms/epoch - 20ms/step\n", "Epoch 68/250\n", - "13/13 - 0s - loss: 8.9141e-04 - mae: 0.0217 - mse: 8.9141e-04 - val_loss: 8.4471e-04 - val_mae: 0.0219 - val_mse: 8.4471e-04 - 106ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 8.9141e-04 - mae: 0.0217 - mse: 8.9141e-04 - val_loss: 8.4471e-04 - val_mae: 0.0219 - val_mse: 8.4471e-04 - 189ms/epoch - 15ms/step\n", "Epoch 69/250\n", - "13/13 - 0s - loss: 8.9507e-04 - mae: 0.0224 - mse: 8.9507e-04 - val_loss: 8.7916e-04 - val_mae: 0.0217 - val_mse: 8.7916e-04 - 114ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 8.9507e-04 - mae: 0.0224 - mse: 8.9507e-04 - val_loss: 8.7916e-04 - val_mae: 0.0217 - val_mse: 8.7916e-04 - 175ms/epoch - 13ms/step\n", "Epoch 70/250\n", - "13/13 - 0s - loss: 8.5737e-04 - mae: 0.0216 - mse: 8.5737e-04 - val_loss: 8.8807e-04 - val_mae: 0.0215 - val_mse: 8.8807e-04 - 114ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 8.5737e-04 - mae: 0.0216 - mse: 8.5737e-04 - val_loss: 8.8807e-04 - val_mae: 0.0215 - val_mse: 8.8807e-04 - 322ms/epoch - 25ms/step\n", "Epoch 71/250\n", - "13/13 - 0s - loss: 8.5560e-04 - mae: 0.0214 - mse: 8.5560e-04 - val_loss: 8.3750e-04 - val_mae: 0.0213 - val_mse: 8.3750e-04 - 115ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 8.5560e-04 - mae: 0.0214 - mse: 8.5560e-04 - val_loss: 8.3750e-04 - val_mae: 0.0213 - val_mse: 8.3750e-04 - 207ms/epoch - 16ms/step\n", "Epoch 72/250\n", - "13/13 - 0s - loss: 8.5576e-04 - mae: 0.0218 - mse: 8.5576e-04 - val_loss: 8.1156e-04 - val_mae: 0.0210 - val_mse: 8.1156e-04 - 211ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 8.5576e-04 - mae: 0.0218 - mse: 8.5576e-04 - val_loss: 8.1156e-04 - val_mae: 0.0210 - val_mse: 8.1156e-04 - 257ms/epoch - 20ms/step\n", "Epoch 73/250\n", - "13/13 - 0s - loss: 8.4688e-04 - mae: 0.0216 - mse: 8.4688e-04 - val_loss: 8.0221e-04 - val_mae: 0.0210 - val_mse: 8.0221e-04 - 216ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 8.4688e-04 - mae: 0.0216 - mse: 8.4688e-04 - val_loss: 8.0221e-04 - val_mae: 0.0210 - val_mse: 8.0221e-04 - 233ms/epoch - 18ms/step\n", "Epoch 74/250\n", - "13/13 - 0s - loss: 8.3636e-04 - mae: 0.0211 - mse: 8.3636e-04 - val_loss: 7.9384e-04 - val_mae: 0.0208 - val_mse: 7.9384e-04 - 219ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 8.3636e-04 - mae: 0.0211 - mse: 8.3636e-04 - val_loss: 7.9384e-04 - val_mae: 0.0208 - val_mse: 7.9384e-04 - 250ms/epoch - 19ms/step\n", "Epoch 75/250\n", - "13/13 - 0s - loss: 8.4758e-04 - mae: 0.0222 - mse: 8.4758e-04 - val_loss: 8.2932e-04 - val_mae: 0.0212 - val_mse: 8.2932e-04 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 8.4758e-04 - mae: 0.0222 - mse: 8.4758e-04 - val_loss: 8.2932e-04 - val_mae: 0.0212 - val_mse: 8.2932e-04 - 119ms/epoch - 9ms/step\n", "Epoch 76/250\n", - "13/13 - 0s - loss: 8.4142e-04 - mae: 0.0213 - mse: 8.4142e-04 - val_loss: 8.0552e-04 - val_mae: 0.0209 - val_mse: 8.0552e-04 - 118ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 8.4142e-04 - mae: 0.0213 - mse: 8.4142e-04 - val_loss: 8.0552e-04 - val_mae: 0.0209 - val_mse: 8.0552e-04 - 150ms/epoch - 12ms/step\n", "Epoch 77/250\n", - "13/13 - 0s - loss: 8.5035e-04 - mae: 0.0215 - mse: 8.5035e-04 - val_loss: 8.6014e-04 - val_mae: 0.0215 - val_mse: 8.6014e-04 - 115ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 8.5035e-04 - mae: 0.0215 - mse: 8.5035e-04 - val_loss: 8.6014e-04 - val_mae: 0.0215 - val_mse: 8.6014e-04 - 126ms/epoch - 10ms/step\n", "Epoch 78/250\n", - "13/13 - 0s - loss: 8.9015e-04 - mae: 0.0228 - mse: 8.9015e-04 - val_loss: 9.2548e-04 - val_mae: 0.0225 - val_mse: 9.2548e-04 - 108ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 8.9015e-04 - mae: 0.0228 - mse: 8.9015e-04 - val_loss: 9.2548e-04 - val_mae: 0.0225 - val_mse: 9.2548e-04 - 242ms/epoch - 19ms/step\n", "Epoch 79/250\n", - "13/13 - 0s - loss: 8.1577e-04 - mae: 0.0212 - mse: 8.1577e-04 - val_loss: 8.4703e-04 - val_mae: 0.0211 - val_mse: 8.4703e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 8.1577e-04 - mae: 0.0212 - mse: 8.1577e-04 - val_loss: 8.4703e-04 - val_mae: 0.0211 - val_mse: 8.4703e-04 - 165ms/epoch - 13ms/step\n", "Epoch 80/250\n", - "13/13 - 0s - loss: 8.0555e-04 - mae: 0.0211 - mse: 8.0555e-04 - val_loss: 8.5652e-04 - val_mae: 0.0214 - val_mse: 8.5652e-04 - 108ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 8.0555e-04 - mae: 0.0211 - mse: 8.0555e-04 - val_loss: 8.5652e-04 - val_mae: 0.0214 - val_mse: 8.5652e-04 - 131ms/epoch - 10ms/step\n", "Epoch 81/250\n", - "13/13 - 0s - loss: 8.3478e-04 - mae: 0.0219 - mse: 8.3478e-04 - val_loss: 9.1057e-04 - val_mae: 0.0222 - val_mse: 9.1057e-04 - 114ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 8.3478e-04 - mae: 0.0219 - mse: 8.3478e-04 - val_loss: 9.1057e-04 - val_mae: 0.0222 - val_mse: 9.1057e-04 - 166ms/epoch - 13ms/step\n", "Epoch 82/250\n", - "13/13 - 0s - loss: 8.2593e-04 - mae: 0.0217 - mse: 8.2593e-04 - val_loss: 8.1172e-04 - val_mae: 0.0209 - val_mse: 8.1172e-04 - 113ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 8.2593e-04 - mae: 0.0217 - mse: 8.2593e-04 - val_loss: 8.1172e-04 - val_mae: 0.0209 - val_mse: 8.1172e-04 - 143ms/epoch - 11ms/step\n", "Epoch 83/250\n", - "13/13 - 0s - loss: 8.2887e-04 - mae: 0.0213 - mse: 8.2887e-04 - val_loss: 8.2033e-04 - val_mae: 0.0211 - val_mse: 8.2033e-04 - 165ms/epoch - 13ms/step\n", + "13/13 - 0s - loss: 8.2887e-04 - mae: 0.0213 - mse: 8.2887e-04 - val_loss: 8.2033e-04 - val_mae: 0.0211 - val_mse: 8.2033e-04 - 115ms/epoch - 9ms/step\n", "Epoch 84/250\n", - "13/13 - 0s - loss: 8.1454e-04 - mae: 0.0219 - mse: 8.1454e-04 - val_loss: 8.1589e-04 - val_mae: 0.0211 - val_mse: 8.1589e-04 - 109ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 8.1454e-04 - mae: 0.0219 - mse: 8.1454e-04 - val_loss: 8.1589e-04 - val_mae: 0.0211 - val_mse: 8.1589e-04 - 148ms/epoch - 11ms/step\n", "Epoch 85/250\n", - "13/13 - 0s - loss: 8.0777e-04 - mae: 0.0212 - mse: 8.0777e-04 - val_loss: 7.8637e-04 - val_mae: 0.0208 - val_mse: 7.8637e-04 - 177ms/epoch - 14ms/step\n", + "13/13 - 0s - loss: 8.0777e-04 - mae: 0.0212 - mse: 8.0777e-04 - val_loss: 7.8637e-04 - val_mae: 0.0208 - val_mse: 7.8637e-04 - 282ms/epoch - 22ms/step\n", "Epoch 86/250\n", - "13/13 - 0s - loss: 7.8107e-04 - mae: 0.0213 - mse: 7.8107e-04 - val_loss: 7.8138e-04 - val_mae: 0.0212 - val_mse: 7.8138e-04 - 223ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 7.8107e-04 - mae: 0.0213 - mse: 7.8107e-04 - val_loss: 7.8138e-04 - val_mae: 0.0212 - val_mse: 7.8138e-04 - 246ms/epoch - 19ms/step\n", "Epoch 87/250\n", "13/13 - 0s - loss: 7.9729e-04 - mae: 0.0210 - mse: 7.9729e-04 - val_loss: 7.3667e-04 - val_mae: 0.0204 - val_mse: 7.3667e-04 - 237ms/epoch - 18ms/step\n", "Epoch 88/250\n", - "13/13 - 0s - loss: 7.5931e-04 - mae: 0.0205 - mse: 7.5931e-04 - val_loss: 7.5522e-04 - val_mae: 0.0210 - val_mse: 7.5522e-04 - 108ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 7.5931e-04 - mae: 0.0205 - mse: 7.5931e-04 - val_loss: 7.5522e-04 - val_mae: 0.0210 - val_mse: 7.5522e-04 - 208ms/epoch - 16ms/step\n", "Epoch 89/250\n", - "13/13 - 0s - loss: 7.6036e-04 - mae: 0.0211 - mse: 7.6036e-04 - val_loss: 7.5503e-04 - val_mae: 0.0207 - val_mse: 7.5503e-04 - 106ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 7.6036e-04 - mae: 0.0211 - mse: 7.6036e-04 - val_loss: 7.5503e-04 - val_mae: 0.0207 - val_mse: 7.5503e-04 - 193ms/epoch - 15ms/step\n", "Epoch 90/250\n", - "13/13 - 0s - loss: 7.6322e-04 - mae: 0.0204 - mse: 7.6322e-04 - val_loss: 7.7629e-04 - val_mae: 0.0203 - val_mse: 7.7629e-04 - 117ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 7.6322e-04 - mae: 0.0204 - mse: 7.6322e-04 - val_loss: 7.7629e-04 - val_mae: 0.0203 - val_mse: 7.7629e-04 - 168ms/epoch - 13ms/step\n", "Epoch 91/250\n", - "13/13 - 0s - loss: 7.5436e-04 - mae: 0.0208 - mse: 7.5436e-04 - val_loss: 7.4549e-04 - val_mae: 0.0210 - val_mse: 7.4549e-04 - 109ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 7.5436e-04 - mae: 0.0208 - mse: 7.5436e-04 - val_loss: 7.4549e-04 - val_mae: 0.0210 - val_mse: 7.4549e-04 - 156ms/epoch - 12ms/step\n", "Epoch 92/250\n", - "13/13 - 0s - loss: 7.8479e-04 - mae: 0.0208 - mse: 7.8479e-04 - val_loss: 8.0607e-04 - val_mae: 0.0208 - val_mse: 8.0607e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 7.8479e-04 - mae: 0.0208 - mse: 7.8479e-04 - val_loss: 8.0607e-04 - val_mae: 0.0208 - val_mse: 8.0607e-04 - 137ms/epoch - 11ms/step\n", "Epoch 93/250\n", - "13/13 - 0s - loss: 7.7194e-04 - mae: 0.0211 - mse: 7.7194e-04 - val_loss: 7.7994e-04 - val_mae: 0.0206 - val_mse: 7.7994e-04 - 109ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 7.7194e-04 - mae: 0.0211 - mse: 7.7194e-04 - val_loss: 7.7994e-04 - val_mae: 0.0206 - val_mse: 7.7994e-04 - 174ms/epoch - 13ms/step\n", "Epoch 94/250\n", - "13/13 - 0s - loss: 7.4802e-04 - mae: 0.0205 - mse: 7.4802e-04 - val_loss: 7.2386e-04 - val_mae: 0.0201 - val_mse: 7.2386e-04 - 190ms/epoch - 15ms/step\n", + "13/13 - 0s - loss: 7.4802e-04 - mae: 0.0205 - mse: 7.4802e-04 - val_loss: 7.2386e-04 - val_mae: 0.0201 - val_mse: 7.2386e-04 - 303ms/epoch - 23ms/step\n", "Epoch 95/250\n", - "13/13 - 0s - loss: 7.2616e-04 - mae: 0.0203 - mse: 7.2616e-04 - val_loss: 7.2728e-04 - val_mae: 0.0204 - val_mse: 7.2728e-04 - 121ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 7.2616e-04 - mae: 0.0203 - mse: 7.2616e-04 - val_loss: 7.2728e-04 - val_mae: 0.0204 - val_mse: 7.2728e-04 - 129ms/epoch - 10ms/step\n", "Epoch 96/250\n", - "13/13 - 0s - loss: 7.2310e-04 - mae: 0.0204 - mse: 7.2310e-04 - val_loss: 7.1349e-04 - val_mae: 0.0206 - val_mse: 7.1349e-04 - 219ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 7.2310e-04 - mae: 0.0204 - mse: 7.2310e-04 - val_loss: 7.1349e-04 - val_mae: 0.0206 - val_mse: 7.1349e-04 - 218ms/epoch - 17ms/step\n", "Epoch 97/250\n", - "13/13 - 0s - loss: 7.0905e-04 - mae: 0.0201 - mse: 7.0905e-04 - val_loss: 7.6242e-04 - val_mae: 0.0205 - val_mse: 7.6242e-04 - 117ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 7.0905e-04 - mae: 0.0201 - mse: 7.0905e-04 - val_loss: 7.6242e-04 - val_mae: 0.0205 - val_mse: 7.6242e-04 - 128ms/epoch - 10ms/step\n", "Epoch 98/250\n", - "13/13 - 0s - loss: 7.1839e-04 - mae: 0.0200 - mse: 7.1839e-04 - val_loss: 7.7098e-04 - val_mae: 0.0202 - val_mse: 7.7098e-04 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 7.1839e-04 - mae: 0.0200 - mse: 7.1839e-04 - val_loss: 7.7098e-04 - val_mae: 0.0202 - val_mse: 7.7098e-04 - 147ms/epoch - 11ms/step\n", "Epoch 99/250\n", - "13/13 - 0s - loss: 7.3924e-04 - mae: 0.0208 - mse: 7.3924e-04 - val_loss: 7.8554e-04 - val_mae: 0.0206 - val_mse: 7.8554e-04 - 114ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 7.3924e-04 - mae: 0.0208 - mse: 7.3924e-04 - val_loss: 7.8554e-04 - val_mae: 0.0206 - val_mse: 7.8554e-04 - 130ms/epoch - 10ms/step\n", "Epoch 100/250\n", - "13/13 - 0s - loss: 7.5556e-04 - mae: 0.0209 - mse: 7.5556e-04 - val_loss: 8.6021e-04 - val_mae: 0.0215 - val_mse: 8.6021e-04 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 7.5556e-04 - mae: 0.0209 - mse: 7.5556e-04 - val_loss: 8.6021e-04 - val_mae: 0.0215 - val_mse: 8.6021e-04 - 174ms/epoch - 13ms/step\n", "Epoch 101/250\n", - "13/13 - 0s - loss: 7.9288e-04 - mae: 0.0213 - mse: 7.9288e-04 - val_loss: 7.2968e-04 - val_mae: 0.0203 - val_mse: 7.2968e-04 - 110ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 7.9288e-04 - mae: 0.0213 - mse: 7.9288e-04 - val_loss: 7.2968e-04 - val_mae: 0.0203 - val_mse: 7.2968e-04 - 125ms/epoch - 10ms/step\n", "Epoch 102/250\n", - "13/13 - 0s - loss: 7.1861e-04 - mae: 0.0204 - mse: 7.1861e-04 - val_loss: 7.0941e-04 - val_mae: 0.0207 - val_mse: 7.0941e-04 - 227ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 7.1861e-04 - mae: 0.0204 - mse: 7.1861e-04 - val_loss: 7.0941e-04 - val_mae: 0.0207 - val_mse: 7.0941e-04 - 260ms/epoch - 20ms/step\n", "Epoch 103/250\n", - "13/13 - 0s - loss: 7.5092e-04 - mae: 0.0208 - mse: 7.5092e-04 - val_loss: 6.8788e-04 - val_mae: 0.0198 - val_mse: 6.8788e-04 - 218ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 7.5092e-04 - mae: 0.0208 - mse: 7.5092e-04 - val_loss: 6.8788e-04 - val_mae: 0.0198 - val_mse: 6.8788e-04 - 275ms/epoch - 21ms/step\n", "Epoch 104/250\n", - "13/13 - 0s - loss: 7.0460e-04 - mae: 0.0200 - mse: 7.0460e-04 - val_loss: 7.2570e-04 - val_mae: 0.0200 - val_mse: 7.2570e-04 - 115ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 7.0460e-04 - mae: 0.0200 - mse: 7.0460e-04 - val_loss: 7.2570e-04 - val_mae: 0.0200 - val_mse: 7.2570e-04 - 125ms/epoch - 10ms/step\n", "Epoch 105/250\n", - "13/13 - 0s - loss: 6.9255e-04 - mae: 0.0202 - mse: 6.9255e-04 - val_loss: 6.7411e-04 - val_mae: 0.0199 - val_mse: 6.7411e-04 - 193ms/epoch - 15ms/step\n", + "13/13 - 0s - loss: 6.9255e-04 - mae: 0.0202 - mse: 6.9255e-04 - val_loss: 6.7411e-04 - val_mae: 0.0199 - val_mse: 6.7411e-04 - 275ms/epoch - 21ms/step\n", "Epoch 106/250\n", - "13/13 - 0s - loss: 6.8175e-04 - mae: 0.0196 - mse: 6.8175e-04 - val_loss: 6.7593e-04 - val_mae: 0.0196 - val_mse: 6.7593e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 6.8175e-04 - mae: 0.0196 - mse: 6.8175e-04 - val_loss: 6.7593e-04 - val_mae: 0.0196 - val_mse: 6.7593e-04 - 157ms/epoch - 12ms/step\n", "Epoch 107/250\n", - "13/13 - 0s - loss: 6.7018e-04 - mae: 0.0196 - mse: 6.7018e-04 - val_loss: 6.8702e-04 - val_mae: 0.0196 - val_mse: 6.8702e-04 - 110ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 6.7018e-04 - mae: 0.0196 - mse: 6.7018e-04 - val_loss: 6.8702e-04 - val_mae: 0.0196 - val_mse: 6.8702e-04 - 183ms/epoch - 14ms/step\n", "Epoch 108/250\n", - "13/13 - 0s - loss: 6.7955e-04 - mae: 0.0198 - mse: 6.7955e-04 - val_loss: 7.6778e-04 - val_mae: 0.0204 - val_mse: 7.6778e-04 - 107ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 6.7955e-04 - mae: 0.0198 - mse: 6.7955e-04 - val_loss: 7.6778e-04 - val_mae: 0.0204 - val_mse: 7.6778e-04 - 192ms/epoch - 15ms/step\n", "Epoch 109/250\n", - "13/13 - 0s - loss: 6.8953e-04 - mae: 0.0198 - mse: 6.8953e-04 - val_loss: 6.7251e-04 - val_mae: 0.0195 - val_mse: 6.7251e-04 - 192ms/epoch - 15ms/step\n", + "13/13 - 1s - loss: 6.8953e-04 - mae: 0.0198 - mse: 6.8953e-04 - val_loss: 6.7251e-04 - val_mae: 0.0195 - val_mse: 6.7251e-04 - 516ms/epoch - 40ms/step\n", "Epoch 110/250\n", - "13/13 - 0s - loss: 6.6819e-04 - mae: 0.0197 - mse: 6.6819e-04 - val_loss: 6.8310e-04 - val_mae: 0.0197 - val_mse: 6.8310e-04 - 102ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 6.6819e-04 - mae: 0.0197 - mse: 6.6819e-04 - val_loss: 6.8310e-04 - val_mae: 0.0197 - val_mse: 6.8310e-04 - 146ms/epoch - 11ms/step\n", "Epoch 111/250\n", - "13/13 - 0s - loss: 6.7136e-04 - mae: 0.0197 - mse: 6.7136e-04 - val_loss: 6.5858e-04 - val_mae: 0.0199 - val_mse: 6.5858e-04 - 224ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 6.7136e-04 - mae: 0.0197 - mse: 6.7136e-04 - val_loss: 6.5858e-04 - val_mae: 0.0199 - val_mse: 6.5858e-04 - 208ms/epoch - 16ms/step\n", "Epoch 112/250\n", - "13/13 - 0s - loss: 6.5784e-04 - mae: 0.0195 - mse: 6.5784e-04 - val_loss: 6.5838e-04 - val_mae: 0.0196 - val_mse: 6.5838e-04 - 234ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 6.5784e-04 - mae: 0.0195 - mse: 6.5784e-04 - val_loss: 6.5838e-04 - val_mae: 0.0196 - val_mse: 6.5838e-04 - 215ms/epoch - 17ms/step\n", "Epoch 113/250\n", - "13/13 - 0s - loss: 6.6861e-04 - mae: 0.0198 - mse: 6.6861e-04 - val_loss: 6.9871e-04 - val_mae: 0.0196 - val_mse: 6.9871e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 6.6861e-04 - mae: 0.0198 - mse: 6.6861e-04 - val_loss: 6.9871e-04 - val_mae: 0.0196 - val_mse: 6.9871e-04 - 149ms/epoch - 11ms/step\n", "Epoch 114/250\n", - "13/13 - 0s - loss: 6.6345e-04 - mae: 0.0196 - mse: 6.6345e-04 - val_loss: 6.8190e-04 - val_mae: 0.0196 - val_mse: 6.8190e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 6.6345e-04 - mae: 0.0196 - mse: 6.6345e-04 - val_loss: 6.8190e-04 - val_mae: 0.0196 - val_mse: 6.8190e-04 - 141ms/epoch - 11ms/step\n", "Epoch 115/250\n", - "13/13 - 0s - loss: 6.4121e-04 - mae: 0.0193 - mse: 6.4121e-04 - val_loss: 6.6493e-04 - val_mae: 0.0196 - val_mse: 6.6493e-04 - 120ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 6.4121e-04 - mae: 0.0193 - mse: 6.4121e-04 - val_loss: 6.6493e-04 - val_mae: 0.0196 - val_mse: 6.6493e-04 - 166ms/epoch - 13ms/step\n", "Epoch 116/250\n", "13/13 - 0s - loss: 6.5036e-04 - mae: 0.0194 - mse: 6.5036e-04 - val_loss: 6.5858e-04 - val_mae: 0.0191 - val_mse: 6.5858e-04 - 107ms/epoch - 8ms/step\n", "Epoch 117/250\n", - "13/13 - 0s - loss: 6.4983e-04 - mae: 0.0194 - mse: 6.4983e-04 - val_loss: 7.0443e-04 - val_mae: 0.0198 - val_mse: 7.0443e-04 - 115ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 6.4983e-04 - mae: 0.0194 - mse: 6.4983e-04 - val_loss: 7.0443e-04 - val_mae: 0.0198 - val_mse: 7.0443e-04 - 109ms/epoch - 8ms/step\n", "Epoch 118/250\n", - "13/13 - 0s - loss: 6.4994e-04 - mae: 0.0195 - mse: 6.4994e-04 - val_loss: 6.3181e-04 - val_mae: 0.0193 - val_mse: 6.3181e-04 - 216ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 6.4994e-04 - mae: 0.0195 - mse: 6.4994e-04 - val_loss: 6.3181e-04 - val_mae: 0.0193 - val_mse: 6.3181e-04 - 296ms/epoch - 23ms/step\n", "Epoch 119/250\n", - "13/13 - 0s - loss: 6.6252e-04 - mae: 0.0199 - mse: 6.6252e-04 - val_loss: 6.3527e-04 - val_mae: 0.0191 - val_mse: 6.3527e-04 - 115ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 6.6252e-04 - mae: 0.0199 - mse: 6.6252e-04 - val_loss: 6.3527e-04 - val_mae: 0.0191 - val_mse: 6.3527e-04 - 165ms/epoch - 13ms/step\n", "Epoch 120/250\n", - "13/13 - 0s - loss: 6.4578e-04 - mae: 0.0193 - mse: 6.4578e-04 - val_loss: 6.3127e-04 - val_mae: 0.0189 - val_mse: 6.3127e-04 - 251ms/epoch - 19ms/step\n", + "13/13 - 0s - loss: 6.4578e-04 - mae: 0.0193 - mse: 6.4578e-04 - val_loss: 6.3127e-04 - val_mae: 0.0189 - val_mse: 6.3127e-04 - 190ms/epoch - 15ms/step\n", "Epoch 121/250\n", - "13/13 - 0s - loss: 6.1375e-04 - mae: 0.0191 - mse: 6.1375e-04 - val_loss: 6.5351e-04 - val_mae: 0.0192 - val_mse: 6.5351e-04 - 107ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 6.1375e-04 - mae: 0.0191 - mse: 6.1375e-04 - val_loss: 6.5351e-04 - val_mae: 0.0192 - val_mse: 6.5351e-04 - 125ms/epoch - 10ms/step\n", "Epoch 122/250\n", - "13/13 - 0s - loss: 6.4650e-04 - mae: 0.0196 - mse: 6.4650e-04 - val_loss: 8.0733e-04 - val_mae: 0.0210 - val_mse: 8.0733e-04 - 120ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 6.4650e-04 - mae: 0.0196 - mse: 6.4650e-04 - val_loss: 8.0733e-04 - val_mae: 0.0210 - val_mse: 8.0733e-04 - 142ms/epoch - 11ms/step\n", "Epoch 123/250\n", - "13/13 - 0s - loss: 6.5887e-04 - mae: 0.0198 - mse: 6.5887e-04 - val_loss: 6.2666e-04 - val_mae: 0.0191 - val_mse: 6.2666e-04 - 227ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 6.5887e-04 - mae: 0.0198 - mse: 6.5887e-04 - val_loss: 6.2666e-04 - val_mae: 0.0191 - val_mse: 6.2666e-04 - 278ms/epoch - 21ms/step\n", "Epoch 124/250\n", - "13/13 - 0s - loss: 6.1387e-04 - mae: 0.0189 - mse: 6.1387e-04 - val_loss: 6.1020e-04 - val_mae: 0.0188 - val_mse: 6.1020e-04 - 210ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 6.1387e-04 - mae: 0.0189 - mse: 6.1387e-04 - val_loss: 6.1020e-04 - val_mae: 0.0188 - val_mse: 6.1020e-04 - 246ms/epoch - 19ms/step\n", "Epoch 125/250\n", - "13/13 - 0s - loss: 6.1348e-04 - mae: 0.0191 - mse: 6.1348e-04 - val_loss: 6.1093e-04 - val_mae: 0.0193 - val_mse: 6.1093e-04 - 108ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 6.1348e-04 - mae: 0.0191 - mse: 6.1348e-04 - val_loss: 6.1093e-04 - val_mae: 0.0193 - val_mse: 6.1093e-04 - 135ms/epoch - 10ms/step\n", "Epoch 126/250\n", - "13/13 - 0s - loss: 6.1374e-04 - mae: 0.0189 - mse: 6.1374e-04 - val_loss: 6.1062e-04 - val_mae: 0.0188 - val_mse: 6.1062e-04 - 116ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 6.1374e-04 - mae: 0.0189 - mse: 6.1374e-04 - val_loss: 6.1062e-04 - val_mae: 0.0188 - val_mse: 6.1062e-04 - 174ms/epoch - 13ms/step\n", "Epoch 127/250\n", - "13/13 - 0s - loss: 6.1279e-04 - mae: 0.0190 - mse: 6.1279e-04 - val_loss: 6.4391e-04 - val_mae: 0.0190 - val_mse: 6.4391e-04 - 107ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 6.1279e-04 - mae: 0.0190 - mse: 6.1279e-04 - val_loss: 6.4391e-04 - val_mae: 0.0190 - val_mse: 6.4391e-04 - 142ms/epoch - 11ms/step\n", "Epoch 128/250\n", - "13/13 - 0s - loss: 6.0951e-04 - mae: 0.0189 - mse: 6.0951e-04 - val_loss: 5.9592e-04 - val_mae: 0.0188 - val_mse: 5.9592e-04 - 228ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 6.0951e-04 - mae: 0.0189 - mse: 6.0951e-04 - val_loss: 5.9592e-04 - val_mae: 0.0188 - val_mse: 5.9592e-04 - 249ms/epoch - 19ms/step\n", "Epoch 129/250\n", - "13/13 - 0s - loss: 6.2194e-04 - mae: 0.0192 - mse: 6.2194e-04 - val_loss: 5.9344e-04 - val_mae: 0.0188 - val_mse: 5.9344e-04 - 180ms/epoch - 14ms/step\n", + "13/13 - 0s - loss: 6.2194e-04 - mae: 0.0192 - mse: 6.2194e-04 - val_loss: 5.9344e-04 - val_mae: 0.0188 - val_mse: 5.9344e-04 - 279ms/epoch - 21ms/step\n", "Epoch 130/250\n", - "13/13 - 0s - loss: 6.1795e-04 - mae: 0.0191 - mse: 6.1795e-04 - val_loss: 5.8880e-04 - val_mae: 0.0188 - val_mse: 5.8880e-04 - 218ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 6.1795e-04 - mae: 0.0191 - mse: 6.1795e-04 - val_loss: 5.8880e-04 - val_mae: 0.0188 - val_mse: 5.8880e-04 - 356ms/epoch - 27ms/step\n", "Epoch 131/250\n", - "13/13 - 0s - loss: 6.6297e-04 - mae: 0.0199 - mse: 6.6297e-04 - val_loss: 7.2306e-04 - val_mae: 0.0197 - val_mse: 7.2306e-04 - 117ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 6.6297e-04 - mae: 0.0199 - mse: 6.6297e-04 - val_loss: 7.2306e-04 - val_mae: 0.0197 - val_mse: 7.2306e-04 - 151ms/epoch - 12ms/step\n", "Epoch 132/250\n", - "13/13 - 0s - loss: 5.8788e-04 - mae: 0.0189 - mse: 5.8788e-04 - val_loss: 6.0686e-04 - val_mae: 0.0189 - val_mse: 6.0686e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 5.8788e-04 - mae: 0.0189 - mse: 5.8788e-04 - val_loss: 6.0686e-04 - val_mae: 0.0189 - val_mse: 6.0686e-04 - 102ms/epoch - 8ms/step\n", "Epoch 133/250\n", - "13/13 - 0s - loss: 5.7425e-04 - mae: 0.0184 - mse: 5.7425e-04 - val_loss: 5.7895e-04 - val_mae: 0.0183 - val_mse: 5.7895e-04 - 218ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 5.7425e-04 - mae: 0.0184 - mse: 5.7425e-04 - val_loss: 5.7895e-04 - val_mae: 0.0183 - val_mse: 5.7895e-04 - 239ms/epoch - 18ms/step\n", "Epoch 134/250\n", - "13/13 - 0s - loss: 5.8783e-04 - mae: 0.0186 - mse: 5.8783e-04 - val_loss: 5.7846e-04 - val_mae: 0.0188 - val_mse: 5.7846e-04 - 230ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 5.8783e-04 - mae: 0.0186 - mse: 5.8783e-04 - val_loss: 5.7846e-04 - val_mae: 0.0188 - val_mse: 5.7846e-04 - 285ms/epoch - 22ms/step\n", "Epoch 135/250\n", - "13/13 - 0s - loss: 5.8541e-04 - mae: 0.0188 - mse: 5.8541e-04 - val_loss: 6.7887e-04 - val_mae: 0.0191 - val_mse: 6.7887e-04 - 108ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 5.8541e-04 - mae: 0.0188 - mse: 5.8541e-04 - val_loss: 6.7887e-04 - val_mae: 0.0191 - val_mse: 6.7887e-04 - 178ms/epoch - 14ms/step\n", "Epoch 136/250\n", - "13/13 - 0s - loss: 5.9158e-04 - mae: 0.0185 - mse: 5.9158e-04 - val_loss: 5.9231e-04 - val_mae: 0.0188 - val_mse: 5.9231e-04 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 5.9158e-04 - mae: 0.0185 - mse: 5.9158e-04 - val_loss: 5.9231e-04 - val_mae: 0.0188 - val_mse: 5.9231e-04 - 113ms/epoch - 9ms/step\n", "Epoch 137/250\n", - "13/13 - 0s - loss: 5.9616e-04 - mae: 0.0192 - mse: 5.9616e-04 - val_loss: 7.0218e-04 - val_mae: 0.0212 - val_mse: 7.0218e-04 - 102ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 5.9616e-04 - mae: 0.0192 - mse: 5.9616e-04 - val_loss: 7.0218e-04 - val_mae: 0.0212 - val_mse: 7.0218e-04 - 138ms/epoch - 11ms/step\n", "Epoch 138/250\n", - "13/13 - 0s - loss: 6.2132e-04 - mae: 0.0190 - mse: 6.2132e-04 - val_loss: 6.3436e-04 - val_mae: 0.0186 - val_mse: 6.3436e-04 - 105ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 6.2132e-04 - mae: 0.0190 - mse: 6.2132e-04 - val_loss: 6.3436e-04 - val_mae: 0.0186 - val_mse: 6.3436e-04 - 144ms/epoch - 11ms/step\n", "Epoch 139/250\n", - "13/13 - 0s - loss: 5.8416e-04 - mae: 0.0189 - mse: 5.8416e-04 - val_loss: 5.7793e-04 - val_mae: 0.0184 - val_mse: 5.7793e-04 - 215ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 5.8416e-04 - mae: 0.0189 - mse: 5.8416e-04 - val_loss: 5.7793e-04 - val_mae: 0.0184 - val_mse: 5.7793e-04 - 279ms/epoch - 21ms/step\n", "Epoch 140/250\n", - "13/13 - 0s - loss: 6.5695e-04 - mae: 0.0195 - mse: 6.5695e-04 - val_loss: 5.8062e-04 - val_mae: 0.0189 - val_mse: 5.8062e-04 - 109ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 6.5695e-04 - mae: 0.0195 - mse: 6.5695e-04 - val_loss: 5.8062e-04 - val_mae: 0.0189 - val_mse: 5.8062e-04 - 174ms/epoch - 13ms/step\n", "Epoch 141/250\n", - "13/13 - 0s - loss: 6.4168e-04 - mae: 0.0200 - mse: 6.4168e-04 - val_loss: 6.9879e-04 - val_mae: 0.0196 - val_mse: 6.9879e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 6.4168e-04 - mae: 0.0200 - mse: 6.4168e-04 - val_loss: 6.9879e-04 - val_mae: 0.0196 - val_mse: 6.9879e-04 - 118ms/epoch - 9ms/step\n", "Epoch 142/250\n", - "13/13 - 0s - loss: 6.5517e-04 - mae: 0.0198 - mse: 6.5517e-04 - val_loss: 6.3928e-04 - val_mae: 0.0193 - val_mse: 6.3928e-04 - 118ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 6.5517e-04 - mae: 0.0198 - mse: 6.5517e-04 - val_loss: 6.3928e-04 - val_mae: 0.0193 - val_mse: 6.3928e-04 - 120ms/epoch - 9ms/step\n", "Epoch 143/250\n", - "13/13 - 0s - loss: 5.8456e-04 - mae: 0.0190 - mse: 5.8456e-04 - val_loss: 5.4596e-04 - val_mae: 0.0181 - val_mse: 5.4596e-04 - 225ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 5.8456e-04 - mae: 0.0190 - mse: 5.8456e-04 - val_loss: 5.4596e-04 - val_mae: 0.0181 - val_mse: 5.4596e-04 - 304ms/epoch - 23ms/step\n", "Epoch 144/250\n", - "13/13 - 0s - loss: 5.9458e-04 - mae: 0.0186 - mse: 5.9458e-04 - val_loss: 5.8598e-04 - val_mae: 0.0181 - val_mse: 5.8598e-04 - 107ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 5.9458e-04 - mae: 0.0186 - mse: 5.9458e-04 - val_loss: 5.8598e-04 - val_mae: 0.0181 - val_mse: 5.8598e-04 - 178ms/epoch - 14ms/step\n", "Epoch 145/250\n", - "13/13 - 0s - loss: 5.6787e-04 - mae: 0.0186 - mse: 5.6787e-04 - val_loss: 5.6263e-04 - val_mae: 0.0186 - val_mse: 5.6263e-04 - 124ms/epoch - 10ms/step\n", + "13/13 - 0s - loss: 5.6787e-04 - mae: 0.0186 - mse: 5.6787e-04 - val_loss: 5.6263e-04 - val_mae: 0.0186 - val_mse: 5.6263e-04 - 131ms/epoch - 10ms/step\n", "Epoch 146/250\n", - "13/13 - 0s - loss: 5.3545e-04 - mae: 0.0178 - mse: 5.3545e-04 - val_loss: 5.3802e-04 - val_mae: 0.0179 - val_mse: 5.3802e-04 - 186ms/epoch - 14ms/step\n", + "13/13 - 0s - loss: 5.3545e-04 - mae: 0.0178 - mse: 5.3545e-04 - val_loss: 5.3802e-04 - val_mae: 0.0179 - val_mse: 5.3802e-04 - 396ms/epoch - 30ms/step\n", "Epoch 147/250\n", - "13/13 - 0s - loss: 5.2310e-04 - mae: 0.0177 - mse: 5.2310e-04 - val_loss: 5.4103e-04 - val_mae: 0.0179 - val_mse: 5.4103e-04 - 102ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 5.2310e-04 - mae: 0.0177 - mse: 5.2310e-04 - val_loss: 5.4103e-04 - val_mae: 0.0179 - val_mse: 5.4103e-04 - 151ms/epoch - 12ms/step\n", "Epoch 148/250\n", - "13/13 - 0s - loss: 5.2826e-04 - mae: 0.0176 - mse: 5.2826e-04 - val_loss: 5.9310e-04 - val_mae: 0.0181 - val_mse: 5.9310e-04 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 5.2826e-04 - mae: 0.0176 - mse: 5.2826e-04 - val_loss: 5.9310e-04 - val_mae: 0.0181 - val_mse: 5.9310e-04 - 155ms/epoch - 12ms/step\n", "Epoch 149/250\n", - "13/13 - 0s - loss: 5.3295e-04 - mae: 0.0179 - mse: 5.3295e-04 - val_loss: 5.4002e-04 - val_mae: 0.0176 - val_mse: 5.4002e-04 - 110ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 5.3295e-04 - mae: 0.0179 - mse: 5.3295e-04 - val_loss: 5.4002e-04 - val_mae: 0.0176 - val_mse: 5.4002e-04 - 120ms/epoch - 9ms/step\n", "Epoch 150/250\n", - "13/13 - 0s - loss: 5.1491e-04 - mae: 0.0174 - mse: 5.1491e-04 - val_loss: 5.9602e-04 - val_mae: 0.0179 - val_mse: 5.9602e-04 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 5.1491e-04 - mae: 0.0174 - mse: 5.1491e-04 - val_loss: 5.9602e-04 - val_mae: 0.0179 - val_mse: 5.9602e-04 - 137ms/epoch - 11ms/step\n", "Epoch 151/250\n", - "13/13 - 0s - loss: 5.2334e-04 - mae: 0.0179 - mse: 5.2334e-04 - val_loss: 5.2811e-04 - val_mae: 0.0178 - val_mse: 5.2811e-04 - 222ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 5.2334e-04 - mae: 0.0179 - mse: 5.2334e-04 - val_loss: 5.2811e-04 - val_mae: 0.0178 - val_mse: 5.2811e-04 - 315ms/epoch - 24ms/step\n", "Epoch 152/250\n", - "13/13 - 0s - loss: 5.2768e-04 - mae: 0.0178 - mse: 5.2768e-04 - val_loss: 5.5139e-04 - val_mae: 0.0184 - val_mse: 5.5139e-04 - 118ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 5.2768e-04 - mae: 0.0178 - mse: 5.2768e-04 - val_loss: 5.5139e-04 - val_mae: 0.0184 - val_mse: 5.5139e-04 - 198ms/epoch - 15ms/step\n", "Epoch 153/250\n", - "13/13 - 0s - loss: 5.2962e-04 - mae: 0.0179 - mse: 5.2962e-04 - val_loss: 5.7462e-04 - val_mae: 0.0178 - val_mse: 5.7462e-04 - 99ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 5.2962e-04 - mae: 0.0179 - mse: 5.2962e-04 - val_loss: 5.7462e-04 - val_mae: 0.0178 - val_mse: 5.7462e-04 - 129ms/epoch - 10ms/step\n", "Epoch 154/250\n", - "13/13 - 0s - loss: 5.0260e-04 - mae: 0.0173 - mse: 5.0260e-04 - val_loss: 5.3387e-04 - val_mae: 0.0181 - val_mse: 5.3387e-04 - 102ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 5.0260e-04 - mae: 0.0173 - mse: 5.0260e-04 - val_loss: 5.3387e-04 - val_mae: 0.0181 - val_mse: 5.3387e-04 - 131ms/epoch - 10ms/step\n", "Epoch 155/250\n", - "13/13 - 0s - loss: 5.0501e-04 - mae: 0.0175 - mse: 5.0501e-04 - val_loss: 5.0751e-04 - val_mae: 0.0172 - val_mse: 5.0751e-04 - 211ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 5.0501e-04 - mae: 0.0175 - mse: 5.0501e-04 - val_loss: 5.0751e-04 - val_mae: 0.0172 - val_mse: 5.0751e-04 - 267ms/epoch - 21ms/step\n", "Epoch 156/250\n", - "13/13 - 0s - loss: 5.0518e-04 - mae: 0.0173 - mse: 5.0518e-04 - val_loss: 5.5553e-04 - val_mae: 0.0174 - val_mse: 5.5553e-04 - 189ms/epoch - 15ms/step\n", + "13/13 - 0s - loss: 5.0518e-04 - mae: 0.0173 - mse: 5.0518e-04 - val_loss: 5.5553e-04 - val_mae: 0.0174 - val_mse: 5.5553e-04 - 182ms/epoch - 14ms/step\n", "Epoch 157/250\n", - "13/13 - 0s - loss: 5.0064e-04 - mae: 0.0172 - mse: 5.0064e-04 - val_loss: 5.1205e-04 - val_mae: 0.0172 - val_mse: 5.1205e-04 - 108ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 5.0064e-04 - mae: 0.0172 - mse: 5.0064e-04 - val_loss: 5.1205e-04 - val_mae: 0.0172 - val_mse: 5.1205e-04 - 160ms/epoch - 12ms/step\n", "Epoch 158/250\n", - "13/13 - 0s - loss: 4.9541e-04 - mae: 0.0172 - mse: 4.9541e-04 - val_loss: 5.0799e-04 - val_mae: 0.0172 - val_mse: 5.0799e-04 - 106ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.9541e-04 - mae: 0.0172 - mse: 4.9541e-04 - val_loss: 5.0799e-04 - val_mae: 0.0172 - val_mse: 5.0799e-04 - 131ms/epoch - 10ms/step\n", "Epoch 159/250\n", - "13/13 - 0s - loss: 5.4153e-04 - mae: 0.0182 - mse: 5.4153e-04 - val_loss: 5.2077e-04 - val_mae: 0.0171 - val_mse: 5.2077e-04 - 106ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 5.4153e-04 - mae: 0.0182 - mse: 5.4153e-04 - val_loss: 5.2077e-04 - val_mae: 0.0171 - val_mse: 5.2077e-04 - 172ms/epoch - 13ms/step\n", "Epoch 160/250\n", - "13/13 - 0s - loss: 4.8280e-04 - mae: 0.0170 - mse: 4.8280e-04 - val_loss: 5.1410e-04 - val_mae: 0.0168 - val_mse: 5.1410e-04 - 114ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.8280e-04 - mae: 0.0170 - mse: 4.8280e-04 - val_loss: 5.1410e-04 - val_mae: 0.0168 - val_mse: 5.1410e-04 - 164ms/epoch - 13ms/step\n", "Epoch 161/250\n", - "13/13 - 0s - loss: 4.8993e-04 - mae: 0.0171 - mse: 4.8993e-04 - val_loss: 5.1744e-04 - val_mae: 0.0171 - val_mse: 5.1744e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.8993e-04 - mae: 0.0171 - mse: 4.8993e-04 - val_loss: 5.1744e-04 - val_mae: 0.0171 - val_mse: 5.1744e-04 - 169ms/epoch - 13ms/step\n", "Epoch 162/250\n", - "13/13 - 0s - loss: 4.8044e-04 - mae: 0.0169 - mse: 4.8044e-04 - val_loss: 5.1099e-04 - val_mae: 0.0168 - val_mse: 5.1099e-04 - 103ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.8044e-04 - mae: 0.0169 - mse: 4.8044e-04 - val_loss: 5.1099e-04 - val_mae: 0.0168 - val_mse: 5.1099e-04 - 188ms/epoch - 14ms/step\n", "Epoch 163/250\n", - "13/13 - 0s - loss: 4.9657e-04 - mae: 0.0171 - mse: 4.9657e-04 - val_loss: 4.9877e-04 - val_mae: 0.0171 - val_mse: 4.9877e-04 - 227ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 4.9657e-04 - mae: 0.0171 - mse: 4.9657e-04 - val_loss: 4.9877e-04 - val_mae: 0.0171 - val_mse: 4.9877e-04 - 258ms/epoch - 20ms/step\n", "Epoch 164/250\n", - "13/13 - 0s - loss: 4.8858e-04 - mae: 0.0170 - mse: 4.8858e-04 - val_loss: 5.0099e-04 - val_mae: 0.0169 - val_mse: 5.0099e-04 - 99ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.8858e-04 - mae: 0.0170 - mse: 4.8858e-04 - val_loss: 5.0099e-04 - val_mae: 0.0169 - val_mse: 5.0099e-04 - 150ms/epoch - 12ms/step\n", "Epoch 165/250\n", - "13/13 - 0s - loss: 4.7747e-04 - mae: 0.0170 - mse: 4.7747e-04 - val_loss: 5.8449e-04 - val_mae: 0.0174 - val_mse: 5.8449e-04 - 97ms/epoch - 7ms/step\n", + "13/13 - 0s - loss: 4.7747e-04 - mae: 0.0170 - mse: 4.7747e-04 - val_loss: 5.8449e-04 - val_mae: 0.0174 - val_mse: 5.8449e-04 - 158ms/epoch - 12ms/step\n", "Epoch 166/250\n", - "13/13 - 0s - loss: 4.9897e-04 - mae: 0.0171 - mse: 4.9897e-04 - val_loss: 4.9512e-04 - val_mae: 0.0173 - val_mse: 4.9512e-04 - 174ms/epoch - 13ms/step\n", + "13/13 - 0s - loss: 4.9897e-04 - mae: 0.0171 - mse: 4.9897e-04 - val_loss: 4.9512e-04 - val_mae: 0.0173 - val_mse: 4.9512e-04 - 265ms/epoch - 20ms/step\n", "Epoch 167/250\n", - "13/13 - 0s - loss: 4.8695e-04 - mae: 0.0173 - mse: 4.8695e-04 - val_loss: 5.0306e-04 - val_mae: 0.0165 - val_mse: 5.0306e-04 - 97ms/epoch - 7ms/step\n", + "13/13 - 0s - loss: 4.8695e-04 - mae: 0.0173 - mse: 4.8695e-04 - val_loss: 5.0306e-04 - val_mae: 0.0165 - val_mse: 5.0306e-04 - 151ms/epoch - 12ms/step\n", "Epoch 168/250\n", - "13/13 - 0s - loss: 4.7948e-04 - mae: 0.0171 - mse: 4.7948e-04 - val_loss: 6.8895e-04 - val_mae: 0.0193 - val_mse: 6.8895e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.7948e-04 - mae: 0.0171 - mse: 4.7948e-04 - val_loss: 6.8895e-04 - val_mae: 0.0193 - val_mse: 6.8895e-04 - 128ms/epoch - 10ms/step\n", "Epoch 169/250\n", - "13/13 - 0s - loss: 4.8055e-04 - mae: 0.0168 - mse: 4.8055e-04 - val_loss: 4.9053e-04 - val_mae: 0.0171 - val_mse: 4.9053e-04 - 215ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 4.8055e-04 - mae: 0.0168 - mse: 4.8055e-04 - val_loss: 4.9053e-04 - val_mae: 0.0171 - val_mse: 4.9053e-04 - 234ms/epoch - 18ms/step\n", "Epoch 170/250\n", - "13/13 - 0s - loss: 4.5980e-04 - mae: 0.0168 - mse: 4.5980e-04 - val_loss: 5.2267e-04 - val_mae: 0.0170 - val_mse: 5.2267e-04 - 113ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.5980e-04 - mae: 0.0168 - mse: 4.5980e-04 - val_loss: 5.2267e-04 - val_mae: 0.0170 - val_mse: 5.2267e-04 - 167ms/epoch - 13ms/step\n", "Epoch 171/250\n", - "13/13 - 0s - loss: 4.6495e-04 - mae: 0.0168 - mse: 4.6495e-04 - val_loss: 4.6718e-04 - val_mae: 0.0165 - val_mse: 4.6718e-04 - 216ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 4.6495e-04 - mae: 0.0168 - mse: 4.6495e-04 - val_loss: 4.6718e-04 - val_mae: 0.0165 - val_mse: 4.6718e-04 - 243ms/epoch - 19ms/step\n", "Epoch 172/250\n", - "13/13 - 0s - loss: 4.6046e-04 - mae: 0.0168 - mse: 4.6046e-04 - val_loss: 4.6731e-04 - val_mae: 0.0166 - val_mse: 4.6731e-04 - 98ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.6046e-04 - mae: 0.0168 - mse: 4.6046e-04 - val_loss: 4.6731e-04 - val_mae: 0.0166 - val_mse: 4.6731e-04 - 148ms/epoch - 11ms/step\n", "Epoch 173/250\n", - "13/13 - 0s - loss: 4.6993e-04 - mae: 0.0168 - mse: 4.6993e-04 - val_loss: 4.8190e-04 - val_mae: 0.0167 - val_mse: 4.8190e-04 - 101ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.6993e-04 - mae: 0.0168 - mse: 4.6993e-04 - val_loss: 4.8190e-04 - val_mae: 0.0167 - val_mse: 4.8190e-04 - 143ms/epoch - 11ms/step\n", "Epoch 174/250\n", - "13/13 - 0s - loss: 4.8411e-04 - mae: 0.0172 - mse: 4.8411e-04 - val_loss: 5.0800e-04 - val_mae: 0.0164 - val_mse: 5.0800e-04 - 99ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.8411e-04 - mae: 0.0172 - mse: 4.8411e-04 - val_loss: 5.0800e-04 - val_mae: 0.0164 - val_mse: 5.0800e-04 - 131ms/epoch - 10ms/step\n", "Epoch 175/250\n", - "13/13 - 0s - loss: 4.5295e-04 - mae: 0.0164 - mse: 4.5295e-04 - val_loss: 6.2583e-04 - val_mae: 0.0182 - val_mse: 6.2583e-04 - 113ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.5295e-04 - mae: 0.0164 - mse: 4.5295e-04 - val_loss: 6.2583e-04 - val_mae: 0.0182 - val_mse: 6.2583e-04 - 136ms/epoch - 10ms/step\n", "Epoch 176/250\n", - "13/13 - 0s - loss: 5.3742e-04 - mae: 0.0183 - mse: 5.3742e-04 - val_loss: 5.6727e-04 - val_mae: 0.0187 - val_mse: 5.6727e-04 - 106ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 5.3742e-04 - mae: 0.0183 - mse: 5.3742e-04 - val_loss: 5.6727e-04 - val_mae: 0.0187 - val_mse: 5.6727e-04 - 141ms/epoch - 11ms/step\n", "Epoch 177/250\n", - "13/13 - 0s - loss: 5.3634e-04 - mae: 0.0182 - mse: 5.3634e-04 - val_loss: 4.6197e-04 - val_mae: 0.0157 - val_mse: 4.6197e-04 - 212ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 5.3634e-04 - mae: 0.0182 - mse: 5.3634e-04 - val_loss: 4.6197e-04 - val_mae: 0.0157 - val_mse: 4.6197e-04 - 316ms/epoch - 24ms/step\n", "Epoch 178/250\n", - "13/13 - 0s - loss: 4.8847e-04 - mae: 0.0169 - mse: 4.8847e-04 - val_loss: 4.6646e-04 - val_mae: 0.0160 - val_mse: 4.6646e-04 - 108ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.8847e-04 - mae: 0.0169 - mse: 4.8847e-04 - val_loss: 4.6646e-04 - val_mae: 0.0160 - val_mse: 4.6646e-04 - 214ms/epoch - 16ms/step\n", "Epoch 179/250\n", - "13/13 - 0s - loss: 4.3622e-04 - mae: 0.0160 - mse: 4.3622e-04 - val_loss: 5.3203e-04 - val_mae: 0.0164 - val_mse: 5.3203e-04 - 107ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.3622e-04 - mae: 0.0160 - mse: 4.3622e-04 - val_loss: 5.3203e-04 - val_mae: 0.0164 - val_mse: 5.3203e-04 - 181ms/epoch - 14ms/step\n", "Epoch 180/250\n", - "13/13 - 0s - loss: 4.7108e-04 - mae: 0.0165 - mse: 4.7108e-04 - val_loss: 4.6548e-04 - val_mae: 0.0161 - val_mse: 4.6548e-04 - 114ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.7108e-04 - mae: 0.0165 - mse: 4.7108e-04 - val_loss: 4.6548e-04 - val_mae: 0.0161 - val_mse: 4.6548e-04 - 144ms/epoch - 11ms/step\n", "Epoch 181/250\n", - "13/13 - 0s - loss: 4.3932e-04 - mae: 0.0164 - mse: 4.3932e-04 - val_loss: 4.4195e-04 - val_mae: 0.0157 - val_mse: 4.4195e-04 - 212ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 4.3932e-04 - mae: 0.0164 - mse: 4.3932e-04 - val_loss: 4.4195e-04 - val_mae: 0.0157 - val_mse: 4.4195e-04 - 302ms/epoch - 23ms/step\n", "Epoch 182/250\n", - "13/13 - 0s - loss: 4.3340e-04 - mae: 0.0159 - mse: 4.3340e-04 - val_loss: 4.5463e-04 - val_mae: 0.0158 - val_mse: 4.5463e-04 - 95ms/epoch - 7ms/step\n", + "13/13 - 0s - loss: 4.3340e-04 - mae: 0.0159 - mse: 4.3340e-04 - val_loss: 4.5463e-04 - val_mae: 0.0158 - val_mse: 4.5463e-04 - 216ms/epoch - 17ms/step\n", "Epoch 183/250\n", - "13/13 - 0s - loss: 4.2639e-04 - mae: 0.0162 - mse: 4.2639e-04 - val_loss: 4.3874e-04 - val_mae: 0.0156 - val_mse: 4.3874e-04 - 169ms/epoch - 13ms/step\n", + "13/13 - 0s - loss: 4.2639e-04 - mae: 0.0162 - mse: 4.2639e-04 - val_loss: 4.3874e-04 - val_mae: 0.0156 - val_mse: 4.3874e-04 - 296ms/epoch - 23ms/step\n", "Epoch 184/250\n", - "13/13 - 0s - loss: 4.4119e-04 - mae: 0.0159 - mse: 4.4119e-04 - val_loss: 4.7791e-04 - val_mae: 0.0169 - val_mse: 4.7791e-04 - 107ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.4119e-04 - mae: 0.0159 - mse: 4.4119e-04 - val_loss: 4.7791e-04 - val_mae: 0.0169 - val_mse: 4.7791e-04 - 195ms/epoch - 15ms/step\n", "Epoch 185/250\n", - "13/13 - 0s - loss: 4.4805e-04 - mae: 0.0164 - mse: 4.4805e-04 - val_loss: 4.6275e-04 - val_mae: 0.0163 - val_mse: 4.6275e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.4805e-04 - mae: 0.0164 - mse: 4.4805e-04 - val_loss: 4.6275e-04 - val_mae: 0.0163 - val_mse: 4.6275e-04 - 119ms/epoch - 9ms/step\n", "Epoch 186/250\n", - "13/13 - 0s - loss: 4.4495e-04 - mae: 0.0163 - mse: 4.4495e-04 - val_loss: 4.4746e-04 - val_mae: 0.0155 - val_mse: 4.4746e-04 - 107ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.4495e-04 - mae: 0.0163 - mse: 4.4495e-04 - val_loss: 4.4746e-04 - val_mae: 0.0155 - val_mse: 4.4746e-04 - 115ms/epoch - 9ms/step\n", "Epoch 187/250\n", - "13/13 - 0s - loss: 4.7030e-04 - mae: 0.0167 - mse: 4.7030e-04 - val_loss: 5.6234e-04 - val_mae: 0.0169 - val_mse: 5.6234e-04 - 106ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.7030e-04 - mae: 0.0167 - mse: 4.7030e-04 - val_loss: 5.6234e-04 - val_mae: 0.0169 - val_mse: 5.6234e-04 - 147ms/epoch - 11ms/step\n", "Epoch 188/250\n", - "13/13 - 0s - loss: 4.4920e-04 - mae: 0.0160 - mse: 4.4920e-04 - val_loss: 4.2347e-04 - val_mae: 0.0154 - val_mse: 4.2347e-04 - 204ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 4.4920e-04 - mae: 0.0160 - mse: 4.4920e-04 - val_loss: 4.2347e-04 - val_mae: 0.0154 - val_mse: 4.2347e-04 - 451ms/epoch - 35ms/step\n", "Epoch 189/250\n", - "13/13 - 0s - loss: 4.1850e-04 - mae: 0.0159 - mse: 4.1850e-04 - val_loss: 4.5828e-04 - val_mae: 0.0156 - val_mse: 4.5828e-04 - 114ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.1850e-04 - mae: 0.0159 - mse: 4.1850e-04 - val_loss: 4.5828e-04 - val_mae: 0.0156 - val_mse: 4.5828e-04 - 110ms/epoch - 8ms/step\n", "Epoch 190/250\n", - "13/13 - 0s - loss: 4.2816e-04 - mae: 0.0159 - mse: 4.2816e-04 - val_loss: 4.2983e-04 - val_mae: 0.0155 - val_mse: 4.2983e-04 - 114ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.2816e-04 - mae: 0.0159 - mse: 4.2816e-04 - val_loss: 4.2983e-04 - val_mae: 0.0155 - val_mse: 4.2983e-04 - 121ms/epoch - 9ms/step\n", "Epoch 191/250\n", - "13/13 - 0s - loss: 4.1442e-04 - mae: 0.0156 - mse: 4.1442e-04 - val_loss: 4.5135e-04 - val_mae: 0.0154 - val_mse: 4.5135e-04 - 103ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.1442e-04 - mae: 0.0156 - mse: 4.1442e-04 - val_loss: 4.5135e-04 - val_mae: 0.0154 - val_mse: 4.5135e-04 - 173ms/epoch - 13ms/step\n", "Epoch 192/250\n", - "13/13 - 0s - loss: 4.1126e-04 - mae: 0.0159 - mse: 4.1126e-04 - val_loss: 4.2590e-04 - val_mae: 0.0151 - val_mse: 4.2590e-04 - 159ms/epoch - 12ms/step\n", + "13/13 - 0s - loss: 4.1126e-04 - mae: 0.0159 - mse: 4.1126e-04 - val_loss: 4.2590e-04 - val_mae: 0.0151 - val_mse: 4.2590e-04 - 149ms/epoch - 11ms/step\n", "Epoch 193/250\n", - "13/13 - 0s - loss: 4.1197e-04 - mae: 0.0155 - mse: 4.1197e-04 - val_loss: 4.2111e-04 - val_mae: 0.0151 - val_mse: 4.2111e-04 - 209ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 4.1197e-04 - mae: 0.0155 - mse: 4.1197e-04 - val_loss: 4.2111e-04 - val_mae: 0.0151 - val_mse: 4.2111e-04 - 243ms/epoch - 19ms/step\n", "Epoch 194/250\n", - "13/13 - 0s - loss: 4.0958e-04 - mae: 0.0157 - mse: 4.0958e-04 - val_loss: 4.1117e-04 - val_mae: 0.0149 - val_mse: 4.1117e-04 - 185ms/epoch - 14ms/step\n", + "13/13 - 0s - loss: 4.0958e-04 - mae: 0.0157 - mse: 4.0958e-04 - val_loss: 4.1117e-04 - val_mae: 0.0149 - val_mse: 4.1117e-04 - 272ms/epoch - 21ms/step\n", "Epoch 195/250\n", - "13/13 - 0s - loss: 3.9243e-04 - mae: 0.0153 - mse: 3.9243e-04 - val_loss: 4.1405e-04 - val_mae: 0.0150 - val_mse: 4.1405e-04 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.9243e-04 - mae: 0.0153 - mse: 3.9243e-04 - val_loss: 4.1405e-04 - val_mae: 0.0150 - val_mse: 4.1405e-04 - 136ms/epoch - 10ms/step\n", "Epoch 196/250\n", - "13/13 - 0s - loss: 4.0300e-04 - mae: 0.0153 - mse: 4.0300e-04 - val_loss: 4.3989e-04 - val_mae: 0.0150 - val_mse: 4.3989e-04 - 113ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.0300e-04 - mae: 0.0153 - mse: 4.0300e-04 - val_loss: 4.3989e-04 - val_mae: 0.0150 - val_mse: 4.3989e-04 - 151ms/epoch - 12ms/step\n", "Epoch 197/250\n", - "13/13 - 0s - loss: 4.0142e-04 - mae: 0.0154 - mse: 4.0142e-04 - val_loss: 4.3665e-04 - val_mae: 0.0151 - val_mse: 4.3665e-04 - 109ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.0142e-04 - mae: 0.0154 - mse: 4.0142e-04 - val_loss: 4.3665e-04 - val_mae: 0.0151 - val_mse: 4.3665e-04 - 160ms/epoch - 12ms/step\n", "Epoch 198/250\n", - "13/13 - 0s - loss: 3.9936e-04 - mae: 0.0153 - mse: 3.9936e-04 - val_loss: 4.2897e-04 - val_mae: 0.0149 - val_mse: 4.2897e-04 - 107ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.9936e-04 - mae: 0.0153 - mse: 3.9936e-04 - val_loss: 4.2897e-04 - val_mae: 0.0149 - val_mse: 4.2897e-04 - 114ms/epoch - 9ms/step\n", "Epoch 199/250\n", - "13/13 - 0s - loss: 4.0143e-04 - mae: 0.0153 - mse: 4.0143e-04 - val_loss: 4.0877e-04 - val_mae: 0.0148 - val_mse: 4.0877e-04 - 214ms/epoch - 16ms/step\n", + "13/13 - 0s - loss: 4.0143e-04 - mae: 0.0153 - mse: 4.0143e-04 - val_loss: 4.0877e-04 - val_mae: 0.0148 - val_mse: 4.0877e-04 - 209ms/epoch - 16ms/step\n", "Epoch 200/250\n", - "13/13 - 0s - loss: 3.9668e-04 - mae: 0.0152 - mse: 3.9668e-04 - val_loss: 4.3571e-04 - val_mae: 0.0150 - val_mse: 4.3571e-04 - 106ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.9668e-04 - mae: 0.0152 - mse: 3.9668e-04 - val_loss: 4.3571e-04 - val_mae: 0.0150 - val_mse: 4.3571e-04 - 198ms/epoch - 15ms/step\n", "Epoch 201/250\n", - "13/13 - 0s - loss: 3.9516e-04 - mae: 0.0154 - mse: 3.9516e-04 - val_loss: 5.1984e-04 - val_mae: 0.0161 - val_mse: 5.1984e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.9516e-04 - mae: 0.0154 - mse: 3.9516e-04 - val_loss: 5.1984e-04 - val_mae: 0.0161 - val_mse: 5.1984e-04 - 147ms/epoch - 11ms/step\n", "Epoch 202/250\n", - "13/13 - 0s - loss: 4.5166e-04 - mae: 0.0161 - mse: 4.5166e-04 - val_loss: 5.4696e-04 - val_mae: 0.0182 - val_mse: 5.4696e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.5166e-04 - mae: 0.0161 - mse: 4.5166e-04 - val_loss: 5.4696e-04 - val_mae: 0.0182 - val_mse: 5.4696e-04 - 128ms/epoch - 10ms/step\n", "Epoch 203/250\n", - "13/13 - 0s - loss: 4.5904e-04 - mae: 0.0166 - mse: 4.5904e-04 - val_loss: 4.1240e-04 - val_mae: 0.0150 - val_mse: 4.1240e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.5904e-04 - mae: 0.0166 - mse: 4.5904e-04 - val_loss: 4.1240e-04 - val_mae: 0.0150 - val_mse: 4.1240e-04 - 137ms/epoch - 11ms/step\n", "Epoch 204/250\n", - "13/13 - 0s - loss: 3.9851e-04 - mae: 0.0150 - mse: 3.9851e-04 - val_loss: 4.5210e-04 - val_mae: 0.0154 - val_mse: 4.5210e-04 - 115ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.9851e-04 - mae: 0.0150 - mse: 3.9851e-04 - val_loss: 4.5210e-04 - val_mae: 0.0154 - val_mse: 4.5210e-04 - 141ms/epoch - 11ms/step\n", "Epoch 205/250\n", - "13/13 - 0s - loss: 3.8760e-04 - mae: 0.0151 - mse: 3.8760e-04 - val_loss: 4.0982e-04 - val_mae: 0.0149 - val_mse: 4.0982e-04 - 116ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.8760e-04 - mae: 0.0151 - mse: 3.8760e-04 - val_loss: 4.0982e-04 - val_mae: 0.0149 - val_mse: 4.0982e-04 - 121ms/epoch - 9ms/step\n", "Epoch 206/250\n", - "13/13 - 0s - loss: 4.1937e-04 - mae: 0.0156 - mse: 4.1937e-04 - val_loss: 3.8857e-04 - val_mae: 0.0145 - val_mse: 3.8857e-04 - 222ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 4.1937e-04 - mae: 0.0156 - mse: 4.1937e-04 - val_loss: 3.8857e-04 - val_mae: 0.0145 - val_mse: 3.8857e-04 - 294ms/epoch - 23ms/step\n", "Epoch 207/250\n", - "13/13 - 0s - loss: 3.7173e-04 - mae: 0.0146 - mse: 3.7173e-04 - val_loss: 3.9353e-04 - val_mae: 0.0147 - val_mse: 3.9353e-04 - 108ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.7173e-04 - mae: 0.0146 - mse: 3.7173e-04 - val_loss: 3.9353e-04 - val_mae: 0.0147 - val_mse: 3.9353e-04 - 146ms/epoch - 11ms/step\n", "Epoch 208/250\n", - "13/13 - 0s - loss: 3.9673e-04 - mae: 0.0153 - mse: 3.9673e-04 - val_loss: 3.9003e-04 - val_mae: 0.0145 - val_mse: 3.9003e-04 - 114ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.9673e-04 - mae: 0.0153 - mse: 3.9673e-04 - val_loss: 3.9003e-04 - val_mae: 0.0145 - val_mse: 3.9003e-04 - 115ms/epoch - 9ms/step\n", "Epoch 209/250\n", - "13/13 - 0s - loss: 4.2359e-04 - mae: 0.0155 - mse: 4.2359e-04 - val_loss: 3.9027e-04 - val_mae: 0.0146 - val_mse: 3.9027e-04 - 110ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.2359e-04 - mae: 0.0155 - mse: 4.2359e-04 - val_loss: 3.9027e-04 - val_mae: 0.0146 - val_mse: 3.9027e-04 - 150ms/epoch - 12ms/step\n", "Epoch 210/250\n", - "13/13 - 0s - loss: 3.9302e-04 - mae: 0.0154 - mse: 3.9302e-04 - val_loss: 4.1320e-04 - val_mae: 0.0152 - val_mse: 4.1320e-04 - 113ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.9302e-04 - mae: 0.0154 - mse: 3.9302e-04 - val_loss: 4.1320e-04 - val_mae: 0.0152 - val_mse: 4.1320e-04 - 167ms/epoch - 13ms/step\n", "Epoch 211/250\n", - "13/13 - 0s - loss: 3.6641e-04 - mae: 0.0147 - mse: 3.6641e-04 - val_loss: 3.9564e-04 - val_mae: 0.0141 - val_mse: 3.9564e-04 - 116ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.6641e-04 - mae: 0.0147 - mse: 3.6641e-04 - val_loss: 3.9564e-04 - val_mae: 0.0141 - val_mse: 3.9564e-04 - 167ms/epoch - 13ms/step\n", "Epoch 212/250\n", - "13/13 - 0s - loss: 3.6259e-04 - mae: 0.0143 - mse: 3.6259e-04 - val_loss: 3.8787e-04 - val_mae: 0.0146 - val_mse: 3.8787e-04 - 228ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 3.6259e-04 - mae: 0.0143 - mse: 3.6259e-04 - val_loss: 3.8787e-04 - val_mae: 0.0146 - val_mse: 3.8787e-04 - 309ms/epoch - 24ms/step\n", "Epoch 213/250\n", - "13/13 - 0s - loss: 4.0665e-04 - mae: 0.0156 - mse: 4.0665e-04 - val_loss: 5.0910e-04 - val_mae: 0.0160 - val_mse: 5.0910e-04 - 120ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.0665e-04 - mae: 0.0156 - mse: 4.0665e-04 - val_loss: 5.0910e-04 - val_mae: 0.0160 - val_mse: 5.0910e-04 - 158ms/epoch - 12ms/step\n", "Epoch 214/250\n", - "13/13 - 0s - loss: 4.5758e-04 - mae: 0.0169 - mse: 4.5758e-04 - val_loss: 4.1241e-04 - val_mae: 0.0141 - val_mse: 4.1241e-04 - 104ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.5758e-04 - mae: 0.0169 - mse: 4.5758e-04 - val_loss: 4.1241e-04 - val_mae: 0.0141 - val_mse: 4.1241e-04 - 125ms/epoch - 10ms/step\n", "Epoch 215/250\n", - "13/13 - 0s - loss: 4.0666e-04 - mae: 0.0155 - mse: 4.0666e-04 - val_loss: 4.6639e-04 - val_mae: 0.0151 - val_mse: 4.6639e-04 - 104ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 4.0666e-04 - mae: 0.0155 - mse: 4.0666e-04 - val_loss: 4.6639e-04 - val_mae: 0.0151 - val_mse: 4.6639e-04 - 177ms/epoch - 14ms/step\n", "Epoch 216/250\n", - "13/13 - 0s - loss: 3.6615e-04 - mae: 0.0145 - mse: 3.6615e-04 - val_loss: 3.8294e-04 - val_mae: 0.0138 - val_mse: 3.8294e-04 - 201ms/epoch - 15ms/step\n", + "13/13 - 0s - loss: 3.6615e-04 - mae: 0.0145 - mse: 3.6615e-04 - val_loss: 3.8294e-04 - val_mae: 0.0138 - val_mse: 3.8294e-04 - 253ms/epoch - 19ms/step\n", "Epoch 217/250\n", - "13/13 - 0s - loss: 3.8135e-04 - mae: 0.0149 - mse: 3.8135e-04 - val_loss: 5.1259e-04 - val_mae: 0.0162 - val_mse: 5.1259e-04 - 119ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.8135e-04 - mae: 0.0149 - mse: 3.8135e-04 - val_loss: 5.1259e-04 - val_mae: 0.0162 - val_mse: 5.1259e-04 - 136ms/epoch - 10ms/step\n", "Epoch 218/250\n", - "13/13 - 0s - loss: 3.5877e-04 - mae: 0.0144 - mse: 3.5877e-04 - val_loss: 3.7918e-04 - val_mae: 0.0142 - val_mse: 3.7918e-04 - 222ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 3.5877e-04 - mae: 0.0144 - mse: 3.5877e-04 - val_loss: 3.7918e-04 - val_mae: 0.0142 - val_mse: 3.7918e-04 - 254ms/epoch - 20ms/step\n", "Epoch 219/250\n", - "13/13 - 0s - loss: 4.1097e-04 - mae: 0.0155 - mse: 4.1097e-04 - val_loss: 3.7973e-04 - val_mae: 0.0144 - val_mse: 3.7973e-04 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 4.1097e-04 - mae: 0.0155 - mse: 4.1097e-04 - val_loss: 3.7973e-04 - val_mae: 0.0144 - val_mse: 3.7973e-04 - 167ms/epoch - 13ms/step\n", "Epoch 220/250\n", - "13/13 - 0s - loss: 3.7840e-04 - mae: 0.0149 - mse: 3.7840e-04 - val_loss: 4.7988e-04 - val_mae: 0.0153 - val_mse: 4.7988e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.7840e-04 - mae: 0.0149 - mse: 3.7840e-04 - val_loss: 4.7988e-04 - val_mae: 0.0153 - val_mse: 4.7988e-04 - 157ms/epoch - 12ms/step\n", "Epoch 221/250\n", - "13/13 - 0s - loss: 3.5545e-04 - mae: 0.0143 - mse: 3.5545e-04 - val_loss: 3.7230e-04 - val_mae: 0.0136 - val_mse: 3.7230e-04 - 226ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 3.5545e-04 - mae: 0.0143 - mse: 3.5545e-04 - val_loss: 3.7230e-04 - val_mae: 0.0136 - val_mse: 3.7230e-04 - 218ms/epoch - 17ms/step\n", "Epoch 222/250\n", - "13/13 - 0s - loss: 3.4610e-04 - mae: 0.0141 - mse: 3.4610e-04 - val_loss: 4.1371e-04 - val_mae: 0.0142 - val_mse: 4.1371e-04 - 110ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.4610e-04 - mae: 0.0141 - mse: 3.4610e-04 - val_loss: 4.1371e-04 - val_mae: 0.0142 - val_mse: 4.1371e-04 - 141ms/epoch - 11ms/step\n", "Epoch 223/250\n", - "13/13 - 0s - loss: 3.7775e-04 - mae: 0.0149 - mse: 3.7775e-04 - val_loss: 3.8045e-04 - val_mae: 0.0142 - val_mse: 3.8045e-04 - 115ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.7775e-04 - mae: 0.0149 - mse: 3.7775e-04 - val_loss: 3.8045e-04 - val_mae: 0.0142 - val_mse: 3.8045e-04 - 176ms/epoch - 14ms/step\n", "Epoch 224/250\n", - "13/13 - 0s - loss: 3.5911e-04 - mae: 0.0145 - mse: 3.5911e-04 - val_loss: 3.5609e-04 - val_mae: 0.0134 - val_mse: 3.5609e-04 - 233ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 3.5911e-04 - mae: 0.0145 - mse: 3.5911e-04 - val_loss: 3.5609e-04 - val_mae: 0.0134 - val_mse: 3.5609e-04 - 421ms/epoch - 32ms/step\n", "Epoch 225/250\n", - "13/13 - 0s - loss: 3.5933e-04 - mae: 0.0144 - mse: 3.5933e-04 - val_loss: 3.5900e-04 - val_mae: 0.0134 - val_mse: 3.5900e-04 - 105ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.5933e-04 - mae: 0.0144 - mse: 3.5933e-04 - val_loss: 3.5900e-04 - val_mae: 0.0134 - val_mse: 3.5900e-04 - 159ms/epoch - 12ms/step\n", "Epoch 226/250\n", - "13/13 - 0s - loss: 3.6466e-04 - mae: 0.0144 - mse: 3.6466e-04 - val_loss: 3.5378e-04 - val_mae: 0.0135 - val_mse: 3.5378e-04 - 232ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 3.6466e-04 - mae: 0.0144 - mse: 3.6466e-04 - val_loss: 3.5378e-04 - val_mae: 0.0135 - val_mse: 3.5378e-04 - 307ms/epoch - 24ms/step\n", "Epoch 227/250\n", - "13/13 - 0s - loss: 3.5876e-04 - mae: 0.0144 - mse: 3.5876e-04 - val_loss: 3.6523e-04 - val_mae: 0.0133 - val_mse: 3.6523e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.5876e-04 - mae: 0.0144 - mse: 3.5876e-04 - val_loss: 3.6523e-04 - val_mae: 0.0133 - val_mse: 3.6523e-04 - 193ms/epoch - 15ms/step\n", "Epoch 228/250\n", - "13/13 - 0s - loss: 3.4559e-04 - mae: 0.0142 - mse: 3.4559e-04 - val_loss: 3.5907e-04 - val_mae: 0.0139 - val_mse: 3.5907e-04 - 162ms/epoch - 12ms/step\n", + "13/13 - 0s - loss: 3.4559e-04 - mae: 0.0142 - mse: 3.4559e-04 - val_loss: 3.5907e-04 - val_mae: 0.0139 - val_mse: 3.5907e-04 - 133ms/epoch - 10ms/step\n", "Epoch 229/250\n", - "13/13 - 0s - loss: 3.4162e-04 - mae: 0.0142 - mse: 3.4162e-04 - val_loss: 4.2194e-04 - val_mae: 0.0141 - val_mse: 4.2194e-04 - 101ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.4162e-04 - mae: 0.0142 - mse: 3.4162e-04 - val_loss: 4.2194e-04 - val_mae: 0.0141 - val_mse: 4.2194e-04 - 107ms/epoch - 8ms/step\n", "Epoch 230/250\n", - "13/13 - 0s - loss: 3.6967e-04 - mae: 0.0146 - mse: 3.6967e-04 - val_loss: 3.7720e-04 - val_mae: 0.0138 - val_mse: 3.7720e-04 - 105ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.6967e-04 - mae: 0.0146 - mse: 3.6967e-04 - val_loss: 3.7720e-04 - val_mae: 0.0138 - val_mse: 3.7720e-04 - 165ms/epoch - 13ms/step\n", "Epoch 231/250\n", - "13/13 - 0s - loss: 3.3735e-04 - mae: 0.0136 - mse: 3.3735e-04 - val_loss: 3.3976e-04 - val_mae: 0.0129 - val_mse: 3.3976e-04 - 227ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 3.3735e-04 - mae: 0.0136 - mse: 3.3735e-04 - val_loss: 3.3976e-04 - val_mae: 0.0129 - val_mse: 3.3976e-04 - 276ms/epoch - 21ms/step\n", "Epoch 232/250\n", - "13/13 - 0s - loss: 3.3844e-04 - mae: 0.0141 - mse: 3.3844e-04 - val_loss: 3.8716e-04 - val_mae: 0.0135 - val_mse: 3.8716e-04 - 109ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.3844e-04 - mae: 0.0141 - mse: 3.3844e-04 - val_loss: 3.8716e-04 - val_mae: 0.0135 - val_mse: 3.8716e-04 - 134ms/epoch - 10ms/step\n", "Epoch 233/250\n", - "13/13 - 0s - loss: 3.6741e-04 - mae: 0.0145 - mse: 3.6741e-04 - val_loss: 3.8668e-04 - val_mae: 0.0136 - val_mse: 3.8668e-04 - 117ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.6741e-04 - mae: 0.0145 - mse: 3.6741e-04 - val_loss: 3.8668e-04 - val_mae: 0.0136 - val_mse: 3.8668e-04 - 146ms/epoch - 11ms/step\n", "Epoch 234/250\n", - "13/13 - 0s - loss: 3.4129e-04 - mae: 0.0139 - mse: 3.4129e-04 - val_loss: 3.4933e-04 - val_mae: 0.0133 - val_mse: 3.4933e-04 - 118ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.4129e-04 - mae: 0.0139 - mse: 3.4129e-04 - val_loss: 3.4933e-04 - val_mae: 0.0133 - val_mse: 3.4933e-04 - 165ms/epoch - 13ms/step\n", "Epoch 235/250\n", - "13/13 - 0s - loss: 3.2338e-04 - mae: 0.0137 - mse: 3.2338e-04 - val_loss: 3.4566e-04 - val_mae: 0.0133 - val_mse: 3.4566e-04 - 108ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.2338e-04 - mae: 0.0137 - mse: 3.2338e-04 - val_loss: 3.4566e-04 - val_mae: 0.0133 - val_mse: 3.4566e-04 - 153ms/epoch - 12ms/step\n", "Epoch 236/250\n", - "13/13 - 0s - loss: 3.1652e-04 - mae: 0.0134 - mse: 3.1652e-04 - val_loss: 3.9728e-04 - val_mae: 0.0136 - val_mse: 3.9728e-04 - 111ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 3.1652e-04 - mae: 0.0134 - mse: 3.1652e-04 - val_loss: 3.9728e-04 - val_mae: 0.0136 - val_mse: 3.9728e-04 - 187ms/epoch - 14ms/step\n", "Epoch 237/250\n", - "13/13 - 0s - loss: 3.2047e-04 - mae: 0.0136 - mse: 3.2047e-04 - val_loss: 3.3756e-04 - val_mae: 0.0130 - val_mse: 3.3756e-04 - 225ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 3.2047e-04 - mae: 0.0136 - mse: 3.2047e-04 - val_loss: 3.3756e-04 - val_mae: 0.0130 - val_mse: 3.3756e-04 - 209ms/epoch - 16ms/step\n", "Epoch 238/250\n", - "13/13 - 0s - loss: 3.3167e-04 - mae: 0.0138 - mse: 3.3167e-04 - val_loss: 3.3191e-04 - val_mae: 0.0126 - val_mse: 3.3191e-04 - 228ms/epoch - 18ms/step\n", + "13/13 - 0s - loss: 3.3167e-04 - mae: 0.0138 - mse: 3.3167e-04 - val_loss: 3.3191e-04 - val_mae: 0.0126 - val_mse: 3.3191e-04 - 175ms/epoch - 13ms/step\n", "Epoch 239/250\n", - "13/13 - 0s - loss: 3.2033e-04 - mae: 0.0134 - mse: 3.2033e-04 - val_loss: 3.2969e-04 - val_mae: 0.0128 - val_mse: 3.2969e-04 - 215ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 3.2033e-04 - mae: 0.0134 - mse: 3.2033e-04 - val_loss: 3.2969e-04 - val_mae: 0.0128 - val_mse: 3.2969e-04 - 234ms/epoch - 18ms/step\n", "Epoch 240/250\n", - "13/13 - 0s - loss: 3.5224e-04 - mae: 0.0141 - mse: 3.5224e-04 - val_loss: 3.9061e-04 - val_mae: 0.0148 - val_mse: 3.9061e-04 - 110ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.5224e-04 - mae: 0.0141 - mse: 3.5224e-04 - val_loss: 3.9061e-04 - val_mae: 0.0148 - val_mse: 3.9061e-04 - 130ms/epoch - 10ms/step\n", "Epoch 241/250\n", - "13/13 - 0s - loss: 3.9777e-04 - mae: 0.0153 - mse: 3.9777e-04 - val_loss: 3.7065e-04 - val_mae: 0.0137 - val_mse: 3.7065e-04 - 107ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.9777e-04 - mae: 0.0153 - mse: 3.9777e-04 - val_loss: 3.7065e-04 - val_mae: 0.0137 - val_mse: 3.7065e-04 - 122ms/epoch - 9ms/step\n", "Epoch 242/250\n", - "13/13 - 0s - loss: 3.2502e-04 - mae: 0.0138 - mse: 3.2502e-04 - val_loss: 3.3236e-04 - val_mae: 0.0124 - val_mse: 3.3236e-04 - 109ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.2502e-04 - mae: 0.0138 - mse: 3.2502e-04 - val_loss: 3.3236e-04 - val_mae: 0.0124 - val_mse: 3.3236e-04 - 128ms/epoch - 10ms/step\n", "Epoch 243/250\n", - "13/13 - 0s - loss: 3.0734e-04 - mae: 0.0133 - mse: 3.0734e-04 - val_loss: 3.2635e-04 - val_mae: 0.0126 - val_mse: 3.2635e-04 - 227ms/epoch - 17ms/step\n", + "13/13 - 0s - loss: 3.0734e-04 - mae: 0.0133 - mse: 3.0734e-04 - val_loss: 3.2635e-04 - val_mae: 0.0126 - val_mse: 3.2635e-04 - 321ms/epoch - 25ms/step\n", "Epoch 244/250\n", - "13/13 - 0s - loss: 3.2928e-04 - mae: 0.0137 - mse: 3.2928e-04 - val_loss: 3.2871e-04 - val_mae: 0.0125 - val_mse: 3.2871e-04 - 104ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.2928e-04 - mae: 0.0137 - mse: 3.2928e-04 - val_loss: 3.2871e-04 - val_mae: 0.0125 - val_mse: 3.2871e-04 - 167ms/epoch - 13ms/step\n", "Epoch 245/250\n", - "13/13 - 0s - loss: 2.9711e-04 - mae: 0.0131 - mse: 2.9711e-04 - val_loss: 3.2920e-04 - val_mae: 0.0121 - val_mse: 3.2920e-04 - 112ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 2.9711e-04 - mae: 0.0131 - mse: 2.9711e-04 - val_loss: 3.2920e-04 - val_mae: 0.0121 - val_mse: 3.2920e-04 - 129ms/epoch - 10ms/step\n", "Epoch 246/250\n", - "13/13 - 0s - loss: 3.2661e-04 - mae: 0.0134 - mse: 3.2661e-04 - val_loss: 3.6936e-04 - val_mae: 0.0134 - val_mse: 3.6936e-04 - 107ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.2661e-04 - mae: 0.0134 - mse: 3.2661e-04 - val_loss: 3.6936e-04 - val_mae: 0.0134 - val_mse: 3.6936e-04 - 191ms/epoch - 15ms/step\n", "Epoch 247/250\n", - "13/13 - 0s - loss: 2.9618e-04 - mae: 0.0128 - mse: 2.9618e-04 - val_loss: 3.3549e-04 - val_mae: 0.0123 - val_mse: 3.3549e-04 - 106ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 2.9618e-04 - mae: 0.0128 - mse: 2.9618e-04 - val_loss: 3.3549e-04 - val_mae: 0.0123 - val_mse: 3.3549e-04 - 119ms/epoch - 9ms/step\n", "Epoch 248/250\n", - "13/13 - 0s - loss: 2.9979e-04 - mae: 0.0130 - mse: 2.9979e-04 - val_loss: 3.8099e-04 - val_mae: 0.0135 - val_mse: 3.8099e-04 - 118ms/epoch - 9ms/step\n", + "13/13 - 0s - loss: 2.9979e-04 - mae: 0.0130 - mse: 2.9979e-04 - val_loss: 3.8099e-04 - val_mae: 0.0135 - val_mse: 3.8099e-04 - 122ms/epoch - 9ms/step\n", "Epoch 249/250\n", - "13/13 - 0s - loss: 3.0599e-04 - mae: 0.0131 - mse: 3.0599e-04 - val_loss: 3.2729e-04 - val_mae: 0.0122 - val_mse: 3.2729e-04 - 106ms/epoch - 8ms/step\n", + "13/13 - 0s - loss: 3.0599e-04 - mae: 0.0131 - mse: 3.0599e-04 - val_loss: 3.2729e-04 - val_mae: 0.0122 - val_mse: 3.2729e-04 - 150ms/epoch - 12ms/step\n", "Epoch 250/250\n", - "13/13 - 0s - loss: 3.1256e-04 - mae: 0.0134 - mse: 3.1256e-04 - val_loss: 3.3855e-04 - val_mae: 0.0134 - val_mse: 3.3855e-04 - 109ms/epoch - 8ms/step\n" + "13/13 - 0s - loss: 3.1256e-04 - mae: 0.0134 - mse: 3.1256e-04 - val_loss: 3.3855e-04 - val_mae: 0.0134 - val_mse: 3.3855e-04 - 127ms/epoch - 10ms/step\n" ] }, { @@ -738,7 +748,7 @@ "# Train surrogate (calls optimizer on neural network and solves for weights)\n", "model.compile(loss=loss, optimizer=optimizer, metrics=metrics)\n", "mcp_save = tf.keras.callbacks.ModelCheckpoint(\n", - " \".mdl_co2.h5\", save_best_only=True, monitor=\"val_loss\", mode=\"min\"\n", + " \".mdl_co2.keras\", save_best_only=True, monitor=\"val_loss\", mode=\"min\"\n", ")\n", "history = model.fit(x=x, y=y, validation_split=0.2, verbose=2, epochs=250, callbacks=[mcp_save])\n", "\n", @@ -759,7 +769,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -783,7 +793,7 @@ " input_scaler=input_scaler,\n", " output_scaler=output_scaler,\n", ")\n", - "keras_surrogate.save_to_folder(\"sco2_keras_surr\")" + "keras_surrogate.save_to_folder(keras_folder_name=\"sco2_keras_surr\", keras_model_name=\"sco2_keras_model\")" ] }, { @@ -797,14 +807,14 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "13/13 [==============================] - 0s 3ms/step\n" + "13/13 [==============================] - 1s 3ms/step\n" ] }, { @@ -878,7 +888,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "13/13 [==============================] - 0s 3ms/step\n" + "13/13 [==============================] - 0s 4ms/step\n" ] }, { @@ -939,7 +949,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -993,7 +1003,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "4/4 [==============================] - 0s 3ms/step\n" + "4/4 [==============================] - 0s 4ms/step\n" ] }, { @@ -1020,7 +1030,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "4/4 [==============================] - 0s 4ms/step\n" + "4/4 [==============================] - 0s 5ms/step\n" ] }, { @@ -1101,4 +1111,4 @@ }, "nbformat": 4, "nbformat_minor": 3 -} +} \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/properties.py b/idaes_examples/notebooks/docs/surrogates/sco2/omlt/properties.py index bde029c3..94d6d95f 100644 --- a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/properties.py +++ b/idaes_examples/notebooks/docs/surrogates/sco2/omlt/properties.py @@ -269,7 +269,7 @@ def _make_state_vars(self): inputs=[self.pressure,self.temperature] outputs=[self.enth_mol,self.entr_mol] - self.keras_surrogate = KerasSurrogate.load_from_folder("sco2_keras_surr") + self.keras_surrogate = KerasSurrogate.load_from_folder(keras_folder_name="sco2_keras_surr", keras_model_name="sco2_keras_model") self.surrogate_enth = SurrogateBlock() self.surrogate_enth.build_model( self.keras_surrogate, diff --git a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/sco2_keras_surr/fingerprint.pb b/idaes_examples/notebooks/docs/surrogates/sco2/omlt/sco2_keras_surr/fingerprint.pb deleted file mode 100644 index c94ddb92..00000000 --- a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/sco2_keras_surr/fingerprint.pb +++ /dev/null @@ -1 +0,0 @@ -™Ù²¡™—ñû®¾¶âŽéدŠ-êô¢ËªºÕû[ ¿˜âãÒû‘Óç(÷úÝ칉¨¢W2 \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/sco2_keras_surr/keras_metadata.pb b/idaes_examples/notebooks/docs/surrogates/sco2/omlt/sco2_keras_surr/keras_metadata.pb deleted file mode 100644 index 0429ce74..00000000 --- a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/sco2_keras_surr/keras_metadata.pb +++ /dev/null @@ -1,10 +0,0 @@ - -¥5root"_tf_keras_sequential*€5{"name": "sequential", "trainable": true, "expects_training_arg": true, "dtype": "float32", "batch_input_shape": null, "must_restore_from_config": false, "class_name": "Sequential", "config": {"name": "sequential", "layers": [{"class_name": "InputLayer", "config": {"batch_input_shape": {"class_name": "__tuple__", "items": [null, 2]}, "dtype": "float32", "sparse": false, "ragged": false, "name": "dense_input"}}, {"class_name": "Dense", "config": {"name": "dense", "trainable": true, "batch_input_shape": {"class_name": "__tuple__", "items": [null, 2]}, "dtype": "float32", "units": 20, "activation": "tanh", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}}, {"class_name": "Dense", "config": {"name": "dense_1", "trainable": true, "dtype": "float32", "units": 20, "activation": "tanh", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}}, {"class_name": "Dense", "config": {"name": "dense_2", "trainable": true, "dtype": "float32", "units": 20, "activation": "tanh", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}}, {"class_name": "Dense", "config": {"name": "dense_3", "trainable": true, "dtype": "float32", "units": 20, "activation": "tanh", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}}, {"class_name": "Dense", "config": {"name": "dense_4", "trainable": true, "dtype": "float32", "units": 2, "activation": "linear", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}}]}, "shared_object_id": 16, "input_spec": [{"class_name": "InputSpec", "config": {"dtype": null, "shape": {"class_name": "__tuple__", "items": [null, 2]}, "ndim": 2, "max_ndim": null, "min_ndim": null, "axes": {}}}], "build_input_shape": {"class_name": "TensorShape", "items": [null, 2]}, "is_graph_network": true, "full_save_spec": {"class_name": "__tuple__", "items": [[{"class_name": "TypeSpec", "type_spec": "tf.TensorSpec", "serialized": [{"class_name": "TensorShape", "items": [null, 2]}, "float32", "dense_input"]}], {}]}, "save_spec": {"class_name": "TypeSpec", "type_spec": "tf.TensorSpec", "serialized": [{"class_name": "TensorShape", "items": [null, 2]}, "float32", "dense_input"]}, "keras_version": "2.9.0", "backend": "tensorflow", "model_config": {"class_name": "Sequential", "config": {"name": "sequential", "layers": [{"class_name": "InputLayer", "config": {"batch_input_shape": {"class_name": "__tuple__", "items": [null, 2]}, "dtype": "float32", "sparse": false, "ragged": false, "name": "dense_input"}, "shared_object_id": 0}, {"class_name": "Dense", "config": {"name": "dense", "trainable": true, "batch_input_shape": {"class_name": "__tuple__", "items": [null, 2]}, "dtype": "float32", "units": 20, "activation": "tanh", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}, "shared_object_id": 1}, "bias_initializer": {"class_name": "Zeros", "config": {}, "shared_object_id": 2}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "shared_object_id": 3}, {"class_name": "Dense", "config": {"name": "dense_1", "trainable": true, "dtype": "float32", "units": 20, "activation": "tanh", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}, "shared_object_id": 4}, "bias_initializer": {"class_name": "Zeros", "config": {}, "shared_object_id": 5}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "shared_object_id": 6}, {"class_name": "Dense", "config": {"name": "dense_2", "trainable": true, "dtype": "float32", "units": 20, "activation": "tanh", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}, "shared_object_id": 7}, "bias_initializer": {"class_name": "Zeros", "config": {}, "shared_object_id": 8}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "shared_object_id": 9}, {"class_name": "Dense", "config": {"name": "dense_3", "trainable": true, "dtype": "float32", "units": 20, "activation": "tanh", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}, "shared_object_id": 10}, "bias_initializer": {"class_name": "Zeros", "config": {}, "shared_object_id": 11}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "shared_object_id": 12}, {"class_name": "Dense", "config": {"name": "dense_4", "trainable": true, "dtype": "float32", "units": 2, "activation": "linear", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}, "shared_object_id": 13}, "bias_initializer": {"class_name": "Zeros", "config": {}, "shared_object_id": 14}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "shared_object_id": 15}]}}, "training_config": {"loss": "mse", "metrics": [[{"class_name": "MeanMetricWrapper", "config": {"name": "mae", "dtype": "float32", "fn": "mean_absolute_error"}, "shared_object_id": 18}, {"class_name": "MeanMetricWrapper", "config": {"name": "mse", "dtype": "float32", "fn": "mean_squared_error"}, "shared_object_id": 19}]], "weighted_metrics": null, "loss_weights": null, "optimizer_config": {"class_name": "Adam", "config": {"name": "Adam", "learning_rate": 0.0010000000474974513, "decay": 0.0, "beta_1": 0.8999999761581421, "beta_2": 0.9990000128746033, "epsilon": 1e-07, "amsgrad": false}}}}2 -°root.layer_with_weights-0"_tf_keras_layer*ù{"name": "dense", "trainable": true, "expects_training_arg": false, "dtype": "float32", "batch_input_shape": {"class_name": "__tuple__", "items": [null, 2]}, "stateful": false, "must_restore_from_config": false, "class_name": "Dense", "config": {"name": "dense", "trainable": true, "batch_input_shape": {"class_name": "__tuple__", "items": [null, 2]}, "dtype": "float32", "units": 20, "activation": "tanh", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}, "shared_object_id": 1}, "bias_initializer": {"class_name": "Zeros", "config": {}, "shared_object_id": 2}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "shared_object_id": 3, "input_spec": {"class_name": "InputSpec", "config": {"dtype": null, "shape": null, "ndim": null, "max_ndim": null, "min_ndim": 2, "axes": {"-1": 2}}, "shared_object_id": 20}, "build_input_shape": {"class_name": "TensorShape", "items": [null, 2]}}2 -Åroot.layer_with_weights-1"_tf_keras_layer*Ž{"name": "dense_1", "trainable": true, "expects_training_arg": false, "dtype": "float32", "batch_input_shape": null, "stateful": false, "must_restore_from_config": false, "class_name": "Dense", "config": {"name": "dense_1", "trainable": true, "dtype": "float32", "units": 20, "activation": "tanh", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}, "shared_object_id": 4}, "bias_initializer": {"class_name": "Zeros", "config": {}, "shared_object_id": 5}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "shared_object_id": 6, "input_spec": {"class_name": "InputSpec", "config": {"dtype": null, "shape": null, "ndim": null, "max_ndim": null, "min_ndim": 2, "axes": {"-1": 20}}, "shared_object_id": 21}, "build_input_shape": {"class_name": "TensorShape", "items": [null, 20]}}2 -Åroot.layer_with_weights-2"_tf_keras_layer*Ž{"name": "dense_2", "trainable": true, "expects_training_arg": false, "dtype": "float32", "batch_input_shape": null, "stateful": false, "must_restore_from_config": false, "class_name": "Dense", "config": {"name": "dense_2", "trainable": true, "dtype": "float32", "units": 20, "activation": "tanh", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}, "shared_object_id": 7}, "bias_initializer": {"class_name": "Zeros", "config": {}, "shared_object_id": 8}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "shared_object_id": 9, "input_spec": {"class_name": "InputSpec", "config": {"dtype": null, "shape": null, "ndim": null, "max_ndim": null, "min_ndim": 2, "axes": {"-1": 20}}, "shared_object_id": 22}, "build_input_shape": {"class_name": "TensorShape", "items": [null, 20]}}2 -Èroot.layer_with_weights-3"_tf_keras_layer*‘{"name": "dense_3", "trainable": true, "expects_training_arg": false, "dtype": "float32", "batch_input_shape": null, "stateful": false, "must_restore_from_config": false, "class_name": "Dense", "config": {"name": "dense_3", "trainable": true, "dtype": "float32", "units": 20, "activation": "tanh", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}, "shared_object_id": 10}, "bias_initializer": {"class_name": "Zeros", "config": {}, "shared_object_id": 11}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "shared_object_id": 12, "input_spec": {"class_name": "InputSpec", "config": {"dtype": null, "shape": null, "ndim": null, "max_ndim": null, "min_ndim": 2, "axes": {"-1": 20}}, "shared_object_id": 23}, "build_input_shape": {"class_name": "TensorShape", "items": [null, 20]}}2 -Éroot.layer_with_weights-4"_tf_keras_layer*’{"name": "dense_4", "trainable": true, "expects_training_arg": false, "dtype": "float32", "batch_input_shape": null, "stateful": false, "must_restore_from_config": false, "class_name": "Dense", "config": {"name": "dense_4", "trainable": true, "dtype": "float32", "units": 2, "activation": "linear", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}, "shared_object_id": 13}, "bias_initializer": {"class_name": "Zeros", "config": {}, "shared_object_id": 14}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "shared_object_id": 15, "input_spec": {"class_name": "InputSpec", "config": {"dtype": null, "shape": null, "ndim": null, "max_ndim": null, "min_ndim": 2, "axes": {"-1": 20}}, "shared_object_id": 24}, "build_input_shape": {"class_name": "TensorShape", "items": [null, 20]}}2 -¹mroot.keras_api.metrics.0"_tf_keras_metric*‚{"class_name": "Mean", "name": "loss", "dtype": "float32", "config": {"name": "loss", "dtype": "float32"}, "shared_object_id": 25}2 -ánroot.keras_api.metrics.1"_tf_keras_metric*ª{"class_name": "MeanMetricWrapper", "name": "mae", "dtype": "float32", "config": {"name": "mae", "dtype": "float32", "fn": "mean_absolute_error"}, "shared_object_id": 18}2 -àoroot.keras_api.metrics.2"_tf_keras_metric*©{"class_name": "MeanMetricWrapper", "name": "mse", "dtype": "float32", "config": {"name": "mse", "dtype": "float32", "fn": "mean_squared_error"}, "shared_object_id": 19}2 \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/sco2_keras_surr/saved_model.pb b/idaes_examples/notebooks/docs/surrogates/sco2/omlt/sco2_keras_surr/saved_model.pb deleted file mode 100644 index 1fdda895..00000000 Binary files a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/sco2_keras_surr/saved_model.pb and /dev/null differ diff --git a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/sco2_keras_surr/sco2_keras_model.keras b/idaes_examples/notebooks/docs/surrogates/sco2/omlt/sco2_keras_surr/sco2_keras_model.keras new file mode 100644 index 00000000..c090ddac Binary files /dev/null and b/idaes_examples/notebooks/docs/surrogates/sco2/omlt/sco2_keras_surr/sco2_keras_model.keras differ diff --git a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/sco2_keras_surr/variables/dummy_file b/idaes_examples/notebooks/docs/surrogates/sco2/omlt/sco2_keras_surr/variables/dummy_file deleted file mode 100644 index 6ca8147f..00000000 --- a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/sco2_keras_surr/variables/dummy_file +++ /dev/null @@ -1 +0,0 @@ -This is a dummy file diff --git a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/sco2_keras_surr/variables/variables.data-00000-of-00001 b/idaes_examples/notebooks/docs/surrogates/sco2/omlt/sco2_keras_surr/variables/variables.data-00000-of-00001 deleted file mode 100644 index 15d19da8..00000000 Binary files a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/sco2_keras_surr/variables/variables.data-00000-of-00001 and /dev/null differ diff --git a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/sco2_keras_surr/variables/variables.index b/idaes_examples/notebooks/docs/surrogates/sco2/omlt/sco2_keras_surr/variables/variables.index deleted file mode 100644 index 0cd2376b..00000000 Binary files a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/sco2_keras_surr/variables/variables.index and /dev/null differ diff --git a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/surrogate_embedding.ipynb b/idaes_examples/notebooks/docs/surrogates/sco2/omlt/surrogate_embedding.ipynb index a83738c4..ebb98023 100644 --- a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/surrogate_embedding.ipynb +++ b/idaes_examples/notebooks/docs/surrogates/sco2/omlt/surrogate_embedding.ipynb @@ -240,7 +240,7 @@ " \n", " inputs=[self.pressure,self.temperature]\n", " outputs=[self.enth_mol,self.entr_mol]\n", - " self.keras_surrogate = KerasSurrogate.load_from_folder(\"sco2_keras_surr\")\n", + " self.keras_surrogate = KerasSurrogate.load_from_folder(keras_folder_name=\"sco2_keras_surr\", keras_model_name=\"sco2_keras_model\")\n", " self.surrogate_enth = SurrogateBlock()\n", " self.surrogate_enth.build_model(\n", " self.keras_surrogate,\n", diff --git a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/surrogate_embedding_doc.ipynb b/idaes_examples/notebooks/docs/surrogates/sco2/omlt/surrogate_embedding_doc.ipynb index d880c31c..1dc8df95 100644 --- a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/surrogate_embedding_doc.ipynb +++ b/idaes_examples/notebooks/docs/surrogates/sco2/omlt/surrogate_embedding_doc.ipynb @@ -31,6 +31,7 @@ "Author: Javal Vyas\n", "\n", "Updated: 2024-01-24\n", + "\n", "## 1. Integration of Surrogate into Custom Property Package\n", "\n", "Here we shall see how to integrate the trained surrogate in the custom property package. One can read more about making a properties package from read the docs. To integrate the surrogate we first define the physical parameter block which will return the properties based on the state variables. State variables would be called from the State Block as Pyomo variables. We will define the surrogate input and output as pyomo variables as well. Once we have defined the variables in the state block then we define our surrogate block.\n", @@ -239,7 +240,7 @@ " \n", " inputs=[self.pressure,self.temperature]\n", " outputs=[self.enth_mol,self.entr_mol]\n", - " self.keras_surrogate = KerasSurrogate.load_from_folder(\"sco2_keras_surr\")\n", + " self.keras_surrogate = KerasSurrogate.load_from_folder(keras_folder_name=\"sco2_keras_surr\", keras_model_name=\"sco2_keras_model\")\n", " self.surrogate_enth = SurrogateBlock()\n", " self.surrogate_enth.build_model(\n", " self.keras_surrogate,\n", @@ -443,16 +444,30 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now we have our property package ready for being used in the flowsheet for optimization. We shall see that in the next part of this tutorial, [flowsheet_optimization](./flowsheet_optimization_doc.ipynb). To learn in detail about making a custom property package, one should go through [Property Package Example](..\\..\\..\\properties\\custom\\custom_physical_property_packages_doc.ipynb). " + "Now we have our property package ready for being used in the flowsheet for optimization. We shall see that in the next part of this tutorial, [flowsheet_optimization](./flowsheet_optimization_doc.md). To learn in detail about making a custom property package, one should go through [Property Package Example](..\\..\\..\\properties\\custom\\custom_physical_property_packages_doc.md). " ] } ], "metadata": { + "kernelspec": { + "display_name": "idaes-pse", + "language": "python", + "name": "python3" + }, "language_info": { - "name": "python" + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.16" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 3 -} +} \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/surrogate_embedding_test.ipynb b/idaes_examples/notebooks/docs/surrogates/sco2/omlt/surrogate_embedding_test.ipynb index d3328bcd..8ef72841 100644 --- a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/surrogate_embedding_test.ipynb +++ b/idaes_examples/notebooks/docs/surrogates/sco2/omlt/surrogate_embedding_test.ipynb @@ -31,6 +31,7 @@ "Author: Javal Vyas\n", "\n", "Updated: 2024-01-24\n", + "\n", "## 1. Integration of Surrogate into Custom Property Package\n", "\n", "Here we shall see how to integrate the trained surrogate in the custom property package. One can read more about making a properties package from read the docs. To integrate the surrogate we first define the physical parameter block which will return the properties based on the state variables. State variables would be called from the State Block as Pyomo variables. We will define the surrogate input and output as pyomo variables as well. Once we have defined the variables in the state block then we define our surrogate block.\n", @@ -90,8 +91,6 @@ "from idaes.core.surrogate.surrogate_block import SurrogateBlock\n", "from idaes.core.surrogate.keras_surrogate import KerasSurrogate\n", "\n", - "import os \n", - "\n", "from pyomo.util.model_size import build_model_size_report\n", "\n", "# Some more information about this module\n", @@ -241,7 +240,7 @@ " \n", " inputs=[self.pressure,self.temperature]\n", " outputs=[self.enth_mol,self.entr_mol]\n", - " self.keras_surrogate = KerasSurrogate.load_from_folder('sco2_keras_surr')\n", + " self.keras_surrogate = KerasSurrogate.load_from_folder(keras_folder_name=\"sco2_keras_surr\", keras_model_name=\"sco2_keras_model\")\n", " self.surrogate_enth = SurrogateBlock()\n", " self.surrogate_enth.build_model(\n", " self.keras_surrogate,\n", @@ -445,7 +444,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now we have our property package ready for being used in the flowsheet for optimization. We shall see that in the next part of this tutorial, [flowsheet_optimization](./flowsheet_optimization_test.ipynb). To learn in detail about making a custom property package, one should go through [Property Package Example](../../../properties/custom/custom_physical_property_packages_test.ipynb). " + "Now we have our property package ready for being used in the flowsheet for optimization. We shall see that in the next part of this tutorial, [flowsheet_optimization](./flowsheet_optimization_test.ipynb). To learn in detail about making a custom property package, one should go through [Property Package Example](..\\..\\..\\properties\\custom\\custom_physical_property_packages_test.ipynb). " ] } ], @@ -471,4 +470,4 @@ }, "nbformat": 4, "nbformat_minor": 3 -} +} \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/surrogate_embedding_usr.ipynb b/idaes_examples/notebooks/docs/surrogates/sco2/omlt/surrogate_embedding_usr.ipynb index bdae332b..eacdd9ac 100644 --- a/idaes_examples/notebooks/docs/surrogates/sco2/omlt/surrogate_embedding_usr.ipynb +++ b/idaes_examples/notebooks/docs/surrogates/sco2/omlt/surrogate_embedding_usr.ipynb @@ -31,6 +31,7 @@ "Author: Javal Vyas\n", "\n", "Updated: 2024-01-24\n", + "\n", "## 1. Integration of Surrogate into Custom Property Package\n", "\n", "Here we shall see how to integrate the trained surrogate in the custom property package. One can read more about making a properties package from read the docs. To integrate the surrogate we first define the physical parameter block which will return the properties based on the state variables. State variables would be called from the State Block as Pyomo variables. We will define the surrogate input and output as pyomo variables as well. Once we have defined the variables in the state block then we define our surrogate block.\n", @@ -239,7 +240,7 @@ " \n", " inputs=[self.pressure,self.temperature]\n", " outputs=[self.enth_mol,self.entr_mol]\n", - " self.keras_surrogate = KerasSurrogate.load_from_folder(\"sco2_keras_surr\")\n", + " self.keras_surrogate = KerasSurrogate.load_from_folder(keras_folder_name=\"sco2_keras_surr\", keras_model_name=\"sco2_keras_model\")\n", " self.surrogate_enth = SurrogateBlock()\n", " self.surrogate_enth.build_model(\n", " self.keras_surrogate,\n", @@ -443,16 +444,30 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now we have our property package ready for being used in the flowsheet for optimization. We shall see that in the next part of this tutorial, [flowsheet_optimization](./flowsheet_optimization_usr.ipynb). To learn in detail about making a custom property package, one should go through [Property Package Example](../../../properties/custom/custom_physical_property_packages_usr.ipynb). " + "Now we have our property package ready for being used in the flowsheet for optimization. We shall see that in the next part of this tutorial, [flowsheet_optimization](./flowsheet_optimization_usr.ipynb). To learn in detail about making a custom property package, one should go through [Property Package Example](..\\..\\..\\properties\\custom\\custom_physical_property_packages_usr.ipynb). " ] } ], "metadata": { + "kernelspec": { + "display_name": "idaes-pse", + "language": "python", + "name": "python3" + }, "language_info": { - "name": "python" + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.16" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 3 -} +} \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/tut/core/hda_flowsheet.ipynb b/idaes_examples/notebooks/docs/tut/core/hda_flowsheet.ipynb index 3a4ad898..acadec3a 100644 --- a/idaes_examples/notebooks/docs/tut/core/hda_flowsheet.ipynb +++ b/idaes_examples/notebooks/docs/tut/core/hda_flowsheet.ipynb @@ -208,7 +208,9 @@ "from idaes.core.util.model_statistics import degrees_of_freedom\n", "\n", "# Import idaes logger to set output levels\n", - "import idaes.logger as idaeslog" + "import idaes.logger as idaeslog\n", + "from idaes.core.solvers import get_solver\n", + "from idaes.core.util.exceptions import InitializationError" ] }, { @@ -988,7 +990,13 @@ "outputs": [], "source": [ "def function(unit):\n", - " unit.initialize(outlvl=idaeslog.INFO)" + " try:\n", + " initializer = unit.default_initializer()\n", + " initializer.initialize(unit, output_level=idaeslog.INFO)\n", + " except InitializationError:\n", + " solver=get_solver()\n", + " solver.solve(unit)\n", + " " ] }, { diff --git a/idaes_examples/notebooks/docs/tut/core/hda_flowsheet_doc.ipynb b/idaes_examples/notebooks/docs/tut/core/hda_flowsheet_doc.ipynb index 44fe440f..9eebd4a0 100644 --- a/idaes_examples/notebooks/docs/tut/core/hda_flowsheet_doc.ipynb +++ b/idaes_examples/notebooks/docs/tut/core/hda_flowsheet_doc.ipynb @@ -1,2212 +1,1364 @@ { - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "tags": [ - "header", - "hide-cell" - ] - }, - "outputs": [], - "source": [ - "###############################################################################\n", - "# The Institute for the Design of Advanced Energy Systems Integrated Platform\n", - "# Framework (IDAES IP) was produced under the DOE Institute for the\n", - "# Design of Advanced Energy Systems (IDAES).\n", - "#\n", - "# Copyright (c) 2018-2023 by the software owners: The Regents of the\n", - "# University of California, through Lawrence Berkeley National Laboratory,\n", - "# National Technology & Engineering Solutions of Sandia, LLC, Carnegie Mellon\n", - "# University, West Virginia University Research Corporation, et al.\n", - "# All rights reserved. Please see the files COPYRIGHT.md and LICENSE.md\n", - "# for full copyright and license information.\n", - "###############################################################################" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "# HDA Flowsheet Simulation and Optimization\n", - "\n", - "Author: Jaffer Ghouse \n", - "Maintainer: Brandon Paul \n", - "Updated: 2023-06-01 \n", - "\n", - "## Learning outcomes\n", - "\n", - "\n", - "- Construct a steady-state flowsheet using the IDAES unit model library\n", - "- Connecting unit models in a flowsheet using Arcs\n", - "- Using the SequentialDecomposition tool to initialize a flowsheet with recycle\n", - "- Fomulate and solve an optimization problem\n", - " - Defining an objective function\n", - " - Setting variable bounds\n", - " - Adding additional constraints \n", - "\n", - "\n", - "## Problem Statement\n", - "\n", - "Hydrodealkylation is a chemical reaction that often involves reacting\n", - "an aromatic hydrocarbon in the presence of hydrogen gas to form a\n", - "simpler aromatic hydrocarbon devoid of functional groups. In this\n", - "example, toluene will be reacted with hydrogen gas at high temperatures\n", - " to form benzene via the following reaction:\n", - "\n", - "**C6H5CH3 + H2 → C6H6 + CH4**\n", - "\n", - "\n", - "This reaction is often accompanied by an equilibrium side reaction\n", - "which forms diphenyl, which we will neglect for this example.\n", - "\n", - "This example is based on the 1967 AIChE Student Contest problem as\n", - "present by Douglas, J.M., Chemical Design of Chemical Processes, 1988,\n", - "McGraw-Hill.\n", - "\n", - "The flowsheet that we will be using for this module is shown below with the stream conditions. We will be processing toluene and hydrogen to produce at least 370 TPY of benzene. As shown in the flowsheet, there are two flash tanks, F101 to separate out the non-condensibles and F102 to further separate the benzene-toluene mixture to improve the benzene purity. Note that typically a distillation column is required to obtain high purity benzene but that is beyond the scope of this workshop. The non-condensibles separated out in F101 will be partially recycled back to M101 and the rest will be either purged or combusted for power generation.We will assume ideal gas for this flowsheet. The properties required for this module are available in the same directory:\n", - "\n", - "- hda_ideal_VLE.py\n", - "- hda_reaction.py\n", - "\n", - "The state variables chosen for the property package are **flows of component by phase, temperature and pressure**. The components considered are: **toluene, hydrogen, benzene and methane**. Therefore, every stream has 8 flow variables, 1 temperature and 1 pressure variable. \n", - "\n", - "![](HDA_flowsheet.png)\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Importing required pyomo and idaes components\n", - "\n", - "\n", - "To construct a flowsheet, we will need several components from the pyomo and idaes package. Let us first import the following components from Pyomo:\n", - "- Constraint (to write constraints)\n", - "- Var (to declare variables)\n", - "- ConcreteModel (to create the concrete model object)\n", - "- Expression (to evaluate values as a function of variables defined in the model)\n", - "- Objective (to define an objective function for optimization)\n", - "- SolverFactory (to solve the problem)\n", - "- TransformationFactory (to apply certain transformations)\n", - "- Arc (to connect two unit models)\n", - "- SequentialDecomposition (to initialize the flowsheet in a sequential mode)\n", - "\n", - "For further details on these components, please refer to the pyomo documentation: https://pyomo.readthedocs.io/en/stable/\n" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "from pyomo.environ import (\n", - " Constraint,\n", - " Var,\n", - " ConcreteModel,\n", - " Expression,\n", - " Objective,\n", - " SolverFactory,\n", - " TransformationFactory,\n", - " value,\n", - ")\n", - "from pyomo.network import Arc, SequentialDecomposition" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "From idaes, we will be needing the FlowsheetBlock and the following unit models:\n", - "- Mixer\n", - "- Heater\n", - "- StoichiometricReactor\n", - "- **Flash**\n", - "- Separator (splitter) \n", - "- PressureChanger" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "from idaes.core import FlowsheetBlock" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "from idaes.models.unit_models import (\n", - " PressureChanger,\n", - " Mixer,\n", - " Separator as Splitter,\n", - " Heater,\n", - " StoichiometricReactor,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "Inline Exercise:\n", - "Now, import the remaining unit models highlighted in blue above and run the cell using `Shift+Enter` after typing in the code. \n", - "
\n" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "tags": [ - "solution" - ] - }, - "outputs": [], - "source": [ - "# Todo: import flash model from idaes.models.unit_models\n", - "from idaes.models.unit_models import Flash" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We will also be needing some utility tools to put together the flowsheet and calculate the degrees of freedom. " - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "from idaes.models.unit_models.pressure_changer import ThermodynamicAssumption\n", - "from idaes.core.util.model_statistics import degrees_of_freedom\n", - "\n", - "# Import idaes logger to set output levels\n", - "import idaes.logger as idaeslog" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Importing required thermo and reaction package\n", - "\n", - "The final set of imports are to import the thermo and reaction package for the HDA process. We have created a custom thermo package that assumes Ideal Gas with support for VLE. \n", - "\n", - "The reaction package here is very simple as we will be using only a StochiometricReactor and the reaction package consists of the stochiometric coefficients for the reaction and the parameter for the heat of reaction. \n", - "\n", - "Let us import the following modules and they are in the same directory as this jupyter notebook:\n", - "
    \n", - "
  • hda_ideal_VLE as thermo_props
  • \n", - "
  • hda_reaction as reaction_props
  • \n", - "
\n", - "" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "from idaes_examples.mod.hda import hda_ideal_VLE as thermo_props\n", - "from idaes_examples.mod.hda import hda_reaction as reaction_props" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Constructing the Flowsheet\n", - "\n", - "We have now imported all the components, unit models, and property modules we need to construct a flowsheet. Let us create a ConcreteModel and add the flowsheet block as we did in module 1. " - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "m = ConcreteModel()\n", - "m.fs = FlowsheetBlock(dynamic=False)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We now need to add the property packages to the flowsheet. Unlike Module 1, where we only had a thermo property package, for this flowsheet we will also need to add a reaction property package. " - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.thermo_params = thermo_props.HDAParameterBlock()\n", - "m.fs.reaction_params = reaction_props.HDAReactionParameterBlock(\n", - " property_package=m.fs.thermo_params\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Adding Unit Models\n", - "\n", - "Let us start adding the unit models we have imported to the flowsheet. Here, we are adding the Mixer (assigned a name M101) and a Heater (assigned a name H101). Note that, all unit models need to be given a property package argument. In addition to that, there are several arguments depending on the unit model, please refer to the documentation for more details (https://idaes-pse.readthedocs.io/en/stable/reference_guides/model_libraries/generic/unit_models/index.html). For example, the Mixer unit model here is given a `list` consisting of names to the three inlets. " - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.M101 = Mixer(\n", - " property_package=m.fs.thermo_params,\n", - " inlet_list=[\"toluene_feed\", \"hydrogen_feed\", \"vapor_recycle\"],\n", - ")\n", - "\n", - "m.fs.H101 = Heater(\n", - " property_package=m.fs.thermo_params,\n", - " has_pressure_change=False,\n", - " has_phase_equilibrium=True,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "Inline Exercise:\n", - "Let us now add the StoichiometricReactor(assign the name R101) and pass the following arguments:\n", - "
    \n", - "
  • \"property_package\": m.fs.thermo_params
  • \n", - "
  • \"reaction_package\": m.fs.reaction_params
  • \n", - "
  • \"has_heat_of_reaction\": True
  • \n", - "
  • \"has_heat_transfer\": True
  • \n", - "
  • \"has_pressure_change\": False
  • \n", - "
\n", - "
" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": { - "tags": [ - "solution" - ] - }, - "outputs": [], - "source": [ - "# Todo: Add reactor with the specifications above\n", - "m.fs.R101 = StoichiometricReactor(\n", - " property_package=m.fs.thermo_params,\n", - " reaction_package=m.fs.reaction_params,\n", - " has_heat_of_reaction=True,\n", - " has_heat_transfer=True,\n", - " has_pressure_change=False,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us now add the Flash(assign the name F101) and pass the following arguments:\n", - "
    \n", - "
  • \"property_package\": m.fs.thermo_params
  • \n", - "
  • \"has_heat_transfer\": True
  • \n", - "
  • \"has_pressure_change\": False
  • \n", - "
" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.F101 = Flash(\n", - " property_package=m.fs.thermo_params,\n", - " has_heat_transfer=True,\n", - " has_pressure_change=True,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us now add the Splitter(S101), PressureChanger(C101) and the second Flash(F102). " - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.S101 = Splitter(\n", - " property_package=m.fs.thermo_params,\n", - " ideal_separation=False,\n", - " outlet_list=[\"purge\", \"recycle\"],\n", - ")\n", - "\n", - "\n", - "m.fs.C101 = PressureChanger(\n", - " property_package=m.fs.thermo_params,\n", - " compressor=True,\n", - " thermodynamic_assumption=ThermodynamicAssumption.isothermal,\n", - ")\n", - "\n", - "m.fs.F102 = Flash(\n", - " property_package=m.fs.thermo_params,\n", - " has_heat_transfer=True,\n", - " has_pressure_change=True,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Connecting Unit Models using Arcs\n", - "\n", - "We have now added all the unit models we need to the flowsheet. However, we have not yet specified how the units are to be connected. To do this, we will be using the `Arc` which is a pyomo component that takes in two arguments: `source` and `destination`. Let us connect the outlet of the mixer(M101) to the inlet of the heater(H101). " - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.s03 = Arc(source=m.fs.M101.outlet, destination=m.fs.H101.inlet)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "![](HDA_flowsheet.png) \n", - "\n", - "
\n", - "Inline Exercise:\n", - "Now, connect the H101 outlet to the R101 inlet using the cell above as a guide. \n", - "
\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": { - "tags": [ - "solution" - ] - }, - "outputs": [], - "source": [ - "# Todo: Connect the H101 outlet to R101 inlet\n", - "m.fs.s04 = Arc(source=m.fs.H101.outlet, destination=m.fs.R101.inlet)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We will now be connecting the rest of the flowsheet as shown below. Notice how the outlet names are different for the flash tanks F101 and F102 as they have a vapor and a liquid outlet. " - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.s05 = Arc(source=m.fs.R101.outlet, destination=m.fs.F101.inlet)\n", - "m.fs.s06 = Arc(source=m.fs.F101.vap_outlet, destination=m.fs.S101.inlet)\n", - "m.fs.s08 = Arc(source=m.fs.S101.recycle, destination=m.fs.C101.inlet)\n", - "m.fs.s09 = Arc(source=m.fs.C101.outlet, destination=m.fs.M101.vapor_recycle)\n", - "m.fs.s10 = Arc(source=m.fs.F101.liq_outlet, destination=m.fs.F102.inlet)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We have now connected the unit model block using the arcs. However, each of these arcs link to ports on the two unit models that are connected. In this case, the ports consist of the state variables that need to be linked between the unit models. Pyomo provides a convenient method to write these equality constraints for us between two ports and this is done as follows:" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [], - "source": [ - "TransformationFactory(\"network.expand_arcs\").apply_to(m)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Adding expressions to compute purity and operating costs\n", - "\n", - "In this section, we will add a few Expressions that allows us to evaluate the performance. Expressions provide a convenient way of calculating certain values that are a function of the variables defined in the model. For more details on Expressions, please refer to: https://pyomo.readthedocs.io/en/stable/pyomo_modeling_components/Expressions.html\n", - "\n", - "For this flowsheet, we are interested in computing the purity of the product Benzene stream (i.e. the mole fraction) and the operating cost which is a sum of the cooling and heating cost. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us first add an Expression to compute the mole fraction of benzene in the `vap_outlet` of F102 which is our product stream. Please note that the var flow_mol_phase_comp has the index - [time, phase, component]. As this is a steady-state flowsheet, the time index by default is 0. The valid phases are [\"Liq\", \"Vap\"]. Similarly the valid component list is [\"benzene\", \"toluene\", \"hydrogen\", \"methane\"]." - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.purity = Expression(\n", - " expr=m.fs.F102.vap_outlet.flow_mol_phase_comp[0, \"Vap\", \"benzene\"]\n", - " / (\n", - " m.fs.F102.vap_outlet.flow_mol_phase_comp[0, \"Vap\", \"benzene\"]\n", - " + m.fs.F102.vap_outlet.flow_mol_phase_comp[0, \"Vap\", \"toluene\"]\n", - " )\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now, let us add an expression to compute the cooling cost assuming a cost of 0.212E-4 $/kW. Note that cooling utility is required for the reactor (R101) and the first flash (F101). " - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.cooling_cost = Expression(\n", - " expr=0.212e-7 * (-m.fs.F101.heat_duty[0]) + 0.212e-7 * (-m.fs.R101.heat_duty[0])\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "Now, let us add an expression to compute the heating cost assuming the utility cost as follows:\n", - "
    \n", - "
  • 2.2E-4 dollars/kW for H101
  • \n", - "
  • 1.9E-4 dollars/kW for F102
  • \n", - "
\n", - "Note that the heat duty is in units of watt (J/s). " - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.heating_cost = Expression(\n", - " expr=2.2e-7 * m.fs.H101.heat_duty[0] + 1.9e-7 * m.fs.F102.heat_duty[0]\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us now add an expression to compute the total operating cost per year which is basically the sum of the cooling and heating cost we defined above. " - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.operating_cost = Expression(\n", - " expr=(3600 * 24 * 365 * (m.fs.heating_cost + m.fs.cooling_cost))\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Fixing feed conditions\n", - "\n", - "Let us first check how many degrees of freedom exist for this flowsheet using the `degrees_of_freedom` tool we imported earlier. " - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "29\n" - ] - } - ], - "source": [ - "print(degrees_of_freedom(m))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We will now be fixing the toluene feed stream to the conditions shown in the flowsheet above. Please note that though this is a pure toluene feed, the remaining components are still assigned a very small non-zero value to help with convergence and initializing. " - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.M101.toluene_feed.flow_mol_phase_comp[0, \"Vap\", \"benzene\"].fix(1e-5)\n", - "m.fs.M101.toluene_feed.flow_mol_phase_comp[0, \"Vap\", \"toluene\"].fix(1e-5)\n", - "m.fs.M101.toluene_feed.flow_mol_phase_comp[0, \"Vap\", \"hydrogen\"].fix(1e-5)\n", - "m.fs.M101.toluene_feed.flow_mol_phase_comp[0, \"Vap\", \"methane\"].fix(1e-5)\n", - "m.fs.M101.toluene_feed.flow_mol_phase_comp[0, \"Liq\", \"benzene\"].fix(1e-5)\n", - "m.fs.M101.toluene_feed.flow_mol_phase_comp[0, \"Liq\", \"toluene\"].fix(0.30)\n", - "m.fs.M101.toluene_feed.flow_mol_phase_comp[0, \"Liq\", \"hydrogen\"].fix(1e-5)\n", - "m.fs.M101.toluene_feed.flow_mol_phase_comp[0, \"Liq\", \"methane\"].fix(1e-5)\n", - "m.fs.M101.toluene_feed.temperature.fix(303.2)\n", - "m.fs.M101.toluene_feed.pressure.fix(350000)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "Similarly, let us fix the hydrogen feed to the following conditions in the next cell:\n", - "
    \n", - "
  • FH2 = 0.30 mol/s
  • \n", - "
  • FCH4 = 0.02 mol/s
  • \n", - "
  • Remaining components = 1e-5 mol/s
  • \n", - "
  • T = 303.2 K
  • \n", - "
  • P = 350000 Pa
  • \n", - "
\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.M101.hydrogen_feed.flow_mol_phase_comp[0, \"Vap\", \"benzene\"].fix(1e-5)\n", - "m.fs.M101.hydrogen_feed.flow_mol_phase_comp[0, \"Vap\", \"toluene\"].fix(1e-5)\n", - "m.fs.M101.hydrogen_feed.flow_mol_phase_comp[0, \"Vap\", \"hydrogen\"].fix(0.30)\n", - "m.fs.M101.hydrogen_feed.flow_mol_phase_comp[0, \"Vap\", \"methane\"].fix(0.02)\n", - "m.fs.M101.hydrogen_feed.flow_mol_phase_comp[0, \"Liq\", \"benzene\"].fix(1e-5)\n", - "m.fs.M101.hydrogen_feed.flow_mol_phase_comp[0, \"Liq\", \"toluene\"].fix(1e-5)\n", - "m.fs.M101.hydrogen_feed.flow_mol_phase_comp[0, \"Liq\", \"hydrogen\"].fix(1e-5)\n", - "m.fs.M101.hydrogen_feed.flow_mol_phase_comp[0, \"Liq\", \"methane\"].fix(1e-5)\n", - "m.fs.M101.hydrogen_feed.temperature.fix(303.2)\n", - "m.fs.M101.hydrogen_feed.pressure.fix(350000)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Fixing unit model specifications\n", - "\n", - "Now that we have fixed our inlet feed conditions, we will now be fixing the operating conditions for the unit models in the flowsheet. Let us set set the H101 outlet temperature to 600 K. " - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.H101.outlet.temperature.fix(600)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For the StoichiometricReactor, we have to define the conversion in terms of toluene. This requires us to create a new variable for specifying the conversion and adding a Constraint that defines the conversion with respect to toluene. The second degree of freedom for the reactor is to define the heat duty. In this case, let us assume the reactor to be adiabatic i.e. Q = 0. " - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.R101.conversion = Var(initialize=0.75, bounds=(0, 1))\n", - "\n", - "m.fs.R101.conv_constraint = Constraint(\n", - " expr=m.fs.R101.conversion * m.fs.R101.inlet.flow_mol_phase_comp[0, \"Vap\", \"toluene\"]\n", - " == (\n", - " m.fs.R101.inlet.flow_mol_phase_comp[0, \"Vap\", \"toluene\"]\n", - " - m.fs.R101.outlet.flow_mol_phase_comp[0, \"Vap\", \"toluene\"]\n", - " )\n", - ")\n", - "\n", - "m.fs.R101.conversion.fix(0.75)\n", - "m.fs.R101.heat_duty.fix(0)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The Flash conditions for F101 can be set as follows. " - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.F101.vap_outlet.temperature.fix(325.0)\n", - "m.fs.F101.deltaP.fix(0)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "Inline Exercise:\n", - "Set the conditions for Flash F102 to the following conditions:\n", - "
    \n", - "
  • T = 375 K
  • \n", - "
  • deltaP = -200000
  • \n", - "
\n", - "\n", - "Use Shift+Enter to run the cell once you have typed in your code. \n", - "
" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "metadata": { - "tags": [ - "solution" - ] - }, - "outputs": [], - "source": [ - "m.fs.F102.vap_outlet.temperature.fix(375)\n", - "m.fs.F102.deltaP.fix(-200000)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us fix the purge split fraction to 20% and the outlet pressure of the compressor is set to 350000 Pa. " - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.S101.split_fraction[0, \"purge\"].fix(0.2)\n", - "m.fs.C101.outlet.pressure.fix(350000)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "Inline Exercise:\n", - "We have now defined all the feed conditions and the inputs required for the unit models. The system should now have 0 degrees of freedom i.e. should be a square problem. Please check that the degrees of freedom is 0. \n", - "\n", - "Use Shift+Enter to run the cell once you have typed in your code. \n", - "
" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": { - "tags": [ - "solution" - ] - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0\n" - ] - } - ], - "source": [ - "print(degrees_of_freedom(m))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Initialization\n", - "\n", - "\n", - "This section will demonstrate how to use the built-in sequential decomposition tool to initialize our flowsheet.\n", - "\n", - "![](HDA_flowsheet.png) \n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us first create an object for the SequentialDecomposition and specify our options for this. " - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [], - "source": [ - "seq = SequentialDecomposition()\n", - "seq.options.select_tear_method = \"heuristic\"\n", - "seq.options.tear_method = \"Wegstein\"\n", - "seq.options.iterLim = 3\n", - "\n", - "# Using the SD tool\n", - "G = seq.create_graph(m)\n", - "heuristic_tear_set = seq.tear_set_arcs(G, method=\"heuristic\")\n", - "order = seq.calculation_order(G)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Which is the tear stream? Display tear set and order" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "fs.s03\n" - ] - } - ], - "source": [ - "for o in heuristic_tear_set:\n", - " print(o.name)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "What sequence did the SD tool determine to solve this flowsheet with the least number of tears? " - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "fs.H101\n", - "fs.R101\n", - "fs.F101\n", - "fs.S101\n", - "fs.C101\n", - "fs.M101\n" - ] - } - ], - "source": [ - "for o in order:\n", - " print(o[0].name)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - " \n", - "\n", - "![](HDA_tear_stream.png) \n", - "\n", - "\n", - "The SequentialDecomposition tool has determined that the tear stream is the mixer outlet. We will need to provide a reasonable guess for this." - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "metadata": {}, - "outputs": [], - "source": [ - "tear_guesses = {\n", - " \"flow_mol_phase_comp\": {\n", - " (0, \"Vap\", \"benzene\"): 1e-5,\n", - " (0, \"Vap\", \"toluene\"): 1e-5,\n", - " (0, \"Vap\", \"hydrogen\"): 0.30,\n", - " (0, \"Vap\", \"methane\"): 0.02,\n", - " (0, \"Liq\", \"benzene\"): 1e-5,\n", - " (0, \"Liq\", \"toluene\"): 0.30,\n", - " (0, \"Liq\", \"hydrogen\"): 1e-5,\n", - " (0, \"Liq\", \"methane\"): 1e-5,\n", - " },\n", - " \"temperature\": {0: 303},\n", - " \"pressure\": {0: 350000},\n", - "}\n", - "\n", - "# Pass the tear_guess to the SD tool\n", - "seq.set_guesses_for(m.fs.H101.inlet, tear_guesses)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Next, we need to tell the tool how to initialize a particular unit. We will be writing a python function which takes in a \"unit\" and calls the initialize method on that unit. " - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "metadata": {}, - "outputs": [], - "source": [ - "def function(unit):\n", - " unit.initialize(outlvl=idaeslog.INFO)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We are now ready to initialize our flowsheet in a sequential mode. Note that we specifically set the iteration limit to be 5 as we are trying to use this tool only to get a good set of initial values such that IPOPT can then take over and solve this flowsheet for us. " - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:38 [INFO] idaes.init.fs.H101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:38 [INFO] idaes.init.fs.H101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:39 [INFO] idaes.init.fs.R101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:39 [INFO] idaes.init.fs.R101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:39 [INFO] idaes.init.fs.F101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:39 [INFO] idaes.init.fs.F101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:39 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:39 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:39 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:39 [INFO] idaes.init.fs.F102.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:39 [INFO] idaes.init.fs.F102: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:39 [INFO] idaes.init.fs.C101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:39 [INFO] idaes.init.fs.C101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:39 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:39 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:39 [INFO] idaes.init.fs.H101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:39 [INFO] idaes.init.fs.H101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:40 [INFO] idaes.init.fs.R101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:40 [INFO] idaes.init.fs.R101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:40 [INFO] idaes.init.fs.F101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:40 [INFO] idaes.init.fs.F101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:40 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:40 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:40 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:40 [INFO] idaes.init.fs.C101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:40 [INFO] idaes.init.fs.C101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:40 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:40 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:40 [INFO] idaes.init.fs.H101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:40 [INFO] idaes.init.fs.H101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:40 [INFO] idaes.init.fs.R101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:40 [INFO] idaes.init.fs.R101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:41 [INFO] idaes.init.fs.F101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:41 [INFO] idaes.init.fs.F101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:41 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:41 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:41 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:41 [INFO] idaes.init.fs.C101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:41 [INFO] idaes.init.fs.C101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:41 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:41 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:41 [INFO] idaes.init.fs.H101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:41 [INFO] idaes.init.fs.H101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:41 [INFO] idaes.init.fs.R101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:41 [INFO] idaes.init.fs.R101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:41 [INFO] idaes.init.fs.F101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:41 [INFO] idaes.init.fs.F101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:41 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:41 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:41 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:41 [INFO] idaes.init.fs.C101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:42 [INFO] idaes.init.fs.C101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:42 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:42 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:42 [INFO] idaes.init.fs.H101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:42 [INFO] idaes.init.fs.H101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:42 [INFO] idaes.init.fs.R101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:42 [INFO] idaes.init.fs.R101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:42 [INFO] idaes.init.fs.F101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:42 [INFO] idaes.init.fs.F101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:42 [INFO] idaes.init.fs.S101.purge_state: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:42 [INFO] idaes.init.fs.S101.recycle_state: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:42 [INFO] idaes.init.fs.S101: Initialization Step 2 Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:42 [INFO] idaes.init.fs.C101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:42 [INFO] idaes.init.fs.C101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:42 [INFO] idaes.init.fs.M101.mixed_state: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:42 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING: Wegstein failed to converge in 3 iterations\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:43 [INFO] idaes.init.fs.F102.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:43 [INFO] idaes.init.fs.F102: Initialization Complete: optimal - Optimal Solution Found\n" - ] - } - ], - "source": [ - "seq.run(m, function)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "Inline Exercise:\n", - "We have now initialized the flowsheet. Let us run the flowsheet in a simulation mode to look at the results. To do this, complete the last line of code where we pass the model to the solver. You will need to type the following:\n", - " \n", - "results = solver.solve(m, tee=True)\n", - "\n", - "Use Shift+Enter to run the cell once you have typed in your code. \n", - "
\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "metadata": { - "tags": [ - "solution" - ] - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", - "tol=1e-06\n", - "max_iter=200\n", - "\n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 1031\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 934\n", - "\n", - "Total number of variables............................: 340\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 146\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 340\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 6.60e+04 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 8.69e+03 1.42e+03 -1.0 2.00e+04 - 9.71e-01 4.67e-01H 1\n", - " 2 0.0000000e+00 3.05e+03 1.56e+03 -1.0 1.60e+04 - 9.79e-01 4.90e-01h 1\n", - " 3 0.0000000e+00 1.58e+03 1.55e+05 -1.0 1.41e+04 - 9.90e-01 4.99e-01h 1\n", - " 4 0.0000000e+00 5.49e+02 8.87e+08 -1.0 8.43e+03 - 1.00e+00 9.57e-01h 1\n", - " 5 0.0000000e+00 4.25e+03 2.87e+10 -1.0 8.02e+02 - 1.00e+00 9.90e-01h 1\n", - " 6 0.0000000e+00 2.25e+03 1.51e+10 -1.0 8.39e+00 - 1.00e+00 1.00e+00h 1\n", - " 7 0.0000000e+00 2.27e+01 1.40e+08 -1.0 2.45e-03 - 1.00e+00 1.00e+00f 1\n", - " 8 0.0000000e+00 2.45e-03 1.23e+04 -1.0 2.38e-05 - 1.00e+00 1.00e+00h 1\n", - " 9 0.0000000e+00 7.45e-09 3.06e-01 -2.5 9.06e-08 - 1.00e+00 1.00e+00h 1\n", - "Cannot recompute multipliers for feasibility problem. Error in eq_mult_calculator\n", - "\n", - "Number of Iterations....: 9\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 2.8284422320850682e+05 2.8284422320850682e+05\n", - "Constraint violation....: 2.9103830456733704e-11 7.4505805969238281e-09\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 2.9103830456733704e-11 2.8284422320850682e+05\n", - "\n", - "\n", - "Number of objective function evaluations = 11\n", - "Number of objective gradient evaluations = 10\n", - "Number of equality constraint evaluations = 11\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 10\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 9\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.004\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n" - ] - } - ], - "source": [ - "# Create the solver object\n", - "from idaes.core.solvers import get_solver\n", - "\n", - "solver = get_solver()\n", - "\n", - "# Solve the model\n", - "results = solver.solve(m, tee=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Analyze the results of the square problem\n", - "\n", - "\n", - "What is the total operating cost? " - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "operating cost = $ 419122.3387677983\n" - ] - } - ], - "source": [ - "print(\"operating cost = $\", value(m.fs.operating_cost))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For this operating cost, what is the amount of benzene we are able to produce and what purity we are able to achieve? " - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "====================================================================================\n", - "Unit : fs.F102 Time: 0.0\n", - "------------------------------------------------------------------------------------\n", - " Unit Performance\n", - "\n", - " Variables: \n", - "\n", - " Key : Value : Units : Fixed : Bounds\n", - " Heat Duty : 7352.5 : watt : False : (None, None)\n", - " Pressure Change : -2.0000e+05 : pascal : True : (None, None)\n", - "\n", - "------------------------------------------------------------------------------------\n", - " Stream Table\n", - " Units Inlet Vapor Outlet Liquid Outlet\n", - " flow_mol_phase_comp ('Liq', 'benzene') mole / second 0.20460 1.0000e-08 0.062620 \n", - " flow_mol_phase_comp ('Liq', 'toluene') mole / second 0.062520 1.0000e-08 0.032257 \n", - " flow_mol_phase_comp ('Liq', 'methane') mole / second 2.6712e-07 1.0000e-08 9.4877e-08 \n", - " flow_mol_phase_comp ('Liq', 'hydrogen') mole / second 2.6712e-07 1.0000e-08 9.4877e-08 \n", - " flow_mol_phase_comp ('Vap', 'benzene') mole / second 1.0000e-08 0.14198 1.0000e-08 \n", - " flow_mol_phase_comp ('Vap', 'toluene') mole / second 1.0000e-08 0.030264 1.0000e-08 \n", - " flow_mol_phase_comp ('Vap', 'methane') mole / second 1.0000e-08 1.8224e-07 1.0000e-08 \n", - " flow_mol_phase_comp ('Vap', 'hydrogen') mole / second 1.0000e-08 1.8224e-07 1.0000e-08 \n", - " temperature kelvin 325.00 375.00 375.00 \n", - " pressure pascal 3.5000e+05 1.5000e+05 1.5000e+05 \n", - "====================================================================================\n", - "\n", - "benzene purity = 0.8242962943918918\n" - ] + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "header", + "hide-cell" + ] + }, + "outputs": [], + "source": [ + "###############################################################################\n", + "# The Institute for the Design of Advanced Energy Systems Integrated Platform\n", + "# Framework (IDAES IP) was produced under the DOE Institute for the\n", + "# Design of Advanced Energy Systems (IDAES).\n", + "#\n", + "# Copyright (c) 2018-2023 by the software owners: The Regents of the\n", + "# University of California, through Lawrence Berkeley National Laboratory,\n", + "# National Technology & Engineering Solutions of Sandia, LLC, Carnegie Mellon\n", + "# University, West Virginia University Research Corporation, et al.\n", + "# All rights reserved. Please see the files COPYRIGHT.md and LICENSE.md\n", + "# for full copyright and license information.\n", + "###############################################################################" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "# HDA Flowsheet Simulation and Optimization\n", + "\n", + "Author: Jaffer Ghouse \n", + "Maintainer: Brandon Paul \n", + "Updated: 2023-06-01 \n", + "\n", + "## Learning outcomes\n", + "\n", + "\n", + "- Construct a steady-state flowsheet using the IDAES unit model library\n", + "- Connecting unit models in a flowsheet using Arcs\n", + "- Using the SequentialDecomposition tool to initialize a flowsheet with recycle\n", + "- Fomulate and solve an optimization problem\n", + " - Defining an objective function\n", + " - Setting variable bounds\n", + " - Adding additional constraints \n", + "\n", + "\n", + "## Problem Statement\n", + "\n", + "Hydrodealkylation is a chemical reaction that often involves reacting\n", + "an aromatic hydrocarbon in the presence of hydrogen gas to form a\n", + "simpler aromatic hydrocarbon devoid of functional groups. In this\n", + "example, toluene will be reacted with hydrogen gas at high temperatures\n", + " to form benzene via the following reaction:\n", + "\n", + "**C6H5CH3 + H2 \u2192 C6H6 + CH4**\n", + "\n", + "\n", + "This reaction is often accompanied by an equilibrium side reaction\n", + "which forms diphenyl, which we will neglect for this example.\n", + "\n", + "This example is based on the 1967 AIChE Student Contest problem as\n", + "present by Douglas, J.M., Chemical Design of Chemical Processes, 1988,\n", + "McGraw-Hill.\n", + "\n", + "The flowsheet that we will be using for this module is shown below with the stream conditions. We will be processing toluene and hydrogen to produce at least 370 TPY of benzene. As shown in the flowsheet, there are two flash tanks, F101 to separate out the non-condensibles and F102 to further separate the benzene-toluene mixture to improve the benzene purity. Note that typically a distillation column is required to obtain high purity benzene but that is beyond the scope of this workshop. The non-condensibles separated out in F101 will be partially recycled back to M101 and the rest will be either purged or combusted for power generation.We will assume ideal gas for this flowsheet. The properties required for this module are available in the same directory:\n", + "\n", + "- hda_ideal_VLE.py\n", + "- hda_reaction.py\n", + "\n", + "The state variables chosen for the property package are **flows of component by phase, temperature and pressure**. The components considered are: **toluene, hydrogen, benzene and methane**. Therefore, every stream has 8 flow variables, 1 temperature and 1 pressure variable. \n", + "\n", + "![](HDA_flowsheet.png)\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Importing required pyomo and idaes components\n", + "\n", + "\n", + "To construct a flowsheet, we will need several components from the pyomo and idaes package. Let us first import the following components from Pyomo:\n", + "- Constraint (to write constraints)\n", + "- Var (to declare variables)\n", + "- ConcreteModel (to create the concrete model object)\n", + "- Expression (to evaluate values as a function of variables defined in the model)\n", + "- Objective (to define an objective function for optimization)\n", + "- SolverFactory (to solve the problem)\n", + "- TransformationFactory (to apply certain transformations)\n", + "- Arc (to connect two unit models)\n", + "- SequentialDecomposition (to initialize the flowsheet in a sequential mode)\n", + "\n", + "For further details on these components, please refer to the pyomo documentation: https://pyomo.readthedocs.io/en/stable/\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from pyomo.environ import (\n", + " Constraint,\n", + " Var,\n", + " ConcreteModel,\n", + " Expression,\n", + " Objective,\n", + " SolverFactory,\n", + " TransformationFactory,\n", + " value,\n", + ")\n", + "from pyomo.network import Arc, SequentialDecomposition" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "From idaes, we will be needing the FlowsheetBlock and the following unit models:\n", + "- Mixer\n", + "- Heater\n", + "- StoichiometricReactor\n", + "- **Flash**\n", + "- Separator (splitter) \n", + "- PressureChanger" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from idaes.core import FlowsheetBlock" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from idaes.models.unit_models import (\n", + " PressureChanger,\n", + " Mixer,\n", + " Separator as Splitter,\n", + " Heater,\n", + " StoichiometricReactor,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "Inline Exercise:\n", + "Now, import the remaining unit models highlighted in blue above and run the cell using `Shift+Enter` after typing in the code. \n", + "
\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "# Todo: import flash model from idaes.models.unit_models\n", + "from idaes.models.unit_models import Flash" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will also be needing some utility tools to put together the flowsheet and calculate the degrees of freedom. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from idaes.models.unit_models.pressure_changer import ThermodynamicAssumption\n", + "from idaes.core.util.model_statistics import degrees_of_freedom\n", + "\n", + "# Import idaes logger to set output levels\n", + "import idaes.logger as idaeslog\n", + "from idaes.core.solvers import get_solver\n", + "from idaes.core.util.exceptions import InitializationError" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Importing required thermo and reaction package\n", + "\n", + "The final set of imports are to import the thermo and reaction package for the HDA process. We have created a custom thermo package that assumes Ideal Gas with support for VLE. \n", + "\n", + "The reaction package here is very simple as we will be using only a StochiometricReactor and the reaction package consists of the stochiometric coefficients for the reaction and the parameter for the heat of reaction. \n", + "\n", + "Let us import the following modules and they are in the same directory as this jupyter notebook:\n", + "
    \n", + "
  • hda_ideal_VLE as thermo_props
  • \n", + "
  • hda_reaction as reaction_props
  • \n", + "
\n", + "" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from idaes_examples.mod.hda import hda_ideal_VLE as thermo_props\n", + "from idaes_examples.mod.hda import hda_reaction as reaction_props" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Constructing the Flowsheet\n", + "\n", + "We have now imported all the components, unit models, and property modules we need to construct a flowsheet. Let us create a ConcreteModel and add the flowsheet block as we did in module 1. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m = ConcreteModel()\n", + "m.fs = FlowsheetBlock(dynamic=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now need to add the property packages to the flowsheet. Unlike Module 1, where we only had a thermo property package, for this flowsheet we will also need to add a reaction property package. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.thermo_params = thermo_props.HDAParameterBlock()\n", + "m.fs.reaction_params = reaction_props.HDAReactionParameterBlock(\n", + " property_package=m.fs.thermo_params\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Adding Unit Models\n", + "\n", + "Let us start adding the unit models we have imported to the flowsheet. Here, we are adding the Mixer (assigned a name M101) and a Heater (assigned a name H101). Note that, all unit models need to be given a property package argument. In addition to that, there are several arguments depending on the unit model, please refer to the documentation for more details (https://idaes-pse.readthedocs.io/en/stable/reference_guides/model_libraries/generic/unit_models/index.html). For example, the Mixer unit model here is given a `list` consisting of names to the three inlets. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.M101 = Mixer(\n", + " property_package=m.fs.thermo_params,\n", + " inlet_list=[\"toluene_feed\", \"hydrogen_feed\", \"vapor_recycle\"],\n", + ")\n", + "\n", + "m.fs.H101 = Heater(\n", + " property_package=m.fs.thermo_params,\n", + " has_pressure_change=False,\n", + " has_phase_equilibrium=True,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "Inline Exercise:\n", + "Let us now add the StoichiometricReactor(assign the name R101) and pass the following arguments:\n", + "
    \n", + "
  • \"property_package\": m.fs.thermo_params
  • \n", + "
  • \"reaction_package\": m.fs.reaction_params
  • \n", + "
  • \"has_heat_of_reaction\": True
  • \n", + "
  • \"has_heat_transfer\": True
  • \n", + "
  • \"has_pressure_change\": False
  • \n", + "
\n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "# Todo: Add reactor with the specifications above\n", + "m.fs.R101 = StoichiometricReactor(\n", + " property_package=m.fs.thermo_params,\n", + " reaction_package=m.fs.reaction_params,\n", + " has_heat_of_reaction=True,\n", + " has_heat_transfer=True,\n", + " has_pressure_change=False,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us now add the Flash(assign the name F101) and pass the following arguments:\n", + "
    \n", + "
  • \"property_package\": m.fs.thermo_params
  • \n", + "
  • \"has_heat_transfer\": True
  • \n", + "
  • \"has_pressure_change\": False
  • \n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.F101 = Flash(\n", + " property_package=m.fs.thermo_params,\n", + " has_heat_transfer=True,\n", + " has_pressure_change=True,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us now add the Splitter(S101), PressureChanger(C101) and the second Flash(F102). " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.S101 = Splitter(\n", + " property_package=m.fs.thermo_params,\n", + " ideal_separation=False,\n", + " outlet_list=[\"purge\", \"recycle\"],\n", + ")\n", + "\n", + "\n", + "m.fs.C101 = PressureChanger(\n", + " property_package=m.fs.thermo_params,\n", + " compressor=True,\n", + " thermodynamic_assumption=ThermodynamicAssumption.isothermal,\n", + ")\n", + "\n", + "m.fs.F102 = Flash(\n", + " property_package=m.fs.thermo_params,\n", + " has_heat_transfer=True,\n", + " has_pressure_change=True,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Connecting Unit Models using Arcs\n", + "\n", + "We have now added all the unit models we need to the flowsheet. However, we have not yet specified how the units are to be connected. To do this, we will be using the `Arc` which is a pyomo component that takes in two arguments: `source` and `destination`. Let us connect the outlet of the mixer(M101) to the inlet of the heater(H101). " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.s03 = Arc(source=m.fs.M101.outlet, destination=m.fs.H101.inlet)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "![](HDA_flowsheet.png) \n", + "\n", + "
\n", + "Inline Exercise:\n", + "Now, connect the H101 outlet to the R101 inlet using the cell above as a guide. \n", + "
\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "# Todo: Connect the H101 outlet to R101 inlet\n", + "m.fs.s04 = Arc(source=m.fs.H101.outlet, destination=m.fs.R101.inlet)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will now be connecting the rest of the flowsheet as shown below. Notice how the outlet names are different for the flash tanks F101 and F102 as they have a vapor and a liquid outlet. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.s05 = Arc(source=m.fs.R101.outlet, destination=m.fs.F101.inlet)\n", + "m.fs.s06 = Arc(source=m.fs.F101.vap_outlet, destination=m.fs.S101.inlet)\n", + "m.fs.s08 = Arc(source=m.fs.S101.recycle, destination=m.fs.C101.inlet)\n", + "m.fs.s09 = Arc(source=m.fs.C101.outlet, destination=m.fs.M101.vapor_recycle)\n", + "m.fs.s10 = Arc(source=m.fs.F101.liq_outlet, destination=m.fs.F102.inlet)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We have now connected the unit model block using the arcs. However, each of these arcs link to ports on the two unit models that are connected. In this case, the ports consist of the state variables that need to be linked between the unit models. Pyomo provides a convenient method to write these equality constraints for us between two ports and this is done as follows:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "TransformationFactory(\"network.expand_arcs\").apply_to(m)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Adding expressions to compute purity and operating costs\n", + "\n", + "In this section, we will add a few Expressions that allows us to evaluate the performance. Expressions provide a convenient way of calculating certain values that are a function of the variables defined in the model. For more details on Expressions, please refer to: https://pyomo.readthedocs.io/en/stable/pyomo_modeling_components/Expressions.html\n", + "\n", + "For this flowsheet, we are interested in computing the purity of the product Benzene stream (i.e. the mole fraction) and the operating cost which is a sum of the cooling and heating cost. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us first add an Expression to compute the mole fraction of benzene in the `vap_outlet` of F102 which is our product stream. Please note that the var flow_mol_phase_comp has the index - [time, phase, component]. As this is a steady-state flowsheet, the time index by default is 0. The valid phases are [\"Liq\", \"Vap\"]. Similarly the valid component list is [\"benzene\", \"toluene\", \"hydrogen\", \"methane\"]." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.purity = Expression(\n", + " expr=m.fs.F102.vap_outlet.flow_mol_phase_comp[0, \"Vap\", \"benzene\"]\n", + " / (\n", + " m.fs.F102.vap_outlet.flow_mol_phase_comp[0, \"Vap\", \"benzene\"]\n", + " + m.fs.F102.vap_outlet.flow_mol_phase_comp[0, \"Vap\", \"toluene\"]\n", + " )\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let us add an expression to compute the cooling cost assuming a cost of 0.212E-4 $/kW. Note that cooling utility is required for the reactor (R101) and the first flash (F101). " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.cooling_cost = Expression(\n", + " expr=0.212e-7 * (-m.fs.F101.heat_duty[0]) + 0.212e-7 * (-m.fs.R101.heat_duty[0])\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "Now, let us add an expression to compute the heating cost assuming the utility cost as follows:\n", + "
    \n", + "
  • 2.2E-4 dollars/kW for H101
  • \n", + "
  • 1.9E-4 dollars/kW for F102
  • \n", + "
\n", + "Note that the heat duty is in units of watt (J/s). " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.heating_cost = Expression(\n", + " expr=2.2e-7 * m.fs.H101.heat_duty[0] + 1.9e-7 * m.fs.F102.heat_duty[0]\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us now add an expression to compute the total operating cost per year which is basically the sum of the cooling and heating cost we defined above. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.operating_cost = Expression(\n", + " expr=(3600 * 24 * 365 * (m.fs.heating_cost + m.fs.cooling_cost))\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Fixing feed conditions\n", + "\n", + "Let us first check how many degrees of freedom exist for this flowsheet using the `degrees_of_freedom` tool we imported earlier. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(degrees_of_freedom(m))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will now be fixing the toluene feed stream to the conditions shown in the flowsheet above. Please note that though this is a pure toluene feed, the remaining components are still assigned a very small non-zero value to help with convergence and initializing. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.M101.toluene_feed.flow_mol_phase_comp[0, \"Vap\", \"benzene\"].fix(1e-5)\n", + "m.fs.M101.toluene_feed.flow_mol_phase_comp[0, \"Vap\", \"toluene\"].fix(1e-5)\n", + "m.fs.M101.toluene_feed.flow_mol_phase_comp[0, \"Vap\", \"hydrogen\"].fix(1e-5)\n", + "m.fs.M101.toluene_feed.flow_mol_phase_comp[0, \"Vap\", \"methane\"].fix(1e-5)\n", + "m.fs.M101.toluene_feed.flow_mol_phase_comp[0, \"Liq\", \"benzene\"].fix(1e-5)\n", + "m.fs.M101.toluene_feed.flow_mol_phase_comp[0, \"Liq\", \"toluene\"].fix(0.30)\n", + "m.fs.M101.toluene_feed.flow_mol_phase_comp[0, \"Liq\", \"hydrogen\"].fix(1e-5)\n", + "m.fs.M101.toluene_feed.flow_mol_phase_comp[0, \"Liq\", \"methane\"].fix(1e-5)\n", + "m.fs.M101.toluene_feed.temperature.fix(303.2)\n", + "m.fs.M101.toluene_feed.pressure.fix(350000)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "Similarly, let us fix the hydrogen feed to the following conditions in the next cell:\n", + "
    \n", + "
  • FH2 = 0.30 mol/s
  • \n", + "
  • FCH4 = 0.02 mol/s
  • \n", + "
  • Remaining components = 1e-5 mol/s
  • \n", + "
  • T = 303.2 K
  • \n", + "
  • P = 350000 Pa
  • \n", + "
\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.M101.hydrogen_feed.flow_mol_phase_comp[0, \"Vap\", \"benzene\"].fix(1e-5)\n", + "m.fs.M101.hydrogen_feed.flow_mol_phase_comp[0, \"Vap\", \"toluene\"].fix(1e-5)\n", + "m.fs.M101.hydrogen_feed.flow_mol_phase_comp[0, \"Vap\", \"hydrogen\"].fix(0.30)\n", + "m.fs.M101.hydrogen_feed.flow_mol_phase_comp[0, \"Vap\", \"methane\"].fix(0.02)\n", + "m.fs.M101.hydrogen_feed.flow_mol_phase_comp[0, \"Liq\", \"benzene\"].fix(1e-5)\n", + "m.fs.M101.hydrogen_feed.flow_mol_phase_comp[0, \"Liq\", \"toluene\"].fix(1e-5)\n", + "m.fs.M101.hydrogen_feed.flow_mol_phase_comp[0, \"Liq\", \"hydrogen\"].fix(1e-5)\n", + "m.fs.M101.hydrogen_feed.flow_mol_phase_comp[0, \"Liq\", \"methane\"].fix(1e-5)\n", + "m.fs.M101.hydrogen_feed.temperature.fix(303.2)\n", + "m.fs.M101.hydrogen_feed.pressure.fix(350000)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Fixing unit model specifications\n", + "\n", + "Now that we have fixed our inlet feed conditions, we will now be fixing the operating conditions for the unit models in the flowsheet. Let us set set the H101 outlet temperature to 600 K. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.H101.outlet.temperature.fix(600)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For the StoichiometricReactor, we have to define the conversion in terms of toluene. This requires us to create a new variable for specifying the conversion and adding a Constraint that defines the conversion with respect to toluene. The second degree of freedom for the reactor is to define the heat duty. In this case, let us assume the reactor to be adiabatic i.e. Q = 0. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.R101.conversion = Var(initialize=0.75, bounds=(0, 1))\n", + "\n", + "m.fs.R101.conv_constraint = Constraint(\n", + " expr=m.fs.R101.conversion * m.fs.R101.inlet.flow_mol_phase_comp[0, \"Vap\", \"toluene\"]\n", + " == (\n", + " m.fs.R101.inlet.flow_mol_phase_comp[0, \"Vap\", \"toluene\"]\n", + " - m.fs.R101.outlet.flow_mol_phase_comp[0, \"Vap\", \"toluene\"]\n", + " )\n", + ")\n", + "\n", + "m.fs.R101.conversion.fix(0.75)\n", + "m.fs.R101.heat_duty.fix(0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The Flash conditions for F101 can be set as follows. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.F101.vap_outlet.temperature.fix(325.0)\n", + "m.fs.F101.deltaP.fix(0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "Inline Exercise:\n", + "Set the conditions for Flash F102 to the following conditions:\n", + "
    \n", + "
  • T = 375 K
  • \n", + "
  • deltaP = -200000
  • \n", + "
\n", + "\n", + "Use Shift+Enter to run the cell once you have typed in your code. \n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "m.fs.F102.vap_outlet.temperature.fix(375)\n", + "m.fs.F102.deltaP.fix(-200000)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us fix the purge split fraction to 20% and the outlet pressure of the compressor is set to 350000 Pa. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.S101.split_fraction[0, \"purge\"].fix(0.2)\n", + "m.fs.C101.outlet.pressure.fix(350000)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "Inline Exercise:\n", + "We have now defined all the feed conditions and the inputs required for the unit models. The system should now have 0 degrees of freedom i.e. should be a square problem. Please check that the degrees of freedom is 0. \n", + "\n", + "Use Shift+Enter to run the cell once you have typed in your code. \n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "print(degrees_of_freedom(m))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Initialization\n", + "\n", + "\n", + "This section will demonstrate how to use the built-in sequential decomposition tool to initialize our flowsheet.\n", + "\n", + "![](HDA_flowsheet.png) \n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us first create an object for the SequentialDecomposition and specify our options for this. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "seq = SequentialDecomposition()\n", + "seq.options.select_tear_method = \"heuristic\"\n", + "seq.options.tear_method = \"Wegstein\"\n", + "seq.options.iterLim = 3\n", + "\n", + "# Using the SD tool\n", + "G = seq.create_graph(m)\n", + "heuristic_tear_set = seq.tear_set_arcs(G, method=\"heuristic\")\n", + "order = seq.calculation_order(G)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Which is the tear stream? Display tear set and order" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for o in heuristic_tear_set:\n", + " print(o.name)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What sequence did the SD tool determine to solve this flowsheet with the least number of tears? " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "for o in order:\n", + " print(o[0].name)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " \n", + "\n", + "![](HDA_tear_stream.png) \n", + "\n", + "\n", + "The SequentialDecomposition tool has determined that the tear stream is the mixer outlet. We will need to provide a reasonable guess for this." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "tear_guesses = {\n", + " \"flow_mol_phase_comp\": {\n", + " (0, \"Vap\", \"benzene\"): 1e-5,\n", + " (0, \"Vap\", \"toluene\"): 1e-5,\n", + " (0, \"Vap\", \"hydrogen\"): 0.30,\n", + " (0, \"Vap\", \"methane\"): 0.02,\n", + " (0, \"Liq\", \"benzene\"): 1e-5,\n", + " (0, \"Liq\", \"toluene\"): 0.30,\n", + " (0, \"Liq\", \"hydrogen\"): 1e-5,\n", + " (0, \"Liq\", \"methane\"): 1e-5,\n", + " },\n", + " \"temperature\": {0: 303},\n", + " \"pressure\": {0: 350000},\n", + "}\n", + "\n", + "# Pass the tear_guess to the SD tool\n", + "seq.set_guesses_for(m.fs.H101.inlet, tear_guesses)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we need to tell the tool how to initialize a particular unit. We will be writing a python function which takes in a \"unit\" and calls the initialize method on that unit. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def function(unit):\n", + " try:\n", + " initializer = unit.default_initializer()\n", + " initializer.initialize(unit, output_level=idaeslog.INFO)\n", + " except InitializationError:\n", + " solver=get_solver()\n", + " solver.solve(unit)\n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We are now ready to initialize our flowsheet in a sequential mode. Note that we specifically set the iteration limit to be 5 as we are trying to use this tool only to get a good set of initial values such that IPOPT can then take over and solve this flowsheet for us. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "seq.run(m, function)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "Inline Exercise:\n", + "We have now initialized the flowsheet. Let us run the flowsheet in a simulation mode to look at the results. To do this, complete the last line of code where we pass the model to the solver. You will need to type the following:\n", + " \n", + "results = solver.solve(m, tee=True)\n", + "\n", + "Use Shift+Enter to run the cell once you have typed in your code. \n", + "
\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "# Create the solver object\n", + "from idaes.core.solvers import get_solver\n", + "\n", + "solver = get_solver()\n", + "\n", + "# Solve the model\n", + "results = solver.solve(m, tee=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Analyze the results of the square problem\n", + "\n", + "\n", + "What is the total operating cost? " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(\"operating cost = $\", value(m.fs.operating_cost))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For this operating cost, what is the amount of benzene we are able to produce and what purity we are able to achieve? " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.F102.report()\n", + "\n", + "print()\n", + "print(\"benzene purity = \", value(m.fs.purity))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, let's look at how much benzene we are losing with the light gases out of F101. IDAES has tools for creating stream tables based on the `Arcs` and/or `Ports` in a flowsheet. Let us create and print a simple stream table showing the stream leaving the reactor and the vapor stream from F101.\n", + "\n", + "
\n", + "Inline Exercise:\n", + "How much benzene are we losing in the F101 vapor outlet stream?\n", + "
\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from idaes.core.util.tables import (\n", + " create_stream_table_dataframe,\n", + " stream_table_dataframe_to_string,\n", + ")\n", + "\n", + "st = create_stream_table_dataframe({\"Reactor\": m.fs.s05, \"Light Gases\": m.fs.s06})\n", + "print(stream_table_dataframe_to_string(st))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "Inline Exercise:\n", + "You can query additional variables here if you like. \n", + "\n", + "Use Shift+Enter to run the cell once you have typed in your code. \n", + "
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Optimization\n", + "\n", + "\n", + "We saw from the results above that the total operating cost for the base case was $419,122 per year. We are producing 0.142 mol/s of benzene at a purity of 82\\%. However, we are losing around 42\\% of benzene in F101 vapor outlet stream. \n", + "\n", + "Let us try to minimize this cost such that:\n", + "- we are producing at least 0.15 mol/s of benzene in F102 vapor outlet i.e. our product stream\n", + "- purity of benzene i.e. the mole fraction of benzene in F102 vapor outlet is at least 80%\n", + "- restricting the benzene loss in F101 vapor outlet to less than 20%\n", + "\n", + "For this problem, our decision variables are as follows:\n", + "- H101 outlet temperature\n", + "- R101 cooling duty provided\n", + "- F101 outlet temperature\n", + "- F102 outlet temperature\n", + "- F102 deltaP in the flash tank\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us declare our objective function for this problem. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.objective = Objective(expr=m.fs.operating_cost)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, we need to unfix the decision variables as we had solved a square problem (degrees of freedom = 0) until now. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.H101.outlet.temperature.unfix()\n", + "m.fs.R101.heat_duty.unfix()\n", + "m.fs.F101.vap_outlet.temperature.unfix()\n", + "m.fs.F102.vap_outlet.temperature.unfix()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "Inline Exercise:\n", + "Let us now unfix the remaining variable which is F102 pressure drop (F102.deltaP) \n", + "\n", + "Use Shift+Enter to run the cell once you have typed in your code. \n", + "
\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "# Todo: Unfix deltaP for F102\n", + "m.fs.F102.deltaP.unfix()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we need to set bounds on these decision variables to values shown below:\n", + "\n", + " - H101 outlet temperature [500, 600] K\n", + " - R101 outlet temperature [600, 800] K\n", + " - F101 outlet temperature [298, 450] K\n", + " - F102 outlet temperature [298, 450] K\n", + " - F102 outlet pressure [105000, 110000] Pa\n", + "\n", + "Let us first set the variable bound for the H101 outlet temperature as shown below:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.H101.outlet.temperature[0].setlb(500)\n", + "m.fs.H101.outlet.temperature[0].setub(600)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "Inline Exercise:\n", + "Now, set the variable bound for the R101 outlet temperature.\n", + "\n", + "Use Shift+Enter to run the cell once you have typed in your code. \n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "# Todo: Set the bounds for reactor outlet temperature\n", + "m.fs.R101.outlet.temperature[0].setlb(600)\n", + "m.fs.R101.outlet.temperature[0].setub(800)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us fix the bounds for the rest of the decision variables. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.F101.vap_outlet.temperature[0].setlb(298.0)\n", + "m.fs.F101.vap_outlet.temperature[0].setub(450.0)\n", + "m.fs.F102.vap_outlet.temperature[0].setlb(298.0)\n", + "m.fs.F102.vap_outlet.temperature[0].setub(450.0)\n", + "m.fs.F102.vap_outlet.pressure[0].setlb(105000)\n", + "m.fs.F102.vap_outlet.pressure[0].setub(110000)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, the only things left to define are our constraints on overhead loss in F101, product flow rate and purity in F102. Let us first look at defining a constraint for the overhead loss in F101 where we are restricting the benzene leaving the vapor stream to less than 20 \\% of the benzene available in the reactor outlet. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.overhead_loss = Constraint(\n", + " expr=m.fs.F101.vap_outlet.flow_mol_phase_comp[0, \"Vap\", \"benzene\"]\n", + " <= 0.20 * m.fs.R101.outlet.flow_mol_phase_comp[0, \"Vap\", \"benzene\"]\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "Inline Exercise:\n", + "Now, add the constraint such that we are producing at least 0.15 mol/s of benzene in the product stream which is the vapor outlet of F102. Let us name this constraint as m.fs.product_flow. \n", + "\n", + "Use Shift+Enter to run the cell once you have typed in your code. \n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "solution" + ] + }, + "outputs": [], + "source": [ + "# Todo: Add minimum product flow constraint\n", + "m.fs.product_flow = Constraint(\n", + " expr=m.fs.F102.vap_outlet.flow_mol_phase_comp[0, \"Vap\", \"benzene\"] >= 0.15\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us add the final constraint on product purity or the mole fraction of benzene in the product stream such that it is at least greater than 80%. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.product_purity = Constraint(expr=m.fs.purity >= 0.80)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "We have now defined the optimization problem and we are now ready to solve this problem. \n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "results = solver.solve(m, tee=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Optimization Results\n", + "\n", + "Display the results and product specifications" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(\"operating cost = $\", value(m.fs.operating_cost))\n", + "\n", + "print()\n", + "print(\"Product flow rate and purity in F102\")\n", + "\n", + "m.fs.F102.report()\n", + "\n", + "print()\n", + "print(\"benzene purity = \", value(m.fs.purity))\n", + "\n", + "print()\n", + "print(\"Overhead loss in F101\")\n", + "m.fs.F101.report()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Display optimal values for the decision variables" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(\"Optimal Values\")\n", + "print()\n", + "\n", + "print(\"H101 outlet temperature = \", value(m.fs.H101.outlet.temperature[0]), \"K\")\n", + "\n", + "print()\n", + "print(\"R101 outlet temperature = \", value(m.fs.R101.outlet.temperature[0]), \"K\")\n", + "\n", + "print()\n", + "print(\"F101 outlet temperature = \", value(m.fs.F101.vap_outlet.temperature[0]), \"K\")\n", + "\n", + "print()\n", + "print(\"F102 outlet temperature = \", value(m.fs.F102.vap_outlet.temperature[0]), \"K\")\n", + "print(\"F102 outlet pressure = \", value(m.fs.F102.vap_outlet.pressure[0]), \"Pa\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } - ], - "source": [ - "m.fs.F102.report()\n", - "\n", - "print()\n", - "print(\"benzene purity = \", value(m.fs.purity))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Next, let's look at how much benzene we are losing with the light gases out of F101. IDAES has tools for creating stream tables based on the `Arcs` and/or `Ports` in a flowsheet. Let us create and print a simple stream table showing the stream leaving the reactor and the vapor stream from F101.\n", - "\n", - "
\n", - "Inline Exercise:\n", - "How much benzene are we losing in the F101 vapor outlet stream?\n", - "
\n" - ] - }, - { - "cell_type": "code", - "execution_count": 40, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " Units Reactor Light Gases\n", - "flow_mol_phase_comp ('Liq', 'benzene') mole / second 1.2993e-07 1.0000e-08 \n", - "flow_mol_phase_comp ('Liq', 'toluene') mole / second 8.4147e-07 1.0000e-08 \n", - "flow_mol_phase_comp ('Liq', 'methane') mole / second 1.0000e-12 1.0000e-08 \n", - "flow_mol_phase_comp ('Liq', 'hydrogen') mole / second 1.0000e-12 1.0000e-08 \n", - "flow_mol_phase_comp ('Vap', 'benzene') mole / second 0.35374 0.14915 \n", - "flow_mol_phase_comp ('Vap', 'toluene') mole / second 0.078129 0.015610 \n", - "flow_mol_phase_comp ('Vap', 'methane') mole / second 1.2721 1.2721 \n", - "flow_mol_phase_comp ('Vap', 'hydrogen') mole / second 0.32821 0.32821 \n", - "temperature kelvin 771.85 325.00 \n", - "pressure pascal 3.5000e+05 3.5000e+05 \n" - ] - } - ], - "source": [ - "from idaes.core.util.tables import (\n", - " create_stream_table_dataframe,\n", - " stream_table_dataframe_to_string,\n", - ")\n", - "\n", - "st = create_stream_table_dataframe({\"Reactor\": m.fs.s05, \"Light Gases\": m.fs.s06})\n", - "print(stream_table_dataframe_to_string(st))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "Inline Exercise:\n", - "You can query additional variables here if you like. \n", - "\n", - "Use Shift+Enter to run the cell once you have typed in your code. \n", - "
\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Optimization\n", - "\n", - "\n", - "We saw from the results above that the total operating cost for the base case was $419,122 per year. We are producing 0.142 mol/s of benzene at a purity of 82\\%. However, we are losing around 42\\% of benzene in F101 vapor outlet stream. \n", - "\n", - "Let us try to minimize this cost such that:\n", - "- we are producing at least 0.15 mol/s of benzene in F102 vapor outlet i.e. our product stream\n", - "- purity of benzene i.e. the mole fraction of benzene in F102 vapor outlet is at least 80%\n", - "- restricting the benzene loss in F101 vapor outlet to less than 20%\n", - "\n", - "For this problem, our decision variables are as follows:\n", - "- H101 outlet temperature\n", - "- R101 cooling duty provided\n", - "- F101 outlet temperature\n", - "- F102 outlet temperature\n", - "- F102 deltaP in the flash tank\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us declare our objective function for this problem. " - ] - }, - { - "cell_type": "code", - "execution_count": 41, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.objective = Objective(expr=m.fs.operating_cost)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now, we need to unfix the decision variables as we had solved a square problem (degrees of freedom = 0) until now. " - ] - }, - { - "cell_type": "code", - "execution_count": 42, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.H101.outlet.temperature.unfix()\n", - "m.fs.R101.heat_duty.unfix()\n", - "m.fs.F101.vap_outlet.temperature.unfix()\n", - "m.fs.F102.vap_outlet.temperature.unfix()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "Inline Exercise:\n", - "Let us now unfix the remaining variable which is F102 pressure drop (F102.deltaP) \n", - "\n", - "Use Shift+Enter to run the cell once you have typed in your code. \n", - "
\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 43, - "metadata": { - "tags": [ - "solution" - ] - }, - "outputs": [], - "source": [ - "# Todo: Unfix deltaP for F102\n", - "m.fs.F102.deltaP.unfix()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Next, we need to set bounds on these decision variables to values shown below:\n", - "\n", - " - H101 outlet temperature [500, 600] K\n", - " - R101 outlet temperature [600, 800] K\n", - " - F101 outlet temperature [298, 450] K\n", - " - F102 outlet temperature [298, 450] K\n", - " - F102 outlet pressure [105000, 110000] Pa\n", - "\n", - "Let us first set the variable bound for the H101 outlet temperature as shown below:" - ] - }, - { - "cell_type": "code", - "execution_count": 44, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.H101.outlet.temperature[0].setlb(500)\n", - "m.fs.H101.outlet.temperature[0].setub(600)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "Inline Exercise:\n", - "Now, set the variable bound for the R101 outlet temperature.\n", - "\n", - "Use Shift+Enter to run the cell once you have typed in your code. \n", - "
" - ] - }, - { - "cell_type": "code", - "execution_count": 45, - "metadata": { - "tags": [ - "solution" - ] - }, - "outputs": [], - "source": [ - "# Todo: Set the bounds for reactor outlet temperature\n", - "m.fs.R101.outlet.temperature[0].setlb(600)\n", - "m.fs.R101.outlet.temperature[0].setub(800)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us fix the bounds for the rest of the decision variables. " - ] - }, - { - "cell_type": "code", - "execution_count": 46, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.F101.vap_outlet.temperature[0].setlb(298.0)\n", - "m.fs.F101.vap_outlet.temperature[0].setub(450.0)\n", - "m.fs.F102.vap_outlet.temperature[0].setlb(298.0)\n", - "m.fs.F102.vap_outlet.temperature[0].setub(450.0)\n", - "m.fs.F102.vap_outlet.pressure[0].setlb(105000)\n", - "m.fs.F102.vap_outlet.pressure[0].setub(110000)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now, the only things left to define are our constraints on overhead loss in F101, product flow rate and purity in F102. Let us first look at defining a constraint for the overhead loss in F101 where we are restricting the benzene leaving the vapor stream to less than 20 \\% of the benzene available in the reactor outlet. " - ] - }, - { - "cell_type": "code", - "execution_count": 47, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.overhead_loss = Constraint(\n", - " expr=m.fs.F101.vap_outlet.flow_mol_phase_comp[0, \"Vap\", \"benzene\"]\n", - " <= 0.20 * m.fs.R101.outlet.flow_mol_phase_comp[0, \"Vap\", \"benzene\"]\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "Inline Exercise:\n", - "Now, add the constraint such that we are producing at least 0.15 mol/s of benzene in the product stream which is the vapor outlet of F102. Let us name this constraint as m.fs.product_flow. \n", - "\n", - "Use Shift+Enter to run the cell once you have typed in your code. \n", - "
" - ] - }, - { - "cell_type": "code", - "execution_count": 48, - "metadata": { - "tags": [ - "solution" - ] - }, - "outputs": [], - "source": [ - "# Todo: Add minimum product flow constraint\n", - "m.fs.product_flow = Constraint(\n", - " expr=m.fs.F102.vap_outlet.flow_mol_phase_comp[0, \"Vap\", \"benzene\"] >= 0.15\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us add the final constraint on product purity or the mole fraction of benzene in the product stream such that it is at least greater than 80%. " - ] - }, - { - "cell_type": "code", - "execution_count": 49, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.product_purity = Constraint(expr=m.fs.purity >= 0.80)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "We have now defined the optimization problem and we are now ready to solve this problem. \n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 50, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", - "tol=1e-06\n", - "max_iter=200\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 1057\n", - "Number of nonzeros in inequality constraint Jacobian.: 5\n", - "Number of nonzeros in Lagrangian Hessian.............: 937\n", - "\n", - "Total number of variables............................: 345\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 149\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 340\n", - "Total number of inequality constraints...............: 3\n", - " inequality constraints with only lower bounds: 2\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 1\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 4.1912234e+05 2.99e+05 6.94e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 4.1628385e+05 2.99e+05 6.94e+00 -1.0 4.82e+09 - 1.80e-05 5.83e-06f 1\n", - " 2 4.1616723e+05 2.99e+05 1.59e+02 -1.0 1.46e+09 - 5.83e-04 1.47e-05f 1\n", - " 3 4.0789953e+05 2.94e+05 4.83e+02 -1.0 1.36e+09 - 2.64e-04 9.30e-04f 1\n", - " 4 2.9668590e+05 2.83e+06 6.97e+02 -1.0 4.80e+08 - 7.26e-05 1.50e-03f 1\n", - " 5 2.9555461e+05 2.83e+06 4.95e+04 -1.0 1.90e+08 - 1.88e-01 1.04e-03f 1\n", - " 6 2.9451022e+05 2.73e+06 4.60e+05 -1.0 4.43e+07 - 1.87e-01 3.43e-02f 1\n", - " 7 2.9628497e+05 2.13e+06 4.43e+05 -1.0 1.48e+07 - 7.40e-02 2.18e-01h 1\n", - " 8 2.9632658e+05 2.13e+06 4.41e+05 -1.0 5.91e+06 - 6.37e-01 3.36e-03h 1\n", - " 9 2.9642679e+05 2.11e+06 4.39e+05 -1.0 6.54e+06 - 7.26e-01 7.12e-03h 1\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 10 2.9954735e+05 1.64e+06 4.13e+05 -1.0 6.57e+06 - 3.57e-02 2.24e-01h 1\n", - " 11 3.0435085e+05 9.50e+05 6.95e+05 -1.0 5.56e+06 - 9.46e-01 4.20e-01h 1\n", - " 12 3.0895827e+05 3.69e+05 1.22e+07 -1.0 4.03e+06 - 9.90e-01 6.11e-01h 1\n", - " 13 3.1246277e+05 1.42e+06 1.80e+10 -1.0 2.25e+06 - 9.95e-01 9.65e-01h 1\n", - " 14 3.1266092e+05 5.66e+05 7.10e+10 -1.0 2.77e+05 - 4.14e-01 6.11e-01h 1\n", - " 15 3.1266072e+05 5.65e+05 7.08e+10 -1.0 1.18e+06 - 1.09e-02 2.60e-04h 1\n", - " 16 3.1266230e+05 5.58e+05 7.01e+10 -1.0 1.08e+05 - 1.00e+00 1.26e-02h 1\n", - " 17 3.1271669e+05 3.14e+05 7.23e+10 -1.0 1.07e+05 - 4.05e-01 4.39e-01h 1\n", - " 18 3.1278583e+05 3.89e+03 1.58e+10 -1.0 6.01e+04 - 7.76e-03 9.91e-01h 1\n", - " 19 3.1278664e+05 1.57e+03 6.81e+10 -1.0 5.59e+02 - 9.87e-01 1.00e+00h 1\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 20 3.1278678e+05 2.39e+01 1.24e+09 -1.0 1.96e+02 - 1.00e+00 1.00e+00f 1\n", - " 21 3.1278674e+05 1.19e+01 6.32e+08 -1.0 1.30e+02 - 1.00e+00 5.00e-01f 2\n", - " 22 3.1278674e+05 1.21e-02 9.81e+04 -1.0 2.70e+00 - 1.00e+00 1.00e+00f 1\n", - " 23 3.1278642e+05 2.23e-05 2.00e+05 -1.7 1.62e+02 - 1.00e+00 1.00e+00f 1\n", - " 24 3.1278642e+05 1.49e-08 2.16e-03 -1.7 6.37e-01 - 1.00e+00 1.00e+00h 1\n", - " 25 3.1278634e+05 1.38e-06 1.26e+04 -7.0 4.04e+01 - 1.00e+00 1.00e+00f 1\n", - " 26 3.1278634e+05 1.49e-08 7.76e-05 -7.0 6.55e-03 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 26\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 3.1278633834102686e+05 3.1278633834102686e+05\n", - "Dual infeasibility......: 7.7559902882953563e-05 7.7559902882953563e-05\n", - "Constraint violation....: 5.8207660913467407e-11 1.4901161193847656e-08\n", - "Complementarity.........: 9.0926527280252943e-08 9.0926527280252943e-08\n", - "Overall NLP error.......: 6.6903080882730816e-09 7.7559902882953563e-05\n", - "\n", - "\n", - "Number of objective function evaluations = 28\n", - "Number of objective gradient evaluations = 27\n", - "Number of equality constraint evaluations = 28\n", - "Number of inequality constraint evaluations = 28\n", - "Number of equality constraint Jacobian evaluations = 27\n", - "Number of inequality constraint Jacobian evaluations = 27\n", - "Number of Lagrangian Hessian evaluations = 26\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.016\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n" - ] - } - ], - "source": [ - "results = solver.solve(m, tee=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Optimization Results\n", - "\n", - "Display the results and product specifications" - ] - }, - { - "cell_type": "code", - "execution_count": 51, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "operating cost = $ 312786.3383410268\n", - "\n", - "Product flow rate and purity in F102\n", - "\n", - "====================================================================================\n", - "Unit : fs.F102 Time: 0.0\n", - "------------------------------------------------------------------------------------\n", - " Unit Performance\n", - "\n", - " Variables: \n", - "\n", - " Key : Value : Units : Fixed : Bounds\n", - " Heat Duty : 8377.0 : watt : False : (None, None)\n", - " Pressure Change : -2.4500e+05 : pascal : False : (None, None)\n", - "\n", - "------------------------------------------------------------------------------------\n", - " Stream Table\n", - " Units Inlet Vapor Outlet Liquid Outlet\n", - " flow_mol_phase_comp ('Liq', 'benzene') mole / second 0.21743 1.0000e-08 0.067425 \n", - " flow_mol_phase_comp ('Liq', 'toluene') mole / second 0.070695 1.0000e-08 0.037507 \n", - " flow_mol_phase_comp ('Liq', 'methane') mole / second 2.8812e-07 1.0000e-08 1.0493e-07 \n", - " flow_mol_phase_comp ('Liq', 'hydrogen') mole / second 2.8812e-07 1.0000e-08 1.0493e-07 \n", - " flow_mol_phase_comp ('Vap', 'benzene') mole / second 1.0000e-08 0.15000 1.0000e-08 \n", - " flow_mol_phase_comp ('Vap', 'toluene') mole / second 1.0000e-08 0.033189 1.0000e-08 \n", - " flow_mol_phase_comp ('Vap', 'methane') mole / second 1.0000e-08 1.9319e-07 1.0000e-08 \n", - " flow_mol_phase_comp ('Vap', 'hydrogen') mole / second 1.0000e-08 1.9319e-07 1.0000e-08 \n", - " temperature kelvin 301.88 362.93 362.93 \n", - " pressure pascal 3.5000e+05 1.0500e+05 1.0500e+05 \n", - "====================================================================================\n", - "\n", - "benzene purity = 0.8188276578112285\n", - "\n", - "Overhead loss in F101\n", - "\n", - "====================================================================================\n", - "Unit : fs.F101 Time: 0.0\n", - "------------------------------------------------------------------------------------\n", - " Unit Performance\n", - "\n", - " Variables: \n", - "\n", - " Key : Value : Units : Fixed : Bounds\n", - " Heat Duty : -56353. : watt : False : (None, None)\n", - " Pressure Change : 0.0000 : pascal : True : (None, None)\n", - "\n", - "------------------------------------------------------------------------------------\n", - " Stream Table\n", - " Units Inlet Vapor Outlet Liquid Outlet\n", - " flow_mol_phase_comp ('Liq', 'benzene') mole / second 4.3534e-08 1.0000e-08 0.21743 \n", - " flow_mol_phase_comp ('Liq', 'toluene') mole / second 7.5866e-07 1.0000e-08 0.070695 \n", - " flow_mol_phase_comp ('Liq', 'methane') mole / second 1.0000e-12 1.0000e-08 2.8812e-07 \n", - " flow_mol_phase_comp ('Liq', 'hydrogen') mole / second 1.0000e-12 1.0000e-08 2.8812e-07 \n", - " flow_mol_phase_comp ('Vap', 'benzene') mole / second 0.27178 0.054356 1.0000e-08 \n", - " flow_mol_phase_comp ('Vap', 'toluene') mole / second 0.076085 0.0053908 1.0000e-08 \n", - " flow_mol_phase_comp ('Vap', 'methane') mole / second 1.2414 1.2414 1.0000e-08 \n", - " flow_mol_phase_comp ('Vap', 'hydrogen') mole / second 0.35887 0.35887 1.0000e-08 \n", - " temperature kelvin 696.11 301.88 301.88 \n", - " pressure pascal 3.5000e+05 3.5000e+05 3.5000e+05 \n", - "====================================================================================\n" - ] + ], + "metadata": { + "celltoolbar": "Tags", + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" } - ], - "source": [ - "print(\"operating cost = $\", value(m.fs.operating_cost))\n", - "\n", - "print()\n", - "print(\"Product flow rate and purity in F102\")\n", - "\n", - "m.fs.F102.report()\n", - "\n", - "print()\n", - "print(\"benzene purity = \", value(m.fs.purity))\n", - "\n", - "print()\n", - "print(\"Overhead loss in F101\")\n", - "m.fs.F101.report()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Display optimal values for the decision variables" - ] - }, - { - "cell_type": "code", - "execution_count": 52, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Optimal Values\n", - "\n", - "H101 outlet temperature = 500.0 K\n", - "\n", - "R101 outlet temperature = 696.1117584980856 K\n", - "\n", - "F101 outlet temperature = 301.8784760569282 K\n", - "\n", - "F102 outlet temperature = 362.93476830548985 K\n", - "F102 outlet pressure = 105000.0 Pa\n" - ] - } - ], - "source": [ - "print(\"Optimal Values\")\n", - "print()\n", - "\n", - "print(\"H101 outlet temperature = \", value(m.fs.H101.outlet.temperature[0]), \"K\")\n", - "\n", - "print()\n", - "print(\"R101 outlet temperature = \", value(m.fs.R101.outlet.temperature[0]), \"K\")\n", - "\n", - "print()\n", - "print(\"F101 outlet temperature = \", value(m.fs.F101.vap_outlet.temperature[0]), \"K\")\n", - "\n", - "print()\n", - "print(\"F102 outlet temperature = \", value(m.fs.F102.vap_outlet.temperature[0]), \"K\")\n", - "print(\"F102 outlet pressure = \", value(m.fs.F102.vap_outlet.pressure[0]), \"Pa\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "celltoolbar": "Tags", - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.5" - } - }, - "nbformat": 4, - "nbformat_minor": 3 -} + "nbformat": 4, + "nbformat_minor": 3 +} \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/tut/core/hda_flowsheet_exercise.ipynb b/idaes_examples/notebooks/docs/tut/core/hda_flowsheet_exercise.ipynb index cd42cc58..e563cfdb 100644 --- a/idaes_examples/notebooks/docs/tut/core/hda_flowsheet_exercise.ipynb +++ b/idaes_examples/notebooks/docs/tut/core/hda_flowsheet_exercise.ipynb @@ -56,7 +56,7 @@ "example, toluene will be reacted with hydrogen gas at high temperatures\n", " to form benzene via the following reaction:\n", "\n", - "**C6H5CH3 + H2 → C6H6 + CH4**\n", + "**C6H5CH3 + H2 \u2192 C6H6 + CH4**\n", "\n", "\n", "This reaction is often accompanied by an equilibrium side reaction\n", @@ -194,7 +194,9 @@ "from idaes.core.util.model_statistics import degrees_of_freedom\n", "\n", "# Import idaes logger to set output levels\n", - "import idaes.logger as idaeslog" + "import idaes.logger as idaeslog\n", + "from idaes.core.solvers import get_solver\n", + "from idaes.core.util.exceptions import InitializationError" ] }, { @@ -885,7 +887,13 @@ "outputs": [], "source": [ "def function(unit):\n", - " unit.initialize(outlvl=idaeslog.INFO)" + " try:\n", + " initializer = unit.default_initializer()\n", + " initializer.initialize(unit, output_level=idaeslog.INFO)\n", + " except InitializationError:\n", + " solver=get_solver()\n", + " solver.solve(unit)\n", + " " ] }, { @@ -1334,4 +1342,4 @@ }, "nbformat": 4, "nbformat_minor": 3 -} +} \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/tut/core/hda_flowsheet_solution.ipynb b/idaes_examples/notebooks/docs/tut/core/hda_flowsheet_solution.ipynb index 923daf60..52573e32 100644 --- a/idaes_examples/notebooks/docs/tut/core/hda_flowsheet_solution.ipynb +++ b/idaes_examples/notebooks/docs/tut/core/hda_flowsheet_solution.ipynb @@ -56,7 +56,7 @@ "example, toluene will be reacted with hydrogen gas at high temperatures\n", " to form benzene via the following reaction:\n", "\n", - "**C6H5CH3 + H2 → C6H6 + CH4**\n", + "**C6H5CH3 + H2 \u2192 C6H6 + CH4**\n", "\n", "\n", "This reaction is often accompanied by an equilibrium side reaction\n", @@ -208,7 +208,9 @@ "from idaes.core.util.model_statistics import degrees_of_freedom\n", "\n", "# Import idaes logger to set output levels\n", - "import idaes.logger as idaeslog" + "import idaes.logger as idaeslog\n", + "from idaes.core.solvers import get_solver\n", + "from idaes.core.util.exceptions import InitializationError" ] }, { @@ -960,7 +962,13 @@ "outputs": [], "source": [ "def function(unit):\n", - " unit.initialize(outlvl=idaeslog.INFO)" + " try:\n", + " initializer = unit.default_initializer()\n", + " initializer.initialize(unit, output_level=idaeslog.INFO)\n", + " except InitializationError:\n", + " solver=get_solver()\n", + " solver.solve(unit)\n", + " " ] }, { @@ -1473,4 +1481,4 @@ }, "nbformat": 4, "nbformat_minor": 3 -} +} \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/tut/core/hda_flowsheet_test.ipynb b/idaes_examples/notebooks/docs/tut/core/hda_flowsheet_test.ipynb index 7098c670..6110381d 100644 --- a/idaes_examples/notebooks/docs/tut/core/hda_flowsheet_test.ipynb +++ b/idaes_examples/notebooks/docs/tut/core/hda_flowsheet_test.ipynb @@ -56,7 +56,7 @@ "example, toluene will be reacted with hydrogen gas at high temperatures\n", " to form benzene via the following reaction:\n", "\n", - "**C6H5CH3 + H2 → C6H6 + CH4**\n", + "**C6H5CH3 + H2 \u2192 C6H6 + CH4**\n", "\n", "\n", "This reaction is often accompanied by an equilibrium side reaction\n", @@ -195,7 +195,9 @@ "from idaes.core.util.model_statistics import degrees_of_freedom\n", "\n", "# Import idaes logger to set output levels\n", - "import idaes.logger as idaeslog" + "import idaes.logger as idaeslog\n", + "from idaes.core.solvers import get_solver\n", + "from idaes.core.util.exceptions import InitializationError" ] }, { @@ -923,7 +925,13 @@ "outputs": [], "source": [ "def function(unit):\n", - " unit.initialize(outlvl=idaeslog.INFO)" + " try:\n", + " initializer = unit.default_initializer()\n", + " initializer.initialize(unit, output_level=idaeslog.INFO)\n", + " except InitializationError:\n", + " solver=get_solver()\n", + " solver.solve(unit)\n", + " " ] }, { @@ -1488,4 +1496,4 @@ }, "nbformat": 4, "nbformat_minor": 3 -} +} \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/tut/core/hda_flowsheet_usr.ipynb b/idaes_examples/notebooks/docs/tut/core/hda_flowsheet_usr.ipynb index 923daf60..52573e32 100644 --- a/idaes_examples/notebooks/docs/tut/core/hda_flowsheet_usr.ipynb +++ b/idaes_examples/notebooks/docs/tut/core/hda_flowsheet_usr.ipynb @@ -56,7 +56,7 @@ "example, toluene will be reacted with hydrogen gas at high temperatures\n", " to form benzene via the following reaction:\n", "\n", - "**C6H5CH3 + H2 → C6H6 + CH4**\n", + "**C6H5CH3 + H2 \u2192 C6H6 + CH4**\n", "\n", "\n", "This reaction is often accompanied by an equilibrium side reaction\n", @@ -208,7 +208,9 @@ "from idaes.core.util.model_statistics import degrees_of_freedom\n", "\n", "# Import idaes logger to set output levels\n", - "import idaes.logger as idaeslog" + "import idaes.logger as idaeslog\n", + "from idaes.core.solvers import get_solver\n", + "from idaes.core.util.exceptions import InitializationError" ] }, { @@ -960,7 +962,13 @@ "outputs": [], "source": [ "def function(unit):\n", - " unit.initialize(outlvl=idaeslog.INFO)" + " try:\n", + " initializer = unit.default_initializer()\n", + " initializer.initialize(unit, output_level=idaeslog.INFO)\n", + " except InitializationError:\n", + " solver=get_solver()\n", + " solver.solve(unit)\n", + " " ] }, { @@ -1473,4 +1481,4 @@ }, "nbformat": 4, "nbformat_minor": 3 -} +} \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/unit_models/operations/eg_h2o_ideal.py b/idaes_examples/notebooks/docs/unit_models/operations/eg_h2o_ideal.py index 0bf2a5ed..40607b83 100644 --- a/idaes_examples/notebooks/docs/unit_models/operations/eg_h2o_ideal.py +++ b/idaes_examples/notebooks/docs/unit_models/operations/eg_h2o_ideal.py @@ -36,110 +36,136 @@ # --------------------------------------------------------------------- -# Configuration dictionary for an ideal ethylene oxide, water, -# sulfuric acid, and ethylene glycol system +# Configuration dictionary for an ideal ethylene glycol and water system # Data Sources: # [1] The Properties of Gases and Liquids (1987) # 4th edition, Chemical Engineering Series - Robert C. Reid # [2] Perry's Chemical Engineers' Handbook 7th Ed. # [3] NIST Chemistry WebBook, https://webbook.nist.gov/chemistry/ -# Retrieved 23rd September, 2021 +# Retrieved 18th March, 2024 config_dict = { # Specifying components "components": { - 'water': - {"type": Component, - "elemental_composition": {"H": 2, "O": 1}, - "dens_mol_liq_comp": Perrys, - "enth_mol_liq_comp": Perrys, - "enth_mol_ig_comp": RPP4, - "pressure_sat_comp": RPP4, - "phase_equilibrium_form": {("Vap", "Liq"): fugacity}, - "parameter_data": { - "mw": (18.015E-3, pyunits.kg/pyunits.mol), # [1] - "pressure_crit": (221.2e5, pyunits.Pa), # [1] - "temperature_crit": (647.3, pyunits.K), # [1] - "dens_mol_liq_comp_coeff": { - 'eqn_type': 2, - '1': (-13.851, pyunits.kmol/pyunits.m**3), # [2]pg. 2-98 - '2': (0.64038, pyunits.kmol/pyunits.m**3/pyunits.K), - '3': (-0.00191, pyunits.kmol/pyunits.m**3/pyunits.K**2), - '4': (1.8211E-6, pyunits.kmol/pyunits.m**3/pyunits.K**3)}, - "cp_mol_ig_comp_coeff": { - 'A': (3.194E1, pyunits.J/pyunits.mol/pyunits.K), # [1] - 'B': (1.436E-3, pyunits.J/pyunits.mol/pyunits.K**2), - 'C': (2.432E-5, pyunits.J/pyunits.mol/pyunits.K**3), - 'D': (-1.176E-8, pyunits.J/pyunits.mol/pyunits.K**4)}, - "cp_mol_liq_comp_coeff": { - '1': (2.7637E2, pyunits.J/pyunits.kmol/pyunits.K), # [2] - '2': (-2.0901, pyunits.J/pyunits.kmol/pyunits.K**2), - '3': (8.125E-3, pyunits.J/pyunits.kmol/pyunits.K**3), - '4': (-1.4116E-5, pyunits.J/pyunits.kmol/pyunits.K**4), - '5': (9.3701E-9, pyunits.J/pyunits.kmol/pyunits.K**5)}, - "enth_mol_form_liq_comp_ref": ( - -285.83e3, pyunits.J/pyunits.mol), # [3] - "enth_mol_form_vap_comp_ref": ( - -241.836e3, pyunits.J/pyunits.mol), # [3] - "pressure_sat_comp_coeff": {'A': (-7.76451, None), # [1] - 'B': (1.45838, None), - 'C': (-2.77580, None), - 'D': (-1.23303, None)}}}, - 'ethylene_glycol': - {"type": Component, - "elemental_composition": {"C": 2, "H": 6, "O": 2}, - "dens_mol_liq_comp": Perrys, - "enth_mol_liq_comp": Perrys, - "enth_mol_ig_comp": RPP4, - "pressure_sat_comp": RPP4, - "phase_equilibrium_form": {("Vap", "Liq"): fugacity}, - "parameter_data": { - "mw": (62.069E-3, pyunits.kg/pyunits.mol), # [1] - "pressure_crit": (77e5, pyunits.Pa), # [1] - "temperature_crit": (645, pyunits.K), # [1] - "dens_mol_liq_comp_coeff": { - 'eqn_type': 1, - '1': (1.315, pyunits.kmol*pyunits.m**-3), # [2] pg. 2-98 - '2': (0.25125, None), - '3': (720, pyunits.K), - '4': (0.21868, None)}, - "cp_mol_ig_comp_coeff": { - 'A': (3.570E1, pyunits.J/pyunits.mol/pyunits.K), # [1] - 'B': (2.483E-1, pyunits.J/pyunits.mol/pyunits.K**2), - 'C': (-1.497E-4, pyunits.J/pyunits.mol/pyunits.K**3), - 'D': (3.010E-8, pyunits.J/pyunits.mol/pyunits.K**4)}, - "cp_mol_liq_comp_coeff": { - '1': (3.5540E1, pyunits.J/pyunits.kmol/pyunits.K), # [2] - '2': (4.3678E-1, pyunits.J/pyunits.kmol/pyunits.K**2), - '3': (-1.8486E-4, pyunits.J/pyunits.kmol/pyunits.K**3), - '4': (0, pyunits.J/pyunits.kmol/pyunits.K**4), - '5': (0, pyunits.J/pyunits.kmol/pyunits.K**5)}, - "enth_mol_form_liq_comp_ref": ( - -455.24e3, pyunits.J/pyunits.mol), # [3] - "enth_mol_form_vap_comp_ref": ( - -389.37e3, pyunits.J/pyunits.mol), # [3] - "pressure_sat_comp_coeff": {'A': (13.6299, None), # [1] - 'B': (6022.18, None), - 'C': (-28.25, None), - 'D': (0, None)}}}}, - + "water": { + "type": Component, + "elemental_composition": {"H": 2, "O": 1}, + "dens_mol_liq_comp": Perrys, + "enth_mol_liq_comp": Perrys, + "enth_mol_ig_comp": RPP4, + "pressure_sat_comp": RPP4, + "phase_equilibrium_form": {("Vap", "Liq"): fugacity}, + "parameter_data": { + "mw": (18.015e-3, pyunits.kg / pyunits.mol), # [1] pg. 667 + "pressure_crit": (221.2e5, pyunits.Pa), # [1] pg. 667 + "temperature_crit": (647.3, pyunits.K), # [1] pg. 667 + "dens_mol_liq_comp_coeff": { # [2] pg. 2-98 + "eqn_type": 1, + "1": (5.459, pyunits.kmol * pyunits.m**-3), + "2": (0.30542, None), + "3": (647.13, pyunits.K), + "4": (0.081, None), + }, + "cp_mol_ig_comp_coeff": { # [1] pg. 668 + "A": (3.224e1, pyunits.J / pyunits.mol / pyunits.K), + "B": (1.924e-3, pyunits.J / pyunits.mol / pyunits.K**2), + "C": (1.055e-5, pyunits.J / pyunits.mol / pyunits.K**3), + "D": (-3.596e-9, pyunits.J / pyunits.mol / pyunits.K**4), + }, + "cp_mol_liq_comp_coeff": { # [2] pg. 2-174 + "1": (2.7637e5, pyunits.J / pyunits.kmol / pyunits.K), + "2": (-2.0901e3, pyunits.J / pyunits.kmol / pyunits.K**2), + "3": (8.1250, pyunits.J / pyunits.kmol / pyunits.K**3), + "4": (-1.4116e-2, pyunits.J / pyunits.kmol / pyunits.K**4), + "5": (9.3701e-6, pyunits.J / pyunits.kmol / pyunits.K**5), + }, + "enth_mol_form_liq_comp_ref": ( + -285.830e3, + pyunits.J / pyunits.mol, + ), # [3] updated 5/10/24 + "enth_mol_form_vap_comp_ref": ( + -241.826e3, + pyunits.J / pyunits.mol, + ), # [3] updated 5/10/24 + "pressure_sat_comp_coeff": { + "A": (-7.76451, None), # [1] pg. 669 + "B": (1.45838, None), + "C": (-2.77580, None), + "D": (-1.23303, None), + }, + }, + }, + "ethylene_glycol": { + "type": Component, + "elemental_composition": {"C": 2, "H": 6, "O": 2}, + "dens_mol_liq_comp": Perrys, + "enth_mol_liq_comp": Perrys, + "enth_mol_ig_comp": RPP4, + "pressure_sat_comp": RPP4, + "phase_equilibrium_form": {("Vap", "Liq"): fugacity}, + "parameter_data": { + "mw": (62.069e-3, pyunits.kg / pyunits.mol), # [1] pg. 676 + "pressure_crit": (77e5, pyunits.Pa), # [1] pg. 676 + "temperature_crit": (645, pyunits.K), # [1] pg. 676 + "dens_mol_liq_comp_coeff": { # [2] pg. 2-95 + "eqn_type": 1, + "1": (1.3151, pyunits.kmol * pyunits.m**-3), + "2": (0.25125, None), + "3": (719.7, pyunits.K), + "4": (0.2187, None), + }, + "cp_mol_ig_comp_coeff": { # [1] pg. 677 + "A": (3.570e1, pyunits.J / pyunits.mol / pyunits.K), + "B": (2.483e-1, pyunits.J / pyunits.mol / pyunits.K**2), + "C": (-1.497e-4, pyunits.J / pyunits.mol / pyunits.K**3), + "D": (3.010e-8, pyunits.J / pyunits.mol / pyunits.K**4), + }, + "cp_mol_liq_comp_coeff": { # [2] pg. 2-171 + "1": (3.5540e4, pyunits.J / pyunits.kmol / pyunits.K), + "2": (4.3678e2, pyunits.J / pyunits.kmol / pyunits.K**2), + "3": (-1.8486e-1, pyunits.J / pyunits.kmol / pyunits.K**3), + "4": (0, pyunits.J / pyunits.kmol / pyunits.K**4), + "5": (0, pyunits.J / pyunits.kmol / pyunits.K**5), + }, + "enth_mol_form_liq_comp_ref": ( + -460.0e3, + pyunits.J / pyunits.mol, + ), # [3] updated 5/10/24 + "enth_mol_form_vap_comp_ref": ( + -394.4e3, + pyunits.J / pyunits.mol, + ), # [3] updated 5/10/24 + # [1] pg. 678 pressure sat coef values for alternative equation form + # ln Pvp = A - B/(T + C) with A = 13.6299, B = 6022.18, C = -28.25 + # reformulated for generic property supported form + # ln Pvp = [(1 - x)^-1 * (A*x + B*x^1.5 + C*x^3 + D*x^6)] * Pc where x = 1 - T/Tc + "pressure_sat_comp_coeff": { + "A": (-16.4022, None), + "B": (10.0100, None), + "C": (-6.5216, None), + "D": (-11.1182, None), + }, + }, + }, + }, # Specifying phases - "phases": {'Liq': {"type": LiquidPhase, - "equation_of_state": Ideal}}, - + "phases": {"Liq": {"type": LiquidPhase, "equation_of_state": Ideal}}, # Set base units of measurement - "base_units": {"time": pyunits.s, - "length": pyunits.m, - "mass": pyunits.kg, - "amount": pyunits.mol, - "temperature": pyunits.K}, - + "base_units": { + "time": pyunits.s, + "length": pyunits.m, + "mass": pyunits.kg, + "amount": pyunits.mol, + "temperature": pyunits.K, + }, # Specifying state definition "state_definition": FpcTP, - "state_bounds": {"flow_mol_phase_comp": (0, 100, 1000, - pyunits.mol/pyunits.s), - "temperature": (273.15, 298.15, 450, pyunits.K), - "pressure": (1e3, 1e5, 1e6, pyunits.Pa)}, + "state_bounds": { + "flow_mol_phase_comp": (0, 100, 1000, pyunits.mol / pyunits.s), + "temperature": (273.15, 298.15, 450, pyunits.K), + "pressure": (1e3, 1e5, 1e6, pyunits.Pa), + }, "pressure_ref": (1e5, pyunits.Pa), - "temperature_ref": (298.15, pyunits.K)} + "temperature_ref": (298.15, pyunits.K), +} diff --git a/idaes_examples/notebooks/docs/unit_models/operations/skeleton_unit.ipynb b/idaes_examples/notebooks/docs/unit_models/operations/skeleton_unit.ipynb index 922f495f..12aac7c6 100644 --- a/idaes_examples/notebooks/docs/unit_models/operations/skeleton_unit.ipynb +++ b/idaes_examples/notebooks/docs/unit_models/operations/skeleton_unit.ipynb @@ -583,18 +583,18 @@ "\n", "assert value(\n", " m.fs.PERMEATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"water\"]\n", - ") == pytest.approx(0.1426, rel=1e-3)\n", + ") == pytest.approx(0.14258566, rel=1e-5)\n", "assert value(\n", " m.fs.PERMEATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"]\n", - ") == pytest.approx(0.0002667, rel=1e-3)\n", + ") == pytest.approx(0.000266748768, rel=1e-5)\n", "assert value(\n", " m.fs.RETENTATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"water\"]\n", - ") == pytest.approx(0.1974, rel=1e-3)\n", + ") == pytest.approx(0.19741534, rel=1e-5)\n", "assert value(\n", " m.fs.RETENTATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"]\n", - ") == pytest.approx(0.6597, rel=1e-3)\n", - "assert value(m.fs.separation_factor) == pytest.approx(1038, rel=1e-3)\n", - "assert value(m.fs.pervap.heat_duty[0]) == pytest.approx(5813, rel=1e-3)" + ") == pytest.approx(0.65973425, rel=1e-5)\n", + "assert value(m.fs.separation_factor) == pytest.approx(1037.6188, rel=1e-5)\n", + "assert value(m.fs.pervap.heat_duty[0]) == pytest.approx(5812.7111, rel=1e-5)" ] }, { @@ -671,18 +671,18 @@ "\n", "assert value(\n", " m.fs.PERMEATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"water\"]\n", - ") == pytest.approx(0.1426, rel=1e-3)\n", + ") == pytest.approx(0.14258566, rel=1e-5)\n", "assert value(\n", " m.fs.PERMEATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"]\n", - ") == pytest.approx(0.0002667, rel=1e-3)\n", + ") == pytest.approx(0.000266748768, rel=1e-5)\n", "assert value(\n", " m.fs.RETENTATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"water\"]\n", - ") == pytest.approx(0.6998, rel=1e-3)\n", + ") == pytest.approx(0.69981938, rel=1e-5)\n", "assert value(\n", " m.fs.RETENTATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"]\n", - ") == pytest.approx(0.1573, rel=1e-3)\n", - "assert value(m.fs.separation_factor) == pytest.approx(100.0, rel=1e-3)\n", - "assert value(m.fs.pervap.heat_duty[0]) == pytest.approx(5813, rel=1e-3)" + ") == pytest.approx(0.15733020, rel=1e-5)\n", + "assert value(m.fs.separation_factor) == pytest.approx(100.000067, rel=1e-5)\n", + "assert value(m.fs.pervap.heat_duty[0]) == pytest.approx(5812.7111, rel=1e-5)" ] }, { @@ -719,9 +719,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.12" + "version": "3.9.18" } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/idaes_examples/notebooks/docs/unit_models/operations/skeleton_unit_doc.ipynb b/idaes_examples/notebooks/docs/unit_models/operations/skeleton_unit_doc.ipynb index 0273e79d..e3cbb4d7 100644 --- a/idaes_examples/notebooks/docs/unit_models/operations/skeleton_unit_doc.ipynb +++ b/idaes_examples/notebooks/docs/unit_models/operations/skeleton_unit_doc.ipynb @@ -1,1208 +1,727 @@ { - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "tags": [ - "header", - "hide-cell" - ] - }, - "outputs": [], - "source": [ - "###############################################################################\n", - "# The Institute for the Design of Advanced Energy Systems Integrated Platform\n", - "# Framework (IDAES IP) was produced under the DOE Institute for the\n", - "# Design of Advanced Energy Systems (IDAES).\n", - "#\n", - "# Copyright (c) 2018-2023 by the software owners: The Regents of the\n", - "# University of California, through Lawrence Berkeley National Laboratory,\n", - "# National Technology & Engineering Solutions of Sandia, LLC, Carnegie Mellon\n", - "# University, West Virginia University Research Corporation, et al.\n", - "# All rights reserved. Please see the files COPYRIGHT.md and LICENSE.md\n", - "# for full copyright and license information.\n", - "###############################################################################" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# IDAES Skeleton Unit Model\n", - "Maintainer: Brandon Paul \n", - "Author: Brandon Paul \n", - "Updated: 2023-06-01 \n", - "\n", - "This notebook demonstrates usage of the IDAES Skeleton Unit Model, which provides a generic \"bare bones\" unit for user-defined models and custom variable and constraint sets. To allow maximum versatility, this unit may be defined as a surrogate model or a custom equation-oriented model. Users must add ports and variables that match connected models, and this is facilitated through a provided method to add port-variable sets.\n", - "\n", - "For users who wish to train surrogates with IDAES tools and insert obtained models into a flowsheet, see more detailed information on [IDAES Surrogate Tools](https://idaes-pse.readthedocs.io/en/stable/explanations/modeling_extensions/surrogate/index.html)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 1. Motivation\n", - "\n", - "In many cases, a specific application requires a unique unit operation that does not exist in the IDAES repository. Custom user models may source from external scripts, import surrogate equations or use first-principles calculations. However, IDAES flowsheets adhere to a standardized modeling hierarchy and simple Pyomo models do not always follow these conventions. Additionally, simple flowsheet submodels often require integration with other IDAES unit models which requires consistency between corresponding port variables, stream properties and physical unit sets, as well as proper usage of `ControlVolume` blocks.\n", - "\n", - "The IDAES `SkeletonUnitModel` allows custom creation of user models blocks that do not require `ControlVolume` blocks, and enabling connection with standard IDAES unit models that do contain `ControlVolume` blocks. To motivate the usefulness and versatility of this tool, we will consider a simple pervaporation unit. The custom model does not require rigorous thermodynamic calculations contained in adjacent unit models, and using a Skeleton model allows definition of only required variables and constraints. The new block does require state variable connections for the inlet and outlet streams. We will demonstrate this scenario below to highlight the usage and benefits of the Skeleton model." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 2. Example - Pervaporation\n", - "\n", - "Pervaporation is a low-energy separation process, and is particularly advantageous over distillation for azeotropic solutions or aqueous mixtures of heavy alcohols. Ethylene glycol is more environmentally friendly than typical chloride- and bromide-based dessicants, and is a common choice for commercial recovery of water from flue gas via liquid spray columns. Due to ethylene glycol's high boiling point, diffusion-based water recovery is economically favorable compared to distillation-based processes. The following example and flux correlation are taken from the literature source below:\n", - "\n", - "Jennifer Runhong Du, Amit Chakma, X. Feng, Dehydration of ethylene glycol by pervaporation using poly(N,N-dimethylaminoethyl methacrylate)/polysulfone composite membranes, Separation and Purification Technology, Volume 64, Issue 1, 2008, Pages 63-70, ISSN 1383-5866, https://doi.org/10.1016/j.seppur.2008.08.004.\n", - "\n", - "The process is adapted from the literature, utilizing an inlet aqueous glycol feed circulated through a feed tank-membrane-feed tank recycle loop while permeate is continuously extracted by the membrane. To demonstrate the usefulness of the Skeleton model, we will model this system as a Mixer and custom Pervaporation unit per the diagram below and define the flux as an empirical custom mass balance term rather than requiring rigorous diffusion calculations. We will also circumvent the need for a vapor phase and VLE calculations by manually calculating the duty to condense and collect permeate vapor, and use correlations for steady-state fluxes to avoid a recycle requiring tear calculations.\n", - "\n", - "![](pervaporation_process.png)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 2.1 Pyomo and IDAES Imports\n", - "We will begin with relevant imports. We will need basic Pyomo and IDAES components:" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "import pytest\n", - "from pyomo.environ import (\n", - " check_optimal_termination,\n", - " ConcreteModel,\n", - " Constraint,\n", - " Expression,\n", - " Objective,\n", - " maximize,\n", - " Var,\n", - " Set,\n", - " TransformationFactory,\n", - " value,\n", - " exp,\n", - " units as pyunits,\n", - ")\n", - "from pyomo.network import Arc\n", - "from idaes.core import FlowsheetBlock\n", - "from idaes.models.unit_models import Feed, SkeletonUnitModel, Mixer, Product\n", - "from idaes.core.util.model_statistics import degrees_of_freedom\n", - "from idaes.core.util.initialization import propagate_state\n", - "from idaes.core.solvers import get_solver\n", - "from pyomo.util.check_units import assert_units_consistent\n", - "\n", - "# import thermophysical properties\n", - "import eg_h2o_ideal as thermo_props\n", - "from idaes.models.properties.modular_properties import GenericParameterBlock\n", - "from idaes.core.util.constants import Constants" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 2.2 Build Flowsheet\n", - "\n", - "We will build a simple model manually defining state variables relations entering and exiting the pervaporation unit. As shown below, we may define our pre-separation mixer as usual:" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "# build the flowsheet\n", - "m = ConcreteModel()\n", - "m.fs = FlowsheetBlock(dynamic=False)\n", - "\n", - "m.fs.thermo_params = GenericParameterBlock(**thermo_props.config_dict)\n", - "\n", - "m.fs.WATER = Feed(property_package=m.fs.thermo_params)\n", - "m.fs.GLYCOL = Feed(property_package=m.fs.thermo_params)\n", - "\n", - "m.fs.M101 = Mixer(\n", - " property_package=m.fs.thermo_params, inlet_list=[\"water_feed\", \"glycol_feed\"]\n", - ")\n", - "\n", - "m.fs.RETENTATE = Product(property_package=m.fs.thermo_params)\n", - "m.fs.PERMEATE = Product(property_package=m.fs.thermo_params)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 2.2 Defining Skeleton Model and Connections\n", - "\n", - "Now that our flowsheet exists, we can manually define variables, units, constraints and ports for our custom pervaporation unit model. By using a Skeleton model, we avoid rigorous mass and energy balances and phase equilibrium which impact model tractability. Instead, we define state variable relations as below - note that we include the fluxes as outlet flow terms. In this model, the variables specify an `FpcTP` system where molar flow of each component, temperature and pressure are selected as state variables:" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "# define Skeleton model for pervaporation unit\n", - "m.fs.pervap = SkeletonUnitModel(dynamic=False)\n", - "m.fs.pervap.comp_list = Set(initialize=[\"water\", \"ethylene_glycol\"])\n", - "m.fs.pervap.phase_list = Set(initialize=[\"Liq\"])\n", - "\n", - "# input vars for skeleton\n", - "# m.fs.time is a pre-initialized Set belonging to the FlowsheetBlock; for dynamic=False, time=[0]\n", - "m.fs.pervap.flow_in = Var(\n", - " m.fs.time,\n", - " m.fs.pervap.phase_list,\n", - " m.fs.pervap.comp_list,\n", - " initialize=1.0,\n", - " units=pyunits.mol / pyunits.s,\n", - ")\n", - "m.fs.pervap.temperature_in = Var(m.fs.time, initialize=298.15, units=pyunits.K)\n", - "m.fs.pervap.pressure_in = Var(m.fs.time, initialize=101e3, units=pyunits.Pa)\n", - "\n", - "# output vars for skeleton\n", - "m.fs.pervap.perm_flow = Var(\n", - " m.fs.time,\n", - " m.fs.pervap.phase_list,\n", - " m.fs.pervap.comp_list,\n", - " initialize=1.0,\n", - " units=pyunits.mol / pyunits.s,\n", - ")\n", - "m.fs.pervap.ret_flow = Var(\n", - " m.fs.time,\n", - " m.fs.pervap.phase_list,\n", - " m.fs.pervap.comp_list,\n", - " initialize=1.0,\n", - " units=pyunits.mol / pyunits.s,\n", - ")\n", - "m.fs.pervap.temperature_out = Var(m.fs.time, initialize=298.15, units=pyunits.K)\n", - "m.fs.pervap.pressure_out = Var(m.fs.time, initialize=101e3, units=pyunits.Pa)\n", - "m.fs.pervap.vacuum = Var(m.fs.time, initialize=1.3e3, units=pyunits.Pa)\n", - "\n", - "# dictionaries relating state properties to custom variables\n", - "inlet_dict = {\n", - " \"flow_mol_phase_comp\": m.fs.pervap.flow_in,\n", - " \"temperature\": m.fs.pervap.temperature_in,\n", - " \"pressure\": m.fs.pervap.pressure_in,\n", - "}\n", - "retentate_dict = {\n", - " \"flow_mol_phase_comp\": m.fs.pervap.ret_flow,\n", - " \"temperature\": m.fs.pervap.temperature_out,\n", - " \"pressure\": m.fs.pervap.pressure_out,\n", - "}\n", - "permeate_dict = {\n", - " \"flow_mol_phase_comp\": m.fs.pervap.perm_flow,\n", - " \"temperature\": m.fs.pervap.temperature_out,\n", - " \"pressure\": m.fs.pervap.vacuum,\n", - "}\n", - "\n", - "m.fs.pervap.add_ports(name=\"inlet\", member_dict=inlet_dict)\n", - "m.fs.pervap.add_ports(name=\"retentate\", member_dict=retentate_dict)\n", - "m.fs.pervap.add_ports(name=\"permeate\", member_dict=permeate_dict)\n", - "\n", - "# internal vars for skeleton\n", - "energy_activation_dict = {\n", - " (0, \"Liq\", \"water\"): 51e3,\n", - " (0, \"Liq\", \"ethylene_glycol\"): 53e3,\n", - "}\n", - "m.fs.pervap.energy_activation = Var(\n", - " m.fs.time,\n", - " m.fs.pervap.phase_list,\n", - " m.fs.pervap.comp_list,\n", - " initialize=energy_activation_dict,\n", - " units=pyunits.J / pyunits.mol,\n", - ")\n", - "m.fs.pervap.energy_activation.fix()\n", - "\n", - "permeance_dict = {\n", - " (0, \"Liq\", \"water\"): 5611320,\n", - " (0, \"Liq\", \"ethylene_glycol\"): 22358.88,\n", - "} # calculated from literature data\n", - "m.fs.pervap.permeance = Var(\n", - " m.fs.time,\n", - " m.fs.pervap.phase_list,\n", - " m.fs.pervap.comp_list,\n", - " initialize=permeance_dict,\n", - " units=pyunits.mol / pyunits.s / pyunits.m**2,\n", - ")\n", - "m.fs.pervap.permeance.fix()\n", - "\n", - "m.fs.pervap.area = Var(m.fs.time, initialize=6, units=pyunits.m**2)\n", - "m.fs.pervap.area.fix()\n", - "\n", - "latent_heat_dict = {\n", - " (0, \"Liq\", \"water\"): 40.660e3,\n", - " (0, \"Liq\", \"ethylene_glycol\"): 56.9e3,\n", - "}\n", - "m.fs.pervap.latent_heat_of_vaporization = Var(\n", - " m.fs.time,\n", - " m.fs.pervap.phase_list,\n", - " m.fs.pervap.comp_list,\n", - " initialize=latent_heat_dict,\n", - " units=pyunits.J / pyunits.mol,\n", - ")\n", - "m.fs.pervap.latent_heat_of_vaporization.fix()\n", - "m.fs.pervap.heat_duty = Var(\n", - " m.fs.time, initialize=1, units=pyunits.J / pyunits.s\n", - ") # we will calculate this later" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's define our surrogate equations for flux and permeance, and link them to the port variables. Users can use this structure to write custom relations between inlet and outlet streams; for example, here we define the outlet flow of the pervaporation unit as a sum of the inlet flow and calculated recovery fluxes. By defining model constraints in lieu of rigorous mass balances, we add the flux as a custom mass balance term via an empirical correlation and calculate only the condensation duty rather than implementing full energy balance calculations:" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "# Surrogate and first principles model equations\n", - "\n", - "# flux equation (gas constant is defined as J/mol-K)\n", - "\n", - "\n", - "def rule_permeate_flux(pervap, t, p, i):\n", - " return pervap.permeate.flow_mol_phase_comp[t, p, i] / pervap.area[t] == (\n", - " pervap.permeance[t, p, i]\n", - " * exp(\n", - " -pervap.energy_activation[t, p, i]\n", - " / (Constants.gas_constant * pervap.inlet.temperature[t])\n", - " )\n", - " )\n", - "\n", - "\n", - "m.fs.pervap.eq_permeate_flux = Constraint(\n", - " m.fs.time, m.fs.pervap.phase_list, m.fs.pervap.comp_list, rule=rule_permeate_flux\n", - ")\n", - "\n", - "# permeate condensation equation\n", - "# heat duty based on condensing all of permeate product vapor\n", - "# avoids the need for a Heater or HeatExchanger unit model\n", - "\n", - "\n", - "def rule_duty(pervap, t):\n", - " return pervap.heat_duty[t] == sum(\n", - " pervap.latent_heat_of_vaporization[t, p, i]\n", - " * pervap.permeate.flow_mol_phase_comp[t, p, i]\n", - " for p in pervap.phase_list\n", - " for i in pervap.comp_list\n", - " )\n", - "\n", - "\n", - "m.fs.pervap.eq_duty = Constraint(m.fs.time, rule=rule_duty)\n", - "\n", - "# flow equation adding total recovery as a custom mass balance term\n", - "def rule_retentate_flow(pervap, t, p, i):\n", - " return pervap.retentate.flow_mol_phase_comp[t, p, i] == (\n", - " pervap.inlet.flow_mol_phase_comp[t, p, i]\n", - " - pervap.permeate.flow_mol_phase_comp[t, p, i]\n", - " )\n", - "\n", - "\n", - "m.fs.pervap.eq_retentate_flow = Constraint(\n", - " m.fs.time, m.fs.pervap.phase_list, m.fs.pervap.comp_list, rule=rule_retentate_flow\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Finally, let's define the Arc connecting our two models (IDAES Mixer and custom Pervaporation) and build the flowsheet network:" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.s01 = Arc(source=m.fs.WATER.outlet, destination=m.fs.M101.water_feed)\n", - "m.fs.s02 = Arc(source=m.fs.GLYCOL.outlet, destination=m.fs.M101.glycol_feed)\n", - "m.fs.s03 = Arc(source=m.fs.M101.outlet, destination=m.fs.pervap.inlet)\n", - "m.fs.s04 = Arc(source=m.fs.pervap.permeate, destination=m.fs.PERMEATE.inlet)\n", - "m.fs.s05 = Arc(source=m.fs.pervap.retentate, destination=m.fs.RETENTATE.inlet)\n", - "TransformationFactory(\"network.expand_arcs\").apply_to(m)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's see how many degrees of freedom the flowsheet has:" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ + "cells": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "11\n" - ] - } - ], - "source": [ - "print(degrees_of_freedom(m))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 2.3 Inlet Specifications\n", - "\n", - "To obtain a square problem with zero degrees of freedom, we specify the inlet water flow, ethylene glycol flow, temperature and pressure for each feed stream, as well as the permeate stream pressure:" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.WATER.outlet.flow_mol_phase_comp[0, \"Liq\", \"water\"].fix(0.34) # mol/s\n", - "m.fs.WATER.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"].fix(1e-6) # mol/s\n", - "m.fs.WATER.outlet.temperature.fix(318.15) # K\n", - "m.fs.WATER.outlet.pressure.fix(101.325e3) # Pa\n", - "\n", - "m.fs.GLYCOL.outlet.flow_mol_phase_comp[0, \"Liq\", \"water\"].fix(1e-6) # mol/s\n", - "m.fs.GLYCOL.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"].fix(0.66) # mol/s\n", - "m.fs.GLYCOL.outlet.temperature.fix(318.15) # K\n", - "m.fs.GLYCOL.outlet.pressure.fix(101.325e3) # Pa" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Additionally, we need to pass rules defining the temperature and pressure outlets of the pervaporation unit:" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "# Add a constraint to calculate the outlet temperature.\n", - "# Here, assume outlet temperature is the same as inlet temperature for illustration\n", - "# in reality, temperature change from latent heat loss through membrane is negligible\n", - "\n", - "\n", - "def rule_temp_out(pervap, t):\n", - " return pervap.inlet.temperature[t] == pervap.retentate.temperature[t]\n", - "\n", - "\n", - "m.fs.pervap.temperature_out_calculation = Constraint(m.fs.time, rule=rule_temp_out)\n", - "\n", - "# Add a constraint to calculate the retentate pressure\n", - "# Here, assume the retentate pressure is the same as the inlet pressure for illustration\n", - "# in reality, pressure change from mass loss through membrane is negligible\n", - "\n", - "\n", - "def rule_pres_out(pervap, t):\n", - " return pervap.inlet.pressure[t] == pervap.retentate.pressure[t]\n", - "\n", - "\n", - "m.fs.pervap.pressure_out_calculation = Constraint(m.fs.time, rule=rule_pres_out)\n", - "\n", - "# fix permeate vacuum pressure\n", - "m.fs.PERMEATE.inlet.pressure.fix(1.3e3)\n", - "\n", - "assert degrees_of_freedom(m) == 0" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 2.4 Custom Initialization\n", - "In addition to allowing custom variable and constraint definitions, the Skeleton model enables implementation of a custom initialization scheme. Complex unit operations may present unique tractability issues, and users have precise control over piecewise unit model solving." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "header", + "hide-cell" + ] + }, + "outputs": [], + "source": [ + "###############################################################################\n", + "# The Institute for the Design of Advanced Energy Systems Integrated Platform\n", + "# Framework (IDAES IP) was produced under the DOE Institute for the\n", + "# Design of Advanced Energy Systems (IDAES).\n", + "#\n", + "# Copyright (c) 2018-2023 by the software owners: The Regents of the\n", + "# University of California, through Lawrence Berkeley National Laboratory,\n", + "# National Technology & Engineering Solutions of Sandia, LLC, Carnegie Mellon\n", + "# University, West Virginia University Research Corporation, et al.\n", + "# All rights reserved. Please see the files COPYRIGHT.md and LICENSE.md\n", + "# for full copyright and license information.\n", + "###############################################################################" + ] + }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:47 [INFO] idaes.init.fs.WATER.properties: Starting initialization\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# IDAES Skeleton Unit Model\n", + "Maintainer: Brandon Paul \n", + "Author: Brandon Paul \n", + "Updated: 2023-06-01 \n", + "\n", + "This notebook demonstrates usage of the IDAES Skeleton Unit Model, which provides a generic \"bare bones\" unit for user-defined models and custom variable and constraint sets. To allow maximum versatility, this unit may be defined as a surrogate model or a custom equation-oriented model. Users must add ports and variables that match connected models, and this is facilitated through a provided method to add port-variable sets.\n", + "\n", + "For users who wish to train surrogates with IDAES tools and insert obtained models into a flowsheet, see more detailed information on [IDAES Surrogate Tools](https://idaes-pse.readthedocs.io/en/stable/explanations/modeling_extensions/surrogate/index.html)." + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:47 [INFO] idaes.init.fs.WATER.properties: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 1. Motivation\n", + "\n", + "In many cases, a specific application requires a unique unit operation that does not exist in the IDAES repository. Custom user models may source from external scripts, import surrogate equations or use first-principles calculations. However, IDAES flowsheets adhere to a standardized modeling hierarchy and simple Pyomo models do not always follow these conventions. Additionally, simple flowsheet submodels often require integration with other IDAES unit models which requires consistency between corresponding port variables, stream properties and physical unit sets, as well as proper usage of `ControlVolume` blocks.\n", + "\n", + "The IDAES `SkeletonUnitModel` allows custom creation of user models blocks that do not require `ControlVolume` blocks, and enabling connection with standard IDAES unit models that do contain `ControlVolume` blocks. To motivate the usefulness and versatility of this tool, we will consider a simple pervaporation unit. The custom model does not require rigorous thermodynamic calculations contained in adjacent unit models, and using a Skeleton model allows definition of only required variables and constraints. The new block does require state variable connections for the inlet and outlet streams. We will demonstrate this scenario below to highlight the usage and benefits of the Skeleton model." + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:47 [INFO] idaes.init.fs.WATER.properties: Property package initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 2. Example - Pervaporation\n", + "\n", + "Pervaporation is a low-energy separation process, and is particularly advantageous over distillation for azeotropic solutions or aqueous mixtures of heavy alcohols. Ethylene glycol is more environmentally friendly than typical chloride- and bromide-based dessicants, and is a common choice for commercial recovery of water from flue gas via liquid spray columns. Due to ethylene glycol's high boiling point, diffusion-based water recovery is economically favorable compared to distillation-based processes. The following example and flux correlation are taken from the literature source below:\n", + "\n", + "Jennifer Runhong Du, Amit Chakma, X. Feng, Dehydration of ethylene glycol by pervaporation using poly(N,N-dimethylaminoethyl methacrylate)/polysulfone composite membranes, Separation and Purification Technology, Volume 64, Issue 1, 2008, Pages 63-70, ISSN 1383-5866, https://doi.org/10.1016/j.seppur.2008.08.004.\n", + "\n", + "The process is adapted from the literature, utilizing an inlet aqueous glycol feed circulated through a feed tank-membrane-feed tank recycle loop while permeate is continuously extracted by the membrane. To demonstrate the usefulness of the Skeleton model, we will model this system as a Mixer and custom Pervaporation unit per the diagram below and define the flux as an empirical custom mass balance term rather than requiring rigorous diffusion calculations. We will also circumvent the need for a vapor phase and VLE calculations by manually calculating the duty to condense and collect permeate vapor, and use correlations for steady-state fluxes to avoid a recycle requiring tear calculations.\n", + "\n", + "![](pervaporation_process.png)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:47 [INFO] idaes.init.fs.WATER: Initialization Complete.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2.1 Pyomo and IDAES Imports\n", + "We will begin with relevant imports. We will need basic Pyomo and IDAES components:" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:47 [INFO] idaes.init.fs.GLYCOL.properties: Starting initialization\n" - ] + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import pytest\n", + "from pyomo.environ import (\n", + " check_optimal_termination,\n", + " ConcreteModel,\n", + " Constraint,\n", + " Expression,\n", + " Objective,\n", + " maximize,\n", + " Var,\n", + " Set,\n", + " TransformationFactory,\n", + " value,\n", + " exp,\n", + " units as pyunits,\n", + ")\n", + "from pyomo.network import Arc\n", + "from idaes.core import FlowsheetBlock\n", + "from idaes.models.unit_models import Feed, SkeletonUnitModel, Mixer, Product\n", + "from idaes.core.util.model_statistics import degrees_of_freedom\n", + "from idaes.core.util.initialization import propagate_state\n", + "from idaes.core.solvers import get_solver\n", + "from pyomo.util.check_units import assert_units_consistent\n", + "\n", + "# import thermophysical properties\n", + "import eg_h2o_ideal as thermo_props\n", + "from idaes.models.properties.modular_properties import GenericParameterBlock\n", + "from idaes.core.util.constants import Constants" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:47 [INFO] idaes.init.fs.GLYCOL.properties: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2.2 Build Flowsheet\n", + "\n", + "We will build a simple model manually defining state variables relations entering and exiting the pervaporation unit. As shown below, we may define our pre-separation mixer as usual:" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:47 [INFO] idaes.init.fs.GLYCOL.properties: Property package initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# build the flowsheet\n", + "m = ConcreteModel()\n", + "m.fs = FlowsheetBlock(dynamic=False)\n", + "\n", + "m.fs.thermo_params = GenericParameterBlock(**thermo_props.config_dict)\n", + "\n", + "m.fs.WATER = Feed(property_package=m.fs.thermo_params)\n", + "m.fs.GLYCOL = Feed(property_package=m.fs.thermo_params)\n", + "\n", + "m.fs.M101 = Mixer(\n", + " property_package=m.fs.thermo_params, inlet_list=[\"water_feed\", \"glycol_feed\"]\n", + ")\n", + "\n", + "m.fs.RETENTATE = Product(property_package=m.fs.thermo_params)\n", + "m.fs.PERMEATE = Product(property_package=m.fs.thermo_params)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:47 [INFO] idaes.init.fs.GLYCOL: Initialization Complete.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2.2 Defining Skeleton Model and Connections\n", + "\n", + "Now that our flowsheet exists, we can manually define variables, units, constraints and ports for our custom pervaporation unit model. By using a Skeleton model, we avoid rigorous mass and energy balances and phase equilibrium which impact model tractability. Instead, we define state variable relations as below - note that we include the fluxes as outlet flow terms. In this model, the variables specify an `FpcTP` system where molar flow of each component, temperature and pressure are selected as state variables:" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", - "tol=1e-06\n", - "max_iter=200\n", - "\n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 11\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 0\n", - "\n", - "Total number of variables............................: 7\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 0\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 7\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 1.13e-16 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - "\n", - "Number of Iterations....: 0\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Constraint violation....: 1.1275702593849246e-16 1.1275702593849246e-16\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 1.1275702593849246e-16 1.1275702593849246e-16\n", - "\n", - "\n", - "Number of objective function evaluations = 1\n", - "Number of objective gradient evaluations = 1\n", - "Number of equality constraint evaluations = 1\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 1\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 0\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.000\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# define Skeleton model for pervaporation unit\n", + "m.fs.pervap = SkeletonUnitModel(dynamic=False)\n", + "m.fs.pervap.comp_list = Set(initialize=[\"water\", \"ethylene_glycol\"])\n", + "m.fs.pervap.phase_list = Set(initialize=[\"Liq\"])\n", + "\n", + "# input vars for skeleton\n", + "# m.fs.time is a pre-initialized Set belonging to the FlowsheetBlock; for dynamic=False, time=[0]\n", + "m.fs.pervap.flow_in = Var(\n", + " m.fs.time,\n", + " m.fs.pervap.phase_list,\n", + " m.fs.pervap.comp_list,\n", + " initialize=1.0,\n", + " units=pyunits.mol / pyunits.s,\n", + ")\n", + "m.fs.pervap.temperature_in = Var(m.fs.time, initialize=298.15, units=pyunits.K)\n", + "m.fs.pervap.pressure_in = Var(m.fs.time, initialize=101e3, units=pyunits.Pa)\n", + "\n", + "# output vars for skeleton\n", + "m.fs.pervap.perm_flow = Var(\n", + " m.fs.time,\n", + " m.fs.pervap.phase_list,\n", + " m.fs.pervap.comp_list,\n", + " initialize=1.0,\n", + " units=pyunits.mol / pyunits.s,\n", + ")\n", + "m.fs.pervap.ret_flow = Var(\n", + " m.fs.time,\n", + " m.fs.pervap.phase_list,\n", + " m.fs.pervap.comp_list,\n", + " initialize=1.0,\n", + " units=pyunits.mol / pyunits.s,\n", + ")\n", + "m.fs.pervap.temperature_out = Var(m.fs.time, initialize=298.15, units=pyunits.K)\n", + "m.fs.pervap.pressure_out = Var(m.fs.time, initialize=101e3, units=pyunits.Pa)\n", + "m.fs.pervap.vacuum = Var(m.fs.time, initialize=1.3e3, units=pyunits.Pa)\n", + "\n", + "# dictionaries relating state properties to custom variables\n", + "inlet_dict = {\n", + " \"flow_mol_phase_comp\": m.fs.pervap.flow_in,\n", + " \"temperature\": m.fs.pervap.temperature_in,\n", + " \"pressure\": m.fs.pervap.pressure_in,\n", + "}\n", + "retentate_dict = {\n", + " \"flow_mol_phase_comp\": m.fs.pervap.ret_flow,\n", + " \"temperature\": m.fs.pervap.temperature_out,\n", + " \"pressure\": m.fs.pervap.pressure_out,\n", + "}\n", + "permeate_dict = {\n", + " \"flow_mol_phase_comp\": m.fs.pervap.perm_flow,\n", + " \"temperature\": m.fs.pervap.temperature_out,\n", + " \"pressure\": m.fs.pervap.vacuum,\n", + "}\n", + "\n", + "m.fs.pervap.add_ports(name=\"inlet\", member_dict=inlet_dict)\n", + "m.fs.pervap.add_ports(name=\"retentate\", member_dict=retentate_dict)\n", + "m.fs.pervap.add_ports(name=\"permeate\", member_dict=permeate_dict)\n", + "\n", + "# internal vars for skeleton\n", + "energy_activation_dict = {\n", + " (0, \"Liq\", \"water\"): 51e3,\n", + " (0, \"Liq\", \"ethylene_glycol\"): 53e3,\n", + "}\n", + "m.fs.pervap.energy_activation = Var(\n", + " m.fs.time,\n", + " m.fs.pervap.phase_list,\n", + " m.fs.pervap.comp_list,\n", + " initialize=energy_activation_dict,\n", + " units=pyunits.J / pyunits.mol,\n", + ")\n", + "m.fs.pervap.energy_activation.fix()\n", + "\n", + "permeance_dict = {\n", + " (0, \"Liq\", \"water\"): 5611320,\n", + " (0, \"Liq\", \"ethylene_glycol\"): 22358.88,\n", + "} # calculated from literature data\n", + "m.fs.pervap.permeance = Var(\n", + " m.fs.time,\n", + " m.fs.pervap.phase_list,\n", + " m.fs.pervap.comp_list,\n", + " initialize=permeance_dict,\n", + " units=pyunits.mol / pyunits.s / pyunits.m**2,\n", + ")\n", + "m.fs.pervap.permeance.fix()\n", + "\n", + "m.fs.pervap.area = Var(m.fs.time, initialize=6, units=pyunits.m**2)\n", + "m.fs.pervap.area.fix()\n", + "\n", + "latent_heat_dict = {\n", + " (0, \"Liq\", \"water\"): 40.660e3,\n", + " (0, \"Liq\", \"ethylene_glycol\"): 56.9e3,\n", + "}\n", + "m.fs.pervap.latent_heat_of_vaporization = Var(\n", + " m.fs.time,\n", + " m.fs.pervap.phase_list,\n", + " m.fs.pervap.comp_list,\n", + " initialize=latent_heat_dict,\n", + " units=pyunits.J / pyunits.mol,\n", + ")\n", + "m.fs.pervap.latent_heat_of_vaporization.fix()\n", + "m.fs.pervap.heat_duty = Var(\n", + " m.fs.time, initialize=1, units=pyunits.J / pyunits.s\n", + ") # we will calculate this later" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "Custom initialization routine complete: Ipopt 3.13.2\\x3a Optimal Solution Found\n", - "2023-11-02 10:27:47 [INFO] idaes.init.fs.PERMEATE.properties: Starting initialization\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's define our surrogate equations for flux and permeance, and link them to the port variables. Users can use this structure to write custom relations between inlet and outlet streams; for example, here we define the outlet flow of the pervaporation unit as a sum of the inlet flow and calculated recovery fluxes. By defining model constraints in lieu of rigorous mass balances, we add the flux as a custom mass balance term via an empirical correlation and calculate only the condensation duty rather than implementing full energy balance calculations:" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:47 [INFO] idaes.init.fs.PERMEATE.properties: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Surrogate and first principles model equations\n", + "\n", + "# flux equation (gas constant is defined as J/mol-K)\n", + "\n", + "\n", + "def rule_permeate_flux(pervap, t, p, i):\n", + " return pervap.permeate.flow_mol_phase_comp[t, p, i] / pervap.area[t] == (\n", + " pervap.permeance[t, p, i]\n", + " * exp(\n", + " -pervap.energy_activation[t, p, i]\n", + " / (Constants.gas_constant * pervap.inlet.temperature[t])\n", + " )\n", + " )\n", + "\n", + "\n", + "m.fs.pervap.eq_permeate_flux = Constraint(\n", + " m.fs.time, m.fs.pervap.phase_list, m.fs.pervap.comp_list, rule=rule_permeate_flux\n", + ")\n", + "\n", + "# permeate condensation equation\n", + "# heat duty based on condensing all of permeate product vapor\n", + "# avoids the need for a Heater or HeatExchanger unit model\n", + "\n", + "\n", + "def rule_duty(pervap, t):\n", + " return pervap.heat_duty[t] == sum(\n", + " pervap.latent_heat_of_vaporization[t, p, i]\n", + " * pervap.permeate.flow_mol_phase_comp[t, p, i]\n", + " for p in pervap.phase_list\n", + " for i in pervap.comp_list\n", + " )\n", + "\n", + "\n", + "m.fs.pervap.eq_duty = Constraint(m.fs.time, rule=rule_duty)\n", + "\n", + "# flow equation adding total recovery as a custom mass balance term\n", + "def rule_retentate_flow(pervap, t, p, i):\n", + " return pervap.retentate.flow_mol_phase_comp[t, p, i] == (\n", + " pervap.inlet.flow_mol_phase_comp[t, p, i]\n", + " - pervap.permeate.flow_mol_phase_comp[t, p, i]\n", + " )\n", + "\n", + "\n", + "m.fs.pervap.eq_retentate_flow = Constraint(\n", + " m.fs.time, m.fs.pervap.phase_list, m.fs.pervap.comp_list, rule=rule_retentate_flow\n", + ")" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:47 [INFO] idaes.init.fs.PERMEATE.properties: Property package initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, let's define the Arc connecting our two models (IDAES Mixer and custom Pervaporation) and build the flowsheet network:" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:47 [INFO] idaes.init.fs.PERMEATE: Initialization Complete.\n" - ] + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.s01 = Arc(source=m.fs.WATER.outlet, destination=m.fs.M101.water_feed)\n", + "m.fs.s02 = Arc(source=m.fs.GLYCOL.outlet, destination=m.fs.M101.glycol_feed)\n", + "m.fs.s03 = Arc(source=m.fs.M101.outlet, destination=m.fs.pervap.inlet)\n", + "m.fs.s04 = Arc(source=m.fs.pervap.permeate, destination=m.fs.PERMEATE.inlet)\n", + "m.fs.s05 = Arc(source=m.fs.pervap.retentate, destination=m.fs.RETENTATE.inlet)\n", + "TransformationFactory(\"network.expand_arcs\").apply_to(m)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:47 [INFO] idaes.init.fs.RETENTATE.properties: Starting initialization\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's see how many degrees of freedom the flowsheet has:" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:47 [INFO] idaes.init.fs.RETENTATE.properties: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(degrees_of_freedom(m))" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:47 [INFO] idaes.init.fs.RETENTATE.properties: Property package initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2.3 Inlet Specifications\n", + "\n", + "To obtain a square problem with zero degrees of freedom, we specify the inlet water flow, ethylene glycol flow, temperature and pressure for each feed stream, as well as the permeate stream pressure:" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:27:47 [INFO] idaes.init.fs.RETENTATE: Initialization Complete.\n" - ] + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.WATER.outlet.flow_mol_phase_comp[0, \"Liq\", \"water\"].fix(0.34) # mol/s\n", + "m.fs.WATER.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"].fix(1e-6) # mol/s\n", + "m.fs.WATER.outlet.temperature.fix(318.15) # K\n", + "m.fs.WATER.outlet.pressure.fix(101.325e3) # Pa\n", + "\n", + "m.fs.GLYCOL.outlet.flow_mol_phase_comp[0, \"Liq\", \"water\"].fix(1e-6) # mol/s\n", + "m.fs.GLYCOL.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"].fix(0.66) # mol/s\n", + "m.fs.GLYCOL.outlet.temperature.fix(318.15) # K\n", + "m.fs.GLYCOL.outlet.pressure.fix(101.325e3) # Pa" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", - "tol=1e-06\n", - "max_iter=200\n", - "\n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 113\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 74\n", - "\n", - "Total number of variables............................: 47\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 33\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 47\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 7.37e+07 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 7.03e+05 2.30e+01 -1.0 1.01e+05 - 5.55e-01 9.90e-01h 1\n", - " 2 0.0000000e+00 2.33e+05 1.02e+02 -1.0 1.00e+03 - 7.60e-01 6.58e-01h 1\n", - " 3 0.0000000e+00 6.05e+03 5.91e+01 -1.0 1.56e+03 - 9.90e-01 9.90e-01h 1\n", - " 4 0.0000000e+00 5.50e+01 7.15e+02 -1.0 1.97e+03 - 9.90e-01 1.00e+00h 1\n", - " 5 0.0000000e+00 5.29e-05 2.18e+00 -1.0 1.90e+02 - 1.00e+00 1.00e+00h 1\n", - " 6 0.0000000e+00 4.28e-10 5.17e-03 -3.8 2.59e-01 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 6\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Constraint violation....: 2.1421975304747320e-10 4.2843950609494641e-10\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 2.1421975304747320e-10 4.2843950609494641e-10\n", - "\n", - "\n", - "Number of objective function evaluations = 7\n", - "Number of objective gradient evaluations = 7\n", - "Number of equality constraint evaluations = 7\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 7\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 6\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.000\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n" - ] - } - ], - "source": [ - "# Add this to the imports\n", - "from pyomo.util.calc_var_value import calculate_variable_from_constraint\n", - "\n", - "\n", - "def my_initialize(unit, **kwargs):\n", - " # Callback for user provided initialization sequence\n", - " # Fix the inlet state\n", - " unit.inlet.flow_mol_phase_comp.fix()\n", - " unit.inlet.pressure.fix()\n", - " unit.inlet.temperature.fix()\n", - "\n", - " # Calculate the values of the remaining variables\n", - " for t in m.fs.time:\n", - "\n", - " calculate_variable_from_constraint(\n", - " unit.permeate.flow_mol_phase_comp[t, \"Liq\", \"water\"],\n", - " unit.eq_permeate_flux[t, \"Liq\", \"water\"],\n", - " )\n", - "\n", - " calculate_variable_from_constraint(\n", - " unit.permeate.flow_mol_phase_comp[t, \"Liq\", \"ethylene_glycol\"],\n", - " unit.eq_permeate_flux[t, \"Liq\", \"ethylene_glycol\"],\n", - " )\n", - "\n", - " calculate_variable_from_constraint(unit.heat_duty[t], unit.eq_duty[t])\n", - "\n", - " calculate_variable_from_constraint(\n", - " unit.retentate.flow_mol_phase_comp[t, \"Liq\", \"water\"],\n", - " unit.eq_retentate_flow[t, \"Liq\", \"water\"],\n", - " )\n", - "\n", - " calculate_variable_from_constraint(\n", - " unit.retentate.flow_mol_phase_comp[t, \"Liq\", \"ethylene_glycol\"],\n", - " unit.eq_retentate_flow[t, \"Liq\", \"ethylene_glycol\"],\n", - " )\n", - "\n", - " calculate_variable_from_constraint(\n", - " unit.retentate.temperature[t], unit.temperature_out_calculation[t]\n", - " )\n", - "\n", - " calculate_variable_from_constraint(\n", - " unit.retentate.pressure[t], unit.pressure_out_calculation[t]\n", - " )\n", - "\n", - " assert degrees_of_freedom(unit) == 0\n", - " if degrees_of_freedom(unit) == 0:\n", - " res = solver.solve(unit, tee=True)\n", - " unit.inlet.flow_mol_phase_comp.unfix()\n", - " unit.inlet.temperature.unfix()\n", - " unit.inlet.pressure.unfix()\n", - " print(\"Custom initialization routine complete: \", res.solver.message)\n", - "\n", - "\n", - "solver = get_solver()\n", - "\n", - "m.fs.WATER.initialize()\n", - "propagate_state(m.fs.s01)\n", - "\n", - "m.fs.GLYCOL.initialize()\n", - "propagate_state(m.fs.s02)\n", - "\n", - "m.fs.pervap.config.initializer = my_initialize\n", - "my_initialize(m.fs.pervap)\n", - "propagate_state(m.fs.s03)\n", - "\n", - "m.fs.PERMEATE.initialize()\n", - "propagate_state(m.fs.s04)\n", - "\n", - "m.fs.RETENTATE.initialize()\n", - "\n", - "results = solver.solve(m, tee=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's check the results:" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Additionally, we need to pass rules defining the temperature and pressure outlets of the pervaporation unit:" + ] + }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "====================================================================================\n", - "Unit : fs.WATER Time: 0.0\n", - "------------------------------------------------------------------------------------\n", - " Stream Table\n", - " Units Outlet \n", - " Molar Flowrate ('Liq', 'water') mole / second 0.34000\n", - " Molar Flowrate ('Liq', 'ethylene_glycol') mole / second 1.0000e-06\n", - " Temperature kelvin 318.15\n", - " Pressure pascal 1.0132e+05\n", - "====================================================================================\n", - "\n", - "====================================================================================\n", - "Unit : fs.GLYCOL Time: 0.0\n", - "------------------------------------------------------------------------------------\n", - " Stream Table\n", - " Units Outlet \n", - " Molar Flowrate ('Liq', 'water') mole / second 1.0000e-06\n", - " Molar Flowrate ('Liq', 'ethylene_glycol') mole / second 0.66000\n", - " Temperature kelvin 318.15\n", - " Pressure pascal 1.0132e+05\n", - "====================================================================================\n", - "\n", - "====================================================================================\n", - "Unit : fs.PERMEATE Time: 0.0\n", - "------------------------------------------------------------------------------------\n", - " Stream Table\n", - " Units Inlet \n", - " Molar Flowrate ('Liq', 'water') mole / second 0.14259\n", - " Molar Flowrate ('Liq', 'ethylene_glycol') mole / second 0.00026675\n", - " Temperature kelvin 318.15\n", - " Pressure pascal 1300.0\n", - "====================================================================================\n", - "\n", - "====================================================================================\n", - "Unit : fs.RETENTATE Time: 0.0\n", - "------------------------------------------------------------------------------------\n", - " Stream Table\n", - " Units Inlet \n", - " Molar Flowrate ('Liq', 'water') mole / second 0.19742\n", - " Molar Flowrate ('Liq', 'ethylene_glycol') mole / second 0.65973\n", - " Temperature kelvin 318.15\n", - " Pressure pascal 1.0132e+05\n", - "====================================================================================\n" - ] - } - ], - "source": [ - "# print results\n", - "\n", - "m.fs.WATER.report()\n", - "m.fs.GLYCOL.report()\n", - "m.fs.PERMEATE.report()\n", - "m.fs.RETENTATE.report()" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Add a constraint to calculate the outlet temperature.\n", + "# Here, assume outlet temperature is the same as inlet temperature for illustration\n", + "# in reality, temperature change from latent heat loss through membrane is negligible\n", + "\n", + "\n", + "def rule_temp_out(pervap, t):\n", + " return pervap.inlet.temperature[t] == pervap.retentate.temperature[t]\n", + "\n", + "\n", + "m.fs.pervap.temperature_out_calculation = Constraint(m.fs.time, rule=rule_temp_out)\n", + "\n", + "# Add a constraint to calculate the retentate pressure\n", + "# Here, assume the retentate pressure is the same as the inlet pressure for illustration\n", + "# in reality, pressure change from mass loss through membrane is negligible\n", + "\n", + "\n", + "def rule_pres_out(pervap, t):\n", + " return pervap.inlet.pressure[t] == pervap.retentate.pressure[t]\n", + "\n", + "\n", + "m.fs.pervap.pressure_out_calculation = Constraint(m.fs.time, rule=rule_pres_out)\n", + "\n", + "# fix permeate vacuum pressure\n", + "m.fs.PERMEATE.inlet.pressure.fix(1.3e3)\n", + "\n", + "assert degrees_of_freedom(m) == 0" + ] + }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "Inlet water mole fraction: 0.34000031999936\n", - "Permeate water mole fraction: 0.9981326967912869\n", - "Separation factor: 1037.61881493386\n", - "Condensation duty: 5.81271115195759 kW\n", - "Duty per mole water recovered: 0.011324013423297915 kW-h / mol\n" - ] - } - ], - "source": [ - "# separation factor for results analysis\n", - "m.fs.inlet_water_frac = Expression(\n", - " expr=(\n", - " m.fs.pervap.inlet.flow_mol_phase_comp[0, \"Liq\", \"water\"]\n", - " / sum(\n", - " m.fs.pervap.inlet.flow_mol_phase_comp[0, \"Liq\", i]\n", - " for i in m.fs.pervap.comp_list\n", - " )\n", - " )\n", - ")\n", - "m.fs.permeate_water_frac = Expression(\n", - " expr=(\n", - " m.fs.pervap.permeate.flow_mol_phase_comp[0, \"Liq\", \"water\"]\n", - " / sum(\n", - " m.fs.pervap.permeate.flow_mol_phase_comp[0, \"Liq\", i]\n", - " for i in m.fs.pervap.comp_list\n", - " )\n", - " )\n", - ")\n", - "m.fs.separation_factor = Expression(\n", - " expr=(m.fs.permeate_water_frac / (1 - m.fs.permeate_water_frac))\n", - " / (m.fs.inlet_water_frac / (1 - m.fs.inlet_water_frac))\n", - ")\n", - "\n", - "print(f\"Inlet water mole fraction: {value(m.fs.inlet_water_frac)}\")\n", - "print(f\"Permeate water mole fraction: {value(m.fs.permeate_water_frac)}\")\n", - "print(f\"Separation factor: {value(m.fs.separation_factor)}\")\n", - "print(f\"Condensation duty: {value(m.fs.pervap.heat_duty[0]/1000)} kW\")\n", - "print(\n", - " f\"Duty per mole water recovered: {value(m.fs.pervap.heat_duty[0]/(1000*m.fs.PERMEATE.inlet.flow_mol_phase_comp[0, 'Liq', 'water']*3600))} kW-h / mol\"\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "# check results\n", - "assert check_optimal_termination(results)\n", - "assert_units_consistent(m)\n", - "\n", - "assert value(\n", - " m.fs.PERMEATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"water\"]\n", - ") == pytest.approx(0.1426, rel=1e-3)\n", - "assert value(\n", - " m.fs.PERMEATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"]\n", - ") == pytest.approx(0.0002667, rel=1e-3)\n", - "assert value(\n", - " m.fs.RETENTATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"water\"]\n", - ") == pytest.approx(0.1974, rel=1e-3)\n", - "assert value(\n", - " m.fs.RETENTATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"]\n", - ") == pytest.approx(0.6597, rel=1e-3)\n", - "assert value(m.fs.separation_factor) == pytest.approx(1038, rel=1e-3)\n", - "assert value(m.fs.pervap.heat_duty[0]) == pytest.approx(5813, rel=1e-3)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 3. Optimization\n", - "\n", - "Suppose we wish to characterize the membrane behavior by calculating the maximum inlet water mole fraction allowing a separation factor of at least 100 (typical value for high-efficiency separation processes such as gas separation of CO2/N2). We need to fix total inlet flow to ensure physically-sound solutions. We can quickly modify and resolve the model, and check some key results:" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2.4 Custom Initialization\n", + "In addition to allowing custom variable and constraint definitions, the Skeleton model enables implementation of a custom initialization scheme. Complex unit operations may present unique tractability issues, and users have precise control over piecewise unit model solving." + ] + }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", - "tol=1e-06\n", - "max_iter=200\n", - "\n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 121\n", - "Number of nonzeros in inequality constraint Jacobian.: 4\n", - "Number of nonzeros in Lagrangian Hessian.............: 88\n", - "\n", - "Total number of variables............................: 49\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 35\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 48\n", - "Total number of inequality constraints...............: 1\n", - " inequality constraints with only lower bounds: 1\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 -3.4000032e-01 7.27e+03 1.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 -3.7368840e-01 7.00e+02 5.28e+01 -1.0 4.41e-02 - 9.90e-01 8.91e-01h 1\n", - " 2 -5.0140067e-01 2.19e+02 1.12e+02 -1.0 2.27e-01 - 9.90e-01 6.56e-01h 1\n", - " 3 -6.1937184e-01 8.96e+00 1.15e+04 -1.0 1.39e-01 - 9.91e-01 9.93e-01h 1\n", - " 4 -6.1863718e-01 1.51e-02 8.34e+01 -1.0 1.28e-03 - 1.00e+00 9.99e-01h 1\n", - " 5 -6.1150206e-01 2.30e-04 7.88e+02 -1.0 8.32e-03 - 1.00e+00 1.00e+00f 1\n", - " 6 -6.1019582e-01 1.79e-06 1.61e+01 -1.0 1.52e-03 - 1.00e+00 1.00e+00h 1\n", - " 7 -7.3642276e-01 1.05e-02 2.29e+04 -2.5 1.47e-01 - 7.70e-01 1.00e+00f 1\n", - " 8 -8.1765712e-01 2.02e-02 9.69e+02 -2.5 1.47e-01 - 1.00e+00 6.43e-01f 1\n", - " 9 -8.3576869e-01 3.85e-03 4.60e+01 -2.5 2.11e-02 - 1.00e+00 1.00e+00f 1\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 10 -8.3954012e-01 1.72e-04 1.05e+00 -2.5 4.40e-03 - 1.00e+00 1.00e+00h 1\n", - " 11 -8.3930724e-01 8.78e-08 2.93e-03 -2.5 2.72e-04 - 1.00e+00 1.00e+00h 1\n", - " 12 -8.4239161e-01 6.01e-05 9.69e+01 -3.8 3.73e-03 - 1.00e+00 9.63e-01f 1\n", - " 13 -8.4225198e-01 7.26e-08 1.37e-02 -3.8 1.63e-04 - 1.00e+00 1.00e+00f 1\n", - " 14 -8.4225232e-01 5.82e-11 3.86e-08 -3.8 3.92e-07 - 1.00e+00 1.00e+00h 1\n", - " 15 -8.4240230e-01 1.48e-07 2.22e-02 -5.7 1.75e-04 - 1.00e+00 1.00e+00f 1\n", - " 16 -8.4240161e-01 5.82e-11 1.66e-08 -5.7 8.12e-07 - 1.00e+00 1.00e+00h 1\n", - " 17 -8.4240336e-01 1.16e-10 3.07e-06 -7.0 2.05e-06 - 1.00e+00 1.00e+00f 1\n", - " 18 -8.4240336e-01 5.82e-11 4.20e-11 -7.0 5.41e-07 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 18\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: -8.4240336290561868e-01 -8.4240336290561868e-01\n", - "Dual infeasibility......: 4.1950443119276315e-11 4.1950443119276315e-11\n", - "Constraint violation....: 1.2786210408238111e-14 5.8207660913467407e-11\n", - "Complementarity.........: 9.0909090909094912e-08 9.0909090909094912e-08\n", - "Overall NLP error.......: 9.0909090909094912e-08 9.0909090909094912e-08\n", - "\n", - "\n", - "Number of objective function evaluations = 19\n", - "Number of objective gradient evaluations = 19\n", - "Number of equality constraint evaluations = 19\n", - "Number of inequality constraint evaluations = 19\n", - "Number of equality constraint Jacobian evaluations = 19\n", - "Number of inequality constraint Jacobian evaluations = 19\n", - "Number of Lagrangian Hessian evaluations = 18\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.003\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n" - ] - } - ], - "source": [ - "# unfix inlet flows but fix total to prevent divergence during solve\n", - "m.fs.WATER.outlet.flow_mol_phase_comp[0, \"Liq\", \"water\"].unfix()\n", - "m.fs.GLYCOL.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"].unfix()\n", - "m.fs.total_flow = Constraint(\n", - " expr=m.fs.WATER.outlet.flow_mol_phase_comp[0, \"Liq\", \"water\"]\n", - " + m.fs.GLYCOL.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"]\n", - " == 1 * pyunits.mol / pyunits.s\n", - ")\n", - "\n", - "# set criteria for separation factor\n", - "m.fs.sep_min = Constraint(expr=m.fs.separation_factor >= 100)\n", - "\n", - "# set objective - defaults to minimization\n", - "m.fs.obj = Objective(expr=m.fs.inlet_water_frac, sense=maximize)\n", - "\n", - "results = solver.solve(m, tee=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Add this to the imports\n", + "from pyomo.util.calc_var_value import calculate_variable_from_constraint\n", + "\n", + "\n", + "def my_initialize(unit, **kwargs):\n", + " # Callback for user provided initialization sequence\n", + " # Fix the inlet state\n", + " unit.inlet.flow_mol_phase_comp.fix()\n", + " unit.inlet.pressure.fix()\n", + " unit.inlet.temperature.fix()\n", + "\n", + " # Calculate the values of the remaining variables\n", + " for t in m.fs.time:\n", + "\n", + " calculate_variable_from_constraint(\n", + " unit.permeate.flow_mol_phase_comp[t, \"Liq\", \"water\"],\n", + " unit.eq_permeate_flux[t, \"Liq\", \"water\"],\n", + " )\n", + "\n", + " calculate_variable_from_constraint(\n", + " unit.permeate.flow_mol_phase_comp[t, \"Liq\", \"ethylene_glycol\"],\n", + " unit.eq_permeate_flux[t, \"Liq\", \"ethylene_glycol\"],\n", + " )\n", + "\n", + " calculate_variable_from_constraint(unit.heat_duty[t], unit.eq_duty[t])\n", + "\n", + " calculate_variable_from_constraint(\n", + " unit.retentate.flow_mol_phase_comp[t, \"Liq\", \"water\"],\n", + " unit.eq_retentate_flow[t, \"Liq\", \"water\"],\n", + " )\n", + "\n", + " calculate_variable_from_constraint(\n", + " unit.retentate.flow_mol_phase_comp[t, \"Liq\", \"ethylene_glycol\"],\n", + " unit.eq_retentate_flow[t, \"Liq\", \"ethylene_glycol\"],\n", + " )\n", + "\n", + " calculate_variable_from_constraint(\n", + " unit.retentate.temperature[t], unit.temperature_out_calculation[t]\n", + " )\n", + "\n", + " calculate_variable_from_constraint(\n", + " unit.retentate.pressure[t], unit.pressure_out_calculation[t]\n", + " )\n", + "\n", + " assert degrees_of_freedom(unit) == 0\n", + " if degrees_of_freedom(unit) == 0:\n", + " res = solver.solve(unit, tee=True)\n", + " unit.inlet.flow_mol_phase_comp.unfix()\n", + " unit.inlet.temperature.unfix()\n", + " unit.inlet.pressure.unfix()\n", + " print(\"Custom initialization routine complete: \", res.solver.message)\n", + "\n", + "\n", + "solver = get_solver()\n", + "\n", + "m.fs.WATER.initialize()\n", + "propagate_state(m.fs.s01)\n", + "\n", + "m.fs.GLYCOL.initialize()\n", + "propagate_state(m.fs.s02)\n", + "\n", + "m.fs.pervap.config.initializer = my_initialize\n", + "my_initialize(m.fs.pervap)\n", + "propagate_state(m.fs.s03)\n", + "\n", + "m.fs.PERMEATE.initialize()\n", + "propagate_state(m.fs.s04)\n", + "\n", + "m.fs.RETENTATE.initialize()\n", + "\n", + "results = solver.solve(m, tee=True)" + ] + }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "====================================================================================\n", - "Unit : fs.WATER Time: 0.0\n", - "------------------------------------------------------------------------------------\n", - " Stream Table\n", - " Units Outlet \n", - " Molar Flowrate ('Liq', 'water') mole / second 0.84240\n", - " Molar Flowrate ('Liq', 'ethylene_glycol') mole / second 1.0000e-06\n", - " Temperature kelvin 318.15\n", - " Pressure pascal 1.0132e+05\n", - "====================================================================================\n", - "\n", - "====================================================================================\n", - "Unit : fs.GLYCOL Time: 0.0\n", - "------------------------------------------------------------------------------------\n", - " Stream Table\n", - " Units Outlet \n", - " Molar Flowrate ('Liq', 'water') mole / second 1.0000e-06\n", - " Molar Flowrate ('Liq', 'ethylene_glycol') mole / second 0.15760\n", - " Temperature kelvin 318.15\n", - " Pressure pascal 1.0132e+05\n", - "====================================================================================\n", - "\n", - "====================================================================================\n", - "Unit : fs.PERMEATE Time: 0.0\n", - "------------------------------------------------------------------------------------\n", - " Stream Table\n", - " Units Inlet \n", - " Molar Flowrate ('Liq', 'water') mole / second 0.14259\n", - " Molar Flowrate ('Liq', 'ethylene_glycol') mole / second 0.00026675\n", - " Temperature kelvin 318.15\n", - " Pressure pascal 1300.0\n", - "====================================================================================\n", - "\n", - "====================================================================================\n", - "Unit : fs.RETENTATE Time: 0.0\n", - "------------------------------------------------------------------------------------\n", - " Stream Table\n", - " Units Inlet \n", - " Molar Flowrate ('Liq', 'water') mole / second 0.69982\n", - " Molar Flowrate ('Liq', 'ethylene_glycol') mole / second 0.15733\n", - " Temperature kelvin 318.15\n", - " Pressure pascal 1.0132e+05\n", - "====================================================================================\n" - ] - } - ], - "source": [ - "# print results\n", - "\n", - "m.fs.WATER.report()\n", - "m.fs.GLYCOL.report()\n", - "m.fs.PERMEATE.report()\n", - "m.fs.RETENTATE.report()" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's check the results:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# print results\n", + "\n", + "m.fs.WATER.report()\n", + "m.fs.GLYCOL.report()\n", + "m.fs.PERMEATE.report()\n", + "m.fs.RETENTATE.report()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# separation factor for results analysis\n", + "m.fs.inlet_water_frac = Expression(\n", + " expr=(\n", + " m.fs.pervap.inlet.flow_mol_phase_comp[0, \"Liq\", \"water\"]\n", + " / sum(\n", + " m.fs.pervap.inlet.flow_mol_phase_comp[0, \"Liq\", i]\n", + " for i in m.fs.pervap.comp_list\n", + " )\n", + " )\n", + ")\n", + "m.fs.permeate_water_frac = Expression(\n", + " expr=(\n", + " m.fs.pervap.permeate.flow_mol_phase_comp[0, \"Liq\", \"water\"]\n", + " / sum(\n", + " m.fs.pervap.permeate.flow_mol_phase_comp[0, \"Liq\", i]\n", + " for i in m.fs.pervap.comp_list\n", + " )\n", + " )\n", + ")\n", + "m.fs.separation_factor = Expression(\n", + " expr=(m.fs.permeate_water_frac / (1 - m.fs.permeate_water_frac))\n", + " / (m.fs.inlet_water_frac / (1 - m.fs.inlet_water_frac))\n", + ")\n", + "\n", + "print(f\"Inlet water mole fraction: {value(m.fs.inlet_water_frac)}\")\n", + "print(f\"Permeate water mole fraction: {value(m.fs.permeate_water_frac)}\")\n", + "print(f\"Separation factor: {value(m.fs.separation_factor)}\")\n", + "print(f\"Condensation duty: {value(m.fs.pervap.heat_duty[0]/1000)} kW\")\n", + "print(\n", + " f\"Duty per mole water recovered: {value(m.fs.pervap.heat_duty[0]/(1000*m.fs.PERMEATE.inlet.flow_mol_phase_comp[0, 'Liq', 'water']*3600))} kW-h / mol\"\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# check results\n", + "assert check_optimal_termination(results)\n", + "assert_units_consistent(m)\n", + "\n", + "assert value(\n", + " m.fs.PERMEATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"water\"]\n", + ") == pytest.approx(0.14258566, rel=1e-5)\n", + "assert value(\n", + " m.fs.PERMEATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"]\n", + ") == pytest.approx(0.000266748768, rel=1e-5)\n", + "assert value(\n", + " m.fs.RETENTATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"water\"]\n", + ") == pytest.approx(0.19741534, rel=1e-5)\n", + "assert value(\n", + " m.fs.RETENTATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"]\n", + ") == pytest.approx(0.65973425, rel=1e-5)\n", + "assert value(m.fs.separation_factor) == pytest.approx(1037.6188, rel=1e-5)\n", + "assert value(m.fs.pervap.heat_duty[0]) == pytest.approx(5812.7111, rel=1e-5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 3. Optimization\n", + "\n", + "Suppose we wish to characterize the membrane behavior by calculating the maximum inlet water mole fraction allowing a separation factor of at least 100 (typical value for high-efficiency separation processes such as gas separation of CO2/N2). We need to fix total inlet flow to ensure physically-sound solutions. We can quickly modify and resolve the model, and check some key results:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# unfix inlet flows but fix total to prevent divergence during solve\n", + "m.fs.WATER.outlet.flow_mol_phase_comp[0, \"Liq\", \"water\"].unfix()\n", + "m.fs.GLYCOL.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"].unfix()\n", + "m.fs.total_flow = Constraint(\n", + " expr=m.fs.WATER.outlet.flow_mol_phase_comp[0, \"Liq\", \"water\"]\n", + " + m.fs.GLYCOL.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"]\n", + " == 1 * pyunits.mol / pyunits.s\n", + ")\n", + "\n", + "# set criteria for separation factor\n", + "m.fs.sep_min = Constraint(expr=m.fs.separation_factor >= 100)\n", + "\n", + "# set objective - defaults to minimization\n", + "m.fs.obj = Objective(expr=m.fs.inlet_water_frac, sense=maximize)\n", + "\n", + "results = solver.solve(m, tee=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# print results\n", + "\n", + "m.fs.WATER.report()\n", + "m.fs.GLYCOL.report()\n", + "m.fs.PERMEATE.report()\n", + "m.fs.RETENTATE.report()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(f\"Inlet water mole fraction: {value(m.fs.inlet_water_frac)}\")\n", + "print(f\"Permeate water mole fraction: {value(m.fs.permeate_water_frac)}\")\n", + "print(f\"Separation factor: {value(m.fs.separation_factor)}\")\n", + "print(f\"Condensation duty: {value(m.fs.pervap.heat_duty[0]/1000)} kW\")\n", + "print(\n", + " f\"Duty per mole water recovered: {value(m.fs.pervap.heat_duty[0]/(1000*m.fs.PERMEATE.inlet.flow_mol_phase_comp[0, 'Liq', 'water']*3600))} kW-h / mol\"\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# check results\n", + "assert check_optimal_termination(results)\n", + "assert_units_consistent(m)\n", + "\n", + "assert value(\n", + " m.fs.PERMEATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"water\"]\n", + ") == pytest.approx(0.14258566, rel=1e-5)\n", + "assert value(\n", + " m.fs.PERMEATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"]\n", + ") == pytest.approx(0.000266748768, rel=1e-5)\n", + "assert value(\n", + " m.fs.RETENTATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"water\"]\n", + ") == pytest.approx(0.69981938, rel=1e-5)\n", + "assert value(\n", + " m.fs.RETENTATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"]\n", + ") == pytest.approx(0.15733020, rel=1e-5)\n", + "assert value(m.fs.separation_factor) == pytest.approx(100.000067, rel=1e-5)\n", + "assert value(m.fs.pervap.heat_duty[0]) == pytest.approx(5812.7111, rel=1e-5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 4. Summary\n", + "\n", + "The IDAES Skeleton Unit Model is a powerful tool for implementing relatively simple first-princples, surrogate-based or empirical unit operations. More crucially, users can add their own custom models and integrate them into a larger IDAES flowsheet without adding control volumes or rigorous flow balance and equilibrium calculations when not required. The pervaporation example displays a case where all model equations are empirical correlations or simple manual calculations, with a small number of state variable and port connections, and the Skeleton model avoids complex calculations that impact model tractability. The example also demonstrates adding a custom initialization scheme to handle internally model degrees of freedom, a feature providing greater user control than with most IDAES unit models." + ] + }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "Inlet water mole fraction: 0.8424033629056187\n", - "Permeate water mole fraction: 0.9981326967914326\n", - "Separation factor: 100.00006747653647\n", - "Condensation duty: 5.812711140380676 kW\n", - "Duty per mole water recovered: 0.011324013423295606 kW-h / mol\n" - ] + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "celltoolbar": "Tags", + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.18" } - ], - "source": [ - "print(f\"Inlet water mole fraction: {value(m.fs.inlet_water_frac)}\")\n", - "print(f\"Permeate water mole fraction: {value(m.fs.permeate_water_frac)}\")\n", - "print(f\"Separation factor: {value(m.fs.separation_factor)}\")\n", - "print(f\"Condensation duty: {value(m.fs.pervap.heat_duty[0]/1000)} kW\")\n", - "print(\n", - " f\"Duty per mole water recovered: {value(m.fs.pervap.heat_duty[0]/(1000*m.fs.PERMEATE.inlet.flow_mol_phase_comp[0, 'Liq', 'water']*3600))} kW-h / mol\"\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [], - "source": [ - "# check results\n", - "assert check_optimal_termination(results)\n", - "assert_units_consistent(m)\n", - "\n", - "assert value(\n", - " m.fs.PERMEATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"water\"]\n", - ") == pytest.approx(0.1426, rel=1e-3)\n", - "assert value(\n", - " m.fs.PERMEATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"]\n", - ") == pytest.approx(0.0002667, rel=1e-3)\n", - "assert value(\n", - " m.fs.RETENTATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"water\"]\n", - ") == pytest.approx(0.6998, rel=1e-3)\n", - "assert value(\n", - " m.fs.RETENTATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"]\n", - ") == pytest.approx(0.1573, rel=1e-3)\n", - "assert value(m.fs.separation_factor) == pytest.approx(100.0, rel=1e-3)\n", - "assert value(m.fs.pervap.heat_duty[0]) == pytest.approx(5813, rel=1e-3)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 4. Summary\n", - "\n", - "The IDAES Skeleton Unit Model is a powerful tool for implementing relatively simple first-princples, surrogate-based or empirical unit operations. More crucially, users can add their own custom models and integrate them into a larger IDAES flowsheet without adding control volumes or rigorous flow balance and equilibrium calculations when not required. The pervaporation example displays a case where all model equations are empirical correlations or simple manual calculations, with a small number of state variable and port connections, and the Skeleton model avoids complex calculations that impact model tractability. The example also demonstrates adding a custom initialization scheme to handle internally model degrees of freedom, a feature providing greater user control than with most IDAES unit models." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "celltoolbar": "Tags", - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.5" - } - }, - "nbformat": 4, - "nbformat_minor": 3 -} + "nbformat": 4, + "nbformat_minor": 3 +} \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/unit_models/operations/skeleton_unit_test.ipynb b/idaes_examples/notebooks/docs/unit_models/operations/skeleton_unit_test.ipynb index 9d9adfbe..e3cbb4d7 100644 --- a/idaes_examples/notebooks/docs/unit_models/operations/skeleton_unit_test.ipynb +++ b/idaes_examples/notebooks/docs/unit_models/operations/skeleton_unit_test.ipynb @@ -583,18 +583,18 @@ "\n", "assert value(\n", " m.fs.PERMEATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"water\"]\n", - ") == pytest.approx(0.1426, rel=1e-3)\n", + ") == pytest.approx(0.14258566, rel=1e-5)\n", "assert value(\n", " m.fs.PERMEATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"]\n", - ") == pytest.approx(0.0002667, rel=1e-3)\n", + ") == pytest.approx(0.000266748768, rel=1e-5)\n", "assert value(\n", " m.fs.RETENTATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"water\"]\n", - ") == pytest.approx(0.1974, rel=1e-3)\n", + ") == pytest.approx(0.19741534, rel=1e-5)\n", "assert value(\n", " m.fs.RETENTATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"]\n", - ") == pytest.approx(0.6597, rel=1e-3)\n", - "assert value(m.fs.separation_factor) == pytest.approx(1038, rel=1e-3)\n", - "assert value(m.fs.pervap.heat_duty[0]) == pytest.approx(5813, rel=1e-3)" + ") == pytest.approx(0.65973425, rel=1e-5)\n", + "assert value(m.fs.separation_factor) == pytest.approx(1037.6188, rel=1e-5)\n", + "assert value(m.fs.pervap.heat_duty[0]) == pytest.approx(5812.7111, rel=1e-5)" ] }, { @@ -671,18 +671,18 @@ "\n", "assert value(\n", " m.fs.PERMEATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"water\"]\n", - ") == pytest.approx(0.1426, rel=1e-3)\n", + ") == pytest.approx(0.14258566, rel=1e-5)\n", "assert value(\n", " m.fs.PERMEATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"]\n", - ") == pytest.approx(0.0002667, rel=1e-3)\n", + ") == pytest.approx(0.000266748768, rel=1e-5)\n", "assert value(\n", " m.fs.RETENTATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"water\"]\n", - ") == pytest.approx(0.6998, rel=1e-3)\n", + ") == pytest.approx(0.69981938, rel=1e-5)\n", "assert value(\n", " m.fs.RETENTATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"]\n", - ") == pytest.approx(0.1573, rel=1e-3)\n", - "assert value(m.fs.separation_factor) == pytest.approx(100.0, rel=1e-3)\n", - "assert value(m.fs.pervap.heat_duty[0]) == pytest.approx(5813, rel=1e-3)" + ") == pytest.approx(0.15733020, rel=1e-5)\n", + "assert value(m.fs.separation_factor) == pytest.approx(100.000067, rel=1e-5)\n", + "assert value(m.fs.pervap.heat_duty[0]) == pytest.approx(5812.7111, rel=1e-5)" ] }, { @@ -719,9 +719,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.12" + "version": "3.9.18" } }, "nbformat": 4, "nbformat_minor": 3 -} +} \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/unit_models/operations/skeleton_unit_usr.ipynb b/idaes_examples/notebooks/docs/unit_models/operations/skeleton_unit_usr.ipynb index 9d9adfbe..e3cbb4d7 100644 --- a/idaes_examples/notebooks/docs/unit_models/operations/skeleton_unit_usr.ipynb +++ b/idaes_examples/notebooks/docs/unit_models/operations/skeleton_unit_usr.ipynb @@ -583,18 +583,18 @@ "\n", "assert value(\n", " m.fs.PERMEATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"water\"]\n", - ") == pytest.approx(0.1426, rel=1e-3)\n", + ") == pytest.approx(0.14258566, rel=1e-5)\n", "assert value(\n", " m.fs.PERMEATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"]\n", - ") == pytest.approx(0.0002667, rel=1e-3)\n", + ") == pytest.approx(0.000266748768, rel=1e-5)\n", "assert value(\n", " m.fs.RETENTATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"water\"]\n", - ") == pytest.approx(0.1974, rel=1e-3)\n", + ") == pytest.approx(0.19741534, rel=1e-5)\n", "assert value(\n", " m.fs.RETENTATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"]\n", - ") == pytest.approx(0.6597, rel=1e-3)\n", - "assert value(m.fs.separation_factor) == pytest.approx(1038, rel=1e-3)\n", - "assert value(m.fs.pervap.heat_duty[0]) == pytest.approx(5813, rel=1e-3)" + ") == pytest.approx(0.65973425, rel=1e-5)\n", + "assert value(m.fs.separation_factor) == pytest.approx(1037.6188, rel=1e-5)\n", + "assert value(m.fs.pervap.heat_duty[0]) == pytest.approx(5812.7111, rel=1e-5)" ] }, { @@ -671,18 +671,18 @@ "\n", "assert value(\n", " m.fs.PERMEATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"water\"]\n", - ") == pytest.approx(0.1426, rel=1e-3)\n", + ") == pytest.approx(0.14258566, rel=1e-5)\n", "assert value(\n", " m.fs.PERMEATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"]\n", - ") == pytest.approx(0.0002667, rel=1e-3)\n", + ") == pytest.approx(0.000266748768, rel=1e-5)\n", "assert value(\n", " m.fs.RETENTATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"water\"]\n", - ") == pytest.approx(0.6998, rel=1e-3)\n", + ") == pytest.approx(0.69981938, rel=1e-5)\n", "assert value(\n", " m.fs.RETENTATE.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"]\n", - ") == pytest.approx(0.1573, rel=1e-3)\n", - "assert value(m.fs.separation_factor) == pytest.approx(100.0, rel=1e-3)\n", - "assert value(m.fs.pervap.heat_duty[0]) == pytest.approx(5813, rel=1e-3)" + ") == pytest.approx(0.15733020, rel=1e-5)\n", + "assert value(m.fs.separation_factor) == pytest.approx(100.000067, rel=1e-5)\n", + "assert value(m.fs.pervap.heat_duty[0]) == pytest.approx(5812.7111, rel=1e-5)" ] }, { @@ -719,9 +719,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.12" + "version": "3.9.18" } }, "nbformat": 4, "nbformat_minor": 3 -} +} \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/unit_models/operations/tests/__init__.py b/idaes_examples/notebooks/docs/unit_models/operations/tests/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/idaes_examples/notebooks/docs/unit_models/operations/tests/test_eg_h2o_ideal.py b/idaes_examples/notebooks/docs/unit_models/operations/tests/test_eg_h2o_ideal.py new file mode 100644 index 00000000..99bbcd25 --- /dev/null +++ b/idaes_examples/notebooks/docs/unit_models/operations/tests/test_eg_h2o_ideal.py @@ -0,0 +1,693 @@ +################################################################################# +# The Institute for the Design of Advanced Energy Systems Integrated Platform +# Framework (IDAES IP) was produced under the DOE Institute for the +# Design of Advanced Energy Systems (IDAES). +# +# Copyright (c) 2018-2023 by the software owners: The Regents of the +# University of California, through Lawrence Berkeley National Laboratory, +# National Technology & Engineering Solutions of Sandia, LLC, Carnegie Mellon +# University, West Virginia University Research Corporation, et al. +# All rights reserved. Please see the files COPYRIGHT.md and LICENSE.md +# for full copyright and license information. +################################################################################# +""" +Author: Brandon Paul +""" +import pytest +from pyomo.environ import ( + assert_optimal_termination, + ConcreteModel, + Set, + value, + Var, + units as pyunits, + as_quantity, +) +from pyomo.common.unittest import assertStructuredAlmostEqual + +from idaes.core import Component +from idaes.core.util.model_statistics import ( + degrees_of_freedom, + fixed_variables_set, + activated_constraints_set, +) +from idaes.core.solvers import get_solver + +from idaes.models.properties.modular_properties.base.generic_property import ( + GenericParameterBlock, +) + +from idaes.models.properties.modular_properties.state_definitions import FpcTP + +from idaes_examples.notebooks.docs.unit_models.operations.eg_h2o_ideal import ( + config_dict, +) + +from idaes.models.properties.tests.test_harness import PropertyTestHarness + +from idaes.core.util.model_diagnostics import DiagnosticsToolbox + +from idaes.core import VaporPhase + +from idaes.models.properties.modular_properties.eos.ideal import Ideal + +import copy + + +# ----------------------------------------------------------------------------- +# Get default solver for testing +solver = get_solver() + + +class TestEGProdIdeal(PropertyTestHarness): + def configure(self): + self.prop_pack = GenericParameterBlock + self.param_args = config_dict + self.prop_args = {} + self.has_density_terms = True + + +class TestParamBlock(object): + @pytest.mark.unit + def test_build(self): + model = ConcreteModel() + model.params = GenericParameterBlock(**config_dict) + + assert isinstance(model.params.phase_list, Set) + assert len(model.params.phase_list) == 1 + for i in model.params.phase_list: + assert i in [ + "Liq", + ] + assert model.params.Liq.is_liquid_phase() + + assert isinstance(model.params.component_list, Set) + assert len(model.params.component_list) == 2 + for i in model.params.component_list: + assert i in ["water", "ethylene_glycol"] + assert isinstance(model.params.get_component(i), Component) + + assert isinstance(model.params._phase_component_set, Set) + assert len(model.params._phase_component_set) == 2 + for i in model.params._phase_component_set: + assert i in [ + ("Liq", "water"), + ("Liq", "ethylene_glycol"), + ] + + assert model.params.config.state_definition == FpcTP + + assertStructuredAlmostEqual( + model.params.config.state_bounds, + { + "flow_mol_phase_comp": (0, 100, 1000, pyunits.mol / pyunits.s), + "temperature": (273.15, 298.15, 450, pyunits.K), + "pressure": (1e3, 1e5, 1e6, pyunits.Pa), + }, + item_callback=as_quantity, + ) + + assert value(model.params.pressure_ref) == 1e5 + assert value(model.params.temperature_ref) == 298.15 + + assert value(model.params.water.mw) == 18.015e-3 + assert value(model.params.water.pressure_crit) == 221.2e5 + assert value(model.params.water.temperature_crit) == 647.3 + + assert value(model.params.ethylene_glycol.mw) == 62.069e-3 + assert value(model.params.ethylene_glycol.pressure_crit) == 77e5 + assert value(model.params.ethylene_glycol.temperature_crit) == 645 + + dt = DiagnosticsToolbox(model) + dt.assert_no_structural_warnings() + + +class TestStateBlock(object): + @pytest.fixture(scope="class") + def model(self): + model = ConcreteModel() + model.params = GenericParameterBlock(**config_dict) + + model.props = model.params.build_state_block([1], defined_state=True) + + model.props[1].calculate_scaling_factors() + + # Fix state + model.props[1].flow_mol_phase_comp["Liq", "water"].fix(100) + model.props[1].flow_mol_phase_comp["Liq", "ethylene_glycol"].fix(100) + model.props[1].temperature.fix(300) + model.props[1].pressure.fix(101325) + + return model + + @pytest.mark.unit + def test_build(self, model): + # Check state variable values and bounds + assert isinstance(model.props[1].flow_mol_phase_comp, Var) + assert value(model.props[1].flow_mol_phase_comp["Liq", "water"]) == 100 + assert ( + value(model.props[1].flow_mol_phase_comp["Liq", "ethylene_glycol"]) == 100 + ) + assert model.props[1].flow_mol_phase_comp["Liq", "water"].ub == 1000 + assert model.props[1].flow_mol_phase_comp["Liq", "ethylene_glycol"].ub == 1000 + assert model.props[1].flow_mol_phase_comp["Liq", "water"].lb == 0 + assert model.props[1].flow_mol_phase_comp["Liq", "ethylene_glycol"].lb == 0 + + assert isinstance(model.props[1].pressure, Var) + assert value(model.props[1].pressure) == 101325 + assert model.props[1].pressure.ub == 1e6 + assert model.props[1].pressure.lb == 1e3 + + assert isinstance(model.props[1].temperature, Var) + assert value(model.props[1].temperature) == 300 + assert model.props[1].temperature.ub == 450 + assert model.props[1].temperature.lb == 273.15 + + @pytest.mark.unit + def test_define_state_vars(self, model): + sv = model.props[1].define_state_vars() + + assert len(sv) == 3 + for i in sv: + assert i in ["flow_mol_phase_comp", "temperature", "pressure"] + + @pytest.mark.unit + def test_define_port_members(self, model): + sv = model.props[1].define_state_vars() + + assert len(sv) == 3 + for i in sv: + assert i in ["flow_mol_phase_comp", "temperature", "pressure"] + + @pytest.mark.unit + def test_define_display_vars(self, model): + sv = model.props[1].define_display_vars() + + assert len(sv) == 3 + for i in sv: + assert i in [ + "Molar Flowrate", + "Temperature", + "Pressure", + ] + + @pytest.mark.unit + def test_structural_diagnostics(self, model): + dt = DiagnosticsToolbox(model) + dt.assert_no_structural_warnings() + + @pytest.mark.unit + def test_basic_scaling(self, model): + assert len(model.props[1].scaling_factor) == 12 + assert model.props[1].scaling_factor[model.props[1].flow_mol] == 1e-2 + assert ( + model.props[1].scaling_factor[model.props[1].flow_mol_comp["water"]] == 1e-2 + ) + assert ( + model.props[1].scaling_factor[ + model.props[1].flow_mol_comp["ethylene_glycol"] + ] + == 1e-2 + ) + assert ( + model.props[1].scaling_factor[model.props[1].flow_mol_phase["Liq"]] == 1e-2 + ) + assert ( + model.props[1].scaling_factor[ + model.props[1].flow_mol_phase_comp["Liq", "water"] + ] + == 1e-2 + ) + assert ( + model.props[1].scaling_factor[ + model.props[1].flow_mol_phase_comp["Liq", "ethylene_glycol"] + ] + == 1e-2 + ) + assert ( + model.props[1].scaling_factor[model.props[1].mole_frac_comp["water"]] + == 1000 + ) + assert ( + model.props[1].scaling_factor[ + model.props[1].mole_frac_comp["ethylene_glycol"] + ] + == 1000 + ) + assert ( + model.props[1].scaling_factor[ + model.props[1].mole_frac_phase_comp["Liq", "water"] + ] + == 1000 + ) + assert ( + model.props[1].scaling_factor[ + model.props[1].mole_frac_phase_comp["Liq", "ethylene_glycol"] + ] + == 1000 + ) + assert model.props[1].scaling_factor[model.props[1].pressure] == 1e-5 + assert model.props[1].scaling_factor[model.props[1].temperature] == 1e-2 + + @pytest.mark.skipif(solver is None, reason="Solver not available") + @pytest.mark.component + def test_initialize(self, model): + orig_fixed_vars = fixed_variables_set(model) + orig_act_consts = activated_constraints_set(model) + + model.props.initialize(optarg={"tol": 1e-6}) + + assert degrees_of_freedom(model) == 0 + + fin_fixed_vars = fixed_variables_set(model) + fin_act_consts = activated_constraints_set(model) + + assert len(fin_act_consts) == len(orig_act_consts) + assert len(fin_fixed_vars) == len(orig_fixed_vars) + + for c in fin_act_consts: + assert c in orig_act_consts + for v in fin_fixed_vars: + assert v in orig_fixed_vars + + @pytest.mark.skipif(solver is None, reason="Solver not available") + @pytest.mark.component + def test_solve(self, model): + results = solver.solve(model) + + # Check for optimal solution + assert_optimal_termination(results) + + @pytest.mark.unit + def test_numerical_diagnostics(self, model): + dt = DiagnosticsToolbox(model) + dt.assert_no_numerical_warnings() + + @pytest.mark.skipif(solver is None, reason="Solver not available") + @pytest.mark.component + def test_solution(self, model): + # Check results + assert value( + model.props[1].flow_mol_phase_comp["Liq", "water"] + ) == pytest.approx(100, abs=1e-4) + assert value( + model.props[1].flow_mol_phase_comp["Liq", "ethylene_glycol"] + ) == pytest.approx(100, abs=1e-4) + + assert value(model.props[1].temperature) == pytest.approx(300, abs=1e-4) + assert value(model.props[1].pressure) == pytest.approx(101325, abs=1e-4) + + +class TestPerrysProperties(object): + @pytest.fixture(scope="class") + def density_temperatures(self): + # water, ethylene glycol reference temperatures + # from Perry's Chemical Engineers' Handbook 7th Ed. 2-94 to 2-98 + components = ["water", "ethylene_glycol"] + temperatures = dict(zip(components, [[273.16, 333.15], [260.15, 719.7]])) + + return temperatures + + @pytest.fixture(scope="class") + def densities(self): + # water, ethylene glycol densities from + # Perry's Chemical Engineers' Handbook 7th Ed. 2-94 to 2-98 + components = ["water", "ethylene_glycol"] + densities = dict(zip(components, [[55.583, 54.703], [18.31, 5.234]])) + + return densities + + @pytest.fixture(scope="class") + def heat_capacity_temperatures(self): + # water, ethylene glycol reference temperatures + # from Perry's Chemical Engineers' Handbook 7th Ed. 2-170 to 2-174 + components = ["water", "ethylene_glycol"] + temperatures = dict(zip(components, [[273.16, 533.15], [260.15, 493.15]])) + + return temperatures + + @pytest.fixture(scope="class") + def heat_capacities(self): + # water, ethylene glycol heat capacities from + # Perry's Chemical Engineers' Handbook 7th Ed. 2-170 to 2-174 + components = ["water", "ethylene_glycol"] + heat_capacities = dict( + zip(components, [[0.7615e5, 0.8939e5], [1.36661e5, 2.0598e5]]) + ) + + return heat_capacities + + @pytest.fixture(scope="class") + def heat_capacity_reference(self): + # water, ethylene glycol heat capacities from + # NIST Chemistry WebBook, https://webbook.nist.gov/chemistry/ + components = ["water", "ethylene_glycol"] + heat_capacities = dict(zip(components, [0.7538e5, 0.1498e5])) + + return heat_capacities + + @pytest.fixture(scope="class") + def heat_capacity_reference_temperatures(self): + # water, ethylene glycol reference temperatures + # from NIST Chemistry WebBook, https://webbook.nist.gov/chemistry/ + components = ["water", "ethylene_glycol"] + temperatures = dict(zip(components, [298.0, 298.0])) + + return temperatures + + @pytest.mark.parametrize("component", ["water", "ethylene_glycol"]) + @pytest.mark.parametrize("test_point", [0, 1]) + @pytest.mark.skipif(solver is None, reason="Solver not available") + @pytest.mark.component + def test_liquid_densities( + self, component, test_point, density_temperatures, densities + ): + + config_dict_component_only = copy.deepcopy(config_dict) + for key in config_dict["components"].keys(): + if key == component: + pass + else: + config_dict_component_only["components"].pop(key) + + model = ConcreteModel() + + model.params = GenericParameterBlock(**config_dict_component_only) + + model.props = model.params.build_state_block([1], defined_state=True) + + model.props[1].calculate_scaling_factors() + + # Fix state + model.props[1].flow_mol_phase_comp["Liq", component].fix(100) + + # change lower bound for testing + model.props[1].temperature.setlb(150) + + model.props[1].temperature.fix(density_temperatures[component][test_point]) + model.props[1].pressure.fix(101325) + + results = solver.solve(model) + + # Check for optimal solution + assert_optimal_termination(results) + + # Check results + assert value( + pyunits.convert( + model.props[1].dens_mol, to_units=pyunits.kmol / pyunits.m**3 + ) + ) == pytest.approx(densities[component][test_point], rel=1e-4) + + @pytest.mark.parametrize("component", ["water", "ethylene_glycol"]) + @pytest.mark.parametrize("test_point", [0, 1]) + @pytest.mark.skipif(solver is None, reason="Solver not available") + @pytest.mark.component + def test_liquid_heat_capacities_enthalpy( + self, + component, + test_point, + heat_capacity_temperatures, + heat_capacities, + heat_capacity_reference, + heat_capacity_reference_temperatures, + ): + + config_dict_component_only = copy.deepcopy(config_dict) + for key in config_dict["components"].keys(): + if key == component: + pass + else: + config_dict_component_only["components"].pop(key) + + model = ConcreteModel() + + model.params = GenericParameterBlock(**config_dict_component_only) + + model.props = model.params.build_state_block([1], defined_state=True) + + model.props[1].calculate_scaling_factors() + + # Fix state + model.props[1].flow_mol_phase_comp["Liq", component].fix(100) + + model.props[1].pressure.fix(101325) + + # calculate reference point + + model.props[1].temperature.fix(heat_capacity_reference_temperatures[component]) + + results = solver.solve(model) + + enth_mol_ref = value(model.props[1].enth_mol) * pyunits.get_units( + model.props[1].enth_mol + ) + temp_ref = heat_capacity_reference_temperatures[component] * pyunits.K + cp_mol_ref = ( + heat_capacity_reference[component] + * 1e-3 + * pyunits.J + / pyunits.mol + / pyunits.K + ) + + # calculate test point + + model.props[1].temperature.fix( + heat_capacity_temperatures[component][test_point] + ) + + results = solver.solve(model) + + enth_mol_test = value(model.props[1].enth_mol) * pyunits.get_units( + model.props[1].enth_mol + ) + temp_test = heat_capacity_temperatures[component][test_point] * pyunits.K + cp_mol_test = ( + heat_capacities[component][test_point] + * 1e-3 + * pyunits.J + / pyunits.mol + / pyunits.K + ) + + # Check for optimal solution + assert_optimal_termination(results) + + # Check results + + assert value( + pyunits.convert(enth_mol_test, to_units=pyunits.J / pyunits.mol) + ) == pytest.approx( + value( + pyunits.convert( + 0.5 * (cp_mol_test + cp_mol_ref) * (temp_test - temp_ref) + + enth_mol_ref, + to_units=pyunits.J / pyunits.mol, + ) + ), + rel=1e-1, # using 1e-1 tol to check against trapezoid rule estimation of integral + ) + + +class TestRPP4Properties(object): + @pytest.fixture(scope="class") + def heat_capacity_temperatures(self): + # water, ethylene glycol reference temperatures + # from NIST Chemistry WebBook, https://webbook.nist.gov/chemistry/ + components = ["water", "ethylene_glycol"] + temperatures = dict(zip(components, [[545, 632], [500, 600]])) + + return temperatures + + @pytest.fixture(scope="class") + def heat_capacities(self): + # water, ethylene glycol heat capacities from + # from NIST Chemistry WebBook, https://webbook.nist.gov/chemistry/ + components = ["water", "ethylene_glycol"] + heat_capacities = dict(zip(components, [[35.70, 36.69], [113.64, 125.65]])) + + return heat_capacities + + @pytest.fixture(scope="class") + def heat_capacity_reference(self): + # water, ethylene glycol heat capacities from + # NIST Chemistry WebBook, https://webbook.nist.gov/chemistry/ + components = ["water", "ethylene_glycol"] + heat_capacities = dict(zip(components, [35.22, 97.99])) + + return heat_capacities + + @pytest.fixture(scope="class") + def heat_capacity_reference_temperatures(self): + # water, ethylene glycol reference temperatures + # from NIST Chemistry WebBook, https://webbook.nist.gov/chemistry/ + components = ["water", "ethylene_glycol"] + temperatures = dict(zip(components, [500, 400])) + + return temperatures + + @pytest.fixture(scope="class") + def saturation_pressure_temperatures(self): + # water, ethylene glycol reference temperatures + # from NIST Chemistry WebBook, https://webbook.nist.gov/chemistry/ + components = ["water", "ethylene_glycol"] + temperatures = dict(zip(components, [[300.25, 350.16], [387, 473]])) + + return temperatures + + @pytest.fixture(scope="class") + def saturation_pressures(self): + # ethylene glycol saturation pressures from + # from NIST Chemistry WebBook, https://webbook.nist.gov/chemistry/ + components = ["water", "ethylene_glycol"] + pressures = dict( + zip(components, [[0.03591e5, 0.4194e5], [0.04257e5, 1.0934e5]]) + ) + + return pressures + + @pytest.mark.parametrize("component", ["water", "ethylene_glycol"]) + @pytest.mark.parametrize("test_point", [0, 1]) + @pytest.mark.skipif(solver is None, reason="Solver not available") + @pytest.mark.component + def test_vapor_heat_capacities_enthalpy( + self, + component, + test_point, + heat_capacity_temperatures, + heat_capacities, + heat_capacity_reference, + heat_capacity_reference_temperatures, + ): + + config_dict_component_only = copy.deepcopy(config_dict) + for key in config_dict["components"].keys(): + if key == component: + pass + else: + config_dict_component_only["components"].pop(key) + + config_dict_component_only["phases"] = { + "Vap": {"type": VaporPhase, "equation_of_state": Ideal} + } + + model = ConcreteModel() + + model.params = GenericParameterBlock(**config_dict_component_only) + + model.props = model.params.build_state_block([1], defined_state=True) + + model.props[1].calculate_scaling_factors() + + # Fix state + model.props[1].flow_mol_phase_comp["Vap", component].fix(100) + + model.props[1].pressure.fix(101325) + + # calculate reference point + + model.props[1].temperature.fix(heat_capacity_reference_temperatures[component]) + + results = solver.solve(model) + + enth_mol_ref = value(model.props[1].enth_mol) * pyunits.get_units( + model.props[1].enth_mol + ) + temp_ref = heat_capacity_reference_temperatures[component] * pyunits.K + cp_mol_ref = ( + heat_capacity_reference[component] + * 1e-3 + * pyunits.J + / pyunits.mol + / pyunits.K + ) + + # calculate test point + + model.props[1].temperature.fix( + heat_capacity_temperatures[component][test_point] + ) + + results = solver.solve(model) + + enth_mol_test = value(model.props[1].enth_mol) * pyunits.get_units( + model.props[1].enth_mol + ) + temp_test = heat_capacity_temperatures[component][test_point] * pyunits.K + cp_mol_test = ( + heat_capacities[component][test_point] + * 1e-3 + * pyunits.J + / pyunits.mol + / pyunits.K + ) + + # Check for optimal solution + assert_optimal_termination(results) + + # Check results + + assert value( + pyunits.convert(enth_mol_test, to_units=pyunits.J / pyunits.mol) + ) == pytest.approx( + value( + pyunits.convert( + 0.5 * (cp_mol_test + cp_mol_ref) * (temp_test - temp_ref) + + enth_mol_ref, + to_units=pyunits.J / pyunits.mol, + ) + ), + rel=1.15e-1, # using 1.15e-1 tol to check against trapezoid rule estimation of integral + # all values match within 1e-1, except ethylene glycol test point 0 + ) + + @pytest.mark.parametrize("component", ["water", "ethylene_glycol"]) + @pytest.mark.parametrize("test_point", [0, 1]) + @pytest.mark.skipif(solver is None, reason="Solver not available") + @pytest.mark.component + def test_saturation_pressures( + self, + component, + test_point, + saturation_pressure_temperatures, + saturation_pressures, + ): + + config_dict_component_only = copy.deepcopy(config_dict) + for key in config_dict["components"].keys(): + if key == component: + pass + else: + config_dict_component_only["components"].pop(key) + + config_dict_component_only["phases"] = { + "Vap": {"type": VaporPhase, "equation_of_state": Ideal} + } + + model = ConcreteModel() + + model.params = GenericParameterBlock(**config_dict_component_only) + + model.props = model.params.build_state_block([1], defined_state=True) + + model.props[1].calculate_scaling_factors() + + # Fix state + model.props[1].flow_mol_phase_comp["Vap", component].fix(100) + + model.props[1].temperature.fix( + saturation_pressure_temperatures[component][test_point] + ) + model.props[1].pressure.fix(101325) + + results = solver.solve(model) + + # Check for optimal solution + assert_optimal_termination(results) + + # Check results + print(value(model.props[1].pressure_sat_comp[component])) + assert value(model.props[1].pressure_sat_comp[component]) == pytest.approx( + saturation_pressures[component][test_point], rel=1.5e-2 + ) # match within 1.5% diff --git a/idaes_examples/notebooks/docs/unit_models/reactors/cstr.ipynb b/idaes_examples/notebooks/docs/unit_models/reactors/cstr.ipynb index 95e99c96..0d0fc742 100644 --- a/idaes_examples/notebooks/docs/unit_models/reactors/cstr.ipynb +++ b/idaes_examples/notebooks/docs/unit_models/reactors/cstr.ipynb @@ -237,9 +237,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "scrolled": false - }, + "metadata": {}, "outputs": [], "source": [ "m.fs.R101 = CSTR(\n", @@ -584,7 +582,7 @@ "metadata": {}, "outputs": [], "source": [ - "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")" + "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.6f} million per year\")" ] }, { @@ -599,7 +597,7 @@ "source": [ "import pytest\n", "\n", - "assert value(m.fs.operating_cost) / 1e6 == pytest.approx(3.458138, abs=1e-3)" + "assert value(m.fs.operating_cost) / 1e6 == pytest.approx(8.004012, rel=1e-5)" ] }, { @@ -622,8 +620,8 @@ "print()\n", "print(\n", " f\"Assuming a 20% design factor for reactor volume,\"\n", - " f\"total CSTR volume required = {value(1.2*m.fs.R101.volume[0]):0.3f}\"\n", - " f\" m^3 = {value(pyunits.convert(1.2*m.fs.R101.volume[0], to_units=pyunits.gal)):0.3f} gal\"\n", + " f\"total CSTR volume required = {value(1.2*m.fs.R101.volume[0]):0.6f}\"\n", + " f\" m^3 = {value(pyunits.convert(1.2*m.fs.R101.volume[0], to_units=pyunits.gal)):0.6f} gal\"\n", ")" ] }, @@ -637,10 +635,10 @@ }, "outputs": [], "source": [ - "assert value(m.fs.R101.conversion) == pytest.approx(0.8000, abs=1e-3)\n", - "assert value(m.fs.R101.volume[0]) == pytest.approx(5.5380, abs=1e-3)\n", - "assert value(m.fs.R101.heat_duty[0]) / 1e6 == pytest.approx(-5.6566, abs=1e-3)\n", - "assert value(m.fs.R101.outlet.temperature[0]) / 1e2 == pytest.approx(3.2827, abs=1e-3)" + "assert value(m.fs.R101.conversion) == pytest.approx(0.8000, rel=1e-5)\n", + "assert value(m.fs.R101.volume[0]) == pytest.approx(5.5380, rel=1e-5)\n", + "assert value(m.fs.R101.heat_duty[0]) / 1e6 == pytest.approx(-5.8675, rel=1e-5)\n", + "assert value(m.fs.R101.outlet.temperature[0]) / 1e2 == pytest.approx(3.29261, rel=1e-5)" ] }, { @@ -751,7 +749,7 @@ "metadata": {}, "outputs": [], "source": [ - "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")\n", + "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.6f} million per year\")\n", "\n", "print()\n", "print(\"Heater results\")\n", @@ -774,8 +772,8 @@ }, "outputs": [], "source": [ - "assert value(m.fs.operating_cost) / 1e6 == pytest.approx(3.889709, abs=1e-3)\n", - "assert value(m.fs.R101.volume[0]) == pytest.approx(18.927, abs=1e-3)" + "assert value(m.fs.operating_cost) / 1e6 == pytest.approx(8.318177, rel=1e-5)\n", + "assert value(m.fs.R101.volume[0]) == pytest.approx(18.927, rel=1e-5)" ] }, { @@ -794,17 +792,17 @@ "print(\"Optimal Values\")\n", "print()\n", "\n", - "print(f\"H101 outlet temperature = {value(m.fs.H101.outlet.temperature[0]):0.3f} K\")\n", + "print(f\"H101 outlet temperature = {value(m.fs.H101.outlet.temperature[0]):0.6f} K\")\n", "\n", "print()\n", "print(\n", " f\"Assuming a 20% design factor for reactor volume,\"\n", - " f\"total CSTR volume required = {value(1.2*m.fs.R101.volume[0]):0.3f}\"\n", - " f\" m^3 = {value(pyunits.convert(1.2*m.fs.R101.volume[0], to_units=pyunits.gal)):0.3f} gal\"\n", + " f\"total CSTR volume required = {value(1.2*m.fs.R101.volume[0]):0.6f}\"\n", + " f\" m^3 = {value(pyunits.convert(1.2*m.fs.R101.volume[0], to_units=pyunits.gal)):0.6f} gal\"\n", ")\n", "\n", "print()\n", - "print(f\"Ethylene glycol produced = {value(m.fs.eg_prod):0.3f} MM lb/year\")\n", + "print(f\"Ethylene glycol produced = {value(m.fs.eg_prod):0.6f} MM lb/year\")\n", "\n", "print()\n", "print(f\"Conversion achieved = {value(m.fs.R101.conversion):.1%}\")" @@ -820,10 +818,10 @@ }, "outputs": [], "source": [ - "assert value(m.fs.H101.outlet.temperature[0]) / 100 == pytest.approx(3.2815, abs=1e-3)\n", - "assert value(m.fs.R101.volume[0] * 1.2) == pytest.approx(22.712, abs=1e-3)\n", - "assert value(m.fs.eg_prod) == pytest.approx(225.415, abs=1e-3)\n", - "assert value(m.fs.R101.conversion) * 100 == pytest.approx(90.0, abs=1e-3)" + "assert value(m.fs.H101.outlet.temperature[0]) / 100 == pytest.approx(3.2815, rel=1e-5)\n", + "assert value(m.fs.R101.volume[0] * 1.2) == pytest.approx(22.712471, rel=1e-5)\n", + "assert value(m.fs.eg_prod) == pytest.approx(225.415, rel=1e-5)\n", + "assert value(m.fs.R101.conversion) * 100 == pytest.approx(90.0, rel=1e-5)" ] }, { @@ -851,7 +849,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.12" + "version": "3.9.18" } }, "nbformat": 4, diff --git a/idaes_examples/notebooks/docs/unit_models/reactors/cstr_doc.ipynb b/idaes_examples/notebooks/docs/unit_models/reactors/cstr_doc.ipynb index 0186ee75..891c3495 100644 --- a/idaes_examples/notebooks/docs/unit_models/reactors/cstr_doc.ipynb +++ b/idaes_examples/notebooks/docs/unit_models/reactors/cstr_doc.ipynb @@ -1,1254 +1,723 @@ { - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "tags": [ - "header", - "hide-cell" - ] - }, - "outputs": [], - "source": [ - "###############################################################################\n", - "# The Institute for the Design of Advanced Energy Systems Integrated Platform\n", - "# Framework (IDAES IP) was produced under the DOE Institute for the\n", - "# Design of Advanced Energy Systems (IDAES).\n", - "#\n", - "# Copyright (c) 2018-2023 by the software owners: The Regents of the\n", - "# University of California, through Lawrence Berkeley National Laboratory,\n", - "# National Technology & Engineering Solutions of Sandia, LLC, Carnegie Mellon\n", - "# University, West Virginia University Research Corporation, et al.\n", - "# All rights reserved. Please see the files COPYRIGHT.md and LICENSE.md\n", - "# for full copyright and license information.\n", - "###############################################################################" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "# Flowsheet Continuous Stirred Tank Reactor (CSTR) Simulation and Optimization of Ethylene Glycol Production\n", - "Author: Brandon Paul \n", - "Maintainer: Brandon Paul \n", - "Updated: 2023-06-01 \n", - "\n", - "\n", - "## Learning Outcomes\n", - "\n", - "\n", - "- Call and implement the IDAES CSTR unit model\n", - "- Construct a steady-state flowsheet using the IDAES unit model library\n", - "- Connecting unit models in a flowsheet using Arcs\n", - "- Fomulate and solve an optimization problem\n", - " - Defining an objective function\n", - " - Setting variable bounds\n", - " - Adding additional constraints \n", - "\n", - "\n", - "## Problem Statement\n", - "\n", - "This example is adapted from Fogler, H.S., Elements of Chemical Reaction Engineering 5th ed., 2016, Prentice Hall, p. 157-160.\n", - "\n", - "Ethylene glycol (EG) is a high-demand chemical, with billions of pounds produced every year for applications such as vehicle anti-freeze. EG may be readily obtained from the hydrolysis of ethylene oxide in the presence of a catalytic intermediate. In this example, an aqueous solution of ethylene oxide hydrolizes after mixing with an aqueous solution of sulfuric acid catalyst:\n", - "\n", - "**C2H4O + H2O + H2SO4 → C2H6O2 + H2SO4**\n", - "\n", - "This reaction often occurs by two mechanisms, as the catalyst may bind to either reactant before the final hydrolysis step; we will simplify the reaction to a single step for this example.\n", - "\n", - "The flowsheet that we will be using for this module is shown below with the stream conditions. We will be processing ethylene oxide and catalyst solutions of fixed concentrations to produce 200 MM lb/year of EG. As shown in the flowsheet, the process consists of a mixer M101 for the two inlet streams, a heater H101 to preheat the feed to the reaction temperature, and a CSTR unit R101 with an external cooling system to remove heat generated by the exothermic reaction. We will assume ideal solutions and thermodynamics for this flowsheet, as well as well-mixed liquid behavior (no vapor phase) in the reactor. The properties required for this module are available in the same directory:\n", - "\n", - "- egprod_ideal.py\n", - "- egprod_reaction.py\n", - "\n", - "The state variables chosen for the property package are **molar flows of each component by phase in each stream, temperature of each stream and pressure of each stream**. The components considered are: **ethylene oxide, water, sulfuric acid and ethylene glycol** and the process occurs in liquid phase only. Therefore, every stream has 4 flow variables, 1 temperature and 1 pressure variable. \n", - "\n", - "![](egprod_flowsheet.png)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Importing Required Pyomo and IDAES components\n", - "\n", - "\n", - "To construct a flowsheet, we will need several components from the Pyomo and IDAES packages. Let us first import the following components from Pyomo:\n", - "- Constraint (to write constraints)\n", - "- Var (to declare variables)\n", - "- ConcreteModel (to create the concrete model object)\n", - "- Expression (to evaluate values as a function of variables defined in the model)\n", - "- Objective (to define an objective function for optimization)\n", - "- TransformationFactory (to apply certain transformations)\n", - "- Arc (to connect two unit models)\n", - "\n", - "For further details on these components, please refer to the pyomo documentation: https://pyomo.readthedocs.io/en/stable/\n", - "\n", - "From idaes, we will be needing the `FlowsheetBlock` and the following unit models:\n", - "- Mixer\n", - "- Heater\n", - "- CSTR\n", - "\n", - "We will also be needing some utility tools to put together the flowsheet and calculate the degrees of freedom, tools for model expressions and calling variable values, and built-in functions to define property packages, add unit containers to objects and define our initialization scheme.\n" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "from pyomo.environ import (\n", - " Constraint,\n", - " Var,\n", - " ConcreteModel,\n", - " Expression,\n", - " Objective,\n", - " TransformationFactory,\n", - " value,\n", - " units as pyunits,\n", - ")\n", - "from pyomo.network import Arc\n", - "\n", - "from idaes.core import FlowsheetBlock\n", - "from idaes.models.properties.modular_properties import (\n", - " GenericParameterBlock,\n", - " GenericReactionParameterBlock,\n", - ")\n", - "from idaes.models.unit_models import Feed, Mixer, Heater, CSTR, Product\n", - "\n", - "from idaes.core.solvers import get_solver\n", - "from idaes.core.util.model_statistics import degrees_of_freedom\n", - "from idaes.core.util.initialization import propagate_state" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Importing Required Thermophysical and Reaction Packages\n", - "\n", - "The final step is to import the thermophysical and reaction packages. We have created a custom thermophysical package that support ideal vapor and liquid behavior for this system, and in this case we will restrict it to ideal liquid behavior only.\n", - "\n", - "The reaction package here assumes Arrhenius kinetic behavior for the CSTR, for which $k_0$ and $E_a$ are known *a priori* (if unknown, they may be obtained using one of the parameter estimation tools within IDAES).\n", - "\n", - "$ r = -kVC_{EO} $, $ k = k_0 e^{(-E_a/RT)}$, with the variables as follows:\n", - "\n", - "$r$ - reaction rate extent in moles of ethylene oxide consumed per second; note that the traditional reaction rate would be given by $rate = r/V$ in moles per $m^3$ per second \n", - "$k$ - reaction rate constant per second \n", - "$V$ - volume of CSTR in $m^3$, note that this is *liquid volume* and not the *total volume* of the reactor itself \n", - "$C_{EO}$ - bulk concentration of ethylene oxide in moles per $m^3$ (the limiting reagent, since we assume excess catalyst and water) \n", - "$k_0$ - pre-exponential Arrhenius factor per second \n", - "$E_a$ - reaction activation energy in kJ per mole of ethylene oxide consumed \n", - "$R$ - gas constant in J/mol-K \n", - "$T$ - reactor temperature in K\n", - "\n", - "These calculations are contained within the property, reaction and unit model packages, and do not need to be entered into the flowsheet. More information on property estimation may be found in the IDAES documentation on [Parameter Estimation](https://idaes-pse.readthedocs.io/en/stable/how_to_guides/workflow/data_rec_parmest.html).\n", - "\n", - "ParamEst parameter estimation: \n", - "\n", - "Let us import the following modules from the same directory as this Jupyter notebook:\n", - "- egprod_ideal as thermo_props\n", - "- egprod_reaction as reaction_props" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "import egprod_ideal as thermo_props\n", - "import egprod_reaction as reaction_props" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Constructing the Flowsheet\n", - "\n", - "We have now imported all the components, unit models, and property modules we need to construct a flowsheet. Let us create a `ConcreteModel` and add the flowsheet block. " - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "m = ConcreteModel()\n", - "m.fs = FlowsheetBlock(dynamic=False)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We now need to add the property packages to the flowsheet. Unlike the basic [Flash unit model example](http://localhost:8888/notebooks/GitHub/examples-pse/src/Tutorials/Basics/flash_unit_solution_testing_doc.md), where we only had a thermophysical property package, for this flowsheet we will also need to add a reaction property package. We will use the [Modular Property Framework](https://idaes-pse.readthedocs.io/en/stable/explanations/components/property_package/index.html#generic-property-package-framework) and [Modular Reaction Framework](https://idaes-pse.readthedocs.io/en/stable/explanations/components/property_package/index.html#generic-reaction-package-framework). The get_prop method for the natural gas property module automatically returns the correct dictionary using a component list argument. The GenericParameterBlock and GenericReactionParameterBlock methods build states blocks from passed parameter data; the reaction block unpacks using **reaction_props.config_dict to allow for optional or empty keyword arguments:" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "m.fs.thermo_params = GenericParameterBlock(**thermo_props.config_dict)\n", - "m.fs.reaction_params = GenericReactionParameterBlock(\n", - " property_package=m.fs.thermo_params, **reaction_props.config_dict\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Adding Unit Models\n", - "\n", - "Let us start adding the unit models we have imported to the flowsheet. Here, we are adding a `Mixer`, a `Heater` and a `CSTR`. Note that all unit models need to be given a property package argument. In addition to that, there are several arguments depending on the unit model, please refer to the documentation for more details on [IDAES Unit Models](https://idaes-pse.readthedocs.io/en/stable/reference_guides/model_libraries/index.html). For example, the `Mixer` is given a `list` consisting of names to the two inlets." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "m.fs.OXIDE = Feed(property_package=m.fs.thermo_params)\n", - "m.fs.ACID = Feed(property_package=m.fs.thermo_params)\n", - "m.fs.PROD = Product(property_package=m.fs.thermo_params)\n", - "m.fs.M101 = Mixer(\n", - " property_package=m.fs.thermo_params, inlet_list=[\"reagent_feed\", \"catalyst_feed\"]\n", - ")\n", - "m.fs.H101 = Heater(\n", - " property_package=m.fs.thermo_params,\n", - " has_pressure_change=False,\n", - " has_phase_equilibrium=False,\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "scrolled": false - }, - "outputs": [], - "source": [ - "m.fs.R101 = CSTR(\n", - " property_package=m.fs.thermo_params,\n", - " reaction_package=m.fs.reaction_params,\n", - " has_heat_of_reaction=True,\n", - " has_heat_transfer=True,\n", - " has_pressure_change=False,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Connecting Unit Models Using Arcs\n", - "\n", - "We have now added all the unit models we need to the flowsheet. However, we have not yet specified how the units are to be connected. To do this, we will be using the `Arc` which is a pyomo component that takes in two arguments: `source` and `destination`. Let us connect the outlet of the `Mixer` to the inlet of the `Heater`, and the outlet of the `Heater` to the inlet of the `CSTR`. Additionally, we will connect the `Feed` and `Product` blocks to the flowsheet:" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.s01 = Arc(source=m.fs.OXIDE.outlet, destination=m.fs.M101.reagent_feed)\n", - "m.fs.s02 = Arc(source=m.fs.ACID.outlet, destination=m.fs.M101.catalyst_feed)\n", - "m.fs.s03 = Arc(source=m.fs.M101.outlet, destination=m.fs.H101.inlet)\n", - "m.fs.s04 = Arc(source=m.fs.H101.outlet, destination=m.fs.R101.inlet)\n", - "m.fs.s05 = Arc(source=m.fs.R101.outlet, destination=m.fs.PROD.inlet)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We have now connected the unit model block using the arcs. However, we also need to link the state variables on connected ports. Pyomo provides a convenient method `TransformationFactory` to write these equality constraints for us between two ports:" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "TransformationFactory(\"network.expand_arcs\").apply_to(m)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Adding Expressions to Compute Operating Costs\n", - "\n", - "In this section, we will add a few Expressions that allows us to evaluate the performance. `Expressions` provide a convenient way of calculating certain values that are a function of the variables defined in the model. For more details on `Expressions`, please refer to the [Pyomo Expression documentation]( https://pyomo.readthedocs.io/en/stable/pyomo_modeling_components/Expressions.html).\n", - "\n", - "For this flowsheet, we are interested in computing ethylene glycol production in millions of pounds per year, as well as the total costs due to cooling and heating utilities." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us first add an `Expression` to convert the product flow from mol/s to MM lb/year of ethylene glycol. We see that the molecular weight exists in the thermophysical property package, so we may use that value for our calculations." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.eg_prod = Expression(\n", - " expr=pyunits.convert(\n", - " m.fs.PROD.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"]\n", - " * m.fs.thermo_params.ethylene_glycol.mw, # MW defined in properties as kg/mol\n", - " to_units=pyunits.Mlb / pyunits.yr,\n", - " )\n", - ") # converting kg/s to MM lb/year" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now, let us add expressions to compute the reactor cooling cost (\\\\$/s) assuming a cost of 2.12E-5 \\\\$/kW, and the heating utility cost (\\\\$/s) assuming 2.2E-4 \\\\$/kW. Note that the heat duty is in units of watt (J/s). The total operating cost will be the sum of the two, expressed in \\\\$/year assuming 8000 operating hours per year (~10\\% downtime, which is fairly common for small scale chemical plants):" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.cooling_cost = Expression(\n", - " expr=2.12e-8 * (-m.fs.R101.heat_duty[0])\n", - ") # the reaction is exothermic, so R101 duty is negative\n", - "m.fs.heating_cost = Expression(\n", - " expr=2.2e-7 * m.fs.H101.heat_duty[0]\n", - ") # the stream must be heated to T_rxn, so H101 duty is positive\n", - "m.fs.operating_cost = Expression(\n", - " expr=(3600 * 8000 * (m.fs.heating_cost + m.fs.cooling_cost))\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Fixing Feed Conditions\n", - "\n", - "Let us first check how many degrees of freedom exist for this flowsheet using the `degrees_of_freedom` tool we imported earlier. We expect each stream to have 6 degrees of freedom, the mixer to have 0 (after both streams are accounted for), the heater to have 1 (just the duty, since the inlet is also the outlet of M101), and the reactor to have 1 (duty or conversion, since the inlet is also the outlet of H101). In this case, the reactor has an extra degree of freedom (reactor conversion or reactor volume) since we have not yet defined the CSTR performance equation. Therefore, we have 15 degrees of freedom to specify: temperature, pressure and flow of all four components on both streams; outlet heater temperature; reactor conversion and volume." - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "15\n" - ] + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "header", + "hide-cell" + ] + }, + "outputs": [], + "source": [ + "###############################################################################\n", + "# The Institute for the Design of Advanced Energy Systems Integrated Platform\n", + "# Framework (IDAES IP) was produced under the DOE Institute for the\n", + "# Design of Advanced Energy Systems (IDAES).\n", + "#\n", + "# Copyright (c) 2018-2023 by the software owners: The Regents of the\n", + "# University of California, through Lawrence Berkeley National Laboratory,\n", + "# National Technology & Engineering Solutions of Sandia, LLC, Carnegie Mellon\n", + "# University, West Virginia University Research Corporation, et al.\n", + "# All rights reserved. Please see the files COPYRIGHT.md and LICENSE.md\n", + "# for full copyright and license information.\n", + "###############################################################################" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "# Flowsheet Continuous Stirred Tank Reactor (CSTR) Simulation and Optimization of Ethylene Glycol Production\n", + "Author: Brandon Paul \n", + "Maintainer: Brandon Paul \n", + "Updated: 2023-06-01 \n", + "\n", + "\n", + "## Learning Outcomes\n", + "\n", + "\n", + "- Call and implement the IDAES CSTR unit model\n", + "- Construct a steady-state flowsheet using the IDAES unit model library\n", + "- Connecting unit models in a flowsheet using Arcs\n", + "- Fomulate and solve an optimization problem\n", + " - Defining an objective function\n", + " - Setting variable bounds\n", + " - Adding additional constraints \n", + "\n", + "\n", + "## Problem Statement\n", + "\n", + "This example is adapted from Fogler, H.S., Elements of Chemical Reaction Engineering 5th ed., 2016, Prentice Hall, p. 157-160.\n", + "\n", + "Ethylene glycol (EG) is a high-demand chemical, with billions of pounds produced every year for applications such as vehicle anti-freeze. EG may be readily obtained from the hydrolysis of ethylene oxide in the presence of a catalytic intermediate. In this example, an aqueous solution of ethylene oxide hydrolizes after mixing with an aqueous solution of sulfuric acid catalyst:\n", + "\n", + "**C2H4O + H2O + H2SO4 \u2192 C2H6O2 + H2SO4**\n", + "\n", + "This reaction often occurs by two mechanisms, as the catalyst may bind to either reactant before the final hydrolysis step; we will simplify the reaction to a single step for this example.\n", + "\n", + "The flowsheet that we will be using for this module is shown below with the stream conditions. We will be processing ethylene oxide and catalyst solutions of fixed concentrations to produce 200 MM lb/year of EG. As shown in the flowsheet, the process consists of a mixer M101 for the two inlet streams, a heater H101 to preheat the feed to the reaction temperature, and a CSTR unit R101 with an external cooling system to remove heat generated by the exothermic reaction. We will assume ideal solutions and thermodynamics for this flowsheet, as well as well-mixed liquid behavior (no vapor phase) in the reactor. The properties required for this module are available in the same directory:\n", + "\n", + "- egprod_ideal.py\n", + "- egprod_reaction.py\n", + "\n", + "The state variables chosen for the property package are **molar flows of each component by phase in each stream, temperature of each stream and pressure of each stream**. The components considered are: **ethylene oxide, water, sulfuric acid and ethylene glycol** and the process occurs in liquid phase only. Therefore, every stream has 4 flow variables, 1 temperature and 1 pressure variable. \n", + "\n", + "![](egprod_flowsheet.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Importing Required Pyomo and IDAES components\n", + "\n", + "\n", + "To construct a flowsheet, we will need several components from the Pyomo and IDAES packages. Let us first import the following components from Pyomo:\n", + "- Constraint (to write constraints)\n", + "- Var (to declare variables)\n", + "- ConcreteModel (to create the concrete model object)\n", + "- Expression (to evaluate values as a function of variables defined in the model)\n", + "- Objective (to define an objective function for optimization)\n", + "- TransformationFactory (to apply certain transformations)\n", + "- Arc (to connect two unit models)\n", + "\n", + "For further details on these components, please refer to the pyomo documentation: https://pyomo.readthedocs.io/en/stable/\n", + "\n", + "From idaes, we will be needing the `FlowsheetBlock` and the following unit models:\n", + "- Mixer\n", + "- Heater\n", + "- CSTR\n", + "\n", + "We will also be needing some utility tools to put together the flowsheet and calculate the degrees of freedom, tools for model expressions and calling variable values, and built-in functions to define property packages, add unit containers to objects and define our initialization scheme.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from pyomo.environ import (\n", + " Constraint,\n", + " Var,\n", + " ConcreteModel,\n", + " Expression,\n", + " Objective,\n", + " TransformationFactory,\n", + " value,\n", + " units as pyunits,\n", + ")\n", + "from pyomo.network import Arc\n", + "\n", + "from idaes.core import FlowsheetBlock\n", + "from idaes.models.properties.modular_properties import (\n", + " GenericParameterBlock,\n", + " GenericReactionParameterBlock,\n", + ")\n", + "from idaes.models.unit_models import Feed, Mixer, Heater, CSTR, Product\n", + "\n", + "from idaes.core.solvers import get_solver\n", + "from idaes.core.util.model_statistics import degrees_of_freedom\n", + "from idaes.core.util.initialization import propagate_state" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Importing Required Thermophysical and Reaction Packages\n", + "\n", + "The final step is to import the thermophysical and reaction packages. We have created a custom thermophysical package that support ideal vapor and liquid behavior for this system, and in this case we will restrict it to ideal liquid behavior only.\n", + "\n", + "The reaction package here assumes Arrhenius kinetic behavior for the CSTR, for which $k_0$ and $E_a$ are known *a priori* (if unknown, they may be obtained using one of the parameter estimation tools within IDAES).\n", + "\n", + "$ r = -kVC_{EO} $, $ k = k_0 e^{(-E_a/RT)}$, with the variables as follows:\n", + "\n", + "$r$ - reaction rate extent in moles of ethylene oxide consumed per second; note that the traditional reaction rate would be given by $rate = r/V$ in moles per $m^3$ per second \n", + "$k$ - reaction rate constant per second \n", + "$V$ - volume of CSTR in $m^3$, note that this is *liquid volume* and not the *total volume* of the reactor itself \n", + "$C_{EO}$ - bulk concentration of ethylene oxide in moles per $m^3$ (the limiting reagent, since we assume excess catalyst and water) \n", + "$k_0$ - pre-exponential Arrhenius factor per second \n", + "$E_a$ - reaction activation energy in kJ per mole of ethylene oxide consumed \n", + "$R$ - gas constant in J/mol-K \n", + "$T$ - reactor temperature in K\n", + "\n", + "These calculations are contained within the property, reaction and unit model packages, and do not need to be entered into the flowsheet. More information on property estimation may be found in the IDAES documentation on [Parameter Estimation](https://idaes-pse.readthedocs.io/en/stable/how_to_guides/workflow/data_rec_parmest.html).\n", + "\n", + "ParamEst parameter estimation: \n", + "\n", + "Let us import the following modules from the same directory as this Jupyter notebook:\n", + "- egprod_ideal as thermo_props\n", + "- egprod_reaction as reaction_props" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import egprod_ideal as thermo_props\n", + "import egprod_reaction as reaction_props" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Constructing the Flowsheet\n", + "\n", + "We have now imported all the components, unit models, and property modules we need to construct a flowsheet. Let us create a `ConcreteModel` and add the flowsheet block. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m = ConcreteModel()\n", + "m.fs = FlowsheetBlock(dynamic=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now need to add the property packages to the flowsheet. Unlike the basic [Flash unit model example](http://localhost:8888/notebooks/GitHub/examples-pse/src/Tutorials/Basics/flash_unit_solution_testing_doc.md), where we only had a thermophysical property package, for this flowsheet we will also need to add a reaction property package. We will use the [Modular Property Framework](https://idaes-pse.readthedocs.io/en/stable/explanations/components/property_package/index.html#generic-property-package-framework) and [Modular Reaction Framework](https://idaes-pse.readthedocs.io/en/stable/explanations/components/property_package/index.html#generic-reaction-package-framework). The get_prop method for the natural gas property module automatically returns the correct dictionary using a component list argument. The GenericParameterBlock and GenericReactionParameterBlock methods build states blocks from passed parameter data; the reaction block unpacks using **reaction_props.config_dict to allow for optional or empty keyword arguments:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "m.fs.thermo_params = GenericParameterBlock(**thermo_props.config_dict)\n", + "m.fs.reaction_params = GenericReactionParameterBlock(\n", + " property_package=m.fs.thermo_params, **reaction_props.config_dict\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Adding Unit Models\n", + "\n", + "Let us start adding the unit models we have imported to the flowsheet. Here, we are adding a `Mixer`, a `Heater` and a `CSTR`. Note that all unit models need to be given a property package argument. In addition to that, there are several arguments depending on the unit model, please refer to the documentation for more details on [IDAES Unit Models](https://idaes-pse.readthedocs.io/en/stable/reference_guides/model_libraries/index.html). For example, the `Mixer` is given a `list` consisting of names to the two inlets." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "m.fs.OXIDE = Feed(property_package=m.fs.thermo_params)\n", + "m.fs.ACID = Feed(property_package=m.fs.thermo_params)\n", + "m.fs.PROD = Product(property_package=m.fs.thermo_params)\n", + "m.fs.M101 = Mixer(\n", + " property_package=m.fs.thermo_params, inlet_list=[\"reagent_feed\", \"catalyst_feed\"]\n", + ")\n", + "m.fs.H101 = Heater(\n", + " property_package=m.fs.thermo_params,\n", + " has_pressure_change=False,\n", + " has_phase_equilibrium=False,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.R101 = CSTR(\n", + " property_package=m.fs.thermo_params,\n", + " reaction_package=m.fs.reaction_params,\n", + " has_heat_of_reaction=True,\n", + " has_heat_transfer=True,\n", + " has_pressure_change=False,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Connecting Unit Models Using Arcs\n", + "\n", + "We have now added all the unit models we need to the flowsheet. However, we have not yet specified how the units are to be connected. To do this, we will be using the `Arc` which is a pyomo component that takes in two arguments: `source` and `destination`. Let us connect the outlet of the `Mixer` to the inlet of the `Heater`, and the outlet of the `Heater` to the inlet of the `CSTR`. Additionally, we will connect the `Feed` and `Product` blocks to the flowsheet:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.s01 = Arc(source=m.fs.OXIDE.outlet, destination=m.fs.M101.reagent_feed)\n", + "m.fs.s02 = Arc(source=m.fs.ACID.outlet, destination=m.fs.M101.catalyst_feed)\n", + "m.fs.s03 = Arc(source=m.fs.M101.outlet, destination=m.fs.H101.inlet)\n", + "m.fs.s04 = Arc(source=m.fs.H101.outlet, destination=m.fs.R101.inlet)\n", + "m.fs.s05 = Arc(source=m.fs.R101.outlet, destination=m.fs.PROD.inlet)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We have now connected the unit model block using the arcs. However, we also need to link the state variables on connected ports. Pyomo provides a convenient method `TransformationFactory` to write these equality constraints for us between two ports:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "TransformationFactory(\"network.expand_arcs\").apply_to(m)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Adding Expressions to Compute Operating Costs\n", + "\n", + "In this section, we will add a few Expressions that allows us to evaluate the performance. `Expressions` provide a convenient way of calculating certain values that are a function of the variables defined in the model. For more details on `Expressions`, please refer to the [Pyomo Expression documentation]( https://pyomo.readthedocs.io/en/stable/pyomo_modeling_components/Expressions.html).\n", + "\n", + "For this flowsheet, we are interested in computing ethylene glycol production in millions of pounds per year, as well as the total costs due to cooling and heating utilities." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us first add an `Expression` to convert the product flow from mol/s to MM lb/year of ethylene glycol. We see that the molecular weight exists in the thermophysical property package, so we may use that value for our calculations." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.eg_prod = Expression(\n", + " expr=pyunits.convert(\n", + " m.fs.PROD.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"]\n", + " * m.fs.thermo_params.ethylene_glycol.mw, # MW defined in properties as kg/mol\n", + " to_units=pyunits.Mlb / pyunits.yr,\n", + " )\n", + ") # converting kg/s to MM lb/year" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let us add expressions to compute the reactor cooling cost (\\\\$/s) assuming a cost of 2.12E-5 \\\\$/kW, and the heating utility cost (\\\\$/s) assuming 2.2E-4 \\\\$/kW. Note that the heat duty is in units of watt (J/s). The total operating cost will be the sum of the two, expressed in \\\\$/year assuming 8000 operating hours per year (~10\\% downtime, which is fairly common for small scale chemical plants):" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.cooling_cost = Expression(\n", + " expr=2.12e-8 * (-m.fs.R101.heat_duty[0])\n", + ") # the reaction is exothermic, so R101 duty is negative\n", + "m.fs.heating_cost = Expression(\n", + " expr=2.2e-7 * m.fs.H101.heat_duty[0]\n", + ") # the stream must be heated to T_rxn, so H101 duty is positive\n", + "m.fs.operating_cost = Expression(\n", + " expr=(3600 * 8000 * (m.fs.heating_cost + m.fs.cooling_cost))\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Fixing Feed Conditions\n", + "\n", + "Let us first check how many degrees of freedom exist for this flowsheet using the `degrees_of_freedom` tool we imported earlier. We expect each stream to have 6 degrees of freedom, the mixer to have 0 (after both streams are accounted for), the heater to have 1 (just the duty, since the inlet is also the outlet of M101), and the reactor to have 1 (duty or conversion, since the inlet is also the outlet of H101). In this case, the reactor has an extra degree of freedom (reactor conversion or reactor volume) since we have not yet defined the CSTR performance equation. Therefore, we have 15 degrees of freedom to specify: temperature, pressure and flow of all four components on both streams; outlet heater temperature; reactor conversion and volume." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "print(degrees_of_freedom(m))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will now be fixing the feed stream to the conditions shown in the flowsheet above. As mentioned in other tutorials, the IDAES framework expects a time index value for every referenced internal stream or unit variable, even in steady-state systems with a single time point $ t = 0 $ (`t = [0]` is the default when creating a `FlowsheetBlock` without passing a `time_set` argument). The non-present components in each stream are assigned a very small non-zero value to help with convergence and initializing. Based on stoichiometric ratios for the reaction, 80% conversion and 200 MM lb/year (46.4 mol/s) of ethylene glycol, we will initialize our simulation with the following calculated values:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.OXIDE.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_oxide\"].fix(\n", + " 58.0 * pyunits.mol / pyunits.s\n", + ")\n", + "m.fs.OXIDE.outlet.flow_mol_phase_comp[0, \"Liq\", \"water\"].fix(\n", + " 39.6 * pyunits.mol / pyunits.s\n", + ") # calculated from 16.1 mol EO / cudm in stream\n", + "m.fs.OXIDE.outlet.flow_mol_phase_comp[0, \"Liq\", \"sulfuric_acid\"].fix(\n", + " 1e-5 * pyunits.mol / pyunits.s\n", + ")\n", + "m.fs.OXIDE.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"].fix(\n", + " 1e-5 * pyunits.mol / pyunits.s\n", + ")\n", + "m.fs.OXIDE.outlet.temperature.fix(298.15 * pyunits.K)\n", + "m.fs.OXIDE.outlet.pressure.fix(1e5 * pyunits.Pa)\n", + "\n", + "m.fs.ACID.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_oxide\"].fix(\n", + " 1e-5 * pyunits.mol / pyunits.s\n", + ")\n", + "m.fs.ACID.outlet.flow_mol_phase_comp[0, \"Liq\", \"water\"].fix(\n", + " 200 * pyunits.mol / pyunits.s\n", + ")\n", + "m.fs.ACID.outlet.flow_mol_phase_comp[0, \"Liq\", \"sulfuric_acid\"].fix(\n", + " 0.334 * pyunits.mol / pyunits.s\n", + ") # calculated from 0.9 wt% SA in stream\n", + "m.fs.ACID.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"].fix(\n", + " 1e-5 * pyunits.mol / pyunits.s\n", + ")\n", + "m.fs.ACID.outlet.temperature.fix(298.15 * pyunits.K)\n", + "m.fs.ACID.outlet.pressure.fix(1e5 * pyunits.Pa)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Fixing Unit Model Specifications\n", + "\n", + "Now that we have fixed our inlet feed conditions, we will now be fixing the operating conditions for the unit models in the flowsheet. Let us fix the outlet temperature of H101 to 328.15 K. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.H101.outlet.temperature.fix(328.15 * pyunits.K)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We'll add constraints defining the reactor volume and conversion in relation to the stream properties. Particularly, we want to use our CSTR performance relation: \n", + "\n", + "$V = \\frac{v_0 X} {k(1-X)}$, where the `CSTR` reaction volume $V$ will be specified, the inlet volumetric flow $v_0$ is determined by stream properties, $k$ is calculated by the reaction package, and $X$ will be calculated. Reactor volume is commonly selected as a specification in simulation problems, and choosing conversion is often to perform reactor design.\n", + "\n", + "For the `CSTR`, we have to define the conversion in terms of ethylene oxide as well as the `CSTR` reaction volume. This requires us to create new variables and constraints relating reactor properties to stream properties. Note that the `CSTR` reaction volume variable (m.fs.R101.volume) does not need to be defined here since it is internally defined by the `CSTR` model. Additionally, the heat duty is not fixed, since the heat of reaction depends on the reactor conversion (through the extent of reaction and heat of reaction). We'll estimate 80% conversion for our initial flowsheet:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.R101.conversion = Var(\n", + " initialize=0.80, bounds=(0, 1), units=pyunits.dimensionless\n", + ") # fraction\n", + "\n", + "m.fs.R101.conv_constraint = Constraint(\n", + " expr=m.fs.R101.conversion\n", + " * m.fs.R101.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_oxide\"]\n", + " == (\n", + " m.fs.R101.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_oxide\"]\n", + " - m.fs.R101.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_oxide\"]\n", + " )\n", + ")\n", + "\n", + "m.fs.R101.conversion.fix(0.80)\n", + "\n", + "m.fs.R101.volume.fix(5.538 * pyunits.m**3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For initialization, we solve a square problem (degrees of freedom = 0). Let's check the degrees of freedom below:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(degrees_of_freedom(m))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, we need to initialize the each unit operation in sequence to solve the flowsheet. As in best practice, unit operations are initialized or solved, and outlet properties are propagated to connected inlet streams via arc definitions as follows:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Initialize and solve each unit operation\n", + "m.fs.OXIDE.initialize()\n", + "propagate_state(arc=m.fs.s01)\n", + "\n", + "m.fs.ACID.initialize()\n", + "propagate_state(arc=m.fs.s01)\n", + "\n", + "m.fs.M101.initialize()\n", + "propagate_state(arc=m.fs.s03)\n", + "\n", + "m.fs.H101.initialize()\n", + "propagate_state(arc=m.fs.s04)\n", + "\n", + "m.fs.R101.initialize()\n", + "propagate_state(arc=m.fs.s05)\n", + "\n", + "m.fs.PROD.initialize()\n", + "\n", + "# set solver\n", + "solver = get_solver()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Solve the model\n", + "results = solver.solve(m, tee=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Analyze the Results of the Square Problem\n", + "\n", + "\n", + "What is the total operating cost? " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.6f} million per year\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For this operating cost, what conversion did we achieve of ethylene oxide to ethylene glycol? " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.R101.report()\n", + "\n", + "print()\n", + "print(f\"Conversion achieved = {value(m.fs.R101.conversion):.1%}\")\n", + "print()\n", + "print(\n", + " f\"Assuming a 20% design factor for reactor volume,\"\n", + " f\"total CSTR volume required = {value(1.2*m.fs.R101.volume[0]):0.6f}\"\n", + " f\" m^3 = {value(pyunits.convert(1.2*m.fs.R101.volume[0], to_units=pyunits.gal)):0.6f} gal\"\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Optimizing Ethylene Glycol Production\n", + "\n", + "Now that the flowsheet has been squared and solved, we can run a small optimization problem to minimize our production costs. Suppose we require at least 200 million pounds/year of ethylene glycol produced and 90% conversion of ethylene oxide, allowing for variable reactor volume (considering operating/non-capital costs only) and reactor temperature (heater outlet)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us declare our objective function for this problem. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.objective = Objective(expr=m.fs.operating_cost)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, we need to add the design constraints and unfix the decision variables as we had solved a square problem (degrees of freedom = 0) until now, as well as set bounds for the design variables:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.eg_prod_con = Constraint(\n", + " expr=m.fs.eg_prod >= 200 * pyunits.Mlb / pyunits.yr\n", + ") # MM lb/year\n", + "m.fs.R101.conversion.fix(0.90)\n", + "\n", + "m.fs.R101.volume.unfix()\n", + "m.fs.R101.volume.setlb(0 * pyunits.m**3)\n", + "m.fs.R101.volume.setub(pyunits.convert(5000 * pyunits.gal, to_units=pyunits.m**3))\n", + "\n", + "m.fs.H101.outlet.temperature.unfix()\n", + "m.fs.H101.outlet.temperature[0].setlb(328.15 * pyunits.K)\n", + "m.fs.H101.outlet.temperature[0].setub(\n", + " 470.45 * pyunits.K\n", + ") # highest component boiling point (ethylene glycol)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "We have now defined the optimization problem and we are now ready to solve this problem. \n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "results = solver.solve(m, tee=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.6f} million per year\")\n", + "\n", + "print()\n", + "print(\"Heater results\")\n", + "\n", + "m.fs.H101.report()\n", + "\n", + "print()\n", + "print(\"CSTR reactor results\")\n", + "\n", + "m.fs.R101.report()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Display optimal values for the decision variables and design variables:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(\"Optimal Values\")\n", + "print()\n", + "\n", + "print(f\"H101 outlet temperature = {value(m.fs.H101.outlet.temperature[0]):0.6f} K\")\n", + "\n", + "print()\n", + "print(\n", + " f\"Assuming a 20% design factor for reactor volume,\"\n", + " f\"total CSTR volume required = {value(1.2*m.fs.R101.volume[0]):0.6f}\"\n", + " f\" m^3 = {value(pyunits.convert(1.2*m.fs.R101.volume[0], to_units=pyunits.gal)):0.6f} gal\"\n", + ")\n", + "\n", + "print()\n", + "print(f\"Ethylene glycol produced = {value(m.fs.eg_prod):0.6f} MM lb/year\")\n", + "\n", + "print()\n", + "print(f\"Conversion achieved = {value(m.fs.R101.conversion):.1%}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } - ], - "source": [ - "print(degrees_of_freedom(m))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We will now be fixing the feed stream to the conditions shown in the flowsheet above. As mentioned in other tutorials, the IDAES framework expects a time index value for every referenced internal stream or unit variable, even in steady-state systems with a single time point $ t = 0 $ (`t = [0]` is the default when creating a `FlowsheetBlock` without passing a `time_set` argument). The non-present components in each stream are assigned a very small non-zero value to help with convergence and initializing. Based on stoichiometric ratios for the reaction, 80% conversion and 200 MM lb/year (46.4 mol/s) of ethylene glycol, we will initialize our simulation with the following calculated values:" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.OXIDE.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_oxide\"].fix(\n", - " 58.0 * pyunits.mol / pyunits.s\n", - ")\n", - "m.fs.OXIDE.outlet.flow_mol_phase_comp[0, \"Liq\", \"water\"].fix(\n", - " 39.6 * pyunits.mol / pyunits.s\n", - ") # calculated from 16.1 mol EO / cudm in stream\n", - "m.fs.OXIDE.outlet.flow_mol_phase_comp[0, \"Liq\", \"sulfuric_acid\"].fix(\n", - " 1e-5 * pyunits.mol / pyunits.s\n", - ")\n", - "m.fs.OXIDE.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"].fix(\n", - " 1e-5 * pyunits.mol / pyunits.s\n", - ")\n", - "m.fs.OXIDE.outlet.temperature.fix(298.15 * pyunits.K)\n", - "m.fs.OXIDE.outlet.pressure.fix(1e5 * pyunits.Pa)\n", - "\n", - "m.fs.ACID.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_oxide\"].fix(\n", - " 1e-5 * pyunits.mol / pyunits.s\n", - ")\n", - "m.fs.ACID.outlet.flow_mol_phase_comp[0, \"Liq\", \"water\"].fix(\n", - " 200 * pyunits.mol / pyunits.s\n", - ")\n", - "m.fs.ACID.outlet.flow_mol_phase_comp[0, \"Liq\", \"sulfuric_acid\"].fix(\n", - " 0.334 * pyunits.mol / pyunits.s\n", - ") # calculated from 0.9 wt% SA in stream\n", - "m.fs.ACID.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"].fix(\n", - " 1e-5 * pyunits.mol / pyunits.s\n", - ")\n", - "m.fs.ACID.outlet.temperature.fix(298.15 * pyunits.K)\n", - "m.fs.ACID.outlet.pressure.fix(1e5 * pyunits.Pa)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Fixing Unit Model Specifications\n", - "\n", - "Now that we have fixed our inlet feed conditions, we will now be fixing the operating conditions for the unit models in the flowsheet. Let us fix the outlet temperature of H101 to 328.15 K. " - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.H101.outlet.temperature.fix(328.15 * pyunits.K)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We'll add constraints defining the reactor volume and conversion in relation to the stream properties. Particularly, we want to use our CSTR performance relation: \n", - "\n", - "$V = \\frac{v_0 X} {k(1-X)}$, where the `CSTR` reaction volume $V$ will be specified, the inlet volumetric flow $v_0$ is determined by stream properties, $k$ is calculated by the reaction package, and $X$ will be calculated. Reactor volume is commonly selected as a specification in simulation problems, and choosing conversion is often to perform reactor design.\n", - "\n", - "For the `CSTR`, we have to define the conversion in terms of ethylene oxide as well as the `CSTR` reaction volume. This requires us to create new variables and constraints relating reactor properties to stream properties. Note that the `CSTR` reaction volume variable (m.fs.R101.volume) does not need to be defined here since it is internally defined by the `CSTR` model. Additionally, the heat duty is not fixed, since the heat of reaction depends on the reactor conversion (through the extent of reaction and heat of reaction). We'll estimate 80% conversion for our initial flowsheet:" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.R101.conversion = Var(\n", - " initialize=0.80, bounds=(0, 1), units=pyunits.dimensionless\n", - ") # fraction\n", - "\n", - "m.fs.R101.conv_constraint = Constraint(\n", - " expr=m.fs.R101.conversion\n", - " * m.fs.R101.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_oxide\"]\n", - " == (\n", - " m.fs.R101.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_oxide\"]\n", - " - m.fs.R101.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_oxide\"]\n", - " )\n", - ")\n", - "\n", - "m.fs.R101.conversion.fix(0.80)\n", - "\n", - "m.fs.R101.volume.fix(5.538 * pyunits.m**3)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For initialization, we solve a square problem (degrees of freedom = 0). Let's check the degrees of freedom below:" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0\n" - ] + ], + "metadata": { + "celltoolbar": "Tags", + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.18" } - ], - "source": [ - "print(degrees_of_freedom(m))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Finally, we need to initialize the each unit operation in sequence to solve the flowsheet. As in best practice, unit operations are initialized or solved, and outlet properties are propagated to connected inlet streams via arc definitions as follows:" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:22:02 [INFO] idaes.init.fs.OXIDE.properties: Starting initialization\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:22:02 [INFO] idaes.init.fs.OXIDE.properties: Property initialization: optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:22:02 [INFO] idaes.init.fs.OXIDE.properties: Property package initialization: optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:22:02 [INFO] idaes.init.fs.OXIDE: Initialization Complete.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:22:02 [INFO] idaes.init.fs.ACID.properties: Starting initialization\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:22:02 [INFO] idaes.init.fs.ACID.properties: Property initialization: optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:22:02 [INFO] idaes.init.fs.ACID.properties: Property package initialization: optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:22:02 [INFO] idaes.init.fs.ACID: Initialization Complete.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:22:02 [INFO] idaes.init.fs.M101.reagent_feed_state: Starting initialization\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:22:02 [INFO] idaes.init.fs.M101.reagent_feed_state: Property initialization: optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:22:02 [INFO] idaes.init.fs.M101.catalyst_feed_state: Starting initialization\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:22:02 [INFO] idaes.init.fs.M101.catalyst_feed_state: Property initialization: optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:22:02 [INFO] idaes.init.fs.M101.mixed_state: Starting initialization\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:22:02 [INFO] idaes.init.fs.M101.mixed_state: Property initialization: optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:22:02 [INFO] idaes.init.fs.M101.mixed_state: Property package initialization: optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:22:02 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:22:02 [INFO] idaes.init.fs.H101.control_volume.properties_in: Starting initialization\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:22:02 [INFO] idaes.init.fs.H101.control_volume.properties_in: Property initialization: optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:22:02 [INFO] idaes.init.fs.H101.control_volume.properties_out: Starting initialization\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:22:02 [INFO] idaes.init.fs.H101.control_volume.properties_out: Property initialization: optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:22:02 [INFO] idaes.init.fs.H101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:22:02 [INFO] idaes.init.fs.H101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:22:02 [INFO] idaes.init.fs.R101.control_volume.properties_in: Starting initialization\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:22:02 [INFO] idaes.init.fs.R101.control_volume.properties_in: Property initialization: optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:22:02 [INFO] idaes.init.fs.R101.control_volume.properties_out: Starting initialization\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:22:02 [INFO] idaes.init.fs.R101.control_volume.properties_out: Property initialization: optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:22:02 [INFO] idaes.init.fs.R101.control_volume.reactions: Initialization Complete.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:22:02 [INFO] idaes.init.fs.R101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:22:02 [INFO] idaes.init.fs.R101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:22:02 [INFO] idaes.init.fs.PROD.properties: Starting initialization\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:22:02 [INFO] idaes.init.fs.PROD.properties: Property initialization: optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:22:02 [INFO] idaes.init.fs.PROD.properties: Property package initialization: optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:22:02 [INFO] idaes.init.fs.PROD: Initialization Complete.\n" - ] - } - ], - "source": [ - "# Initialize and solve each unit operation\n", - "m.fs.OXIDE.initialize()\n", - "propagate_state(arc=m.fs.s01)\n", - "\n", - "m.fs.ACID.initialize()\n", - "propagate_state(arc=m.fs.s01)\n", - "\n", - "m.fs.M101.initialize()\n", - "propagate_state(arc=m.fs.s03)\n", - "\n", - "m.fs.H101.initialize()\n", - "propagate_state(arc=m.fs.s04)\n", - "\n", - "m.fs.R101.initialize()\n", - "propagate_state(arc=m.fs.s05)\n", - "\n", - "m.fs.PROD.initialize()\n", - "\n", - "# set solver\n", - "solver = get_solver()" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", - "tol=1e-06\n", - "max_iter=200\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 345\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 393\n", - "\n", - "Total number of variables............................: 96\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 87\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 96\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 1.30e+06 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 2.66e+06 1.65e+01 -1.0 9.75e+06 - 6.77e-02 9.90e-01h 1\n", - " 2 0.0000000e+00 2.36e+04 2.90e+02 -1.0 9.74e+04 - 7.00e-01 9.90e-01h 1\n", - " 3 0.0000000e+00 2.43e+02 1.43e+03 -1.0 9.75e+02 - 9.75e-01 9.90e-01h 1\n", - " 4 0.0000000e+00 1.85e+00 3.22e+03 -1.0 1.07e+01 - 9.90e-01 9.92e-01h 1\n", - " 5 0.0000000e+00 7.45e-08 4.66e+03 -1.0 8.41e-02 - 9.92e-01 1.00e+00h 1\n", - "Cannot recompute multipliers for feasibility problem. Error in eq_mult_calculator\n", - "\n", - "Number of Iterations....: 5\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 1.6686895357338362e+06 1.6686895357338362e+06\n", - "Constraint violation....: 1.5633344889834636e-09 7.4505805969238281e-08\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 1.5633344889834636e-09 1.6686895357338362e+06\n", - "\n", - "\n", - "Number of objective function evaluations = 6\n", - "Number of objective gradient evaluations = 6\n", - "Number of equality constraint evaluations = 6\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 6\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 5\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.003\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n" - ] - } - ], - "source": [ - "# Solve the model\n", - "results = solver.solve(m, tee=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Analyze the Results of the Square Problem\n", - "\n", - "\n", - "What is the total operating cost? " - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "operating cost = $3.458 million per year\n" - ] - } - ], - "source": [ - "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For this operating cost, what conversion did we achieve of ethylene oxide to ethylene glycol? " - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "====================================================================================\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Unit : fs.R101 Time: 0.0\n", - "------------------------------------------------------------------------------------\n", - " Unit Performance\n", - "\n", - " Variables: \n", - "\n", - " Key : Value : Units : Fixed : Bounds\n", - " Heat Duty : -5.6566e+06 : watt : False : (None, None)\n", - " Volume : 5.5380 : meter ** 3 : True : (None, None)\n", - "\n", - "------------------------------------------------------------------------------------\n", - " Stream Table\n", - " Units Inlet Outlet \n", - " Molar Flowrate ('Liq', 'ethylene_oxide') mole / second 58.000 11.600\n", - " Molar Flowrate ('Liq', 'water') mole / second 239.60 193.20\n", - " Molar Flowrate ('Liq', 'sulfuric_acid') mole / second 0.33401 0.33401\n", - " Molar Flowrate ('Liq', 'ethylene_glycol') mole / second 2.0000e-05 46.400\n", - " Temperature kelvin 328.15 328.27\n", - " Pressure pascal 1.0000e+05 1.0000e+05\n", - "====================================================================================\n", - "\n", - "Conversion achieved = 80.0%\n", - "\n", - "Assuming a 20% design factor for reactor volume,total CSTR volume required = 6.646 m^3 = 1755.582 gal\n" - ] - } - ], - "source": [ - "m.fs.R101.report()\n", - "\n", - "print()\n", - "print(f\"Conversion achieved = {value(m.fs.R101.conversion):.1%}\")\n", - "print()\n", - "print(\n", - " f\"Assuming a 20% design factor for reactor volume,\"\n", - " f\"total CSTR volume required = {value(1.2*m.fs.R101.volume[0]):0.3f}\"\n", - " f\" m^3 = {value(pyunits.convert(1.2*m.fs.R101.volume[0], to_units=pyunits.gal)):0.3f} gal\"\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Optimizing Ethylene Glycol Production\n", - "\n", - "Now that the flowsheet has been squared and solved, we can run a small optimization problem to minimize our production costs. Suppose we require at least 200 million pounds/year of ethylene glycol produced and 90% conversion of ethylene oxide, allowing for variable reactor volume (considering operating/non-capital costs only) and reactor temperature (heater outlet)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us declare our objective function for this problem. " - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.objective = Objective(expr=m.fs.operating_cost)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now, we need to add the design constraints and unfix the decision variables as we had solved a square problem (degrees of freedom = 0) until now, as well as set bounds for the design variables:" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.eg_prod_con = Constraint(\n", - " expr=m.fs.eg_prod >= 200 * pyunits.Mlb / pyunits.yr\n", - ") # MM lb/year\n", - "m.fs.R101.conversion.fix(0.90)\n", - "\n", - "m.fs.R101.volume.unfix()\n", - "m.fs.R101.volume.setlb(0 * pyunits.m**3)\n", - "m.fs.R101.volume.setub(pyunits.convert(5000 * pyunits.gal, to_units=pyunits.m**3))\n", - "\n", - "m.fs.H101.outlet.temperature.unfix()\n", - "m.fs.H101.outlet.temperature[0].setlb(328.15 * pyunits.K)\n", - "m.fs.H101.outlet.temperature[0].setub(\n", - " 470.45 * pyunits.K\n", - ") # highest component boiling point (ethylene glycol)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "We have now defined the optimization problem and we are now ready to solve this problem. \n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", - "tol=1e-06\n", - "max_iter=200\n", - "\n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 348\n", - "Number of nonzeros in inequality constraint Jacobian.: 1\n", - "Number of nonzeros in Lagrangian Hessian.............: 408\n", - "\n", - "Total number of variables............................: 98\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 89\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 96\n", - "Total number of inequality constraints...............: 1\n", - " inequality constraints with only lower bounds: 1\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 3.4581382e+06 1.76e+06 6.34e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 3.4605407e+06 1.75e+06 1.17e+01 -1.0 6.97e+05 - 7.82e-02 6.15e-03h 1\n", - " 2 3.4957712e+06 1.61e+06 5.18e+01 -1.0 6.96e+05 - 6.78e-02 8.29e-02h 1\n", - " 3 3.5296145e+06 1.47e+06 7.10e+01 -1.0 6.42e+05 - 3.96e-01 8.63e-02h 1\n", - " 4 3.6874124e+06 8.26e+05 2.09e+03 -1.0 5.90e+05 - 7.61e-01 4.38e-01h 1\n", - " 5 3.8876849e+06 1.02e+04 2.43e+03 -1.0 3.31e+05 - 9.39e-01 9.90e-01h 1\n", - " 6 3.8896921e+06 8.92e+01 2.75e+00 -1.0 3.31e+03 - 9.90e-01 9.91e-01h 1\n", - " 7 3.8897098e+06 3.14e-05 1.82e+03 -1.0 2.89e+01 - 9.91e-01 1.00e+00h 1\n", - " 8 3.8897096e+06 1.38e-06 3.37e-04 -1.7 1.42e-01 - 1.00e+00 1.00e+00f 1\n", - " 9 3.8897096e+06 8.68e-08 2.12e-05 -5.7 3.57e-02 - 1.00e+00 1.00e+00f 1\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 10 3.8897096e+06 2.79e-09 4.13e-07 -7.0 6.61e-06 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 10\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 3.8897095750395539e+06 3.8897095750395539e+06\n", - "Dual infeasibility......: 4.1300208155718159e-07 4.1300208155718159e-07\n", - "Constraint violation....: 8.9819498380703823e-15 2.7939677238464360e-09\n", - "Complementarity.........: 9.0909160154398524e-08 9.0909160154398524e-08\n", - "Overall NLP error.......: 9.0909160154398524e-08 4.1300208155718159e-07\n", - "\n", - "\n", - "Number of objective function evaluations = 11\n", - "Number of objective gradient evaluations = 11\n", - "Number of equality constraint evaluations = 11\n", - "Number of inequality constraint evaluations = 11\n", - "Number of equality constraint Jacobian evaluations = 11\n", - "Number of inequality constraint Jacobian evaluations = 11\n", - "Number of Lagrangian Hessian evaluations = 10\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.003\n", - "Total CPU secs in NLP function evaluations = 0.001\n", - "\n", - "EXIT: Optimal Solution Found.\n" - ] - } - ], - "source": [ - "results = solver.solve(m, tee=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "operating cost = $3.890 million per year\n", - "\n", - "Heater results\n", - "\n", - "====================================================================================\n", - "Unit : fs.H101 Time: 0.0\n", - "------------------------------------------------------------------------------------\n", - " Unit Performance\n", - "\n", - " Variables: \n", - "\n", - " Key : Value : Units : Fixed : Bounds\n", - " Heat Duty : 699.26 : watt : False : (None, None)\n", - "\n", - "------------------------------------------------------------------------------------\n", - " Stream Table\n", - " Units Inlet Outlet \n", - " Molar Flowrate ('Liq', 'ethylene_oxide') mole / second 58.000 58.000\n", - " Molar Flowrate ('Liq', 'water') mole / second 239.60 239.60\n", - " Molar Flowrate ('Liq', 'sulfuric_acid') mole / second 0.33401 0.33401\n", - " Molar Flowrate ('Liq', 'ethylene_glycol') mole / second 2.0000e-05 2.0000e-05\n", - " Temperature kelvin 298.15 328.15\n", - " Pressure pascal 1.0000e+05 1.0000e+05\n", - "====================================================================================\n", - "\n", - "CSTR reactor results\n", - "\n", - "====================================================================================\n", - "Unit : fs.R101 Time: 0.0\n", - "------------------------------------------------------------------------------------\n", - " Unit Performance\n", - "\n", - " Variables: \n", - "\n", - " Key : Value : Units : Fixed : Bounds\n", - " Heat Duty : -6.3635e+06 : watt : False : (None, None)\n", - " Volume : 18.927 : meter ** 3 : False : (0.0, 18.927058919999997)\n", - "\n", - "------------------------------------------------------------------------------------\n", - " Stream Table\n", - " Units Inlet Outlet \n", - " Molar Flowrate ('Liq', 'ethylene_oxide') mole / second 58.000 5.8000\n", - " Molar Flowrate ('Liq', 'water') mole / second 239.60 187.40\n", - " Molar Flowrate ('Liq', 'sulfuric_acid') mole / second 0.33401 0.33401\n", - " Molar Flowrate ('Liq', 'ethylene_glycol') mole / second 2.0000e-05 52.200\n", - " Temperature kelvin 328.15 338.37\n", - " Pressure pascal 1.0000e+05 1.0000e+05\n", - "====================================================================================\n" - ] - } - ], - "source": [ - "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")\n", - "\n", - "print()\n", - "print(\"Heater results\")\n", - "\n", - "m.fs.H101.report()\n", - "\n", - "print()\n", - "print(\"CSTR reactor results\")\n", - "\n", - "m.fs.R101.report()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Display optimal values for the decision variables and design variables:" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Optimal Values\n", - "\n", - "H101 outlet temperature = 328.150 K\n", - "\n", - "Assuming a 20% design factor for reactor volume,total CSTR volume required = 22.712 m^3 = 6000.000 gal\n", - "\n", - "Ethylene glycol produced = 225.415 MM lb/year\n", - "\n", - "Conversion achieved = 90.0%\n" - ] - } - ], - "source": [ - "print(\"Optimal Values\")\n", - "print()\n", - "\n", - "print(f\"H101 outlet temperature = {value(m.fs.H101.outlet.temperature[0]):0.3f} K\")\n", - "\n", - "print()\n", - "print(\n", - " f\"Assuming a 20% design factor for reactor volume,\"\n", - " f\"total CSTR volume required = {value(1.2*m.fs.R101.volume[0]):0.3f}\"\n", - " f\" m^3 = {value(pyunits.convert(1.2*m.fs.R101.volume[0], to_units=pyunits.gal)):0.3f} gal\"\n", - ")\n", - "\n", - "print()\n", - "print(f\"Ethylene glycol produced = {value(m.fs.eg_prod):0.3f} MM lb/year\")\n", - "\n", - "print()\n", - "print(f\"Conversion achieved = {value(m.fs.R101.conversion):.1%}\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "celltoolbar": "Tags", - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.5" - } - }, - "nbformat": 4, - "nbformat_minor": 3 -} + "nbformat": 4, + "nbformat_minor": 3 +} \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/unit_models/reactors/cstr_test.ipynb b/idaes_examples/notebooks/docs/unit_models/reactors/cstr_test.ipynb index 517309b5..a77d3809 100644 --- a/idaes_examples/notebooks/docs/unit_models/reactors/cstr_test.ipynb +++ b/idaes_examples/notebooks/docs/unit_models/reactors/cstr_test.ipynb @@ -54,7 +54,7 @@ "\n", "Ethylene glycol (EG) is a high-demand chemical, with billions of pounds produced every year for applications such as vehicle anti-freeze. EG may be readily obtained from the hydrolysis of ethylene oxide in the presence of a catalytic intermediate. In this example, an aqueous solution of ethylene oxide hydrolizes after mixing with an aqueous solution of sulfuric acid catalyst:\n", "\n", - "**C2H4O + H2O + H2SO4 → C2H6O2 + H2SO4**\n", + "**C2H4O + H2O + H2SO4 \u2192 C2H6O2 + H2SO4**\n", "\n", "This reaction often occurs by two mechanisms, as the catalyst may bind to either reactant before the final hydrolysis step; we will simplify the reaction to a single step for this example.\n", "\n", @@ -237,9 +237,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "scrolled": false - }, + "metadata": {}, "outputs": [], "source": [ "m.fs.R101 = CSTR(\n", @@ -584,7 +582,7 @@ "metadata": {}, "outputs": [], "source": [ - "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")" + "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.6f} million per year\")" ] }, { @@ -599,7 +597,7 @@ "source": [ "import pytest\n", "\n", - "assert value(m.fs.operating_cost) / 1e6 == pytest.approx(3.458138, abs=1e-3)" + "assert value(m.fs.operating_cost) / 1e6 == pytest.approx(8.004012, rel=1e-5)" ] }, { @@ -622,8 +620,8 @@ "print()\n", "print(\n", " f\"Assuming a 20% design factor for reactor volume,\"\n", - " f\"total CSTR volume required = {value(1.2*m.fs.R101.volume[0]):0.3f}\"\n", - " f\" m^3 = {value(pyunits.convert(1.2*m.fs.R101.volume[0], to_units=pyunits.gal)):0.3f} gal\"\n", + " f\"total CSTR volume required = {value(1.2*m.fs.R101.volume[0]):0.6f}\"\n", + " f\" m^3 = {value(pyunits.convert(1.2*m.fs.R101.volume[0], to_units=pyunits.gal)):0.6f} gal\"\n", ")" ] }, @@ -637,10 +635,10 @@ }, "outputs": [], "source": [ - "assert value(m.fs.R101.conversion) == pytest.approx(0.8000, abs=1e-3)\n", - "assert value(m.fs.R101.volume[0]) == pytest.approx(5.5380, abs=1e-3)\n", - "assert value(m.fs.R101.heat_duty[0]) / 1e6 == pytest.approx(-5.6566, abs=1e-3)\n", - "assert value(m.fs.R101.outlet.temperature[0]) / 1e2 == pytest.approx(3.2827, abs=1e-3)" + "assert value(m.fs.R101.conversion) == pytest.approx(0.8000, rel=1e-5)\n", + "assert value(m.fs.R101.volume[0]) == pytest.approx(5.5380, rel=1e-5)\n", + "assert value(m.fs.R101.heat_duty[0]) / 1e6 == pytest.approx(-5.8675, rel=1e-5)\n", + "assert value(m.fs.R101.outlet.temperature[0]) / 1e2 == pytest.approx(3.29261, rel=1e-5)" ] }, { @@ -751,7 +749,7 @@ "metadata": {}, "outputs": [], "source": [ - "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")\n", + "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.6f} million per year\")\n", "\n", "print()\n", "print(\"Heater results\")\n", @@ -774,8 +772,8 @@ }, "outputs": [], "source": [ - "assert value(m.fs.operating_cost) / 1e6 == pytest.approx(3.889709, abs=1e-3)\n", - "assert value(m.fs.R101.volume[0]) == pytest.approx(18.927, abs=1e-3)" + "assert value(m.fs.operating_cost) / 1e6 == pytest.approx(8.318177, rel=1e-5)\n", + "assert value(m.fs.R101.volume[0]) == pytest.approx(18.927, rel=1e-5)" ] }, { @@ -794,17 +792,17 @@ "print(\"Optimal Values\")\n", "print()\n", "\n", - "print(f\"H101 outlet temperature = {value(m.fs.H101.outlet.temperature[0]):0.3f} K\")\n", + "print(f\"H101 outlet temperature = {value(m.fs.H101.outlet.temperature[0]):0.6f} K\")\n", "\n", "print()\n", "print(\n", " f\"Assuming a 20% design factor for reactor volume,\"\n", - " f\"total CSTR volume required = {value(1.2*m.fs.R101.volume[0]):0.3f}\"\n", - " f\" m^3 = {value(pyunits.convert(1.2*m.fs.R101.volume[0], to_units=pyunits.gal)):0.3f} gal\"\n", + " f\"total CSTR volume required = {value(1.2*m.fs.R101.volume[0]):0.6f}\"\n", + " f\" m^3 = {value(pyunits.convert(1.2*m.fs.R101.volume[0], to_units=pyunits.gal)):0.6f} gal\"\n", ")\n", "\n", "print()\n", - "print(f\"Ethylene glycol produced = {value(m.fs.eg_prod):0.3f} MM lb/year\")\n", + "print(f\"Ethylene glycol produced = {value(m.fs.eg_prod):0.6f} MM lb/year\")\n", "\n", "print()\n", "print(f\"Conversion achieved = {value(m.fs.R101.conversion):.1%}\")" @@ -820,10 +818,10 @@ }, "outputs": [], "source": [ - "assert value(m.fs.H101.outlet.temperature[0]) / 100 == pytest.approx(3.2815, abs=1e-3)\n", - "assert value(m.fs.R101.volume[0] * 1.2) == pytest.approx(22.712, abs=1e-3)\n", - "assert value(m.fs.eg_prod) == pytest.approx(225.415, abs=1e-3)\n", - "assert value(m.fs.R101.conversion) * 100 == pytest.approx(90.0, abs=1e-3)" + "assert value(m.fs.H101.outlet.temperature[0]) / 100 == pytest.approx(3.2815, rel=1e-5)\n", + "assert value(m.fs.R101.volume[0] * 1.2) == pytest.approx(22.712471, rel=1e-5)\n", + "assert value(m.fs.eg_prod) == pytest.approx(225.415, rel=1e-5)\n", + "assert value(m.fs.R101.conversion) * 100 == pytest.approx(90.0, rel=1e-5)" ] }, { @@ -851,9 +849,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.12" + "version": "3.9.18" } }, "nbformat": 4, "nbformat_minor": 3 -} +} \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/unit_models/reactors/cstr_usr.ipynb b/idaes_examples/notebooks/docs/unit_models/reactors/cstr_usr.ipynb index 40b3f0a5..946169b9 100644 --- a/idaes_examples/notebooks/docs/unit_models/reactors/cstr_usr.ipynb +++ b/idaes_examples/notebooks/docs/unit_models/reactors/cstr_usr.ipynb @@ -54,7 +54,7 @@ "\n", "Ethylene glycol (EG) is a high-demand chemical, with billions of pounds produced every year for applications such as vehicle anti-freeze. EG may be readily obtained from the hydrolysis of ethylene oxide in the presence of a catalytic intermediate. In this example, an aqueous solution of ethylene oxide hydrolizes after mixing with an aqueous solution of sulfuric acid catalyst:\n", "\n", - "**C2H4O + H2O + H2SO4 → C2H6O2 + H2SO4**\n", + "**C2H4O + H2O + H2SO4 \u2192 C2H6O2 + H2SO4**\n", "\n", "This reaction often occurs by two mechanisms, as the catalyst may bind to either reactant before the final hydrolysis step; we will simplify the reaction to a single step for this example.\n", "\n", @@ -237,9 +237,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "scrolled": false - }, + "metadata": {}, "outputs": [], "source": [ "m.fs.R101 = CSTR(\n", @@ -540,7 +538,7 @@ "metadata": {}, "outputs": [], "source": [ - "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")" + "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.6f} million per year\")" ] }, { @@ -563,8 +561,8 @@ "print()\n", "print(\n", " f\"Assuming a 20% design factor for reactor volume,\"\n", - " f\"total CSTR volume required = {value(1.2*m.fs.R101.volume[0]):0.3f}\"\n", - " f\" m^3 = {value(pyunits.convert(1.2*m.fs.R101.volume[0], to_units=pyunits.gal)):0.3f} gal\"\n", + " f\"total CSTR volume required = {value(1.2*m.fs.R101.volume[0]):0.6f}\"\n", + " f\" m^3 = {value(pyunits.convert(1.2*m.fs.R101.volume[0], to_units=pyunits.gal)):0.6f} gal\"\n", ")" ] }, @@ -647,7 +645,7 @@ "metadata": {}, "outputs": [], "source": [ - "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")\n", + "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.6f} million per year\")\n", "\n", "print()\n", "print(\"Heater results\")\n", @@ -676,17 +674,17 @@ "print(\"Optimal Values\")\n", "print()\n", "\n", - "print(f\"H101 outlet temperature = {value(m.fs.H101.outlet.temperature[0]):0.3f} K\")\n", + "print(f\"H101 outlet temperature = {value(m.fs.H101.outlet.temperature[0]):0.6f} K\")\n", "\n", "print()\n", "print(\n", " f\"Assuming a 20% design factor for reactor volume,\"\n", - " f\"total CSTR volume required = {value(1.2*m.fs.R101.volume[0]):0.3f}\"\n", - " f\" m^3 = {value(pyunits.convert(1.2*m.fs.R101.volume[0], to_units=pyunits.gal)):0.3f} gal\"\n", + " f\"total CSTR volume required = {value(1.2*m.fs.R101.volume[0]):0.6f}\"\n", + " f\" m^3 = {value(pyunits.convert(1.2*m.fs.R101.volume[0], to_units=pyunits.gal)):0.6f} gal\"\n", ")\n", "\n", "print()\n", - "print(f\"Ethylene glycol produced = {value(m.fs.eg_prod):0.3f} MM lb/year\")\n", + "print(f\"Ethylene glycol produced = {value(m.fs.eg_prod):0.6f} MM lb/year\")\n", "\n", "print()\n", "print(f\"Conversion achieved = {value(m.fs.R101.conversion):.1%}\")" @@ -717,9 +715,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.12" + "version": "3.9.18" } }, "nbformat": 4, "nbformat_minor": 3 -} +} \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/unit_models/reactors/egprod_ideal.py b/idaes_examples/notebooks/docs/unit_models/reactors/egprod_ideal.py index d9aab2f4..1c18b1fc 100644 --- a/idaes_examples/notebooks/docs/unit_models/reactors/egprod_ideal.py +++ b/idaes_examples/notebooks/docs/unit_models/reactors/egprod_ideal.py @@ -45,10 +45,9 @@ # 4th edition, Chemical Engineering Series - Robert C. Reid # [2] Perry's Chemical Engineers' Handbook 7th Ed. # [3] NIST Chemistry WebBook, https://webbook.nist.gov/chemistry/ -# Retrieved 23rd September, 2021 -# [4] B. Ruscic and D. H. Bross, Active Thermochemical Tables (ATcT) -# values based on ver. 1.122r of the Thermochemical Network (2021); -# available at ATcT.anl.gov +# Retrieved 18th March, 2024 +# [4] Chemeo - Chemical properties of Sulfuric Acid, +# https://www.chemeo.com/cid/24-837-6/Sulfuric-Acid # [5] CRC Handbook of Chemistry and Physics, 97th Ed., W.M. Haynes # [6] Journal of Physical and Chemical Reference Data 20, 1157 # (1991); https:// doi.org/10.1063/1.555899 @@ -56,175 +55,233 @@ config_dict = { # Specifying components "components": { - 'ethylene_oxide': - {"type": Component, - "elemental_composition": {"C": 2, "H": 4, "O": 1}, - "dens_mol_liq_comp": Perrys, - "enth_mol_liq_comp": Perrys, - "enth_mol_ig_comp": RPP4, - "pressure_sat_comp": RPP4, - "phase_equilibrium_form": {("Vap", "Liq"): fugacity}, - "parameter_data": { - "mw": (44.054E-3, pyunits.kg/pyunits.mol), # [1] - "pressure_crit": (71.9e5, pyunits.Pa), # [1] - "temperature_crit": (469, pyunits.K), # [1] - "dens_mol_liq_comp_coeff": { - 'eqn_type': 1, - '1': (1.1836, pyunits.kmol*pyunits.m**-3), # [2] pg. 2-98 - '2': (0.26024, None), - '3': (469.15, pyunits.K), - '4': (0.2696, None)}, - "cp_mol_ig_comp_coeff": { - 'A': (-7.519E0, pyunits.J/pyunits.mol/pyunits.K), # [1] - 'B': (2.222E-1, pyunits.J/pyunits.mol/pyunits.K**2), - 'C': (-1.256E-4, pyunits.J/pyunits.mol/pyunits.K**3), - 'D': (2.592E-8, pyunits.J/pyunits.mol/pyunits.K**4)}, - "cp_mol_liq_comp_coeff": { - '1': (1.4471E2, pyunits.J/pyunits.kmol/pyunits.K), # [2] - '2': (-7.5887E-1, pyunits.J/pyunits.kmol/pyunits.K**2), - '3': (2.8261E-3, pyunits.J/pyunits.kmol/pyunits.K**3), - '4': (-3.064E-6, pyunits.J/pyunits.kmol/pyunits.K**4), - '5': (0, pyunits.J/pyunits.kmol/pyunits.K**5)}, - "enth_mol_form_liq_comp_ref": ( - -95.7e3, pyunits.J/pyunits.mol), # [4] - "enth_mol_form_vap_comp_ref": ( - -52.61e3, pyunits.J/pyunits.mol), # [3] - "pressure_sat_comp_coeff": {'A': (-6.56234, None), # [1] - 'B': (0.42696, None), - 'C': (-1.25638, None), - 'D': (-3.18133, None)}}}, - 'water': - {"type": Component, - "elemental_composition": {"H": 2, "O": 1}, - "dens_mol_liq_comp": Perrys, - "enth_mol_liq_comp": Perrys, - "enth_mol_ig_comp": RPP4, - "pressure_sat_comp": RPP4, - "phase_equilibrium_form": {("Vap", "Liq"): fugacity}, - "parameter_data": { - "mw": (18.015E-3, pyunits.kg/pyunits.mol), # [1] - "pressure_crit": (221.2e5, pyunits.Pa), # [1] - "temperature_crit": (647.3, pyunits.K), # [1] - "dens_mol_liq_comp_coeff": { - 'eqn_type': 2, - '1': (-13.851, pyunits.kmol/pyunits.m**3), # [2]pg. 2-98 - '2': (0.64038, pyunits.kmol/pyunits.m**3/pyunits.K), - '3': (-0.00191, pyunits.kmol/pyunits.m**3/pyunits.K**2), - '4': (1.8211E-6, pyunits.kmol/pyunits.m**3/pyunits.K**3)}, - "cp_mol_ig_comp_coeff": { - 'A': (3.194E1, pyunits.J/pyunits.mol/pyunits.K), # [1] - 'B': (1.436E-3, pyunits.J/pyunits.mol/pyunits.K**2), - 'C': (2.432E-5, pyunits.J/pyunits.mol/pyunits.K**3), - 'D': (-1.176E-8, pyunits.J/pyunits.mol/pyunits.K**4)}, - "cp_mol_liq_comp_coeff": { - '1': (2.7637E2, pyunits.J/pyunits.kmol/pyunits.K), # [2] - '2': (-2.0901, pyunits.J/pyunits.kmol/pyunits.K**2), - '3': (8.125E-3, pyunits.J/pyunits.kmol/pyunits.K**3), - '4': (-1.4116E-5, pyunits.J/pyunits.kmol/pyunits.K**4), - '5': (9.3701E-9, pyunits.J/pyunits.kmol/pyunits.K**5)}, - "enth_mol_form_liq_comp_ref": ( - -285.83e3, pyunits.J/pyunits.mol), # [3] - "enth_mol_form_vap_comp_ref": ( - -241.836e3, pyunits.J/pyunits.mol), # [3] - "pressure_sat_comp_coeff": {'A': (-7.76451, None), # [1] - 'B': (1.45838, None), - 'C': (-2.77580, None), - 'D': (-1.23303, None)}}}, - 'sulfuric_acid': - {"type": Component, - "elemental_composition": {"H": 2, "S": 1, "O": 4}, - "dens_mol_liq_comp": Perrys, # fitted to this equation form - "enth_mol_liq_comp": Perrys, # fitted to this equation form - "enth_mol_ig_comp": NIST, - "pressure_sat_comp": RPP4, # fitted to this equation form - "phase_equilibrium_form": {("Vap", "Liq"): fugacity}, - "parameter_data": { - "mw": (98.078E-3, pyunits.kg/pyunits.mol), # [4] - "pressure_crit": (129.4262e5, pyunits.Pa), # [4] - "temperature_crit": (590.76, pyunits.K), # [4] - "dens_mol_liq_comp_coeff": { - 'eqn_type': 2, - '1': (23.669, pyunits.kmol/pyunits.m**3), # [5] - '2': (-2.5307E-2, pyunits.kmol/pyunits.m**3/pyunits.K), - '3': (3.3523E-4, pyunits.kmol/pyunits.m**3/pyunits.K**2), - '4': (-1.8538E-7, pyunits.kmol/pyunits.m**3/pyunits.K**3)}, - "cp_mol_ig_comp_coeff": { - 'A': (47.28924, pyunits.J/pyunits.mol/pyunits.K), # [3] - 'B': (190.3314, pyunits.J/pyunits.mol/pyunits.K/pyunits.kK), - 'C': (-148.1299, pyunits.J/pyunits.mol/pyunits.K/pyunits.kK**2), - 'D': (43.86631, pyunits.J/pyunits.mol/pyunits.K/pyunits.kK**3), - 'E': (-0.740016, pyunits.J/pyunits.mol/pyunits.K/pyunits.kK**-2), - 'F': (-758.9525, pyunits.kJ/pyunits.mol), - 'G': (301.2961, pyunits.J/pyunits.mol/pyunits.K), - 'H': (-735.1288, pyunits.kJ/pyunits.mol)}, - "cp_mol_liq_comp_coeff": { - '1': (-202.695, pyunits.J/pyunits.kmol/pyunits.K), # [6] - '2': (2.9994, pyunits.J/pyunits.kmol/pyunits.K**2), - '3': (-9.239e-3, pyunits.J/pyunits.kmol/pyunits.K**3), - '4': (1.0113e-5, pyunits.J/pyunits.kmol/pyunits.K**4), - '5': (0, pyunits.J/pyunits.kmol/pyunits.K**5)}, - "enth_mol_form_liq_comp_ref": ( - -868.73e3, pyunits.J/pyunits.mol), # [4] - "enth_mol_form_vap_comp_ref": ( - -801.14e3, pyunits.J/pyunits.mol), # [4] - "pressure_sat_comp_coeff": {'A': (-18.122, None), # [5] - 'B': (10.596, None), - 'C': (-18.908, None), - 'D': (-32.728, None)}}}, - 'ethylene_glycol': - {"type": Component, - "elemental_composition": {"C": 2, "H": 6, "O": 2}, - "dens_mol_liq_comp": Perrys, - "enth_mol_liq_comp": Perrys, - "enth_mol_ig_comp": RPP4, - "pressure_sat_comp": RPP4, - "phase_equilibrium_form": {("Vap", "Liq"): fugacity}, - "parameter_data": { - "mw": (62.069E-3, pyunits.kg/pyunits.mol), # [1] - "pressure_crit": (77e5, pyunits.Pa), # [1] - "temperature_crit": (645, pyunits.K), # [1] - "dens_mol_liq_comp_coeff": { - 'eqn_type': 1, - '1': (1.315, pyunits.kmol*pyunits.m**-3), # [2] pg. 2-98 - '2': (0.25125, None), - '3': (720, pyunits.K), - '4': (0.21868, None)}, - "cp_mol_ig_comp_coeff": { - 'A': (3.570E1, pyunits.J/pyunits.mol/pyunits.K), # [1] - 'B': (2.483E-1, pyunits.J/pyunits.mol/pyunits.K**2), - 'C': (-1.497E-4, pyunits.J/pyunits.mol/pyunits.K**3), - 'D': (3.010E-8, pyunits.J/pyunits.mol/pyunits.K**4)}, - "cp_mol_liq_comp_coeff": { - '1': (3.5540E1, pyunits.J/pyunits.kmol/pyunits.K), # [2] - '2': (4.3678E-1, pyunits.J/pyunits.kmol/pyunits.K**2), - '3': (-1.8486E-4, pyunits.J/pyunits.kmol/pyunits.K**3), - '4': (0, pyunits.J/pyunits.kmol/pyunits.K**4), - '5': (0, pyunits.J/pyunits.kmol/pyunits.K**5)}, - "enth_mol_form_liq_comp_ref": ( - -455.24e3, pyunits.J/pyunits.mol), # [3] - "enth_mol_form_vap_comp_ref": ( - -389.37e3, pyunits.J/pyunits.mol), # [3] - "pressure_sat_comp_coeff": {'A': (13.6299, None), # [1] - 'B': (6022.18, None), - 'C': (-28.25, None), - 'D': (0, None)}}}}, - + "ethylene_oxide": { + "type": Component, + "elemental_composition": {"C": 2, "H": 4, "O": 1}, + "dens_mol_liq_comp": Perrys, + "enth_mol_liq_comp": Perrys, + "enth_mol_ig_comp": RPP4, + "pressure_sat_comp": RPP4, + "phase_equilibrium_form": {("Vap", "Liq"): fugacity}, + "parameter_data": { + "mw": (44.054e-3, pyunits.kg / pyunits.mol), # [1] pg. 676 + "pressure_crit": (71.9e5, pyunits.Pa), # [1] pg. 676 + "temperature_crit": (469, pyunits.K), # [1] pg. 676 + "dens_mol_liq_comp_coeff": { # [2] pg. 2-97 + "eqn_type": 1, + "1": (1.836, pyunits.kmol * pyunits.m**-3), + "2": (0.26024, None), + "3": (469.15, pyunits.K), + "4": (0.2696, None), + }, + "cp_mol_ig_comp_coeff": { # [1] pg. 677 + "A": (-7.519e0, pyunits.J / pyunits.mol / pyunits.K), + "B": (2.222e-1, pyunits.J / pyunits.mol / pyunits.K**2), + "C": (-1.256e-4, pyunits.J / pyunits.mol / pyunits.K**3), + "D": (2.592e-8, pyunits.J / pyunits.mol / pyunits.K**4), + }, + "cp_mol_liq_comp_coeff": { # [2] pg. 2-173 + "1": (1.4471e5, pyunits.J / pyunits.kmol / pyunits.K), + "2": (-7.5887e2, pyunits.J / pyunits.kmol / pyunits.K**2), + "3": (2.8261, pyunits.J / pyunits.kmol / pyunits.K**3), + "4": (-3.0640e-3, pyunits.J / pyunits.kmol / pyunits.K**4), + "5": (0, pyunits.J / pyunits.kmol / pyunits.K**5), + }, + "enth_mol_form_liq_comp_ref": ( + -95.7e3, + pyunits.J / pyunits.mol, + ), # [3] updated 5/10/24 + "enth_mol_form_vap_comp_ref": ( + -52.64e3, + pyunits.J / pyunits.mol, + ), # [3] updated 5/10/24 + "pressure_sat_comp_coeff": { + "A": (-6.56234, None), # [1] pg. 678 + "B": (0.42696, None), + "C": (-1.25638, None), + "D": (-3.18133, None), + }, + }, + }, + "water": { + "type": Component, + "elemental_composition": {"H": 2, "O": 1}, + "dens_mol_liq_comp": Perrys, + "enth_mol_liq_comp": Perrys, + "enth_mol_ig_comp": RPP4, + "pressure_sat_comp": RPP4, + "phase_equilibrium_form": {("Vap", "Liq"): fugacity}, + "parameter_data": { + "mw": (18.015e-3, pyunits.kg / pyunits.mol), # [1] pg. 667 + "pressure_crit": (221.2e5, pyunits.Pa), # [1] pg. 667 + "temperature_crit": (647.3, pyunits.K), # [1] pg. 667 + "dens_mol_liq_comp_coeff": { # [2] pg. 2-98 + "eqn_type": 1, + "1": (5.459, pyunits.kmol * pyunits.m**-3), + "2": (0.30542, None), + "3": (647.13, pyunits.K), + "4": (0.081, None), + }, + "cp_mol_ig_comp_coeff": { # [1] pg. 668 + "A": (3.224e1, pyunits.J / pyunits.mol / pyunits.K), + "B": (1.924e-3, pyunits.J / pyunits.mol / pyunits.K**2), + "C": (1.055e-5, pyunits.J / pyunits.mol / pyunits.K**3), + "D": (-3.596e-9, pyunits.J / pyunits.mol / pyunits.K**4), + }, + "cp_mol_liq_comp_coeff": { # [2] pg. 2-174 + "1": (2.7637e5, pyunits.J / pyunits.kmol / pyunits.K), + "2": (-2.0901e3, pyunits.J / pyunits.kmol / pyunits.K**2), + "3": (8.1250, pyunits.J / pyunits.kmol / pyunits.K**3), + "4": (-1.4116e-2, pyunits.J / pyunits.kmol / pyunits.K**4), + "5": (9.3701e-6, pyunits.J / pyunits.kmol / pyunits.K**5), + }, + "enth_mol_form_liq_comp_ref": ( + -285.830e3, + pyunits.J / pyunits.mol, + ), # [3] updated 5/10/24 + "enth_mol_form_vap_comp_ref": ( + -241.826e3, + pyunits.J / pyunits.mol, + ), # [3] updated 5/10/24 + "pressure_sat_comp_coeff": { + "A": (-7.76451, None), # [1] pg. 669 + "B": (1.45838, None), + "C": (-2.77580, None), + "D": (-1.23303, None), + }, + }, + }, + "sulfuric_acid": { + "type": Component, + "elemental_composition": {"H": 2, "S": 1, "O": 4}, + "dens_mol_liq_comp": Perrys, # fitted to this equation form + "enth_mol_liq_comp": Perrys, # fitted to this equation form + "enth_mol_ig_comp": NIST, + "pressure_sat_comp": RPP4, # fitted to this equation form + "phase_equilibrium_form": {("Vap", "Liq"): fugacity}, + "parameter_data": { + "mw": (98.08e-3, pyunits.kg / pyunits.mol), # [4] 5/20/24 + "pressure_crit": (129.4262e5, pyunits.Pa), # [4] 5/20/2024 + "temperature_crit": (590.76, pyunits.K), # [4] 5/202/24 + "dens_mol_liq_comp_coeff": { + "eqn_type": 2, # [5] pg. 15-41 regressed from 100% H2SO4 density data + "1": (23.669, pyunits.kmol / pyunits.m**3), + "2": (-2.5307e-2, pyunits.kmol / pyunits.m**3 / pyunits.K), + "3": (3.3523e-5, pyunits.kmol / pyunits.m**3 / pyunits.K**2), + "4": (-1.8538e-8, pyunits.kmol / pyunits.m**3 / pyunits.K**3), + }, + "cp_mol_ig_comp_coeff": { # [3] valid on 298-1200 K, updated 5/10/2024 + "A": (47.28924, pyunits.J / pyunits.mol / pyunits.K), + "B": (190.3314, pyunits.J / pyunits.mol / pyunits.K / pyunits.kK), + "C": ( + -148.1299, + pyunits.J / pyunits.mol / pyunits.K / pyunits.kK**2, + ), + "D": ( + 43.86631, + pyunits.J / pyunits.mol / pyunits.K / pyunits.kK**3, + ), + "E": ( + -0.740016, + pyunits.J / pyunits.mol / pyunits.K / pyunits.kK**-2, + ), + "F": (-758.9525, pyunits.kJ / pyunits.mol), + "G": (301.2961, pyunits.J / pyunits.mol / pyunits.K), + "H": (-735.1288, pyunits.kJ / pyunits.mol), + }, + "cp_mol_liq_comp_coeff": { # [6] pg. 1189 regressed from x1=1 and Cp/R for all T values + "1": (-202.695, pyunits.J / pyunits.kmol / pyunits.K), + "2": (2.9994, pyunits.J / pyunits.kmol / pyunits.K**2), + "3": (-9.239e-3, pyunits.J / pyunits.kmol / pyunits.K**3), + "4": (1.0113e-5, pyunits.J / pyunits.kmol / pyunits.K**4), + "5": (0, pyunits.J / pyunits.kmol / pyunits.K**5), + }, + "enth_mol_form_liq_comp_ref": ( + -810.4097e3, + pyunits.J / pyunits.mol, + ), # [6] Table 4 pg. 1183 + "enth_mol_form_vap_comp_ref": ( + -735.13e3, + pyunits.J / pyunits.mol, + ), # [3] updated 5/10/24 + "pressure_sat_comp_coeff": { + "A": (-18.122, None), # [5] data for regression on pg. 6-122 + "B": (10.596, None), + "C": (-18.908, None), + "D": (-32.728, None), + }, + }, + }, + "ethylene_glycol": { + "type": Component, + "elemental_composition": {"C": 2, "H": 6, "O": 2}, + "dens_mol_liq_comp": Perrys, + "enth_mol_liq_comp": Perrys, + "enth_mol_ig_comp": RPP4, + "pressure_sat_comp": RPP4, + "phase_equilibrium_form": {("Vap", "Liq"): fugacity}, + "parameter_data": { + "mw": (62.069e-3, pyunits.kg / pyunits.mol), # [1] pg. 676 + "pressure_crit": (77e5, pyunits.Pa), # [1] pg. 676 + "temperature_crit": (645, pyunits.K), # [1] pg. 676 + "dens_mol_liq_comp_coeff": { # [2] pg. 2-95 + "eqn_type": 1, + "1": (1.3151, pyunits.kmol * pyunits.m**-3), + "2": (0.25125, None), + "3": (719.7, pyunits.K), + "4": (0.2187, None), + }, + "cp_mol_ig_comp_coeff": { # [1] pg. 677 + "A": (3.570e1, pyunits.J / pyunits.mol / pyunits.K), + "B": (2.483e-1, pyunits.J / pyunits.mol / pyunits.K**2), + "C": (-1.497e-4, pyunits.J / pyunits.mol / pyunits.K**3), + "D": (3.010e-8, pyunits.J / pyunits.mol / pyunits.K**4), + }, + "cp_mol_liq_comp_coeff": { # [2] pg. 2-171 + "1": (3.5540e4, pyunits.J / pyunits.kmol / pyunits.K), + "2": (4.3678e2, pyunits.J / pyunits.kmol / pyunits.K**2), + "3": (-1.8486e-1, pyunits.J / pyunits.kmol / pyunits.K**3), + "4": (0, pyunits.J / pyunits.kmol / pyunits.K**4), + "5": (0, pyunits.J / pyunits.kmol / pyunits.K**5), + }, + "enth_mol_form_liq_comp_ref": ( + -460.0e3, + pyunits.J / pyunits.mol, + ), # [3] updated 5/10/24 + "enth_mol_form_vap_comp_ref": ( + -394.4e3, + pyunits.J / pyunits.mol, + ), # [3] updated 5/10/24 + # [1] pg. 678 pressure sat coef values for alternative equation form + # ln Pvp = A - B/(T + C) with A = 13.6299, B = 6022.18, C = -28.25 + # reformulated for generic property supported form + # ln Pvp = [(1 - x)^-1 * (A*x + B*x^1.5 + C*x^3 + D*x^6)] * Pc where x = 1 - T/Tc + "pressure_sat_comp_coeff": { + "A": (-16.4022, None), + "B": (10.0100, None), + "C": (-6.5216, None), + "D": (-11.1182, None), + }, + }, + }, + }, # Specifying phases - "phases": {'Liq': {"type": LiquidPhase, - "equation_of_state": Ideal}}, - + "phases": {"Liq": {"type": LiquidPhase, "equation_of_state": Ideal}}, # Set base units of measurement - "base_units": {"time": pyunits.s, - "length": pyunits.m, - "mass": pyunits.kg, - "amount": pyunits.mol, - "temperature": pyunits.K}, - + "base_units": { + "time": pyunits.s, + "length": pyunits.m, + "mass": pyunits.kg, + "amount": pyunits.mol, + "temperature": pyunits.K, + }, # Specifying state definition "state_definition": FpcTP, - "state_bounds": {"flow_mol_phase_comp": (0, 100, 1000, - pyunits.mol/pyunits.s), - "temperature": (273.15, 298.15, 450, pyunits.K), - "pressure": (5e4, 1e5, 1e6, pyunits.Pa)}, + "state_bounds": { + "flow_mol_phase_comp": (0, 100, 1000, pyunits.mol / pyunits.s), + "temperature": (273.15, 298.15, 450, pyunits.K), + "pressure": (5e4, 1e5, 1e6, pyunits.Pa), + }, "pressure_ref": (1e5, pyunits.Pa), - "temperature_ref": (298.15, pyunits.K)} + "temperature_ref": (298.15, pyunits.K), +} diff --git a/idaes_examples/notebooks/docs/unit_models/reactors/equilibrium_reactor_doc.ipynb b/idaes_examples/notebooks/docs/unit_models/reactors/equilibrium_reactor_doc.ipynb index 0a3935a7..bafa95cf 100644 --- a/idaes_examples/notebooks/docs/unit_models/reactors/equilibrium_reactor_doc.ipynb +++ b/idaes_examples/notebooks/docs/unit_models/reactors/equilibrium_reactor_doc.ipynb @@ -1,1352 +1,1098 @@ { - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "tags": [ - "header", - "hide-cell" - ] - }, - "outputs": [], - "source": [ - "###############################################################################\n", - "# The Institute for the Design of Advanced Energy Systems Integrated Platform\n", - "# Framework (IDAES IP) was produced under the DOE Institute for the\n", - "# Design of Advanced Energy Systems (IDAES).\n", - "#\n", - "# Copyright (c) 2018-2023 by the software owners: The Regents of the\n", - "# University of California, through Lawrence Berkeley National Laboratory,\n", - "# National Technology & Engineering Solutions of Sandia, LLC, Carnegie Mellon\n", - "# University, West Virginia University Research Corporation, et al.\n", - "# All rights reserved. Please see the files COPYRIGHT.md and LICENSE.md\n", - "# for full copyright and license information.\n", - "###############################################################################" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "# Flowsheet Equilibrium Reactor Simulation and Optimization of Steam Methane Reforming\n", - "Maintainer: Brandon Paul \n", - "Author: Brandon Paul \n", - "Updated: 2023-06-01 \n", - "\n", - "\n", - "## Learning Outcomes\n", - "\n", - "\n", - "- Call and implement the IDAES EquilibriumReactor unit model\n", - "- Construct a steady-state flowsheet using the IDAES unit model library\n", - "- Connecting unit models in a flowsheet using Arcs\n", - "- Fomulate and solve an optimization problem\n", - " - Defining an objective function\n", - " - Setting variable bounds\n", - " - Adding additional constraints \n", - "\n", - "\n", - "## Problem Statement\n", - "\n", - "This example is adapted from S.Z. Abbas, V. Dupont, T. Mahmud, Kinetics study and modelling of steam methane reforming process over a NiO/Al2O3 catalyst in an adiabatic packed bed reactor. Int. J. Hydrogen Energy, 42 (2017), pp. 2889-2903\n", - "\n", - "Steam methane reforming (SMR) is one of the most common pathways for hydrogen production, taking advantage of chemical equilibria in natural gas systems. The process is typically done in two steps: methane reformation at a high temperature to partially oxidize methane, and water gas shift at a low temperature to complete the oxidation reaction:\n", - "\n", - "**CH4 + H2O → CO + 3H2** \n", - "**CO + H2O → CO2 + H2**\n", - "\n", - "This reaction is often carried out in two separate reactors to allow for different reaction temperatures and pressures; in this example, we will minimize operating cost for a single reactor.\n", - "\n", - "The flowsheet that we will be using for this module is shown below with the stream conditions. We will be processing natural gas and steam feeds of fixed composition to produce hydrogen. As shown in the flowsheet, the process consists of a mixer M101 for the two inlet streams, a compressor to compress the feed to the reaction pressure, a heater H101 to heat the feed to the reaction temperature, and a EquilibriumReactor unit R101. We will use thermodynamic properties from the Peng-Robinson equation of state for this flowsheet.\n", - "\n", - "The state variables chosen for the property package are **total molar flows of each stream, temperature of each stream and pressure of each stream, and mole fractions of each component in each stream**. The components considered are: **CH4, H2O, CO, CO2, and H2** and the process occurs in vapor phase only. Therefore, every stream has 1 flow variable, 5 mole fraction variables, 1 temperature and 1 pressure variable. \n", - "\n", - "![](msr_flowsheet.png)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Importing Required Pyomo and IDAES Components\n", - "\n", - "\n", - "To construct a flowsheet, we will need several components from the Pyomo and IDAES packages. Let us first import the following components from Pyomo:\n", - "- Constraint (to write constraints)\n", - "- Var (to declare variables)\n", - "- ConcreteModel (to create the concrete model object)\n", - "- Expression (to evaluate values as a function of variables defined in the model)\n", - "- Objective (to define an objective function for optimization)\n", - "- TransformationFactory (to apply certain transformations)\n", - "- Arc (to connect two unit models)\n", - "\n", - "For further details on these components, please refer to the pyomo documentation: https://pyomo.readthedocs.io/en/stable/\n", - "\n", - "From IDAES, we will be needing the `FlowsheetBlock` and the following unit models:\n", - "- Feed\n", - "- Mixer\n", - "- Compressor\n", - "- Heater\n", - "- EquilibriumReactor\n", - "- Product\n", - "\n", - "We will also be needing some utility tools to put together the flowsheet and calculate the degrees of freedom, tools for model expressions and calling variable values, and built-in functions to define property packages, add unit containers to objects and define our initialization scheme.\n" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "from pyomo.environ import (\n", - " Constraint,\n", - " Var,\n", - " ConcreteModel,\n", - " Expression,\n", - " Objective,\n", - " TransformationFactory,\n", - " value,\n", - " units as pyunits,\n", - ")\n", - "from pyomo.network import Arc\n", - "\n", - "from idaes.core import FlowsheetBlock\n", - "from idaes.models.properties.modular_properties.base.generic_property import (\n", - " GenericParameterBlock,\n", - ")\n", - "from idaes.models.properties.modular_properties.base.generic_reaction import (\n", - " GenericReactionParameterBlock,\n", - ")\n", - "from idaes.models.unit_models import (\n", - " Feed,\n", - " Mixer,\n", - " Compressor,\n", - " Heater,\n", - " EquilibriumReactor,\n", - " Product,\n", - ")\n", - "\n", - "from idaes.core.solvers import get_solver\n", - "from idaes.core.util.model_statistics import degrees_of_freedom\n", - "from idaes.core.util.initialization import propagate_state" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Importing Required Thermophysical and Reaction Packages\n", - "\n", - "The final step is to import the thermophysical and reaction packages. We will import natural gas properties from an existing IDAES module, and reaction properties from a custom module to describe equilibrium behavior. These configuration dictionaries provide parameter data that we will pass to the Modular Property Framework.\n", - "\n", - "The reaction package here assumes all reactions reach chemical equilibrium at the given conditions. \n", - "\n", - "${K_{eq}^{MSR}} = \\exp\\left(\\frac {-26830} {T} + 30.114\\right)$, ${K_{eq}^{WGS}} = \\exp\\left(\\frac {4400} {T} - 4.036\\right)$ with the reactor temperature $T$ in K. \n", - "The total reaction equilibrium constant is given by $K_{eq} = {K_{eq}^{MSR}}{K_{eq}^{WGS}}$.\n", - "\n", - "The correlations are taken from the following literature: \n", - "\n", - "Int. J. Hydrogen Energy, 42 (2017), pp. 2889-2903\n", - "\n", - "### Determining $k_{eq}^{ref}$\n", - "\n", - "As part of the parameter dictionary, users may define equilibrium reactions using a constant coefficient or built-in correlations for van't Hoff and Gibbs formulations. Using the literature correlations above for $k_{eq}$, we can easily calculate the necessary parameters to use the van't Hoff equilibrium constant form:\n", - "\n", - "For an empirical correlation $ln(k_{eq}) = f(T)$ for a catalyst (reaction) temperature $T$, we obtain $k_{eq}^{ref} = \\exp\\left({f(T_{eq}^{ref})}\\right)$. From the paper, we obtain a reference catalyst temperature of 973.15 K and reaction energies for the two reaction steps; these values exist in the reaction property parameter module in this same directory.\n", - "\n", - "These calculations are contained within the property, reaction and unit model packages, and do not need to be entered into the flowsheet. More information on property estimation may be found in the IDAES documentation on [Parameter Estimation](https://idaes-pse.readthedocs.io/en/stable/how_to_guides/workflow/data_rec_parmest.html).\n", - "\n", - "Let us import the following modules:\n", - "- natural_gas_PR as get_prop (method to get configuration dictionary)\n", - "- msr_reaction as reaction_props (contains configuration dictionary)" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "from idaes.models_extra.power_generation.properties.natural_gas_PR import get_prop\n", - "import msr_reaction as reaction_props" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Constructing the Flowsheet\n", - "\n", - "We have now imported all the components, unit models, and property modules we need to construct a flowsheet. Let us create a `ConcreteModel` and add the flowsheet block. " - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "m = ConcreteModel()\n", - "m.fs = FlowsheetBlock(dynamic=False)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We now need to add the property packages to the flowsheet. Unlike the basic [Flash unit model example](http://localhost:8888/notebooks/GitHub/examples-pse/src/Tutorials/Basics/flash_unit_solution_testing_doc.md), where we only had a thermophysical property package, for this flowsheet we will also need to add a reaction property package. We will use the [Modular Property Framework](https://idaes-pse.readthedocs.io/en/stable/explanations/components/property_package/index.html#generic-property-package-framework) and [Modular Reaction Framework](https://idaes-pse.readthedocs.io/en/stable/explanations/components/property_package/index.html#generic-reaction-package-framework). The `get_prop` method for the natural gas property module automatically returns the correct dictionary using a component list argument. The `GenericParameterBlock` and `GenericReactionParameterBlock` methods build states blocks from passed parameter data; the reaction block unpacks using `**reaction_props.config_dict` to allow for optional or empty keyword arguments:" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "thermo_props_config_dict = get_prop(components=[\"CH4\", \"H2O\", \"H2\", \"CO\", \"CO2\"])\n", - "m.fs.thermo_params = GenericParameterBlock(**thermo_props_config_dict)\n", - "m.fs.reaction_params = GenericReactionParameterBlock(\n", - " property_package=m.fs.thermo_params, **reaction_props.config_dict\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Adding Unit Models\n", - "\n", - "Let us start adding the unit models we have imported to the flowsheet. Here, we are adding a `Mixer`, a `Compressor`, a `Heater` and an `EquilibriumReactor`. Note that all unit models should be explicitly defined with a given property package. In addition to that, there are several arguments depending on the unit model, please refer to the documentation for more details on [IDAES Unit Models](https://idaes-pse.readthedocs.io/en/stable/reference_guides/model_libraries/index.html). For example, the `Mixer` is given a `list` consisting of names to the two inlets. Note that the `Compressor` is a `PressureChanger` assuming compression operation and with a fixed isentropic compressor efficiency as the default thermodynamic behavior." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "m.fs.CH4 = Feed(property_package=m.fs.thermo_params)\n", - "m.fs.H2O = Feed(property_package=m.fs.thermo_params)\n", - "m.fs.PROD = Product(property_package=m.fs.thermo_params)\n", - "m.fs.M101 = Mixer(\n", - " property_package=m.fs.thermo_params, inlet_list=[\"methane_feed\", \"steam_feed\"]\n", - ")\n", - "m.fs.H101 = Heater(\n", - " property_package=m.fs.thermo_params,\n", - " has_pressure_change=False,\n", - " has_phase_equilibrium=False,\n", - ")\n", - "m.fs.C101 = Compressor(property_package=m.fs.thermo_params)" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "scrolled": false - }, - "outputs": [], - "source": [ - "m.fs.R101 = EquilibriumReactor(\n", - " property_package=m.fs.thermo_params,\n", - " reaction_package=m.fs.reaction_params,\n", - " has_equilibrium_reactions=True,\n", - " has_rate_reactions=False,\n", - " has_heat_of_reaction=True,\n", - " has_heat_transfer=True,\n", - " has_pressure_change=False,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Connecting Unit Models Using Arcs\n", - "\n", - "We have now added all the unit models we need to the flowsheet. However, we have not yet specified how the units are to be connected. To do this, we will be using the `Arc` which is a Pyomo component that takes in two arguments: `source` and `destination`. Let us connect the outlet of the `Mixer` to the inlet of the `Compressor`, the outlet of the compressor `Compressor` to the inlet of the `Heater`, and the outlet of the `Heater` to the inlet of the `EquilibriumReactor`. Additionally, we will connect the `Feed` and `Product` blocks to the flowsheet:" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.s01 = Arc(source=m.fs.CH4.outlet, destination=m.fs.M101.methane_feed)\n", - "m.fs.s02 = Arc(source=m.fs.H2O.outlet, destination=m.fs.M101.steam_feed)\n", - "m.fs.s03 = Arc(source=m.fs.M101.outlet, destination=m.fs.C101.inlet)\n", - "m.fs.s04 = Arc(source=m.fs.C101.outlet, destination=m.fs.H101.inlet)\n", - "m.fs.s05 = Arc(source=m.fs.H101.outlet, destination=m.fs.R101.inlet)\n", - "m.fs.s06 = Arc(source=m.fs.R101.outlet, destination=m.fs.PROD.inlet)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We have now connected the unit model block using the arcs. However, we also need to link the state variables on connected ports. Pyomo provides a convenient method `TransformationFactory` to write these equality constraints for us between two ports:" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "TransformationFactory(\"network.expand_arcs\").apply_to(m)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Adding Expressions to Compute Operating Costs\n", - "\n", - "In this section, we will add a few `Expressions` that allow us to evaluate the performance. `Expressions` provide a convenient way of calculating certain values that are a function of the variables defined in the model. For more details on `Expressions`, please refer to the [Pyomo Expression documentation](https://pyomo.readthedocs.io/en/stable/pyomo_modeling_components/Expressions.html).\n", - "\n", - "For this flowsheet, we are interested in computing hydrogen production in millions of pounds per year, as well as the total costs due to pressurizing, cooling, and heating utilities.\n", - "\n", - "Let us first add an `Expression` to convert the product flow from mol/s to MM lb/year of hydrogen. We see that the molecular weight exists in the thermophysical property package, so we may use that value for our calculations." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.hyd_prod = Expression(\n", - " expr=pyunits.convert(\n", - " m.fs.PROD.inlet.flow_mol[0]\n", - " * m.fs.PROD.inlet.mole_frac_comp[0, \"H2\"]\n", - " * m.fs.thermo_params.H2.mw, # MW defined in properties as kg/mol\n", - " to_units=pyunits.Mlb / pyunits.yr,\n", - " )\n", - ") # converting kg/s to MM lb/year" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now, let us add expressions to compute the reactor cooling cost (\\\\$/s) assuming a cost of 2.12E-5 \\\\$/kW, the compression cost (\\\\$/s) assuming 1.2E-3 \\\\$/kW, and the heating utility cost (\\\\$/s) assuming 2.2E-4 \\\\$/kW. Note that the heat duty is in units of Watt (J/s). The total operating cost will be the sum of the costs, expressed in \\\\$/year assuming 8000 operating hours per year (~10\\% downtime, which is fairly common for small scale chemical plants):" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.cooling_cost = Expression(\n", - " expr=2.12e-8 * (m.fs.R101.heat_duty[0])\n", - ") # the reaction is endothermic, so R101 duty is positive\n", - "m.fs.heating_cost = Expression(\n", - " expr=2.2e-7 * m.fs.H101.heat_duty[0]\n", - ") # the stream must be heated to T_rxn, so H101 duty is positive\n", - "m.fs.compression_cost = Expression(\n", - " expr=1.2e-6 * m.fs.C101.work_isentropic[0]\n", - ") # the stream must be pressurized, so the C101 work is positive\n", - "m.fs.operating_cost = Expression(\n", - " expr=(3600 * 8000 * (m.fs.heating_cost + m.fs.cooling_cost + m.fs.compression_cost))\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Fixing Feed Conditions\n", - "\n", - "Let us first check how many degrees of freedom exist for this flowsheet using the `degrees_of_freedom` tool we imported earlier. We expect each stream to have 8 degrees of freedom, the mixer to have 0 (after both streams are accounted for), the compressor to have 2 (the pressure change and efficiency), the heater to have 1 (just the duty, since the inlet is also the outlet of M101), and the reactor to have 1 (conversion). Therefore, we have 20 degrees of freedom to specify: temperature, pressure, flow and mole fractions of all five components on both streams; compressor pressure change and efficiency; outlet heater temperature; and reactor conversion.\n", - "\n", - "Although the model has eight degrees of freedom per stream, the mole fractions are not all independent and the physical system only has seven. Each `StateBlock` sets a flag `defined_state` based on any remaining degrees of freedom; if this flag is set to `False` a `Constraint` is written to ensure all mole fractions sum to one. However, a fully specified system with `defined_state` set to `True` will not create this constraint and it is the responsibility of the user to set physically meaningful values, i.e. that all mole fractions are nonnegative and sum to one. While not necessary in this example, the [Custom Thermophysical Property Package Example](http://localhost:8888/notebooks/GitHub/examples-pse/src/Examples/Advanced/CustomProperties/custom_physical_property_packages_testing_doc.md) demonstrates adding a check before writing an additional constraint that may overspecify the system." - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "20\n" - ] - } - ], - "source": [ - "print(degrees_of_freedom(m))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We will now be fixing the feed stream to the conditions shown in the flowsheet above. As mentioned in other tutorials, the IDAES framework expects a time index value for every referenced internal stream or unit variable, even in steady-state systems with a single time point $ t = 0 $ (`t = [0]` is the default when creating a `FlowsheetBlock` without passing a `time_set` argument). The non-present components in each stream are assigned a very small non-zero value to help with convergence and initializing. Based on the literature source, we will initialize our simulation with the following values:" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.CH4.outlet.mole_frac_comp[0, \"CH4\"].fix(1)\n", - "m.fs.CH4.outlet.mole_frac_comp[0, \"H2O\"].fix(1e-5)\n", - "m.fs.CH4.outlet.mole_frac_comp[0, \"H2\"].fix(1e-5)\n", - "m.fs.CH4.outlet.mole_frac_comp[0, \"CO\"].fix(1e-5)\n", - "m.fs.CH4.outlet.mole_frac_comp[0, \"CO2\"].fix(1e-5)\n", - "m.fs.CH4.outlet.flow_mol.fix(75 * pyunits.mol / pyunits.s)\n", - "m.fs.CH4.outlet.temperature.fix(298.15 * pyunits.K)\n", - "m.fs.CH4.outlet.pressure.fix(1e5 * pyunits.Pa)\n", - "\n", - "m.fs.H2O.outlet.mole_frac_comp[0, \"CH4\"].fix(1e-5)\n", - "m.fs.H2O.outlet.mole_frac_comp[0, \"H2O\"].fix(1)\n", - "m.fs.H2O.outlet.mole_frac_comp[0, \"H2\"].fix(1e-5)\n", - "m.fs.H2O.outlet.mole_frac_comp[0, \"CO\"].fix(1e-5)\n", - "m.fs.H2O.outlet.mole_frac_comp[0, \"CO2\"].fix(1e-5)\n", - "m.fs.H2O.outlet.flow_mol.fix(234 * pyunits.mol / pyunits.s)\n", - "m.fs.H2O.outlet.temperature.fix(373.15 * pyunits.K)\n", - "m.fs.H2O.outlet.pressure.fix(1e5 * pyunits.Pa)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Fixing Unit Model Specifications\n", - "\n", - "Now that we have fixed our inlet feed conditions, we will now be fixing the operating conditions for the unit models in the flowsheet. For the initial problem, let us fix the compressor outlet pressure to 2 bar for now, the efficiency to 0.90 (a common assumption for compressor units), and the heater outlet temperature to 500 K. We will unfix these values later to optimize the flowsheet." - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.C101.outlet.pressure.fix(pyunits.convert(2 * pyunits.bar, to_units=pyunits.Pa))\n", - "m.fs.C101.efficiency_isentropic.fix(0.90)\n", - "m.fs.H101.outlet.temperature.fix(500 * pyunits.K)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The `EquilibriumReactor` unit model calculates the amount of product and reactant based on the calculated equilibrium constant; therefore, we will specify a desired conversion and let the solver determine the reactor duty and heat transfer. For convenience, we will define the reactor conversion as the amount of methane that is converted." - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.R101.conversion = Var(\n", - " initialize=0.80, bounds=(0, 1), units=pyunits.dimensionless\n", - ") # fraction\n", - "\n", - "m.fs.R101.conv_constraint = Constraint(\n", - " expr=m.fs.R101.conversion\n", - " * m.fs.R101.inlet.flow_mol[0]\n", - " * m.fs.R101.inlet.mole_frac_comp[0, \"CH4\"]\n", - " == (\n", - " m.fs.R101.inlet.flow_mol[0] * m.fs.R101.inlet.mole_frac_comp[0, \"CH4\"]\n", - " - m.fs.R101.outlet.flow_mol[0] * m.fs.R101.outlet.mole_frac_comp[0, \"CH4\"]\n", - " )\n", - ")\n", - "\n", - "m.fs.R101.conversion.fix(0.80)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For initialization, we solve a square problem (degrees of freedom = 0). Let's check the degrees of freedom below:" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ + "cells": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "0\n" - ] - } - ], - "source": [ - "print(degrees_of_freedom(m))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Finally, we need to initialize each unit operation in sequence to solve the flowsheet. As in best practice, unit operations are initialized or solved, and outlet properties are propagated to connected inlet streams via arc definitions as follows:" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ + "cell_type": "code", + "execution_count": 1, + "metadata": { + "tags": [ + "header", + "hide-cell" + ] + }, + "outputs": [], + "source": [ + "###############################################################################\n", + "# The Institute for the Design of Advanced Energy Systems Integrated Platform\n", + "# Framework (IDAES IP) was produced under the DOE Institute for the\n", + "# Design of Advanced Energy Systems (IDAES).\n", + "#\n", + "# Copyright (c) 2018-2023 by the software owners: The Regents of the\n", + "# University of California, through Lawrence Berkeley National Laboratory,\n", + "# National Technology & Engineering Solutions of Sandia, LLC, Carnegie Mellon\n", + "# University, West Virginia University Research Corporation, et al.\n", + "# All rights reserved. Please see the files COPYRIGHT.md and LICENSE.md\n", + "# for full copyright and license information.\n", + "###############################################################################" + ] + }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:20 [INFO] idaes.init.fs.CH4.properties: Starting initialization\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "# Flowsheet Equilibrium Reactor Simulation and Optimization of Steam Methane Reforming\n", + "Maintainer: Brandon Paul \n", + "Author: Brandon Paul \n", + "Updated: 2023-06-01 \n", + "\n", + "\n", + "## Learning Outcomes\n", + "\n", + "\n", + "- Call and implement the IDAES EquilibriumReactor unit model\n", + "- Construct a steady-state flowsheet using the IDAES unit model library\n", + "- Connecting unit models in a flowsheet using Arcs\n", + "- Fomulate and solve an optimization problem\n", + " - Defining an objective function\n", + " - Setting variable bounds\n", + " - Adding additional constraints \n", + "\n", + "\n", + "## Problem Statement\n", + "\n", + "This example is adapted from S.Z. Abbas, V. Dupont, T. Mahmud, Kinetics study and modelling of steam methane reforming process over a NiO/Al2O3 catalyst in an adiabatic packed bed reactor. Int. J. Hydrogen Energy, 42 (2017), pp. 2889-2903\n", + "\n", + "Steam methane reforming (SMR) is one of the most common pathways for hydrogen production, taking advantage of chemical equilibria in natural gas systems. The process is typically done in two steps: methane reformation at a high temperature to partially oxidize methane, and water gas shift at a low temperature to complete the oxidation reaction:\n", + "\n", + "**CH4 + H2O \u2192 CO + 3H2** \n", + "**CO + H2O \u2192 CO2 + H2**\n", + "\n", + "This reaction is often carried out in two separate reactors to allow for different reaction temperatures and pressures; in this example, we will minimize operating cost for a single reactor.\n", + "\n", + "The flowsheet that we will be using for this module is shown below with the stream conditions. We will be processing natural gas and steam feeds of fixed composition to produce hydrogen. As shown in the flowsheet, the process consists of a mixer M101 for the two inlet streams, a compressor to compress the feed to the reaction pressure, a heater H101 to heat the feed to the reaction temperature, and a EquilibriumReactor unit R101. We will use thermodynamic properties from the Peng-Robinson equation of state for this flowsheet.\n", + "\n", + "The state variables chosen for the property package are **total molar flows of each stream, temperature of each stream and pressure of each stream, and mole fractions of each component in each stream**. The components considered are: **CH4, H2O, CO, CO2, and H2** and the process occurs in vapor phase only. Therefore, every stream has 1 flow variable, 5 mole fraction variables, 1 temperature and 1 pressure variable. \n", + "\n", + "![](msr_flowsheet.png)\n" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:20 [INFO] idaes.init.fs.CH4.properties: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Importing Required Pyomo and IDAES Components\n", + "\n", + "\n", + "To construct a flowsheet, we will need several components from the Pyomo and IDAES packages. Let us first import the following components from Pyomo:\n", + "- Constraint (to write constraints)\n", + "- Var (to declare variables)\n", + "- ConcreteModel (to create the concrete model object)\n", + "- Expression (to evaluate values as a function of variables defined in the model)\n", + "- Objective (to define an objective function for optimization)\n", + "- TransformationFactory (to apply certain transformations)\n", + "- Arc (to connect two unit models)\n", + "\n", + "For further details on these components, please refer to the pyomo documentation: https://pyomo.readthedocs.io/en/stable/\n", + "\n", + "From IDAES, we will be needing the `FlowsheetBlock` and the following unit models:\n", + "- Feed\n", + "- Mixer\n", + "- Compressor\n", + "- Heater\n", + "- EquilibriumReactor\n", + "- Product\n", + "\n", + "We will also be needing some utility tools to put together the flowsheet and calculate the degrees of freedom, tools for model expressions and calling variable values, and built-in functions to define property packages, add unit containers to objects and define our initialization scheme.\n" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:20 [INFO] idaes.init.fs.CH4.properties: Property package initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "from pyomo.environ import (\n", + " Constraint,\n", + " Var,\n", + " ConcreteModel,\n", + " Expression,\n", + " Objective,\n", + " TransformationFactory,\n", + " value,\n", + " units as pyunits,\n", + ")\n", + "from pyomo.network import Arc\n", + "\n", + "from idaes.core import FlowsheetBlock\n", + "from idaes.models.properties.modular_properties.base.generic_property import (\n", + " GenericParameterBlock,\n", + ")\n", + "from idaes.models.properties.modular_properties.base.generic_reaction import (\n", + " GenericReactionParameterBlock,\n", + ")\n", + "from idaes.models.unit_models import (\n", + " Feed,\n", + " Mixer,\n", + " Compressor,\n", + " Heater,\n", + " EquilibriumReactor,\n", + " Product,\n", + ")\n", + "\n", + "from idaes.core.solvers import get_solver\n", + "from idaes.core.util.model_statistics import degrees_of_freedom\n", + "from idaes.core.util.initialization import propagate_state" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:20 [INFO] idaes.init.fs.CH4: Initialization Complete.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Importing Required Thermophysical and Reaction Packages\n", + "\n", + "The final step is to import the thermophysical and reaction packages. We will import natural gas properties from an existing IDAES module, and reaction properties from a custom module to describe equilibrium behavior. These configuration dictionaries provide parameter data that we will pass to the Modular Property Framework.\n", + "\n", + "The reaction package here assumes all reactions reach chemical equilibrium at the given conditions. \n", + "\n", + "${K_{eq}^{MSR}} = \\exp\\left(\\frac {-26830} {T} + 30.114\\right)$, ${K_{eq}^{WGS}} = \\exp\\left(\\frac {4400} {T} - 4.036\\right)$ with the reactor temperature $T$ in K. \n", + "The total reaction equilibrium constant is given by $K_{eq} = {K_{eq}^{MSR}}{K_{eq}^{WGS}}$.\n", + "\n", + "The correlations are taken from the following literature: \n", + "\n", + "Int. J. Hydrogen Energy, 42 (2017), pp. 2889-2903\n", + "\n", + "### Determining $k_{eq}^{ref}$\n", + "\n", + "As part of the parameter dictionary, users may define equilibrium reactions using a constant coefficient or built-in correlations for van't Hoff and Gibbs formulations. Using the literature correlations above for $k_{eq}$, we can easily calculate the necessary parameters to use the van't Hoff equilibrium constant form:\n", + "\n", + "For an empirical correlation $ln(k_{eq}) = f(T)$ for a catalyst (reaction) temperature $T$, we obtain $k_{eq}^{ref} = \\exp\\left({f(T_{eq}^{ref})}\\right)$. From the paper, we obtain a reference catalyst temperature of 973.15 K and reaction energies for the two reaction steps; these values exist in the reaction property parameter module in this same directory.\n", + "\n", + "These calculations are contained within the property, reaction and unit model packages, and do not need to be entered into the flowsheet. More information on property estimation may be found in the IDAES documentation on [Parameter Estimation](https://idaes-pse.readthedocs.io/en/stable/how_to_guides/workflow/data_rec_parmest.html).\n", + "\n", + "Let us import the following modules:\n", + "- natural_gas_PR as get_prop (method to get configuration dictionary)\n", + "- msr_reaction as reaction_props (contains configuration dictionary)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:20 [INFO] idaes.init.fs.H2O.properties: Starting initialization\n" - ] + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "from idaes.models_extra.power_generation.properties.natural_gas_PR import get_prop\n", + "import msr_reaction as reaction_props" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:20 [INFO] idaes.init.fs.H2O.properties: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Constructing the Flowsheet\n", + "\n", + "We have now imported all the components, unit models, and property modules we need to construct a flowsheet. Let us create a `ConcreteModel` and add the flowsheet block. " + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:20 [INFO] idaes.init.fs.H2O.properties: Property package initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "m = ConcreteModel()\n", + "m.fs = FlowsheetBlock(dynamic=False)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:20 [INFO] idaes.init.fs.H2O: Initialization Complete.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now need to add the property packages to the flowsheet. Unlike the basic [Flash unit model example](http://localhost:8888/notebooks/GitHub/examples-pse/src/Tutorials/Basics/flash_unit_solution_testing_doc.md), where we only had a thermophysical property package, for this flowsheet we will also need to add a reaction property package. We will use the [Modular Property Framework](https://idaes-pse.readthedocs.io/en/stable/explanations/components/property_package/index.html#generic-property-package-framework) and [Modular Reaction Framework](https://idaes-pse.readthedocs.io/en/stable/explanations/components/property_package/index.html#generic-reaction-package-framework). The `get_prop` method for the natural gas property module automatically returns the correct dictionary using a component list argument. The `GenericParameterBlock` and `GenericReactionParameterBlock` methods build states blocks from passed parameter data; the reaction block unpacks using `**reaction_props.config_dict` to allow for optional or empty keyword arguments:" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:20 [INFO] idaes.init.fs.M101.methane_feed_state: Starting initialization\n" - ] + "cell_type": "code", + "execution_count": 5, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "thermo_props_config_dict = get_prop(components=[\"CH4\", \"H2O\", \"H2\", \"CO\", \"CO2\"])\n", + "m.fs.thermo_params = GenericParameterBlock(**thermo_props_config_dict)\n", + "m.fs.reaction_params = GenericReactionParameterBlock(\n", + " property_package=m.fs.thermo_params, **reaction_props.config_dict\n", + ")" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:20 [INFO] idaes.init.fs.M101.methane_feed_state: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Adding Unit Models\n", + "\n", + "Let us start adding the unit models we have imported to the flowsheet. Here, we are adding a `Mixer`, a `Compressor`, a `Heater` and an `EquilibriumReactor`. Note that all unit models should be explicitly defined with a given property package. In addition to that, there are several arguments depending on the unit model, please refer to the documentation for more details on [IDAES Unit Models](https://idaes-pse.readthedocs.io/en/stable/reference_guides/model_libraries/index.html). For example, the `Mixer` is given a `list` consisting of names to the two inlets. Note that the `Compressor` is a `PressureChanger` assuming compression operation and with a fixed isentropic compressor efficiency as the default thermodynamic behavior." + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:20 [INFO] idaes.init.fs.M101.steam_feed_state: Starting initialization\n" - ] + "cell_type": "code", + "execution_count": 6, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "m.fs.CH4 = Feed(property_package=m.fs.thermo_params)\n", + "m.fs.H2O = Feed(property_package=m.fs.thermo_params)\n", + "m.fs.PROD = Product(property_package=m.fs.thermo_params)\n", + "m.fs.M101 = Mixer(\n", + " property_package=m.fs.thermo_params, inlet_list=[\"methane_feed\", \"steam_feed\"]\n", + ")\n", + "m.fs.H101 = Heater(\n", + " property_package=m.fs.thermo_params,\n", + " has_pressure_change=False,\n", + " has_phase_equilibrium=False,\n", + ")\n", + "m.fs.C101 = Compressor(property_package=m.fs.thermo_params)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:20 [INFO] idaes.init.fs.M101.steam_feed_state: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.R101 = EquilibriumReactor(\n", + " property_package=m.fs.thermo_params,\n", + " reaction_package=m.fs.reaction_params,\n", + " has_equilibrium_reactions=True,\n", + " has_rate_reactions=False,\n", + " has_heat_of_reaction=True,\n", + " has_heat_transfer=True,\n", + " has_pressure_change=False,\n", + ")" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:20 [INFO] idaes.init.fs.M101.mixed_state: Starting initialization\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Connecting Unit Models Using Arcs\n", + "\n", + "We have now added all the unit models we need to the flowsheet. However, we have not yet specified how the units are to be connected. To do this, we will be using the `Arc` which is a Pyomo component that takes in two arguments: `source` and `destination`. Let us connect the outlet of the `Mixer` to the inlet of the `Compressor`, the outlet of the compressor `Compressor` to the inlet of the `Heater`, and the outlet of the `Heater` to the inlet of the `EquilibriumReactor`. Additionally, we will connect the `Feed` and `Product` blocks to the flowsheet:" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:20 [INFO] idaes.init.fs.M101.mixed_state: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.s01 = Arc(source=m.fs.CH4.outlet, destination=m.fs.M101.methane_feed)\n", + "m.fs.s02 = Arc(source=m.fs.H2O.outlet, destination=m.fs.M101.steam_feed)\n", + "m.fs.s03 = Arc(source=m.fs.M101.outlet, destination=m.fs.C101.inlet)\n", + "m.fs.s04 = Arc(source=m.fs.C101.outlet, destination=m.fs.H101.inlet)\n", + "m.fs.s05 = Arc(source=m.fs.H101.outlet, destination=m.fs.R101.inlet)\n", + "m.fs.s06 = Arc(source=m.fs.R101.outlet, destination=m.fs.PROD.inlet)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:20 [INFO] idaes.init.fs.M101.mixed_state: Property package initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We have now connected the unit model block using the arcs. However, we also need to link the state variables on connected ports. Pyomo provides a convenient method `TransformationFactory` to write these equality constraints for us between two ports:" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:20 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - Optimal Solution Found\n" - ] + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "TransformationFactory(\"network.expand_arcs\").apply_to(m)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:20 [INFO] idaes.init.fs.C101.control_volume.properties_in: Starting initialization\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Adding Expressions to Compute Operating Costs\n", + "\n", + "In this section, we will add a few `Expressions` that allow us to evaluate the performance. `Expressions` provide a convenient way of calculating certain values that are a function of the variables defined in the model. For more details on `Expressions`, please refer to the [Pyomo Expression documentation](https://pyomo.readthedocs.io/en/stable/pyomo_modeling_components/Expressions.html).\n", + "\n", + "For this flowsheet, we are interested in computing hydrogen production in millions of pounds per year, as well as the total costs due to pressurizing, cooling, and heating utilities.\n", + "\n", + "Let us first add an `Expression` to convert the product flow from mol/s to MM lb/year of hydrogen. We see that the molecular weight exists in the thermophysical property package, so we may use that value for our calculations." + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:20 [INFO] idaes.init.fs.C101.control_volume.properties_in: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.hyd_prod = Expression(\n", + " expr=pyunits.convert(\n", + " m.fs.PROD.inlet.flow_mol[0]\n", + " * m.fs.PROD.inlet.mole_frac_comp[0, \"H2\"]\n", + " * m.fs.thermo_params.H2.mw, # MW defined in properties as kg/mol\n", + " to_units=pyunits.Mlb / pyunits.yr,\n", + " )\n", + ") # converting kg/s to MM lb/year" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:20 [INFO] idaes.init.fs.C101.control_volume.properties_out: Starting initialization\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let us add expressions to compute the reactor cooling cost (\\\\$/s) assuming a cost of 2.12E-5 \\\\$/kW, the compression cost (\\\\$/s) assuming 1.2E-3 \\\\$/kW, and the heating utility cost (\\\\$/s) assuming 2.2E-4 \\\\$/kW. Note that the heat duty is in units of Watt (J/s). The total operating cost will be the sum of the costs, expressed in \\\\$/year assuming 8000 operating hours per year (~10\\% downtime, which is fairly common for small scale chemical plants):" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:20 [INFO] idaes.init.fs.C101.control_volume.properties_out: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.cooling_cost = Expression(\n", + " expr=2.12e-8 * (m.fs.R101.heat_duty[0])\n", + ") # the reaction is endothermic, so R101 duty is positive\n", + "m.fs.heating_cost = Expression(\n", + " expr=2.2e-7 * m.fs.H101.heat_duty[0]\n", + ") # the stream must be heated to T_rxn, so H101 duty is positive\n", + "m.fs.compression_cost = Expression(\n", + " expr=1.2e-6 * m.fs.C101.work_isentropic[0]\n", + ") # the stream must be pressurized, so the C101 work is positive\n", + "m.fs.operating_cost = Expression(\n", + " expr=(3600 * 8000 * (m.fs.heating_cost + m.fs.cooling_cost + m.fs.compression_cost))\n", + ")" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:20 [INFO] idaes.init.fs.C101.control_volume.properties_out: Property package initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Fixing Feed Conditions\n", + "\n", + "Let us first check how many degrees of freedom exist for this flowsheet using the `degrees_of_freedom` tool we imported earlier. We expect each stream to have 8 degrees of freedom, the mixer to have 0 (after both streams are accounted for), the compressor to have 2 (the pressure change and efficiency), the heater to have 1 (just the duty, since the inlet is also the outlet of M101), and the reactor to have 1 (conversion). Therefore, we have 20 degrees of freedom to specify: temperature, pressure, flow and mole fractions of all five components on both streams; compressor pressure change and efficiency; outlet heater temperature; and reactor conversion.\n", + "\n", + "Although the model has eight degrees of freedom per stream, the mole fractions are not all independent and the physical system only has seven. Each `StateBlock` sets a flag `defined_state` based on any remaining degrees of freedom; if this flag is set to `False` a `Constraint` is written to ensure all mole fractions sum to one. However, a fully specified system with `defined_state` set to `True` will not create this constraint and it is the responsibility of the user to set physically meaningful values, i.e. that all mole fractions are nonnegative and sum to one. While not necessary in this example, the [Custom Thermophysical Property Package Example](http://localhost:8888/notebooks/GitHub/examples-pse/src/Examples/Advanced/CustomProperties/custom_physical_property_packages_testing_doc.md) demonstrates adding a check before writing an additional constraint that may overspecify the system." + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:20 [INFO] idaes.init.fs.C101.properties_isentropic: Starting initialization\n" - ] + "cell_type": "code", + "execution_count": 12, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "20\n" + ] + } + ], + "source": [ + "print(degrees_of_freedom(m))" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:20 [INFO] idaes.init.fs.C101.properties_isentropic: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will now be fixing the feed stream to the conditions shown in the flowsheet above. As mentioned in other tutorials, the IDAES framework expects a time index value for every referenced internal stream or unit variable, even in steady-state systems with a single time point $ t = 0 $ (`t = [0]` is the default when creating a `FlowsheetBlock` without passing a `time_set` argument). The non-present components in each stream are assigned a very small non-zero value to help with convergence and initializing. Based on the literature source, we will initialize our simulation with the following values:" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:20 [INFO] idaes.init.fs.C101.properties_isentropic: Property package initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.CH4.outlet.mole_frac_comp[0, \"CH4\"].fix(1)\n", + "m.fs.CH4.outlet.mole_frac_comp[0, \"H2O\"].fix(1e-5)\n", + "m.fs.CH4.outlet.mole_frac_comp[0, \"H2\"].fix(1e-5)\n", + "m.fs.CH4.outlet.mole_frac_comp[0, \"CO\"].fix(1e-5)\n", + "m.fs.CH4.outlet.mole_frac_comp[0, \"CO2\"].fix(1e-5)\n", + "m.fs.CH4.outlet.flow_mol.fix(75 * pyunits.mol / pyunits.s)\n", + "m.fs.CH4.outlet.temperature.fix(298.15 * pyunits.K)\n", + "m.fs.CH4.outlet.pressure.fix(1e5 * pyunits.Pa)\n", + "\n", + "m.fs.H2O.outlet.mole_frac_comp[0, \"CH4\"].fix(1e-5)\n", + "m.fs.H2O.outlet.mole_frac_comp[0, \"H2O\"].fix(1)\n", + "m.fs.H2O.outlet.mole_frac_comp[0, \"H2\"].fix(1e-5)\n", + "m.fs.H2O.outlet.mole_frac_comp[0, \"CO\"].fix(1e-5)\n", + "m.fs.H2O.outlet.mole_frac_comp[0, \"CO2\"].fix(1e-5)\n", + "m.fs.H2O.outlet.flow_mol.fix(234 * pyunits.mol / pyunits.s)\n", + "m.fs.H2O.outlet.temperature.fix(373.15 * pyunits.K)\n", + "m.fs.H2O.outlet.pressure.fix(1e5 * pyunits.Pa)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:21 [INFO] idaes.init.fs.C101: Initialization Complete: optimal - Optimal Solution Found\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Fixing Unit Model Specifications\n", + "\n", + "Now that we have fixed our inlet feed conditions, we will now be fixing the operating conditions for the unit models in the flowsheet. For the initial problem, let us fix the compressor outlet pressure to 2 bar for now, the efficiency to 0.90 (a common assumption for compressor units), and the heater outlet temperature to 500 K. We will unfix these values later to optimize the flowsheet." + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:21 [INFO] idaes.init.fs.H101.control_volume.properties_in: Starting initialization\n" - ] + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.C101.outlet.pressure.fix(pyunits.convert(2 * pyunits.bar, to_units=pyunits.Pa))\n", + "m.fs.C101.efficiency_isentropic.fix(0.90)\n", + "m.fs.H101.outlet.temperature.fix(500 * pyunits.K)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:21 [INFO] idaes.init.fs.H101.control_volume.properties_in: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `EquilibriumReactor` unit model calculates the amount of product and reactant based on the calculated equilibrium constant; therefore, we will specify a desired conversion and let the solver determine the reactor duty and heat transfer. For convenience, we will define the reactor conversion as the amount of methane that is converted." + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:21 [INFO] idaes.init.fs.H101.control_volume.properties_out: Starting initialization\n" - ] + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.R101.conversion = Var(\n", + " initialize=0.80, bounds=(0, 1), units=pyunits.dimensionless\n", + ") # fraction\n", + "\n", + "m.fs.R101.conv_constraint = Constraint(\n", + " expr=m.fs.R101.conversion\n", + " * m.fs.R101.inlet.flow_mol[0]\n", + " * m.fs.R101.inlet.mole_frac_comp[0, \"CH4\"]\n", + " == (\n", + " m.fs.R101.inlet.flow_mol[0] * m.fs.R101.inlet.mole_frac_comp[0, \"CH4\"]\n", + " - m.fs.R101.outlet.flow_mol[0] * m.fs.R101.outlet.mole_frac_comp[0, \"CH4\"]\n", + " )\n", + ")\n", + "\n", + "m.fs.R101.conversion.fix(0.80)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:21 [INFO] idaes.init.fs.H101.control_volume.properties_out: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For initialization, we solve a square problem (degrees of freedom = 0). Let's check the degrees of freedom below:" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:21 [INFO] idaes.init.fs.H101.control_volume: Initialization Complete\n" - ] + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n" + ] + } + ], + "source": [ + "print(degrees_of_freedom(m))" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:21 [INFO] idaes.init.fs.H101: Initialization Complete: optimal - Optimal Solution Found\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, we need to initialize each unit operation in sequence to solve the flowsheet. As in best practice, unit operations are initialized or solved, and outlet properties are propagated to connected inlet streams via arc definitions as follows:" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:21 [INFO] idaes.init.fs.R101.control_volume.properties_in: Starting initialization\n" - ] + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-05-23 06:08:03 [INFO] idaes.init.fs.CH4.properties: Starting initialization\n", + "2024-05-23 06:08:03 [INFO] idaes.init.fs.CH4.properties: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:03 [INFO] idaes.init.fs.CH4.properties: Property package initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:03 [INFO] idaes.init.fs.CH4: Initialization Complete.\n", + "2024-05-23 06:08:03 [INFO] idaes.init.fs.H2O.properties: Starting initialization\n", + "2024-05-23 06:08:03 [INFO] idaes.init.fs.H2O.properties: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:03 [INFO] idaes.init.fs.H2O.properties: Property package initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:03 [INFO] idaes.init.fs.H2O: Initialization Complete.\n", + "2024-05-23 06:08:03 [INFO] idaes.init.fs.M101.methane_feed_state: Starting initialization\n", + "2024-05-23 06:08:03 [INFO] idaes.init.fs.M101.methane_feed_state: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:03 [INFO] idaes.init.fs.M101.steam_feed_state: Starting initialization\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.M101.steam_feed_state: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.M101.mixed_state: Starting initialization\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.M101.mixed_state: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.M101.mixed_state: Property package initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.C101.control_volume.properties_in: Starting initialization\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.C101.control_volume.properties_in: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.C101.control_volume.properties_out: Starting initialization\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.C101.control_volume.properties_out: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.C101.control_volume.properties_out: Property package initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.C101.properties_isentropic: Starting initialization\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.C101.properties_isentropic: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.C101.properties_isentropic: Property package initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.C101: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.H101.control_volume.properties_in: Starting initialization\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.H101.control_volume.properties_in: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.H101.control_volume.properties_out: Starting initialization\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.H101.control_volume.properties_out: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.H101.control_volume: Initialization Complete\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.H101: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.R101.control_volume.properties_in: Starting initialization\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.R101.control_volume.properties_in: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.R101.control_volume.properties_out: Starting initialization\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.R101.control_volume.properties_out: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.R101.control_volume.reactions: Initialization Complete.\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.R101.control_volume: Initialization Complete\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.R101: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.PROD.properties: Starting initialization\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.PROD.properties: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.PROD.properties: Property package initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.PROD: Initialization Complete.\n" + ] + } + ], + "source": [ + "# Initialize and solve each unit operation\n", + "m.fs.CH4.initialize()\n", + "propagate_state(arc=m.fs.s01)\n", + "\n", + "m.fs.H2O.initialize()\n", + "propagate_state(arc=m.fs.s02)\n", + "\n", + "m.fs.M101.initialize()\n", + "propagate_state(arc=m.fs.s03)\n", + "\n", + "m.fs.C101.initialize()\n", + "propagate_state(arc=m.fs.s04)\n", + "\n", + "m.fs.H101.initialize()\n", + "propagate_state(arc=m.fs.s05)\n", + "\n", + "m.fs.R101.initialize()\n", + "propagate_state(arc=m.fs.s06)\n", + "\n", + "m.fs.PROD.initialize()\n", + "\n", + "# set solver\n", + "solver = get_solver()" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:21 [INFO] idaes.init.fs.R101.control_volume.properties_in: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 20, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", + "tol=1e-06\n", + "max_iter=200\n", + "\n", + "\n", + "******************************************************************************\n", + "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", + " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", + " For more information visit http://projects.coin-or.org/Ipopt\n", + "\n", + "This version of Ipopt was compiled from source code available at\n", + " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", + " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", + " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", + "\n", + "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", + " for large-scale scientific computation. All technical papers, sales and\n", + " publicity material resulting from use of the HSL codes within IPOPT must\n", + " contain the following acknowledgement:\n", + " HSL, a collection of Fortran codes for large-scale scientific\n", + " computation. See http://www.hsl.rl.ac.uk.\n", + "******************************************************************************\n", + "\n", + "This is Ipopt version 3.13.2, running with linear solver ma27.\n", + "\n", + "Number of nonzeros in equality constraint Jacobian...: 562\n", + "Number of nonzeros in inequality constraint Jacobian.: 0\n", + "Number of nonzeros in Lagrangian Hessian.............: 477\n", + "\n", + "Total number of variables............................: 204\n", + " variables with only lower bounds: 13\n", + " variables with lower and upper bounds: 174\n", + " variables with only upper bounds: 0\n", + "Total number of equality constraints.................: 204\n", + "Total number of inequality constraints...............: 0\n", + " inequality constraints with only lower bounds: 0\n", + " inequality constraints with lower and upper bounds: 0\n", + " inequality constraints with only upper bounds: 0\n", + "\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 0 0.0000000e+00 1.49e+06 1.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", + " 1 0.0000000e+00 1.35e+04 2.00e-01 -1.0 3.59e+00 - 9.90e-01 9.91e-01h 1\n", + " 2 0.0000000e+00 3.59e-04 9.99e+00 -1.0 3.56e+00 - 9.90e-01 1.00e+00h 1\n", + " 3 0.0000000e+00 2.12e-08 8.98e+01 -1.0 2.91e-04 - 9.90e-01 1.00e+00h 1\n", + "\n", + "Number of Iterations....: 3\n", + "\n", + " (scaled) (unscaled)\n", + "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Constraint violation....: 2.8421709430404007e-14 2.1187588572502136e-08\n", + "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Overall NLP error.......: 2.8421709430404007e-14 2.1187588572502136e-08\n", + "\n", + "\n", + "Number of objective function evaluations = 4\n", + "Number of objective gradient evaluations = 4\n", + "Number of equality constraint evaluations = 4\n", + "Number of inequality constraint evaluations = 0\n", + "Number of equality constraint Jacobian evaluations = 4\n", + "Number of inequality constraint Jacobian evaluations = 0\n", + "Number of Lagrangian Hessian evaluations = 3\n", + "Total CPU secs in IPOPT (w/o function evaluations) = 0.003\n", + "Total CPU secs in NLP function evaluations = 0.001\n", + "\n", + "EXIT: Optimal Solution Found.\n" + ] + } + ], + "source": [ + "# Solve the model\n", + "results = solver.solve(m, tee=True)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:21 [INFO] idaes.init.fs.R101.control_volume.properties_out: Starting initialization\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Analyze the Results of the Square Problem\n", + "\n", + "\n", + "What is the total operating cost? " + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:21 [INFO] idaes.init.fs.R101.control_volume.properties_out: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "operating cost = $45.933 million per year\n" + ] + } + ], + "source": [ + "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:21 [INFO] idaes.init.fs.R101.control_volume.reactions: Initialization Complete.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For this operating cost, what conversion did we achieve of methane to hydrogen?" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:21 [INFO] idaes.init.fs.R101.control_volume: Initialization Complete\n" - ] + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "====================================================================================\n", + "Unit : fs.R101 Time: 0.0\n", + "------------------------------------------------------------------------------------\n", + " Unit Performance\n", + "\n", + " Variables: \n", + "\n", + " Key : Value : Units : Fixed : Bounds\n", + " Heat Duty : 2.7605e+07 : watt : False : (None, None)\n", + "\n", + "------------------------------------------------------------------------------------\n", + " Stream Table\n", + " Units Inlet Outlet \n", + " Total Molar Flowrate mole / second 309.01 429.02\n", + " Total Mole Fraction CH4 dimensionless 0.24272 0.034965\n", + " Total Mole Fraction H2O dimensionless 0.75725 0.31487\n", + " Total Mole Fraction H2 dimensionless 9.9996e-06 0.51029\n", + " Total Mole Fraction CO dimensionless 9.9996e-06 0.049157\n", + " Total Mole Fraction CO2 dimensionless 9.9996e-06 0.090717\n", + " Temperature kelvin 500.00 868.56\n", + " Pressure pascal 2.0000e+05 2.0000e+05\n", + "====================================================================================\n", + "\n", + "Conversion achieved = 80.0%\n" + ] + } + ], + "source": [ + "m.fs.R101.report()\n", + "\n", + "print()\n", + "print(f\"Conversion achieved = {value(m.fs.R101.conversion):.1%}\")" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:21 [INFO] idaes.init.fs.R101: Initialization Complete: optimal - Optimal Solution Found\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Optimizing Hydrogen Production\n", + "\n", + "Now that the flowsheet has been squared and solved, we can run a small optimization problem to determine optimal conditions for producing hydrogen. Suppose we wish to find ideal conditions for the competing reactions. As mentioned earlier, the two reactions have competing equilibria - steam methane reformation occurs more readily at higher temperatures (500-700 C) while water gas shift occurs more readily at lower temperatures (300-400 C). We will allow for variable reactor temperature and pressure by freeing our heater and compressor specifications, and minimize cost to achieve 90% methane conversion. Since we assume an isentopic compressor, allowing compression will heat our feed stream and reduce or eliminate the required heater duty." + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:21 [INFO] idaes.init.fs.PROD.properties: Starting initialization\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us declare our objective function for this problem. " + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:21 [INFO] idaes.init.fs.PROD.properties: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.objective = Objective(expr=m.fs.operating_cost)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:21 [INFO] idaes.init.fs.PROD.properties: Property package initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, we need to add the design constraints and unfix the decision variables as we had solved a square problem until now, as well as set bounds for the design variables (reactor outlet temperature is set by state variable bounds in property package):" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:30:21 [INFO] idaes.init.fs.PROD: Initialization Complete.\n" - ] - } - ], - "source": [ - "# Initialize and solve each unit operation\n", - "m.fs.CH4.initialize()\n", - "propagate_state(arc=m.fs.s01)\n", - "\n", - "m.fs.H2O.initialize()\n", - "propagate_state(arc=m.fs.s02)\n", - "\n", - "m.fs.M101.initialize()\n", - "propagate_state(arc=m.fs.s03)\n", - "\n", - "m.fs.C101.initialize()\n", - "propagate_state(arc=m.fs.s04)\n", - "\n", - "m.fs.H101.initialize()\n", - "propagate_state(arc=m.fs.s05)\n", - "\n", - "m.fs.R101.initialize()\n", - "propagate_state(arc=m.fs.s06)\n", - "\n", - "m.fs.PROD.initialize()\n", - "\n", - "# set solver\n", - "solver = get_solver()" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": { - "scrolled": true - }, - "outputs": [ + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.R101.conversion.fix(0.90)\n", + "\n", + "m.fs.C101.outlet.pressure.unfix()\n", + "m.fs.C101.outlet.pressure[0].setlb(\n", + " pyunits.convert(2 * pyunits.bar, to_units=pyunits.Pa)\n", + ") # pressurize to at least 2 bar\n", + "m.fs.C101.outlet.pressure[0].setub(\n", + " pyunits.convert(10 * pyunits.bar, to_units=pyunits.Pa)\n", + ") # at most, pressurize to 10 bar\n", + "\n", + "m.fs.H101.outlet.temperature.unfix()\n", + "m.fs.H101.heat_duty[0].setlb(\n", + " 0 * pyunits.J / pyunits.s\n", + ") # outlet temperature is equal to or greater than inlet temperature\n", + "m.fs.H101.outlet.temperature[0].setub(1000 * pyunits.K) # at most, heat to 1000 K" + ] + }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", - "tol=1e-06\n", - "max_iter=200\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "We have now defined the optimization problem and we are now ready to solve this problem. \n", + "\n", + "\n" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 562\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 477\n", - "\n", - "Total number of variables............................: 204\n", - " variables with only lower bounds: 13\n", - " variables with lower and upper bounds: 174\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 204\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 1.49e+06 1.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 1.35e+04 2.00e-01 -1.0 3.59e+00 - 9.90e-01 9.91e-01h 1\n", - " 2 0.0000000e+00 3.59e-04 9.99e+00 -1.0 3.56e+00 - 9.90e-01 1.00e+00h 1\n", - " 3 0.0000000e+00 2.49e-08 8.98e+01 -1.0 2.91e-04 - 9.90e-01 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 3\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Constraint violation....: 2.8421709430404007e-14 2.4912878870964050e-08\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 2.8421709430404007e-14 2.4912878870964050e-08\n", - "\n", - "\n", - "Number of objective function evaluations = 4\n", - "Number of objective gradient evaluations = 4\n", - "Number of equality constraint evaluations = 4\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 4\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 3\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.002\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n" - ] - } - ], - "source": [ - "# Solve the model\n", - "results = solver.solve(m, tee=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Analyze the Results of the Square Problem\n", - "\n", - "\n", - "What is the total operating cost? " - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ + "cell_type": "code", + "execution_count": 29, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", + "tol=1e-06\n", + "max_iter=200\n", + "\n", + "\n", + "******************************************************************************\n", + "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", + " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", + " For more information visit http://projects.coin-or.org/Ipopt\n", + "\n", + "This version of Ipopt was compiled from source code available at\n", + " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", + " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", + " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", + "\n", + "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", + " for large-scale scientific computation. All technical papers, sales and\n", + " publicity material resulting from use of the HSL codes within IPOPT must\n", + " contain the following acknowledgement:\n", + " HSL, a collection of Fortran codes for large-scale scientific\n", + " computation. See http://www.hsl.rl.ac.uk.\n", + "******************************************************************************\n", + "\n", + "This is Ipopt version 3.13.2, running with linear solver ma27.\n", + "\n", + "Number of nonzeros in equality constraint Jacobian...: 569\n", + "Number of nonzeros in inequality constraint Jacobian.: 0\n", + "Number of nonzeros in Lagrangian Hessian.............: 493\n", + "\n", + "Total number of variables............................: 206\n", + " variables with only lower bounds: 14\n", + " variables with lower and upper bounds: 176\n", + " variables with only upper bounds: 0\n", + "Total number of equality constraints.................: 204\n", + "Total number of inequality constraints...............: 0\n", + " inequality constraints with only lower bounds: 0\n", + " inequality constraints with lower and upper bounds: 0\n", + " inequality constraints with only upper bounds: 0\n", + "\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 0 4.5933014e+07 1.49e+06 3.46e+01 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", + " 1 4.5420427e+07 1.49e+06 1.33e+03 -1.0 1.08e+07 - 4.58e-01 5.96e-03f 1\n", + " 2 4.2830345e+07 8.68e+05 6.47e+06 -1.0 5.32e+06 - 8.03e-01 4.18e-01f 1\n", + " 3 4.3111576e+07 1.26e+05 1.06e+07 -1.0 2.54e+06 - 9.54e-01 8.85e-01h 1\n", + " 4 4.3307552e+07 2.24e+03 3.12e+05 -1.0 3.51e+05 - 9.89e-01 9.86e-01h 1\n", + " 5 4.3309118e+07 2.20e+01 3.08e+03 -1.0 2.69e+03 - 9.90e-01 9.90e-01h 1\n", + " 6 4.3309131e+07 5.77e-06 3.84e+01 -1.0 2.31e+01 - 9.92e-01 1.00e+00h 1\n", + " 7 4.3309131e+07 7.77e-09 4.84e-07 -2.5 1.97e-02 - 1.00e+00 1.00e+00f 1\n", + " 8 4.3309131e+07 1.63e-08 1.71e-06 -3.8 5.56e-04 - 1.00e+00 1.00e+00f 1\n", + " 9 4.3309131e+07 1.72e-08 1.31e-06 -5.7 3.08e-05 - 1.00e+00 1.00e+00f 1\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 10 4.3309131e+07 2.20e-08 8.55e-07 -7.0 3.59e-07 - 1.00e+00 1.00e+00f 1\n", + "\n", + "Number of Iterations....: 10\n", + "\n", + " (scaled) (unscaled)\n", + "Objective...............: 4.3309130854568794e+07 4.3309130854568794e+07\n", + "Dual infeasibility......: 8.5488594337511447e-07 8.5488594337511447e-07\n", + "Constraint violation....: 1.4551915228366852e-11 2.2002495825290680e-08\n", + "Complementarity.........: 9.0909090913936433e-08 9.0909090913936433e-08\n", + "Overall NLP error.......: 9.0909090913936433e-08 8.5488594337511447e-07\n", + "\n", + "\n", + "Number of objective function evaluations = 11\n", + "Number of objective gradient evaluations = 11\n", + "Number of equality constraint evaluations = 11\n", + "Number of inequality constraint evaluations = 0\n", + "Number of equality constraint Jacobian evaluations = 11\n", + "Number of inequality constraint Jacobian evaluations = 0\n", + "Number of Lagrangian Hessian evaluations = 10\n", + "Total CPU secs in IPOPT (w/o function evaluations) = 0.008\n", + "Total CPU secs in NLP function evaluations = 0.003\n", + "\n", + "EXIT: Optimal Solution Found.\n" + ] + } + ], + "source": [ + "results = solver.solve(m, tee=True)" + ] + }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "operating cost = $45.933 million per year\n" - ] - } - ], - "source": [ - "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For this operating cost, what conversion did we achieve of methane to hydrogen?" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "operating cost = $43.309 million per year\n", + "\n", + "Compressor results\n", + "\n", + "====================================================================================\n", + "Unit : fs.C101 Time: 0.0\n", + "------------------------------------------------------------------------------------\n", + " Unit Performance\n", + "\n", + " Variables: \n", + "\n", + " Key : Value : Units : Fixed : Bounds\n", + " Isentropic Efficiency : 0.90000 : dimensionless : True : (None, None)\n", + " Mechanical Work : 7.5471e+05 : watt : False : (None, None)\n", + " Pressure Change : 1.0000e+05 : pascal : False : (None, None)\n", + " Pressure Ratio : 2.0000 : dimensionless : False : (None, None)\n", + "\n", + "------------------------------------------------------------------------------------\n", + " Stream Table\n", + " Units Inlet Outlet \n", + " Total Molar Flowrate mole / second 309.01 309.01\n", + " Total Mole Fraction CH4 dimensionless 0.24272 0.24272\n", + " Total Mole Fraction H2O dimensionless 0.75725 0.75725\n", + " Total Mole Fraction H2 dimensionless 9.9996e-06 9.9996e-06\n", + " Total Mole Fraction CO dimensionless 9.9996e-06 9.9996e-06\n", + " Total Mole Fraction CO2 dimensionless 9.9996e-06 9.9996e-06\n", + " Temperature kelvin 353.80 423.34\n", + " Pressure pascal 1.0000e+05 2.0000e+05\n", + "====================================================================================\n", + "\n", + "Heater results\n", + "\n", + "====================================================================================\n", + "Unit : fs.H101 Time: 0.0\n", + "------------------------------------------------------------------------------------\n", + " Unit Performance\n", + "\n", + " Variables: \n", + "\n", + " Key : Value : Units : Fixed : Bounds\n", + " Heat Duty : 5.8781e-09 : watt : False : (0.0, None)\n", + "\n", + "------------------------------------------------------------------------------------\n", + " Stream Table\n", + " Units Inlet Outlet \n", + " Total Molar Flowrate mole / second 309.01 309.01\n", + " Total Mole Fraction CH4 dimensionless 0.24272 0.24272\n", + " Total Mole Fraction H2O dimensionless 0.75725 0.75725\n", + " Total Mole Fraction H2 dimensionless 9.9996e-06 9.9996e-06\n", + " Total Mole Fraction CO dimensionless 9.9996e-06 9.9996e-06\n", + " Total Mole Fraction CO2 dimensionless 9.9996e-06 9.9996e-06\n", + " Temperature kelvin 423.34 423.34\n", + " Pressure pascal 2.0000e+05 2.0000e+05\n", + "====================================================================================\n", + "\n", + "Equilibrium reactor results\n", + "\n", + "====================================================================================\n", + "Unit : fs.R101 Time: 0.0\n", + "------------------------------------------------------------------------------------\n", + " Unit Performance\n", + "\n", + " Variables: \n", + "\n", + " Key : Value : Units : Fixed : Bounds\n", + " Heat Duty : 3.2486e+07 : watt : False : (None, None)\n", + "\n", + "------------------------------------------------------------------------------------\n", + " Stream Table\n", + " Units Inlet Outlet \n", + " Total Molar Flowrate mole / second 309.01 444.02\n", + " Total Mole Fraction CH4 dimensionless 0.24272 0.016892\n", + " Total Mole Fraction H2O dimensionless 0.75725 0.29075\n", + " Total Mole Fraction H2 dimensionless 9.9996e-06 0.54032\n", + " Total Mole Fraction CO dimensionless 9.9996e-06 0.067801\n", + " Total Mole Fraction CO2 dimensionless 9.9996e-06 0.084239\n", + " Temperature kelvin 423.34 910.04\n", + " Pressure pascal 2.0000e+05 2.0000e+05\n", + "====================================================================================\n" + ] + } + ], + "source": [ + "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")\n", + "\n", + "print()\n", + "print(\"Compressor results\")\n", + "\n", + "m.fs.C101.report()\n", + "\n", + "print()\n", + "print(\"Heater results\")\n", + "\n", + "m.fs.H101.report()\n", + "\n", + "print()\n", + "print(\"Equilibrium reactor results\")\n", + "\n", + "m.fs.R101.report()" + ] + }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "====================================================================================\n", - "Unit : fs.R101 Time: 0.0\n", - "------------------------------------------------------------------------------------\n", - " Unit Performance\n", - "\n", - " Variables: \n", - "\n", - " Key : Value : Units : Fixed : Bounds\n", - " Heat Duty : 2.7605e+07 : watt : False : (None, None)\n", - "\n", - "------------------------------------------------------------------------------------\n", - " Stream Table\n", - " Units Inlet Outlet \n", - " Total Molar Flowrate mole / second 309.01 429.02\n", - " Total Mole Fraction CH4 dimensionless 0.24272 0.034965\n", - " Total Mole Fraction H2O dimensionless 0.75725 0.31487\n", - " Total Mole Fraction H2 dimensionless 9.9996e-06 0.51029\n", - " Total Mole Fraction CO dimensionless 9.9996e-06 0.049157\n", - " Total Mole Fraction CO2 dimensionless 9.9996e-06 0.090717\n", - " Temperature kelvin 500.00 868.56\n", - " Pressure pascal 2.0000e+05 2.0000e+05\n", - "====================================================================================\n", - "\n", - "Conversion achieved = 80.0%\n" - ] - } - ], - "source": [ - "m.fs.R101.report()\n", - "\n", - "print()\n", - "print(f\"Conversion achieved = {value(m.fs.R101.conversion):.1%}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Optimizing Hydrogen Production\n", - "\n", - "Now that the flowsheet has been squared and solved, we can run a small optimization problem to determine optimal conditions for producing hydrogen. Suppose we wish to find ideal conditions for the competing reactions. As mentioned earlier, the two reactions have competing equilibria - steam methane reformation occurs more readily at higher temperatures (500-700 C) while water gas shift occurs more readily at lower temperatures (300-400 C). We will allow for variable reactor temperature and pressure by freeing our heater and compressor specifications, and minimize cost to achieve 90% methane conversion. Since we assume an isentopic compressor, allowing compression will heat our feed stream and reduce or eliminate the required heater duty." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us declare our objective function for this problem. " - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.objective = Objective(expr=m.fs.operating_cost)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now, we need to add the design constraints and unfix the decision variables as we had solved a square problem until now, as well as set bounds for the design variables (reactor outlet temperature is set by state variable bounds in property package):" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.R101.conversion.fix(0.90)\n", - "\n", - "m.fs.C101.outlet.pressure.unfix()\n", - "m.fs.C101.outlet.pressure[0].setlb(\n", - " pyunits.convert(2 * pyunits.bar, to_units=pyunits.Pa)\n", - ") # pressurize to at least 2 bar\n", - "m.fs.C101.outlet.pressure[0].setub(\n", - " pyunits.convert(10 * pyunits.bar, to_units=pyunits.Pa)\n", - ") # at most, pressurize to 10 bar\n", - "\n", - "m.fs.H101.outlet.temperature.unfix()\n", - "m.fs.H101.heat_duty[0].setlb(\n", - " 0 * pyunits.J / pyunits.s\n", - ") # outlet temperature is equal to or greater than inlet temperature\n", - "m.fs.H101.outlet.temperature[0].setub(1000 * pyunits.K) # at most, heat to 1000 K" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "We have now defined the optimization problem and we are now ready to solve this problem. \n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": { - "scrolled": true - }, - "outputs": [ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Display optimal values for the decision variables and design variables:" + ] + }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", - "tol=1e-06\n", - "max_iter=200\n", - "\n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 569\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 493\n", - "\n", - "Total number of variables............................: 206\n", - " variables with only lower bounds: 14\n", - " variables with lower and upper bounds: 176\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 204\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 4.5933014e+07 1.49e+06 3.46e+01 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 4.5420427e+07 1.49e+06 1.33e+03 -1.0 1.08e+07 - 4.58e-01 5.96e-03f 1\n", - " 2 4.2830345e+07 8.68e+05 6.47e+06 -1.0 5.32e+06 - 8.03e-01 4.18e-01f 1\n", - " 3 4.3111576e+07 1.26e+05 1.06e+07 -1.0 2.54e+06 - 9.54e-01 8.85e-01h 1\n", - " 4 4.3307552e+07 2.24e+03 3.12e+05 -1.0 3.51e+05 - 9.89e-01 9.86e-01h 1\n", - " 5 4.3309118e+07 2.20e+01 3.08e+03 -1.0 2.69e+03 - 9.90e-01 9.90e-01h 1\n", - " 6 4.3309131e+07 5.79e-06 3.84e+01 -1.0 2.31e+01 - 9.92e-01 1.00e+00h 1\n", - " 7 4.3309131e+07 7.77e-09 1.30e-06 -2.5 1.97e-02 - 1.00e+00 1.00e+00f 1\n", - " 8 4.3309131e+07 2.20e-08 1.95e-06 -3.8 5.56e-04 - 1.00e+00 1.00e+00f 1\n", - " 9 4.3309131e+07 1.79e-08 1.27e-06 -5.7 3.08e-05 - 1.00e+00 1.00e+00f 1\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 10 4.3309131e+07 5.88e-09 1.09e-06 -7.0 3.56e-07 - 1.00e+00 1.00e+00f 1\n", - "\n", - "Number of Iterations....: 10\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 4.3309130854568668e+07 4.3309130854568668e+07\n", - "Dual infeasibility......: 1.0873799957492332e-06 1.0873799957492332e-06\n", - "Constraint violation....: 1.4551915228366852e-11 5.8780968648563987e-09\n", - "Complementarity.........: 9.0909090913936446e-08 9.0909090913936446e-08\n", - "Overall NLP error.......: 9.0909090913936446e-08 1.0873799957492332e-06\n", - "\n", - "\n", - "Number of objective function evaluations = 11\n", - "Number of objective gradient evaluations = 11\n", - "Number of equality constraint evaluations = 11\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 11\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 10\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.000\n", - "Total CPU secs in NLP function evaluations = 0.007\n", - "\n", - "EXIT: Optimal Solution Found.\n" - ] - } - ], - "source": [ - "results = solver.solve(m, tee=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [ + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Optimal Values\n", + "\n", + "C101 outlet pressure = 0.200 MPa\n", + "\n", + "C101 outlet temperature = 423.345 K\n", + "\n", + "H101 outlet temperature = 423.345 K\n", + "\n", + "R101 outlet temperature = 910.044 K\n", + "\n", + "Hydrogen produced = 33.648 MM lb/year\n", + "\n", + "Conversion achieved = 90.0%\n" + ] + } + ], + "source": [ + "print(\"Optimal Values\")\n", + "print()\n", + "\n", + "print(f\"C101 outlet pressure = {value(m.fs.C101.outlet.pressure[0])/1E6:0.3f} MPa\")\n", + "print()\n", + "\n", + "print(f\"C101 outlet temperature = {value(m.fs.C101.outlet.temperature[0]):0.3f} K\")\n", + "print()\n", + "\n", + "print(f\"H101 outlet temperature = {value(m.fs.H101.outlet.temperature[0]):0.3f} K\")\n", + "\n", + "print()\n", + "print(f\"R101 outlet temperature = {value(m.fs.R101.outlet.temperature[0]):0.3f} K\")\n", + "\n", + "print()\n", + "print(f\"Hydrogen produced = {value(m.fs.hyd_prod):0.3f} MM lb/year\")\n", + "\n", + "print()\n", + "print(f\"Conversion achieved = {value(m.fs.R101.conversion):.1%}\")" + ] + }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "operating cost = $43.309 million per year\n", - "\n", - "Compressor results\n", - "\n", - "====================================================================================\n", - "Unit : fs.C101 Time: 0.0\n", - "------------------------------------------------------------------------------------\n", - " Unit Performance\n", - "\n", - " Variables: \n", - "\n", - " Key : Value : Units : Fixed : Bounds\n", - " Isentropic Efficiency : 0.90000 : dimensionless : True : (None, None)\n", - " Mechanical Work : 7.5471e+05 : watt : False : (None, None)\n", - " Pressure Change : 1.0000e+05 : pascal : False : (None, None)\n", - " Pressure Ratio : 2.0000 : dimensionless : False : (None, None)\n", - "\n", - "------------------------------------------------------------------------------------\n", - " Stream Table\n", - " Units Inlet Outlet \n", - " Total Molar Flowrate mole / second 309.01 309.01\n", - " Total Mole Fraction CH4 dimensionless 0.24272 0.24272\n", - " Total Mole Fraction H2O dimensionless 0.75725 0.75725\n", - " Total Mole Fraction H2 dimensionless 9.9996e-06 9.9996e-06\n", - " Total Mole Fraction CO dimensionless 9.9996e-06 9.9996e-06\n", - " Total Mole Fraction CO2 dimensionless 9.9996e-06 9.9996e-06\n", - " Temperature kelvin 353.80 423.34\n", - " Pressure pascal 1.0000e+05 2.0000e+05\n", - "====================================================================================\n", - "\n", - "Heater results\n", - "\n", - "====================================================================================\n", - "Unit : fs.H101 Time: 0.0\n", - "------------------------------------------------------------------------------------\n", - " Unit Performance\n", - "\n", - " Variables: \n", - "\n", - " Key : Value : Units : Fixed : Bounds\n", - " Heat Duty : 5.8781e-09 : watt : False : (0.0, None)\n", - "\n", - "------------------------------------------------------------------------------------\n", - " Stream Table\n", - " Units Inlet Outlet \n", - " Total Molar Flowrate mole / second 309.01 309.01\n", - " Total Mole Fraction CH4 dimensionless 0.24272 0.24272\n", - " Total Mole Fraction H2O dimensionless 0.75725 0.75725\n", - " Total Mole Fraction H2 dimensionless 9.9996e-06 9.9996e-06\n", - " Total Mole Fraction CO dimensionless 9.9996e-06 9.9996e-06\n", - " Total Mole Fraction CO2 dimensionless 9.9996e-06 9.9996e-06\n", - " Temperature kelvin 423.34 423.34\n", - " Pressure pascal 2.0000e+05 2.0000e+05\n", - "====================================================================================\n", - "\n", - "Equilibrium reactor results\n", - "\n", - "====================================================================================\n", - "Unit : fs.R101 Time: 0.0\n", - "------------------------------------------------------------------------------------\n", - " Unit Performance\n", - "\n", - " Variables: \n", - "\n", - " Key : Value : Units : Fixed : Bounds\n", - " Heat Duty : 3.2486e+07 : watt : False : (None, None)\n", - "\n", - "------------------------------------------------------------------------------------\n", - " Stream Table\n", - " Units Inlet Outlet \n", - " Total Molar Flowrate mole / second 309.01 444.02\n", - " Total Mole Fraction CH4 dimensionless 0.24272 0.016892\n", - " Total Mole Fraction H2O dimensionless 0.75725 0.29075\n", - " Total Mole Fraction H2 dimensionless 9.9996e-06 0.54032\n", - " Total Mole Fraction CO dimensionless 9.9996e-06 0.067801\n", - " Total Mole Fraction CO2 dimensionless 9.9996e-06 0.084239\n", - " Temperature kelvin 423.34 910.04\n", - " Pressure pascal 2.0000e+05 2.0000e+05\n", - "====================================================================================\n" - ] + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } - ], - "source": [ - "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")\n", - "\n", - "print()\n", - "print(\"Compressor results\")\n", - "\n", - "m.fs.C101.report()\n", - "\n", - "print()\n", - "print(\"Heater results\")\n", - "\n", - "m.fs.H101.report()\n", - "\n", - "print()\n", - "print(\"Equilibrium reactor results\")\n", - "\n", - "m.fs.R101.report()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Display optimal values for the decision variables and design variables:" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Optimal Values\n", - "\n", - "C101 outlet pressure = 0.200 MPa\n", - "\n", - "C101 outlet temperature = 423.345 K\n", - "\n", - "H101 outlet temperature = 423.345 K\n", - "\n", - "R101 outlet temperature = 910.044 K\n", - "\n", - "Hydrogen produced = 33.648 MM lb/year\n", - "\n", - "Conversion achieved = 90.0%\n" - ] + ], + "metadata": { + "celltoolbar": "Tags", + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.18" } - ], - "source": [ - "print(\"Optimal Values\")\n", - "print()\n", - "\n", - "print(f\"C101 outlet pressure = {value(m.fs.C101.outlet.pressure[0])/1E6:0.3f} MPa\")\n", - "print()\n", - "\n", - "print(f\"C101 outlet temperature = {value(m.fs.C101.outlet.temperature[0]):0.3f} K\")\n", - "print()\n", - "\n", - "print(f\"H101 outlet temperature = {value(m.fs.H101.outlet.temperature[0]):0.3f} K\")\n", - "\n", - "print()\n", - "print(f\"R101 outlet temperature = {value(m.fs.R101.outlet.temperature[0]):0.3f} K\")\n", - "\n", - "print()\n", - "print(f\"Hydrogen produced = {value(m.fs.hyd_prod):0.3f} MM lb/year\")\n", - "\n", - "print()\n", - "print(f\"Conversion achieved = {value(m.fs.R101.conversion):.1%}\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "celltoolbar": "Tags", - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.5" - } - }, - "nbformat": 4, - "nbformat_minor": 3 -} + "nbformat": 4, + "nbformat_minor": 3 +} \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/unit_models/reactors/equilibrium_reactor_test.ipynb b/idaes_examples/notebooks/docs/unit_models/reactors/equilibrium_reactor_test.ipynb index 9adb969e..a845483e 100644 --- a/idaes_examples/notebooks/docs/unit_models/reactors/equilibrium_reactor_test.ipynb +++ b/idaes_examples/notebooks/docs/unit_models/reactors/equilibrium_reactor_test.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": { "tags": [ "header", @@ -54,8 +54,8 @@ "\n", "Steam methane reforming (SMR) is one of the most common pathways for hydrogen production, taking advantage of chemical equilibria in natural gas systems. The process is typically done in two steps: methane reformation at a high temperature to partially oxidize methane, and water gas shift at a low temperature to complete the oxidation reaction:\n", "\n", - "**CH4 + H2O → CO + 3H2** \n", - "**CO + H2O → CO2 + H2**\n", + "**CH4 + H2O \u2192 CO + 3H2** \n", + "**CO + H2O \u2192 CO2 + H2**\n", "\n", "This reaction is often carried out in two separate reactors to allow for different reaction temperatures and pressures; in this example, we will minimize operating cost for a single reactor.\n", "\n", @@ -97,7 +97,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -166,7 +166,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -185,7 +185,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -202,7 +202,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": { "scrolled": true }, @@ -226,7 +226,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": { "scrolled": true }, @@ -248,10 +248,8 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": { - "scrolled": false - }, + "execution_count": 7, + "metadata": {}, "outputs": [], "source": [ "m.fs.R101 = EquilibriumReactor(\n", @@ -276,7 +274,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -297,7 +295,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -319,7 +317,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -342,7 +340,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -373,18 +371,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": { "scrolled": true }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "20\n" + ] + } + ], "source": [ "print(degrees_of_freedom(m))" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": { "tags": [ "testing" @@ -405,7 +411,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -439,7 +445,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ @@ -457,7 +463,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ @@ -487,16 +493,24 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n" + ] + } + ], "source": [ "print(degrees_of_freedom(m))" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "metadata": { "tags": [ "testing" @@ -517,9 +531,58 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-05-23 06:08:03 [INFO] idaes.init.fs.CH4.properties: Starting initialization\n", + "2024-05-23 06:08:03 [INFO] idaes.init.fs.CH4.properties: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:03 [INFO] idaes.init.fs.CH4.properties: Property package initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:03 [INFO] idaes.init.fs.CH4: Initialization Complete.\n", + "2024-05-23 06:08:03 [INFO] idaes.init.fs.H2O.properties: Starting initialization\n", + "2024-05-23 06:08:03 [INFO] idaes.init.fs.H2O.properties: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:03 [INFO] idaes.init.fs.H2O.properties: Property package initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:03 [INFO] idaes.init.fs.H2O: Initialization Complete.\n", + "2024-05-23 06:08:03 [INFO] idaes.init.fs.M101.methane_feed_state: Starting initialization\n", + "2024-05-23 06:08:03 [INFO] idaes.init.fs.M101.methane_feed_state: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:03 [INFO] idaes.init.fs.M101.steam_feed_state: Starting initialization\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.M101.steam_feed_state: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.M101.mixed_state: Starting initialization\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.M101.mixed_state: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.M101.mixed_state: Property package initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.C101.control_volume.properties_in: Starting initialization\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.C101.control_volume.properties_in: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.C101.control_volume.properties_out: Starting initialization\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.C101.control_volume.properties_out: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.C101.control_volume.properties_out: Property package initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.C101.properties_isentropic: Starting initialization\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.C101.properties_isentropic: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.C101.properties_isentropic: Property package initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.C101: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.H101.control_volume.properties_in: Starting initialization\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.H101.control_volume.properties_in: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.H101.control_volume.properties_out: Starting initialization\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.H101.control_volume.properties_out: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.H101.control_volume: Initialization Complete\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.H101: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.R101.control_volume.properties_in: Starting initialization\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.R101.control_volume.properties_in: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.R101.control_volume.properties_out: Starting initialization\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.R101.control_volume.properties_out: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.R101.control_volume.reactions: Initialization Complete.\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.R101.control_volume: Initialization Complete\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.R101: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.PROD.properties: Starting initialization\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.PROD.properties: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.PROD.properties: Property package initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.PROD: Initialization Complete.\n" + ] + } + ], "source": [ "# Initialize and solve each unit operation\n", "m.fs.CH4.initialize()\n", @@ -548,11 +611,84 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "metadata": { "scrolled": true }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", + "tol=1e-06\n", + "max_iter=200\n", + "\n", + "\n", + "******************************************************************************\n", + "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", + " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", + " For more information visit http://projects.coin-or.org/Ipopt\n", + "\n", + "This version of Ipopt was compiled from source code available at\n", + " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", + " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", + " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", + "\n", + "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", + " for large-scale scientific computation. All technical papers, sales and\n", + " publicity material resulting from use of the HSL codes within IPOPT must\n", + " contain the following acknowledgement:\n", + " HSL, a collection of Fortran codes for large-scale scientific\n", + " computation. See http://www.hsl.rl.ac.uk.\n", + "******************************************************************************\n", + "\n", + "This is Ipopt version 3.13.2, running with linear solver ma27.\n", + "\n", + "Number of nonzeros in equality constraint Jacobian...: 562\n", + "Number of nonzeros in inequality constraint Jacobian.: 0\n", + "Number of nonzeros in Lagrangian Hessian.............: 477\n", + "\n", + "Total number of variables............................: 204\n", + " variables with only lower bounds: 13\n", + " variables with lower and upper bounds: 174\n", + " variables with only upper bounds: 0\n", + "Total number of equality constraints.................: 204\n", + "Total number of inequality constraints...............: 0\n", + " inequality constraints with only lower bounds: 0\n", + " inequality constraints with lower and upper bounds: 0\n", + " inequality constraints with only upper bounds: 0\n", + "\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 0 0.0000000e+00 1.49e+06 1.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", + " 1 0.0000000e+00 1.35e+04 2.00e-01 -1.0 3.59e+00 - 9.90e-01 9.91e-01h 1\n", + " 2 0.0000000e+00 3.59e-04 9.99e+00 -1.0 3.56e+00 - 9.90e-01 1.00e+00h 1\n", + " 3 0.0000000e+00 2.12e-08 8.98e+01 -1.0 2.91e-04 - 9.90e-01 1.00e+00h 1\n", + "\n", + "Number of Iterations....: 3\n", + "\n", + " (scaled) (unscaled)\n", + "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Constraint violation....: 2.8421709430404007e-14 2.1187588572502136e-08\n", + "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Overall NLP error.......: 2.8421709430404007e-14 2.1187588572502136e-08\n", + "\n", + "\n", + "Number of objective function evaluations = 4\n", + "Number of objective gradient evaluations = 4\n", + "Number of equality constraint evaluations = 4\n", + "Number of inequality constraint evaluations = 0\n", + "Number of equality constraint Jacobian evaluations = 4\n", + "Number of inequality constraint Jacobian evaluations = 0\n", + "Number of Lagrangian Hessian evaluations = 3\n", + "Total CPU secs in IPOPT (w/o function evaluations) = 0.003\n", + "Total CPU secs in NLP function evaluations = 0.001\n", + "\n", + "EXIT: Optimal Solution Found.\n" + ] + } + ], "source": [ "# Solve the model\n", "results = solver.solve(m, tee=True)" @@ -560,7 +696,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "metadata": { "tags": [ "testing" @@ -586,16 +722,24 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "operating cost = $45.933 million per year\n" + ] + } + ], "source": [ "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "metadata": { "tags": [ "testing" @@ -617,9 +761,41 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "====================================================================================\n", + "Unit : fs.R101 Time: 0.0\n", + "------------------------------------------------------------------------------------\n", + " Unit Performance\n", + "\n", + " Variables: \n", + "\n", + " Key : Value : Units : Fixed : Bounds\n", + " Heat Duty : 2.7605e+07 : watt : False : (None, None)\n", + "\n", + "------------------------------------------------------------------------------------\n", + " Stream Table\n", + " Units Inlet Outlet \n", + " Total Molar Flowrate mole / second 309.01 429.02\n", + " Total Mole Fraction CH4 dimensionless 0.24272 0.034965\n", + " Total Mole Fraction H2O dimensionless 0.75725 0.31487\n", + " Total Mole Fraction H2 dimensionless 9.9996e-06 0.51029\n", + " Total Mole Fraction CO dimensionless 9.9996e-06 0.049157\n", + " Total Mole Fraction CO2 dimensionless 9.9996e-06 0.090717\n", + " Temperature kelvin 500.00 868.56\n", + " Pressure pascal 2.0000e+05 2.0000e+05\n", + "====================================================================================\n", + "\n", + "Conversion achieved = 80.0%\n" + ] + } + ], "source": [ "m.fs.R101.report()\n", "\n", @@ -629,7 +805,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 25, "metadata": { "tags": [ "testing" @@ -660,7 +836,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 26, "metadata": {}, "outputs": [], "source": [ @@ -676,7 +852,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 27, "metadata": {}, "outputs": [], "source": [ @@ -699,7 +875,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 28, "metadata": { "tags": [ "testing" @@ -722,18 +898,99 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 29, "metadata": { "scrolled": true }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", + "tol=1e-06\n", + "max_iter=200\n", + "\n", + "\n", + "******************************************************************************\n", + "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", + " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", + " For more information visit http://projects.coin-or.org/Ipopt\n", + "\n", + "This version of Ipopt was compiled from source code available at\n", + " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", + " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", + " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", + "\n", + "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", + " for large-scale scientific computation. All technical papers, sales and\n", + " publicity material resulting from use of the HSL codes within IPOPT must\n", + " contain the following acknowledgement:\n", + " HSL, a collection of Fortran codes for large-scale scientific\n", + " computation. See http://www.hsl.rl.ac.uk.\n", + "******************************************************************************\n", + "\n", + "This is Ipopt version 3.13.2, running with linear solver ma27.\n", + "\n", + "Number of nonzeros in equality constraint Jacobian...: 569\n", + "Number of nonzeros in inequality constraint Jacobian.: 0\n", + "Number of nonzeros in Lagrangian Hessian.............: 493\n", + "\n", + "Total number of variables............................: 206\n", + " variables with only lower bounds: 14\n", + " variables with lower and upper bounds: 176\n", + " variables with only upper bounds: 0\n", + "Total number of equality constraints.................: 204\n", + "Total number of inequality constraints...............: 0\n", + " inequality constraints with only lower bounds: 0\n", + " inequality constraints with lower and upper bounds: 0\n", + " inequality constraints with only upper bounds: 0\n", + "\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 0 4.5933014e+07 1.49e+06 3.46e+01 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", + " 1 4.5420427e+07 1.49e+06 1.33e+03 -1.0 1.08e+07 - 4.58e-01 5.96e-03f 1\n", + " 2 4.2830345e+07 8.68e+05 6.47e+06 -1.0 5.32e+06 - 8.03e-01 4.18e-01f 1\n", + " 3 4.3111576e+07 1.26e+05 1.06e+07 -1.0 2.54e+06 - 9.54e-01 8.85e-01h 1\n", + " 4 4.3307552e+07 2.24e+03 3.12e+05 -1.0 3.51e+05 - 9.89e-01 9.86e-01h 1\n", + " 5 4.3309118e+07 2.20e+01 3.08e+03 -1.0 2.69e+03 - 9.90e-01 9.90e-01h 1\n", + " 6 4.3309131e+07 5.77e-06 3.84e+01 -1.0 2.31e+01 - 9.92e-01 1.00e+00h 1\n", + " 7 4.3309131e+07 7.77e-09 4.84e-07 -2.5 1.97e-02 - 1.00e+00 1.00e+00f 1\n", + " 8 4.3309131e+07 1.63e-08 1.71e-06 -3.8 5.56e-04 - 1.00e+00 1.00e+00f 1\n", + " 9 4.3309131e+07 1.72e-08 1.31e-06 -5.7 3.08e-05 - 1.00e+00 1.00e+00f 1\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 10 4.3309131e+07 2.20e-08 8.55e-07 -7.0 3.59e-07 - 1.00e+00 1.00e+00f 1\n", + "\n", + "Number of Iterations....: 10\n", + "\n", + " (scaled) (unscaled)\n", + "Objective...............: 4.3309130854568794e+07 4.3309130854568794e+07\n", + "Dual infeasibility......: 8.5488594337511447e-07 8.5488594337511447e-07\n", + "Constraint violation....: 1.4551915228366852e-11 2.2002495825290680e-08\n", + "Complementarity.........: 9.0909090913936433e-08 9.0909090913936433e-08\n", + "Overall NLP error.......: 9.0909090913936433e-08 8.5488594337511447e-07\n", + "\n", + "\n", + "Number of objective function evaluations = 11\n", + "Number of objective gradient evaluations = 11\n", + "Number of equality constraint evaluations = 11\n", + "Number of inequality constraint evaluations = 0\n", + "Number of equality constraint Jacobian evaluations = 11\n", + "Number of inequality constraint Jacobian evaluations = 0\n", + "Number of Lagrangian Hessian evaluations = 10\n", + "Total CPU secs in IPOPT (w/o function evaluations) = 0.008\n", + "Total CPU secs in NLP function evaluations = 0.003\n", + "\n", + "EXIT: Optimal Solution Found.\n" + ] + } + ], "source": [ "results = solver.solve(m, tee=True)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 30, "metadata": { "tags": [ "testing" @@ -749,9 +1006,95 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 31, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "operating cost = $43.309 million per year\n", + "\n", + "Compressor results\n", + "\n", + "====================================================================================\n", + "Unit : fs.C101 Time: 0.0\n", + "------------------------------------------------------------------------------------\n", + " Unit Performance\n", + "\n", + " Variables: \n", + "\n", + " Key : Value : Units : Fixed : Bounds\n", + " Isentropic Efficiency : 0.90000 : dimensionless : True : (None, None)\n", + " Mechanical Work : 7.5471e+05 : watt : False : (None, None)\n", + " Pressure Change : 1.0000e+05 : pascal : False : (None, None)\n", + " Pressure Ratio : 2.0000 : dimensionless : False : (None, None)\n", + "\n", + "------------------------------------------------------------------------------------\n", + " Stream Table\n", + " Units Inlet Outlet \n", + " Total Molar Flowrate mole / second 309.01 309.01\n", + " Total Mole Fraction CH4 dimensionless 0.24272 0.24272\n", + " Total Mole Fraction H2O dimensionless 0.75725 0.75725\n", + " Total Mole Fraction H2 dimensionless 9.9996e-06 9.9996e-06\n", + " Total Mole Fraction CO dimensionless 9.9996e-06 9.9996e-06\n", + " Total Mole Fraction CO2 dimensionless 9.9996e-06 9.9996e-06\n", + " Temperature kelvin 353.80 423.34\n", + " Pressure pascal 1.0000e+05 2.0000e+05\n", + "====================================================================================\n", + "\n", + "Heater results\n", + "\n", + "====================================================================================\n", + "Unit : fs.H101 Time: 0.0\n", + "------------------------------------------------------------------------------------\n", + " Unit Performance\n", + "\n", + " Variables: \n", + "\n", + " Key : Value : Units : Fixed : Bounds\n", + " Heat Duty : 5.8781e-09 : watt : False : (0.0, None)\n", + "\n", + "------------------------------------------------------------------------------------\n", + " Stream Table\n", + " Units Inlet Outlet \n", + " Total Molar Flowrate mole / second 309.01 309.01\n", + " Total Mole Fraction CH4 dimensionless 0.24272 0.24272\n", + " Total Mole Fraction H2O dimensionless 0.75725 0.75725\n", + " Total Mole Fraction H2 dimensionless 9.9996e-06 9.9996e-06\n", + " Total Mole Fraction CO dimensionless 9.9996e-06 9.9996e-06\n", + " Total Mole Fraction CO2 dimensionless 9.9996e-06 9.9996e-06\n", + " Temperature kelvin 423.34 423.34\n", + " Pressure pascal 2.0000e+05 2.0000e+05\n", + "====================================================================================\n", + "\n", + "Equilibrium reactor results\n", + "\n", + "====================================================================================\n", + "Unit : fs.R101 Time: 0.0\n", + "------------------------------------------------------------------------------------\n", + " Unit Performance\n", + "\n", + " Variables: \n", + "\n", + " Key : Value : Units : Fixed : Bounds\n", + " Heat Duty : 3.2486e+07 : watt : False : (None, None)\n", + "\n", + "------------------------------------------------------------------------------------\n", + " Stream Table\n", + " Units Inlet Outlet \n", + " Total Molar Flowrate mole / second 309.01 444.02\n", + " Total Mole Fraction CH4 dimensionless 0.24272 0.016892\n", + " Total Mole Fraction H2O dimensionless 0.75725 0.29075\n", + " Total Mole Fraction H2 dimensionless 9.9996e-06 0.54032\n", + " Total Mole Fraction CO dimensionless 9.9996e-06 0.067801\n", + " Total Mole Fraction CO2 dimensionless 9.9996e-06 0.084239\n", + " Temperature kelvin 423.34 910.04\n", + " Pressure pascal 2.0000e+05 2.0000e+05\n", + "====================================================================================\n" + ] + } + ], "source": [ "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")\n", "\n", @@ -773,7 +1116,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 32, "metadata": { "tags": [ "testing" @@ -793,9 +1136,29 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 33, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Optimal Values\n", + "\n", + "C101 outlet pressure = 0.200 MPa\n", + "\n", + "C101 outlet temperature = 423.345 K\n", + "\n", + "H101 outlet temperature = 423.345 K\n", + "\n", + "R101 outlet temperature = 910.044 K\n", + "\n", + "Hydrogen produced = 33.648 MM lb/year\n", + "\n", + "Conversion achieved = 90.0%\n" + ] + } + ], "source": [ "print(\"Optimal Values\")\n", "print()\n", @@ -820,7 +1183,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 34, "metadata": { "tags": [ "testing" @@ -861,9 +1224,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.12" + "version": "3.9.18" } }, "nbformat": 4, "nbformat_minor": 3 -} +} \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/unit_models/reactors/equilibrium_reactor_usr.ipynb b/idaes_examples/notebooks/docs/unit_models/reactors/equilibrium_reactor_usr.ipynb index 20b6e5a8..6185b931 100644 --- a/idaes_examples/notebooks/docs/unit_models/reactors/equilibrium_reactor_usr.ipynb +++ b/idaes_examples/notebooks/docs/unit_models/reactors/equilibrium_reactor_usr.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": { "tags": [ "header", @@ -54,8 +54,8 @@ "\n", "Steam methane reforming (SMR) is one of the most common pathways for hydrogen production, taking advantage of chemical equilibria in natural gas systems. The process is typically done in two steps: methane reformation at a high temperature to partially oxidize methane, and water gas shift at a low temperature to complete the oxidation reaction:\n", "\n", - "**CH4 + H2O → CO + 3H2** \n", - "**CO + H2O → CO2 + H2**\n", + "**CH4 + H2O \u2192 CO + 3H2** \n", + "**CO + H2O \u2192 CO2 + H2**\n", "\n", "This reaction is often carried out in two separate reactors to allow for different reaction temperatures and pressures; in this example, we will minimize operating cost for a single reactor.\n", "\n", @@ -97,7 +97,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -166,7 +166,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -185,7 +185,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -202,7 +202,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": { "scrolled": true }, @@ -226,7 +226,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": { "scrolled": true }, @@ -248,10 +248,8 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": { - "scrolled": false - }, + "execution_count": 7, + "metadata": {}, "outputs": [], "source": [ "m.fs.R101 = EquilibriumReactor(\n", @@ -276,7 +274,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -297,7 +295,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -319,7 +317,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -342,7 +340,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -373,11 +371,19 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": { "scrolled": true }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "20\n" + ] + } + ], "source": [ "print(degrees_of_freedom(m))" ] @@ -391,7 +397,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -425,7 +431,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ @@ -443,7 +449,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ @@ -473,9 +479,17 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n" + ] + } + ], "source": [ "print(degrees_of_freedom(m))" ] @@ -489,9 +503,58 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-05-23 06:08:03 [INFO] idaes.init.fs.CH4.properties: Starting initialization\n", + "2024-05-23 06:08:03 [INFO] idaes.init.fs.CH4.properties: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:03 [INFO] idaes.init.fs.CH4.properties: Property package initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:03 [INFO] idaes.init.fs.CH4: Initialization Complete.\n", + "2024-05-23 06:08:03 [INFO] idaes.init.fs.H2O.properties: Starting initialization\n", + "2024-05-23 06:08:03 [INFO] idaes.init.fs.H2O.properties: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:03 [INFO] idaes.init.fs.H2O.properties: Property package initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:03 [INFO] idaes.init.fs.H2O: Initialization Complete.\n", + "2024-05-23 06:08:03 [INFO] idaes.init.fs.M101.methane_feed_state: Starting initialization\n", + "2024-05-23 06:08:03 [INFO] idaes.init.fs.M101.methane_feed_state: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:03 [INFO] idaes.init.fs.M101.steam_feed_state: Starting initialization\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.M101.steam_feed_state: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.M101.mixed_state: Starting initialization\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.M101.mixed_state: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.M101.mixed_state: Property package initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.C101.control_volume.properties_in: Starting initialization\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.C101.control_volume.properties_in: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.C101.control_volume.properties_out: Starting initialization\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.C101.control_volume.properties_out: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.C101.control_volume.properties_out: Property package initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.C101.properties_isentropic: Starting initialization\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.C101.properties_isentropic: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:04 [INFO] idaes.init.fs.C101.properties_isentropic: Property package initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.C101: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.H101.control_volume.properties_in: Starting initialization\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.H101.control_volume.properties_in: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.H101.control_volume.properties_out: Starting initialization\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.H101.control_volume.properties_out: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.H101.control_volume: Initialization Complete\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.H101: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.R101.control_volume.properties_in: Starting initialization\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.R101.control_volume.properties_in: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.R101.control_volume.properties_out: Starting initialization\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.R101.control_volume.properties_out: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.R101.control_volume.reactions: Initialization Complete.\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.R101.control_volume: Initialization Complete\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.R101: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.PROD.properties: Starting initialization\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.PROD.properties: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.PROD.properties: Property package initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:08:05 [INFO] idaes.init.fs.PROD: Initialization Complete.\n" + ] + } + ], "source": [ "# Initialize and solve each unit operation\n", "m.fs.CH4.initialize()\n", @@ -520,11 +583,84 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "metadata": { "scrolled": true }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", + "tol=1e-06\n", + "max_iter=200\n", + "\n", + "\n", + "******************************************************************************\n", + "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", + " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", + " For more information visit http://projects.coin-or.org/Ipopt\n", + "\n", + "This version of Ipopt was compiled from source code available at\n", + " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", + " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", + " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", + "\n", + "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", + " for large-scale scientific computation. All technical papers, sales and\n", + " publicity material resulting from use of the HSL codes within IPOPT must\n", + " contain the following acknowledgement:\n", + " HSL, a collection of Fortran codes for large-scale scientific\n", + " computation. See http://www.hsl.rl.ac.uk.\n", + "******************************************************************************\n", + "\n", + "This is Ipopt version 3.13.2, running with linear solver ma27.\n", + "\n", + "Number of nonzeros in equality constraint Jacobian...: 562\n", + "Number of nonzeros in inequality constraint Jacobian.: 0\n", + "Number of nonzeros in Lagrangian Hessian.............: 477\n", + "\n", + "Total number of variables............................: 204\n", + " variables with only lower bounds: 13\n", + " variables with lower and upper bounds: 174\n", + " variables with only upper bounds: 0\n", + "Total number of equality constraints.................: 204\n", + "Total number of inequality constraints...............: 0\n", + " inequality constraints with only lower bounds: 0\n", + " inequality constraints with lower and upper bounds: 0\n", + " inequality constraints with only upper bounds: 0\n", + "\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 0 0.0000000e+00 1.49e+06 1.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", + " 1 0.0000000e+00 1.35e+04 2.00e-01 -1.0 3.59e+00 - 9.90e-01 9.91e-01h 1\n", + " 2 0.0000000e+00 3.59e-04 9.99e+00 -1.0 3.56e+00 - 9.90e-01 1.00e+00h 1\n", + " 3 0.0000000e+00 2.12e-08 8.98e+01 -1.0 2.91e-04 - 9.90e-01 1.00e+00h 1\n", + "\n", + "Number of Iterations....: 3\n", + "\n", + " (scaled) (unscaled)\n", + "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Constraint violation....: 2.8421709430404007e-14 2.1187588572502136e-08\n", + "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Overall NLP error.......: 2.8421709430404007e-14 2.1187588572502136e-08\n", + "\n", + "\n", + "Number of objective function evaluations = 4\n", + "Number of objective gradient evaluations = 4\n", + "Number of equality constraint evaluations = 4\n", + "Number of inequality constraint evaluations = 0\n", + "Number of equality constraint Jacobian evaluations = 4\n", + "Number of inequality constraint Jacobian evaluations = 0\n", + "Number of Lagrangian Hessian evaluations = 3\n", + "Total CPU secs in IPOPT (w/o function evaluations) = 0.003\n", + "Total CPU secs in NLP function evaluations = 0.001\n", + "\n", + "EXIT: Optimal Solution Found.\n" + ] + } + ], "source": [ "# Solve the model\n", "results = solver.solve(m, tee=True)" @@ -542,9 +678,17 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "operating cost = $45.933 million per year\n" + ] + } + ], "source": [ "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")" ] @@ -558,9 +702,41 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "====================================================================================\n", + "Unit : fs.R101 Time: 0.0\n", + "------------------------------------------------------------------------------------\n", + " Unit Performance\n", + "\n", + " Variables: \n", + "\n", + " Key : Value : Units : Fixed : Bounds\n", + " Heat Duty : 2.7605e+07 : watt : False : (None, None)\n", + "\n", + "------------------------------------------------------------------------------------\n", + " Stream Table\n", + " Units Inlet Outlet \n", + " Total Molar Flowrate mole / second 309.01 429.02\n", + " Total Mole Fraction CH4 dimensionless 0.24272 0.034965\n", + " Total Mole Fraction H2O dimensionless 0.75725 0.31487\n", + " Total Mole Fraction H2 dimensionless 9.9996e-06 0.51029\n", + " Total Mole Fraction CO dimensionless 9.9996e-06 0.049157\n", + " Total Mole Fraction CO2 dimensionless 9.9996e-06 0.090717\n", + " Temperature kelvin 500.00 868.56\n", + " Pressure pascal 2.0000e+05 2.0000e+05\n", + "====================================================================================\n", + "\n", + "Conversion achieved = 80.0%\n" + ] + } + ], "source": [ "m.fs.R101.report()\n", "\n", @@ -586,7 +762,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 26, "metadata": {}, "outputs": [], "source": [ @@ -602,7 +778,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 27, "metadata": {}, "outputs": [], "source": [ @@ -635,20 +811,187 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 29, "metadata": { "scrolled": true }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", + "tol=1e-06\n", + "max_iter=200\n", + "\n", + "\n", + "******************************************************************************\n", + "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", + " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", + " For more information visit http://projects.coin-or.org/Ipopt\n", + "\n", + "This version of Ipopt was compiled from source code available at\n", + " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", + " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", + " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", + "\n", + "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", + " for large-scale scientific computation. All technical papers, sales and\n", + " publicity material resulting from use of the HSL codes within IPOPT must\n", + " contain the following acknowledgement:\n", + " HSL, a collection of Fortran codes for large-scale scientific\n", + " computation. See http://www.hsl.rl.ac.uk.\n", + "******************************************************************************\n", + "\n", + "This is Ipopt version 3.13.2, running with linear solver ma27.\n", + "\n", + "Number of nonzeros in equality constraint Jacobian...: 569\n", + "Number of nonzeros in inequality constraint Jacobian.: 0\n", + "Number of nonzeros in Lagrangian Hessian.............: 493\n", + "\n", + "Total number of variables............................: 206\n", + " variables with only lower bounds: 14\n", + " variables with lower and upper bounds: 176\n", + " variables with only upper bounds: 0\n", + "Total number of equality constraints.................: 204\n", + "Total number of inequality constraints...............: 0\n", + " inequality constraints with only lower bounds: 0\n", + " inequality constraints with lower and upper bounds: 0\n", + " inequality constraints with only upper bounds: 0\n", + "\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 0 4.5933014e+07 1.49e+06 3.46e+01 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", + " 1 4.5420427e+07 1.49e+06 1.33e+03 -1.0 1.08e+07 - 4.58e-01 5.96e-03f 1\n", + " 2 4.2830345e+07 8.68e+05 6.47e+06 -1.0 5.32e+06 - 8.03e-01 4.18e-01f 1\n", + " 3 4.3111576e+07 1.26e+05 1.06e+07 -1.0 2.54e+06 - 9.54e-01 8.85e-01h 1\n", + " 4 4.3307552e+07 2.24e+03 3.12e+05 -1.0 3.51e+05 - 9.89e-01 9.86e-01h 1\n", + " 5 4.3309118e+07 2.20e+01 3.08e+03 -1.0 2.69e+03 - 9.90e-01 9.90e-01h 1\n", + " 6 4.3309131e+07 5.77e-06 3.84e+01 -1.0 2.31e+01 - 9.92e-01 1.00e+00h 1\n", + " 7 4.3309131e+07 7.77e-09 4.84e-07 -2.5 1.97e-02 - 1.00e+00 1.00e+00f 1\n", + " 8 4.3309131e+07 1.63e-08 1.71e-06 -3.8 5.56e-04 - 1.00e+00 1.00e+00f 1\n", + " 9 4.3309131e+07 1.72e-08 1.31e-06 -5.7 3.08e-05 - 1.00e+00 1.00e+00f 1\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 10 4.3309131e+07 2.20e-08 8.55e-07 -7.0 3.59e-07 - 1.00e+00 1.00e+00f 1\n", + "\n", + "Number of Iterations....: 10\n", + "\n", + " (scaled) (unscaled)\n", + "Objective...............: 4.3309130854568794e+07 4.3309130854568794e+07\n", + "Dual infeasibility......: 8.5488594337511447e-07 8.5488594337511447e-07\n", + "Constraint violation....: 1.4551915228366852e-11 2.2002495825290680e-08\n", + "Complementarity.........: 9.0909090913936433e-08 9.0909090913936433e-08\n", + "Overall NLP error.......: 9.0909090913936433e-08 8.5488594337511447e-07\n", + "\n", + "\n", + "Number of objective function evaluations = 11\n", + "Number of objective gradient evaluations = 11\n", + "Number of equality constraint evaluations = 11\n", + "Number of inequality constraint evaluations = 0\n", + "Number of equality constraint Jacobian evaluations = 11\n", + "Number of inequality constraint Jacobian evaluations = 0\n", + "Number of Lagrangian Hessian evaluations = 10\n", + "Total CPU secs in IPOPT (w/o function evaluations) = 0.008\n", + "Total CPU secs in NLP function evaluations = 0.003\n", + "\n", + "EXIT: Optimal Solution Found.\n" + ] + } + ], "source": [ "results = solver.solve(m, tee=True)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 31, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "operating cost = $43.309 million per year\n", + "\n", + "Compressor results\n", + "\n", + "====================================================================================\n", + "Unit : fs.C101 Time: 0.0\n", + "------------------------------------------------------------------------------------\n", + " Unit Performance\n", + "\n", + " Variables: \n", + "\n", + " Key : Value : Units : Fixed : Bounds\n", + " Isentropic Efficiency : 0.90000 : dimensionless : True : (None, None)\n", + " Mechanical Work : 7.5471e+05 : watt : False : (None, None)\n", + " Pressure Change : 1.0000e+05 : pascal : False : (None, None)\n", + " Pressure Ratio : 2.0000 : dimensionless : False : (None, None)\n", + "\n", + "------------------------------------------------------------------------------------\n", + " Stream Table\n", + " Units Inlet Outlet \n", + " Total Molar Flowrate mole / second 309.01 309.01\n", + " Total Mole Fraction CH4 dimensionless 0.24272 0.24272\n", + " Total Mole Fraction H2O dimensionless 0.75725 0.75725\n", + " Total Mole Fraction H2 dimensionless 9.9996e-06 9.9996e-06\n", + " Total Mole Fraction CO dimensionless 9.9996e-06 9.9996e-06\n", + " Total Mole Fraction CO2 dimensionless 9.9996e-06 9.9996e-06\n", + " Temperature kelvin 353.80 423.34\n", + " Pressure pascal 1.0000e+05 2.0000e+05\n", + "====================================================================================\n", + "\n", + "Heater results\n", + "\n", + "====================================================================================\n", + "Unit : fs.H101 Time: 0.0\n", + "------------------------------------------------------------------------------------\n", + " Unit Performance\n", + "\n", + " Variables: \n", + "\n", + " Key : Value : Units : Fixed : Bounds\n", + " Heat Duty : 5.8781e-09 : watt : False : (0.0, None)\n", + "\n", + "------------------------------------------------------------------------------------\n", + " Stream Table\n", + " Units Inlet Outlet \n", + " Total Molar Flowrate mole / second 309.01 309.01\n", + " Total Mole Fraction CH4 dimensionless 0.24272 0.24272\n", + " Total Mole Fraction H2O dimensionless 0.75725 0.75725\n", + " Total Mole Fraction H2 dimensionless 9.9996e-06 9.9996e-06\n", + " Total Mole Fraction CO dimensionless 9.9996e-06 9.9996e-06\n", + " Total Mole Fraction CO2 dimensionless 9.9996e-06 9.9996e-06\n", + " Temperature kelvin 423.34 423.34\n", + " Pressure pascal 2.0000e+05 2.0000e+05\n", + "====================================================================================\n", + "\n", + "Equilibrium reactor results\n", + "\n", + "====================================================================================\n", + "Unit : fs.R101 Time: 0.0\n", + "------------------------------------------------------------------------------------\n", + " Unit Performance\n", + "\n", + " Variables: \n", + "\n", + " Key : Value : Units : Fixed : Bounds\n", + " Heat Duty : 3.2486e+07 : watt : False : (None, None)\n", + "\n", + "------------------------------------------------------------------------------------\n", + " Stream Table\n", + " Units Inlet Outlet \n", + " Total Molar Flowrate mole / second 309.01 444.02\n", + " Total Mole Fraction CH4 dimensionless 0.24272 0.016892\n", + " Total Mole Fraction H2O dimensionless 0.75725 0.29075\n", + " Total Mole Fraction H2 dimensionless 9.9996e-06 0.54032\n", + " Total Mole Fraction CO dimensionless 9.9996e-06 0.067801\n", + " Total Mole Fraction CO2 dimensionless 9.9996e-06 0.084239\n", + " Temperature kelvin 423.34 910.04\n", + " Pressure pascal 2.0000e+05 2.0000e+05\n", + "====================================================================================\n" + ] + } + ], "source": [ "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")\n", "\n", @@ -677,9 +1020,29 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 33, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Optimal Values\n", + "\n", + "C101 outlet pressure = 0.200 MPa\n", + "\n", + "C101 outlet temperature = 423.345 K\n", + "\n", + "H101 outlet temperature = 423.345 K\n", + "\n", + "R101 outlet temperature = 910.044 K\n", + "\n", + "Hydrogen produced = 33.648 MM lb/year\n", + "\n", + "Conversion achieved = 90.0%\n" + ] + } + ], "source": [ "print(\"Optimal Values\")\n", "print()\n", @@ -727,9 +1090,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.12" + "version": "3.9.18" } }, "nbformat": 4, "nbformat_minor": 3 -} +} \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/unit_models/reactors/gibbs_reactor_doc.ipynb b/idaes_examples/notebooks/docs/unit_models/reactors/gibbs_reactor_doc.ipynb index 11dbd1da..069a9a84 100644 --- a/idaes_examples/notebooks/docs/unit_models/reactors/gibbs_reactor_doc.ipynb +++ b/idaes_examples/notebooks/docs/unit_models/reactors/gibbs_reactor_doc.ipynb @@ -1,1298 +1,1049 @@ { - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "tags": [ - "header", - "hide-cell" - ] - }, - "outputs": [], - "source": [ - "###############################################################################\n", - "# The Institute for the Design of Advanced Energy Systems Integrated Platform\n", - "# Framework (IDAES IP) was produced under the DOE Institute for the\n", - "# Design of Advanced Energy Systems (IDAES).\n", - "#\n", - "# Copyright (c) 2018-2023 by the software owners: The Regents of the\n", - "# University of California, through Lawrence Berkeley National Laboratory,\n", - "# National Technology & Engineering Solutions of Sandia, LLC, Carnegie Mellon\n", - "# University, West Virginia University Research Corporation, et al.\n", - "# All rights reserved. Please see the files COPYRIGHT.md and LICENSE.md\n", - "# for full copyright and license information.\n", - "###############################################################################" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "# Flowsheet Gibbs Reactor Simulation and Optimization of Steam Methane Reforming\n", - "Author: Brandon Paul \n", - "Maintainer: Brandon Paul \n", - "Updated: 2023-06-01 \n", - "\n", - "\n", - "## Learning Outcomes\n", - "\n", - "\n", - "- Call and implement the IDAES GibbsReactor unit model\n", - "- Construct a steady-state flowsheet using the IDAES unit model library\n", - "- Connecting unit models in a flowsheet using Arcs\n", - "- Fomulate and solve an optimization problem\n", - " - Defining an objective function\n", - " - Setting variable bounds\n", - " - Adding additional constraints \n", - "\n", - "\n", - "## Problem Statement\n", - "\n", - "Following the previous example of [Steam Methane Reformation in an Equilibrium Reactor](http://localhost:8888/notebooks/GitHub/examples-pse/src/Examples/UnitModels/Reactors/equilibrium_reactor_testing_doc.md), this example solves the flowsheet using a Gibbs Reactor instead. The steam methane reformation example is adapted from S.Z. Abbas, V. Dupont, T. Mahmud, Kinetics study and modelling of steam methane reforming process over a NiO/Al2O3 catalyst in an adiabatic packed bed reactor. Int. J. Hydrogen Energy, 42 (2017), pp. 2889-2903. Typically, the process follows the chemical equations below:\n", - "\n", - "**CH4 + H2O → CO + 3H2** \n", - "**CO + H2O → CO2 + H2**\n", - "\n", - "However, the GibbsReactor unit model solves the equilibrium by minimizing Gibbs free energy. Conveniently, this eliminates the need for a reaction package although a thermophysical package is still required.\n", - "\n", - "The flowsheet that we will be using for this module is shown below with the stream conditions. As in the prior example, we will be processing natural gas and steam feeds of fixed composition to produce hydrogen. The process consists of a mixer M101 for the two inlet streams, a compressor to compress the feed to the reaction pressure, a heater H101 to heat the feed to the reaction temperature, and a GibbsReactor unit R101. We will use thermophysical properties following the Peng-Robinsion cubic equation of state for this flowsheet.\n", - "\n", - "The state variables chosen for the property package are **total molar flows of each stream, temperature of each stream and pressure of each stream, and mole fractions of each component in each stream**. The components considered are: **CH4, H2O, CO, CO2, and H2** and the process occurs in vapor phase only. Therefore, every stream has 1 flow variable, 5 mole fraction variables, 1 temperature and 1 pressure variable. \n", - "\n", - "![](msr_flowsheet.png)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Importing Required Pyomo and IDAES Components\n", - "\n", - "\n", - "To construct a flowsheet, we will need several components from the Pyomo and IDAES packages, as well as some utility tools to build the flowsheet. For further details on these components, please refer to the [Pyomo documentation]( https://pyomo.readthedocs.io/en/stable/).\n", - "\n", - "From IDAES, we will be needing the `FlowsheetBlock` and the following unit models:\n", - "- Feed\n", - "- Mixer\n", - "- Compressor\n", - "- Heater\n", - "- GibbsReactor\n", - "- Product" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "from pyomo.environ import (\n", - " Constraint,\n", - " Var,\n", - " ConcreteModel,\n", - " Expression,\n", - " Objective,\n", - " TransformationFactory,\n", - " value,\n", - " units as pyunits,\n", - ")\n", - "from pyomo.network import Arc\n", - "\n", - "from idaes.core import FlowsheetBlock\n", - "from idaes.models.properties.modular_properties import GenericParameterBlock\n", - "from idaes.models.unit_models import (\n", - " Feed,\n", - " Mixer,\n", - " Compressor,\n", - " Heater,\n", - " GibbsReactor,\n", - " Product,\n", - ")\n", - "\n", - "from idaes.core.solvers import get_solver\n", - "from idaes.core.util.model_statistics import degrees_of_freedom\n", - "from idaes.core.util.initialization import propagate_state" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Importing Required Thermophysical Package\n", - "\n", - "As mentioned earlier, the `GibbsReactor` does not require a reaction package.\n", - "\n", - "Let us import the following module from the IDAES library:\n", - "- natural_gas_PR as get_prop (method to get configuration dictionary)" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "from idaes.models_extra.power_generation.properties.natural_gas_PR import get_prop" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Constructing the Flowsheet\n", - "\n", - "Let us create a `ConcreteModel` and add the flowsheet block. " - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "m = ConcreteModel()\n", - "m.fs = FlowsheetBlock(dynamic=False)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We now need to add the property packages to the flowsheet. Unlike the previous example, we do not need to add a reaction package for the reactor model to calculate results. We will use the [Modular Property Framework](https://idaes-pse.readthedocs.io/en/stable/explanations/components/property_package/index.html#generic-property-package-framework) to build a state block for the parameter dictionary." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "thermo_props_config_dict = get_prop(components=[\"CH4\", \"H2O\", \"H2\", \"CO\", \"CO2\"])\n", - "m.fs.thermo_params = GenericParameterBlock(**thermo_props_config_dict)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Adding Unit Models\n", - "\n", - "Let us start adding the unit models we have imported to the flowsheet:" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "m.fs.CH4 = Feed(property_package=m.fs.thermo_params)\n", - "m.fs.H2O = Feed(property_package=m.fs.thermo_params)\n", - "m.fs.PROD = Product(property_package=m.fs.thermo_params)\n", - "m.fs.M101 = Mixer(\n", - " property_package=m.fs.thermo_params, inlet_list=[\"methane_feed\", \"steam_feed\"]\n", - ")\n", - "m.fs.H101 = Heater(\n", - " property_package=m.fs.thermo_params,\n", - " has_pressure_change=False,\n", - " has_phase_equilibrium=False,\n", - ")\n", - "m.fs.C101 = Compressor(property_package=m.fs.thermo_params)" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "scrolled": false - }, - "outputs": [], - "source": [ - "m.fs.R101 = GibbsReactor(\n", - " property_package=m.fs.thermo_params,\n", - " has_heat_transfer=True,\n", - " has_pressure_change=False,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Connecting Unit Models Using Arcs\n", - "\n", - "We have now added all the unit models we need to the flowsheet. Let us connect the unit models by defining and building each `Arc`:" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.s01 = Arc(source=m.fs.CH4.outlet, destination=m.fs.M101.methane_feed)\n", - "m.fs.s02 = Arc(source=m.fs.H2O.outlet, destination=m.fs.M101.steam_feed)\n", - "m.fs.s03 = Arc(source=m.fs.M101.outlet, destination=m.fs.C101.inlet)\n", - "m.fs.s04 = Arc(source=m.fs.C101.outlet, destination=m.fs.H101.inlet)\n", - "m.fs.s05 = Arc(source=m.fs.H101.outlet, destination=m.fs.R101.inlet)\n", - "m.fs.s06 = Arc(source=m.fs.R101.outlet, destination=m.fs.PROD.inlet)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Finally, we can use Pyomo's `TransformationFactory` to write the equality constraints on each Arc:" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "TransformationFactory(\"network.expand_arcs\").apply_to(m)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Adding Expressions to Compute Operating Costs\n", - "\n", - "For this flowsheet, we are interested in computing hydrogen production in millions of pounds per year, as well as the total costs due to pressurizing, cooling, and heating utilities:" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us add `Expressions` to convert the product flow from mol/s to MM lb/year of hydrogen, and to calculate the cooling, heating and compression operating costs. The total operating cost will be the sum of the costs, expressed in \\\\$/year assuming 8000 operating hours per year (~10\\% downtime, which is fairly common for small scale chemical plants):" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.hyd_prod = Expression(\n", - " expr=pyunits.convert(\n", - " m.fs.PROD.inlet.flow_mol[0]\n", - " * m.fs.PROD.inlet.mole_frac_comp[0, \"H2\"]\n", - " * m.fs.thermo_params.H2.mw, # MW defined in properties as kg/mol\n", - " to_units=pyunits.Mlb / pyunits.yr,\n", - " )\n", - ") # converting kg/s to MM lb/year" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.cooling_cost = Expression(\n", - " expr=0.212e-7 * (m.fs.R101.heat_duty[0])\n", - ") # the reaction is endothermic, so R101 duty is positive\n", - "m.fs.heating_cost = Expression(\n", - " expr=2.2e-7 * m.fs.H101.heat_duty[0]\n", - ") # the stream must be heated to T_rxn, so H101 duty is positive\n", - "m.fs.compression_cost = Expression(\n", - " expr=0.12e-5 * m.fs.C101.work_isentropic[0]\n", - ") # the stream must be pressurized, so the C101 work is positive\n", - "m.fs.operating_cost = Expression(\n", - " expr=(3600 * 8000 * (m.fs.heating_cost + m.fs.cooling_cost + m.fs.compression_cost))\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Fixing Feed Conditions\n", - "\n", - "We expect each stream to have 8 degrees of freedom, the mixer to have 0 (after both streams are accounted for), the compressor to have 2 (the pressure change and efficiency), the heater to have 1 (just the duty, since the inlet is also the outlet of M101), and the reactor to have 1 (conversion). Therefore, we have 20 degrees of freedom to specify: temperature, pressure, flow and mole fractions of all five components on both streams; compressor pressure change and efficiency; outlet heater temperature; and reactor conversion." - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": { - "scrolled": true - }, - "outputs": [ + "cells": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "20\n" - ] - } - ], - "source": [ - "print(degrees_of_freedom(m))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Based on the literature source, we will initialize our simulation with the following values:" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.CH4.outlet.mole_frac_comp[0, \"CH4\"].fix(1)\n", - "m.fs.CH4.outlet.mole_frac_comp[0, \"H2O\"].fix(1e-5)\n", - "m.fs.CH4.outlet.mole_frac_comp[0, \"H2\"].fix(1e-5)\n", - "m.fs.CH4.outlet.mole_frac_comp[0, \"CO\"].fix(1e-5)\n", - "m.fs.CH4.outlet.mole_frac_comp[0, \"CO2\"].fix(1e-5)\n", - "m.fs.CH4.outlet.flow_mol.fix(75 * pyunits.mol / pyunits.s)\n", - "m.fs.CH4.outlet.temperature.fix(298.15 * pyunits.K)\n", - "m.fs.CH4.outlet.pressure.fix(1e5 * pyunits.Pa)\n", - "\n", - "m.fs.H2O.outlet.mole_frac_comp[0, \"CH4\"].fix(1e-5)\n", - "m.fs.H2O.outlet.mole_frac_comp[0, \"H2O\"].fix(1)\n", - "m.fs.H2O.outlet.mole_frac_comp[0, \"H2\"].fix(1e-5)\n", - "m.fs.H2O.outlet.mole_frac_comp[0, \"CO\"].fix(1e-5)\n", - "m.fs.H2O.outlet.mole_frac_comp[0, \"CO2\"].fix(1e-5)\n", - "m.fs.H2O.outlet.flow_mol.fix(234 * pyunits.mol / pyunits.s)\n", - "m.fs.H2O.outlet.temperature.fix(373.15 * pyunits.K)\n", - "m.fs.H2O.outlet.pressure.fix(1e5 * pyunits.Pa)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Fixing Unit Model Specifications\n", - "\n", - "For the initial problem, let us fix the compressor outlet pressure to 2 bar for now, the efficiency to 0.90 (a common assumption for compressor units), and the heater outlet temperature to 500 K. We will unfix these values later to optimize the flowsheet." - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.C101.outlet.pressure.fix(pyunits.convert(2 * pyunits.bar, to_units=pyunits.Pa))\n", - "m.fs.C101.efficiency_isentropic.fix(0.90)\n", - "m.fs.H101.outlet.temperature.fix(500 * pyunits.K)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The `GibbsReactor` unit model calculates the amount of product and reactant based on the free energy minimization; therefore, we will specify a desired conversion and let the solver determine the reactor duty and heat transfer. For convenience, we will define the reactor conversion as the amount of methane that is converted." - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.R101.conversion = Var(\n", - " initialize=0.80, bounds=(0, 1), units=pyunits.dimensionless\n", - ") # fraction\n", - "\n", - "m.fs.R101.conv_constraint = Constraint(\n", - " expr=m.fs.R101.conversion\n", - " * m.fs.R101.inlet.flow_mol[0]\n", - " * m.fs.R101.inlet.mole_frac_comp[0, \"CH4\"]\n", - " == (\n", - " m.fs.R101.inlet.flow_mol[0] * m.fs.R101.inlet.mole_frac_comp[0, \"CH4\"]\n", - " - m.fs.R101.outlet.flow_mol[0] * m.fs.R101.outlet.mole_frac_comp[0, \"CH4\"]\n", - " )\n", - ")\n", - "\n", - "m.fs.R101.conversion.fix(0.80)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For initialization, we solve a square problem (degrees of freedom = 0). Let's check the degrees of freedom below:" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ + "cell_type": "code", + "execution_count": 1, + "metadata": { + "tags": [ + "header", + "hide-cell" + ] + }, + "outputs": [], + "source": [ + "###############################################################################\n", + "# The Institute for the Design of Advanced Energy Systems Integrated Platform\n", + "# Framework (IDAES IP) was produced under the DOE Institute for the\n", + "# Design of Advanced Energy Systems (IDAES).\n", + "#\n", + "# Copyright (c) 2018-2023 by the software owners: The Regents of the\n", + "# University of California, through Lawrence Berkeley National Laboratory,\n", + "# National Technology & Engineering Solutions of Sandia, LLC, Carnegie Mellon\n", + "# University, West Virginia University Research Corporation, et al.\n", + "# All rights reserved. Please see the files COPYRIGHT.md and LICENSE.md\n", + "# for full copyright and license information.\n", + "###############################################################################" + ] + }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "0" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "# Flowsheet Gibbs Reactor Simulation and Optimization of Steam Methane Reforming\n", + "Author: Brandon Paul \n", + "Maintainer: Brandon Paul \n", + "Updated: 2023-06-01 \n", + "\n", + "\n", + "## Learning Outcomes\n", + "\n", + "\n", + "- Call and implement the IDAES GibbsReactor unit model\n", + "- Construct a steady-state flowsheet using the IDAES unit model library\n", + "- Connecting unit models in a flowsheet using Arcs\n", + "- Fomulate and solve an optimization problem\n", + " - Defining an objective function\n", + " - Setting variable bounds\n", + " - Adding additional constraints \n", + "\n", + "\n", + "## Problem Statement\n", + "\n", + "Following the previous example of [Steam Methane Reformation in an Equilibrium Reactor](http://localhost:8888/notebooks/GitHub/examples-pse/src/Examples/UnitModels/Reactors/equilibrium_reactor_testing_doc.md), this example solves the flowsheet using a Gibbs Reactor instead. The steam methane reformation example is adapted from S.Z. Abbas, V. Dupont, T. Mahmud, Kinetics study and modelling of steam methane reforming process over a NiO/Al2O3 catalyst in an adiabatic packed bed reactor. Int. J. Hydrogen Energy, 42 (2017), pp. 2889-2903. Typically, the process follows the chemical equations below:\n", + "\n", + "**CH4 + H2O \u2192 CO + 3H2** \n", + "**CO + H2O \u2192 CO2 + H2**\n", + "\n", + "However, the GibbsReactor unit model solves the equilibrium by minimizing Gibbs free energy. Conveniently, this eliminates the need for a reaction package although a thermophysical package is still required.\n", + "\n", + "The flowsheet that we will be using for this module is shown below with the stream conditions. As in the prior example, we will be processing natural gas and steam feeds of fixed composition to produce hydrogen. The process consists of a mixer M101 for the two inlet streams, a compressor to compress the feed to the reaction pressure, a heater H101 to heat the feed to the reaction temperature, and a GibbsReactor unit R101. We will use thermophysical properties following the Peng-Robinsion cubic equation of state for this flowsheet.\n", + "\n", + "The state variables chosen for the property package are **total molar flows of each stream, temperature of each stream and pressure of each stream, and mole fractions of each component in each stream**. The components considered are: **CH4, H2O, CO, CO2, and H2** and the process occurs in vapor phase only. Therefore, every stream has 1 flow variable, 5 mole fraction variables, 1 temperature and 1 pressure variable. \n", + "\n", + "![](msr_flowsheet.png)\n" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], - "source": [ - "print(degrees_of_freedom(m))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Finally, we need to initialize the each unit operation and propagate the outlet results in sequence to solve the flowsheet:" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Importing Required Pyomo and IDAES Components\n", + "\n", + "\n", + "To construct a flowsheet, we will need several components from the Pyomo and IDAES packages, as well as some utility tools to build the flowsheet. For further details on these components, please refer to the [Pyomo documentation]( https://pyomo.readthedocs.io/en/stable/).\n", + "\n", + "From IDAES, we will be needing the `FlowsheetBlock` and the following unit models:\n", + "- Feed\n", + "- Mixer\n", + "- Compressor\n", + "- Heater\n", + "- GibbsReactor\n", + "- Product" + ] + }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:35 [INFO] idaes.init.fs.CH4.properties: Starting initialization\n" - ] + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "from pyomo.environ import (\n", + " Constraint,\n", + " Var,\n", + " ConcreteModel,\n", + " Expression,\n", + " Objective,\n", + " TransformationFactory,\n", + " value,\n", + " units as pyunits,\n", + ")\n", + "from pyomo.network import Arc\n", + "\n", + "from idaes.core import FlowsheetBlock\n", + "from idaes.models.properties.modular_properties import GenericParameterBlock\n", + "from idaes.models.unit_models import (\n", + " Feed,\n", + " Mixer,\n", + " Compressor,\n", + " Heater,\n", + " GibbsReactor,\n", + " Product,\n", + ")\n", + "\n", + "from idaes.core.solvers import get_solver\n", + "from idaes.core.util.model_statistics import degrees_of_freedom\n", + "from idaes.core.util.initialization import propagate_state" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:35 [INFO] idaes.init.fs.CH4.properties: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Importing Required Thermophysical Package\n", + "\n", + "As mentioned earlier, the `GibbsReactor` does not require a reaction package.\n", + "\n", + "Let us import the following module from the IDAES library:\n", + "- natural_gas_PR as get_prop (method to get configuration dictionary)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:35 [INFO] idaes.init.fs.CH4.properties: Property package initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "from idaes.models_extra.power_generation.properties.natural_gas_PR import get_prop" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:35 [INFO] idaes.init.fs.CH4: Initialization Complete.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Constructing the Flowsheet\n", + "\n", + "Let us create a `ConcreteModel` and add the flowsheet block. " + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:35 [INFO] idaes.init.fs.H2O.properties: Starting initialization\n" - ] + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "m = ConcreteModel()\n", + "m.fs = FlowsheetBlock(dynamic=False)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:35 [INFO] idaes.init.fs.H2O.properties: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now need to add the property packages to the flowsheet. Unlike the previous example, we do not need to add a reaction package for the reactor model to calculate results. We will use the [Modular Property Framework](https://idaes-pse.readthedocs.io/en/stable/explanations/components/property_package/index.html#generic-property-package-framework) to build a state block for the parameter dictionary." + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:35 [INFO] idaes.init.fs.H2O.properties: Property package initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 5, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "thermo_props_config_dict = get_prop(components=[\"CH4\", \"H2O\", \"H2\", \"CO\", \"CO2\"])\n", + "m.fs.thermo_params = GenericParameterBlock(**thermo_props_config_dict)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:35 [INFO] idaes.init.fs.H2O: Initialization Complete.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Adding Unit Models\n", + "\n", + "Let us start adding the unit models we have imported to the flowsheet:" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:35 [INFO] idaes.init.fs.M101.methane_feed_state: Starting initialization\n" - ] + "cell_type": "code", + "execution_count": 6, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "m.fs.CH4 = Feed(property_package=m.fs.thermo_params)\n", + "m.fs.H2O = Feed(property_package=m.fs.thermo_params)\n", + "m.fs.PROD = Product(property_package=m.fs.thermo_params)\n", + "m.fs.M101 = Mixer(\n", + " property_package=m.fs.thermo_params, inlet_list=[\"methane_feed\", \"steam_feed\"]\n", + ")\n", + "m.fs.H101 = Heater(\n", + " property_package=m.fs.thermo_params,\n", + " has_pressure_change=False,\n", + " has_phase_equilibrium=False,\n", + ")\n", + "m.fs.C101 = Compressor(property_package=m.fs.thermo_params)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:35 [INFO] idaes.init.fs.M101.methane_feed_state: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.R101 = GibbsReactor(\n", + " property_package=m.fs.thermo_params,\n", + " has_heat_transfer=True,\n", + " has_pressure_change=False,\n", + ")" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:35 [INFO] idaes.init.fs.M101.steam_feed_state: Starting initialization\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Connecting Unit Models Using Arcs\n", + "\n", + "We have now added all the unit models we need to the flowsheet. Let us connect the unit models by defining and building each `Arc`:" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:35 [INFO] idaes.init.fs.M101.steam_feed_state: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.s01 = Arc(source=m.fs.CH4.outlet, destination=m.fs.M101.methane_feed)\n", + "m.fs.s02 = Arc(source=m.fs.H2O.outlet, destination=m.fs.M101.steam_feed)\n", + "m.fs.s03 = Arc(source=m.fs.M101.outlet, destination=m.fs.C101.inlet)\n", + "m.fs.s04 = Arc(source=m.fs.C101.outlet, destination=m.fs.H101.inlet)\n", + "m.fs.s05 = Arc(source=m.fs.H101.outlet, destination=m.fs.R101.inlet)\n", + "m.fs.s06 = Arc(source=m.fs.R101.outlet, destination=m.fs.PROD.inlet)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:35 [INFO] idaes.init.fs.M101.mixed_state: Starting initialization\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, we can use Pyomo's `TransformationFactory` to write the equality constraints on each Arc:" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:35 [INFO] idaes.init.fs.M101.mixed_state: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "TransformationFactory(\"network.expand_arcs\").apply_to(m)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:35 [INFO] idaes.init.fs.M101.mixed_state: Property package initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Adding Expressions to Compute Operating Costs\n", + "\n", + "For this flowsheet, we are interested in computing hydrogen production in millions of pounds per year, as well as the total costs due to pressurizing, cooling, and heating utilities:" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:35 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - Optimal Solution Found\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us add `Expressions` to convert the product flow from mol/s to MM lb/year of hydrogen, and to calculate the cooling, heating and compression operating costs. The total operating cost will be the sum of the costs, expressed in \\\\$/year assuming 8000 operating hours per year (~10\\% downtime, which is fairly common for small scale chemical plants):" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:35 [INFO] idaes.init.fs.C101.control_volume.properties_in: Starting initialization\n" - ] + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.hyd_prod = Expression(\n", + " expr=pyunits.convert(\n", + " m.fs.PROD.inlet.flow_mol[0]\n", + " * m.fs.PROD.inlet.mole_frac_comp[0, \"H2\"]\n", + " * m.fs.thermo_params.H2.mw, # MW defined in properties as kg/mol\n", + " to_units=pyunits.Mlb / pyunits.yr,\n", + " )\n", + ") # converting kg/s to MM lb/year" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:35 [INFO] idaes.init.fs.C101.control_volume.properties_in: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.cooling_cost = Expression(\n", + " expr=0.212e-7 * (m.fs.R101.heat_duty[0])\n", + ") # the reaction is endothermic, so R101 duty is positive\n", + "m.fs.heating_cost = Expression(\n", + " expr=2.2e-7 * m.fs.H101.heat_duty[0]\n", + ") # the stream must be heated to T_rxn, so H101 duty is positive\n", + "m.fs.compression_cost = Expression(\n", + " expr=0.12e-5 * m.fs.C101.work_isentropic[0]\n", + ") # the stream must be pressurized, so the C101 work is positive\n", + "m.fs.operating_cost = Expression(\n", + " expr=(3600 * 8000 * (m.fs.heating_cost + m.fs.cooling_cost + m.fs.compression_cost))\n", + ")" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:35 [INFO] idaes.init.fs.C101.control_volume.properties_out: Starting initialization\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Fixing Feed Conditions\n", + "\n", + "We expect each stream to have 8 degrees of freedom, the mixer to have 0 (after both streams are accounted for), the compressor to have 2 (the pressure change and efficiency), the heater to have 1 (just the duty, since the inlet is also the outlet of M101), and the reactor to have 1 (conversion). Therefore, we have 20 degrees of freedom to specify: temperature, pressure, flow and mole fractions of all five components on both streams; compressor pressure change and efficiency; outlet heater temperature; and reactor conversion." + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:35 [INFO] idaes.init.fs.C101.control_volume.properties_out: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 12, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "20\n" + ] + } + ], + "source": [ + "print(degrees_of_freedom(m))" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:35 [INFO] idaes.init.fs.C101.control_volume.properties_out: Property package initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Based on the literature source, we will initialize our simulation with the following values:" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:35 [INFO] idaes.init.fs.C101.properties_isentropic: Starting initialization\n" - ] + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.CH4.outlet.mole_frac_comp[0, \"CH4\"].fix(1)\n", + "m.fs.CH4.outlet.mole_frac_comp[0, \"H2O\"].fix(1e-5)\n", + "m.fs.CH4.outlet.mole_frac_comp[0, \"H2\"].fix(1e-5)\n", + "m.fs.CH4.outlet.mole_frac_comp[0, \"CO\"].fix(1e-5)\n", + "m.fs.CH4.outlet.mole_frac_comp[0, \"CO2\"].fix(1e-5)\n", + "m.fs.CH4.outlet.flow_mol.fix(75 * pyunits.mol / pyunits.s)\n", + "m.fs.CH4.outlet.temperature.fix(298.15 * pyunits.K)\n", + "m.fs.CH4.outlet.pressure.fix(1e5 * pyunits.Pa)\n", + "\n", + "m.fs.H2O.outlet.mole_frac_comp[0, \"CH4\"].fix(1e-5)\n", + "m.fs.H2O.outlet.mole_frac_comp[0, \"H2O\"].fix(1)\n", + "m.fs.H2O.outlet.mole_frac_comp[0, \"H2\"].fix(1e-5)\n", + "m.fs.H2O.outlet.mole_frac_comp[0, \"CO\"].fix(1e-5)\n", + "m.fs.H2O.outlet.mole_frac_comp[0, \"CO2\"].fix(1e-5)\n", + "m.fs.H2O.outlet.flow_mol.fix(234 * pyunits.mol / pyunits.s)\n", + "m.fs.H2O.outlet.temperature.fix(373.15 * pyunits.K)\n", + "m.fs.H2O.outlet.pressure.fix(1e5 * pyunits.Pa)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:35 [INFO] idaes.init.fs.C101.properties_isentropic: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Fixing Unit Model Specifications\n", + "\n", + "For the initial problem, let us fix the compressor outlet pressure to 2 bar for now, the efficiency to 0.90 (a common assumption for compressor units), and the heater outlet temperature to 500 K. We will unfix these values later to optimize the flowsheet." + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:35 [INFO] idaes.init.fs.C101.properties_isentropic: Property package initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.C101.outlet.pressure.fix(pyunits.convert(2 * pyunits.bar, to_units=pyunits.Pa))\n", + "m.fs.C101.efficiency_isentropic.fix(0.90)\n", + "m.fs.H101.outlet.temperature.fix(500 * pyunits.K)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:35 [INFO] idaes.init.fs.C101: Initialization Complete: optimal - Optimal Solution Found\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `GibbsReactor` unit model calculates the amount of product and reactant based on the free energy minimization; therefore, we will specify a desired conversion and let the solver determine the reactor duty and heat transfer. For convenience, we will define the reactor conversion as the amount of methane that is converted." + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:35 [INFO] idaes.init.fs.H101.control_volume.properties_in: Starting initialization\n" - ] + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.R101.conversion = Var(\n", + " initialize=0.80, bounds=(0, 1), units=pyunits.dimensionless\n", + ") # fraction\n", + "\n", + "m.fs.R101.conv_constraint = Constraint(\n", + " expr=m.fs.R101.conversion\n", + " * m.fs.R101.inlet.flow_mol[0]\n", + " * m.fs.R101.inlet.mole_frac_comp[0, \"CH4\"]\n", + " == (\n", + " m.fs.R101.inlet.flow_mol[0] * m.fs.R101.inlet.mole_frac_comp[0, \"CH4\"]\n", + " - m.fs.R101.outlet.flow_mol[0] * m.fs.R101.outlet.mole_frac_comp[0, \"CH4\"]\n", + " )\n", + ")\n", + "\n", + "m.fs.R101.conversion.fix(0.80)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:35 [INFO] idaes.init.fs.H101.control_volume.properties_in: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For initialization, we solve a square problem (degrees of freedom = 0). Let's check the degrees of freedom below:" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:35 [INFO] idaes.init.fs.H101.control_volume.properties_out: Starting initialization\n" - ] + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n" + ] + } + ], + "source": [ + "print(degrees_of_freedom(m))" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:35 [INFO] idaes.init.fs.H101.control_volume.properties_out: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, we need to initialize the each unit operation and propagate the outlet results in sequence to solve the flowsheet:" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:35 [INFO] idaes.init.fs.H101.control_volume: Initialization Complete\n" - ] + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-05-23 06:07:53 [INFO] idaes.init.fs.CH4.properties: Starting initialization\n", + "2024-05-23 06:07:53 [INFO] idaes.init.fs.CH4.properties: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:53 [INFO] idaes.init.fs.CH4.properties: Property package initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:53 [INFO] idaes.init.fs.CH4: Initialization Complete.\n", + "2024-05-23 06:07:53 [INFO] idaes.init.fs.H2O.properties: Starting initialization\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.H2O.properties: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.H2O.properties: Property package initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.H2O: Initialization Complete.\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.M101.methane_feed_state: Starting initialization\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.M101.methane_feed_state: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.M101.steam_feed_state: Starting initialization\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.M101.steam_feed_state: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.M101.mixed_state: Starting initialization\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.M101.mixed_state: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.M101.mixed_state: Property package initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.C101.control_volume.properties_in: Starting initialization\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.C101.control_volume.properties_in: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.C101.control_volume.properties_out: Starting initialization\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.C101.control_volume.properties_out: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.C101.control_volume.properties_out: Property package initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.C101.properties_isentropic: Starting initialization\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.C101.properties_isentropic: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.C101.properties_isentropic: Property package initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:55 [INFO] idaes.init.fs.C101: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-05-23 06:07:55 [INFO] idaes.init.fs.H101.control_volume.properties_in: Starting initialization\n", + "2024-05-23 06:07:55 [INFO] idaes.init.fs.H101.control_volume.properties_in: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:55 [INFO] idaes.init.fs.H101.control_volume.properties_out: Starting initialization\n", + "2024-05-23 06:07:55 [INFO] idaes.init.fs.H101.control_volume.properties_out: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:55 [INFO] idaes.init.fs.H101.control_volume: Initialization Complete\n", + "2024-05-23 06:07:55 [INFO] idaes.init.fs.H101: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-05-23 06:07:55 [INFO] idaes.init.fs.R101.control_volume.properties_in: Starting initialization\n", + "2024-05-23 06:07:55 [INFO] idaes.init.fs.R101.control_volume.properties_in: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:55 [INFO] idaes.init.fs.R101.control_volume.properties_out: Starting initialization\n", + "2024-05-23 06:07:55 [INFO] idaes.init.fs.R101.control_volume.properties_out: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:55 [INFO] idaes.init.fs.R101.control_volume: Initialization Complete\n", + "2024-05-23 06:07:56 [INFO] idaes.init.fs.R101: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-05-23 06:07:56 [INFO] idaes.init.fs.PROD.properties: Starting initialization\n", + "2024-05-23 06:07:56 [INFO] idaes.init.fs.PROD.properties: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:56 [INFO] idaes.init.fs.PROD.properties: Property package initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:56 [INFO] idaes.init.fs.PROD: Initialization Complete.\n" + ] + } + ], + "source": [ + "# Initialize and solve each unit operation\n", + "m.fs.CH4.initialize()\n", + "propagate_state(arc=m.fs.s01)\n", + "\n", + "m.fs.H2O.initialize()\n", + "propagate_state(arc=m.fs.s02)\n", + "\n", + "m.fs.M101.initialize()\n", + "propagate_state(arc=m.fs.s03)\n", + "\n", + "m.fs.C101.initialize()\n", + "propagate_state(arc=m.fs.s04)\n", + "\n", + "m.fs.H101.initialize()\n", + "propagate_state(arc=m.fs.s05)\n", + "\n", + "m.fs.R101.initialize()\n", + "propagate_state(arc=m.fs.s06)\n", + "\n", + "m.fs.PROD.initialize()\n", + "\n", + "# set solver\n", + "solver = get_solver()" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:35 [INFO] idaes.init.fs.H101: Initialization Complete: optimal - Optimal Solution Found\n" - ] + "cell_type": "code", + "execution_count": 20, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", + "tol=1e-06\n", + "max_iter=200\n", + "\n", + "\n", + "******************************************************************************\n", + "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", + " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", + " For more information visit http://projects.coin-or.org/Ipopt\n", + "\n", + "This version of Ipopt was compiled from source code available at\n", + " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", + " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", + " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", + "\n", + "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", + " for large-scale scientific computation. All technical papers, sales and\n", + " publicity material resulting from use of the HSL codes within IPOPT must\n", + " contain the following acknowledgement:\n", + " HSL, a collection of Fortran codes for large-scale scientific\n", + " computation. See http://www.hsl.rl.ac.uk.\n", + "******************************************************************************\n", + "\n", + "This is Ipopt version 3.13.2, running with linear solver ma27.\n", + "\n", + "Number of nonzeros in equality constraint Jacobian...: 591\n", + "Number of nonzeros in inequality constraint Jacobian.: 0\n", + "Number of nonzeros in Lagrangian Hessian.............: 490\n", + "\n", + "Total number of variables............................: 203\n", + " variables with only lower bounds: 13\n", + " variables with lower and upper bounds: 179\n", + " variables with only upper bounds: 0\n", + "Total number of equality constraints.................: 203\n", + "Total number of inequality constraints...............: 0\n", + " inequality constraints with only lower bounds: 0\n", + " inequality constraints with lower and upper bounds: 0\n", + " inequality constraints with only upper bounds: 0\n", + "\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 0 0.0000000e+00 1.49e+06 1.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", + " 1 0.0000000e+00 1.35e+04 2.00e-01 -1.0 3.59e+00 - 9.90e-01 9.91e-01h 1\n", + " 2 0.0000000e+00 3.59e-04 9.99e+00 -1.0 3.56e+00 - 9.90e-01 1.00e+00h 1\n", + " 3 0.0000000e+00 2.60e-08 8.98e+01 -1.0 2.91e-04 - 9.90e-01 1.00e+00h 1\n", + "\n", + "Number of Iterations....: 3\n", + "\n", + " (scaled) (unscaled)\n", + "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Constraint violation....: 7.6029602259665645e-13 2.5960616767406464e-08\n", + "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Overall NLP error.......: 7.6029602259665645e-13 2.5960616767406464e-08\n", + "\n", + "\n", + "Number of objective function evaluations = 4\n", + "Number of objective gradient evaluations = 4\n", + "Number of equality constraint evaluations = 4\n", + "Number of inequality constraint evaluations = 0\n", + "Number of equality constraint Jacobian evaluations = 4\n", + "Number of inequality constraint Jacobian evaluations = 0\n", + "Number of Lagrangian Hessian evaluations = 3\n", + "Total CPU secs in IPOPT (w/o function evaluations) = 0.004\n", + "Total CPU secs in NLP function evaluations = 0.000\n", + "\n", + "EXIT: Optimal Solution Found.\n" + ] + } + ], + "source": [ + "# Solve the model\n", + "results = solver.solve(m, tee=True)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:35 [INFO] idaes.init.fs.R101.control_volume.properties_in: Starting initialization\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Analyze the Results of the Square Problem\n", + "\n", + "\n", + "What is the total operating cost? " + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:35 [INFO] idaes.init.fs.R101.control_volume.properties_in: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "operating cost = $39.958 million per year\n" + ] + } + ], + "source": [ + "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:35 [INFO] idaes.init.fs.R101.control_volume.properties_out: Starting initialization\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For this operating cost, what conversion did we achieve of methane to hydrogen?" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:35 [INFO] idaes.init.fs.R101.control_volume.properties_out: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "====================================================================================\n", + "Unit : fs.R101 Time: 0.0\n", + "------------------------------------------------------------------------------------\n", + " Unit Performance\n", + "\n", + " Variables: \n", + "\n", + " Key : Value : Units : Fixed : Bounds\n", + " Heat Duty : 1.7819e+07 : watt : False : (None, None)\n", + "\n", + "------------------------------------------------------------------------------------\n", + " Stream Table\n", + " Units Inlet Outlet \n", + " Total Molar Flowrate mole / second 309.01 429.02\n", + " Total Mole Fraction CH4 dimensionless 0.24272 0.034965\n", + " Total Mole Fraction H2O dimensionless 0.75725 0.32532\n", + " Total Mole Fraction H2 dimensionless 9.9996e-06 0.49984\n", + " Total Mole Fraction CO dimensionless 9.9996e-06 0.059609\n", + " Total Mole Fraction CO2 dimensionless 9.9996e-06 0.080265\n", + " Temperature kelvin 500.00 920.80\n", + " Pressure pascal 2.0000e+05 2.0000e+05\n", + "====================================================================================\n", + "\n", + "Conversion achieved = 80.0%\n" + ] + } + ], + "source": [ + "m.fs.R101.report()\n", + "\n", + "print()\n", + "print(f\"Conversion achieved = {value(m.fs.R101.conversion):.1%}\")" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:35 [INFO] idaes.init.fs.R101.control_volume: Initialization Complete\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Optimizing Hydrogen Production\n", + "\n", + "Now that the flowsheet has been squared and solved, we can run a small optimization problem to determine optimal conditions for producing hydrogen. Suppose we wish to find ideal conditions for the competing reactions. The GibbsReactor does not drive equilibrium forward based on temperature, so we will see small amounts of intermediate components present in the product stream. We will allow for variable reactor temperature and pressure by freeing our heater and compressor specifications, and minimize cost to achieve 90% methane conversion. Since we assume an isentopic compressor, allowing compression will heat our feed stream and reduce or eliminate the required heater duty." + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:36 [INFO] idaes.init.fs.R101: Initialization Complete: optimal - Optimal Solution Found\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us declare our objective function for this problem. " + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:36 [INFO] idaes.init.fs.PROD.properties: Starting initialization\n" - ] + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.objective = Objective(expr=m.fs.operating_cost)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:36 [INFO] idaes.init.fs.PROD.properties: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, we need to add the design constraints and unfix the decision variables as we had solved a square problem until now, as well as set bounds for the design variables (reactor outlet temperature is set by state variable bounds in property package):" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:36 [INFO] idaes.init.fs.PROD.properties: Property package initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.R101.conversion.fix(0.90)\n", + "\n", + "m.fs.C101.outlet.pressure.unfix()\n", + "m.fs.C101.outlet.pressure[0].setlb(\n", + " pyunits.convert(1 * pyunits.bar, to_units=pyunits.Pa)\n", + ") # equals inlet pressure\n", + "m.fs.C101.outlet.pressure[0].setlb(\n", + " pyunits.convert(10 * pyunits.bar, to_units=pyunits.Pa)\n", + ") # at most, pressurize to 1 bar\n", + "\n", + "m.fs.H101.outlet.temperature.unfix()\n", + "m.fs.H101.heat_duty[0].setlb(\n", + " 0 * pyunits.J / pyunits.s\n", + ") # ensures outlet is equal to or greater than inlet temperature\n", + "m.fs.H101.outlet.temperature[0].setub(1000 * pyunits.K) # at most, heat to 1000 K" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:36 [INFO] idaes.init.fs.PROD: Initialization Complete.\n" - ] - } - ], - "source": [ - "# Initialize and solve each unit operation\n", - "m.fs.CH4.initialize()\n", - "propagate_state(arc=m.fs.s01)\n", - "\n", - "m.fs.H2O.initialize()\n", - "propagate_state(arc=m.fs.s02)\n", - "\n", - "m.fs.M101.initialize()\n", - "propagate_state(arc=m.fs.s03)\n", - "\n", - "m.fs.C101.initialize()\n", - "propagate_state(arc=m.fs.s04)\n", - "\n", - "m.fs.H101.initialize()\n", - "propagate_state(arc=m.fs.s05)\n", - "\n", - "m.fs.R101.initialize()\n", - "propagate_state(arc=m.fs.s06)\n", - "\n", - "m.fs.PROD.initialize()\n", - "\n", - "# set solver\n", - "solver = get_solver()" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": { - "scrolled": true - }, - "outputs": [ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "We have now defined the optimization problem and we are now ready to solve this problem. \n", + "\n", + "\n" + ] + }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", - "tol=1e-06\n", - "max_iter=200\n", - "\n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 591\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 490\n", - "\n", - "Total number of variables............................: 203\n", - " variables with only lower bounds: 13\n", - " variables with lower and upper bounds: 179\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 203\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 1.49e+06 1.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 1.35e+04 2.00e-01 -1.0 3.59e+00 - 9.90e-01 9.91e-01h 1\n", - " 2 0.0000000e+00 3.59e-04 9.99e+00 -1.0 3.56e+00 - 9.90e-01 1.00e+00h 1\n", - " 3 0.0000000e+00 1.75e-08 8.98e+01 -1.0 2.91e-04 - 9.90e-01 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 3\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Constraint violation....: 1.1641532182693481e-10 1.7462298274040222e-08\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 1.1641532182693481e-10 1.7462298274040222e-08\n", - "\n", - "\n", - "Number of objective function evaluations = 4\n", - "Number of objective gradient evaluations = 4\n", - "Number of equality constraint evaluations = 4\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 4\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 3\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.002\n", - "Total CPU secs in NLP function evaluations = 0.001\n", - "\n", - "EXIT: Optimal Solution Found.\n" - ] - } - ], - "source": [ - "# Solve the model\n", - "results = solver.solve(m, tee=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Analyze the Results of the Square Problem\n", - "\n", - "\n", - "What is the total operating cost? " - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ + "cell_type": "code", + "execution_count": 29, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", + "tol=1e-06\n", + "max_iter=200\n", + "\n", + "\n", + "******************************************************************************\n", + "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", + " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", + " For more information visit http://projects.coin-or.org/Ipopt\n", + "\n", + "This version of Ipopt was compiled from source code available at\n", + " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", + " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", + " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", + "\n", + "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", + " for large-scale scientific computation. All technical papers, sales and\n", + " publicity material resulting from use of the HSL codes within IPOPT must\n", + " contain the following acknowledgement:\n", + " HSL, a collection of Fortran codes for large-scale scientific\n", + " computation. See http://www.hsl.rl.ac.uk.\n", + "******************************************************************************\n", + "\n", + "This is Ipopt version 3.13.2, running with linear solver ma27.\n", + "\n", + "Number of nonzeros in equality constraint Jacobian...: 598\n", + "Number of nonzeros in inequality constraint Jacobian.: 0\n", + "Number of nonzeros in Lagrangian Hessian.............: 506\n", + "\n", + "Total number of variables............................: 205\n", + " variables with only lower bounds: 14\n", + " variables with lower and upper bounds: 181\n", + " variables with only upper bounds: 0\n", + "Total number of equality constraints.................: 203\n", + "Total number of inequality constraints...............: 0\n", + " inequality constraints with only lower bounds: 0\n", + " inequality constraints with lower and upper bounds: 0\n", + " inequality constraints with only upper bounds: 0\n", + "\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 0 3.9958388e+07 1.49e+06 3.46e+01 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", + " 1 3.8920063e+07 1.48e+06 1.52e+03 -1.0 7.19e+06 - 3.91e-01 6.43e-03f 1\n", + " 2 7.0948609e+07 1.15e+06 1.86e+06 -1.0 4.83e+06 - 1.51e-01 2.26e-01h 1\n", + " 3 1.0553921e+08 5.23e+05 1.04e+07 -1.0 2.42e+06 - 3.41e-01 5.67e-01h 1\n", + " 4 1.0874890e+08 1.58e+05 7.64e+06 -1.0 8.45e+05 - 7.09e-01 7.11e-01h 1\n", + " 5 1.0751027e+08 1.51e+04 1.67e+06 -1.0 2.97e+05 - 9.49e-01 9.09e-01f 1\n", + " 6 1.0721898e+08 5.95e+00 9.98e+03 -1.0 3.47e+04 - 9.90e-01 1.00e+00f 1\n", + " 7 1.0721794e+08 3.43e-05 8.84e+01 -1.0 1.59e+02 - 9.90e-01 1.00e+00f 1\n", + " 8 1.0721794e+08 1.90e-08 7.14e-01 -1.0 1.43e-02 - 9.92e-01 1.00e+00h 1\n", + " 9 1.0721794e+08 7.55e-09 1.53e-06 -2.5 1.72e-02 - 1.00e+00 1.00e+00f 1\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 10 1.0721794e+08 2.10e-08 1.59e-06 -3.8 4.73e-04 - 1.00e+00 1.00e+00f 1\n", + " 11 1.0721794e+08 1.12e-08 2.07e-06 -5.7 2.63e-05 - 1.00e+00 1.00e+00f 1\n", + " 12 1.0721794e+08 3.57e-08 1.65e-06 -7.0 3.14e-07 - 1.00e+00 1.00e+00h 1\n", + "\n", + "Number of Iterations....: 12\n", + "\n", + " (scaled) (unscaled)\n", + "Objective...............: 1.0721793780338226e+08 1.0721793780338226e+08\n", + "Dual infeasibility......: 1.6485091371912918e-06 1.6485091371912918e-06\n", + "Constraint violation....: 4.6566128730773926e-10 3.5680419252624450e-08\n", + "Complementarity.........: 9.0909090914354020e-08 9.0909090914354020e-08\n", + "Overall NLP error.......: 9.0909090914354020e-08 1.6485091371912918e-06\n", + "\n", + "\n", + "Number of objective function evaluations = 13\n", + "Number of objective gradient evaluations = 13\n", + "Number of equality constraint evaluations = 13\n", + "Number of inequality constraint evaluations = 0\n", + "Number of equality constraint Jacobian evaluations = 13\n", + "Number of inequality constraint Jacobian evaluations = 0\n", + "Number of Lagrangian Hessian evaluations = 12\n", + "Total CPU secs in IPOPT (w/o function evaluations) = 0.004\n", + "Total CPU secs in NLP function evaluations = 0.011\n", + "\n", + "EXIT: Optimal Solution Found.\n" + ] + } + ], + "source": [ + "results = solver.solve(m, tee=True)" + ] + }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "operating cost = $39.958 million per year\n" - ] - } - ], - "source": [ - "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For this operating cost, what conversion did we achieve of methane to hydrogen?" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "operating cost = $107.218 million per year\n", + "\n", + "Compressor results\n", + "\n", + "====================================================================================\n", + "Unit : fs.C101 Time: 0.0\n", + "------------------------------------------------------------------------------------\n", + " Unit Performance\n", + "\n", + " Variables: \n", + "\n", + " Key : Value : Units : Fixed : Bounds\n", + " Isentropic Efficiency : 0.90000 : dimensionless : True : (None, None)\n", + " Mechanical Work : 3.0334e+06 : watt : False : (None, None)\n", + " Pressure Change : 9.0000e+05 : pascal : False : (None, None)\n", + " Pressure Ratio : 10.000 : dimensionless : False : (None, None)\n", + "\n", + "------------------------------------------------------------------------------------\n", + " Stream Table\n", + " Units Inlet Outlet \n", + " Total Molar Flowrate mole / second 309.01 309.01\n", + " Total Mole Fraction CH4 dimensionless 0.24272 0.24272\n", + " Total Mole Fraction H2O dimensionless 0.75725 0.75725\n", + " Total Mole Fraction H2 dimensionless 9.9996e-06 9.9996e-06\n", + " Total Mole Fraction CO dimensionless 9.9996e-06 9.9996e-06\n", + " Total Mole Fraction CO2 dimensionless 9.9996e-06 9.9996e-06\n", + " Temperature kelvin 353.80 619.25\n", + " Pressure pascal 1.0000e+05 1.0000e+06\n", + "====================================================================================\n", + "\n", + "Heater results\n", + "\n", + "====================================================================================\n", + "Unit : fs.H101 Time: 0.0\n", + "------------------------------------------------------------------------------------\n", + " Unit Performance\n", + "\n", + " Variables: \n", + "\n", + " Key : Value : Units : Fixed : Bounds\n", + " Heat Duty : 5.8781e-09 : watt : False : (0.0, None)\n", + "\n", + "------------------------------------------------------------------------------------\n", + " Stream Table\n", + " Units Inlet Outlet \n", + " Total Molar Flowrate mole / second 309.01 309.01\n", + " Total Mole Fraction CH4 dimensionless 0.24272 0.24272\n", + " Total Mole Fraction H2O dimensionless 0.75725 0.75725\n", + " Total Mole Fraction H2 dimensionless 9.9996e-06 9.9996e-06\n", + " Total Mole Fraction CO dimensionless 9.9996e-06 9.9996e-06\n", + " Total Mole Fraction CO2 dimensionless 9.9996e-06 9.9996e-06\n", + " Temperature kelvin 619.25 619.25\n", + " Pressure pascal 1.0000e+06 1.0000e+06\n", + "====================================================================================\n", + "\n", + "Gibbs reactor results\n", + "\n", + "====================================================================================\n", + "Unit : fs.R101 Time: 0.0\n", + "------------------------------------------------------------------------------------\n", + " Unit Performance\n", + "\n", + " Variables: \n", + "\n", + " Key : Value : Units : Fixed : Bounds\n", + " Heat Duty : 2.1076e+07 : watt : False : (None, None)\n", + "\n", + "------------------------------------------------------------------------------------\n", + " Stream Table\n", + " Units Inlet Outlet \n", + " Total Molar Flowrate mole / second 309.01 444.02\n", + " Total Mole Fraction CH4 dimensionless 0.24272 0.016892\n", + " Total Mole Fraction H2O dimensionless 0.75725 0.31609\n", + " Total Mole Fraction H2 dimensionless 9.9996e-06 0.51498\n", + " Total Mole Fraction CO dimensionless 9.9996e-06 0.093140\n", + " Total Mole Fraction CO2 dimensionless 9.9996e-06 0.058900\n", + " Temperature kelvin 619.25 1087.4\n", + " Pressure pascal 1.0000e+06 1.0000e+06\n", + "====================================================================================\n" + ] + } + ], + "source": [ + "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")\n", + "\n", + "print()\n", + "print(\"Compressor results\")\n", + "\n", + "m.fs.C101.report()\n", + "\n", + "print()\n", + "print(\"Heater results\")\n", + "\n", + "m.fs.H101.report()\n", + "\n", + "print()\n", + "print(\"Gibbs reactor results\")\n", + "\n", + "m.fs.R101.report()" + ] + }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "====================================================================================\n", - "Unit : fs.R101 Time: 0.0\n", - "------------------------------------------------------------------------------------\n", - " Unit Performance\n", - "\n", - " Variables: \n", - "\n", - " Key : Value : Units : Fixed : Bounds\n", - " Heat Duty : 1.7819e+07 : watt : False : (None, None)\n", - "\n", - "------------------------------------------------------------------------------------\n", - " Stream Table\n", - " Units Inlet Outlet \n", - " Total Molar Flowrate mole / second 309.01 429.02\n", - " Total Mole Fraction CH4 dimensionless 0.24272 0.034965\n", - " Total Mole Fraction H2O dimensionless 0.75725 0.32532\n", - " Total Mole Fraction H2 dimensionless 9.9996e-06 0.49984\n", - " Total Mole Fraction CO dimensionless 9.9996e-06 0.059609\n", - " Total Mole Fraction CO2 dimensionless 9.9996e-06 0.080265\n", - " Temperature kelvin 500.00 920.80\n", - " Pressure pascal 2.0000e+05 2.0000e+05\n", - "====================================================================================\n", - "\n", - "Conversion achieved = 80.0%\n" - ] - } - ], - "source": [ - "m.fs.R101.report()\n", - "\n", - "print()\n", - "print(f\"Conversion achieved = {value(m.fs.R101.conversion):.1%}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Optimizing Hydrogen Production\n", - "\n", - "Now that the flowsheet has been squared and solved, we can run a small optimization problem to determine optimal conditions for producing hydrogen. Suppose we wish to find ideal conditions for the competing reactions. The GibbsReactor does not drive equilibrium forward based on temperature, so we will see small amounts of intermediate components present in the product stream. We will allow for variable reactor temperature and pressure by freeing our heater and compressor specifications, and minimize cost to achieve 90% methane conversion. Since we assume an isentopic compressor, allowing compression will heat our feed stream and reduce or eliminate the required heater duty." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us declare our objective function for this problem. " - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.objective = Objective(expr=m.fs.operating_cost)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now, we need to add the design constraints and unfix the decision variables as we had solved a square problem until now, as well as set bounds for the design variables (reactor outlet temperature is set by state variable bounds in property package):" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.R101.conversion.fix(0.90)\n", - "\n", - "m.fs.C101.outlet.pressure.unfix()\n", - "m.fs.C101.outlet.pressure[0].setlb(\n", - " pyunits.convert(1 * pyunits.bar, to_units=pyunits.Pa)\n", - ") # equals inlet pressure\n", - "m.fs.C101.outlet.pressure[0].setlb(\n", - " pyunits.convert(10 * pyunits.bar, to_units=pyunits.Pa)\n", - ") # at most, pressurize to 1 bar\n", - "\n", - "m.fs.H101.outlet.temperature.unfix()\n", - "m.fs.H101.heat_duty[0].setlb(\n", - " 0 * pyunits.J / pyunits.s\n", - ") # ensures outlet is equal to or greater than inlet temperature\n", - "m.fs.H101.outlet.temperature[0].setub(1000 * pyunits.K) # at most, heat to 1000 K" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "We have now defined the optimization problem and we are now ready to solve this problem. \n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": { - "scrolled": true - }, - "outputs": [ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Display optimal values for the decision variables and design variables:" + ] + }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", - "tol=1e-06\n", - "max_iter=200\n", - "\n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 598\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 506\n", - "\n", - "Total number of variables............................: 205\n", - " variables with only lower bounds: 14\n", - " variables with lower and upper bounds: 181\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 203\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 3.9958388e+07 1.49e+06 3.46e+01 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 3.8920063e+07 1.48e+06 1.52e+03 -1.0 7.19e+06 - 3.91e-01 6.43e-03f 1\n", - " 2 7.0948609e+07 1.15e+06 1.86e+06 -1.0 4.83e+06 - 1.51e-01 2.26e-01h 1\n", - " 3 1.0553921e+08 5.23e+05 1.04e+07 -1.0 2.42e+06 - 3.41e-01 5.67e-01h 1\n", - " 4 1.0874890e+08 1.58e+05 7.64e+06 -1.0 8.45e+05 - 7.09e-01 7.11e-01h 1\n", - " 5 1.0751027e+08 1.51e+04 1.67e+06 -1.0 2.97e+05 - 9.49e-01 9.09e-01f 1\n", - " 6 1.0721898e+08 5.95e+00 9.98e+03 -1.0 3.47e+04 - 9.90e-01 1.00e+00f 1\n", - " 7 1.0721794e+08 3.43e-05 8.84e+01 -1.0 1.59e+02 - 9.90e-01 1.00e+00f 1\n", - " 8 1.0721794e+08 8.85e-09 7.14e-01 -1.0 1.43e-02 - 9.92e-01 1.00e+00h 1\n", - " 9 1.0721794e+08 1.50e-08 1.92e-06 -2.5 1.72e-02 - 1.00e+00 1.00e+00f 1\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 10 1.0721794e+08 1.02e-08 2.70e-06 -3.8 4.73e-04 - 1.00e+00 1.00e+00f 1\n", - " 11 1.0721794e+08 1.02e-08 2.31e-06 -5.7 2.63e-05 - 1.00e+00 1.00e+00f 1\n", - " 12 1.0721794e+08 1.49e-08 1.00e-06 -7.0 3.06e-07 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 12\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 1.0721793780338201e+08 1.0721793780338201e+08\n", - "Dual infeasibility......: 1.0011035875619890e-06 1.0011035875619890e-06\n", - "Constraint violation....: 1.5205920451933321e-12 1.4901161193847656e-08\n", - "Complementarity.........: 9.0909090914354020e-08 9.0909090914354020e-08\n", - "Overall NLP error.......: 9.0909090914354020e-08 1.0011035875619890e-06\n", - "\n", - "\n", - "Number of objective function evaluations = 13\n", - "Number of objective gradient evaluations = 13\n", - "Number of equality constraint evaluations = 13\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 13\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 12\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.004\n", - "Total CPU secs in NLP function evaluations = 0.004\n", - "\n", - "EXIT: Optimal Solution Found.\n" - ] - } - ], - "source": [ - "results = solver.solve(m, tee=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [ + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Optimal Values\n", + "\n", + "C101 outlet pressure = 1.000 MPa\n", + "\n", + "C101 outlet temperature = 619.248 K\n", + "\n", + "H101 outlet temperature = 619.248 K\n", + "\n", + "R101 outlet temperature = 1087.385 K\n", + "\n", + "Hydrogen produced = 32.070 MM lb/year\n", + "\n", + "Conversion achieved = 90.0%\n" + ] + } + ], + "source": [ + "print(\"Optimal Values\")\n", + "print()\n", + "\n", + "print(f\"C101 outlet pressure = {value(m.fs.C101.outlet.pressure[0])/1E6:0.3f} MPa\")\n", + "print()\n", + "\n", + "print(f\"C101 outlet temperature = {value(m.fs.C101.outlet.temperature[0]):0.3f} K\")\n", + "print()\n", + "\n", + "print(f\"H101 outlet temperature = {value(m.fs.H101.outlet.temperature[0]):0.3f} K\")\n", + "\n", + "print()\n", + "print(f\"R101 outlet temperature = {value(m.fs.R101.outlet.temperature[0]):0.3f} K\")\n", + "\n", + "print()\n", + "print(f\"Hydrogen produced = {value(m.fs.hyd_prod):0.3f} MM lb/year\")\n", + "\n", + "print()\n", + "print(f\"Conversion achieved = {value(m.fs.R101.conversion):.1%}\")" + ] + }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "operating cost = $107.218 million per year\n", - "\n", - "Compressor results\n", - "\n", - "====================================================================================\n", - "Unit : fs.C101 Time: 0.0\n", - "------------------------------------------------------------------------------------\n", - " Unit Performance\n", - "\n", - " Variables: \n", - "\n", - " Key : Value : Units : Fixed : Bounds\n", - " Isentropic Efficiency : 0.90000 : dimensionless : True : (None, None)\n", - " Mechanical Work : 3.0334e+06 : watt : False : (None, None)\n", - " Pressure Change : 9.0000e+05 : pascal : False : (None, None)\n", - " Pressure Ratio : 10.000 : dimensionless : False : (None, None)\n", - "\n", - "------------------------------------------------------------------------------------\n", - " Stream Table\n", - " Units Inlet Outlet \n", - " Total Molar Flowrate mole / second 309.01 309.01\n", - " Total Mole Fraction CH4 dimensionless 0.24272 0.24272\n", - " Total Mole Fraction H2O dimensionless 0.75725 0.75725\n", - " Total Mole Fraction H2 dimensionless 9.9996e-06 9.9996e-06\n", - " Total Mole Fraction CO dimensionless 9.9996e-06 9.9996e-06\n", - " Total Mole Fraction CO2 dimensionless 9.9996e-06 9.9996e-06\n", - " Temperature kelvin 353.80 619.25\n", - " Pressure pascal 1.0000e+05 1.0000e+06\n", - "====================================================================================\n", - "\n", - "Heater results\n", - "\n", - "====================================================================================\n", - "Unit : fs.H101 Time: 0.0\n", - "------------------------------------------------------------------------------------\n", - " Unit Performance\n", - "\n", - " Variables: \n", - "\n", - " Key : Value : Units : Fixed : Bounds\n", - " Heat Duty : 5.8781e-09 : watt : False : (0.0, None)\n", - "\n", - "------------------------------------------------------------------------------------\n", - " Stream Table\n", - " Units Inlet Outlet \n", - " Total Molar Flowrate mole / second 309.01 309.01\n", - " Total Mole Fraction CH4 dimensionless 0.24272 0.24272\n", - " Total Mole Fraction H2O dimensionless 0.75725 0.75725\n", - " Total Mole Fraction H2 dimensionless 9.9996e-06 9.9996e-06\n", - " Total Mole Fraction CO dimensionless 9.9996e-06 9.9996e-06\n", - " Total Mole Fraction CO2 dimensionless 9.9996e-06 9.9996e-06\n", - " Temperature kelvin 619.25 619.25\n", - " Pressure pascal 1.0000e+06 1.0000e+06\n", - "====================================================================================\n", - "\n", - "Gibbs reactor results\n", - "\n", - "====================================================================================\n", - "Unit : fs.R101 Time: 0.0\n", - "------------------------------------------------------------------------------------\n", - " Unit Performance\n", - "\n", - " Variables: \n", - "\n", - " Key : Value : Units : Fixed : Bounds\n", - " Heat Duty : 2.1076e+07 : watt : False : (None, None)\n", - "\n", - "------------------------------------------------------------------------------------\n", - " Stream Table\n", - " Units Inlet Outlet \n", - " Total Molar Flowrate mole / second 309.01 444.02\n", - " Total Mole Fraction CH4 dimensionless 0.24272 0.016892\n", - " Total Mole Fraction H2O dimensionless 0.75725 0.31609\n", - " Total Mole Fraction H2 dimensionless 9.9996e-06 0.51498\n", - " Total Mole Fraction CO dimensionless 9.9996e-06 0.093140\n", - " Total Mole Fraction CO2 dimensionless 9.9996e-06 0.058900\n", - " Temperature kelvin 619.25 1087.4\n", - " Pressure pascal 1.0000e+06 1.0000e+06\n", - "====================================================================================\n" - ] + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } - ], - "source": [ - "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")\n", - "\n", - "print()\n", - "print(\"Compressor results\")\n", - "\n", - "m.fs.C101.report()\n", - "\n", - "print()\n", - "print(\"Heater results\")\n", - "\n", - "m.fs.H101.report()\n", - "\n", - "print()\n", - "print(\"Gibbs reactor results\")\n", - "\n", - "m.fs.R101.report()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Display optimal values for the decision variables and design variables:" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Optimal Values\n", - "\n", - "C101 outlet pressure = 1.000 MPa\n", - "\n", - "C101 outlet temperature = 619.248 K\n", - "\n", - "H101 outlet temperature = 619.248 K\n", - "\n", - "R101 outlet temperature = 1087.385 K\n", - "\n", - "Hydrogen produced = 32.070 MM lb/year\n", - "\n", - "Conversion achieved = 90.0%\n" - ] + ], + "metadata": { + "celltoolbar": "Tags", + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.18" } - ], - "source": [ - "print(\"Optimal Values\")\n", - "print()\n", - "\n", - "print(f\"C101 outlet pressure = {value(m.fs.C101.outlet.pressure[0])/1E6:0.3f} MPa\")\n", - "print()\n", - "\n", - "print(f\"C101 outlet temperature = {value(m.fs.C101.outlet.temperature[0]):0.3f} K\")\n", - "print()\n", - "\n", - "print(f\"H101 outlet temperature = {value(m.fs.H101.outlet.temperature[0]):0.3f} K\")\n", - "\n", - "print()\n", - "print(f\"R101 outlet temperature = {value(m.fs.R101.outlet.temperature[0]):0.3f} K\")\n", - "\n", - "print()\n", - "print(f\"Hydrogen produced = {value(m.fs.hyd_prod):0.3f} MM lb/year\")\n", - "\n", - "print()\n", - "print(f\"Conversion achieved = {value(m.fs.R101.conversion):.1%}\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "celltoolbar": "Tags", - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.5" - } - }, - "nbformat": 4, - "nbformat_minor": 3 + "nbformat": 4, + "nbformat_minor": 3 } \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/unit_models/reactors/gibbs_reactor_test.ipynb b/idaes_examples/notebooks/docs/unit_models/reactors/gibbs_reactor_test.ipynb index 21f63514..7a9cba50 100644 --- a/idaes_examples/notebooks/docs/unit_models/reactors/gibbs_reactor_test.ipynb +++ b/idaes_examples/notebooks/docs/unit_models/reactors/gibbs_reactor_test.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": { "tags": [ "header", @@ -61,8 +61,7 @@ "\n", "The state variables chosen for the property package are **total molar flows of each stream, temperature of each stream and pressure of each stream, and mole fractions of each component in each stream**. The components considered are: **CH4, H2O, CO, CO2, and H2** and the process occurs in vapor phase only. Therefore, every stream has 1 flow variable, 5 mole fraction variables, 1 temperature and 1 pressure variable. \n", "\n", - "![](msr_flowsheet.png)\n", - "" + "![](msr_flowsheet.png)\n" ] }, { @@ -85,7 +84,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -131,7 +130,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -149,7 +148,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -166,7 +165,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": { "scrolled": true }, @@ -187,7 +186,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": { "scrolled": true }, @@ -209,10 +208,8 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": { - "scrolled": false - }, + "execution_count": 7, + "metadata": {}, "outputs": [], "source": [ "m.fs.R101 = GibbsReactor(\n", @@ -233,7 +230,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -254,7 +251,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -279,7 +276,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -295,7 +292,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -324,18 +321,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": { "scrolled": true }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "20\n" + ] + } + ], "source": [ "print(degrees_of_freedom(m))" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": { "tags": [ "testing" @@ -356,7 +361,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -390,7 +395,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ @@ -408,7 +413,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ @@ -438,16 +443,24 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n" + ] + } + ], "source": [ "print(degrees_of_freedom(m))" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "metadata": { "tags": [ "testing" @@ -468,9 +481,57 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-05-23 06:07:53 [INFO] idaes.init.fs.CH4.properties: Starting initialization\n", + "2024-05-23 06:07:53 [INFO] idaes.init.fs.CH4.properties: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:53 [INFO] idaes.init.fs.CH4.properties: Property package initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:53 [INFO] idaes.init.fs.CH4: Initialization Complete.\n", + "2024-05-23 06:07:53 [INFO] idaes.init.fs.H2O.properties: Starting initialization\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.H2O.properties: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.H2O.properties: Property package initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.H2O: Initialization Complete.\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.M101.methane_feed_state: Starting initialization\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.M101.methane_feed_state: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.M101.steam_feed_state: Starting initialization\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.M101.steam_feed_state: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.M101.mixed_state: Starting initialization\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.M101.mixed_state: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.M101.mixed_state: Property package initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.C101.control_volume.properties_in: Starting initialization\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.C101.control_volume.properties_in: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.C101.control_volume.properties_out: Starting initialization\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.C101.control_volume.properties_out: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.C101.control_volume.properties_out: Property package initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.C101.properties_isentropic: Starting initialization\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.C101.properties_isentropic: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.C101.properties_isentropic: Property package initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:55 [INFO] idaes.init.fs.C101: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-05-23 06:07:55 [INFO] idaes.init.fs.H101.control_volume.properties_in: Starting initialization\n", + "2024-05-23 06:07:55 [INFO] idaes.init.fs.H101.control_volume.properties_in: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:55 [INFO] idaes.init.fs.H101.control_volume.properties_out: Starting initialization\n", + "2024-05-23 06:07:55 [INFO] idaes.init.fs.H101.control_volume.properties_out: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:55 [INFO] idaes.init.fs.H101.control_volume: Initialization Complete\n", + "2024-05-23 06:07:55 [INFO] idaes.init.fs.H101: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-05-23 06:07:55 [INFO] idaes.init.fs.R101.control_volume.properties_in: Starting initialization\n", + "2024-05-23 06:07:55 [INFO] idaes.init.fs.R101.control_volume.properties_in: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:55 [INFO] idaes.init.fs.R101.control_volume.properties_out: Starting initialization\n", + "2024-05-23 06:07:55 [INFO] idaes.init.fs.R101.control_volume.properties_out: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:55 [INFO] idaes.init.fs.R101.control_volume: Initialization Complete\n", + "2024-05-23 06:07:56 [INFO] idaes.init.fs.R101: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-05-23 06:07:56 [INFO] idaes.init.fs.PROD.properties: Starting initialization\n", + "2024-05-23 06:07:56 [INFO] idaes.init.fs.PROD.properties: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:56 [INFO] idaes.init.fs.PROD.properties: Property package initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:56 [INFO] idaes.init.fs.PROD: Initialization Complete.\n" + ] + } + ], "source": [ "# Initialize and solve each unit operation\n", "m.fs.CH4.initialize()\n", @@ -499,11 +560,84 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "metadata": { "scrolled": true }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", + "tol=1e-06\n", + "max_iter=200\n", + "\n", + "\n", + "******************************************************************************\n", + "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", + " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", + " For more information visit http://projects.coin-or.org/Ipopt\n", + "\n", + "This version of Ipopt was compiled from source code available at\n", + " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", + " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", + " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", + "\n", + "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", + " for large-scale scientific computation. All technical papers, sales and\n", + " publicity material resulting from use of the HSL codes within IPOPT must\n", + " contain the following acknowledgement:\n", + " HSL, a collection of Fortran codes for large-scale scientific\n", + " computation. See http://www.hsl.rl.ac.uk.\n", + "******************************************************************************\n", + "\n", + "This is Ipopt version 3.13.2, running with linear solver ma27.\n", + "\n", + "Number of nonzeros in equality constraint Jacobian...: 591\n", + "Number of nonzeros in inequality constraint Jacobian.: 0\n", + "Number of nonzeros in Lagrangian Hessian.............: 490\n", + "\n", + "Total number of variables............................: 203\n", + " variables with only lower bounds: 13\n", + " variables with lower and upper bounds: 179\n", + " variables with only upper bounds: 0\n", + "Total number of equality constraints.................: 203\n", + "Total number of inequality constraints...............: 0\n", + " inequality constraints with only lower bounds: 0\n", + " inequality constraints with lower and upper bounds: 0\n", + " inequality constraints with only upper bounds: 0\n", + "\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 0 0.0000000e+00 1.49e+06 1.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", + " 1 0.0000000e+00 1.35e+04 2.00e-01 -1.0 3.59e+00 - 9.90e-01 9.91e-01h 1\n", + " 2 0.0000000e+00 3.59e-04 9.99e+00 -1.0 3.56e+00 - 9.90e-01 1.00e+00h 1\n", + " 3 0.0000000e+00 2.60e-08 8.98e+01 -1.0 2.91e-04 - 9.90e-01 1.00e+00h 1\n", + "\n", + "Number of Iterations....: 3\n", + "\n", + " (scaled) (unscaled)\n", + "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Constraint violation....: 7.6029602259665645e-13 2.5960616767406464e-08\n", + "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Overall NLP error.......: 7.6029602259665645e-13 2.5960616767406464e-08\n", + "\n", + "\n", + "Number of objective function evaluations = 4\n", + "Number of objective gradient evaluations = 4\n", + "Number of equality constraint evaluations = 4\n", + "Number of inequality constraint evaluations = 0\n", + "Number of equality constraint Jacobian evaluations = 4\n", + "Number of inequality constraint Jacobian evaluations = 0\n", + "Number of Lagrangian Hessian evaluations = 3\n", + "Total CPU secs in IPOPT (w/o function evaluations) = 0.004\n", + "Total CPU secs in NLP function evaluations = 0.000\n", + "\n", + "EXIT: Optimal Solution Found.\n" + ] + } + ], "source": [ "# Solve the model\n", "results = solver.solve(m, tee=True)" @@ -511,7 +645,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "metadata": { "tags": [ "testing" @@ -537,16 +671,24 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "operating cost = $39.958 million per year\n" + ] + } + ], "source": [ "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "metadata": { "tags": [ "testing" @@ -568,9 +710,41 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "====================================================================================\n", + "Unit : fs.R101 Time: 0.0\n", + "------------------------------------------------------------------------------------\n", + " Unit Performance\n", + "\n", + " Variables: \n", + "\n", + " Key : Value : Units : Fixed : Bounds\n", + " Heat Duty : 1.7819e+07 : watt : False : (None, None)\n", + "\n", + "------------------------------------------------------------------------------------\n", + " Stream Table\n", + " Units Inlet Outlet \n", + " Total Molar Flowrate mole / second 309.01 429.02\n", + " Total Mole Fraction CH4 dimensionless 0.24272 0.034965\n", + " Total Mole Fraction H2O dimensionless 0.75725 0.32532\n", + " Total Mole Fraction H2 dimensionless 9.9996e-06 0.49984\n", + " Total Mole Fraction CO dimensionless 9.9996e-06 0.059609\n", + " Total Mole Fraction CO2 dimensionless 9.9996e-06 0.080265\n", + " Temperature kelvin 500.00 920.80\n", + " Pressure pascal 2.0000e+05 2.0000e+05\n", + "====================================================================================\n", + "\n", + "Conversion achieved = 80.0%\n" + ] + } + ], "source": [ "m.fs.R101.report()\n", "\n", @@ -580,7 +754,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 25, "metadata": { "tags": [ "testing" @@ -611,7 +785,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 26, "metadata": {}, "outputs": [], "source": [ @@ -627,7 +801,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 27, "metadata": {}, "outputs": [], "source": [ @@ -650,7 +824,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 28, "metadata": { "tags": [ "testing" @@ -673,18 +847,101 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 29, "metadata": { "scrolled": true }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", + "tol=1e-06\n", + "max_iter=200\n", + "\n", + "\n", + "******************************************************************************\n", + "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", + " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", + " For more information visit http://projects.coin-or.org/Ipopt\n", + "\n", + "This version of Ipopt was compiled from source code available at\n", + " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", + " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", + " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", + "\n", + "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", + " for large-scale scientific computation. All technical papers, sales and\n", + " publicity material resulting from use of the HSL codes within IPOPT must\n", + " contain the following acknowledgement:\n", + " HSL, a collection of Fortran codes for large-scale scientific\n", + " computation. See http://www.hsl.rl.ac.uk.\n", + "******************************************************************************\n", + "\n", + "This is Ipopt version 3.13.2, running with linear solver ma27.\n", + "\n", + "Number of nonzeros in equality constraint Jacobian...: 598\n", + "Number of nonzeros in inequality constraint Jacobian.: 0\n", + "Number of nonzeros in Lagrangian Hessian.............: 506\n", + "\n", + "Total number of variables............................: 205\n", + " variables with only lower bounds: 14\n", + " variables with lower and upper bounds: 181\n", + " variables with only upper bounds: 0\n", + "Total number of equality constraints.................: 203\n", + "Total number of inequality constraints...............: 0\n", + " inequality constraints with only lower bounds: 0\n", + " inequality constraints with lower and upper bounds: 0\n", + " inequality constraints with only upper bounds: 0\n", + "\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 0 3.9958388e+07 1.49e+06 3.46e+01 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", + " 1 3.8920063e+07 1.48e+06 1.52e+03 -1.0 7.19e+06 - 3.91e-01 6.43e-03f 1\n", + " 2 7.0948609e+07 1.15e+06 1.86e+06 -1.0 4.83e+06 - 1.51e-01 2.26e-01h 1\n", + " 3 1.0553921e+08 5.23e+05 1.04e+07 -1.0 2.42e+06 - 3.41e-01 5.67e-01h 1\n", + " 4 1.0874890e+08 1.58e+05 7.64e+06 -1.0 8.45e+05 - 7.09e-01 7.11e-01h 1\n", + " 5 1.0751027e+08 1.51e+04 1.67e+06 -1.0 2.97e+05 - 9.49e-01 9.09e-01f 1\n", + " 6 1.0721898e+08 5.95e+00 9.98e+03 -1.0 3.47e+04 - 9.90e-01 1.00e+00f 1\n", + " 7 1.0721794e+08 3.43e-05 8.84e+01 -1.0 1.59e+02 - 9.90e-01 1.00e+00f 1\n", + " 8 1.0721794e+08 1.90e-08 7.14e-01 -1.0 1.43e-02 - 9.92e-01 1.00e+00h 1\n", + " 9 1.0721794e+08 7.55e-09 1.53e-06 -2.5 1.72e-02 - 1.00e+00 1.00e+00f 1\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 10 1.0721794e+08 2.10e-08 1.59e-06 -3.8 4.73e-04 - 1.00e+00 1.00e+00f 1\n", + " 11 1.0721794e+08 1.12e-08 2.07e-06 -5.7 2.63e-05 - 1.00e+00 1.00e+00f 1\n", + " 12 1.0721794e+08 3.57e-08 1.65e-06 -7.0 3.14e-07 - 1.00e+00 1.00e+00h 1\n", + "\n", + "Number of Iterations....: 12\n", + "\n", + " (scaled) (unscaled)\n", + "Objective...............: 1.0721793780338226e+08 1.0721793780338226e+08\n", + "Dual infeasibility......: 1.6485091371912918e-06 1.6485091371912918e-06\n", + "Constraint violation....: 4.6566128730773926e-10 3.5680419252624450e-08\n", + "Complementarity.........: 9.0909090914354020e-08 9.0909090914354020e-08\n", + "Overall NLP error.......: 9.0909090914354020e-08 1.6485091371912918e-06\n", + "\n", + "\n", + "Number of objective function evaluations = 13\n", + "Number of objective gradient evaluations = 13\n", + "Number of equality constraint evaluations = 13\n", + "Number of inequality constraint evaluations = 0\n", + "Number of equality constraint Jacobian evaluations = 13\n", + "Number of inequality constraint Jacobian evaluations = 0\n", + "Number of Lagrangian Hessian evaluations = 12\n", + "Total CPU secs in IPOPT (w/o function evaluations) = 0.004\n", + "Total CPU secs in NLP function evaluations = 0.011\n", + "\n", + "EXIT: Optimal Solution Found.\n" + ] + } + ], "source": [ "results = solver.solve(m, tee=True)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 30, "metadata": { "tags": [ "testing" @@ -700,9 +957,95 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 31, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "operating cost = $107.218 million per year\n", + "\n", + "Compressor results\n", + "\n", + "====================================================================================\n", + "Unit : fs.C101 Time: 0.0\n", + "------------------------------------------------------------------------------------\n", + " Unit Performance\n", + "\n", + " Variables: \n", + "\n", + " Key : Value : Units : Fixed : Bounds\n", + " Isentropic Efficiency : 0.90000 : dimensionless : True : (None, None)\n", + " Mechanical Work : 3.0334e+06 : watt : False : (None, None)\n", + " Pressure Change : 9.0000e+05 : pascal : False : (None, None)\n", + " Pressure Ratio : 10.000 : dimensionless : False : (None, None)\n", + "\n", + "------------------------------------------------------------------------------------\n", + " Stream Table\n", + " Units Inlet Outlet \n", + " Total Molar Flowrate mole / second 309.01 309.01\n", + " Total Mole Fraction CH4 dimensionless 0.24272 0.24272\n", + " Total Mole Fraction H2O dimensionless 0.75725 0.75725\n", + " Total Mole Fraction H2 dimensionless 9.9996e-06 9.9996e-06\n", + " Total Mole Fraction CO dimensionless 9.9996e-06 9.9996e-06\n", + " Total Mole Fraction CO2 dimensionless 9.9996e-06 9.9996e-06\n", + " Temperature kelvin 353.80 619.25\n", + " Pressure pascal 1.0000e+05 1.0000e+06\n", + "====================================================================================\n", + "\n", + "Heater results\n", + "\n", + "====================================================================================\n", + "Unit : fs.H101 Time: 0.0\n", + "------------------------------------------------------------------------------------\n", + " Unit Performance\n", + "\n", + " Variables: \n", + "\n", + " Key : Value : Units : Fixed : Bounds\n", + " Heat Duty : 5.8781e-09 : watt : False : (0.0, None)\n", + "\n", + "------------------------------------------------------------------------------------\n", + " Stream Table\n", + " Units Inlet Outlet \n", + " Total Molar Flowrate mole / second 309.01 309.01\n", + " Total Mole Fraction CH4 dimensionless 0.24272 0.24272\n", + " Total Mole Fraction H2O dimensionless 0.75725 0.75725\n", + " Total Mole Fraction H2 dimensionless 9.9996e-06 9.9996e-06\n", + " Total Mole Fraction CO dimensionless 9.9996e-06 9.9996e-06\n", + " Total Mole Fraction CO2 dimensionless 9.9996e-06 9.9996e-06\n", + " Temperature kelvin 619.25 619.25\n", + " Pressure pascal 1.0000e+06 1.0000e+06\n", + "====================================================================================\n", + "\n", + "Gibbs reactor results\n", + "\n", + "====================================================================================\n", + "Unit : fs.R101 Time: 0.0\n", + "------------------------------------------------------------------------------------\n", + " Unit Performance\n", + "\n", + " Variables: \n", + "\n", + " Key : Value : Units : Fixed : Bounds\n", + " Heat Duty : 2.1076e+07 : watt : False : (None, None)\n", + "\n", + "------------------------------------------------------------------------------------\n", + " Stream Table\n", + " Units Inlet Outlet \n", + " Total Molar Flowrate mole / second 309.01 444.02\n", + " Total Mole Fraction CH4 dimensionless 0.24272 0.016892\n", + " Total Mole Fraction H2O dimensionless 0.75725 0.31609\n", + " Total Mole Fraction H2 dimensionless 9.9996e-06 0.51498\n", + " Total Mole Fraction CO dimensionless 9.9996e-06 0.093140\n", + " Total Mole Fraction CO2 dimensionless 9.9996e-06 0.058900\n", + " Temperature kelvin 619.25 1087.4\n", + " Pressure pascal 1.0000e+06 1.0000e+06\n", + "====================================================================================\n" + ] + } + ], "source": [ "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")\n", "\n", @@ -724,7 +1067,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 32, "metadata": { "tags": [ "testing" @@ -744,9 +1087,29 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 33, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Optimal Values\n", + "\n", + "C101 outlet pressure = 1.000 MPa\n", + "\n", + "C101 outlet temperature = 619.248 K\n", + "\n", + "H101 outlet temperature = 619.248 K\n", + "\n", + "R101 outlet temperature = 1087.385 K\n", + "\n", + "Hydrogen produced = 32.070 MM lb/year\n", + "\n", + "Conversion achieved = 90.0%\n" + ] + } + ], "source": [ "print(\"Optimal Values\")\n", "print()\n", @@ -771,7 +1134,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 34, "metadata": { "tags": [ "testing" @@ -812,7 +1175,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.12" + "version": "3.9.18" } }, "nbformat": 4, diff --git a/idaes_examples/notebooks/docs/unit_models/reactors/gibbs_reactor_usr.ipynb b/idaes_examples/notebooks/docs/unit_models/reactors/gibbs_reactor_usr.ipynb index abe0717b..b7984618 100644 --- a/idaes_examples/notebooks/docs/unit_models/reactors/gibbs_reactor_usr.ipynb +++ b/idaes_examples/notebooks/docs/unit_models/reactors/gibbs_reactor_usr.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": { "tags": [ "header", @@ -61,8 +61,7 @@ "\n", "The state variables chosen for the property package are **total molar flows of each stream, temperature of each stream and pressure of each stream, and mole fractions of each component in each stream**. The components considered are: **CH4, H2O, CO, CO2, and H2** and the process occurs in vapor phase only. Therefore, every stream has 1 flow variable, 5 mole fraction variables, 1 temperature and 1 pressure variable. \n", "\n", - "![](msr_flowsheet.png)\n", - "" + "![](msr_flowsheet.png)\n" ] }, { @@ -85,7 +84,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -131,7 +130,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -149,7 +148,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -166,7 +165,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": { "scrolled": true }, @@ -187,7 +186,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": { "scrolled": true }, @@ -209,10 +208,8 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": { - "scrolled": false - }, + "execution_count": 7, + "metadata": {}, "outputs": [], "source": [ "m.fs.R101 = GibbsReactor(\n", @@ -233,7 +230,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -254,7 +251,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -279,7 +276,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -295,7 +292,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -324,11 +321,19 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": { "scrolled": true }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "20\n" + ] + } + ], "source": [ "print(degrees_of_freedom(m))" ] @@ -342,7 +347,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -376,7 +381,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ @@ -394,7 +399,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ @@ -424,9 +429,17 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n" + ] + } + ], "source": [ "print(degrees_of_freedom(m))" ] @@ -440,9 +453,57 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-05-23 06:07:53 [INFO] idaes.init.fs.CH4.properties: Starting initialization\n", + "2024-05-23 06:07:53 [INFO] idaes.init.fs.CH4.properties: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:53 [INFO] idaes.init.fs.CH4.properties: Property package initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:53 [INFO] idaes.init.fs.CH4: Initialization Complete.\n", + "2024-05-23 06:07:53 [INFO] idaes.init.fs.H2O.properties: Starting initialization\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.H2O.properties: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.H2O.properties: Property package initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.H2O: Initialization Complete.\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.M101.methane_feed_state: Starting initialization\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.M101.methane_feed_state: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.M101.steam_feed_state: Starting initialization\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.M101.steam_feed_state: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.M101.mixed_state: Starting initialization\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.M101.mixed_state: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.M101.mixed_state: Property package initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.C101.control_volume.properties_in: Starting initialization\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.C101.control_volume.properties_in: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.C101.control_volume.properties_out: Starting initialization\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.C101.control_volume.properties_out: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.C101.control_volume.properties_out: Property package initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.C101.properties_isentropic: Starting initialization\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.C101.properties_isentropic: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:54 [INFO] idaes.init.fs.C101.properties_isentropic: Property package initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:55 [INFO] idaes.init.fs.C101: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-05-23 06:07:55 [INFO] idaes.init.fs.H101.control_volume.properties_in: Starting initialization\n", + "2024-05-23 06:07:55 [INFO] idaes.init.fs.H101.control_volume.properties_in: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:55 [INFO] idaes.init.fs.H101.control_volume.properties_out: Starting initialization\n", + "2024-05-23 06:07:55 [INFO] idaes.init.fs.H101.control_volume.properties_out: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:55 [INFO] idaes.init.fs.H101.control_volume: Initialization Complete\n", + "2024-05-23 06:07:55 [INFO] idaes.init.fs.H101: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-05-23 06:07:55 [INFO] idaes.init.fs.R101.control_volume.properties_in: Starting initialization\n", + "2024-05-23 06:07:55 [INFO] idaes.init.fs.R101.control_volume.properties_in: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:55 [INFO] idaes.init.fs.R101.control_volume.properties_out: Starting initialization\n", + "2024-05-23 06:07:55 [INFO] idaes.init.fs.R101.control_volume.properties_out: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:55 [INFO] idaes.init.fs.R101.control_volume: Initialization Complete\n", + "2024-05-23 06:07:56 [INFO] idaes.init.fs.R101: Initialization Complete: optimal - Optimal Solution Found\n", + "2024-05-23 06:07:56 [INFO] idaes.init.fs.PROD.properties: Starting initialization\n", + "2024-05-23 06:07:56 [INFO] idaes.init.fs.PROD.properties: Property initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:56 [INFO] idaes.init.fs.PROD.properties: Property package initialization: optimal - Optimal Solution Found.\n", + "2024-05-23 06:07:56 [INFO] idaes.init.fs.PROD: Initialization Complete.\n" + ] + } + ], "source": [ "# Initialize and solve each unit operation\n", "m.fs.CH4.initialize()\n", @@ -471,11 +532,84 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "metadata": { "scrolled": true }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", + "tol=1e-06\n", + "max_iter=200\n", + "\n", + "\n", + "******************************************************************************\n", + "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", + " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", + " For more information visit http://projects.coin-or.org/Ipopt\n", + "\n", + "This version of Ipopt was compiled from source code available at\n", + " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", + " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", + " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", + "\n", + "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", + " for large-scale scientific computation. All technical papers, sales and\n", + " publicity material resulting from use of the HSL codes within IPOPT must\n", + " contain the following acknowledgement:\n", + " HSL, a collection of Fortran codes for large-scale scientific\n", + " computation. See http://www.hsl.rl.ac.uk.\n", + "******************************************************************************\n", + "\n", + "This is Ipopt version 3.13.2, running with linear solver ma27.\n", + "\n", + "Number of nonzeros in equality constraint Jacobian...: 591\n", + "Number of nonzeros in inequality constraint Jacobian.: 0\n", + "Number of nonzeros in Lagrangian Hessian.............: 490\n", + "\n", + "Total number of variables............................: 203\n", + " variables with only lower bounds: 13\n", + " variables with lower and upper bounds: 179\n", + " variables with only upper bounds: 0\n", + "Total number of equality constraints.................: 203\n", + "Total number of inequality constraints...............: 0\n", + " inequality constraints with only lower bounds: 0\n", + " inequality constraints with lower and upper bounds: 0\n", + " inequality constraints with only upper bounds: 0\n", + "\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 0 0.0000000e+00 1.49e+06 1.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", + " 1 0.0000000e+00 1.35e+04 2.00e-01 -1.0 3.59e+00 - 9.90e-01 9.91e-01h 1\n", + " 2 0.0000000e+00 3.59e-04 9.99e+00 -1.0 3.56e+00 - 9.90e-01 1.00e+00h 1\n", + " 3 0.0000000e+00 2.60e-08 8.98e+01 -1.0 2.91e-04 - 9.90e-01 1.00e+00h 1\n", + "\n", + "Number of Iterations....: 3\n", + "\n", + " (scaled) (unscaled)\n", + "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Constraint violation....: 7.6029602259665645e-13 2.5960616767406464e-08\n", + "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", + "Overall NLP error.......: 7.6029602259665645e-13 2.5960616767406464e-08\n", + "\n", + "\n", + "Number of objective function evaluations = 4\n", + "Number of objective gradient evaluations = 4\n", + "Number of equality constraint evaluations = 4\n", + "Number of inequality constraint evaluations = 0\n", + "Number of equality constraint Jacobian evaluations = 4\n", + "Number of inequality constraint Jacobian evaluations = 0\n", + "Number of Lagrangian Hessian evaluations = 3\n", + "Total CPU secs in IPOPT (w/o function evaluations) = 0.004\n", + "Total CPU secs in NLP function evaluations = 0.000\n", + "\n", + "EXIT: Optimal Solution Found.\n" + ] + } + ], "source": [ "# Solve the model\n", "results = solver.solve(m, tee=True)" @@ -493,9 +627,17 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "operating cost = $39.958 million per year\n" + ] + } + ], "source": [ "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")" ] @@ -509,9 +651,41 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "====================================================================================\n", + "Unit : fs.R101 Time: 0.0\n", + "------------------------------------------------------------------------------------\n", + " Unit Performance\n", + "\n", + " Variables: \n", + "\n", + " Key : Value : Units : Fixed : Bounds\n", + " Heat Duty : 1.7819e+07 : watt : False : (None, None)\n", + "\n", + "------------------------------------------------------------------------------------\n", + " Stream Table\n", + " Units Inlet Outlet \n", + " Total Molar Flowrate mole / second 309.01 429.02\n", + " Total Mole Fraction CH4 dimensionless 0.24272 0.034965\n", + " Total Mole Fraction H2O dimensionless 0.75725 0.32532\n", + " Total Mole Fraction H2 dimensionless 9.9996e-06 0.49984\n", + " Total Mole Fraction CO dimensionless 9.9996e-06 0.059609\n", + " Total Mole Fraction CO2 dimensionless 9.9996e-06 0.080265\n", + " Temperature kelvin 500.00 920.80\n", + " Pressure pascal 2.0000e+05 2.0000e+05\n", + "====================================================================================\n", + "\n", + "Conversion achieved = 80.0%\n" + ] + } + ], "source": [ "m.fs.R101.report()\n", "\n", @@ -537,7 +711,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 26, "metadata": {}, "outputs": [], "source": [ @@ -553,7 +727,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 27, "metadata": {}, "outputs": [], "source": [ @@ -586,20 +760,189 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 29, "metadata": { "scrolled": true }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", + "tol=1e-06\n", + "max_iter=200\n", + "\n", + "\n", + "******************************************************************************\n", + "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", + " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", + " For more information visit http://projects.coin-or.org/Ipopt\n", + "\n", + "This version of Ipopt was compiled from source code available at\n", + " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", + " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", + " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", + "\n", + "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", + " for large-scale scientific computation. All technical papers, sales and\n", + " publicity material resulting from use of the HSL codes within IPOPT must\n", + " contain the following acknowledgement:\n", + " HSL, a collection of Fortran codes for large-scale scientific\n", + " computation. See http://www.hsl.rl.ac.uk.\n", + "******************************************************************************\n", + "\n", + "This is Ipopt version 3.13.2, running with linear solver ma27.\n", + "\n", + "Number of nonzeros in equality constraint Jacobian...: 598\n", + "Number of nonzeros in inequality constraint Jacobian.: 0\n", + "Number of nonzeros in Lagrangian Hessian.............: 506\n", + "\n", + "Total number of variables............................: 205\n", + " variables with only lower bounds: 14\n", + " variables with lower and upper bounds: 181\n", + " variables with only upper bounds: 0\n", + "Total number of equality constraints.................: 203\n", + "Total number of inequality constraints...............: 0\n", + " inequality constraints with only lower bounds: 0\n", + " inequality constraints with lower and upper bounds: 0\n", + " inequality constraints with only upper bounds: 0\n", + "\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 0 3.9958388e+07 1.49e+06 3.46e+01 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", + " 1 3.8920063e+07 1.48e+06 1.52e+03 -1.0 7.19e+06 - 3.91e-01 6.43e-03f 1\n", + " 2 7.0948609e+07 1.15e+06 1.86e+06 -1.0 4.83e+06 - 1.51e-01 2.26e-01h 1\n", + " 3 1.0553921e+08 5.23e+05 1.04e+07 -1.0 2.42e+06 - 3.41e-01 5.67e-01h 1\n", + " 4 1.0874890e+08 1.58e+05 7.64e+06 -1.0 8.45e+05 - 7.09e-01 7.11e-01h 1\n", + " 5 1.0751027e+08 1.51e+04 1.67e+06 -1.0 2.97e+05 - 9.49e-01 9.09e-01f 1\n", + " 6 1.0721898e+08 5.95e+00 9.98e+03 -1.0 3.47e+04 - 9.90e-01 1.00e+00f 1\n", + " 7 1.0721794e+08 3.43e-05 8.84e+01 -1.0 1.59e+02 - 9.90e-01 1.00e+00f 1\n", + " 8 1.0721794e+08 1.90e-08 7.14e-01 -1.0 1.43e-02 - 9.92e-01 1.00e+00h 1\n", + " 9 1.0721794e+08 7.55e-09 1.53e-06 -2.5 1.72e-02 - 1.00e+00 1.00e+00f 1\n", + "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", + " 10 1.0721794e+08 2.10e-08 1.59e-06 -3.8 4.73e-04 - 1.00e+00 1.00e+00f 1\n", + " 11 1.0721794e+08 1.12e-08 2.07e-06 -5.7 2.63e-05 - 1.00e+00 1.00e+00f 1\n", + " 12 1.0721794e+08 3.57e-08 1.65e-06 -7.0 3.14e-07 - 1.00e+00 1.00e+00h 1\n", + "\n", + "Number of Iterations....: 12\n", + "\n", + " (scaled) (unscaled)\n", + "Objective...............: 1.0721793780338226e+08 1.0721793780338226e+08\n", + "Dual infeasibility......: 1.6485091371912918e-06 1.6485091371912918e-06\n", + "Constraint violation....: 4.6566128730773926e-10 3.5680419252624450e-08\n", + "Complementarity.........: 9.0909090914354020e-08 9.0909090914354020e-08\n", + "Overall NLP error.......: 9.0909090914354020e-08 1.6485091371912918e-06\n", + "\n", + "\n", + "Number of objective function evaluations = 13\n", + "Number of objective gradient evaluations = 13\n", + "Number of equality constraint evaluations = 13\n", + "Number of inequality constraint evaluations = 0\n", + "Number of equality constraint Jacobian evaluations = 13\n", + "Number of inequality constraint Jacobian evaluations = 0\n", + "Number of Lagrangian Hessian evaluations = 12\n", + "Total CPU secs in IPOPT (w/o function evaluations) = 0.004\n", + "Total CPU secs in NLP function evaluations = 0.011\n", + "\n", + "EXIT: Optimal Solution Found.\n" + ] + } + ], "source": [ "results = solver.solve(m, tee=True)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 31, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "operating cost = $107.218 million per year\n", + "\n", + "Compressor results\n", + "\n", + "====================================================================================\n", + "Unit : fs.C101 Time: 0.0\n", + "------------------------------------------------------------------------------------\n", + " Unit Performance\n", + "\n", + " Variables: \n", + "\n", + " Key : Value : Units : Fixed : Bounds\n", + " Isentropic Efficiency : 0.90000 : dimensionless : True : (None, None)\n", + " Mechanical Work : 3.0334e+06 : watt : False : (None, None)\n", + " Pressure Change : 9.0000e+05 : pascal : False : (None, None)\n", + " Pressure Ratio : 10.000 : dimensionless : False : (None, None)\n", + "\n", + "------------------------------------------------------------------------------------\n", + " Stream Table\n", + " Units Inlet Outlet \n", + " Total Molar Flowrate mole / second 309.01 309.01\n", + " Total Mole Fraction CH4 dimensionless 0.24272 0.24272\n", + " Total Mole Fraction H2O dimensionless 0.75725 0.75725\n", + " Total Mole Fraction H2 dimensionless 9.9996e-06 9.9996e-06\n", + " Total Mole Fraction CO dimensionless 9.9996e-06 9.9996e-06\n", + " Total Mole Fraction CO2 dimensionless 9.9996e-06 9.9996e-06\n", + " Temperature kelvin 353.80 619.25\n", + " Pressure pascal 1.0000e+05 1.0000e+06\n", + "====================================================================================\n", + "\n", + "Heater results\n", + "\n", + "====================================================================================\n", + "Unit : fs.H101 Time: 0.0\n", + "------------------------------------------------------------------------------------\n", + " Unit Performance\n", + "\n", + " Variables: \n", + "\n", + " Key : Value : Units : Fixed : Bounds\n", + " Heat Duty : 5.8781e-09 : watt : False : (0.0, None)\n", + "\n", + "------------------------------------------------------------------------------------\n", + " Stream Table\n", + " Units Inlet Outlet \n", + " Total Molar Flowrate mole / second 309.01 309.01\n", + " Total Mole Fraction CH4 dimensionless 0.24272 0.24272\n", + " Total Mole Fraction H2O dimensionless 0.75725 0.75725\n", + " Total Mole Fraction H2 dimensionless 9.9996e-06 9.9996e-06\n", + " Total Mole Fraction CO dimensionless 9.9996e-06 9.9996e-06\n", + " Total Mole Fraction CO2 dimensionless 9.9996e-06 9.9996e-06\n", + " Temperature kelvin 619.25 619.25\n", + " Pressure pascal 1.0000e+06 1.0000e+06\n", + "====================================================================================\n", + "\n", + "Gibbs reactor results\n", + "\n", + "====================================================================================\n", + "Unit : fs.R101 Time: 0.0\n", + "------------------------------------------------------------------------------------\n", + " Unit Performance\n", + "\n", + " Variables: \n", + "\n", + " Key : Value : Units : Fixed : Bounds\n", + " Heat Duty : 2.1076e+07 : watt : False : (None, None)\n", + "\n", + "------------------------------------------------------------------------------------\n", + " Stream Table\n", + " Units Inlet Outlet \n", + " Total Molar Flowrate mole / second 309.01 444.02\n", + " Total Mole Fraction CH4 dimensionless 0.24272 0.016892\n", + " Total Mole Fraction H2O dimensionless 0.75725 0.31609\n", + " Total Mole Fraction H2 dimensionless 9.9996e-06 0.51498\n", + " Total Mole Fraction CO dimensionless 9.9996e-06 0.093140\n", + " Total Mole Fraction CO2 dimensionless 9.9996e-06 0.058900\n", + " Temperature kelvin 619.25 1087.4\n", + " Pressure pascal 1.0000e+06 1.0000e+06\n", + "====================================================================================\n" + ] + } + ], "source": [ "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")\n", "\n", @@ -628,9 +971,29 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 33, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Optimal Values\n", + "\n", + "C101 outlet pressure = 1.000 MPa\n", + "\n", + "C101 outlet temperature = 619.248 K\n", + "\n", + "H101 outlet temperature = 619.248 K\n", + "\n", + "R101 outlet temperature = 1087.385 K\n", + "\n", + "Hydrogen produced = 32.070 MM lb/year\n", + "\n", + "Conversion achieved = 90.0%\n" + ] + } + ], "source": [ "print(\"Optimal Values\")\n", "print()\n", @@ -678,7 +1041,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.12" + "version": "3.9.18" } }, "nbformat": 4, diff --git a/idaes_examples/notebooks/docs/unit_models/reactors/plug_flow_reactor.ipynb b/idaes_examples/notebooks/docs/unit_models/reactors/plug_flow_reactor.ipynb index 2fe06cf1..989a3458 100644 --- a/idaes_examples/notebooks/docs/unit_models/reactors/plug_flow_reactor.ipynb +++ b/idaes_examples/notebooks/docs/unit_models/reactors/plug_flow_reactor.ipynb @@ -626,7 +626,7 @@ "metadata": {}, "outputs": [], "source": [ - "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")" + "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.6f} million per year\")" ] }, { @@ -641,7 +641,7 @@ "source": [ "import pytest\n", "\n", - "assert value(m.fs.operating_cost) / 1e6 == pytest.approx(2.082, abs=1e-3)" + "assert value(m.fs.operating_cost) / 1e6 == pytest.approx(6.589, rel=1e-5)" ] }, { @@ -667,15 +667,15 @@ " f\"\"\"{(value(m.fs.R101.length) / value(m.fs.R101.config.finite_elements) * \n", " (value(sum(m.fs.R101.heat_duty[0, k] for k in m.fs.R101.control_volume.length_domain if 0.0 <= k < 1.0))\n", " + (value(m.fs.R101.heat_duty[0, m.fs.R101.control_volume.length_domain.at(1)])\n", - " + value(m.fs.R101.heat_duty[0, m.fs.R101.control_volume.length_domain.at(-1)]))/2))/1e6:0.3f}\"\"\"\n", + " + value(m.fs.R101.heat_duty[0, m.fs.R101.control_volume.length_domain.at(-1)]))/2))/1e6:0.6f}\"\"\"\n", " f\" MJ\"\n", ")\n", "print()\n", - "print(f\"Tube area required = {value(m.fs.R101.area):0.3f} m^2\")\n", + "print(f\"Tube area required = {value(m.fs.R101.area):0.6f} m^2\")\n", "print()\n", - "print(f\"Tube length required = {value(m.fs.R101.length):0.3f} m\")\n", + "print(f\"Tube length required = {value(m.fs.R101.length):0.6f} m\")\n", "print()\n", - "print(f\"Tube volume required = {value(m.fs.R101.volume):0.3f} m^3\")" + "print(f\"Tube volume required = {value(m.fs.R101.volume):0.6f} m^3\")" ] }, { @@ -688,8 +688,8 @@ }, "outputs": [], "source": [ - "assert value(m.fs.R101.conversion) == pytest.approx(0.5000, abs=1e-3)\n", - "assert value(m.fs.R101.area) == pytest.approx(1.1490, abs=1e-3)\n", + "assert value(m.fs.R101.conversion) == pytest.approx(0.5000, rel=1e-5)\n", + "assert value(m.fs.R101.area) == pytest.approx(0.987071, rel=1e-5)\n", "assert (\n", " value(m.fs.R101.length)\n", " / value(m.fs.R101.config.finite_elements)\n", @@ -705,8 +705,8 @@ " + value(m.fs.R101.heat_duty[0, m.fs.R101.control_volume.length_domain.at(-1)])\n", " )\n", " / 2\n", - ") / 1e6 == pytest.approx(-4.734, abs=1e-3)\n", - "assert value(m.fs.R101.outlet.temperature[0]) / 1e2 == pytest.approx(3.2815, abs=1e-3)" + ") / 1e6 == pytest.approx(-4.881815, rel=1e-5)\n", + "assert value(m.fs.R101.outlet.temperature[0]) / 1e2 == pytest.approx(3.2815, rel=1e-5)" ] }, { @@ -829,7 +829,7 @@ "metadata": {}, "outputs": [], "source": [ - "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")\n", + "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.6f} million per year\")\n", "\n", "print()\n", "print(\"Heater results\")\n", @@ -852,8 +852,8 @@ }, "outputs": [], "source": [ - "assert value(m.fs.operating_cost) / 1e6 == pytest.approx(0.3184, abs=1e-3)\n", - "assert value(m.fs.R101.area) == pytest.approx(2.0870, abs=1e-3)" + "assert value(m.fs.operating_cost) / 1e6 == pytest.approx(4.421530, rel=1e-5)\n", + "assert value(m.fs.R101.area) == pytest.approx(2.9300, rel=1e-5)" ] }, { @@ -872,31 +872,31 @@ "print(\"Optimal Values\")\n", "print()\n", "\n", - "print(f\"H101 outlet temperature = {value(m.fs.H101.outlet.temperature[0]):0.3f} K\")\n", + "print(f\"H101 outlet temperature = {value(m.fs.H101.outlet.temperature[0]):0.6f} K\")\n", "\n", "print()\n", "print(\n", " \"Total heat duty required = \",\n", " f\"\"\"{(value(m.fs.R101.length) / value(m.fs.R101.config.finite_elements) * (value(sum(m.fs.R101.heat_duty[0, k] for k in m.fs.R101.control_volume.length_domain if 0.0 <= k < 1.0))\n", " + (value(m.fs.R101.heat_duty[0, m.fs.R101.control_volume.length_domain.at(1)])\n", - " + value(m.fs.R101.heat_duty[0, m.fs.R101.control_volume.length_domain.at(-1)]))/2))/1e6:0.3f}\"\"\"\n", + " + value(m.fs.R101.heat_duty[0, m.fs.R101.control_volume.length_domain.at(-1)]))/2))/1e6:0.6f}\"\"\"\n", " f\" MJ\",\n", ")\n", "print()\n", - "print(f\"Tube area required = {value(m.fs.R101.area):0.3f} m^2\")\n", + "print(f\"Tube area required = {value(m.fs.R101.area):0.6f} m^2\")\n", "\n", "print()\n", - "print(f\"Tube length required = {value(m.fs.R101.length):0.3f} m\")\n", + "print(f\"Tube length required = {value(m.fs.R101.length):0.6f} m\")\n", "\n", "print()\n", "print(\n", " f\"Assuming a 20% design factor for reactor volume,\"\n", - " f\"total CSTR volume required = {value(1.2*m.fs.R101.volume):0.3f}\"\n", - " f\" m^3 = {value(pyunits.convert(1.2*m.fs.R101.volume, to_units=pyunits.gal)):0.3f} gal\"\n", + " f\"total CSTR volume required = {value(1.2*m.fs.R101.volume):0.6f}\"\n", + " f\" m^3 = {value(pyunits.convert(1.2*m.fs.R101.volume, to_units=pyunits.gal)):0.6f} gal\"\n", ")\n", "\n", "print()\n", - "print(f\"Ethylene glycol produced = {value(m.fs.eg_prod):0.3f} MM lb/year\")\n", + "print(f\"Ethylene glycol produced = {value(m.fs.eg_prod):0.6f} MM lb/year\")\n", "\n", "print()\n", "print(f\"Conversion achieved = {value(m.fs.R101.conversion):.1%}\")" @@ -912,7 +912,7 @@ }, "outputs": [], "source": [ - "assert value(m.fs.H101.outlet.temperature[0]) / 100 == pytest.approx(3.2815, abs=1e-3)\n", + "assert value(m.fs.H101.outlet.temperature[0]) / 100 == pytest.approx(3.2815, rel=1e-5)\n", "assert (\n", " value(m.fs.R101.length)\n", " / value(m.fs.R101.config.finite_elements)\n", @@ -932,12 +932,12 @@ " )\n", " / 2\n", " )\n", - ") / 1e6 == pytest.approx(-3.440, abs=1e-3)\n", - "assert value(m.fs.R101.area) == pytest.approx(2.0870, abs=1e-3)\n", - "assert value(m.fs.R101.control_volume.length) == pytest.approx(4.9788, abs=1e-3)\n", - "assert value(m.fs.R101.volume * 1.2) == pytest.approx(12.469, abs=1e-3)\n", - "assert value(m.fs.eg_prod) == pytest.approx(225.415, abs=1e-3)\n", - "assert value(m.fs.R101.conversion) * 100 == pytest.approx(90.000, abs=1e-3)" + ") / 1e6 == pytest.approx(-3.789565, rel=1e-5)\n", + "assert value(m.fs.R101.area) == pytest.approx(2.930001, rel=1e-5)\n", + "assert value(m.fs.R101.control_volume.length) == pytest.approx(4.982470, rel=1e-5)\n", + "assert value(m.fs.R101.volume * 1.2) == pytest.approx(17.518369, rel=1e-5)\n", + "assert value(m.fs.eg_prod) == pytest.approx(225.415471, rel=1e-5)\n", + "assert value(m.fs.R101.conversion) * 100 == pytest.approx(90.000, rel=1e-5)" ] }, { @@ -972,9 +972,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.16" + "version": "3.9.18" } }, "nbformat": 4, - "nbformat_minor": 3 + "nbformat_minor": 4 } diff --git a/idaes_examples/notebooks/docs/unit_models/reactors/plug_flow_reactor_doc.ipynb b/idaes_examples/notebooks/docs/unit_models/reactors/plug_flow_reactor_doc.ipynb index 3ecaff51..05620386 100644 --- a/idaes_examples/notebooks/docs/unit_models/reactors/plug_flow_reactor_doc.ipynb +++ b/idaes_examples/notebooks/docs/unit_models/reactors/plug_flow_reactor_doc.ipynb @@ -1,1340 +1,809 @@ { - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "tags": [ - "header", - "hide-cell" - ] - }, - "outputs": [], - "source": [ - "###############################################################################\n", - "# The Institute for the Design of Advanced Energy Systems Integrated Platform\n", - "# Framework (IDAES IP) was produced under the DOE Institute for the\n", - "# Design of Advanced Energy Systems (IDAES).\n", - "#\n", - "# Copyright (c) 2018-2023 by the software owners: The Regents of the\n", - "# University of California, through Lawrence Berkeley National Laboratory,\n", - "# National Technology & Engineering Solutions of Sandia, LLC, Carnegie Mellon\n", - "# University, West Virginia University Research Corporation, et al.\n", - "# All rights reserved. Please see the files COPYRIGHT.md and LICENSE.md\n", - "# for full copyright and license information.\n", - "###############################################################################" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "# Flowsheet Plug Flow Reactor (PFR) Simulation and Optimization of Ethylene Glycol Production\n", - "Author: Andrew Lee \n", - "Maintainer: Andrew Lee \n", - "\n", - "\n", - "## Learning Outcomes\n", - "\n", - "\n", - "- Call and implement the IDAES PFR unit model\n", - "- Construct a steady-state flowsheet using the IDAES unit model library\n", - "- Connecting unit models in a flowsheet using Arcs\n", - "- Fomulate and solve an optimization problem\n", - " - Defining an objective function\n", - " - Setting variable bounds\n", - " - Adding additional constraints \n", - "\n", - "\n", - "## Problem Statement\n", - "\n", - "Following the previous example implementing a [Continuous Stirred Tank Reactor (CSTR) unit model](http://localhost:8888/notebooks/GitHub/examples-pse/src/Examples/UnitModels/Reactors/cstr_testing_doc.md), we can alter the flowsheet to use a plug flow reactor (PFR). As before, this example is adapted from Fogler, H.S., Elements of Chemical Reaction Engineering 5th ed., 2016, Prentice Hall, p. 157-160 with the following chemical reaction, property packages and flowsheet. Unlike a CSTR which assumes well-mixed liquid behavior, the concentration profiles will vary spatially in one dimension. In actuality, following start-up flow reactor exhibit dynamic behavior as they approach a steady-state equilibrium; we will assume our system has already achieved steady-state behavior. The state variables chosen for the property package are **molar flows of each component by phase in each stream, temperature of each stream and pressure of each stream**. The components considered are: **ethylene oxide, water, sulfuric acid and ethylene glycol** and the process occurs in liquid phase only. Therefore, every stream has 4 flow variables, 1 temperature and 1 pressure variable.\n", - "\n", - "Chemical reaction:\n", - "\n", - "**C2H4O + H2O + H2SO4 → C2H6O2 + H2SO4**\n", - "\n", - "Property Packages:\n", - "\n", - "- egprod_ideal.py\n", - "- egprod_reaction.py\n", - "\n", - "Flowsheet\n", - "\n", - "![](egprod_flowsheet.png)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Importing Required Pyomo and IDAES components\n", - "\n", - "\n", - "To construct a flowsheet, we will need several components from the Pyomo and IDAES packages. Let us first import the following components from Pyomo:\n", - "- Constraint (to write constraints)\n", - "- Var (to declare variables)\n", - "- ConcreteModel (to create the concrete model object)\n", - "- Expression (to evaluate values as a function of variables defined in the model)\n", - "- Objective (to define an objective function for optimization)\n", - "- TransformationFactory (to apply certain transformations)\n", - "- Arc (to connect two unit models)\n", - "\n", - "For further details on these components, please refer to the pyomo documentation: https://pyomo.readthedocs.io/en/stable/\n", - "\n", - "From idaes, we will be needing the `FlowsheetBlock` and the following unit models:\n", - "- Mixer\n", - "- Heater\n", - "- PFR\n", - "\n", - "We will also be needing some utility tools to put together the flowsheet and calculate the degrees of freedom, tools for model expressions and calling variable values, and built-in functions to define property packages, add unit containers to objects and define our initialization scheme.\n" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "from pyomo.environ import (\n", - " Constraint,\n", - " Var,\n", - " ConcreteModel,\n", - " Expression,\n", - " Objective,\n", - " TransformationFactory,\n", - " value,\n", - " units as pyunits,\n", - ")\n", - "from pyomo.network import Arc\n", - "\n", - "from idaes.core import FlowsheetBlock\n", - "from idaes.models.properties.modular_properties import (\n", - " GenericParameterBlock,\n", - " GenericReactionParameterBlock,\n", - ")\n", - "from idaes.models.unit_models import Feed, Mixer, Heater, PFR, Product\n", - "\n", - "from idaes.core.solvers import get_solver\n", - "from idaes.core.util.model_statistics import degrees_of_freedom\n", - "from idaes.core.util.initialization import propagate_state" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Importing Required Thermophysical and Reaction Packages\n", - "\n", - "The final step is to import the thermophysical and reaction packages. We have created a custom thermophysical package that support ideal vapor and liquid behavior for this system, and in this case we will restrict it to ideal liquid behavior only.\n", - "\n", - "The reaction package here assumes Arrhenius kinetic behavior for the PFR, for which $k_0$ and $E_a$ are known *a priori* (if unknown, they may be obtained using one of the parameter estimation tools within IDAES).\n", - "\n", - "$ r = -kVC_{EO} $, $ k = k_0 e^{(-E_a/RT)}$, with the variables as follows:\n", - "\n", - "$r$ - reaction rate extent in moles of ethylene oxide consumed per second; note that the traditional reaction rate would be given by $rate = r/V$ in moles per $m^3$ per second \n", - "$k$ - reaction rate constant per second \n", - "$V$ - volume of PFR in $m^3$, note that this is *liquid volume* and not the *total volume* of the reactor itself \n", - "$C_{EO}$ - bulk concentration of ethylene oxide in moles per $m^3$ (the limiting reagent, since we assume excess catalyst and water) \n", - "$k_0$ - pre-exponential Arrhenius factor per second \n", - "$E_a$ - reaction activation energy in kJ per mole of ethylene oxide consumed \n", - "$R$ - gas constant in J/mol-K \n", - "$T$ - reactor temperature in K\n", - "\n", - "These calculations are contained within the property, reaction and unit model packages, and do not need to be entered into the flowsheet. More information on property estimation may be found in the IDAES documentation on [Parameter Estimation](https://idaes-pse.readthedocs.io/en/stable/how_to_guides/workflow/data_rec_parmest.html).\n", - "\n", - "Let us import the following modules from the same directory as this Jupyter notebook:\n", - "- egprod_ideal as thermo_props\n", - "- egprod_reaction as reaction_props" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "import egprod_ideal as thermo_props\n", - "import egprod_reaction as reaction_props" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Constructing the Flowsheet\n", - "\n", - "We have now imported all the components, unit models, and property modules we need to construct a flowsheet. Let us create a ConcreteModel and add the flowsheet block. " - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "m = ConcreteModel()\n", - "m.fs = FlowsheetBlock(dynamic=False)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We now need to add the property packages to the flowsheet. Unlike the basic [Flash unit model example](http://localhost:8888/notebooks/GitHub/examples-pse/src/Tutorials/Basics/flash_unit_solution_testing_doc.md), where we only had a thermophysical property package, for this flowsheet we will also need to add a reaction property package. We will use the [Modular Property Framework](https://idaes-pse.readthedocs.io/en/stable/explanations/components/property_package/index.html#generic-property-package-framework) and [Modular Reaction Framework](https://idaes-pse.readthedocs.io/en/stable/explanations/components/property_package/index.html#generic-reaction-package-framework). The get_prop method for the natural gas property module automatically returns the correct dictionary using a component list argument. The GenericParameterBlock and GenericReactionParameterBlock methods build states blocks from passed parameter data; the reaction block unpacks using **reaction_props.config_dict to allow for optional or empty keyword arguments:" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "m.fs.thermo_params = GenericParameterBlock(**thermo_props.config_dict)\n", - "m.fs.reaction_params = GenericReactionParameterBlock(\n", - " property_package=m.fs.thermo_params, **reaction_props.config_dict\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Adding Unit Models\n", - "\n", - "Let us start adding the unit models we have imported to the flowsheet. Here, we are adding a `Mixer`, a `Heater` and a `PFR`. Note that all unit models need to be given a property package argument. In addition to that, there are several arguments depending on the unit model, please refer to the documentation for more details on [IDAES Unit Models](https://idaes-pse.readthedocs.io/en/stable/reference_guides/model_libraries/index.html). For example, the `Mixer` is given a `list` consisting of names to the two inlets." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "m.fs.OXIDE = Feed(property_package=m.fs.thermo_params)\n", - "m.fs.ACID = Feed(property_package=m.fs.thermo_params)\n", - "m.fs.PROD = Product(property_package=m.fs.thermo_params)\n", - "m.fs.M101 = Mixer(\n", - " property_package=m.fs.thermo_params, inlet_list=[\"reagent_feed\", \"catalyst_feed\"]\n", - ")\n", - "m.fs.H101 = Heater(\n", - " property_package=m.fs.thermo_params,\n", - " has_pressure_change=False,\n", - " has_phase_equilibrium=False,\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "scrolled": false - }, - "outputs": [], - "source": [ - "m.fs.R101 = PFR(\n", - " property_package=m.fs.thermo_params,\n", - " reaction_package=m.fs.reaction_params,\n", - " has_equilibrium_reactions=False,\n", - " has_heat_of_reaction=True,\n", - " has_heat_transfer=True,\n", - " has_pressure_change=False,\n", - " transformation_method=\"dae.finite_difference\",\n", - " transformation_scheme=\"BACKWARD\",\n", - " finite_elements=20,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Connecting Unit Models Using Arcs\n", - "\n", - "We have now added all the unit models we need to the flowsheet. However, we have not yet specified how the units are to be connected. To do this, we will be using the `Arc` which is a pyomo component that takes in two arguments: `source` and `destination`. Let us connect the outlet of the `Mixer` to the inlet of the `Heater`, and the outlet of the `Heater` to the inlet of the `PFR`. Additionally, we will connect the `Feed` and `Product` blocks to the flowsheet:" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.s01 = Arc(source=m.fs.OXIDE.outlet, destination=m.fs.M101.reagent_feed)\n", - "m.fs.s02 = Arc(source=m.fs.ACID.outlet, destination=m.fs.M101.catalyst_feed)\n", - "m.fs.s03 = Arc(source=m.fs.M101.outlet, destination=m.fs.H101.inlet)\n", - "m.fs.s04 = Arc(source=m.fs.H101.outlet, destination=m.fs.R101.inlet)\n", - "m.fs.s05 = Arc(source=m.fs.R101.outlet, destination=m.fs.PROD.inlet)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We have now connected the unit model block using the arcs. However, we also need to link the state variables on connected ports. Pyomo provides a convenient method `TransformationFactory` to write these equality constraints for us between two ports:" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "TransformationFactory(\"network.expand_arcs\").apply_to(m)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Adding Expressions to Compute Operating Costs\n", - "\n", - "In this section, we will add a few Expressions that allows us to evaluate the performance. `Expressions` provide a convenient way of calculating certain values that are a function of the variables defined in the model. For more details on `Expressions`, please refer to the [Pyomo Expression documentation]( https://pyomo.readthedocs.io/en/stable/pyomo_modeling_components/Expressions.html).\n", - "\n", - "For this flowsheet, we are interested in computing ethylene glycol production in millions of pounds per year, as well as the total costs due to cooling and heating utilities." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us first add an `Expression` to convert the product flow from mol/s to MM lb/year of ethylene glycol. We see that the molecular weight exists in the thermophysical property package, so we may use that value for our calculations." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.eg_prod = Expression(\n", - " expr=pyunits.convert(\n", - " m.fs.PROD.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"]\n", - " * m.fs.thermo_params.ethylene_glycol.mw, # MW defined in properties as kg/mol\n", - " to_units=pyunits.Mlb / pyunits.yr,\n", - " )\n", - ") # converting kg/s to MM lb/year" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now, let us add expressions to compute the reactor cooling cost (\\\\$/s) assuming a cost of 2.12E-5 \\\\$/kW, and the heating utility cost (\\\\$/s) assuming 2.2E-4 \\\\$/kW. To calculate cooling cost, it is important to note that the heat duty is not constant throughout the reactor's length and is expressed in terms of heat per length (J/m/s). This is why we utilize the trapezoid rule to calculate the total heat duty of the reactor:$Q=\\Delta x\\big(\\sum_{k=1}^{N-1}(Q_k)+\\frac{Q_N+Q_0}{2}\\big)$ \n", - "where k is the subinterval in the length domain, N is the number of intervals, and $\\Delta x$ is the length of the interval.\n", - "Note that the heat duty is in units of watt (J/s). The total operating cost will be the sum of the two, expressed in \\\\$/year, assuming 8000 operating hours per year (~10\\% downtime, which is fairly common for small scale chemical plants):" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "m.fs.cooling_cost = Expression(\n", - " expr=2.12e-8\n", - " * m.fs.R101.length\n", - " / m.fs.R101.config.finite_elements\n", - " * (\n", - " -sum(\n", - " m.fs.R101.heat_duty[0, k]\n", - " for k in m.fs.R101.control_volume.length_domain\n", - " if 0.0 <= k < 1.0\n", - " )\n", - " )\n", - " - (\n", - " value(m.fs.R101.heat_duty[0, m.fs.R101.control_volume.length_domain.at(1)])\n", - " - value(m.fs.R101.heat_duty[0, m.fs.R101.control_volume.length_domain.at(-1)])\n", - " )\n", - " / 2\n", - ") # the reaction is exothermic, so R101 duty is negative\n", - "m.fs.heating_cost = Expression(\n", - " expr=2.2e-7 * m.fs.H101.heat_duty[0]\n", - ") # the stream must be heated to T_rxn, so H101 duty is positive\n", - "m.fs.operating_cost = Expression(\n", - " expr=(3600 * 8000 * (m.fs.heating_cost + m.fs.cooling_cost))\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Fixing Feed Conditions\n", - "\n", - "Let us first check how many degrees of freedom exist for this flowsheet using the `degrees_of_freedom` tool we imported earlier. We expect each stream to have 6 degrees of freedom, the mixer to have 0 (after both streams are accounted for), the heater to have 1 (just the duty, since the inlet is also the outlet of M101), and the reactor to have 2 unit specifications and 1 specification for each finite element. Therefore, we have 35 degrees of freedom to specify: temperature, pressure and flow of all four components on both streams; outlet heater temperature; a reactor property such as conversion or heat duty at each finite element; reactor volume and reactor length." - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": { - "scrolled": true - }, - "outputs": [ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "tags": [ + "header", + "hide-cell" + ] + }, + "outputs": [], + "source": [ + "###############################################################################\n", + "# The Institute for the Design of Advanced Energy Systems Integrated Platform\n", + "# Framework (IDAES IP) was produced under the DOE Institute for the\n", + "# Design of Advanced Energy Systems (IDAES).\n", + "#\n", + "# Copyright (c) 2018-2023 by the software owners: The Regents of the\n", + "# University of California, through Lawrence Berkeley National Laboratory,\n", + "# National Technology & Engineering Solutions of Sandia, LLC, Carnegie Mellon\n", + "# University, West Virginia University Research Corporation, et al.\n", + "# All rights reserved. Please see the files COPYRIGHT.md and LICENSE.md\n", + "# for full copyright and license information.\n", + "###############################################################################" + ] + }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "35\n" - ] - } - ], - "source": [ - "print(degrees_of_freedom(m))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We will now be fixing the feed stream to the conditions shown in the flowsheet above. As mentioned in other tutorials, the IDAES framework expects a time index value for every referenced internal stream or unit variable, even in steady-state systems with a single time point $ t = 0 $ (`t = [0]` is the default when creating a `FlowsheetBlock` without passing a `time_set` argument). The non-present components in each stream are assigned a very small non-zero value to help with convergence and initializing. Based on stoichiometric ratios for the reaction, 80% conversion and 200 MM lb/year (46.4 mol/s) of ethylene glycol, we will initialize our simulation with the following calculated values:" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.OXIDE.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_oxide\"].fix(\n", - " 58.0 * pyunits.mol / pyunits.s\n", - ")\n", - "m.fs.OXIDE.outlet.flow_mol_phase_comp[0, \"Liq\", \"water\"].fix(\n", - " 39.6 * pyunits.mol / pyunits.s\n", - ") # calculated from 16.1 mol EO / cudm in stream\n", - "m.fs.OXIDE.outlet.flow_mol_phase_comp[0, \"Liq\", \"sulfuric_acid\"].fix(\n", - " 1e-5 * pyunits.mol / pyunits.s\n", - ")\n", - "m.fs.OXIDE.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"].fix(\n", - " 1e-5 * pyunits.mol / pyunits.s\n", - ")\n", - "m.fs.OXIDE.outlet.temperature.fix(298.15 * pyunits.K)\n", - "m.fs.OXIDE.outlet.pressure.fix(1e5 * pyunits.Pa)\n", - "\n", - "m.fs.ACID.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_oxide\"].fix(\n", - " 1e-5 * pyunits.mol / pyunits.s\n", - ")\n", - "m.fs.ACID.outlet.flow_mol_phase_comp[0, \"Liq\", \"water\"].fix(\n", - " 200 * pyunits.mol / pyunits.s\n", - ")\n", - "m.fs.ACID.outlet.flow_mol_phase_comp[0, \"Liq\", \"sulfuric_acid\"].fix(\n", - " 0.334 * pyunits.mol / pyunits.s\n", - ") # calculated from 0.9 wt% SA in stream\n", - "m.fs.ACID.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"].fix(\n", - " 1e-5 * pyunits.mol / pyunits.s\n", - ")\n", - "m.fs.ACID.outlet.temperature.fix(298.15 * pyunits.K)\n", - "m.fs.ACID.outlet.pressure.fix(1e5 * pyunits.Pa)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Fixing Unit Model Specifications\n", - "\n", - "Now that we have fixed our inlet feed conditions, we will now be fixing the operating conditions for the unit models in the flowsheet. Let us fix the outlet temperature of H101 to 328.15 K. " - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.H101.outlet.temperature.fix(328.15 * pyunits.K)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For the `PFR`, we have to define the conversion in terms of ethylene oxide. Note that the `PFR` reaction volume variable (m.fs.R101.volume) does not need to be defined here since it is internally defined by the `PFR` model. We'll estimate 50% conversion for our initial flowsheet:" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": { - "scrolled": false - }, - "outputs": [], - "source": [ - "m.fs.R101.conversion = Var(\n", - " bounds=(0, 1), initialize=0.80, units=pyunits.dimensionless\n", - ") # fraction\n", - "\n", - "m.fs.R101.conv_constraint = Constraint(\n", - " expr=m.fs.R101.conversion\n", - " * m.fs.R101.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_oxide\"]\n", - " == (\n", - " m.fs.R101.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_oxide\"]\n", - " - m.fs.R101.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_oxide\"]\n", - " )\n", - ")\n", - "\n", - "for x in m.fs.R101.control_volume.length_domain:\n", - " if x == 0:\n", - " continue\n", - " m.fs.R101.control_volume.properties[0, x].temperature.fix(\n", - " 328.15 * pyunits.K\n", - " ) # equal inlet reactor temperature\n", - "\n", - "m.fs.R101.conversion.fix(0.5)\n", - "\n", - "m.fs.R101.length.fix(1 * pyunits.m)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "As we did not place a specification on reactor duty, the solver may try positive values to increase the reaction temperature and rate. To prevent the optimization from diverging, we need to set an upper bound restricting heat flow to cooling only:" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.R101.heat_duty.setub(\n", - " 0 * pyunits.J / pyunits.m / pyunits.s\n", - ") # heat duty is only used for cooling" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For initialization, we solve a square problem (degrees of freedom = 0). Let's check the degrees of freedom below:" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "# Flowsheet Plug Flow Reactor (PFR) Simulation and Optimization of Ethylene Glycol Production\n", + "Author: Andrew Lee \n", + "Maintainer: Andrew Lee \n", + "\n", + "\n", + "## Learning Outcomes\n", + "\n", + "\n", + "- Call and implement the IDAES PFR unit model\n", + "- Construct a steady-state flowsheet using the IDAES unit model library\n", + "- Connecting unit models in a flowsheet using Arcs\n", + "- Fomulate and solve an optimization problem\n", + " - Defining an objective function\n", + " - Setting variable bounds\n", + " - Adding additional constraints \n", + "\n", + "\n", + "## Problem Statement\n", + "\n", + "Following the previous example implementing a [Continuous Stirred Tank Reactor (CSTR) unit model](http://localhost:8888/notebooks/GitHub/examples-pse/src/Examples/UnitModels/Reactors/cstr_testing_doc.md), we can alter the flowsheet to use a plug flow reactor (PFR). As before, this example is adapted from Fogler, H.S., Elements of Chemical Reaction Engineering 5th ed., 2016, Prentice Hall, p. 157-160 with the following chemical reaction, property packages and flowsheet. Unlike a CSTR which assumes well-mixed liquid behavior, the concentration profiles will vary spatially in one dimension. In actuality, following start-up flow reactor exhibit dynamic behavior as they approach a steady-state equilibrium; we will assume our system has already achieved steady-state behavior. The state variables chosen for the property package are **molar flows of each component by phase in each stream, temperature of each stream and pressure of each stream**. The components considered are: **ethylene oxide, water, sulfuric acid and ethylene glycol** and the process occurs in liquid phase only. Therefore, every stream has 4 flow variables, 1 temperature and 1 pressure variable.\n", + "\n", + "Chemical reaction:\n", + "\n", + "**C2H4O + H2O + H2SO4 \u2192 C2H6O2 + H2SO4**\n", + "\n", + "Property Packages:\n", + "\n", + "- egprod_ideal.py\n", + "- egprod_reaction.py\n", + "\n", + "Flowsheet\n", + "\n", + "![](egprod_flowsheet.png)" + ] + }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "0\n" - ] - } - ], - "source": [ - "print(degrees_of_freedom(m))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Finally, we need to initialize the each unit operation in sequence to solve the flowsheet. As in best practice, unit operations are initialized or solved, and outlet properties are propagated to connected inlet streams via arc definitions as follows:" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Importing Required Pyomo and IDAES components\n", + "\n", + "\n", + "To construct a flowsheet, we will need several components from the Pyomo and IDAES packages. Let us first import the following components from Pyomo:\n", + "- Constraint (to write constraints)\n", + "- Var (to declare variables)\n", + "- ConcreteModel (to create the concrete model object)\n", + "- Expression (to evaluate values as a function of variables defined in the model)\n", + "- Objective (to define an objective function for optimization)\n", + "- TransformationFactory (to apply certain transformations)\n", + "- Arc (to connect two unit models)\n", + "\n", + "For further details on these components, please refer to the pyomo documentation: https://pyomo.readthedocs.io/en/stable/\n", + "\n", + "From idaes, we will be needing the `FlowsheetBlock` and the following unit models:\n", + "- Mixer\n", + "- Heater\n", + "- PFR\n", + "\n", + "We will also be needing some utility tools to put together the flowsheet and calculate the degrees of freedom, tools for model expressions and calling variable values, and built-in functions to define property packages, add unit containers to objects and define our initialization scheme.\n" + ] + }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:21:57 [INFO] idaes.init.fs.OXIDE.properties: Starting initialization\n" - ] + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "from pyomo.environ import (\n", + " Constraint,\n", + " Var,\n", + " ConcreteModel,\n", + " Expression,\n", + " Objective,\n", + " TransformationFactory,\n", + " value,\n", + " units as pyunits,\n", + ")\n", + "from pyomo.network import Arc\n", + "\n", + "from idaes.core import FlowsheetBlock\n", + "from idaes.models.properties.modular_properties import (\n", + " GenericParameterBlock,\n", + " GenericReactionParameterBlock,\n", + ")\n", + "from idaes.models.unit_models import Feed, Mixer, Heater, PFR, Product\n", + "\n", + "from idaes.core.solvers import get_solver\n", + "from idaes.core.util.model_statistics import degrees_of_freedom\n", + "from idaes.core.util.initialization import propagate_state" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:21:57 [INFO] idaes.init.fs.OXIDE.properties: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Importing Required Thermophysical and Reaction Packages\n", + "\n", + "The final step is to import the thermophysical and reaction packages. We have created a custom thermophysical package that support ideal vapor and liquid behavior for this system, and in this case we will restrict it to ideal liquid behavior only.\n", + "\n", + "The reaction package here assumes Arrhenius kinetic behavior for the PFR, for which $k_0$ and $E_a$ are known *a priori* (if unknown, they may be obtained using one of the parameter estimation tools within IDAES).\n", + "\n", + "$ r = -kVC_{EO} $, $ k = k_0 e^{(-E_a/RT)}$, with the variables as follows:\n", + "\n", + "$r$ - reaction rate extent in moles of ethylene oxide consumed per second; note that the traditional reaction rate would be given by $rate = r/V$ in moles per $m^3$ per second \n", + "$k$ - reaction rate constant per second \n", + "$V$ - volume of PFR in $m^3$, note that this is *liquid volume* and not the *total volume* of the reactor itself \n", + "$C_{EO}$ - bulk concentration of ethylene oxide in moles per $m^3$ (the limiting reagent, since we assume excess catalyst and water) \n", + "$k_0$ - pre-exponential Arrhenius factor per second \n", + "$E_a$ - reaction activation energy in kJ per mole of ethylene oxide consumed \n", + "$R$ - gas constant in J/mol-K \n", + "$T$ - reactor temperature in K\n", + "\n", + "These calculations are contained within the property, reaction and unit model packages, and do not need to be entered into the flowsheet. More information on property estimation may be found in the IDAES documentation on [Parameter Estimation](https://idaes-pse.readthedocs.io/en/stable/how_to_guides/workflow/data_rec_parmest.html).\n", + "\n", + "Let us import the following modules from the same directory as this Jupyter notebook:\n", + "- egprod_ideal as thermo_props\n", + "- egprod_reaction as reaction_props" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:21:57 [INFO] idaes.init.fs.OXIDE.properties: Property package initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import egprod_ideal as thermo_props\n", + "import egprod_reaction as reaction_props" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:21:57 [INFO] idaes.init.fs.OXIDE: Initialization Complete.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Constructing the Flowsheet\n", + "\n", + "We have now imported all the components, unit models, and property modules we need to construct a flowsheet. Let us create a ConcreteModel and add the flowsheet block. " + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:21:57 [INFO] idaes.init.fs.ACID.properties: Starting initialization\n" - ] + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "m = ConcreteModel()\n", + "m.fs = FlowsheetBlock(dynamic=False)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:21:57 [INFO] idaes.init.fs.ACID.properties: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now need to add the property packages to the flowsheet. Unlike the basic [Flash unit model example](http://localhost:8888/notebooks/GitHub/examples-pse/src/Tutorials/Basics/flash_unit_solution_testing_doc.md), where we only had a thermophysical property package, for this flowsheet we will also need to add a reaction property package. We will use the [Modular Property Framework](https://idaes-pse.readthedocs.io/en/stable/explanations/components/property_package/index.html#generic-property-package-framework) and [Modular Reaction Framework](https://idaes-pse.readthedocs.io/en/stable/explanations/components/property_package/index.html#generic-reaction-package-framework). The get_prop method for the natural gas property module automatically returns the correct dictionary using a component list argument. The GenericParameterBlock and GenericReactionParameterBlock methods build states blocks from passed parameter data; the reaction block unpacks using **reaction_props.config_dict to allow for optional or empty keyword arguments:" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:21:57 [INFO] idaes.init.fs.ACID.properties: Property package initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 5, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "m.fs.thermo_params = GenericParameterBlock(**thermo_props.config_dict)\n", + "m.fs.reaction_params = GenericReactionParameterBlock(\n", + " property_package=m.fs.thermo_params, **reaction_props.config_dict\n", + ")" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:21:57 [INFO] idaes.init.fs.ACID: Initialization Complete.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Adding Unit Models\n", + "\n", + "Let us start adding the unit models we have imported to the flowsheet. Here, we are adding a `Mixer`, a `Heater` and a `PFR`. Note that all unit models need to be given a property package argument. In addition to that, there are several arguments depending on the unit model, please refer to the documentation for more details on [IDAES Unit Models](https://idaes-pse.readthedocs.io/en/stable/reference_guides/model_libraries/index.html). For example, the `Mixer` is given a `list` consisting of names to the two inlets." + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:21:57 [INFO] idaes.init.fs.M101.reagent_feed_state: Starting initialization\n" - ] + "cell_type": "code", + "execution_count": 6, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "m.fs.OXIDE = Feed(property_package=m.fs.thermo_params)\n", + "m.fs.ACID = Feed(property_package=m.fs.thermo_params)\n", + "m.fs.PROD = Product(property_package=m.fs.thermo_params)\n", + "m.fs.M101 = Mixer(\n", + " property_package=m.fs.thermo_params, inlet_list=[\"reagent_feed\", \"catalyst_feed\"]\n", + ")\n", + "m.fs.H101 = Heater(\n", + " property_package=m.fs.thermo_params,\n", + " has_pressure_change=False,\n", + " has_phase_equilibrium=False,\n", + ")" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:21:57 [INFO] idaes.init.fs.M101.reagent_feed_state: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 7, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "m.fs.R101 = PFR(\n", + " property_package=m.fs.thermo_params,\n", + " reaction_package=m.fs.reaction_params,\n", + " has_equilibrium_reactions=False,\n", + " has_heat_of_reaction=True,\n", + " has_heat_transfer=True,\n", + " has_pressure_change=False,\n", + " transformation_method=\"dae.finite_difference\",\n", + " transformation_scheme=\"BACKWARD\",\n", + " finite_elements=20,\n", + ")" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:21:57 [INFO] idaes.init.fs.M101.catalyst_feed_state: Starting initialization\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Connecting Unit Models Using Arcs\n", + "\n", + "We have now added all the unit models we need to the flowsheet. However, we have not yet specified how the units are to be connected. To do this, we will be using the `Arc` which is a pyomo component that takes in two arguments: `source` and `destination`. Let us connect the outlet of the `Mixer` to the inlet of the `Heater`, and the outlet of the `Heater` to the inlet of the `PFR`. Additionally, we will connect the `Feed` and `Product` blocks to the flowsheet:" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:21:57 [INFO] idaes.init.fs.M101.catalyst_feed_state: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.s01 = Arc(source=m.fs.OXIDE.outlet, destination=m.fs.M101.reagent_feed)\n", + "m.fs.s02 = Arc(source=m.fs.ACID.outlet, destination=m.fs.M101.catalyst_feed)\n", + "m.fs.s03 = Arc(source=m.fs.M101.outlet, destination=m.fs.H101.inlet)\n", + "m.fs.s04 = Arc(source=m.fs.H101.outlet, destination=m.fs.R101.inlet)\n", + "m.fs.s05 = Arc(source=m.fs.R101.outlet, destination=m.fs.PROD.inlet)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:21:57 [INFO] idaes.init.fs.M101.mixed_state: Starting initialization\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We have now connected the unit model block using the arcs. However, we also need to link the state variables on connected ports. Pyomo provides a convenient method `TransformationFactory` to write these equality constraints for us between two ports:" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:21:57 [INFO] idaes.init.fs.M101.mixed_state: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "TransformationFactory(\"network.expand_arcs\").apply_to(m)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:21:57 [INFO] idaes.init.fs.M101.mixed_state: Property package initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Adding Expressions to Compute Operating Costs\n", + "\n", + "In this section, we will add a few Expressions that allows us to evaluate the performance. `Expressions` provide a convenient way of calculating certain values that are a function of the variables defined in the model. For more details on `Expressions`, please refer to the [Pyomo Expression documentation]( https://pyomo.readthedocs.io/en/stable/pyomo_modeling_components/Expressions.html).\n", + "\n", + "For this flowsheet, we are interested in computing ethylene glycol production in millions of pounds per year, as well as the total costs due to cooling and heating utilities." + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:21:57 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - Optimal Solution Found\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us first add an `Expression` to convert the product flow from mol/s to MM lb/year of ethylene glycol. We see that the molecular weight exists in the thermophysical property package, so we may use that value for our calculations." + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:21:57 [INFO] idaes.init.fs.H101.control_volume.properties_in: Starting initialization\n" - ] + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.eg_prod = Expression(\n", + " expr=pyunits.convert(\n", + " m.fs.PROD.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"]\n", + " * m.fs.thermo_params.ethylene_glycol.mw, # MW defined in properties as kg/mol\n", + " to_units=pyunits.Mlb / pyunits.yr,\n", + " )\n", + ") # converting kg/s to MM lb/year" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:21:57 [INFO] idaes.init.fs.H101.control_volume.properties_in: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let us add expressions to compute the reactor cooling cost (\\\\$/s) assuming a cost of 2.12E-5 \\\\$/kW, and the heating utility cost (\\\\$/s) assuming 2.2E-4 \\\\$/kW. To calculate cooling cost, it is important to note that the heat duty is not constant throughout the reactor's length and is expressed in terms of heat per length (J/m/s). This is why we utilize the trapezoid rule to calculate the total heat duty of the reactor:$Q=\\Delta x\\big(\\sum_{k=1}^{N-1}(Q_k)+\\frac{Q_N+Q_0}{2}\\big)$ \n", + "where k is the subinterval in the length domain, N is the number of intervals, and $\\Delta x$ is the length of the interval.\n", + "Note that the heat duty is in units of watt (J/s). The total operating cost will be the sum of the two, expressed in \\\\$/year, assuming 8000 operating hours per year (~10\\% downtime, which is fairly common for small scale chemical plants):" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:21:57 [INFO] idaes.init.fs.H101.control_volume.properties_out: Starting initialization\n" - ] + "cell_type": "code", + "execution_count": 11, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "m.fs.cooling_cost = Expression(\n", + " expr=2.12e-8\n", + " * m.fs.R101.length\n", + " / m.fs.R101.config.finite_elements\n", + " * (\n", + " -sum(\n", + " m.fs.R101.heat_duty[0, k]\n", + " for k in m.fs.R101.control_volume.length_domain\n", + " if 0.0 <= k < 1.0\n", + " )\n", + " )\n", + " - (\n", + " value(m.fs.R101.heat_duty[0, m.fs.R101.control_volume.length_domain.at(1)])\n", + " - value(m.fs.R101.heat_duty[0, m.fs.R101.control_volume.length_domain.at(-1)])\n", + " )\n", + " / 2\n", + ") # the reaction is exothermic, so R101 duty is negative\n", + "m.fs.heating_cost = Expression(\n", + " expr=2.2e-7 * m.fs.H101.heat_duty[0]\n", + ") # the stream must be heated to T_rxn, so H101 duty is positive\n", + "m.fs.operating_cost = Expression(\n", + " expr=(3600 * 8000 * (m.fs.heating_cost + m.fs.cooling_cost))\n", + ")" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:21:57 [INFO] idaes.init.fs.H101.control_volume.properties_out: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Fixing Feed Conditions\n", + "\n", + "Let us first check how many degrees of freedom exist for this flowsheet using the `degrees_of_freedom` tool we imported earlier. We expect each stream to have 6 degrees of freedom, the mixer to have 0 (after both streams are accounted for), the heater to have 1 (just the duty, since the inlet is also the outlet of M101), and the reactor to have 2 unit specifications and 1 specification for each finite element. Therefore, we have 35 degrees of freedom to specify: temperature, pressure and flow of all four components on both streams; outlet heater temperature; a reactor property such as conversion or heat duty at each finite element; reactor volume and reactor length." + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:21:57 [INFO] idaes.init.fs.H101.control_volume: Initialization Complete\n" - ] + "cell_type": "code", + "execution_count": 12, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "print(degrees_of_freedom(m))" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:21:57 [INFO] idaes.init.fs.H101: Initialization Complete: optimal - Optimal Solution Found\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will now be fixing the feed stream to the conditions shown in the flowsheet above. As mentioned in other tutorials, the IDAES framework expects a time index value for every referenced internal stream or unit variable, even in steady-state systems with a single time point $ t = 0 $ (`t = [0]` is the default when creating a `FlowsheetBlock` without passing a `time_set` argument). The non-present components in each stream are assigned a very small non-zero value to help with convergence and initializing. Based on stoichiometric ratios for the reaction, 80% conversion and 200 MM lb/year (46.4 mol/s) of ethylene glycol, we will initialize our simulation with the following calculated values:" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:21:57 [INFO] idaes.init.fs.R101.control_volume.properties: Starting initialization\n" - ] + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.OXIDE.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_oxide\"].fix(\n", + " 58.0 * pyunits.mol / pyunits.s\n", + ")\n", + "m.fs.OXIDE.outlet.flow_mol_phase_comp[0, \"Liq\", \"water\"].fix(\n", + " 39.6 * pyunits.mol / pyunits.s\n", + ") # calculated from 16.1 mol EO / cudm in stream\n", + "m.fs.OXIDE.outlet.flow_mol_phase_comp[0, \"Liq\", \"sulfuric_acid\"].fix(\n", + " 1e-5 * pyunits.mol / pyunits.s\n", + ")\n", + "m.fs.OXIDE.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"].fix(\n", + " 1e-5 * pyunits.mol / pyunits.s\n", + ")\n", + "m.fs.OXIDE.outlet.temperature.fix(298.15 * pyunits.K)\n", + "m.fs.OXIDE.outlet.pressure.fix(1e5 * pyunits.Pa)\n", + "\n", + "m.fs.ACID.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_oxide\"].fix(\n", + " 1e-5 * pyunits.mol / pyunits.s\n", + ")\n", + "m.fs.ACID.outlet.flow_mol_phase_comp[0, \"Liq\", \"water\"].fix(\n", + " 200 * pyunits.mol / pyunits.s\n", + ")\n", + "m.fs.ACID.outlet.flow_mol_phase_comp[0, \"Liq\", \"sulfuric_acid\"].fix(\n", + " 0.334 * pyunits.mol / pyunits.s\n", + ") # calculated from 0.9 wt% SA in stream\n", + "m.fs.ACID.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"].fix(\n", + " 1e-5 * pyunits.mol / pyunits.s\n", + ")\n", + "m.fs.ACID.outlet.temperature.fix(298.15 * pyunits.K)\n", + "m.fs.ACID.outlet.pressure.fix(1e5 * pyunits.Pa)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:21:57 [INFO] idaes.init.fs.R101.control_volume.properties: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Fixing Unit Model Specifications\n", + "\n", + "Now that we have fixed our inlet feed conditions, we will now be fixing the operating conditions for the unit models in the flowsheet. Let us fix the outlet temperature of H101 to 328.15 K. " + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:21:57 [INFO] idaes.init.fs.R101.control_volume.reactions: Initialization Complete.\n" - ] + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.H101.outlet.temperature.fix(328.15 * pyunits.K)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:21:57 [INFO] idaes.init.fs.R101.control_volume: Initialization Complete\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For the `PFR`, we have to define the conversion in terms of ethylene oxide. Note that the `PFR` reaction volume variable (m.fs.R101.volume) does not need to be defined here since it is internally defined by the `PFR` model. We'll estimate 50% conversion for our initial flowsheet:" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:21:57 [INFO] idaes.init.fs.R101: Initialization Complete: optimal - Optimal Solution Found\n" - ] + "cell_type": "code", + "execution_count": 16, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "m.fs.R101.conversion = Var(\n", + " bounds=(0, 1), initialize=0.80, units=pyunits.dimensionless\n", + ") # fraction\n", + "\n", + "m.fs.R101.conv_constraint = Constraint(\n", + " expr=m.fs.R101.conversion\n", + " * m.fs.R101.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_oxide\"]\n", + " == (\n", + " m.fs.R101.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_oxide\"]\n", + " - m.fs.R101.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_oxide\"]\n", + " )\n", + ")\n", + "\n", + "for x in m.fs.R101.control_volume.length_domain:\n", + " if x == 0:\n", + " continue\n", + " m.fs.R101.control_volume.properties[0, x].temperature.fix(\n", + " 328.15 * pyunits.K\n", + " ) # equal inlet reactor temperature\n", + "\n", + "m.fs.R101.conversion.fix(0.5)\n", + "\n", + "m.fs.R101.length.fix(1 * pyunits.m)" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:21:57 [INFO] idaes.init.fs.PROD.properties: Starting initialization\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As we did not place a specification on reactor duty, the solver may try positive values to increase the reaction temperature and rate. To prevent the optimization from diverging, we need to set an upper bound restricting heat flow to cooling only:" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:21:57 [INFO] idaes.init.fs.PROD.properties: Property initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.R101.heat_duty.setub(\n", + " 0 * pyunits.J / pyunits.m / pyunits.s\n", + ") # heat duty is only used for cooling" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:21:57 [INFO] idaes.init.fs.PROD.properties: Property package initialization: optimal - Optimal Solution Found.\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For initialization, we solve a square problem (degrees of freedom = 0). Let's check the degrees of freedom below:" + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:21:57 [INFO] idaes.init.fs.PROD: Initialization Complete.\n" - ] - } - ], - "source": [ - "# Initialize and solve each unit operation\n", - "m.fs.OXIDE.initialize()\n", - "propagate_state(arc=m.fs.s01)\n", - "\n", - "m.fs.ACID.initialize()\n", - "propagate_state(arc=m.fs.s01)\n", - "\n", - "m.fs.M101.initialize()\n", - "propagate_state(arc=m.fs.s03)\n", - "\n", - "m.fs.H101.initialize()\n", - "propagate_state(arc=m.fs.s04)\n", - "\n", - "m.fs.R101.initialize()\n", - "propagate_state(arc=m.fs.s05)\n", - "\n", - "m.fs.PROD.initialize()\n", - "\n", - "# set solver\n", - "solver = get_solver()" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": { - "scrolled": true - }, - "outputs": [ + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "print(degrees_of_freedom(m))" + ] + }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", - "tol=1e-06\n", - "max_iter=200\n", - "\n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 1923\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 1323\n", - "\n", - "Total number of variables............................: 608\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 257\n", - " variables with only upper bounds: 20\n", - "Total number of equality constraints.................: 608\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 1.30e+06 1.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 1.67e+07 5.52e+03 -1.0 1.17e+08 - 2.85e-01 9.90e-01f 1\n", - " 2 0.0000000e+00 2.61e+05 6.25e+03 -1.0 1.17e+06 - 8.25e-01 9.90e-01h 1\n", - " 3 0.0000000e+00 2.59e+03 3.50e+01 -1.0 1.17e+04 - 9.90e-01 9.90e-01h 1\n", - " 4 0.0000000e+00 1.97e+01 3.22e+03 -1.0 1.15e+02 - 9.90e-01 9.92e-01h 1\n", - " 5 0.0000000e+00 3.19e-07 4.81e+03 -1.0 8.77e-01 - 9.91e-01 1.00e+00h 1\n", - "Cannot recompute multipliers for feasibility problem. Error in eq_mult_calculator\n", - "\n", - "Number of Iterations....: 5\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 1.6686898115291998e+06 1.6686898115291998e+06\n", - "Constraint violation....: 3.1874515116214752e-07 3.1874515116214752e-07\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 3.1874515116214752e-07 1.6686898115291998e+06\n", - "\n", - "\n", - "Number of objective function evaluations = 6\n", - "Number of objective gradient evaluations = 6\n", - "Number of equality constraint evaluations = 6\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 6\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 5\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.003\n", - "Total CPU secs in NLP function evaluations = 0.003\n", - "\n", - "EXIT: Optimal Solution Found.\n" - ] - } - ], - "source": [ - "# Solve the model\n", - "results = solver.solve(m, tee=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Analyze the Results of the Square Problem\n", - "\n", - "\n", - "What is the total operating cost? " - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, we need to initialize the each unit operation in sequence to solve the flowsheet. As in best practice, unit operations are initialized or solved, and outlet properties are propagated to connected inlet streams via arc definitions as follows:" + ] + }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "operating cost = $2.082 million per year\n" - ] - } - ], - "source": [ - "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For this operating cost, what conversion did we achieve of ethylene oxide to ethylene glycol? " - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "# Initialize and solve each unit operation\n", + "m.fs.OXIDE.initialize()\n", + "propagate_state(arc=m.fs.s01)\n", + "\n", + "m.fs.ACID.initialize()\n", + "propagate_state(arc=m.fs.s01)\n", + "\n", + "m.fs.M101.initialize()\n", + "propagate_state(arc=m.fs.s03)\n", + "\n", + "m.fs.H101.initialize()\n", + "propagate_state(arc=m.fs.s04)\n", + "\n", + "m.fs.R101.initialize()\n", + "propagate_state(arc=m.fs.s05)\n", + "\n", + "m.fs.PROD.initialize()\n", + "\n", + "# set solver\n", + "solver = get_solver()" + ] + }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "====================================================================================\n", - "Unit : fs.R101 Time: 0.0\n", - "------------------------------------------------------------------------------------\n", - " Unit Performance\n", - "\n", - " Variables: \n", - "\n", - " Key : Value : Units : Fixed : Bounds\n", - " Area : 1.1490 : meter ** 2 : False : (None, None)\n", - "\n", - "------------------------------------------------------------------------------------\n", - " Stream Table\n", - " Units Inlet Outlet \n", - " Molar Flowrate ('Liq', 'ethylene_oxide') mole / second 58.000 29.000\n", - " Molar Flowrate ('Liq', 'water') mole / second 239.60 210.60\n", - " Molar Flowrate ('Liq', 'sulfuric_acid') mole / second 0.33401 0.33401\n", - " Molar Flowrate ('Liq', 'ethylene_glycol') mole / second 2.0000e-05 29.000\n", - " Temperature kelvin 328.15 328.15\n", - " Pressure pascal 1.0000e+05 1.0000e+05\n", - "====================================================================================\n", - "\n", - "Conversion achieved = 50.0%\n", - "\n", - "Total heat duty required = -3.469 MJ\n", - "\n", - "Tube area required = 1.149 m^2\n", - "\n", - "Tube length required = 1.000 m\n", - "\n", - "Tube volume required = 1.149 m^3\n" - ] - } - ], - "source": [ - "m.fs.R101.report()\n", - "\n", - "print()\n", - "print(f\"Conversion achieved = {value(m.fs.R101.conversion):.1%}\")\n", - "print()\n", - "print(\n", - " f\"Total heat duty required = \"\n", - " f\"\"\"{(value(m.fs.R101.length) / value(m.fs.R101.config.finite_elements) * \n", - " (value(sum(m.fs.R101.heat_duty[0, k] for k in m.fs.R101.control_volume.length_domain if 0.0 <= k < 1.0))\n", - " + (value(m.fs.R101.heat_duty[0, m.fs.R101.control_volume.length_domain.at(1)])\n", - " + value(m.fs.R101.heat_duty[0, m.fs.R101.control_volume.length_domain.at(-1)]))/2))/1e6:0.3f}\"\"\"\n", - " f\" MJ\"\n", - ")\n", - "print()\n", - "print(f\"Tube area required = {value(m.fs.R101.area):0.3f} m^2\")\n", - "print()\n", - "print(f\"Tube length required = {value(m.fs.R101.length):0.3f} m\")\n", - "print()\n", - "print(f\"Tube volume required = {value(m.fs.R101.volume):0.3f} m^3\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Optimizing Ethylene Glycol Production\n", - "\n", - "Now that the flowsheet has been squared and solved, we can run a small optimization problem to minimize our production costs. Suppose we require at least 200 million pounds/year of ethylene glycol produced and 90% conversion of ethylene oxide, allowing for variable reactor volume (considering operating/non-capital costs only) and reactor temperature (heater outlet)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us declare our objective function for this problem. " - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.objective = Objective(expr=m.fs.operating_cost)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now, we need to add the design constraints and unfix the decision variables as we had solved a square problem (degrees of freedom = 0) until now, as well as set bounds for the design variables:" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.eg_prod_con = Constraint(\n", - " expr=m.fs.eg_prod >= 200 * pyunits.Mlb / pyunits.yr\n", - ") # MM lb/year\n", - "m.fs.R101.conversion.fix(0.90)\n", - "\n", - "m.fs.R101.volume.setlb(0 * pyunits.m**3)\n", - "m.fs.R101.volume.setub(pyunits.convert(5000 * pyunits.gal, to_units=pyunits.m**3))\n", - "\n", - "m.fs.R101.length.unfix()\n", - "m.fs.R101.length.setlb(0 * pyunits.m)\n", - "m.fs.R101.length.setub(5 * pyunits.m)\n", - "\n", - "m.fs.H101.outlet.temperature.unfix()\n", - "m.fs.H101.outlet.temperature[0].setlb(328.15 * pyunits.K)\n", - "m.fs.H101.outlet.temperature[0].setub(\n", - " 470.45 * pyunits.K\n", - ") # highest component boiling point (ethylene glycol)\n", - "\n", - "for x in m.fs.R101.control_volume.length_domain:\n", - " if x == 0:\n", - " continue\n", - " m.fs.R101.control_volume.properties[\n", - " 0, x\n", - " ].temperature.unfix() # allow for temperature change in each finite element" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "We have now defined the optimization problem and we are now ready to solve this problem. \n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": { - "scrolled": true - }, - "outputs": [ + "cell_type": "code", + "execution_count": 21, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "# Solve the model\n", + "results = solver.solve(m, tee=True)" + ] + }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", - "tol=1e-06\n", - "max_iter=200\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Analyze the Results of the Square Problem\n", + "\n", + "\n", + "What is the total operating cost? " + ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 2067\n", - "Number of nonzeros in inequality constraint Jacobian.: 1\n", - "Number of nonzeros in Lagrangian Hessian.............: 1886\n", - "\n", - "Total number of variables............................: 631\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 280\n", - " variables with only upper bounds: 21\n", - "Total number of equality constraints.................: 608\n", - "Total number of inequality constraints...............: 1\n", - " inequality constraints with only lower bounds: 1\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 2.0817113e+06 3.66e+06 1.00e+02 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 3.7272642e+06 5.24e+05 9.25e+01 -1.0 2.16e+06 - 7.82e-02 9.90e-01h 1\n", - " 2 3.7439283e+06 5.50e+03 4.53e+02 -1.0 2.14e+04 - 7.22e-01 9.91e-01h 1\n", - " 3 3.7441018e+06 2.31e-01 7.45e+03 -1.0 3.16e+02 - 9.25e-01 1.00e+00h 1\n", - " 4 3.7445196e+06 7.21e-02 1.59e+04 -1.0 3.84e+02 - 9.90e-01 1.00e+00f 1\n", - " 5 3.7434412e+06 6.03e-01 2.88e+02 -1.0 3.91e+04 - 9.82e-01 1.00e+00F 1\n", - " 6 3.4569523e+06 1.90e+05 1.52e+02 -1.0 3.75e+06 - 4.73e-01 1.00e+00F 1\n", - " 7 1.3257122e+06 6.54e+06 1.34e+02 -1.0 7.17e+07 - 1.17e-01 4.66e-01F 1\n", - " 8 5.4503925e+05 4.55e+06 4.94e+01 -1.0 4.27e+07 - 6.32e-01 3.47e-01f 1\n", - " 9 2.2925409e+05 1.16e+06 2.53e+01 -1.0 1.78e+07 - 8.45e-01 6.02e-01h 1\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 10 2.1904785e+05 1.55e+06 3.36e+01 -1.0 1.16e+07 - 1.00e+00 1.76e-01h 1\n", - " 11 2.4068883e+05 7.81e+05 4.18e+01 -1.0 4.64e+06 - 5.75e-01 5.16e-01h 1\n", - " 12 3.6492667e+05 3.58e+03 3.24e+01 -1.0 2.13e+05 - 5.89e-01 1.00e+00h 1\n", - " 13 3.3687811e+05 1.24e+03 5.19e+05 -1.7 8.40e+05 - 1.00e+00 6.11e-01h 1\n", - " 14 3.2827810e+05 6.28e+02 3.94e-02 -1.7 1.36e+05 - 1.00e+00 1.00e+00h 1\n", - " 15 3.2852907e+05 1.59e+00 1.32e-03 -1.7 5.68e+03 - 1.00e+00 1.00e+00h 1\n", - " 16 3.1973165e+05 1.33e+01 5.15e+04 -3.8 1.94e+05 - 9.86e-01 8.31e-01f 1\n", - " 17 3.1849743e+05 2.37e-01 1.46e-03 -3.8 2.16e+04 - 1.00e+00 1.00e+00h 1\n", - " 18 3.1850187e+05 5.49e-03 1.29e-07 -3.8 1.93e+02 - 1.00e+00 1.00e+00h 1\n", - " 19 3.1843083e+05 8.45e-04 3.52e-06 -5.7 1.29e+03 - 1.00e+00 1.00e+00f 1\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 20 3.1843086e+05 4.64e-07 2.07e-11 -5.7 1.29e+00 - 1.00e+00 1.00e+00h 1\n", - " 21 3.1842998e+05 3.55e-07 5.40e-10 -8.6 1.59e+01 - 1.00e+00 1.00e+00h 1\n", - "\n", - "Number of Iterations....: 21\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 1.5329173454170544e+01 3.1842997505757213e+05\n", - "Dual infeasibility......: 5.3983226027300468e-10 1.1213831827784419e-05\n", - "Constraint violation....: 3.5460107028484344e-07 3.5460107028484344e-07\n", - "Complementarity.........: 2.5137892688647162e-09 5.2218461522255445e-05\n", - "Overall NLP error.......: 3.5460107028484344e-07 5.2218461522255445e-05\n", - "\n", - "\n", - "Number of objective function evaluations = 26\n", - "Number of objective gradient evaluations = 22\n", - "Number of equality constraint evaluations = 26\n", - "Number of inequality constraint evaluations = 26\n", - "Number of equality constraint Jacobian evaluations = 22\n", - "Number of inequality constraint Jacobian evaluations = 22\n", - "Number of Lagrangian Hessian evaluations = 21\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.028\n", - "Total CPU secs in NLP function evaluations = 0.005\n", - "\n", - "EXIT: Optimal Solution Found.\n" - ] - } - ], - "source": [ - "results = solver.solve(m, tee=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [ + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.6f} million per year\")" + ] + }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "operating cost = $0.318 million per year\n", - "\n", - "Heater results\n", - "\n", - "====================================================================================\n", - "Unit : fs.H101 Time: 0.0\n", - "------------------------------------------------------------------------------------\n", - " Unit Performance\n", - "\n", - " Variables: \n", - "\n", - " Key : Value : Units : Fixed : Bounds\n", - " Heat Duty : 699.26 : watt : False : (None, None)\n", - "\n", - "------------------------------------------------------------------------------------\n", - " Stream Table\n", - " Units Inlet Outlet \n", - " Molar Flowrate ('Liq', 'ethylene_oxide') mole / second 58.000 58.000\n", - " Molar Flowrate ('Liq', 'water') mole / second 239.60 239.60\n", - " Molar Flowrate ('Liq', 'sulfuric_acid') mole / second 0.33401 0.33401\n", - " Molar Flowrate ('Liq', 'ethylene_glycol') mole / second 2.0000e-05 2.0000e-05\n", - " Temperature kelvin 298.15 328.15\n", - " Pressure pascal 1.0000e+05 1.0000e+05\n", - "====================================================================================\n", - "\n", - "PFR reactor results\n", - "\n", - "====================================================================================\n", - "Unit : fs.R101 Time: 0.0\n", - "------------------------------------------------------------------------------------\n", - " Unit Performance\n", - "\n", - " Variables: \n", - "\n", - " Key : Value : Units : Fixed : Bounds\n", - " Area : 2.0871 : meter ** 2 : False : (None, None)\n", - "\n", - "------------------------------------------------------------------------------------\n", - " Stream Table\n", - " Units Inlet Outlet \n", - " Molar Flowrate ('Liq', 'ethylene_oxide') mole / second 58.000 5.8000\n", - " Molar Flowrate ('Liq', 'water') mole / second 239.60 187.40\n", - " Molar Flowrate ('Liq', 'sulfuric_acid') mole / second 0.33401 0.33401\n", - " Molar Flowrate ('Liq', 'ethylene_glycol') mole / second 2.0000e-05 52.200\n", - " Temperature kelvin 328.15 273.15\n", - " Pressure pascal 1.0000e+05 1.0000e+05\n", - "====================================================================================\n" - ] - } - ], - "source": [ - "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")\n", - "\n", - "print()\n", - "print(\"Heater results\")\n", - "\n", - "m.fs.H101.report()\n", - "\n", - "print()\n", - "print(\"PFR reactor results\")\n", - "\n", - "m.fs.R101.report()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Display optimal values for the decision variables and design variables:" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For this operating cost, what conversion did we achieve of ethylene oxide to ethylene glycol? " + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.R101.report()\n", + "\n", + "print()\n", + "print(f\"Conversion achieved = {value(m.fs.R101.conversion):.1%}\")\n", + "print()\n", + "print(\n", + " f\"Total heat duty required = \"\n", + " f\"\"\"{(value(m.fs.R101.length) / value(m.fs.R101.config.finite_elements) * \n", + " (value(sum(m.fs.R101.heat_duty[0, k] for k in m.fs.R101.control_volume.length_domain if 0.0 <= k < 1.0))\n", + " + (value(m.fs.R101.heat_duty[0, m.fs.R101.control_volume.length_domain.at(1)])\n", + " + value(m.fs.R101.heat_duty[0, m.fs.R101.control_volume.length_domain.at(-1)]))/2))/1e6:0.6f}\"\"\"\n", + " f\" MJ\"\n", + ")\n", + "print()\n", + "print(f\"Tube area required = {value(m.fs.R101.area):0.6f} m^2\")\n", + "print()\n", + "print(f\"Tube length required = {value(m.fs.R101.length):0.6f} m\")\n", + "print()\n", + "print(f\"Tube volume required = {value(m.fs.R101.volume):0.6f} m^3\")" + ] + }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "Optimal Values\n", - "\n", - "H101 outlet temperature = 328.150 K\n", - "\n", - "Total heat duty required = -3.440 MJ\n", - "\n", - "Tube area required = 2.087 m^2\n", - "\n", - "Tube length required = 4.979 m\n", - "\n", - "Assuming a 20% design factor for reactor volume,total CSTR volume required = 12.469 m^3 = 3294.093 gal\n", - "\n", - "Ethylene glycol produced = 225.415 MM lb/year\n", - "\n", - "Conversion achieved = 90.0%\n" - ] + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Optimizing Ethylene Glycol Production\n", + "\n", + "Now that the flowsheet has been squared and solved, we can run a small optimization problem to minimize our production costs. Suppose we require at least 200 million pounds/year of ethylene glycol produced and 90% conversion of ethylene oxide, allowing for variable reactor volume (considering operating/non-capital costs only) and reactor temperature (heater outlet)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us declare our objective function for this problem. " + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.objective = Objective(expr=m.fs.operating_cost)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, we need to add the design constraints and unfix the decision variables as we had solved a square problem (degrees of freedom = 0) until now, as well as set bounds for the design variables:" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.eg_prod_con = Constraint(\n", + " expr=m.fs.eg_prod >= 200 * pyunits.Mlb / pyunits.yr\n", + ") # MM lb/year\n", + "m.fs.R101.conversion.fix(0.90)\n", + "\n", + "m.fs.R101.volume.setlb(0 * pyunits.m**3)\n", + "m.fs.R101.volume.setub(pyunits.convert(5000 * pyunits.gal, to_units=pyunits.m**3))\n", + "\n", + "m.fs.R101.length.unfix()\n", + "m.fs.R101.length.setlb(0 * pyunits.m)\n", + "m.fs.R101.length.setub(5 * pyunits.m)\n", + "\n", + "m.fs.H101.outlet.temperature.unfix()\n", + "m.fs.H101.outlet.temperature[0].setlb(328.15 * pyunits.K)\n", + "m.fs.H101.outlet.temperature[0].setub(\n", + " 470.45 * pyunits.K\n", + ") # highest component boiling point (ethylene glycol)\n", + "\n", + "for x in m.fs.R101.control_volume.length_domain:\n", + " if x == 0:\n", + " continue\n", + " m.fs.R101.control_volume.properties[\n", + " 0, x\n", + " ].temperature.unfix() # allow for temperature change in each finite element" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "We have now defined the optimization problem and we are now ready to solve this problem. \n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "results = solver.solve(m, tee=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [], + "source": [ + "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.6f} million per year\")\n", + "\n", + "print()\n", + "print(\"Heater results\")\n", + "\n", + "m.fs.H101.report()\n", + "\n", + "print()\n", + "print(\"PFR reactor results\")\n", + "\n", + "m.fs.R101.report()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Display optimal values for the decision variables and design variables:" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [], + "source": [ + "print(\"Optimal Values\")\n", + "print()\n", + "\n", + "print(f\"H101 outlet temperature = {value(m.fs.H101.outlet.temperature[0]):0.6f} K\")\n", + "\n", + "print()\n", + "print(\n", + " \"Total heat duty required = \",\n", + " f\"\"\"{(value(m.fs.R101.length) / value(m.fs.R101.config.finite_elements) * (value(sum(m.fs.R101.heat_duty[0, k] for k in m.fs.R101.control_volume.length_domain if 0.0 <= k < 1.0))\n", + " + (value(m.fs.R101.heat_duty[0, m.fs.R101.control_volume.length_domain.at(1)])\n", + " + value(m.fs.R101.heat_duty[0, m.fs.R101.control_volume.length_domain.at(-1)]))/2))/1e6:0.6f}\"\"\"\n", + " f\" MJ\",\n", + ")\n", + "print()\n", + "print(f\"Tube area required = {value(m.fs.R101.area):0.6f} m^2\")\n", + "\n", + "print()\n", + "print(f\"Tube length required = {value(m.fs.R101.length):0.6f} m\")\n", + "\n", + "print()\n", + "print(\n", + " f\"Assuming a 20% design factor for reactor volume,\"\n", + " f\"total CSTR volume required = {value(1.2*m.fs.R101.volume):0.6f}\"\n", + " f\" m^3 = {value(pyunits.convert(1.2*m.fs.R101.volume, to_units=pyunits.gal)):0.6f} gal\"\n", + ")\n", + "\n", + "print()\n", + "print(f\"Ethylene glycol produced = {value(m.fs.eg_prod):0.6f} MM lb/year\")\n", + "\n", + "print()\n", + "print(f\"Conversion achieved = {value(m.fs.R101.conversion):.1%}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "celltoolbar": "Tags", + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.18" } - ], - "source": [ - "print(\"Optimal Values\")\n", - "print()\n", - "\n", - "print(f\"H101 outlet temperature = {value(m.fs.H101.outlet.temperature[0]):0.3f} K\")\n", - "\n", - "print()\n", - "print(\n", - " \"Total heat duty required = \",\n", - " f\"\"\"{(value(m.fs.R101.length) / value(m.fs.R101.config.finite_elements) * (value(sum(m.fs.R101.heat_duty[0, k] for k in m.fs.R101.control_volume.length_domain if 0.0 <= k < 1.0))\n", - " + (value(m.fs.R101.heat_duty[0, m.fs.R101.control_volume.length_domain.at(1)])\n", - " + value(m.fs.R101.heat_duty[0, m.fs.R101.control_volume.length_domain.at(-1)]))/2))/1e6:0.3f}\"\"\"\n", - " f\" MJ\",\n", - ")\n", - "print()\n", - "print(f\"Tube area required = {value(m.fs.R101.area):0.3f} m^2\")\n", - "\n", - "print()\n", - "print(f\"Tube length required = {value(m.fs.R101.length):0.3f} m\")\n", - "\n", - "print()\n", - "print(\n", - " f\"Assuming a 20% design factor for reactor volume,\"\n", - " f\"total CSTR volume required = {value(1.2*m.fs.R101.volume):0.3f}\"\n", - " f\" m^3 = {value(pyunits.convert(1.2*m.fs.R101.volume, to_units=pyunits.gal)):0.3f} gal\"\n", - ")\n", - "\n", - "print()\n", - "print(f\"Ethylene glycol produced = {value(m.fs.eg_prod):0.3f} MM lb/year\")\n", - "\n", - "print()\n", - "print(f\"Conversion achieved = {value(m.fs.R101.conversion):.1%}\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "celltoolbar": "Tags", - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.5" - } - }, - "nbformat": 4, - "nbformat_minor": 3 -} + "nbformat": 4, + "nbformat_minor": 3 +} \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/unit_models/reactors/plug_flow_reactor_test.ipynb b/idaes_examples/notebooks/docs/unit_models/reactors/plug_flow_reactor_test.ipynb index dcfe84f8..76d32312 100644 --- a/idaes_examples/notebooks/docs/unit_models/reactors/plug_flow_reactor_test.ipynb +++ b/idaes_examples/notebooks/docs/unit_models/reactors/plug_flow_reactor_test.ipynb @@ -53,7 +53,7 @@ "\n", "Chemical reaction:\n", "\n", - "**C2H4O + H2O + H2SO4 → C2H6O2 + H2SO4**\n", + "**C2H4O + H2O + H2SO4 \u2192 C2H6O2 + H2SO4**\n", "\n", "Property Packages:\n", "\n", @@ -626,7 +626,7 @@ "metadata": {}, "outputs": [], "source": [ - "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")" + "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.6f} million per year\")" ] }, { @@ -641,7 +641,7 @@ "source": [ "import pytest\n", "\n", - "assert value(m.fs.operating_cost) / 1e6 == pytest.approx(2.082, abs=1e-3)" + "assert value(m.fs.operating_cost) / 1e6 == pytest.approx(6.589, rel=1e-5)" ] }, { @@ -667,15 +667,15 @@ " f\"\"\"{(value(m.fs.R101.length) / value(m.fs.R101.config.finite_elements) * \n", " (value(sum(m.fs.R101.heat_duty[0, k] for k in m.fs.R101.control_volume.length_domain if 0.0 <= k < 1.0))\n", " + (value(m.fs.R101.heat_duty[0, m.fs.R101.control_volume.length_domain.at(1)])\n", - " + value(m.fs.R101.heat_duty[0, m.fs.R101.control_volume.length_domain.at(-1)]))/2))/1e6:0.3f}\"\"\"\n", + " + value(m.fs.R101.heat_duty[0, m.fs.R101.control_volume.length_domain.at(-1)]))/2))/1e6:0.6f}\"\"\"\n", " f\" MJ\"\n", ")\n", "print()\n", - "print(f\"Tube area required = {value(m.fs.R101.area):0.3f} m^2\")\n", + "print(f\"Tube area required = {value(m.fs.R101.area):0.6f} m^2\")\n", "print()\n", - "print(f\"Tube length required = {value(m.fs.R101.length):0.3f} m\")\n", + "print(f\"Tube length required = {value(m.fs.R101.length):0.6f} m\")\n", "print()\n", - "print(f\"Tube volume required = {value(m.fs.R101.volume):0.3f} m^3\")" + "print(f\"Tube volume required = {value(m.fs.R101.volume):0.6f} m^3\")" ] }, { @@ -688,8 +688,8 @@ }, "outputs": [], "source": [ - "assert value(m.fs.R101.conversion) == pytest.approx(0.5000, abs=1e-3)\n", - "assert value(m.fs.R101.area) == pytest.approx(1.1490, abs=1e-3)\n", + "assert value(m.fs.R101.conversion) == pytest.approx(0.5000, rel=1e-5)\n", + "assert value(m.fs.R101.area) == pytest.approx(0.987071, rel=1e-5)\n", "assert (\n", " value(m.fs.R101.length)\n", " / value(m.fs.R101.config.finite_elements)\n", @@ -705,8 +705,8 @@ " + value(m.fs.R101.heat_duty[0, m.fs.R101.control_volume.length_domain.at(-1)])\n", " )\n", " / 2\n", - ") / 1e6 == pytest.approx(-4.734, abs=1e-3)\n", - "assert value(m.fs.R101.outlet.temperature[0]) / 1e2 == pytest.approx(3.2815, abs=1e-3)" + ") / 1e6 == pytest.approx(-4.881815, rel=1e-5)\n", + "assert value(m.fs.R101.outlet.temperature[0]) / 1e2 == pytest.approx(3.2815, rel=1e-5)" ] }, { @@ -829,7 +829,7 @@ "metadata": {}, "outputs": [], "source": [ - "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")\n", + "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.6f} million per year\")\n", "\n", "print()\n", "print(\"Heater results\")\n", @@ -852,8 +852,8 @@ }, "outputs": [], "source": [ - "assert value(m.fs.operating_cost) / 1e6 == pytest.approx(0.3184, abs=1e-3)\n", - "assert value(m.fs.R101.area) == pytest.approx(2.0870, abs=1e-3)" + "assert value(m.fs.operating_cost) / 1e6 == pytest.approx(4.421530, rel=1e-5)\n", + "assert value(m.fs.R101.area) == pytest.approx(2.9300, rel=1e-5)" ] }, { @@ -872,31 +872,31 @@ "print(\"Optimal Values\")\n", "print()\n", "\n", - "print(f\"H101 outlet temperature = {value(m.fs.H101.outlet.temperature[0]):0.3f} K\")\n", + "print(f\"H101 outlet temperature = {value(m.fs.H101.outlet.temperature[0]):0.6f} K\")\n", "\n", "print()\n", "print(\n", " \"Total heat duty required = \",\n", " f\"\"\"{(value(m.fs.R101.length) / value(m.fs.R101.config.finite_elements) * (value(sum(m.fs.R101.heat_duty[0, k] for k in m.fs.R101.control_volume.length_domain if 0.0 <= k < 1.0))\n", " + (value(m.fs.R101.heat_duty[0, m.fs.R101.control_volume.length_domain.at(1)])\n", - " + value(m.fs.R101.heat_duty[0, m.fs.R101.control_volume.length_domain.at(-1)]))/2))/1e6:0.3f}\"\"\"\n", + " + value(m.fs.R101.heat_duty[0, m.fs.R101.control_volume.length_domain.at(-1)]))/2))/1e6:0.6f}\"\"\"\n", " f\" MJ\",\n", ")\n", "print()\n", - "print(f\"Tube area required = {value(m.fs.R101.area):0.3f} m^2\")\n", + "print(f\"Tube area required = {value(m.fs.R101.area):0.6f} m^2\")\n", "\n", "print()\n", - "print(f\"Tube length required = {value(m.fs.R101.length):0.3f} m\")\n", + "print(f\"Tube length required = {value(m.fs.R101.length):0.6f} m\")\n", "\n", "print()\n", "print(\n", " f\"Assuming a 20% design factor for reactor volume,\"\n", - " f\"total CSTR volume required = {value(1.2*m.fs.R101.volume):0.3f}\"\n", - " f\" m^3 = {value(pyunits.convert(1.2*m.fs.R101.volume, to_units=pyunits.gal)):0.3f} gal\"\n", + " f\"total CSTR volume required = {value(1.2*m.fs.R101.volume):0.6f}\"\n", + " f\" m^3 = {value(pyunits.convert(1.2*m.fs.R101.volume, to_units=pyunits.gal)):0.6f} gal\"\n", ")\n", "\n", "print()\n", - "print(f\"Ethylene glycol produced = {value(m.fs.eg_prod):0.3f} MM lb/year\")\n", + "print(f\"Ethylene glycol produced = {value(m.fs.eg_prod):0.6f} MM lb/year\")\n", "\n", "print()\n", "print(f\"Conversion achieved = {value(m.fs.R101.conversion):.1%}\")" @@ -912,7 +912,7 @@ }, "outputs": [], "source": [ - "assert value(m.fs.H101.outlet.temperature[0]) / 100 == pytest.approx(3.2815, abs=1e-3)\n", + "assert value(m.fs.H101.outlet.temperature[0]) / 100 == pytest.approx(3.2815, rel=1e-5)\n", "assert (\n", " value(m.fs.R101.length)\n", " / value(m.fs.R101.config.finite_elements)\n", @@ -932,12 +932,12 @@ " )\n", " / 2\n", " )\n", - ") / 1e6 == pytest.approx(-3.440, abs=1e-3)\n", - "assert value(m.fs.R101.area) == pytest.approx(2.0870, abs=1e-3)\n", - "assert value(m.fs.R101.control_volume.length) == pytest.approx(4.9788, abs=1e-3)\n", - "assert value(m.fs.R101.volume * 1.2) == pytest.approx(12.469, abs=1e-3)\n", - "assert value(m.fs.eg_prod) == pytest.approx(225.415, abs=1e-3)\n", - "assert value(m.fs.R101.conversion) * 100 == pytest.approx(90.000, abs=1e-3)" + ") / 1e6 == pytest.approx(-3.789565, rel=1e-5)\n", + "assert value(m.fs.R101.area) == pytest.approx(2.930001, rel=1e-5)\n", + "assert value(m.fs.R101.control_volume.length) == pytest.approx(4.982470, rel=1e-5)\n", + "assert value(m.fs.R101.volume * 1.2) == pytest.approx(17.518369, rel=1e-5)\n", + "assert value(m.fs.eg_prod) == pytest.approx(225.415471, rel=1e-5)\n", + "assert value(m.fs.R101.conversion) * 100 == pytest.approx(90.000, rel=1e-5)" ] }, { @@ -972,9 +972,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.16" + "version": "3.9.18" } }, "nbformat": 4, "nbformat_minor": 3 -} +} \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/unit_models/reactors/plug_flow_reactor_usr.ipynb b/idaes_examples/notebooks/docs/unit_models/reactors/plug_flow_reactor_usr.ipynb index b0473332..30984465 100644 --- a/idaes_examples/notebooks/docs/unit_models/reactors/plug_flow_reactor_usr.ipynb +++ b/idaes_examples/notebooks/docs/unit_models/reactors/plug_flow_reactor_usr.ipynb @@ -53,7 +53,7 @@ "\n", "Chemical reaction:\n", "\n", - "**C2H4O + H2O + H2SO4 → C2H6O2 + H2SO4**\n", + "**C2H4O + H2O + H2SO4 \u2192 C2H6O2 + H2SO4**\n", "\n", "Property Packages:\n", "\n", @@ -582,7 +582,7 @@ "metadata": {}, "outputs": [], "source": [ - "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")" + "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.6f} million per year\")" ] }, { @@ -608,15 +608,15 @@ " f\"\"\"{(value(m.fs.R101.length) / value(m.fs.R101.config.finite_elements) * \n", " (value(sum(m.fs.R101.heat_duty[0, k] for k in m.fs.R101.control_volume.length_domain if 0.0 <= k < 1.0))\n", " + (value(m.fs.R101.heat_duty[0, m.fs.R101.control_volume.length_domain.at(1)])\n", - " + value(m.fs.R101.heat_duty[0, m.fs.R101.control_volume.length_domain.at(-1)]))/2))/1e6:0.3f}\"\"\"\n", + " + value(m.fs.R101.heat_duty[0, m.fs.R101.control_volume.length_domain.at(-1)]))/2))/1e6:0.6f}\"\"\"\n", " f\" MJ\"\n", ")\n", "print()\n", - "print(f\"Tube area required = {value(m.fs.R101.area):0.3f} m^2\")\n", + "print(f\"Tube area required = {value(m.fs.R101.area):0.6f} m^2\")\n", "print()\n", - "print(f\"Tube length required = {value(m.fs.R101.length):0.3f} m\")\n", + "print(f\"Tube length required = {value(m.fs.R101.length):0.6f} m\")\n", "print()\n", - "print(f\"Tube volume required = {value(m.fs.R101.volume):0.3f} m^3\")" + "print(f\"Tube volume required = {value(m.fs.R101.volume):0.6f} m^3\")" ] }, { @@ -710,7 +710,7 @@ "metadata": {}, "outputs": [], "source": [ - "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")\n", + "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.6f} million per year\")\n", "\n", "print()\n", "print(\"Heater results\")\n", @@ -739,31 +739,31 @@ "print(\"Optimal Values\")\n", "print()\n", "\n", - "print(f\"H101 outlet temperature = {value(m.fs.H101.outlet.temperature[0]):0.3f} K\")\n", + "print(f\"H101 outlet temperature = {value(m.fs.H101.outlet.temperature[0]):0.6f} K\")\n", "\n", "print()\n", "print(\n", " \"Total heat duty required = \",\n", " f\"\"\"{(value(m.fs.R101.length) / value(m.fs.R101.config.finite_elements) * (value(sum(m.fs.R101.heat_duty[0, k] for k in m.fs.R101.control_volume.length_domain if 0.0 <= k < 1.0))\n", " + (value(m.fs.R101.heat_duty[0, m.fs.R101.control_volume.length_domain.at(1)])\n", - " + value(m.fs.R101.heat_duty[0, m.fs.R101.control_volume.length_domain.at(-1)]))/2))/1e6:0.3f}\"\"\"\n", + " + value(m.fs.R101.heat_duty[0, m.fs.R101.control_volume.length_domain.at(-1)]))/2))/1e6:0.6f}\"\"\"\n", " f\" MJ\",\n", ")\n", "print()\n", - "print(f\"Tube area required = {value(m.fs.R101.area):0.3f} m^2\")\n", + "print(f\"Tube area required = {value(m.fs.R101.area):0.6f} m^2\")\n", "\n", "print()\n", - "print(f\"Tube length required = {value(m.fs.R101.length):0.3f} m\")\n", + "print(f\"Tube length required = {value(m.fs.R101.length):0.6f} m\")\n", "\n", "print()\n", "print(\n", " f\"Assuming a 20% design factor for reactor volume,\"\n", - " f\"total CSTR volume required = {value(1.2*m.fs.R101.volume):0.3f}\"\n", - " f\" m^3 = {value(pyunits.convert(1.2*m.fs.R101.volume, to_units=pyunits.gal)):0.3f} gal\"\n", + " f\"total CSTR volume required = {value(1.2*m.fs.R101.volume):0.6f}\"\n", + " f\" m^3 = {value(pyunits.convert(1.2*m.fs.R101.volume, to_units=pyunits.gal)):0.6f} gal\"\n", ")\n", "\n", "print()\n", - "print(f\"Ethylene glycol produced = {value(m.fs.eg_prod):0.3f} MM lb/year\")\n", + "print(f\"Ethylene glycol produced = {value(m.fs.eg_prod):0.6f} MM lb/year\")\n", "\n", "print()\n", "print(f\"Conversion achieved = {value(m.fs.R101.conversion):.1%}\")" @@ -801,9 +801,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.16" + "version": "3.9.18" } }, "nbformat": 4, "nbformat_minor": 3 -} +} \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/unit_models/reactors/stoichiometric_reactor.ipynb b/idaes_examples/notebooks/docs/unit_models/reactors/stoichiometric_reactor.ipynb index c12fd541..b0ed3611 100644 --- a/idaes_examples/notebooks/docs/unit_models/reactors/stoichiometric_reactor.ipynb +++ b/idaes_examples/notebooks/docs/unit_models/reactors/stoichiometric_reactor.ipynb @@ -219,9 +219,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "scrolled": false - }, + "metadata": {}, "outputs": [], "source": [ "m.fs.R101 = StoichiometricReactor(\n", @@ -564,7 +562,7 @@ "metadata": {}, "outputs": [], "source": [ - "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")" + "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.6f} million per year\")" ] }, { @@ -579,7 +577,7 @@ "source": [ "import pytest\n", "\n", - "assert value(m.fs.operating_cost) / 1e6 == pytest.approx(3.458140, abs=1e-3)" + "assert value(m.fs.operating_cost) / 1e6 == pytest.approx(8.019605, rel=1e-5)" ] }, { @@ -611,9 +609,9 @@ }, "outputs": [], "source": [ - "assert value(m.fs.R101.conversion) == pytest.approx(0.8000, abs=1e-3)\n", - "assert value(m.fs.R101.heat_duty[0]) / 1e6 == pytest.approx(-5.6566, abs=1e-3)\n", - "assert value(m.fs.R101.outlet.temperature[0]) / 1e2 == pytest.approx(3.2815, abs=1e-3)" + "assert value(m.fs.R101.conversion) == pytest.approx(0.8000, rel=1e-5)\n", + "assert value(m.fs.R101.heat_duty[0]) / 1e6 == pytest.approx(-5.8931, rel=1e-5)\n", + "assert value(m.fs.R101.outlet.temperature[0]) / 1e2 == pytest.approx(3.2815, rel=1e-5)" ] }, { @@ -724,7 +722,7 @@ "metadata": {}, "outputs": [], "source": [ - "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")\n", + "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.6f} million per year\")\n", "\n", "print()\n", "print(\"Heater results\")\n", @@ -747,7 +745,7 @@ }, "outputs": [], "source": [ - "assert value(m.fs.operating_cost) / 1e6 == pytest.approx(3.888050, abs=1e-3)" + "assert value(m.fs.operating_cost) / 1e6 == pytest.approx(6.670729, rel=1e-5)" ] }, { @@ -766,13 +764,13 @@ "print(\"Optimal Values\")\n", "print()\n", "\n", - "print(f\"H101 outlet temperature = {value(m.fs.H101.outlet.temperature[0]):0.3f} K\")\n", + "print(f\"H101 outlet temperature = {value(m.fs.H101.outlet.temperature[0]):0.6f} K\")\n", "\n", "print()\n", - "print(f\"R101 outlet temperature = {value(m.fs.R101.outlet.temperature[0]):0.3f} K\")\n", + "print(f\"R101 outlet temperature = {value(m.fs.R101.outlet.temperature[0]):0.6f} K\")\n", "\n", "print()\n", - "print(f\"Ethylene glycol produced = {value(m.fs.eg_prod):0.3f} MM lb/year\")\n", + "print(f\"Ethylene glycol produced = {value(m.fs.eg_prod):0.6f} MM lb/year\")\n", "\n", "print()\n", "print(f\"Conversion achieved = {value(m.fs.R101.conversion):.1%}\")" @@ -788,10 +786,10 @@ }, "outputs": [], "source": [ - "assert value(m.fs.H101.outlet.temperature[0]) / 100 == pytest.approx(3.2815, abs=1e-3)\n", - "assert value(m.fs.R101.outlet.temperature[0]) / 100 == pytest.approx(4.5000, abs=1e-3)\n", - "assert value(m.fs.eg_prod) == pytest.approx(225.415, abs=1e-3)\n", - "assert value(m.fs.R101.conversion) * 100 == pytest.approx(90.0, abs=1e-3)" + "assert value(m.fs.H101.outlet.temperature[0]) / 100 == pytest.approx(3.2815, rel=1e-5)\n", + "assert value(m.fs.R101.outlet.temperature[0]) / 100 == pytest.approx(4.5000, rel=1e-5)\n", + "assert value(m.fs.eg_prod) == pytest.approx(225.415, rel=1e-5)\n", + "assert value(m.fs.R101.conversion) * 100 == pytest.approx(90.0, rel=1e-5)" ] }, { @@ -819,7 +817,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.12" + "version": "3.9.18" } }, "nbformat": 4, diff --git a/idaes_examples/notebooks/docs/unit_models/reactors/stoichiometric_reactor_doc.ipynb b/idaes_examples/notebooks/docs/unit_models/reactors/stoichiometric_reactor_doc.ipynb index d7b699c7..99443416 100644 --- a/idaes_examples/notebooks/docs/unit_models/reactors/stoichiometric_reactor_doc.ipynb +++ b/idaes_examples/notebooks/docs/unit_models/reactors/stoichiometric_reactor_doc.ipynb @@ -1,1210 +1,693 @@ { - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "tags": [ - "header", - "hide-cell" - ] - }, - "outputs": [], - "source": [ - "###############################################################################\n", - "# The Institute for the Design of Advanced Energy Systems Integrated Platform\n", - "# Framework (IDAES IP) was produced under the DOE Institute for the\n", - "# Design of Advanced Energy Systems (IDAES).\n", - "#\n", - "# Copyright (c) 2018-2023 by the software owners: The Regents of the\n", - "# University of California, through Lawrence Berkeley National Laboratory,\n", - "# National Technology & Engineering Solutions of Sandia, LLC, Carnegie Mellon\n", - "# University, West Virginia University Research Corporation, et al.\n", - "# All rights reserved. Please see the files COPYRIGHT.md and LICENSE.md\n", - "# for full copyright and license information.\n", - "###############################################################################" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "# Flowsheet Stoichiometric Reactor Simulation and Optimization of Ethylene Glycol Production\n", - "Author: Brandon Paul \n", - "Maintainer: Brandon Paul \n", - "Updated: 2023-06-01 \n", - "\n", - "## Learning Outcomes\n", - "\n", - "\n", - "- Call and implement the IDAES StochiometricReactor unit model\n", - "- Construct a steady-state flowsheet using the IDAES unit model library\n", - "- Connecting unit models in a flowsheet using Arcs\n", - "- Fomulate and solve an optimization problem\n", - " - Defining an objective function\n", - " - Setting variable bounds\n", - " - Adding additional constraints \n", - "\n", - "\n", - "## Problem Statement\n", - "\n", - "Following the previous example implementing a [Continuous Stirred Tank Reactor (CSTR) unit model](http://localhost:8888/notebooks/GitHub/examples-pse/src/Examples/UnitModels/Reactors/cstr_testing_doc.md), we can alter the flowsheet to use a stochiometric (or yield) reactor. As before, this example is adapted from Fogler, H.S., Elements of Chemical Reaction Engineering 5th ed., 2016, Prentice Hall, p. 157-160 with the following chemical reaction, property packages and flowsheet. Unlike the previous two reactors which apply performance equations to calculate reaction extent, this simplified reactor model neglects all geometric properties and allows the user to specify a yield per reaction. The state variables chosen for the property package are **molar flows of each component by phase in each stream, temperature of each stream and pressure of each stream**. The components considered are: **ethylene oxide, water, sulfuric acid and ethylene glycol** and the process occurs in liquid phase only. Therefore, every stream has 4 flow variables, 1 temperature and 1 pressure variable.\n", - "\n", - "Chemical reaction:\n", - "\n", - "**C2H4O + H2O + H2SO4 → C2H6O2 + H2SO4**\n", - "\n", - "Property Packages:\n", - "\n", - "- egprod_ideal.py\n", - "- egprod_reaction.py\n", - "\n", - "Flowsheet:\n", - "\n", - "![](egprod_flowsheet.png)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Importing Required Pyomo and IDAES components\n", - "\n", - "\n", - "To construct a flowsheet, we will need several components from the Pyomo and IDAES packages. Let us first import the following components from Pyomo:\n", - "- Constraint (to write constraints)\n", - "- Var (to declare variables)\n", - "- ConcreteModel (to create the concrete model object)\n", - "- Expression (to evaluate values as a function of variables defined in the model)\n", - "- Objective (to define an objective function for optimization)\n", - "- TransformationFactory (to apply certain transformations)\n", - "- Arc (to connect two unit models)\n", - "\n", - "For further details on these components, please refer to the pyomo documentation: https://pyomo.readthedocs.io/en/stable/\n", - "\n", - "From idaes, we will be needing the `FlowsheetBlock` and the following unit models:\n", - "- Mixer\n", - "- Heater\n", - "- StoichiometricReactor\n", - "\n", - "We will also be needing some utility tools to put together the flowsheet and calculate the degrees of freedom, tools for model expressions and calling variable values, and built-in functions to define property packages, add unit containers to objects and define our initialization scheme.\n" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "from pyomo.environ import (\n", - " Constraint,\n", - " Var,\n", - " ConcreteModel,\n", - " Expression,\n", - " Objective,\n", - " TransformationFactory,\n", - " value,\n", - " units as pyunits,\n", - ")\n", - "from pyomo.network import Arc\n", - "\n", - "from idaes.core import FlowsheetBlock\n", - "from idaes.models.properties.modular_properties.base.generic_property import (\n", - " GenericParameterBlock,\n", - ")\n", - "from idaes.models.properties.modular_properties.base.generic_reaction import (\n", - " GenericReactionParameterBlock,\n", - ")\n", - "from idaes.models.unit_models import Feed, Mixer, Heater, StoichiometricReactor, Product\n", - "\n", - "from idaes.core.solvers import get_solver\n", - "from idaes.core.util.model_statistics import degrees_of_freedom\n", - "from idaes.core.util.initialization import propagate_state" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Importing Required Thermophysical and Reaction Packages\n", - "\n", - "The final step is to import the thermophysical and reaction packages. We have created a custom thermophysical package that support ideal vapor and liquid behavior for this system, and in this case we will restrict it to ideal liquid behavior only. \n", - "\n", - "Let us import the following modules from the same directory as this Jupyter notebook:\n", - "- egprod_ideal as thermo_props\n", - "- egprod_reaction as reaction_props" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "import egprod_ideal as thermo_props\n", - "import egprod_reaction as reaction_props" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Constructing the Flowsheet\n", - "\n", - "We have now imported all the components, unit models, and property modules we need to construct a flowsheet. Let us create a ConcreteModel and add the flowsheet block. " - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "m = ConcreteModel()\n", - "m.fs = FlowsheetBlock(dynamic=False)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We now need to add the property packages to the flowsheet. Unlike the basic [Flash unit model example](http://localhost:8888/notebooks/GitHub/examples-pse/src/Tutorials/Basics/flash_unit_solution_testing_doc.md), where we only had a thermophysical property package, for this flowsheet we will also need to add a reaction property package. We will use the [Modular Property Framework](https://idaes-pse.readthedocs.io/en/stable/explanations/components/property_package/index.html#generic-property-package-framework) and [Modular Reaction Framework](https://idaes-pse.readthedocs.io/en/stable/explanations/components/property_package/index.html#generic-reaction-package-framework). The get_prop method for the natural gas property module automatically returns the correct dictionary using a component list argument. The GenericParameterBlock and GenericReactionParameterBlock methods build states blocks from passed parameter data; the reaction block unpacks using **reaction_props.config_dict to allow for optional or empty keyword arguments:" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "m.fs.thermo_params = GenericParameterBlock(**thermo_props.config_dict)\n", - "m.fs.reaction_params = GenericReactionParameterBlock(\n", - " property_package=m.fs.thermo_params, **reaction_props.config_dict\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Adding Unit Models\n", - "\n", - "Let us start adding the unit models we have imported to the flowsheet. Here, we are adding a `Mixer`, a `Heater` and a `StoichiometricReactor`. Note that all unit models need to be given a property package argument. In addition to that, there are several arguments depending on the unit model, please refer to the documentation for more details on [IDAES Unit Models](https://idaes-pse.readthedocs.io/en/stable/reference_guides/model_libraries/index.html). For example, the `Mixer` is given a `list` consisting of names to the two inlets." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "m.fs.OXIDE = Feed(property_package=m.fs.thermo_params)\n", - "m.fs.ACID = Feed(property_package=m.fs.thermo_params)\n", - "m.fs.PROD = Product(property_package=m.fs.thermo_params)\n", - "m.fs.M101 = Mixer(\n", - " property_package=m.fs.thermo_params, inlet_list=[\"reagent_feed\", \"catalyst_feed\"]\n", - ")\n", - "m.fs.H101 = Heater(\n", - " property_package=m.fs.thermo_params,\n", - " has_pressure_change=False,\n", - " has_phase_equilibrium=False,\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "scrolled": false - }, - "outputs": [], - "source": [ - "m.fs.R101 = StoichiometricReactor(\n", - " property_package=m.fs.thermo_params,\n", - " reaction_package=m.fs.reaction_params,\n", - " has_heat_of_reaction=True,\n", - " has_heat_transfer=True,\n", - " has_pressure_change=False,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Connecting Unit Models Using Arcs\n", - "\n", - "We have now added all the unit models we need to the flowsheet. However, we have not yet specified how the units are to be connected. To do this, we will be using the `Arc` which is a pyomo component that takes in two arguments: `source` and `destination`. Let us connect the outlet of the `Mixer` to the inlet of the `Heater`, and the outlet of the `Heater` to the inlet of the `StoichiometricReactor`. Additionally, we will connect the `Feed` and `Product` blocks to the flowsheet:" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.s01 = Arc(source=m.fs.OXIDE.outlet, destination=m.fs.M101.reagent_feed)\n", - "m.fs.s02 = Arc(source=m.fs.ACID.outlet, destination=m.fs.M101.catalyst_feed)\n", - "m.fs.s03 = Arc(source=m.fs.M101.outlet, destination=m.fs.H101.inlet)\n", - "m.fs.s04 = Arc(source=m.fs.H101.outlet, destination=m.fs.R101.inlet)\n", - "m.fs.s05 = Arc(source=m.fs.R101.outlet, destination=m.fs.PROD.inlet)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We have now connected the unit model block using the arcs. However, we also need to link the state variables on connected ports. Pyomo provides a convenient method `TransformationFactory` to write these equality constraints for us between two ports:" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "TransformationFactory(\"network.expand_arcs\").apply_to(m)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Adding Expressions to Compute Operating Costs\n", - "\n", - "In this section, we will add a few Expressions that allows us to evaluate the performance. `Expressions` provide a convenient way of calculating certain values that are a function of the variables defined in the model. For more details on `Expressions`, please refer to the [Pyomo Expression documentation]( https://pyomo.readthedocs.io/en/stable/pyomo_modeling_components/Expressions.html).\n", - "\n", - "For this flowsheet, we are interested in computing ethylene glycol production in millions of pounds per year, as well as the total costs due to cooling and heating utilities." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us first add an `Expression` to convert the product flow from mol/s to MM lb/year of ethylene glycol. We see that the molecular weight exists in the thermophysical property package, so we may use that value for our calculations." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.eg_prod = Expression(\n", - " expr=pyunits.convert(\n", - " m.fs.PROD.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"]\n", - " * m.fs.thermo_params.ethylene_glycol.mw, # MW defined in properties as kg/mol\n", - " to_units=pyunits.Mlb / pyunits.yr,\n", - " )\n", - ") # converting kg/s to MM lb/year" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now, let us add expressions to compute the reactor cooling cost (\\\\$/s) assuming a cost of 2.12E-5 \\\\$/kW, and the heating utility cost (\\\\$/s) assuming 2.2E-4 \\\\$/kW. Note that the heat duty is in units of watt (J/s). The total operating cost will be the sum of the two, expressed in \\\\$/year assuming 8000 operating hours per year (~10\\% downtime, which is fairly common for small scale chemical plants):" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.cooling_cost = Expression(\n", - " expr=2.12e-8 * (-m.fs.R101.heat_duty[0])\n", - ") # the reaction is exothermic, so R101 duty is negative\n", - "m.fs.heating_cost = Expression(\n", - " expr=2.2e-7 * m.fs.H101.heat_duty[0]\n", - ") # the stream must be heated to T_rxn, so H101 duty is positive\n", - "m.fs.operating_cost = Expression(\n", - " expr=(3600 * 8000 * (m.fs.heating_cost + m.fs.cooling_cost))\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Fixing Feed Conditions\n", - "\n", - "Let us first check how many degrees of freedom exist for this flowsheet using the `degrees_of_freedom` tool we imported earlier. We expect each stream to have 6 degrees of freedom, the mixer to have 0 (after both streams are accounted for), the heater to have 1 (just the duty, since the inlet is also the outlet of M101), and the reactor to have 1 (duty or overall conversion, since the inlet is also the outlet of H101). In this case, the reactor has an extra degree of freedom since we have not yet defined the yield of the sole rate-kinetics reaction. Therefore, we have 15 degrees of freedom to specify: temperature, pressure and flow of all four components on both streams; outlet heater temperature; reactor conversion and duty." - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "15\n" - ] + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "header", + "hide-cell" + ] + }, + "outputs": [], + "source": [ + "###############################################################################\n", + "# The Institute for the Design of Advanced Energy Systems Integrated Platform\n", + "# Framework (IDAES IP) was produced under the DOE Institute for the\n", + "# Design of Advanced Energy Systems (IDAES).\n", + "#\n", + "# Copyright (c) 2018-2023 by the software owners: The Regents of the\n", + "# University of California, through Lawrence Berkeley National Laboratory,\n", + "# National Technology & Engineering Solutions of Sandia, LLC, Carnegie Mellon\n", + "# University, West Virginia University Research Corporation, et al.\n", + "# All rights reserved. Please see the files COPYRIGHT.md and LICENSE.md\n", + "# for full copyright and license information.\n", + "###############################################################################" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "# Flowsheet Stoichiometric Reactor Simulation and Optimization of Ethylene Glycol Production\n", + "Author: Brandon Paul \n", + "Maintainer: Brandon Paul \n", + "Updated: 2023-06-01 \n", + "\n", + "## Learning Outcomes\n", + "\n", + "\n", + "- Call and implement the IDAES StochiometricReactor unit model\n", + "- Construct a steady-state flowsheet using the IDAES unit model library\n", + "- Connecting unit models in a flowsheet using Arcs\n", + "- Fomulate and solve an optimization problem\n", + " - Defining an objective function\n", + " - Setting variable bounds\n", + " - Adding additional constraints \n", + "\n", + "\n", + "## Problem Statement\n", + "\n", + "Following the previous example implementing a [Continuous Stirred Tank Reactor (CSTR) unit model](http://localhost:8888/notebooks/GitHub/examples-pse/src/Examples/UnitModels/Reactors/cstr_testing_doc.md), we can alter the flowsheet to use a stochiometric (or yield) reactor. As before, this example is adapted from Fogler, H.S., Elements of Chemical Reaction Engineering 5th ed., 2016, Prentice Hall, p. 157-160 with the following chemical reaction, property packages and flowsheet. Unlike the previous two reactors which apply performance equations to calculate reaction extent, this simplified reactor model neglects all geometric properties and allows the user to specify a yield per reaction. The state variables chosen for the property package are **molar flows of each component by phase in each stream, temperature of each stream and pressure of each stream**. The components considered are: **ethylene oxide, water, sulfuric acid and ethylene glycol** and the process occurs in liquid phase only. Therefore, every stream has 4 flow variables, 1 temperature and 1 pressure variable.\n", + "\n", + "Chemical reaction:\n", + "\n", + "**C2H4O + H2O + H2SO4 \u2192 C2H6O2 + H2SO4**\n", + "\n", + "Property Packages:\n", + "\n", + "- egprod_ideal.py\n", + "- egprod_reaction.py\n", + "\n", + "Flowsheet:\n", + "\n", + "![](egprod_flowsheet.png)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Importing Required Pyomo and IDAES components\n", + "\n", + "\n", + "To construct a flowsheet, we will need several components from the Pyomo and IDAES packages. Let us first import the following components from Pyomo:\n", + "- Constraint (to write constraints)\n", + "- Var (to declare variables)\n", + "- ConcreteModel (to create the concrete model object)\n", + "- Expression (to evaluate values as a function of variables defined in the model)\n", + "- Objective (to define an objective function for optimization)\n", + "- TransformationFactory (to apply certain transformations)\n", + "- Arc (to connect two unit models)\n", + "\n", + "For further details on these components, please refer to the pyomo documentation: https://pyomo.readthedocs.io/en/stable/\n", + "\n", + "From idaes, we will be needing the `FlowsheetBlock` and the following unit models:\n", + "- Mixer\n", + "- Heater\n", + "- StoichiometricReactor\n", + "\n", + "We will also be needing some utility tools to put together the flowsheet and calculate the degrees of freedom, tools for model expressions and calling variable values, and built-in functions to define property packages, add unit containers to objects and define our initialization scheme.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from pyomo.environ import (\n", + " Constraint,\n", + " Var,\n", + " ConcreteModel,\n", + " Expression,\n", + " Objective,\n", + " TransformationFactory,\n", + " value,\n", + " units as pyunits,\n", + ")\n", + "from pyomo.network import Arc\n", + "\n", + "from idaes.core import FlowsheetBlock\n", + "from idaes.models.properties.modular_properties.base.generic_property import (\n", + " GenericParameterBlock,\n", + ")\n", + "from idaes.models.properties.modular_properties.base.generic_reaction import (\n", + " GenericReactionParameterBlock,\n", + ")\n", + "from idaes.models.unit_models import Feed, Mixer, Heater, StoichiometricReactor, Product\n", + "\n", + "from idaes.core.solvers import get_solver\n", + "from idaes.core.util.model_statistics import degrees_of_freedom\n", + "from idaes.core.util.initialization import propagate_state" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Importing Required Thermophysical and Reaction Packages\n", + "\n", + "The final step is to import the thermophysical and reaction packages. We have created a custom thermophysical package that support ideal vapor and liquid behavior for this system, and in this case we will restrict it to ideal liquid behavior only. \n", + "\n", + "Let us import the following modules from the same directory as this Jupyter notebook:\n", + "- egprod_ideal as thermo_props\n", + "- egprod_reaction as reaction_props" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import egprod_ideal as thermo_props\n", + "import egprod_reaction as reaction_props" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Constructing the Flowsheet\n", + "\n", + "We have now imported all the components, unit models, and property modules we need to construct a flowsheet. Let us create a ConcreteModel and add the flowsheet block. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m = ConcreteModel()\n", + "m.fs = FlowsheetBlock(dynamic=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now need to add the property packages to the flowsheet. Unlike the basic [Flash unit model example](http://localhost:8888/notebooks/GitHub/examples-pse/src/Tutorials/Basics/flash_unit_solution_testing_doc.md), where we only had a thermophysical property package, for this flowsheet we will also need to add a reaction property package. We will use the [Modular Property Framework](https://idaes-pse.readthedocs.io/en/stable/explanations/components/property_package/index.html#generic-property-package-framework) and [Modular Reaction Framework](https://idaes-pse.readthedocs.io/en/stable/explanations/components/property_package/index.html#generic-reaction-package-framework). The get_prop method for the natural gas property module automatically returns the correct dictionary using a component list argument. The GenericParameterBlock and GenericReactionParameterBlock methods build states blocks from passed parameter data; the reaction block unpacks using **reaction_props.config_dict to allow for optional or empty keyword arguments:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "m.fs.thermo_params = GenericParameterBlock(**thermo_props.config_dict)\n", + "m.fs.reaction_params = GenericReactionParameterBlock(\n", + " property_package=m.fs.thermo_params, **reaction_props.config_dict\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Adding Unit Models\n", + "\n", + "Let us start adding the unit models we have imported to the flowsheet. Here, we are adding a `Mixer`, a `Heater` and a `StoichiometricReactor`. Note that all unit models need to be given a property package argument. In addition to that, there are several arguments depending on the unit model, please refer to the documentation for more details on [IDAES Unit Models](https://idaes-pse.readthedocs.io/en/stable/reference_guides/model_libraries/index.html). For example, the `Mixer` is given a `list` consisting of names to the two inlets." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "m.fs.OXIDE = Feed(property_package=m.fs.thermo_params)\n", + "m.fs.ACID = Feed(property_package=m.fs.thermo_params)\n", + "m.fs.PROD = Product(property_package=m.fs.thermo_params)\n", + "m.fs.M101 = Mixer(\n", + " property_package=m.fs.thermo_params, inlet_list=[\"reagent_feed\", \"catalyst_feed\"]\n", + ")\n", + "m.fs.H101 = Heater(\n", + " property_package=m.fs.thermo_params,\n", + " has_pressure_change=False,\n", + " has_phase_equilibrium=False,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.R101 = StoichiometricReactor(\n", + " property_package=m.fs.thermo_params,\n", + " reaction_package=m.fs.reaction_params,\n", + " has_heat_of_reaction=True,\n", + " has_heat_transfer=True,\n", + " has_pressure_change=False,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Connecting Unit Models Using Arcs\n", + "\n", + "We have now added all the unit models we need to the flowsheet. However, we have not yet specified how the units are to be connected. To do this, we will be using the `Arc` which is a pyomo component that takes in two arguments: `source` and `destination`. Let us connect the outlet of the `Mixer` to the inlet of the `Heater`, and the outlet of the `Heater` to the inlet of the `StoichiometricReactor`. Additionally, we will connect the `Feed` and `Product` blocks to the flowsheet:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.s01 = Arc(source=m.fs.OXIDE.outlet, destination=m.fs.M101.reagent_feed)\n", + "m.fs.s02 = Arc(source=m.fs.ACID.outlet, destination=m.fs.M101.catalyst_feed)\n", + "m.fs.s03 = Arc(source=m.fs.M101.outlet, destination=m.fs.H101.inlet)\n", + "m.fs.s04 = Arc(source=m.fs.H101.outlet, destination=m.fs.R101.inlet)\n", + "m.fs.s05 = Arc(source=m.fs.R101.outlet, destination=m.fs.PROD.inlet)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We have now connected the unit model block using the arcs. However, we also need to link the state variables on connected ports. Pyomo provides a convenient method `TransformationFactory` to write these equality constraints for us between two ports:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "TransformationFactory(\"network.expand_arcs\").apply_to(m)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Adding Expressions to Compute Operating Costs\n", + "\n", + "In this section, we will add a few Expressions that allows us to evaluate the performance. `Expressions` provide a convenient way of calculating certain values that are a function of the variables defined in the model. For more details on `Expressions`, please refer to the [Pyomo Expression documentation]( https://pyomo.readthedocs.io/en/stable/pyomo_modeling_components/Expressions.html).\n", + "\n", + "For this flowsheet, we are interested in computing ethylene glycol production in millions of pounds per year, as well as the total costs due to cooling and heating utilities." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us first add an `Expression` to convert the product flow from mol/s to MM lb/year of ethylene glycol. We see that the molecular weight exists in the thermophysical property package, so we may use that value for our calculations." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.eg_prod = Expression(\n", + " expr=pyunits.convert(\n", + " m.fs.PROD.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"]\n", + " * m.fs.thermo_params.ethylene_glycol.mw, # MW defined in properties as kg/mol\n", + " to_units=pyunits.Mlb / pyunits.yr,\n", + " )\n", + ") # converting kg/s to MM lb/year" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let us add expressions to compute the reactor cooling cost (\\\\$/s) assuming a cost of 2.12E-5 \\\\$/kW, and the heating utility cost (\\\\$/s) assuming 2.2E-4 \\\\$/kW. Note that the heat duty is in units of watt (J/s). The total operating cost will be the sum of the two, expressed in \\\\$/year assuming 8000 operating hours per year (~10\\% downtime, which is fairly common for small scale chemical plants):" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.cooling_cost = Expression(\n", + " expr=2.12e-8 * (-m.fs.R101.heat_duty[0])\n", + ") # the reaction is exothermic, so R101 duty is negative\n", + "m.fs.heating_cost = Expression(\n", + " expr=2.2e-7 * m.fs.H101.heat_duty[0]\n", + ") # the stream must be heated to T_rxn, so H101 duty is positive\n", + "m.fs.operating_cost = Expression(\n", + " expr=(3600 * 8000 * (m.fs.heating_cost + m.fs.cooling_cost))\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Fixing Feed Conditions\n", + "\n", + "Let us first check how many degrees of freedom exist for this flowsheet using the `degrees_of_freedom` tool we imported earlier. We expect each stream to have 6 degrees of freedom, the mixer to have 0 (after both streams are accounted for), the heater to have 1 (just the duty, since the inlet is also the outlet of M101), and the reactor to have 1 (duty or overall conversion, since the inlet is also the outlet of H101). In this case, the reactor has an extra degree of freedom since we have not yet defined the yield of the sole rate-kinetics reaction. Therefore, we have 15 degrees of freedom to specify: temperature, pressure and flow of all four components on both streams; outlet heater temperature; reactor conversion and duty." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "print(degrees_of_freedom(m))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will now be fixing the feed stream to the conditions shown in the flowsheet above. As mentioned in other tutorials, the IDAES framework expects a time index value for every referenced internal stream or unit variable, even in steady-state systems with a single time point $ t = 0 $ (`t = [0]` is the default when creating a `FlowsheetBlock` without passing a `time_set` argument). The non-present components in each stream are assigned a very small non-zero value to help with convergence and initializing. Based on stoichiometric ratios for the reaction, 80% conversion and 200 MM lb/year (46.4 mol/s) of ethylene glycol, we will initialize our simulation with the following calculated values:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.OXIDE.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_oxide\"].fix(\n", + " 58.0 * pyunits.mol / pyunits.s\n", + ")\n", + "m.fs.OXIDE.outlet.flow_mol_phase_comp[0, \"Liq\", \"water\"].fix(\n", + " 39.6 * pyunits.mol / pyunits.s\n", + ") # calculated from 16.1 mol EO / cudm in stream\n", + "m.fs.OXIDE.outlet.flow_mol_phase_comp[0, \"Liq\", \"sulfuric_acid\"].fix(\n", + " 1e-5 * pyunits.mol / pyunits.s\n", + ")\n", + "m.fs.OXIDE.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"].fix(\n", + " 1e-5 * pyunits.mol / pyunits.s\n", + ")\n", + "m.fs.OXIDE.outlet.temperature.fix(298.15 * pyunits.K)\n", + "m.fs.OXIDE.outlet.pressure.fix(1e5 * pyunits.Pa)\n", + "\n", + "m.fs.ACID.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_oxide\"].fix(\n", + " 1e-5 * pyunits.mol / pyunits.s\n", + ")\n", + "m.fs.ACID.outlet.flow_mol_phase_comp[0, \"Liq\", \"water\"].fix(\n", + " 200 * pyunits.mol / pyunits.s\n", + ")\n", + "m.fs.ACID.outlet.flow_mol_phase_comp[0, \"Liq\", \"sulfuric_acid\"].fix(\n", + " 0.334 * pyunits.mol / pyunits.s\n", + ") # calculated from 0.9 wt% SA in stream\n", + "m.fs.ACID.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"].fix(\n", + " 1e-5 * pyunits.mol / pyunits.s\n", + ")\n", + "m.fs.ACID.outlet.temperature.fix(298.15 * pyunits.K)\n", + "m.fs.ACID.outlet.pressure.fix(1e5 * pyunits.Pa)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Fixing Unit Model Specifications\n", + "\n", + "Now that we have fixed our inlet feed conditions, we will now be fixing the operating conditions for the unit models in the flowsheet. Let us fix the outlet temperature of H101 to 328.15 K. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.H101.outlet.temperature.fix(328.15 * pyunits.K)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will need to specify both initial reactant extent (conversion or yield) and heat duty values (these are the only two free variables to choose from). The reaction extent can be specified directly, as a molar or mass yield ratio of product to a particular reactant, or fractional conversion of a particular reactant. Here, we choose fractional conversion in terms of ethylene oxide. Since heat duty and the outlet reactor temperature are interdependent, we can choose to specify this quantity instead. While the reaction kinetic parameters exist in the property package, we also do not need to add a rate constant expression since generation is explicitly defined through the conversion/yield. Note that our initial problem will solve with zero *temperature change* but will be infeasible with zero *heat duty*; this is due to the heat of reaction enforced by allowing heat transfer and mandating a non-zero conversion." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.R101.conversion = Var(\n", + " initialize=0.80, bounds=(0, 1), units=pyunits.dimensionless\n", + ") # fraction\n", + "\n", + "m.fs.R101.conv_constraint = Constraint(\n", + " expr=m.fs.R101.conversion\n", + " * m.fs.R101.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_oxide\"]\n", + " == (\n", + " m.fs.R101.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_oxide\"]\n", + " - m.fs.R101.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_oxide\"]\n", + " )\n", + ")\n", + "\n", + "m.fs.R101.conversion.fix(0.80)\n", + "\n", + "m.fs.R101.outlet.temperature.fix(328.15 * pyunits.K) # equal inlet reactor temperature" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For initialization, we solve a square problem (degrees of freedom = 0). Let's check the degrees of freedom below:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(degrees_of_freedom(m))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, we need to initialize the each unit operation in sequence to solve the flowsheet. As in best practice, unit operations are initialized or solved, and outlet properties are propagated to connected inlet streams via arc definitions as follows:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Initialize and solve each unit operation\n", + "m.fs.OXIDE.initialize()\n", + "propagate_state(arc=m.fs.s01)\n", + "\n", + "m.fs.ACID.initialize()\n", + "propagate_state(arc=m.fs.s01)\n", + "\n", + "m.fs.M101.initialize()\n", + "propagate_state(arc=m.fs.s03)\n", + "\n", + "m.fs.H101.initialize()\n", + "propagate_state(arc=m.fs.s04)\n", + "\n", + "m.fs.R101.initialize()\n", + "propagate_state(arc=m.fs.s05)\n", + "\n", + "m.fs.PROD.initialize()\n", + "\n", + "# set solver\n", + "solver = get_solver()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "# Solve the model\n", + "results = solver.solve(m, tee=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Analyze the Results of the Square Problem\n", + "\n", + "\n", + "What is the total operating cost? " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.6f} million per year\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For this operating cost, what conversion did we achieve of ethylene oxide to ethylene glycol? " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.R101.report()\n", + "\n", + "print()\n", + "print(f\"Conversion achieved = {value(m.fs.R101.conversion):.1%}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Optimizing Ethylene Glycol Production\n", + "\n", + "Now that the flowsheet has been squared and solved, we can run a small optimization problem to minimize our production costs. Suppose we require at least 200 million pounds/year of ethylene glycol produced and 90% conversion of ethylene oxide, allowing for variable and reactor temperature (heater outlet)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us declare our objective function for this problem. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.objective = Objective(expr=m.fs.operating_cost)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, we need to add the design constraints and unfix the decision variables as we had solved a square problem (degrees of freedom = 0) until now, as well as set bounds for the design variables (reactor outlet temperature is set by state variable bounds in property package):" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fs.eg_prod_con = Constraint(\n", + " expr=m.fs.eg_prod >= 200 * pyunits.Mlb / pyunits.yr\n", + ") # MM lb/year\n", + "m.fs.R101.conversion.fix(0.90)\n", + "\n", + "m.fs.H101.outlet.temperature.unfix()\n", + "m.fs.H101.outlet.temperature[0].setlb(328.15 * pyunits.K)\n", + "m.fs.H101.outlet.temperature[0].setub(\n", + " 470.45 * pyunits.K\n", + ") # highest component boiling point (ethylene glycol)\n", + "\n", + "m.fs.R101.outlet.temperature.unfix()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "We have now defined the optimization problem and we are now ready to solve this problem. \n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "results = solver.solve(m, tee=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.6f} million per year\")\n", + "\n", + "print()\n", + "print(\"Heater results\")\n", + "\n", + "m.fs.H101.report()\n", + "\n", + "print()\n", + "print(\"Stoichiometric reactor results\")\n", + "\n", + "m.fs.R101.report()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Display optimal values for the decision variables and design variables:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(\"Optimal Values\")\n", + "print()\n", + "\n", + "print(f\"H101 outlet temperature = {value(m.fs.H101.outlet.temperature[0]):0.6f} K\")\n", + "\n", + "print()\n", + "print(f\"R101 outlet temperature = {value(m.fs.R101.outlet.temperature[0]):0.6f} K\")\n", + "\n", + "print()\n", + "print(f\"Ethylene glycol produced = {value(m.fs.eg_prod):0.6f} MM lb/year\")\n", + "\n", + "print()\n", + "print(f\"Conversion achieved = {value(m.fs.R101.conversion):.1%}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } - ], - "source": [ - "print(degrees_of_freedom(m))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We will now be fixing the feed stream to the conditions shown in the flowsheet above. As mentioned in other tutorials, the IDAES framework expects a time index value for every referenced internal stream or unit variable, even in steady-state systems with a single time point $ t = 0 $ (`t = [0]` is the default when creating a `FlowsheetBlock` without passing a `time_set` argument). The non-present components in each stream are assigned a very small non-zero value to help with convergence and initializing. Based on stoichiometric ratios for the reaction, 80% conversion and 200 MM lb/year (46.4 mol/s) of ethylene glycol, we will initialize our simulation with the following calculated values:" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.OXIDE.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_oxide\"].fix(\n", - " 58.0 * pyunits.mol / pyunits.s\n", - ")\n", - "m.fs.OXIDE.outlet.flow_mol_phase_comp[0, \"Liq\", \"water\"].fix(\n", - " 39.6 * pyunits.mol / pyunits.s\n", - ") # calculated from 16.1 mol EO / cudm in stream\n", - "m.fs.OXIDE.outlet.flow_mol_phase_comp[0, \"Liq\", \"sulfuric_acid\"].fix(\n", - " 1e-5 * pyunits.mol / pyunits.s\n", - ")\n", - "m.fs.OXIDE.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"].fix(\n", - " 1e-5 * pyunits.mol / pyunits.s\n", - ")\n", - "m.fs.OXIDE.outlet.temperature.fix(298.15 * pyunits.K)\n", - "m.fs.OXIDE.outlet.pressure.fix(1e5 * pyunits.Pa)\n", - "\n", - "m.fs.ACID.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_oxide\"].fix(\n", - " 1e-5 * pyunits.mol / pyunits.s\n", - ")\n", - "m.fs.ACID.outlet.flow_mol_phase_comp[0, \"Liq\", \"water\"].fix(\n", - " 200 * pyunits.mol / pyunits.s\n", - ")\n", - "m.fs.ACID.outlet.flow_mol_phase_comp[0, \"Liq\", \"sulfuric_acid\"].fix(\n", - " 0.334 * pyunits.mol / pyunits.s\n", - ") # calculated from 0.9 wt% SA in stream\n", - "m.fs.ACID.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_glycol\"].fix(\n", - " 1e-5 * pyunits.mol / pyunits.s\n", - ")\n", - "m.fs.ACID.outlet.temperature.fix(298.15 * pyunits.K)\n", - "m.fs.ACID.outlet.pressure.fix(1e5 * pyunits.Pa)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Fixing Unit Model Specifications\n", - "\n", - "Now that we have fixed our inlet feed conditions, we will now be fixing the operating conditions for the unit models in the flowsheet. Let us fix the outlet temperature of H101 to 328.15 K. " - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.H101.outlet.temperature.fix(328.15 * pyunits.K)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We will need to specify both initial reactant extent (conversion or yield) and heat duty values (these are the only two free variables to choose from). The reaction extent can be specified directly, as a molar or mass yield ratio of product to a particular reactant, or fractional conversion of a particular reactant. Here, we choose fractional conversion in terms of ethylene oxide. Since heat duty and the outlet reactor temperature are interdependent, we can choose to specify this quantity instead. While the reaction kinetic parameters exist in the property package, we also do not need to add a rate constant expression since generation is explicitly defined through the conversion/yield. Note that our initial problem will solve with zero *temperature change* but will be infeasible with zero *heat duty*; this is due to the heat of reaction enforced by allowing heat transfer and mandating a non-zero conversion." - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.R101.conversion = Var(\n", - " initialize=0.80, bounds=(0, 1), units=pyunits.dimensionless\n", - ") # fraction\n", - "\n", - "m.fs.R101.conv_constraint = Constraint(\n", - " expr=m.fs.R101.conversion\n", - " * m.fs.R101.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_oxide\"]\n", - " == (\n", - " m.fs.R101.inlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_oxide\"]\n", - " - m.fs.R101.outlet.flow_mol_phase_comp[0, \"Liq\", \"ethylene_oxide\"]\n", - " )\n", - ")\n", - "\n", - "m.fs.R101.conversion.fix(0.80)\n", - "\n", - "m.fs.R101.outlet.temperature.fix(328.15 * pyunits.K) # equal inlet reactor temperature" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For initialization, we solve a square problem (degrees of freedom = 0). Let's check the degrees of freedom below:" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0\n" - ] + ], + "metadata": { + "celltoolbar": "Tags", + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.18" } - ], - "source": [ - "print(degrees_of_freedom(m))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Finally, we need to initialize the each unit operation in sequence to solve the flowsheet. As in best practice, unit operations are initialized or solved, and outlet properties are propagated to connected inlet streams via arc definitions as follows:" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:59 [INFO] idaes.init.fs.OXIDE.properties: Starting initialization\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:59 [INFO] idaes.init.fs.OXIDE.properties: Property initialization: optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:59 [INFO] idaes.init.fs.OXIDE.properties: Property package initialization: optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:59 [INFO] idaes.init.fs.OXIDE: Initialization Complete.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:59 [INFO] idaes.init.fs.ACID.properties: Starting initialization\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:59 [INFO] idaes.init.fs.ACID.properties: Property initialization: optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:59 [INFO] idaes.init.fs.ACID.properties: Property package initialization: optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:59 [INFO] idaes.init.fs.ACID: Initialization Complete.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:59 [INFO] idaes.init.fs.M101.reagent_feed_state: Starting initialization\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:59 [INFO] idaes.init.fs.M101.reagent_feed_state: Property initialization: optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:59 [INFO] idaes.init.fs.M101.catalyst_feed_state: Starting initialization\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:59 [INFO] idaes.init.fs.M101.catalyst_feed_state: Property initialization: optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:59 [INFO] idaes.init.fs.M101.mixed_state: Starting initialization\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:59 [INFO] idaes.init.fs.M101.mixed_state: Property initialization: optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:59 [INFO] idaes.init.fs.M101.mixed_state: Property package initialization: optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:59 [INFO] idaes.init.fs.M101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:59 [INFO] idaes.init.fs.H101.control_volume.properties_in: Starting initialization\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:59 [INFO] idaes.init.fs.H101.control_volume.properties_in: Property initialization: optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:59 [INFO] idaes.init.fs.H101.control_volume.properties_out: Starting initialization\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:59 [INFO] idaes.init.fs.H101.control_volume.properties_out: Property initialization: optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:59 [INFO] idaes.init.fs.H101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:59 [INFO] idaes.init.fs.H101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:59 [INFO] idaes.init.fs.R101.control_volume.properties_in: Starting initialization\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:59 [INFO] idaes.init.fs.R101.control_volume.properties_in: Property initialization: optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:59 [INFO] idaes.init.fs.R101.control_volume.properties_out: Starting initialization\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:59 [INFO] idaes.init.fs.R101.control_volume.properties_out: Property initialization: optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:59 [INFO] idaes.init.fs.R101.control_volume.reactions: Initialization Complete.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:59 [INFO] idaes.init.fs.R101.control_volume: Initialization Complete\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:59 [INFO] idaes.init.fs.R101: Initialization Complete: optimal - Optimal Solution Found\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:59 [INFO] idaes.init.fs.PROD.properties: Starting initialization\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:59 [INFO] idaes.init.fs.PROD.properties: Property initialization: optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:59 [INFO] idaes.init.fs.PROD.properties: Property package initialization: optimal - Optimal Solution Found.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-11-02 10:26:59 [INFO] idaes.init.fs.PROD: Initialization Complete.\n" - ] - } - ], - "source": [ - "# Initialize and solve each unit operation\n", - "m.fs.OXIDE.initialize()\n", - "propagate_state(arc=m.fs.s01)\n", - "\n", - "m.fs.ACID.initialize()\n", - "propagate_state(arc=m.fs.s01)\n", - "\n", - "m.fs.M101.initialize()\n", - "propagate_state(arc=m.fs.s03)\n", - "\n", - "m.fs.H101.initialize()\n", - "propagate_state(arc=m.fs.s04)\n", - "\n", - "m.fs.R101.initialize()\n", - "propagate_state(arc=m.fs.s05)\n", - "\n", - "m.fs.PROD.initialize()\n", - "\n", - "# set solver\n", - "solver = get_solver()" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", - "tol=1e-06\n", - "max_iter=200\n", - "\n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 337\n", - "Number of nonzeros in inequality constraint Jacobian.: 0\n", - "Number of nonzeros in Lagrangian Hessian.............: 383\n", - "\n", - "Total number of variables............................: 95\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 86\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 95\n", - "Total number of inequality constraints...............: 0\n", - " inequality constraints with only lower bounds: 0\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 0.0000000e+00 1.30e+06 0.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 2.66e+06 1.28e+01 -1.0 9.75e+06 - 6.77e-02 9.90e-01h 1\n", - " 2 0.0000000e+00 2.36e+04 2.90e+02 -1.0 9.75e+04 - 7.00e-01 9.90e-01h 1\n", - " 3 0.0000000e+00 2.43e+02 1.44e+01 -1.0 9.74e+02 - 9.90e-01 9.90e-01h 1\n", - " 4 0.0000000e+00 1.85e+00 3.18e+03 -1.0 9.62e+00 - 9.90e-01 9.92e-01h 1\n", - " 5 0.0000000e+00 8.94e-08 3.34e+03 -1.0 7.33e-02 - 9.94e-01 1.00e+00h 1\n", - "Cannot recompute multipliers for feasibility problem. Error in eq_mult_calculator\n", - "\n", - "Number of Iterations....: 5\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Dual infeasibility......: 1.6686898422600192e+06 1.6686898422600192e+06\n", - "Constraint violation....: 1.9895196601282805e-13 8.9406967163085938e-08\n", - "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 1.9895196601282805e-13 1.6686898422600192e+06\n", - "\n", - "\n", - "Number of objective function evaluations = 6\n", - "Number of objective gradient evaluations = 6\n", - "Number of equality constraint evaluations = 6\n", - "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 6\n", - "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 5\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.002\n", - "Total CPU secs in NLP function evaluations = 0.000\n", - "\n", - "EXIT: Optimal Solution Found.\n" - ] - } - ], - "source": [ - "# Solve the model\n", - "results = solver.solve(m, tee=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Analyze the Results of the Square Problem\n", - "\n", - "\n", - "What is the total operating cost? " - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "operating cost = $3.458 million per year\n" - ] - } - ], - "source": [ - "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For this operating cost, what conversion did we achieve of ethylene oxide to ethylene glycol? " - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "====================================================================================\n", - "Unit : fs.R101 Time: 0.0\n", - "------------------------------------------------------------------------------------\n", - " Unit Performance\n", - "\n", - " Variables: \n", - "\n", - " Key : Value : Units : Fixed : Bounds\n", - " Heat Duty : -5.6566e+06 : watt : False : (None, None)\n", - " Reaction Extent [R1] : 46.400 : mole / second : False : (None, None)\n", - "\n", - "------------------------------------------------------------------------------------\n", - " Stream Table\n", - " Units Inlet Outlet \n", - " Molar Flowrate ('Liq', 'ethylene_oxide') mole / second 58.000 11.600\n", - " Molar Flowrate ('Liq', 'water') mole / second 239.60 193.20\n", - " Molar Flowrate ('Liq', 'sulfuric_acid') mole / second 0.33401 0.33401\n", - " Molar Flowrate ('Liq', 'ethylene_glycol') mole / second 2.0000e-05 46.400\n", - " Temperature kelvin 328.15 328.15\n", - " Pressure pascal 1.0000e+05 1.0000e+05\n", - "====================================================================================\n", - "\n", - "Conversion achieved = 80.0%\n" - ] - } - ], - "source": [ - "m.fs.R101.report()\n", - "\n", - "print()\n", - "print(f\"Conversion achieved = {value(m.fs.R101.conversion):.1%}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Optimizing Ethylene Glycol Production\n", - "\n", - "Now that the flowsheet has been squared and solved, we can run a small optimization problem to minimize our production costs. Suppose we require at least 200 million pounds/year of ethylene glycol produced and 90% conversion of ethylene oxide, allowing for variable and reactor temperature (heater outlet)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us declare our objective function for this problem. " - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.objective = Objective(expr=m.fs.operating_cost)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now, we need to add the design constraints and unfix the decision variables as we had solved a square problem (degrees of freedom = 0) until now, as well as set bounds for the design variables (reactor outlet temperature is set by state variable bounds in property package):" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [], - "source": [ - "m.fs.eg_prod_con = Constraint(\n", - " expr=m.fs.eg_prod >= 200 * pyunits.Mlb / pyunits.yr\n", - ") # MM lb/year\n", - "m.fs.R101.conversion.fix(0.90)\n", - "\n", - "m.fs.H101.outlet.temperature.unfix()\n", - "m.fs.H101.outlet.temperature[0].setlb(328.15 * pyunits.K)\n", - "m.fs.H101.outlet.temperature[0].setub(\n", - " 470.45 * pyunits.K\n", - ") # highest component boiling point (ethylene glycol)\n", - "\n", - "m.fs.R101.outlet.temperature.unfix()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "We have now defined the optimization problem and we are now ready to solve this problem. \n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ipopt 3.13.2: nlp_scaling_method=gradient-based\n", - "tol=1e-06\n", - "max_iter=200\n", - "\n", - "\n", - "******************************************************************************\n", - "This program contains Ipopt, a library for large-scale nonlinear optimization.\n", - " Ipopt is released as open source code under the Eclipse Public License (EPL).\n", - " For more information visit http://projects.coin-or.org/Ipopt\n", - "\n", - "This version of Ipopt was compiled from source code available at\n", - " https://github.com/IDAES/Ipopt as part of the Institute for the Design of\n", - " Advanced Energy Systems Process Systems Engineering Framework (IDAES PSE\n", - " Framework) Copyright (c) 2018-2019. See https://github.com/IDAES/idaes-pse.\n", - "\n", - "This version of Ipopt was compiled using HSL, a collection of Fortran codes\n", - " for large-scale scientific computation. All technical papers, sales and\n", - " publicity material resulting from use of the HSL codes within IPOPT must\n", - " contain the following acknowledgement:\n", - " HSL, a collection of Fortran codes for large-scale scientific\n", - " computation. See http://www.hsl.rl.ac.uk.\n", - "******************************************************************************\n", - "\n", - "This is Ipopt version 3.13.2, running with linear solver ma27.\n", - "\n", - "Number of nonzeros in equality constraint Jacobian...: 341\n", - "Number of nonzeros in inequality constraint Jacobian.: 1\n", - "Number of nonzeros in Lagrangian Hessian.............: 403\n", - "\n", - "Total number of variables............................: 97\n", - " variables with only lower bounds: 0\n", - " variables with lower and upper bounds: 88\n", - " variables with only upper bounds: 0\n", - "Total number of equality constraints.................: 95\n", - "Total number of inequality constraints...............: 1\n", - " inequality constraints with only lower bounds: 1\n", - " inequality constraints with lower and upper bounds: 0\n", - " inequality constraints with only upper bounds: 0\n", - "\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 0 3.4581399e+06 1.76e+06 6.34e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 3.4605363e+06 1.75e+06 1.17e+01 -1.0 6.95e+05 - 7.82e-02 6.15e-03h 1\n", - " 2 3.4956495e+06 1.61e+06 6.65e+01 -1.0 6.94e+05 - 1.27e-01 8.29e-02h 1\n", - " 3 3.5669528e+06 1.31e+06 4.78e+02 -1.0 6.33e+05 - 1.61e-01 1.84e-01h 1\n", - " 4 3.6648118e+06 9.11e+05 3.39e+02 -1.0 5.26e+05 - 9.11e-01 3.05e-01h 1\n", - " 5 3.8858215e+06 1.14e+04 1.07e+01 -1.0 3.65e+05 - 9.88e-01 9.90e-01h 1\n", - " 6 3.8880314e+06 1.02e+02 2.00e+00 -1.0 3.65e+03 - 9.90e-01 9.91e-01h 1\n", - " 7 3.8880511e+06 4.13e-05 1.64e-03 -1.0 3.23e+01 - 1.00e+00 1.00e+00h 1\n", - " 8 3.8880508e+06 2.06e-06 1.09e+01 -5.7 3.42e-01 - 1.00e+00 1.00e+00f 1\n", - " 9 3.8880508e+06 2.05e-08 3.69e-07 -5.7 2.15e-05 - 1.00e+00 1.00e+00f 1\n", - "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 10 3.8880508e+06 4.66e-09 4.00e-07 -7.0 6.02e-06 - 1.00e+00 1.00e+00f 1\n", - "\n", - "Number of Iterations....: 10\n", - "\n", - " (scaled) (unscaled)\n", - "Objective...............: 3.8880508414204163e+06 3.8880508414204163e+06\n", - "Dual infeasibility......: 4.0007411785832306e-07 4.0007411785832306e-07\n", - "Constraint violation....: 7.1054273576010019e-15 4.6566128730773926e-09\n", - "Complementarity.........: 9.0909183706024063e-08 9.0909183706024063e-08\n", - "Overall NLP error.......: 9.0909183706024063e-08 4.0007411785832306e-07\n", - "\n", - "\n", - "Number of objective function evaluations = 11\n", - "Number of objective gradient evaluations = 11\n", - "Number of equality constraint evaluations = 11\n", - "Number of inequality constraint evaluations = 11\n", - "Number of equality constraint Jacobian evaluations = 11\n", - "Number of inequality constraint Jacobian evaluations = 11\n", - "Number of Lagrangian Hessian evaluations = 10\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 0.002\n", - "Total CPU secs in NLP function evaluations = 0.001\n", - "\n", - "EXIT: Optimal Solution Found.\n" - ] - } - ], - "source": [ - "results = solver.solve(m, tee=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "operating cost = $3.888 million per year\n", - "\n", - "Heater results\n", - "\n", - "====================================================================================\n", - "Unit : fs.H101 Time: 0.0\n", - "------------------------------------------------------------------------------------\n", - " Unit Performance\n", - "\n", - " Variables: \n", - "\n", - " Key : Value : Units : Fixed : Bounds\n", - " Heat Duty : 699.26 : watt : False : (None, None)\n", - "\n", - "------------------------------------------------------------------------------------\n", - " Stream Table\n", - " Units Inlet Outlet \n", - " Molar Flowrate ('Liq', 'ethylene_oxide') mole / second 58.000 58.000\n", - " Molar Flowrate ('Liq', 'water') mole / second 239.60 239.60\n", - " Molar Flowrate ('Liq', 'sulfuric_acid') mole / second 0.33401 0.33401\n", - " Molar Flowrate ('Liq', 'ethylene_glycol') mole / second 2.0000e-05 2.0000e-05\n", - " Temperature kelvin 298.15 328.15\n", - " Pressure pascal 1.0000e+05 1.0000e+05\n", - "====================================================================================\n", - "\n", - "Stoichiometric reactor results\n", - "\n", - "====================================================================================\n", - "Unit : fs.R101 Time: 0.0\n", - "------------------------------------------------------------------------------------\n", - " Unit Performance\n", - "\n", - " Variables: \n", - "\n", - " Key : Value : Units : Fixed : Bounds\n", - " Heat Duty : -6.3608e+06 : watt : False : (None, None)\n", - " Reaction Extent [R1] : 52.200 : mole / second : False : (None, None)\n", - "\n", - "------------------------------------------------------------------------------------\n", - " Stream Table\n", - " Units Inlet Outlet \n", - " Molar Flowrate ('Liq', 'ethylene_oxide') mole / second 58.000 5.8000\n", - " Molar Flowrate ('Liq', 'water') mole / second 239.60 187.40\n", - " Molar Flowrate ('Liq', 'sulfuric_acid') mole / second 0.33401 0.33401\n", - " Molar Flowrate ('Liq', 'ethylene_glycol') mole / second 2.0000e-05 52.200\n", - " Temperature kelvin 328.15 450.00\n", - " Pressure pascal 1.0000e+05 1.0000e+05\n", - "====================================================================================\n" - ] - } - ], - "source": [ - "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")\n", - "\n", - "print()\n", - "print(\"Heater results\")\n", - "\n", - "m.fs.H101.report()\n", - "\n", - "print()\n", - "print(\"Stoichiometric reactor results\")\n", - "\n", - "m.fs.R101.report()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Display optimal values for the decision variables and design variables:" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Optimal Values\n", - "\n", - "H101 outlet temperature = 328.150 K\n", - "\n", - "R101 outlet temperature = 450.000 K\n", - "\n", - "Ethylene glycol produced = 225.415 MM lb/year\n", - "\n", - "Conversion achieved = 90.0%\n" - ] - } - ], - "source": [ - "print(\"Optimal Values\")\n", - "print()\n", - "\n", - "print(f\"H101 outlet temperature = {value(m.fs.H101.outlet.temperature[0]):0.3f} K\")\n", - "\n", - "print()\n", - "print(f\"R101 outlet temperature = {value(m.fs.R101.outlet.temperature[0]):0.3f} K\")\n", - "\n", - "print()\n", - "print(f\"Ethylene glycol produced = {value(m.fs.eg_prod):0.3f} MM lb/year\")\n", - "\n", - "print()\n", - "print(f\"Conversion achieved = {value(m.fs.R101.conversion):.1%}\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "celltoolbar": "Tags", - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.5" - } - }, - "nbformat": 4, - "nbformat_minor": 3 -} + "nbformat": 4, + "nbformat_minor": 3 +} \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/unit_models/reactors/stoichiometric_reactor_test.ipynb b/idaes_examples/notebooks/docs/unit_models/reactors/stoichiometric_reactor_test.ipynb index 6ae99dc8..675c7fea 100644 --- a/idaes_examples/notebooks/docs/unit_models/reactors/stoichiometric_reactor_test.ipynb +++ b/idaes_examples/notebooks/docs/unit_models/reactors/stoichiometric_reactor_test.ipynb @@ -53,7 +53,7 @@ "\n", "Chemical reaction:\n", "\n", - "**C2H4O + H2O + H2SO4 → C2H6O2 + H2SO4**\n", + "**C2H4O + H2O + H2SO4 \u2192 C2H6O2 + H2SO4**\n", "\n", "Property Packages:\n", "\n", @@ -219,9 +219,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "scrolled": false - }, + "metadata": {}, "outputs": [], "source": [ "m.fs.R101 = StoichiometricReactor(\n", @@ -564,7 +562,7 @@ "metadata": {}, "outputs": [], "source": [ - "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")" + "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.6f} million per year\")" ] }, { @@ -579,7 +577,7 @@ "source": [ "import pytest\n", "\n", - "assert value(m.fs.operating_cost) / 1e6 == pytest.approx(3.458140, abs=1e-3)" + "assert value(m.fs.operating_cost) / 1e6 == pytest.approx(8.019605, rel=1e-5)" ] }, { @@ -611,9 +609,9 @@ }, "outputs": [], "source": [ - "assert value(m.fs.R101.conversion) == pytest.approx(0.8000, abs=1e-3)\n", - "assert value(m.fs.R101.heat_duty[0]) / 1e6 == pytest.approx(-5.6566, abs=1e-3)\n", - "assert value(m.fs.R101.outlet.temperature[0]) / 1e2 == pytest.approx(3.2815, abs=1e-3)" + "assert value(m.fs.R101.conversion) == pytest.approx(0.8000, rel=1e-5)\n", + "assert value(m.fs.R101.heat_duty[0]) / 1e6 == pytest.approx(-5.8931, rel=1e-5)\n", + "assert value(m.fs.R101.outlet.temperature[0]) / 1e2 == pytest.approx(3.2815, rel=1e-5)" ] }, { @@ -724,7 +722,7 @@ "metadata": {}, "outputs": [], "source": [ - "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")\n", + "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.6f} million per year\")\n", "\n", "print()\n", "print(\"Heater results\")\n", @@ -747,7 +745,7 @@ }, "outputs": [], "source": [ - "assert value(m.fs.operating_cost) / 1e6 == pytest.approx(3.888050, abs=1e-3)" + "assert value(m.fs.operating_cost) / 1e6 == pytest.approx(6.670729, rel=1e-5)" ] }, { @@ -766,13 +764,13 @@ "print(\"Optimal Values\")\n", "print()\n", "\n", - "print(f\"H101 outlet temperature = {value(m.fs.H101.outlet.temperature[0]):0.3f} K\")\n", + "print(f\"H101 outlet temperature = {value(m.fs.H101.outlet.temperature[0]):0.6f} K\")\n", "\n", "print()\n", - "print(f\"R101 outlet temperature = {value(m.fs.R101.outlet.temperature[0]):0.3f} K\")\n", + "print(f\"R101 outlet temperature = {value(m.fs.R101.outlet.temperature[0]):0.6f} K\")\n", "\n", "print()\n", - "print(f\"Ethylene glycol produced = {value(m.fs.eg_prod):0.3f} MM lb/year\")\n", + "print(f\"Ethylene glycol produced = {value(m.fs.eg_prod):0.6f} MM lb/year\")\n", "\n", "print()\n", "print(f\"Conversion achieved = {value(m.fs.R101.conversion):.1%}\")" @@ -788,10 +786,10 @@ }, "outputs": [], "source": [ - "assert value(m.fs.H101.outlet.temperature[0]) / 100 == pytest.approx(3.2815, abs=1e-3)\n", - "assert value(m.fs.R101.outlet.temperature[0]) / 100 == pytest.approx(4.5000, abs=1e-3)\n", - "assert value(m.fs.eg_prod) == pytest.approx(225.415, abs=1e-3)\n", - "assert value(m.fs.R101.conversion) * 100 == pytest.approx(90.0, abs=1e-3)" + "assert value(m.fs.H101.outlet.temperature[0]) / 100 == pytest.approx(3.2815, rel=1e-5)\n", + "assert value(m.fs.R101.outlet.temperature[0]) / 100 == pytest.approx(4.5000, rel=1e-5)\n", + "assert value(m.fs.eg_prod) == pytest.approx(225.415, rel=1e-5)\n", + "assert value(m.fs.R101.conversion) * 100 == pytest.approx(90.0, rel=1e-5)" ] }, { @@ -819,9 +817,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.12" + "version": "3.9.18" } }, "nbformat": 4, "nbformat_minor": 3 -} +} \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/unit_models/reactors/stoichiometric_reactor_usr.ipynb b/idaes_examples/notebooks/docs/unit_models/reactors/stoichiometric_reactor_usr.ipynb index 06425641..5660e55a 100644 --- a/idaes_examples/notebooks/docs/unit_models/reactors/stoichiometric_reactor_usr.ipynb +++ b/idaes_examples/notebooks/docs/unit_models/reactors/stoichiometric_reactor_usr.ipynb @@ -53,7 +53,7 @@ "\n", "Chemical reaction:\n", "\n", - "**C2H4O + H2O + H2SO4 → C2H6O2 + H2SO4**\n", + "**C2H4O + H2O + H2SO4 \u2192 C2H6O2 + H2SO4**\n", "\n", "Property Packages:\n", "\n", @@ -219,9 +219,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "scrolled": false - }, + "metadata": {}, "outputs": [], "source": [ "m.fs.R101 = StoichiometricReactor(\n", @@ -520,7 +518,7 @@ "metadata": {}, "outputs": [], "source": [ - "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")" + "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.6f} million per year\")" ] }, { @@ -621,7 +619,7 @@ "metadata": {}, "outputs": [], "source": [ - "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.3f} million per year\")\n", + "print(f\"operating cost = ${value(m.fs.operating_cost)/1e6:0.6f} million per year\")\n", "\n", "print()\n", "print(\"Heater results\")\n", @@ -650,13 +648,13 @@ "print(\"Optimal Values\")\n", "print()\n", "\n", - "print(f\"H101 outlet temperature = {value(m.fs.H101.outlet.temperature[0]):0.3f} K\")\n", + "print(f\"H101 outlet temperature = {value(m.fs.H101.outlet.temperature[0]):0.6f} K\")\n", "\n", "print()\n", - "print(f\"R101 outlet temperature = {value(m.fs.R101.outlet.temperature[0]):0.3f} K\")\n", + "print(f\"R101 outlet temperature = {value(m.fs.R101.outlet.temperature[0]):0.6f} K\")\n", "\n", "print()\n", - "print(f\"Ethylene glycol produced = {value(m.fs.eg_prod):0.3f} MM lb/year\")\n", + "print(f\"Ethylene glycol produced = {value(m.fs.eg_prod):0.6f} MM lb/year\")\n", "\n", "print()\n", "print(f\"Conversion achieved = {value(m.fs.R101.conversion):.1%}\")" @@ -687,9 +685,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.12" + "version": "3.9.18" } }, "nbformat": 4, "nbformat_minor": 3 -} +} \ No newline at end of file diff --git a/idaes_examples/notebooks/docs/unit_models/reactors/tests/__init__.py b/idaes_examples/notebooks/docs/unit_models/reactors/tests/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/idaes_examples/notebooks/docs/unit_models/reactors/tests/test_egprod_ideal.py b/idaes_examples/notebooks/docs/unit_models/reactors/tests/test_egprod_ideal.py new file mode 100644 index 00000000..7b9ca054 --- /dev/null +++ b/idaes_examples/notebooks/docs/unit_models/reactors/tests/test_egprod_ideal.py @@ -0,0 +1,1074 @@ +################################################################################# +# The Institute for the Design of Advanced Energy Systems Integrated Platform +# Framework (IDAES IP) was produced under the DOE Institute for the +# Design of Advanced Energy Systems (IDAES). +# +# Copyright (c) 2018-2023 by the software owners: The Regents of the +# University of California, through Lawrence Berkeley National Laboratory, +# National Technology & Engineering Solutions of Sandia, LLC, Carnegie Mellon +# University, West Virginia University Research Corporation, et al. +# All rights reserved. Please see the files COPYRIGHT.md and LICENSE.md +# for full copyright and license information. +################################################################################# +""" +Author: Brandon Paul +""" +import pytest +from pyomo.environ import ( + assert_optimal_termination, + ConcreteModel, + Set, + value, + Var, + units as pyunits, + as_quantity, +) +from pyomo.common.unittest import assertStructuredAlmostEqual + +from idaes.core import Component +from idaes.core.util.model_statistics import ( + degrees_of_freedom, + fixed_variables_set, + activated_constraints_set, +) +from idaes.core.solvers import get_solver + +from idaes.models.properties.modular_properties.base.generic_property import ( + GenericParameterBlock, +) + +from idaes.models.properties.modular_properties.state_definitions import FpcTP + +from idaes_examples.notebooks.docs.unit_models.reactors.egprod_ideal import config_dict + +from idaes.models.properties.tests.test_harness import PropertyTestHarness + +from idaes.core.util.model_diagnostics import DiagnosticsToolbox + +from idaes.core.util.constants import Constants as const + +from idaes.core import VaporPhase + +from idaes.models.properties.modular_properties.eos.ideal import Ideal + +import copy + + +# ----------------------------------------------------------------------------- +# Get default solver for testing +solver = get_solver() + + +class TestEGProdIdeal(PropertyTestHarness): + def configure(self): + self.prop_pack = GenericParameterBlock + self.param_args = config_dict + self.prop_args = {} + self.has_density_terms = True + + +class TestParamBlock(object): + @pytest.mark.unit + def test_build(self): + model = ConcreteModel() + model.params = GenericParameterBlock(**config_dict) + + assert isinstance(model.params.phase_list, Set) + assert len(model.params.phase_list) == 1 + for i in model.params.phase_list: + assert i in [ + "Liq", + ] + assert model.params.Liq.is_liquid_phase() + + assert isinstance(model.params.component_list, Set) + assert len(model.params.component_list) == 4 + for i in model.params.component_list: + assert i in ["ethylene_oxide", "water", "sulfuric_acid", "ethylene_glycol"] + assert isinstance(model.params.get_component(i), Component) + + assert isinstance(model.params._phase_component_set, Set) + assert len(model.params._phase_component_set) == 4 + for i in model.params._phase_component_set: + assert i in [ + ("Liq", "ethylene_oxide"), + ("Liq", "water"), + ("Liq", "sulfuric_acid"), + ("Liq", "ethylene_glycol"), + ] + + assert model.params.config.state_definition == FpcTP + + assertStructuredAlmostEqual( + model.params.config.state_bounds, + { + "flow_mol_phase_comp": (0, 100, 1000, pyunits.mol / pyunits.s), + "temperature": (273.15, 298.15, 450, pyunits.K), + "pressure": (5e4, 1e5, 1e6, pyunits.Pa), + }, + item_callback=as_quantity, + ) + + assert value(model.params.pressure_ref) == 1e5 + assert value(model.params.temperature_ref) == 298.15 + + assert value(model.params.ethylene_oxide.mw) == 44.054e-3 + assert value(model.params.ethylene_oxide.pressure_crit) == 71.9e5 + assert value(model.params.ethylene_oxide.temperature_crit) == 469 + + assert value(model.params.water.mw) == 18.015e-3 + assert value(model.params.water.pressure_crit) == 221.2e5 + assert value(model.params.water.temperature_crit) == 647.3 + + assert value(model.params.sulfuric_acid.mw) == 98.08e-3 + assert value(model.params.sulfuric_acid.pressure_crit) == 129.4262e5 + assert value(model.params.sulfuric_acid.temperature_crit) == 590.76 + + assert value(model.params.ethylene_glycol.mw) == 62.069e-3 + assert value(model.params.ethylene_glycol.pressure_crit) == 77e5 + assert value(model.params.ethylene_glycol.temperature_crit) == 645 + + dt = DiagnosticsToolbox(model) + dt.assert_no_structural_warnings() + + +class TestStateBlock(object): + @pytest.fixture(scope="class") + def model(self): + model = ConcreteModel() + model.params = GenericParameterBlock(**config_dict) + + model.props = model.params.build_state_block([1], defined_state=True) + + model.props[1].calculate_scaling_factors() + + # Fix state + model.props[1].flow_mol_phase_comp["Liq", "ethylene_oxide"].fix(100) + model.props[1].flow_mol_phase_comp["Liq", "water"].fix(100) + model.props[1].flow_mol_phase_comp["Liq", "sulfuric_acid"].fix(100) + model.props[1].flow_mol_phase_comp["Liq", "ethylene_glycol"].fix(100) + model.props[1].temperature.fix(300) + model.props[1].pressure.fix(101325) + + return model + + @pytest.mark.unit + def test_build(self, model): + # Check state variable values and bounds + assert isinstance(model.props[1].flow_mol_phase_comp, Var) + assert value(model.props[1].flow_mol_phase_comp["Liq", "ethylene_oxide"]) == 100 + assert value(model.props[1].flow_mol_phase_comp["Liq", "water"]) == 100 + assert value(model.props[1].flow_mol_phase_comp["Liq", "sulfuric_acid"]) == 100 + assert ( + value(model.props[1].flow_mol_phase_comp["Liq", "ethylene_glycol"]) == 100 + ) + assert model.props[1].flow_mol_phase_comp["Liq", "ethylene_oxide"].ub == 1000 + assert model.props[1].flow_mol_phase_comp["Liq", "water"].ub == 1000 + assert model.props[1].flow_mol_phase_comp["Liq", "sulfuric_acid"].ub == 1000 + assert model.props[1].flow_mol_phase_comp["Liq", "ethylene_glycol"].ub == 1000 + assert model.props[1].flow_mol_phase_comp["Liq", "ethylene_oxide"].lb == 0 + assert model.props[1].flow_mol_phase_comp["Liq", "water"].lb == 0 + assert model.props[1].flow_mol_phase_comp["Liq", "sulfuric_acid"].lb == 0 + assert model.props[1].flow_mol_phase_comp["Liq", "ethylene_glycol"].lb == 0 + + assert isinstance(model.props[1].pressure, Var) + assert value(model.props[1].pressure) == 101325 + assert model.props[1].pressure.ub == 1e6 + assert model.props[1].pressure.lb == 5e4 + + assert isinstance(model.props[1].temperature, Var) + assert value(model.props[1].temperature) == 300 + assert model.props[1].temperature.ub == 450 + assert model.props[1].temperature.lb == 273.15 + + @pytest.mark.unit + def test_define_state_vars(self, model): + sv = model.props[1].define_state_vars() + + assert len(sv) == 3 + for i in sv: + assert i in ["flow_mol_phase_comp", "temperature", "pressure"] + + @pytest.mark.unit + def test_define_port_members(self, model): + sv = model.props[1].define_state_vars() + + assert len(sv) == 3 + for i in sv: + assert i in ["flow_mol_phase_comp", "temperature", "pressure"] + + @pytest.mark.unit + def test_define_display_vars(self, model): + sv = model.props[1].define_display_vars() + + assert len(sv) == 3 + for i in sv: + assert i in [ + "Molar Flowrate", + "Temperature", + "Pressure", + ] + + @pytest.mark.unit + def test_structural_diagnostics(self, model): + dt = DiagnosticsToolbox(model) + dt.assert_no_structural_warnings() + + @pytest.mark.unit + def test_basic_scaling(self, model): + assert len(model.props[1].scaling_factor) == 20 + assert model.props[1].scaling_factor[model.props[1].flow_mol] == 1e-2 + assert ( + model.props[1].scaling_factor[ + model.props[1].flow_mol_comp["ethylene_oxide"] + ] + == 1e-2 + ) + assert ( + model.props[1].scaling_factor[model.props[1].flow_mol_comp["water"]] == 1e-2 + ) + assert ( + model.props[1].scaling_factor[model.props[1].flow_mol_comp["sulfuric_acid"]] + == 1e-2 + ) + assert ( + model.props[1].scaling_factor[ + model.props[1].flow_mol_comp["ethylene_glycol"] + ] + == 1e-2 + ) + assert ( + model.props[1].scaling_factor[model.props[1].flow_mol_phase["Liq"]] == 1e-2 + ) + assert ( + model.props[1].scaling_factor[ + model.props[1].flow_mol_phase_comp["Liq", "ethylene_oxide"] + ] + == 1e-2 + ) + assert ( + model.props[1].scaling_factor[ + model.props[1].flow_mol_phase_comp["Liq", "water"] + ] + == 1e-2 + ) + assert ( + model.props[1].scaling_factor[ + model.props[1].flow_mol_phase_comp["Liq", "sulfuric_acid"] + ] + == 1e-2 + ) + assert ( + model.props[1].scaling_factor[ + model.props[1].flow_mol_phase_comp["Liq", "ethylene_glycol"] + ] + == 1e-2 + ) + assert ( + model.props[1].scaling_factor[ + model.props[1].mole_frac_comp["ethylene_oxide"] + ] + == 1000 + ) + assert ( + model.props[1].scaling_factor[model.props[1].mole_frac_comp["water"]] + == 1000 + ) + assert ( + model.props[1].scaling_factor[ + model.props[1].mole_frac_comp["sulfuric_acid"] + ] + == 1000 + ) + assert ( + model.props[1].scaling_factor[ + model.props[1].mole_frac_comp["ethylene_glycol"] + ] + == 1000 + ) + assert ( + model.props[1].scaling_factor[ + model.props[1].mole_frac_phase_comp["Liq", "ethylene_oxide"] + ] + == 1000 + ) + assert ( + model.props[1].scaling_factor[ + model.props[1].mole_frac_phase_comp["Liq", "water"] + ] + == 1000 + ) + assert ( + model.props[1].scaling_factor[ + model.props[1].mole_frac_phase_comp["Liq", "sulfuric_acid"] + ] + == 1000 + ) + assert ( + model.props[1].scaling_factor[ + model.props[1].mole_frac_phase_comp["Liq", "ethylene_glycol"] + ] + == 1000 + ) + assert model.props[1].scaling_factor[model.props[1].pressure] == 1e-5 + assert model.props[1].scaling_factor[model.props[1].temperature] == 1e-2 + + @pytest.mark.skipif(solver is None, reason="Solver not available") + @pytest.mark.component + def test_initialize(self, model): + orig_fixed_vars = fixed_variables_set(model) + orig_act_consts = activated_constraints_set(model) + + model.props.initialize(optarg={"tol": 1e-6}) + + assert degrees_of_freedom(model) == 0 + + fin_fixed_vars = fixed_variables_set(model) + fin_act_consts = activated_constraints_set(model) + + assert len(fin_act_consts) == len(orig_act_consts) + assert len(fin_fixed_vars) == len(orig_fixed_vars) + + for c in fin_act_consts: + assert c in orig_act_consts + for v in fin_fixed_vars: + assert v in orig_fixed_vars + + @pytest.mark.skipif(solver is None, reason="Solver not available") + @pytest.mark.component + def test_solve(self, model): + results = solver.solve(model) + + # Check for optimal solution + assert_optimal_termination(results) + + @pytest.mark.unit + def test_numerical_diagnostics(self, model): + dt = DiagnosticsToolbox(model) + dt.assert_no_numerical_warnings() + + @pytest.mark.skipif(solver is None, reason="Solver not available") + @pytest.mark.component + def test_solution(self, model): + # Check results + assert value( + model.props[1].flow_mol_phase_comp["Liq", "ethylene_oxide"] + ) == pytest.approx(100, abs=1e-4) + assert value( + model.props[1].flow_mol_phase_comp["Liq", "water"] + ) == pytest.approx(100, abs=1e-4) + assert value( + model.props[1].flow_mol_phase_comp["Liq", "sulfuric_acid"] + ) == pytest.approx(100, abs=1e-4) + assert value( + model.props[1].flow_mol_phase_comp["Liq", "ethylene_glycol"] + ) == pytest.approx(100, abs=1e-4) + + assert value(model.props[1].temperature) == pytest.approx(300, abs=1e-4) + assert value(model.props[1].pressure) == pytest.approx(101325, abs=1e-4) + + +class TestPerrysProperties(object): + @pytest.fixture(scope="class") + def density_temperatures(self): + # ethylene oxide, water, ethylene glycol reference temperatures + # from Perry's Chemical Engineers' Handbook 7th Ed. 2-94 to 2-98 + components = ["ethylene_oxide", "water", "ethylene_glycol"] + temperatures = dict( + zip(components, [[160.65, 469.15], [273.16, 333.15], [260.15, 719.7]]) + ) + + return temperatures + + @pytest.fixture(scope="class") + def densities(self): + # ethylene oxide, water, ethylene glycol densities from + # Perry's Chemical Engineers' Handbook 7th Ed. 2-94 to 2-98 + components = ["ethylene_oxide", "water", "ethylene_glycol"] + densities = dict( + zip(components, [[23.477, 7.055], [55.583, 54.703], [18.31, 5.234]]) + ) + + return densities + + @pytest.fixture(scope="class") + def heat_capacity_temperatures(self): + # ethylene oxide, water, ethylene glycol reference temperatures + # from Perry's Chemical Engineers' Handbook 7th Ed. 2-170 to 2-174 + components = ["ethylene_oxide", "water", "ethylene_glycol"] + temperatures = dict( + zip(components, [[160.65, 283.85], [273.16, 533.15], [260.15, 493.15]]) + ) + + return temperatures + + @pytest.fixture(scope="class") + def heat_capacities(self): + # ethylene oxide, water, ethylene glycol heat capacities from + # Perry's Chemical Engineers' Handbook 7th Ed. 2-170 to 2-174 + components = ["ethylene_oxide", "water", "ethylene_glycol"] + heat_capacities = dict( + zip( + components, + [[0.8303e5, 0.8693e5], [0.7615e5, 0.8939e5], [1.36661e5, 2.0598e5]], + ) + ) + + return heat_capacities + + @pytest.fixture(scope="class") + def heat_capacity_reference(self): + # ethylene oxide, water, ethylene glycol heat capacities from + # NIST Chemistry WebBook, https://webbook.nist.gov/chemistry/ + components = ["ethylene_oxide", "water", "ethylene_glycol"] + heat_capacities = dict(zip(components, [0.8690e5, 0.7538e5, 0.1498e5])) + + return heat_capacities + + @pytest.fixture(scope="class") + def heat_capacity_reference_temperatures(self): + # ethylene oxide, water, ethylene glycol reference temperatures + # from NIST Chemistry WebBook, https://webbook.nist.gov/chemistry/ + components = ["ethylene_oxide", "water", "ethylene_glycol"] + temperatures = dict(zip(components, [285, 298.0, 298.0])) + + return temperatures + + @pytest.mark.parametrize( + "component", ["ethylene_oxide", "water", "ethylene_glycol"] + ) + @pytest.mark.parametrize("test_point", [0, 1]) + @pytest.mark.skipif(solver is None, reason="Solver not available") + @pytest.mark.component + def test_liquid_densities( + self, component, test_point, density_temperatures, densities + ): + + config_dict_component_only = copy.deepcopy(config_dict) + for key in config_dict["components"].keys(): + if key == component: + pass + else: + config_dict_component_only["components"].pop(key) + + model = ConcreteModel() + + model.params = GenericParameterBlock(**config_dict_component_only) + + model.props = model.params.build_state_block([1], defined_state=True) + + model.props[1].calculate_scaling_factors() + + # Fix state + model.props[1].flow_mol_phase_comp["Liq", component].fix(100) + + # change lower bound for testing + model.props[1].temperature.setlb(150) + + model.props[1].temperature.fix(density_temperatures[component][test_point]) + model.props[1].pressure.fix(101325) + + results = solver.solve(model) + + # Check for optimal solution + assert_optimal_termination(results) + + # Check results + assert value( + pyunits.convert( + model.props[1].dens_mol, to_units=pyunits.kmol / pyunits.m**3 + ) + ) == pytest.approx(densities[component][test_point], rel=1e-4) + + @pytest.mark.parametrize( + "component", ["ethylene_oxide", "water", "ethylene_glycol"] + ) + @pytest.mark.parametrize("test_point", [0, 1]) + @pytest.mark.skipif(solver is None, reason="Solver not available") + @pytest.mark.component + def test_liquid_heat_capacities_enthalpy( + self, + component, + test_point, + heat_capacity_temperatures, + heat_capacities, + heat_capacity_reference, + heat_capacity_reference_temperatures, + ): + + config_dict_component_only = copy.deepcopy(config_dict) + for key in config_dict["components"].keys(): + if key == component: + pass + else: + config_dict_component_only["components"].pop(key) + + model = ConcreteModel() + + model.params = GenericParameterBlock(**config_dict_component_only) + + model.props = model.params.build_state_block([1], defined_state=True) + + model.props[1].calculate_scaling_factors() + + # Fix state + model.props[1].flow_mol_phase_comp["Liq", component].fix(100) + + model.props[1].pressure.fix(101325) + + # calculate reference point + + model.props[1].temperature.fix(heat_capacity_reference_temperatures[component]) + + results = solver.solve(model) + + enth_mol_ref = value(model.props[1].enth_mol) * pyunits.get_units( + model.props[1].enth_mol + ) + temp_ref = heat_capacity_reference_temperatures[component] * pyunits.K + cp_mol_ref = ( + heat_capacity_reference[component] + * 1e-3 + * pyunits.J + / pyunits.mol + / pyunits.K + ) + + # calculate test point + + model.props[1].temperature.fix( + heat_capacity_temperatures[component][test_point] + ) + + results = solver.solve(model) + + enth_mol_test = value(model.props[1].enth_mol) * pyunits.get_units( + model.props[1].enth_mol + ) + temp_test = heat_capacity_temperatures[component][test_point] * pyunits.K + cp_mol_test = ( + heat_capacities[component][test_point] + * 1e-3 + * pyunits.J + / pyunits.mol + / pyunits.K + ) + + # Check for optimal solution + assert_optimal_termination(results) + + # Check results + + assert value( + pyunits.convert(enth_mol_test, to_units=pyunits.J / pyunits.mol) + ) == pytest.approx( + value( + pyunits.convert( + 0.5 * (cp_mol_test + cp_mol_ref) * (temp_test - temp_ref) + + enth_mol_ref, + to_units=pyunits.J / pyunits.mol, + ) + ), + rel=1e-1, # using 1e-1 tol to check against trapezoid rule estimation of integral + ) + + +class TestRPP4Properties(object): + @pytest.fixture(scope="class") + def heat_capacity_temperatures(self): + # ethylene oxide, water, ethylene glycol reference temperatures + # from NIST Chemistry WebBook, https://webbook.nist.gov/chemistry/ + components = ["ethylene_oxide", "water", "ethylene_glycol"] + temperatures = dict(zip(components, [[307.18, 371.23], [545, 632], [500, 600]])) + + return temperatures + + @pytest.fixture(scope="class") + def heat_capacities(self): + # ethylene oxide, water, ethylene glycol heat capacities from + # from NIST Chemistry WebBook, https://webbook.nist.gov/chemistry/ + components = ["ethylene_oxide", "water", "ethylene_glycol"] + heat_capacities = dict( + zip(components, [[49.37, 58.41], [35.70, 36.69], [113.64, 125.65]]) + ) + + return heat_capacities + + @pytest.fixture(scope="class") + def heat_capacity_reference(self): + # ethylene oxide, water, ethylene glycol heat capacities from + # NIST Chemistry WebBook, https://webbook.nist.gov/chemistry/ + components = ["ethylene_oxide", "water", "ethylene_glycol"] + heat_capacities = dict(zip(components, [61.66, 35.22, 97.99])) + + return heat_capacities + + @pytest.fixture(scope="class") + def heat_capacity_reference_temperatures(self): + # ethylene oxide, water, ethylene glycol reference temperatures + # from NIST Chemistry WebBook, https://webbook.nist.gov/chemistry/ + components = ["ethylene_oxide", "water", "ethylene_glycol"] + temperatures = dict(zip(components, [400, 500, 400])) + + return temperatures + + @pytest.fixture(scope="class") + def saturation_pressure_temperatures(self): + # ethylene oxide, water, ethylene glycol reference temperatures + # from NIST Chemistry WebBook, https://webbook.nist.gov/chemistry/ + components = ["ethylene_oxide", "water", "ethylene_glycol"] + temperatures = dict( + zip(components, [[250.01, 300.02], [300.25, 350.16], [387, 473]]) + ) + + return temperatures + + @pytest.fixture(scope="class") + def saturation_pressures(self): + # ethylene oxide, water, ethylene glycol saturation pressures from + # from NIST Chemistry WebBook, https://webbook.nist.gov/chemistry/ + components = ["ethylene_oxide", "water", "ethylene_glycol"] + pressures = dict( + zip( + components, + [[0.2189e5, 1.8604e5], [0.03591e5, 0.4194e5], [0.04257e5, 1.0934e5]], + ) + ) + + return pressures + + @pytest.mark.parametrize( + "component", ["ethylene_oxide", "water", "ethylene_glycol"] + ) + @pytest.mark.parametrize("test_point", [0, 1]) + @pytest.mark.skipif(solver is None, reason="Solver not available") + @pytest.mark.component + def test_vapor_heat_capacities_enthalpy( + self, + component, + test_point, + heat_capacity_temperatures, + heat_capacities, + heat_capacity_reference, + heat_capacity_reference_temperatures, + ): + + config_dict_component_only = copy.deepcopy(config_dict) + for key in config_dict["components"].keys(): + if key == component: + pass + else: + config_dict_component_only["components"].pop(key) + + config_dict_component_only["phases"] = { + "Vap": {"type": VaporPhase, "equation_of_state": Ideal} + } + + model = ConcreteModel() + + model.params = GenericParameterBlock(**config_dict_component_only) + + model.props = model.params.build_state_block([1], defined_state=True) + + model.props[1].calculate_scaling_factors() + + # Fix state + model.props[1].flow_mol_phase_comp["Vap", component].fix(100) + + model.props[1].pressure.fix(101325) + + # calculate reference point + + model.props[1].temperature.fix(heat_capacity_reference_temperatures[component]) + + results = solver.solve(model) + + enth_mol_ref = value(model.props[1].enth_mol) * pyunits.get_units( + model.props[1].enth_mol + ) + temp_ref = heat_capacity_reference_temperatures[component] * pyunits.K + cp_mol_ref = ( + heat_capacity_reference[component] + * 1e-3 + * pyunits.J + / pyunits.mol + / pyunits.K + ) + + # calculate test point + + model.props[1].temperature.fix( + heat_capacity_temperatures[component][test_point] + ) + + results = solver.solve(model) + + enth_mol_test = value(model.props[1].enth_mol) * pyunits.get_units( + model.props[1].enth_mol + ) + temp_test = heat_capacity_temperatures[component][test_point] * pyunits.K + cp_mol_test = ( + heat_capacities[component][test_point] + * 1e-3 + * pyunits.J + / pyunits.mol + / pyunits.K + ) + + # Check for optimal solution + assert_optimal_termination(results) + + # Check results + + assert value( + pyunits.convert(enth_mol_test, to_units=pyunits.J / pyunits.mol) + ) == pytest.approx( + value( + pyunits.convert( + 0.5 * (cp_mol_test + cp_mol_ref) * (temp_test - temp_ref) + + enth_mol_ref, + to_units=pyunits.J / pyunits.mol, + ) + ), + rel=1.15e-1, # using 1.15e-1 tol to check against trapezoid rule estimation of integral + # all values match within 1e-1, except ethylene glycol test point 0 + ) + + @pytest.mark.parametrize( + "component", ["ethylene_oxide", "water", "ethylene_glycol"] + ) + @pytest.mark.parametrize("test_point", [0, 1]) + @pytest.mark.skipif(solver is None, reason="Solver not available") + @pytest.mark.component + def test_saturation_pressures( + self, + component, + test_point, + saturation_pressure_temperatures, + saturation_pressures, + ): + + config_dict_component_only = copy.deepcopy(config_dict) + for key in config_dict["components"].keys(): + if key == component: + pass + else: + config_dict_component_only["components"].pop(key) + + config_dict_component_only["phases"] = { + "Vap": {"type": VaporPhase, "equation_of_state": Ideal} + } + + model = ConcreteModel() + + model.params = GenericParameterBlock(**config_dict_component_only) + + model.props = model.params.build_state_block([1], defined_state=True) + + model.props[1].calculate_scaling_factors() + + # Fix state + model.props[1].flow_mol_phase_comp["Vap", component].fix(100) + + model.props[1].temperature.fix( + saturation_pressure_temperatures[component][test_point] + ) + model.props[1].pressure.fix(101325) + + results = solver.solve(model) + + # Check for optimal solution + assert_optimal_termination(results) + + # Check results + print(value(model.props[1].pressure_sat_comp[component])) + assert value(model.props[1].pressure_sat_comp[component]) == pytest.approx( + saturation_pressures[component][test_point], rel=1.5e-2 + ) # match within 1.5% + + +class TestSulfuricAcidProperties(object): + # sulfuric acid liquid density data from + # CRC Handbook of Chemistry and Physics, 97th Ed., W.M. Haynes pg. 15-41 + @pytest.mark.parametrize( + "temperature_density_data", + [ + [273.15, 1.8517], # K, g/mL + [283.15, 1.8409], + [288.15, 1.8357], + [293.15, 1.8305], + [298.15, 1.8255], + [303.15, 1.8205], + [313.15, 1.8107], + [323.15, 1.8013], + [333.15, 1.7922], + ], + ) + @pytest.mark.skipif(solver is None, reason="Solver not available") + @pytest.mark.component + def test_liquid_densities(self, temperature_density_data): + + config_dict_component_only = copy.deepcopy(config_dict) + for key in config_dict["components"].keys(): + if key == "sulfuric_acid": + pass + else: + config_dict_component_only["components"].pop(key) + + model = ConcreteModel() + + model.params = GenericParameterBlock(**config_dict_component_only) + + model.props = model.params.build_state_block([1], defined_state=True) + + model.props[1].calculate_scaling_factors() + + # Fix state + model.props[1].flow_mol_phase_comp["Liq", "sulfuric_acid"].fix(100) + + # change lower bound for testing + model.props[1].temperature.setlb(150) + + model.props[1].temperature.fix(temperature_density_data[0]) + model.props[1].pressure.fix(101325) + + results = solver.solve(model) + + # Check for optimal solution + assert_optimal_termination(results) + + # Check results + assert value( + pyunits.convert( + model.props[1].dens_mol * model.props[1].params.sulfuric_acid.mw, + to_units=pyunits.g / pyunits.mL, + ) + ) == pytest.approx(temperature_density_data[1], rel=1e-4) + + # sulfuric acid liquid heat capacity data from + # Journal of Physical and Chemical Reference Data 20, 1157 (1991); https:// doi.org/10.1063/1.555899 + @pytest.mark.parametrize( + "temperature_liquid_heat_capacity_data", + [ + [250, 15.1606], # K, Cp/R + [287.93, 16.4195], + [293.14, 16.4653], + [298.15, 16.6818], + [300, 16.7319], + [305.35, 16.8788], + [350, 17.8491], + ], + ) + @pytest.mark.skipif(solver is None, reason="Solver not available") + @pytest.mark.component + def test_liquid_heat_capacities_enthalpy( + self, temperature_liquid_heat_capacity_data + ): + + config_dict_component_only = copy.deepcopy(config_dict) + for key in config_dict["components"].keys(): + if key == "sulfuric_acid": + pass + else: + config_dict_component_only["components"].pop(key) + + model = ConcreteModel() + + model.params = GenericParameterBlock(**config_dict_component_only) + + model.props = model.params.build_state_block([1], defined_state=True) + + model.props[1].calculate_scaling_factors() + + # Fix state + model.props[1].flow_mol_phase_comp["Liq", "sulfuric_acid"].fix(100) + + model.props[1].pressure.fix(101325) + + # calculate reference point + + model.props[1].temperature.fix(200) + + results = solver.solve(model) + + enth_mol_ref = value(model.props[1].enth_mol) * pyunits.get_units( + model.props[1].enth_mol + ) + temp_ref = 200 * pyunits.K + cp_mol_ref = 13.1352 * const.gas_constant + + # calculate test point + + model.props[1].temperature.fix(temperature_liquid_heat_capacity_data[0]) + + results = solver.solve(model) + + enth_mol_test = value(model.props[1].enth_mol) * pyunits.get_units( + model.props[1].enth_mol + ) + temp_test = temperature_liquid_heat_capacity_data[0] * pyunits.K + cp_mol_test = temperature_liquid_heat_capacity_data[1] * const.gas_constant + + # Check for optimal solution + assert_optimal_termination(results) + + # Check results + + assert value( + pyunits.convert(enth_mol_test, to_units=pyunits.J / pyunits.mol) + ) == pytest.approx( + value( + pyunits.convert( + 0.5 * (cp_mol_test + cp_mol_ref) * (temp_test - temp_ref) + + enth_mol_ref, + to_units=pyunits.J / pyunits.mol, + ) + ), + rel=1e-1, # using 1e-1 tol to check against trapezoid rule estimation of integral + ) + + # sulfuric acid vapor heat capacity data from + # NIST Chemistry WebBook, https://webbook.nist.gov/chemistry/ + @pytest.mark.parametrize( + "temperature_vapor_heat_capacity_data", + [ + [300, 84.02], # K, J/mol-K + [400, 97.90], + [500, 107.9], + [600, 115.6], + [700, 121.5], + [800, 126.1], + [900, 129.7], + [1000, 132.6], + [1100, 135.2], + [1200, 137.2], + ], + ) + @pytest.mark.skipif(solver is None, reason="Solver not available") + @pytest.mark.component + def test_vapor_heat_capacities_enthalpy(self, temperature_vapor_heat_capacity_data): + + config_dict_component_only = copy.deepcopy(config_dict) + for key in config_dict["components"].keys(): + if key == "sulfuric_acid": + pass + else: + config_dict_component_only["components"].pop(key) + + config_dict_component_only["phases"] = { + "Vap": {"type": VaporPhase, "equation_of_state": Ideal} + } + + model = ConcreteModel() + + model.params = GenericParameterBlock(**config_dict_component_only) + + model.props = model.params.build_state_block([1], defined_state=True) + + model.props[1].calculate_scaling_factors() + + # Fix state + model.props[1].flow_mol_phase_comp["Vap", "sulfuric_acid"].fix(100) + + model.props[1].pressure.fix(101325) + + # calculate reference point + + model.props[1].temperature.fix(298) + + results = solver.solve(model) + + enth_mol_ref = value(model.props[1].enth_mol) * pyunits.get_units( + model.props[1].enth_mol + ) + temp_ref = 298 * pyunits.K + cp_mol_ref = 83.68 * pyunits.J / pyunits.mol / pyunits.K + + # calculate test point + + model.props[1].temperature.fix(temperature_vapor_heat_capacity_data[0]) + + results = solver.solve(model) + + enth_mol_test = value(model.props[1].enth_mol) * pyunits.get_units( + model.props[1].enth_mol + ) + temp_test = temperature_vapor_heat_capacity_data[0] * pyunits.K + cp_mol_test = ( + temperature_vapor_heat_capacity_data[1] + * pyunits.J + / pyunits.mol + / pyunits.K + ) + + # Check for optimal solution + assert_optimal_termination(results) + + # Check results + + assert value( + pyunits.convert(enth_mol_test, to_units=pyunits.J / pyunits.mol) + ) == pytest.approx( + value( + pyunits.convert( + 0.5 * (cp_mol_test + cp_mol_ref) * (temp_test - temp_ref) + + enth_mol_ref, + to_units=pyunits.J / pyunits.mol, + ) + ), + rel=1e-1, # using 1e-1 tol to check against trapezoid rule estimation of integral + ) + + # sulfuric acid saturation pressure data from + # CRC Handbook of Chemistry and Physics, 97th Ed., W.M. Haynes pg. 6-122 + @pytest.mark.parametrize( + "temperature_saturation_pressure_data", + [ + [295.3722222, 1], # K, Pa + [312.5944444, 10], + [333.15, 100], + [359.2611111, 1000], + [393.15, 10000], + [438.7055556, 100000], + ], + ) + @pytest.mark.skipif(solver is None, reason="Solver not available") + @pytest.mark.component + def test_saturation_pressures(self, temperature_saturation_pressure_data): + + config_dict_component_only = copy.deepcopy(config_dict) + for key in config_dict["components"].keys(): + if key == "sulfuric_acid": + pass + else: + config_dict_component_only["components"].pop(key) + + config_dict_component_only["phases"] = { + "Vap": {"type": VaporPhase, "equation_of_state": Ideal} + } + + model = ConcreteModel() + + model.params = GenericParameterBlock(**config_dict_component_only) + + model.props = model.params.build_state_block([1], defined_state=True) + + model.props[1].calculate_scaling_factors() + + # Fix state + model.props[1].flow_mol_phase_comp["Vap", "sulfuric_acid"].fix(100) + + model.props[1].temperature.fix(temperature_saturation_pressure_data[0]) + model.props[1].pressure.fix(101325) + + results = solver.solve(model) + + # Check for optimal solution + assert_optimal_termination(results) + + # Check results + assert value( + model.props[1].pressure_sat_comp["sulfuric_acid"] + ) == pytest.approx( + temperature_saturation_pressure_data[1], rel=1.5e-2 + ) # match within 1.5% diff --git a/pyproject.toml b/pyproject.toml index 0ef26107..8a4cb88d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -12,7 +12,7 @@ description = "IDAES Process Systems Engineering Examples" readme = "README.md" version = "2.6.dev0" license = {text="BSD"} -requires-python = ">=3.8" +requires-python = ">=3.9" authors = [ {name="The IDAES Project"}, {name="Dan Gunter", email="dkgunter@lbl.gov"} @@ -28,10 +28,10 @@ classifiers = [ "Operating System :: Unix", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Scientific/Engineering :: Mathematics", "Topic :: Scientific/Engineering :: Chemistry", @@ -43,7 +43,7 @@ dependencies = [ # Pyomo "pyomo>=6.5.0", "jupyter", - "importlib_resources ; python_version < '3.9'", # importlib.resources.files() + "importlib_resources", # importlib.resources.files() ] keywords = ["IDAES", "energy systems", "chemical engineering", "process modeling"] @@ -51,7 +51,7 @@ keywords = ["IDAES", "energy systems", "chemical engineering", "process modeling omlt = [ # For Keras/OMLT "omlt", - 'tensorflow<2.16.1 ; python_version < "3.12"', + "tensorflow >= 2.16.1", ] idaes = [ "idaes-pse", # installing IDAES (from release) is opt-in diff --git a/requirements-dev.txt b/requirements-dev.txt index 202127d7..f8255530 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,3 +1,6 @@ --editable .[dev,omlt] idaes-pse @ git+https://github.com/IDAES/idaes-pse@main +# if you want to install idaes-pse from a PR instead of the main branch, +# uncomment the line below replacing XYZ with the PR number +# idaes-pse @ git+https://github.com/IDAES/idaes-pse@refs/pull/XYZ/merge