diff --git a/idaes_examples/mod/power_gen/gas_turbine.py b/idaes_examples/mod/power_gen/gas_turbine.py
index df43452b..8817a735 100644
--- a/idaes_examples/mod/power_gen/gas_turbine.py
+++ b/idaes_examples/mod/power_gen/gas_turbine.py
@@ -234,7 +234,7 @@ def _add_models(self):
support_isentropic_performance_curves=True,
)
- def _add_performance_curves_gts1(self, flow_scale=0.896):
+ def _add_performance_curves_gts1(self, flow_scale=0.896*pyo.units.s/pyo.units.m**3):
"""Add isentropic head and efficiency curves for gas turbine stage 1"""
@self.gts1.performance_curve.Constraint(
@@ -262,9 +262,9 @@ def head_isen_eqn(b, t):
)
return b.head_isentropic[t] == -(
-2085.1 * f**3 + 38433 * f**2 - 150764 * f + 422313
- )
+ )*pyo.units.m**2/pyo.units.s**2
- def _add_performance_curves_gts2(self, flow_scale=0.896):
+ def _add_performance_curves_gts2(self, flow_scale=0.896*pyo.units.s/pyo.units.m**3):
"""Add isentropic head and efficiency curves for gas turbine stage 2"""
@self.gts2.performance_curve.Constraint(
@@ -290,9 +290,9 @@ def head_isen_eqn(b, t):
)
return b.head_isentropic[t] == -(
-1676.3 * f**3 + 34916 * f**2 - 173801 * f + 456957
- )
+ )*pyo.units.m**2/pyo.units.s**2
- def _add_performance_curves_gts3(self, flow_scale=0.896):
+ def _add_performance_curves_gts3(self, flow_scale=0.896*pyo.units.s/pyo.units.m**3):
"""Add isentropic head and efficiency curves for gas turbine stage 3"""
@self.gts3.performance_curve.Constraint(
@@ -320,7 +320,7 @@ def head_isen_eqn(b, t):
)
return b.head_isentropic[t] == -(
-1373.6 * f**3 + 31759 * f**2 - 188528 * f + 500520
- )
+ )*pyo.units.m**2/pyo.units.s**2
def _add_constraints(self):
"""Add addtional flowsheet constraints and expressions"""
diff --git a/idaes_examples/mod/power_gen/hrsg.py b/idaes_examples/mod/power_gen/hrsg.py
index 8c0a3a93..8f03d698 100644
--- a/idaes_examples/mod/power_gen/hrsg.py
+++ b/idaes_examples/mod/power_gen/hrsg.py
@@ -93,6 +93,7 @@ def _add_unit_models(self):
prop_water = self.prop_water
prop_gas = self.prop_gas
+
######### LP Section ###########
self.econ_lp = BoilerHeatExchanger(
doc="LP Economizer",
@@ -100,9 +101,11 @@ def _add_unit_models(self):
cold_side_name="tube",
hot_side_name="shell",
tube={"property_package": prop_water,
- "has_pressure_change": False,},
+ "has_pressure_change": False,
+ },
shell={"property_package": prop_gas,
- "has_pressure_change": False,},
+ "has_pressure_change": False,
+ },
has_holdup=False,
flow_pattern=HeatExchangerFlowPattern.countercurrent,
tube_arrangement=TubeArrangement.inLine,
@@ -115,10 +118,12 @@ def _add_unit_models(self):
property_package=prop_water,
momentum_mixing_type=MomentumMixingType.none,
inlet_list=["econ_lp", "Preheater"],
+ property_package_args={'has_phase_equilibrium':False}
)
self.drum_lp = HelmPhaseSeparator(
doc="Phase seperator for LP evaporator (parital evaporator)",
property_package=prop_water,
+ property_package_args={'has_phase_equilibrium':False}
)
self.evap_lp = HeatExchanger(
doc="LP evaporator heat exchanger section",
@@ -135,6 +140,7 @@ def _add_unit_models(self):
property_package=prop_water,
momentum_mixing_type=MomentumMixingType.none,
inlet_list=["main", "soec_makeup"],
+ property_package_args={'has_phase_equilibrium':False}
)
self.split_fg_lp = Splitter(
doc="LP superheater flue bypass gas splitter",
@@ -166,14 +172,19 @@ def _add_unit_models(self):
doc="LP liquid split to IP and HP pumps",
property_package=prop_water,
outlet_list=["toIP", "toHP"],
+ property_package_args={'has_phase_equilibrium':False}
)
self.pump_ip = WaterPump(
doc="Intermediate pressure pump",
property_package=prop_water,
+ has_phase_equilibrium=False,
+ property_package_args={'has_phase_equilibrium':False}
)
self.pump_hp = WaterPump(
doc="High pressure pump",
property_package=prop_water,
+ has_phase_equilibrium=False,
+ property_package_args={'has_phase_equilibrium':False}
)
######### IP Section ###########
self.econ_ip1 = BoilerHeatExchanger(
@@ -182,9 +193,9 @@ def _add_unit_models(self):
hot_side_name="shell",
cold_side_name="tube",
tube={"property_package": prop_water,
- "has_pressure_change": True,},
+ "has_pressure_change": True},
shell={"property_package": prop_gas,
- "has_pressure_change": True,},
+ "has_pressure_change": True},
has_holdup=False,
flow_pattern=HeatExchangerFlowPattern.countercurrent,
tube_arrangement=TubeArrangement.inLine,
@@ -195,6 +206,7 @@ def _add_unit_models(self):
doc="IP economizer hot water split for natural gas preheater",
property_package=prop_water,
outlet_list=["toIP_ECON2", "toNGPH"],
+ property_package_args={'has_phase_equilibrium':False}
)
self.econ_ip2 = BoilerHeatExchanger(
doc="IP ecomonmizer part 2",
@@ -202,14 +214,15 @@ def _add_unit_models(self):
hot_side_name="shell",
cold_side_name="tube",
tube={"property_package": prop_water,
- "has_pressure_change": True,},
+ "has_pressure_change": True},
shell={"property_package": prop_gas,
- "has_pressure_change": True,},
+ "has_pressure_change": True},
has_holdup=False,
flow_pattern=HeatExchangerFlowPattern.countercurrent,
tube_arrangement=TubeArrangement.inLine,
cold_side_water_phase="Liq",
has_radiation=False,
+ # has_phase_equilibrium=False,
)
self.evap_ip = HeatExchanger(
doc="IP evaporator (total evaporator)",
@@ -219,6 +232,7 @@ def _add_unit_models(self):
tube={"property_package": prop_water},
delta_temperature_callback=delta_temperature_lmtd_callback,
flow_pattern=HeatExchangerFlowPattern.countercurrent,
+
)
self.sh_ip1 = BoilerHeatExchanger(
doc="IP superheater 1",
@@ -226,9 +240,9 @@ def _add_unit_models(self):
hot_side_name="shell",
cold_side_name="tube",
tube={"property_package": prop_water,
- "has_pressure_change": True,},
+ "has_pressure_change": True},
shell={"property_package": prop_gas,
- "has_pressure_change": True,},
+ "has_pressure_change": True},
has_holdup=False,
flow_pattern=HeatExchangerFlowPattern.countercurrent,
tube_arrangement=TubeArrangement.inLine,
@@ -241,11 +255,14 @@ def _add_unit_models(self):
property_package=prop_water,
momentum_mixing_type=MomentumMixingType.none,
inlet_list=["sh_ip1", "Cold_reheat"],
+ property_package_args={'has_phase_equilibrium':False}
)
self.splitter_ip2 = HelmSplitter(
doc="IP Splitter 2, for ejector, reclaimer and dryer",
property_package=prop_water,
outlet_list=["Cold_reheat", "toEjector", "toReclaimer", "toDryer"],
+ # has_phase_equilibrium=False,
+ property_package_args={'has_phase_equilibrium':False}
)
self.sh_ip2 = BoilerHeatExchanger(
doc="IP superheater 2",
@@ -253,9 +270,9 @@ def _add_unit_models(self):
hot_side_name="shell",
cold_side_name="tube",
tube={"property_package": prop_water,
- "has_pressure_change": True,},
+ "has_pressure_change": True},
shell={"property_package": prop_gas,
- "has_pressure_change": True,},
+ "has_pressure_change": True},
has_holdup=False,
flow_pattern=HeatExchangerFlowPattern.countercurrent,
tube_arrangement=TubeArrangement.inLine,
@@ -355,6 +372,7 @@ def _add_unit_models(self):
self.evap_hp_valve = HelmValve(
doc="HP evaporator valve",
property_package=prop_water,
+ property_package_args={'has_phase_equilibrium':False}
)
self.evap_hp_valve.pressure_flow_equation.deactivate()
self.evap_hp = HeatExchanger(
@@ -436,7 +454,7 @@ def _add_flowsheet_constraints(self):
def ip_sat_vap_eqn(b, t):
return (
b.tube.properties_out[t].enth_mol / 1e4
- == (b.tube.properties_out[t].enth_mol_sat_phase["Vap"] + 30) / 1e4
+ == (b.tube.properties_out[t].enth_mol_sat_phase["Vap"] + 30*pyo.units.J/pyo.units.mol) / 1e4
)
@self.evap_hp.Constraint(
@@ -445,7 +463,7 @@ def ip_sat_vap_eqn(b, t):
def hp_sat_vap_eqn(b, t):
return (
b.tube.properties_out[t].enth_mol / 1e4
- == (b.tube.properties_out[t].enth_mol_sat_phase["Vap"] + 30) / 1e4
+ == (b.tube.properties_out[t].enth_mol_sat_phase["Vap"] + 30*pyo.units.J/pyo.units.mol) / 1e4
)
@self.mixer1.Constraint(self.config.time, doc="Mixed state pressure eqn.")
diff --git a/idaes_examples/mod/power_gen/ngcc.py b/idaes_examples/mod/power_gen/ngcc.py
index dc3b9912..3c71e805 100644
--- a/idaes_examples/mod/power_gen/ngcc.py
+++ b/idaes_examples/mod/power_gen/ngcc.py
@@ -360,7 +360,7 @@ def reboiler_duty_eqn(b, t):
@self.Constraint(self.config.time)
def net_power_constraint(b, t):
- return b.net_power_mw[t] / 100.0 == -b.net_power[t] / 1e6 / 100.0
+ return b.net_power_mw[t] / 100.0 == pyo.units.convert(-b.net_power[t] / 100.0,to_units=pyo.units.MW)
@self.Constraint(self.config.time)
def lp_steam_temperature_eqn(b, t):
@@ -438,7 +438,6 @@ def initialize(
self.cap_additional_reboiler_duty.fix()
self.fuel_lhv.fix()
self.fuel_hhv.fix()
-
self.gt.initialize(
load_from="gas_turbine_init.json.gz",
save_to="gas_turbine_init.json.gz",
diff --git a/idaes_examples/mod/power_gen/steam_turbine.py b/idaes_examples/mod/power_gen/steam_turbine.py
index 3774a41e..fc7f8443 100644
--- a/idaes_examples/mod/power_gen/steam_turbine.py
+++ b/idaes_examples/mod/power_gen/steam_turbine.py
@@ -68,31 +68,37 @@ def _add_models(self):
num_lp=11, # full load ave P ratio about 0.7194 with outlet
hp_disconnect=[7], # disconnected for reheater
ip_disconnect=[10], # disconnected for HRSG LP steam mix
+ property_package_args={'has_phase_equilibrium':False}
)
self.steam_turbine_lp_mix = helm.HelmMixer(
doc="Mix LP steam from HRSG into turbine LP steam.",
property_package=self.prop_water,
momentum_mixing_type=helm.MomentumMixingType.none,
inlet_list=["turbine", "hrsg"],
+ property_package_args={'has_phase_equilibrium':False}
)
self.steam_turbine_lp_split = helm.HelmSplitter(
doc="Split off carbon capture steam.",
property_package=self.prop_water,
outlet_list=["turbine", "reboiler", "soec"],
+ property_package_args={'has_phase_equilibrium':False}
)
self.dummy_reheat = gum.Heater(
doc="Dummy reheater, can be deactivated to couple with HRSG.",
property_package=self.prop_water,
+ property_package_args={'has_phase_equilibrium':False}
)
self.main_condenser = helm.HelmNtuCondenser(
doc="Main steam turbine condenser.",
shell={
"has_pressure_change": False,
"property_package": self.prop_water,
+ 'has_phase_equilibrium':False
},
tube={
"has_pressure_change": False,
"property_package": self.prop_water,
+ 'has_phase_equilibrium':False
},
)
self.hotwell = helm.HelmMixer(
@@ -100,19 +106,23 @@ def _add_models(self):
momentum_mixing_type=helm.MomentumMixingType.none,
inlet_list=["condensate", "makeup"],
property_package=self.prop_water,
+ property_package_args={'has_phase_equilibrium':False}
)
self.cond_pump = helm.HelmIsentropicCompressor(
- doc="Hotwell condensate pump", property_package=self.prop_water
+ doc="Hotwell condensate pump", property_package=self.prop_water,
+ property_package_args={'has_phase_equilibrium':False}
)
self.return_mix = helm.HelmMixer(
doc="Mixer for steam streams returning to HRSG.",
property_package=self.prop_water,
+ property_package_args={'has_phase_equilibrium':False},
momentum_mixing_type=helm.MomentumMixingType.none,
inlet_list=["pump", "reboiler", "dryer", "reclaimer"],
)
self.reboiler = gum.Heater(
doc="Carbon capture system reboiler",
property_package=self.prop_water,
+ property_package_args={'has_phase_equilibrium':False}
)
def _add_constraints(self):
@@ -123,7 +133,7 @@ def lp_mixer_pressure_constraint(b, t):
1e-6 * b.turbine_state[t].pressure == 1e-6 * b.mixed_state[t].pressure
)
- self.dummy_reheat.temperature_out = pyo.Var(self.time, initialize=850)
+ self.dummy_reheat.temperature_out = pyo.Var(self.time, initialize=850, units=pyo.units.K)
@self.dummy_reheat.Constraint(self.time)
def temperature_eqn(b, t):
@@ -146,8 +156,8 @@ def return_mixer_pressure_constraint(b, t):
return 1e-6 * b.pump_state[t].pressure == 1e-6 * b.mixed_state[t].pressure
# A few more variables and constraints
- self.hp_steam_temperature = pyo.Var(self.time, initialize=855)
- self.hot_reheat_temperature = pyo.Var(self.time, initialize=855)
+ self.hp_steam_temperature = pyo.Var(self.time, initialize=855, units=pyo.units.K)
+ self.hot_reheat_temperature = pyo.Var(self.time, initialize=855, units=pyo.units.K)
@self.Constraint(self.time)
def main_steam_temperature_eqn(b, t):
@@ -169,7 +179,7 @@ def reheat_steam_temperature_eqn(b, t):
def reboiler_condense_eqn(b, t):
return (
b.control_volume.properties_out[t].enth_mol
- == b.control_volume.properties_out[t].enth_mol_sat_phase["Liq"] - 100
+ == b.control_volume.properties_out[t].enth_mol_sat_phase["Liq"] - 100*pyo.units.J/pyo.units.mol
)
def _add_arcs(self):
diff --git a/idaes_examples/notebooks/docs/flowsheets/power_gen/ngcc/ngcc.ipynb b/idaes_examples/notebooks/docs/flowsheets/power_gen/ngcc/ngcc.ipynb
index ee88f429..db5c6364 100644
--- a/idaes_examples/notebooks/docs/flowsheets/power_gen/ngcc/ngcc.ipynb
+++ b/idaes_examples/notebooks/docs/flowsheets/power_gen/ngcc/ngcc.ipynb
@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 1,
"id": "c886cc60",
"metadata": {
"tags": [
@@ -36,7 +36,7 @@
"Author: John Eslick \n",
"Updated: 2023-06-01 \n",
"\n",
- "This notebook runs a series of net electric power outputs from 650 MW to 160 MW (about 100% to 25%) for an NGCC with 97% CO2 capture. The NGCC model is based on the NETL report \"Cost and Performance Baseline for Fossil Energy Plants Volume 1: Bituminous Coal and Natural Gas to Electricity.\" Sept 2019, Case B31B [resource](https://www.netl.doe.gov/projects/files/CostAndPerformanceBaselineForFossilEnergyPlantsVol1BitumCoalAndNGtoElectBBRRev4-1_092419.pdf)."
+ "This notebook runs a series of net electric power outputs from 650 MW to 160 MW (about 100% to 25%) for an NGCC with 97% CO2 capture. The NGCC model is based on the NETL report \"Cost and Performance Baseline for Fossil Energy Plants Volume 1: Bituminous Coal and Natural Gas to Electricity.\" Sept 2019, Case B31B [resource](https://www.osti.gov/servlets/purl/1893822). Another valuable resource for gaining a deeper understanding of the mathematical model would be the publication referenced [here](https://www.sciencedirect.com/science/article/pii/S1750583617302414). "
]
},
{
@@ -51,7 +51,7 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 2,
"id": "82c19b96",
"metadata": {},
"outputs": [],
@@ -84,7 +84,7 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 3,
"id": "0e45525b",
"metadata": {},
"outputs": [],
@@ -114,7 +114,7 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 4,
"id": "42e0b37d",
"metadata": {},
"outputs": [],
@@ -140,10 +140,742 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 5,
"id": "9913783b",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2024-04-02 18:35:49 [INFO] idaes.init.fs.fg_translate.properties_in: Starting initialization\n",
+ "2024-04-02 18:35:52 [INFO] idaes.init.fs.fg_translate.properties_in: Property initialization: optimal - Optimal Solution Found.\n",
+ "2024-04-02 18:35:52 [INFO] idaes.init.fs.fg_translate.properties_out: Initialisation Complete, skipped.\n",
+ "2024-04-02 18:35:52 [INFO] idaes.init.fs.fg_translate.properties_out: fs.fg_translate.properties_out State Released.\n",
+ "2024-04-02 18:35:52 [INFO] idaes.init.fs.fg_translate: Initialization Complete optimal - Optimal Solution Found.\n",
+ "2024-04-02 18:35:53 [INFO] idaes.init.fs: Open tears\n",
+ "Ipopt 3.13.2: nlp_scaling_method=user-scaling\n",
+ "tol=1e-06\n",
+ "max_iter=200\n",
+ "linear_solver=ma57\n",
+ "ma57_pivtol=1e-05\n",
+ "ma57_pivtolmax=0.1\n",
+ "option_file_name=C:\\Users\\javal\\AppData\\Local\\Temp\\tmp52qqkoo6_ipopt.opt\n",
+ "\n",
+ "Using option file \"C:\\Users\\javal\\AppData\\Local\\Temp\\tmp52qqkoo6_ipopt.opt\".\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 ma57.\n",
+ "\n",
+ "Number of nonzeros in equality constraint Jacobian...: 7594\n",
+ "Number of nonzeros in inequality constraint Jacobian.: 0\n",
+ "Number of nonzeros in Lagrangian Hessian.............: 5933\n",
+ "\n",
+ "Total number of variables............................: 2390\n",
+ " variables with only lower bounds: 87\n",
+ " variables with lower and upper bounds: 1437\n",
+ " variables with only upper bounds: 0\n",
+ "Total number of equality constraints.................: 2390\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.32e+01 1.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n",
+ "Reallocating memory for MA57: lfact (106080)\n",
+ " 1 0.0000000e+00 2.91e+01 8.51e+00 -1.0 4.57e+01 - 8.98e-01 1.24e-01h 4\n",
+ " 2 0.0000000e+00 2.31e+01 2.55e+01 -1.0 3.96e+01 - 9.90e-01 9.90e-01H 1\n",
+ " 3 0.0000000e+00 2.15e-01 6.50e+00 -1.0 3.55e+00 - 9.90e-01 9.91e-01h 1\n",
+ " 4 0.0000000e+00 2.30e-04 1.26e+02 -1.0 1.04e-01 - 9.99e-01 1.00e+00h 1\n",
+ " 5 0.0000000e+00 2.02e-10 1.09e-06 -1.7 8.03e-05 - 1.00e+00 1.00e+00h 1\n",
+ "\n",
+ "Number of Iterations....: 5\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.0190782379359007e-10 2.0190782379359007e-10\n",
+ "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n",
+ "Overall NLP error.......: 2.0190782379359007e-10 2.0190782379359007e-10\n",
+ "\n",
+ "\n",
+ "Number of objective function evaluations = 15\n",
+ "Number of objective gradient evaluations = 6\n",
+ "Number of equality constraint evaluations = 15\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.314\n",
+ "Total CPU secs in NLP function evaluations = 17.762\n",
+ "\n",
+ "EXIT: Optimal Solution Found.\n",
+ "2024-04-02 18:36:14 [INFO] idaes.init.fs: HRSG flow constraint active\n",
+ "Ipopt 3.13.2: nlp_scaling_method=user-scaling\n",
+ "tol=1e-06\n",
+ "max_iter=200\n",
+ "linear_solver=ma57\n",
+ "ma57_pivtol=1e-05\n",
+ "ma57_pivtolmax=0.1\n",
+ "option_file_name=C:\\Users\\javal\\AppData\\Local\\Temp\\tmpso21n7xc_ipopt.opt\n",
+ "\n",
+ "Using option file \"C:\\Users\\javal\\AppData\\Local\\Temp\\tmpso21n7xc_ipopt.opt\".\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 ma57.\n",
+ "\n",
+ "Number of nonzeros in equality constraint Jacobian...: 7599\n",
+ "Number of nonzeros in inequality constraint Jacobian.: 0\n",
+ "Number of nonzeros in Lagrangian Hessian.............: 5933\n",
+ "\n",
+ "Total number of variables............................: 2391\n",
+ " variables with only lower bounds: 87\n",
+ " variables with lower and upper bounds: 1437\n",
+ " variables with only upper bounds: 0\n",
+ "Total number of equality constraints.................: 2391\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.32e+01 1.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n",
+ "Reallocating memory for MA57: lfact (105924)\n",
+ " 1 0.0000000e+00 1.24e+01 2.56e+01 -1.0 2.73e+01 - 8.91e-01 9.90e-01H 1\n",
+ " 2 0.0000000e+00 1.13e-01 6.46e+00 -1.0 5.48e-01 - 9.90e-01 9.91e-01h 1\n",
+ " 3 0.0000000e+00 1.40e-07 9.91e+02 -1.0 4.16e-03 - 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.3996497472135161e-07 1.3996497472135161e-07\n",
+ "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n",
+ "Overall NLP error.......: 1.3996497472135161e-07 1.3996497472135161e-07\n",
+ "\n",
+ "\n",
+ "Number of objective function evaluations = 6\n",
+ "Number of objective gradient evaluations = 4\n",
+ "Number of equality constraint evaluations = 6\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.123\n",
+ "Total CPU secs in NLP function evaluations = 3.607\n",
+ "\n",
+ "EXIT: Optimal Solution Found.\n",
+ "2024-04-02 18:36:21 [INFO] idaes.init.fs: Connect preheater and reheater\n",
+ "Ipopt 3.13.2: nlp_scaling_method=user-scaling\n",
+ "tol=1e-06\n",
+ "max_iter=200\n",
+ "linear_solver=ma57\n",
+ "ma57_pivtol=1e-05\n",
+ "ma57_pivtolmax=0.1\n",
+ "option_file_name=C:\\Users\\javal\\AppData\\Local\\Temp\\tmpfrwwi6vj_ipopt.opt\n",
+ "\n",
+ "Using option file \"C:\\Users\\javal\\AppData\\Local\\Temp\\tmpfrwwi6vj_ipopt.opt\".\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 ma57.\n",
+ "\n",
+ "Number of nonzeros in equality constraint Jacobian...: 7633\n",
+ "Number of nonzeros in inequality constraint Jacobian.: 0\n",
+ "Number of nonzeros in Lagrangian Hessian.............: 5932\n",
+ "\n",
+ "Total number of variables............................: 2399\n",
+ " variables with only lower bounds: 87\n",
+ " variables with lower and upper bounds: 1443\n",
+ " variables with only upper bounds: 0\n",
+ "Total number of equality constraints.................: 2399\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.32e+01 1.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n",
+ "Reallocating memory for MA57: lfact (109406)\n",
+ " 1 0.0000000e+00 2.50e+00 6.82e+05 -1.0 3.22e+05 - 8.19e-01 9.90e-01h 1\n",
+ " 2 0.0000000e+00 1.21e-01 8.25e+04 -1.0 2.95e+04 - 9.89e-01 9.91e-01h 1\n",
+ " 3 0.0000000e+00 1.50e-04 9.99e+02 -1.0 4.23e+02 - 9.90e-01 1.00e+00h 1\n",
+ " 4 0.0000000e+00 3.50e-11 9.00e+03 -1.0 7.23e-02 - 9.90e-01 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....: 3.5015546018257737e-11 3.5015546018257737e-11\n",
+ "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n",
+ "Overall NLP error.......: 3.5015546018257737e-11 3.5015546018257737e-11\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.138\n",
+ "Total CPU secs in NLP function evaluations = 2.173\n",
+ "\n",
+ "EXIT: Optimal Solution Found.\n",
+ "2024-04-02 18:36:26 [INFO] idaes.init.fs: Finish turbine sizing/connect main steam\n",
+ "Ipopt 3.13.2: nlp_scaling_method=user-scaling\n",
+ "tol=1e-06\n",
+ "max_iter=200\n",
+ "linear_solver=ma57\n",
+ "ma57_pivtol=1e-05\n",
+ "ma57_pivtolmax=0.1\n",
+ "option_file_name=C:\\Users\\javal\\AppData\\Local\\Temp\\tmpndc8rtkg_ipopt.opt\n",
+ "\n",
+ "Using option file \"C:\\Users\\javal\\AppData\\Local\\Temp\\tmpndc8rtkg_ipopt.opt\".\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 ma57.\n",
+ "\n",
+ "Number of nonzeros in equality constraint Jacobian...: 7644\n",
+ "Number of nonzeros in inequality constraint Jacobian.: 0\n",
+ "Number of nonzeros in Lagrangian Hessian.............: 5938\n",
+ "\n",
+ "Total number of variables............................: 2402\n",
+ " variables with only lower bounds: 87\n",
+ " variables with lower and upper bounds: 1445\n",
+ " variables with only upper bounds: 0\n",
+ "Total number of equality constraints.................: 2402\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.32e+01 1.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n",
+ "Reallocating memory for MA57: lfact (109187)\n",
+ " 1 0.0000000e+00 1.00e+01 6.97e+04 -1.0 2.62e+05 - 9.17e-01 9.90e-01h 1\n",
+ " 2 0.0000000e+00 6.08e-02 3.29e+03 -1.0 2.43e+03 - 9.90e-01 9.91e-01h 1\n",
+ " 3 0.0000000e+00 4.22e-06 9.99e+02 -1.0 3.96e+01 - 9.90e-01 1.00e+00h 1\n",
+ " 4 0.0000000e+00 1.46e-11 8.99e+03 -1.0 1.84e-03 - 9.90e-01 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....: 1.4551915228366852e-11 1.4551915228366852e-11\n",
+ "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n",
+ "Overall NLP error.......: 1.4551915228366852e-11 1.4551915228366852e-11\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.183\n",
+ "Total CPU secs in NLP function evaluations = 2.799\n",
+ "\n",
+ "EXIT: Optimal Solution Found.\n",
+ "2024-04-02 18:36:32 [INFO] idaes.init.fs: Fix flow coefficent and free throttle\n",
+ "Ipopt 3.13.2: nlp_scaling_method=user-scaling\n",
+ "tol=1e-06\n",
+ "max_iter=200\n",
+ "linear_solver=ma57\n",
+ "ma57_pivtol=1e-05\n",
+ "ma57_pivtolmax=0.1\n",
+ "option_file_name=C:\\Users\\javal\\AppData\\Local\\Temp\\tmpe7xrez0d_ipopt.opt\n",
+ "\n",
+ "Using option file \"C:\\Users\\javal\\AppData\\Local\\Temp\\tmpe7xrez0d_ipopt.opt\".\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 ma57.\n",
+ "\n",
+ "Number of nonzeros in equality constraint Jacobian...: 7640\n",
+ "Number of nonzeros in inequality constraint Jacobian.: 0\n",
+ "Number of nonzeros in Lagrangian Hessian.............: 5933\n",
+ "\n",
+ "Total number of variables............................: 2401\n",
+ " variables with only lower bounds: 87\n",
+ " variables with lower and upper bounds: 1445\n",
+ " variables with only upper bounds: 0\n",
+ "Total number of equality constraints.................: 2401\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.32e+01 1.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n",
+ "Reallocating memory for MA57: lfact (109693)\n",
+ " 1 0.0000000e+00 3.31e-01 1.85e+05 -1.0 1.97e+04 - 9.90e-01 9.90e-01h 1\n",
+ " 2 0.0000000e+00 4.64e-02 3.07e+04 -1.0 1.86e+04 - 9.85e-01 9.91e-01h 1\n",
+ " 3 0.0000000e+00 1.59e-04 1.01e+03 -1.0 1.09e+03 - 9.90e-01 1.00e+00h 1\n",
+ " 4 0.0000000e+00 5.50e-11 8.95e+03 -1.0 6.78e-01 - 9.90e-01 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....: 5.5024429457262158e-11 5.5024429457262158e-11\n",
+ "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n",
+ "Overall NLP error.......: 5.5024429457262158e-11 5.5024429457262158e-11\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.144\n",
+ "Total CPU secs in NLP function evaluations = 2.189\n",
+ "\n",
+ "EXIT: Optimal Solution Found.\n",
+ "2024-04-02 18:36:37 [INFO] idaes.init.fs: Connect feedwater\n",
+ "Ipopt 3.13.2: nlp_scaling_method=user-scaling\n",
+ "tol=1e-06\n",
+ "max_iter=200\n",
+ "linear_solver=ma57\n",
+ "ma57_pivtol=1e-05\n",
+ "ma57_pivtolmax=0.1\n",
+ "option_file_name=C:\\Users\\javal\\AppData\\Local\\Temp\\tmp1n2ijt9k_ipopt.opt\n",
+ "\n",
+ "Using option file \"C:\\Users\\javal\\AppData\\Local\\Temp\\tmp1n2ijt9k_ipopt.opt\".\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 ma57.\n",
+ "\n",
+ "Number of nonzeros in equality constraint Jacobian...: 7660\n",
+ "Number of nonzeros in inequality constraint Jacobian.: 0\n",
+ "Number of nonzeros in Lagrangian Hessian.............: 5948\n",
+ "\n",
+ "Total number of variables............................: 2404\n",
+ " variables with only lower bounds: 87\n",
+ " variables with lower and upper bounds: 1447\n",
+ " variables with only upper bounds: 0\n",
+ "Total number of equality constraints.................: 2404\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.32e+01 1.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n",
+ "Reallocating memory for MA57: lfact (110916)\n",
+ " 1 0.0000000e+00 3.31e-01 1.69e+05 -1.0 1.79e+04 - 9.90e-01 9.90e-01h 1\n",
+ " 2 0.0000000e+00 4.70e-02 2.80e+04 -1.0 1.87e+04 - 9.85e-01 9.91e-01h 1\n",
+ " 3 0.0000000e+00 1.62e-04 1.01e+03 -1.0 1.10e+03 - 9.90e-01 1.00e+00h 1\n",
+ " 4 0.0000000e+00 1.53e-10 8.95e+03 -1.0 6.78e-01 - 9.90e-01 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....: 1.5279510989785194e-10 1.5279510989785194e-10\n",
+ "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n",
+ "Overall NLP error.......: 1.5279510989785194e-10 1.5279510989785194e-10\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.203\n",
+ "Total CPU secs in NLP function evaluations = 3.103\n",
+ "\n",
+ "EXIT: Optimal Solution Found.\n",
+ "2024-04-02 18:36:43 [INFO] idaes.init.fs: Set estimated parameters\n",
+ "2024-04-02 18:36:43 [INFO] idaes.init.fs: Set net power to 646 MW\n",
+ "Ipopt 3.13.2: nlp_scaling_method=user-scaling\n",
+ "tol=1e-06\n",
+ "max_iter=200\n",
+ "linear_solver=ma57\n",
+ "ma57_pivtol=1e-05\n",
+ "ma57_pivtolmax=0.1\n",
+ "option_file_name=C:\\Users\\javal\\AppData\\Local\\Temp\\tmp7i8vn24e_ipopt.opt\n",
+ "\n",
+ "Using option file \"C:\\Users\\javal\\AppData\\Local\\Temp\\tmp7i8vn24e_ipopt.opt\".\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 ma57.\n",
+ "\n",
+ "Number of nonzeros in equality constraint Jacobian...: 7661\n",
+ "Number of nonzeros in inequality constraint Jacobian.: 0\n",
+ "Number of nonzeros in Lagrangian Hessian.............: 5948\n",
+ "\n",
+ "Total number of variables............................: 2404\n",
+ " variables with only lower bounds: 87\n",
+ " variables with lower and upper bounds: 1447\n",
+ " variables with only upper bounds: 0\n",
+ "Total number of equality constraints.................: 2404\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.32e+01 1.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n",
+ "Reallocating memory for MA57: lfact (112066)\n",
+ "Error in an AMPL evaluation. Run with \"halt_on_ampl_error yes\" to see details.\n",
+ "Warning: Cutting back alpha due to evaluation error\n",
+ "Error in an AMPL evaluation. Run with \"halt_on_ampl_error yes\" to see details.\n",
+ "Warning: Cutting back alpha due to evaluation error\n",
+ "Error in an AMPL evaluation. Run with \"halt_on_ampl_error yes\" to see details.\n",
+ "Warning: Cutting back alpha due to evaluation error\n",
+ "Error in an AMPL evaluation. Run with \"halt_on_ampl_error yes\" to see details.\n",
+ "Warning: Cutting back alpha due to evaluation error\n",
+ " 1 0.0000000e+00 3.27e+01 1.63e+03 -1.0 5.87e+05 - 7.47e-02 1.48e-02h 7\n",
+ "Error in an AMPL evaluation. Run with \"halt_on_ampl_error yes\" to see details.\n",
+ "Warning: Cutting back alpha due to evaluation error\n",
+ "Error in an AMPL evaluation. Run with \"halt_on_ampl_error yes\" to see details.\n",
+ "Warning: Cutting back alpha due to evaluation error\n",
+ "Error in an AMPL evaluation. Run with \"halt_on_ampl_error yes\" to see details.\n",
+ "Warning: Cutting back alpha due to evaluation error\n",
+ "Error in an AMPL evaluation. Run with \"halt_on_ampl_error yes\" to see details.\n",
+ "Warning: Cutting back alpha due to evaluation error\n",
+ " 2 0.0000000e+00 3.17e+01 7.12e+03 -1.0 5.58e+05 - 1.48e-01 2.95e-02h 6\n",
+ "Error in an AMPL evaluation. Run with \"halt_on_ampl_error yes\" to see details.\n",
+ "Warning: Cutting back alpha due to evaluation error\n",
+ "Error in an AMPL evaluation. Run with \"halt_on_ampl_error yes\" to see details.\n",
+ "Warning: Cutting back alpha due to evaluation error\n",
+ "Error in an AMPL evaluation. Run with \"halt_on_ampl_error yes\" to see details.\n",
+ "Warning: Cutting back alpha due to evaluation error\n",
+ " 3 0.0000000e+00 3.08e+01 1.09e+04 -1.0 5.11e+05 - 3.58e-01 2.96e-02h 6\n",
+ "Error in an AMPL evaluation. Run with \"halt_on_ampl_error yes\" to see details.\n",
+ "Warning: Cutting back alpha due to evaluation error\n",
+ "Error in an AMPL evaluation. Run with \"halt_on_ampl_error yes\" to see details.\n",
+ "Warning: Cutting back alpha due to evaluation error\n",
+ "Error in an AMPL evaluation. Run with \"halt_on_ampl_error yes\" to see details.\n",
+ "Warning: Cutting back alpha due to evaluation error\n",
+ " 4 0.0000000e+00 2.90e+01 1.94e+04 -1.0 4.74e+05 - 3.73e-01 5.92e-02h 5\n",
+ "Error in an AMPL evaluation. Run with \"halt_on_ampl_error yes\" to see details.\n",
+ "Warning: Cutting back alpha due to evaluation error\n",
+ "Error in an AMPL evaluation. Run with \"halt_on_ampl_error yes\" to see details.\n",
+ "Warning: Cutting back alpha due to evaluation error\n",
+ "Error in an AMPL evaluation. Run with \"halt_on_ampl_error yes\" to see details.\n",
+ "Warning: Cutting back alpha due to evaluation error\n",
+ " 5 0.0000000e+00 2.55e+01 3.35e+04 -1.0 4.18e+05 - 6.93e-01 1.19e-01h 4\n",
+ "Error in an AMPL evaluation. Run with \"halt_on_ampl_error yes\" to see details.\n",
+ "Warning: Cutting back alpha due to evaluation error\n",
+ "Error in an AMPL evaluation. Run with \"halt_on_ampl_error yes\" to see details.\n",
+ "Warning: Cutting back alpha due to evaluation error\n",
+ " 6 0.0000000e+00 1.94e+01 2.21e+04 -1.0 3.44e+05 - 4.90e-01 2.38e-01h 3\n",
+ " 7 0.0000000e+00 1.93e+01 2.21e+05 -1.0 2.55e+05 - 9.85e-01 9.60e-01h 1\n",
+ " 8 0.0000000e+00 5.18e+00 2.10e+04 -1.0 2.54e+04 - 9.90e-01 9.90e-01h 1\n",
+ " 9 0.0000000e+00 6.59e-01 1.88e+03 -1.0 1.57e+03 - 9.90e-01 1.00e+00h 1\n",
+ "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n",
+ " 10 0.0000000e+00 1.67e-03 8.51e+03 -1.0 1.47e+02 - 9.91e-01 1.00e+00h 1\n",
+ " 11 0.0000000e+00 6.00e-09 3.02e-05 -1.0 2.34e-01 - 1.00e+00 1.00e+00h 1\n",
+ "\n",
+ "Number of Iterations....: 11\n",
+ "\n",
+ " (scaled) (unscaled)\n",
+ "Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00\n",
+ "Dual infeasibility......: 0.0000000000000000e+00 0.0000000000000000e+00\n",
+ "Constraint violation....: 5.9989284650896479e-09 5.9989284650896479e-09\n",
+ "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n",
+ "Overall NLP error.......: 5.9989284650896479e-09 5.9989284650896479e-09\n",
+ "\n",
+ "\n",
+ "Number of objective function evaluations = 18\n",
+ "Number of objective gradient evaluations = 12\n",
+ "Number of equality constraint evaluations = 37\n",
+ "Number of inequality constraint evaluations = 0\n",
+ "Number of equality constraint Jacobian evaluations = 12\n",
+ "Number of inequality constraint Jacobian evaluations = 0\n",
+ "Number of Lagrangian Hessian evaluations = 11\n",
+ "Total CPU secs in IPOPT (w/o function evaluations) = 0.463\n",
+ "Total CPU secs in NLP function evaluations = 16.192\n",
+ "\n",
+ "EXIT: Optimal Solution Found.\n",
+ "2024-04-02 18:37:02 [INFO] idaes.init.fs: Unfix GT exhaust pressure and fix stack pressure\n",
+ "Ipopt 3.13.2: nlp_scaling_method=user-scaling\n",
+ "tol=1e-06\n",
+ "max_iter=200\n",
+ "linear_solver=ma57\n",
+ "ma57_pivtol=1e-05\n",
+ "ma57_pivtolmax=0.1\n",
+ "option_file_name=C:\\Users\\javal\\AppData\\Local\\Temp\\tmpqrpf_vz__ipopt.opt\n",
+ "\n",
+ "Using option file \"C:\\Users\\javal\\AppData\\Local\\Temp\\tmpqrpf_vz__ipopt.opt\".\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 ma57.\n",
+ "\n",
+ "Number of nonzeros in equality constraint Jacobian...: 7661\n",
+ "Number of nonzeros in inequality constraint Jacobian.: 0\n",
+ "Number of nonzeros in Lagrangian Hessian.............: 5948\n",
+ "\n",
+ "Total number of variables............................: 2404\n",
+ " variables with only lower bounds: 87\n",
+ " variables with lower and upper bounds: 1447\n",
+ " variables with only upper bounds: 0\n",
+ "Total number of equality constraints.................: 2404\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.50e+01 1.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n",
+ "Reallocating memory for MA57: lfact (112053)\n",
+ " 1 0.0000000e+00 3.49e-01 1.06e+04 -1.0 2.89e+03 - 9.90e-01 9.90e-01h 1\n",
+ " 2 0.0000000e+00 3.15e-03 4.83e+02 -1.0 3.02e+03 - 9.89e-01 9.91e-01h 1\n",
+ " 3 0.0000000e+00 2.95e-07 9.97e+02 -1.0 3.74e+01 - 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.9490774977602996e-07 2.9490774977602996e-07\n",
+ "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n",
+ "Overall NLP error.......: 2.9490774977602996e-07 2.9490774977602996e-07\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.187\n",
+ "Total CPU secs in NLP function evaluations = 3.384\n",
+ "\n",
+ "EXIT: Optimal Solution Found.\n",
+ "2024-04-02 18:37:12 [INFO] idaes.init.fs: Initialization saved to ngcc_init.json.gz\n",
+ "Ipopt 3.13.2: nlp_scaling_method=user-scaling\n",
+ "tol=1e-06\n",
+ "max_iter=200\n",
+ "linear_solver=ma57\n",
+ "ma57_pivtol=1e-05\n",
+ "ma57_pivtolmax=0.1\n",
+ "option_file_name=C:\\Users\\javal\\AppData\\Local\\Temp\\tmplc4cn87b_ipopt.opt\n",
+ "\n",
+ "Using option file \"C:\\Users\\javal\\AppData\\Local\\Temp\\tmplc4cn87b_ipopt.opt\".\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 ma57.\n",
+ "\n",
+ "Number of nonzeros in equality constraint Jacobian...: 7661\n",
+ "Number of nonzeros in inequality constraint Jacobian.: 0\n",
+ "Number of nonzeros in Lagrangian Hessian.............: 5948\n",
+ "\n",
+ "Total number of variables............................: 2404\n",
+ " variables with only lower bounds: 87\n",
+ " variables with lower and upper bounds: 1447\n",
+ " variables with only upper bounds: 0\n",
+ "Total number of equality constraints.................: 2404\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.50e+01 1.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n",
+ "Reallocating memory for MA57: lfact (112053)\n",
+ " 1 0.0000000e+00 3.49e-01 1.12e+04 -1.0 3.06e+03 - 9.90e-01 9.90e-01h 1\n",
+ " 2 0.0000000e+00 3.15e-03 5.15e+02 -1.0 3.02e+03 - 9.89e-01 9.91e-01h 1\n",
+ " 3 0.0000000e+00 2.95e-07 9.98e+02 -1.0 3.74e+01 - 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.9462353268172592e-07 2.9462353268172592e-07\n",
+ "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n",
+ "Overall NLP error.......: 2.9462353268172592e-07 2.9462353268172592e-07\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.192\n",
+ "Total CPU secs in NLP function evaluations = 3.187\n",
+ "\n",
+ "EXIT: Optimal Solution Found.\n"
+ ]
+ }
+ ],
"source": [
"m = pyo.ConcreteModel()\n",
"m.fs = ngcc.NgccFlowsheet(dynamic=False)\n",
@@ -167,10 +899,2533 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 9,
"id": "ca2cf4a0",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\n",
+ "Gas Turbine Section\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ ""
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\n",
+ "HRSG Section\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ ""
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\n",
+ "Steam Turbine Section\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ ""
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
"source": [
"def display_pfd():\n",
" print(\"\\n\\nGas Turbine Section\\n\")\n",
@@ -198,7 +3453,7 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 10,
"id": "70964b53",
"metadata": {},
"outputs": [],
@@ -221,10 +3476,31 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 11,
"id": "3602759a",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 11,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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XnsNhYWFMDY2hpmZmXTFp3379hg1ahRGjBjR4N93RURERHQ/NRqg3K5dO6xatQqfffYZTp48iYsXL+LOnTto2rQpfH190bRp0/qqk4iIiKhWavV1EUZGRvD19YWvr28dl0NERERUt/g0FhEREckaww4RERHJGsMOERERyRrDDhEREclajcNOWVkZTExMcOrUqfqoh4iIiKhO1TjsKJVKtGjRAuXl5fVRDxEREVGdqtVtrOnTp2PatGm4fv16XddDREREVKdq9Tk7//73v3Hu3Dm4uLjAzc0NVlZWeu1Hjx6tk+KIiIiIHletws7AgQPruAwiIiKi+lGrsPP+++/XdR1ERERE9aLWj57n5+dj9erViI6OlsbuHD16FJcvX66z4oiIiIgeV62u7Jw8eRIhISFQq9W4cOECRo8eDTs7O2zYsAE5OTn44osv6rpOIiIiolqp1ZWdSZMmYcSIETh79izMzc2l5c8//zz2799fZ8URERERPa5ahZ3U1FS8+eabVZY3a9YMOp3usYsiIiIiqiu1CjtmZmYoLCyssvzMmTNwcHB47KKIiIiI6kqtws4LL7yAWbNmoaysDACgUCiQk5ODqVOnIiwsrE4LJCIiInoctQo7CxcuRFFRERwdHXHnzh0EBQWhdevWaNKkCT766KO6rpGIiIio1mr1NJZarcbOnTvxv//9DydPnkRRURGee+45hISE1HV9RERERI+lVmGnuLgY5ubmCAwMRGBgYF3XRERERFRnahV2bGxs0LlzZwQFBaFbt27QarWwsLCo69qIiIiIHlutxuzs2rULvXv3RkpKCl544QXY2toiMDAQ06dPx86dO+u6RiIiIqJaq1XYCQwMxLRp07Bjxw7k5+dj7969aN26NebPn4/evXvXdY1EREREtVar21jAvc/USUxMlKaSkhL069cPwcHBdVgeERER0eOpVdhp1qwZ7ty5g+DgYAQHB2Pq1Klo27YtFApFXddHRERE9FhqdRvLwcEBt2/fhk6ng06nQ25uLu7cuVPXtRERERE9tlqFnePHj0On0+G9995DSUkJpk2bhqZNm6JLly6YPn16XddIREREVGu1HrNjY2ODF154AQEBAejSpQt+/PFHfPXVV0hJSeGnKBMREVGjUauws2HDBmlgckZGBuzs7BAYGIiFCxciKCiormskIiIiqrVahZ2xY8eia9eu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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
"source": [
"from matplotlib import pyplot as plt\n",
"\n",
@@ -267,7 +3543,7 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 12,
"id": "cd410c4b",
"metadata": {},
"outputs": [],
@@ -328,6 +3604,14 @@
" plt.title(\"Net Power vs. Efficiency\")\n",
" plt.show()"
]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "8a19640d",
+ "metadata": {},
+ "outputs": [],
+ "source": []
}
],
"metadata": {
diff --git a/idaes_examples/notebooks/docs/flowsheets/power_gen/ngcc/ngcc_init.json.gz b/idaes_examples/notebooks/docs/flowsheets/power_gen/ngcc/ngcc_init.json.gz
index ecb2deef..c23d18b2 100644
Binary files a/idaes_examples/notebooks/docs/flowsheets/power_gen/ngcc/ngcc_init.json.gz and b/idaes_examples/notebooks/docs/flowsheets/power_gen/ngcc/ngcc_init.json.gz differ