diff --git a/idaes_examples/archive/power_gen/ngfc/NGFC_flowsheet_init.json.gz b/idaes_examples/archive/power_gen/ngfc/NGFC_flowsheet_init.json.gz index 422b947f..f3c19160 100644 Binary files a/idaes_examples/archive/power_gen/ngfc/NGFC_flowsheet_init.json.gz and b/idaes_examples/archive/power_gen/ngfc/NGFC_flowsheet_init.json.gz differ diff --git a/idaes_examples/archive/power_gen/ngfc/NGFC_flowsheet_solution.json.gz b/idaes_examples/archive/power_gen/ngfc/NGFC_flowsheet_solution.json.gz index 0bb58cfa..74f0cd47 100644 Binary files a/idaes_examples/archive/power_gen/ngfc/NGFC_flowsheet_solution.json.gz and b/idaes_examples/archive/power_gen/ngfc/NGFC_flowsheet_solution.json.gz differ diff --git a/idaes_examples/archive/power_gen/ngfc/NGFC_results.svg b/idaes_examples/archive/power_gen/ngfc/NGFC_results.svg index 6588363e..6f97ba45 100644 --- a/idaes_examples/archive/power_gen/ngfc/NGFC_results.svg +++ b/idaes_examples/archive/power_gen/ngfc/NGFC_results.svg @@ -1,7 +1,7 @@ -image/svg+xml - +image/svg+xml + - + @@ -73,431 +73,431 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + For SVG HRSG - + - + Sheet.1 - + - + Sheet.2 Steam - - - Steam - + + + Steam + Sheet.3 - + - + Sheet.4 - + - + Sheet.5 SOFC Stack - - - SOFC Stack - + + + SOFC Stack + Sheet.6 - + - + Sheet.7 Air - - - Air - + + + Air + Sheet.8 - + - + Sheet.9 Cathode - - - Cathode - + + + Cathode + Sheet.10 Electrolyte - - - Electrolyte - + + + Electrolyte + Sheet.11 Anode - - - Anode - + + + Anode + AC source - - - - + + + + - - - - - + + + + + - + - - - + + + Inverter - + Sheet.14 - + Sheet.15 1 - - - + + + - + Sheet.16 Inverter - - - Inverter - + + + Inverter + Sheet.17 - + - + Sheet.18 - + - + Sheet.19 - + - + Sheet.20 - + - + Sheet.21 - + - + Dynamic connector.122 - + - + Sheet.23 - + - + Dynamic connector.124 - + - + Dynamic connector.125 - + - + Sheet.26 AC - - - AC - + + + AC + Dynamic connector.127 - + - + Sheet.29 Cathode Blower - - - Cathode Blower - + + + Cathode Blower + Sheet.31 Cathode HTX - - - Cathode HTX - + + + Cathode HTX + Sheet.32 Autothermal - - - Autothermal - + + + Autothermal + Dynamic connector.78 - + - + Dynamic connector.134 - + - + Sheet.35 - + - + Dynamic connector.136 - + - + Dynamic connector.138 - + - + Dynamic connector.137 - + - + Dynamic connector.139 - + - + Sheet.40 - + - + Sheet.41 - + - + Sheet.43 - + - + Dynamic connector.144 - + - + Dynamic connector.109 - + - + Dynamic connector.110 - + - + Sheet.50 Preheat - - - Preheat - + + + Preheat + Sheet.51 Autothermal Reformer - - - Autothermal Reformer - + + + Autothermal Reformer + Sheet.52 Anode HTX - - - Anode HTX - + + + Anode HTX + Sheet.53 Combustor - - - Combustor - + + + Combustor + Sheet.54 Natural Gas - - - Natural Gas - + + + Natural Gas + Dynamic connector.155 - + - + Sheet.62 - + - + Sheet.64 - + - + Dynamic connector.167 - + - + Sheet.66 - + - + Sheet.67 Air - - - Air - + + + Air + Sheet.68 Heat Recovery Steam Generator - - - Heat Recovery Steam Generator - + + + Heat Recovery Steam Generator + Sheet.69 Steam Turbine Generator - - - Steam Turbine Generator - + + + Steam Turbine Generator + Dynamic connector.154 - + - + AC source.160 - - - - + + + + - - - - - + + + + + - + Sheet.72 AC - - - AC - + + + AC + Dynamic connector.170 - + - + Dynamic connector.172 - + - + Dynamic connector.191 - + - + Dynamic connector.192 - + - + Dynamic connector.132 - + - + Dynamic connector.193 - + - + Dynamic connector.42 - + - + Dynamic connector.96 - + - + Sheet.98 Pre-Reformer - - - Pre-Reformer + + + Pre-Reformer -621 K137 kPaSYN_INT:P:3,642 mol/sF:979 K137 kPaANODE_RECT:P:4,084 mol/sF:890 K105 kPaCATH_INT:P:34,197 mol/sF:998 K104 kPaCATH_OUTT:P:32,525 mol/sF:998 K104 kPaCATH_HX_HIT:P:16,262 mol/sF:288 K101 kPaAIRT:P:17,934 mol/sF:834 K137 kPaANODE_INT:P:8,041 mol/sF:978 K137 kPaANO_HX_HIT:P:5,084 mol/sF:825 K136 kPaANO_HX_HOT:P:5,084 mol/sF:814 K137 kPaANO_HX_CIT:P:7,727 mol/sF:978 K137 kPaANODE_OUTT:P:9,169 mol/sF:476 K102 kPaCATH_HX_HOT:P:16,262 mol/sF:1,002 K105 kPaCATH_RECT:P:16,262 mol/sF:297 K111 kPaCATH_HX_CIT:P:17,934 mol/sF:787 K105 kPaCATH_HX_COT:P:17,934 mol/sF:348.30.6617.3ROM InputsFuel Inlet Temperature (C):Internal Reformation fraction:Air Inlet Temperature (C):4,000Avg. Curent Density (A/m^2):0.5Air Recirculation fraction:2.1Oxygen to Carbon ratio:Fuel Utilization fraction:Air Utilization fraction:0.80.449559.3ROM OutputsDC Stack Power (MW):0.8668Stack Voltage (V):30.6265.17-673.92Heat Duties (MW)Anode Heat Exchanger:Cathode Heat Exchanger:Anode:48.1Reformer Recuperator:114.57Cathode:422 K206 kPaSTEAM_INT:P:464 mol/sF:310 K203 kPaAIR_INT:P:1,333 mol/sF:747 K206 kPaREF_INT:P:465 mol/sF:288 K3,447 kPaFUEL_INT:P:1,161 mol/sF:1,060 K137 kPaREF_OUTT:P:2,944 mol/sF:1,265 K95 kPaCOMB_OUTT:P:9,545 mol/sF:405 K94 kPaANOD_EXHT:P:9,546 mol/sF:476 K102 kPaCOMB_AIRT:P:4,878 mol/sF:405 K101 kPaCATH_EXHT:P:11,384 mol/sF:476 K102 kPaCATH_HRSG_INT:P:11,384 mol/sF:107.321.110.4Performance SummarySteam Turbine Power (MW):NG Expander Power (MW):Auxiliary Load (MW):542.6AC Stack Power (MW):660.6Net Power (MW):Thermal Input (MW):HHV Efficiency (%):CO2 Emissions (g/kWh):1,056.0291.262.561,012 K3,447 kPaHOT_FUELT:P:1,161 mol/sF: \ No newline at end of file +621 K137 kPaSYN_INT:P:3,639 mol/sF:979 K137 kPaANODE_RECT:P:4,076 mol/sF:890 K105 kPaCATH_INT:P:34,162 mol/sF:998 K104 kPaCATH_OUTT:P:32,492 mol/sF:998 K104 kPaCATH_HX_HIT:P:16,246 mol/sF:288 K101 kPaAIRT:P:17,916 mol/sF:834 K137 kPaANODE_INT:P:8,029 mol/sF:978 K137 kPaANO_HX_HIT:P:5,080 mol/sF:825 K136 kPaANO_HX_HOT:P:5,080 mol/sF:814 K137 kPaANO_HX_CIT:P:7,715 mol/sF:978 K137 kPaANODE_OUTT:P:9,157 mol/sF:476 K102 kPaCATH_HX_HOT:P:16,246 mol/sF:1,002 K105 kPaCATH_RECT:P:16,246 mol/sF:297 K111 kPaCATH_HX_CIT:P:17,916 mol/sF:787 K105 kPaCATH_HX_COT:P:17,916 mol/sF:348.30.6617.3ROM InputsFuel Inlet Temperature (C):Internal Reformation fraction:Air Inlet Temperature (C):4,000Avg. Curent Density (A/m^2):0.5Air Recirculation fraction:2.1Oxygen to Carbon ratio:Fuel Utilization fraction:Air Utilization fraction:0.80.449558.7ROM OutputsDC Stack Power (MW):0.8668Stack Voltage (V):30.61264.97-673.02Heat Duties (MW)Anode Heat Exchanger:Cathode Heat Exchanger:Anode:48.0Reformer Recuperator:114.32Cathode:422 K206 kPaSTEAM_INT:P:464 mol/sF:310 K203 kPaAIR_INT:P:1,332 mol/sF:746 K206 kPaREF_INT:P:464 mol/sF:288 K3,447 kPaFUEL_INT:P:1,161 mol/sF:1,060 K137 kPaREF_OUTT:P:2,942 mol/sF:1,265 K95 kPaCOMB_OUTT:P:9,537 mol/sF:405 K94 kPaANOD_EXHT:P:9,537 mol/sF:476 K102 kPaCOMB_AIRT:P:4,873 mol/sF:405 K101 kPaCATH_EXHT:P:11,372 mol/sF:476 K102 kPaCATH_HRSG_INT:P:11,372 mol/sF:107.121.110.3Performance SummarySteam Turbine Power (MW):NG Expander Power (MW):Auxiliary Load (MW):541.9AC Stack Power (MW):659.8Net Power (MW):Thermal Input (MW):HHV Efficiency (%):CO2 Emissions (g/kWh):1,056.0291.262.481,010 K3,447 kPaHOT_FUELT:P:1,161 mol/sF: \ No newline at end of file diff --git a/idaes_examples/archive/power_gen/ngfc/ngfc_flowsheet_src.ipynb b/idaes_examples/archive/power_gen/ngfc/ngfc_flowsheet_src.ipynb index 23ea98da..58e0f253 100644 --- a/idaes_examples/archive/power_gen/ngfc/ngfc_flowsheet_src.ipynb +++ b/idaes_examples/archive/power_gen/ngfc/ngfc_flowsheet_src.ipynb @@ -2,8 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": null, - "id": "6f137197", + "execution_count": 1, "metadata": { "tags": [ "header", @@ -64,21 +63,9 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "from IPython.display import Image\n", "\n", @@ -154,11 +141,12 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "import os\n", + "import logging\n", "\n", "# Import Pyomo libraries\n", "import pyomo.environ as pyo\n", @@ -167,14 +155,17 @@ "# Import IDAES core\n", "from idaes.core import FlowsheetBlock\n", "from idaes.core.util import model_serializer as ms\n", + "from idaes.core.util.model_statistics import degrees_of_freedom\n", "\n", "# Import NGFC model components\n", - "from idaes_examples.mod.power_gen import NGFC_flowsheet as NGFC" + "from idaes_examples.mod.power_gen import NGFC_flowsheet as NGFC\n", + "\n", + "import idaes.logger as idaeslog" ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -182,14 +173,41 @@ "m = pyo.ConcreteModel(name=\"NGFC no CCS\")\n", "m.fs = FlowsheetBlock(dynamic=False)\n", "\n", - "# create the solver\n", - "solver = pyo.SolverFactory(\"ipopt\")\n", - "solver.options = {\"bound_push\": 1e-16}" + "# create the solvers\n", + "# the SOFC ROM is very large and using the ma97 linear solver significantly reduces the solve time\n", + "solver_ma97 = pyo.SolverFactory(\"ipopt\")\n", + "solver_ma97.options = {\n", + " \"max_iter\": 200,\n", + " \"tol\": 1e-7,\n", + " \"bound_push\": 1e-5,\n", + " \"mu_init\": 1e-2,\n", + " \"linear_solver\": \"ma97\",\n", + " \"nlp_scaling_method\": \"user-scaling\"\n", + "}\n", + "\n", + "# the ma57 linear solver is better for the initial solve before the ROM is built\n", + "solver_ma57 = pyo.SolverFactory(\"ipopt\")\n", + "solver_ma57.options = {\n", + " \"max_iter\": 200,\n", + " \"tol\": 1e-7,\n", + " \"bound_push\": 1e-5,\n", + " \"linear_solver\": \"ma57\",\n", + " \"OF_ma57_automatic_scaling\": \"yes\",\n", + " \"nlp_scaling_method\": \"user-scaling\"\n", + "}\n", + "\n", + "# suppress warnings about missing scaling factors\n", + "scaling_log = idaeslog.getLogger(\"idaes.core.util.scaling\")\n", + "scaling_log.setLevel(idaeslog.ERROR)\n", + "\n", + "# suppress NL writer warnings\n", + "nl_writer_log = logging.getLogger(\"pyomo.repn.plugins.nl_writer\")\n", + "nl_writer_log.setLevel(logging.ERROR)" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 5, "metadata": { "scrolled": true }, @@ -199,178 +217,23 @@ "output_type": "stream", "text": [ "Scaling flowsheet variables\n", - "overwriting mole_frac lower bound, set to 0 to remove warnings\n", - "Scaling flowsheet constraints\n", - "Calculating scaling factors\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,H2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,CO]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,H2O]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,CO2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,CH4]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,C2H6]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,C3H8]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,C4H10]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,N2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,O2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,Ar]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,H2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,CO]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,H2O]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,CO2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,CH4]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,C2H6]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,C3H8]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,C4H10]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,N2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,O2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,Ar]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,H2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,CO]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,H2O]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,CO2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,CH4]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,C2H6]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,C3H8]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,C4H10]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,N2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,O2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,Ar]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,H2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,CO]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,H2O]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,CO2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,CH4]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,C2H6]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,C3H8]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,C4H10]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,N2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,O2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,Ar]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,H2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,CO]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,H2O]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,CO2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,CH4]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,C2H6]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,C3H8]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,C4H10]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,N2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,O2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.prereformer.control_volume.properties_out[0.0]._material_density_term[Vap,Ar]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,H2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,CO]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,H2O]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,CO2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,CH4]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,N2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,O2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,Ar]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,H2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,CO]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,H2O]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,CO2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,CH4]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,N2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,O2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,Ar]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,H2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,CO]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,H2O]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,CO2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,CH4]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,N2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,O2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,Ar]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,H2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,CO]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,H2O]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,CO2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,CH4]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,N2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,O2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,Ar]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,H2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,CO]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,H2O]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,CO2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,CH4]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,N2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,O2]\n", - "2023-02-13 09:09:03 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.anode.control_volume.properties_out[0.0]._material_density_term[Vap,Ar]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,H2]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,CO]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,H2O]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,CO2]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,CH4]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,C2H6]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,C3H8]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,C4H10]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,N2]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,O2]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,Ar]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,H2]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,CO]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,H2O]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,CO2]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,CH4]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,C2H6]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,C3H8]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,C4H10]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,N2]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,O2]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,Ar]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,H2]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,CO]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,H2O]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,CO2]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,CH4]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,C2H6]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,C3H8]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,C4H10]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,N2]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,O2]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,Ar]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,H2]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,CO]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,H2O]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,CO2]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,CH4]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,C2H6]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,C3H8]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,C4H10]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,N2]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,O2]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,Ar]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,H2]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,CO]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,H2O]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,CO2]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,CH4]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,C2H6]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,C3H8]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,C4H10]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,N2]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,O2]\n", - "2023-02-13 09:09:04 [WARNING] idaes.core.util.scaling: Missing scaling factor for fs.reformer.control_volume.properties_out[0.0]._material_density_term[Vap,Ar]\n", - "\n", - "Starting ROM initialization\n", - "ROM initialization completed\n", "Loading solved model\n" ] } ], "source": [ - "# initialization takes ~ 5 minutes, full solve takes ~ 1 hour\n", + "# full initialization and solves takes about 2 minutes\n", "reinit = False # switch to True to re-initialize and re-solve\n", "resolve = False # switch to True to re-solve only (for debugging)\n", "\n", "if os.path.exists(\"NGFC_flowsheet_init.json.gz\") and reinit is False:\n", " # already initialized, can build model and load results from json\n", + " NGFC.build_properties(m)\n", " NGFC.build_power_island(m)\n", " NGFC.build_reformer(m)\n", " NGFC.scale_flowsheet(m)\n", " NGFC.connect_reformer_to_power_island(m)\n", - " NGFC.SOFC_ROM_setup(m)\n", + " NGFC.SOFC_ROM_setup(m, init=False)\n", " NGFC.add_SOFC_energy_balance(m)\n", " NGFC.add_result_constraints(m)\n", " if os.path.exists(\"NGFC_flowsheet_solution.json.gz\") and resolve is False:\n", @@ -382,27 +245,13 @@ " # and then serialize solved model results\n", " print(\"Loading initialized model\")\n", " ms.from_json(m, fname=\"NGFC_flowsheet_init.json.gz\")\n", - " # solver and options\n", - " solver = pyo.SolverFactory(\"ipopt\")\n", - " solver.options = {\n", - " \"max_iter\": 50,\n", - " \"tol\": 1e-5,\n", - " \"bound_push\": 1e-8,\n", - " \"linear_solver\": \"ma57\",\n", - " \"ma57_pivtol\": 1e-3,\n", - " \"OF_ma57_automatic_scaling\": \"yes\",\n", - " \"nlp_scaling_method\": \"user-scaling\",\n", - " }\n", - " solve_iteration = 0\n", - " for i in range(1, 10): # keep looping until condition is met\n", - " solve_iteration += 1\n", - " print(\"Solve # \", solve_iteration)\n", - " res = solver.solve(m, tee=True)\n", - " if \"Optimal Solution Found\" in res.solver.message:\n", - " break\n", - " ms.to_json(m, fname=\"NGFC_flowsheet_solution.json.gz\")\n", + " \n", + " res = solver_ma97.solve(m, tee=True)\n", + " if \"Optimal Solution Found\" in res.solver.message:\n", + " ms.to_json(m, fname=\"NGFC_flowsheet_solution.json.gz\")\n", "else:\n", " # need to initialize model, serialize, and try to solve/serialize\n", + " NGFC.build_properties(m)\n", " NGFC.build_power_island(m)\n", " NGFC.build_reformer(m)\n", " NGFC.scale_flowsheet(m)\n", @@ -411,34 +260,23 @@ " NGFC.initialize_power_island(m)\n", " NGFC.initialize_reformer(m)\n", " NGFC.connect_reformer_to_power_island(m)\n", + " \n", + " solver_ma57.solve(m, tee=True)\n", + "\n", " NGFC.SOFC_ROM_setup(m)\n", " NGFC.add_SOFC_energy_balance(m)\n", " NGFC.add_result_constraints(m)\n", - " ms.to_json(m, fname=\"NGFC_flowsheet_init.json.gz\")\n", - " solver = pyo.SolverFactory(\"ipopt\")\n", - " solver.options = {\n", - " \"max_iter\": 50,\n", - " \"tol\": 1e-5,\n", - " \"bound_push\": 1e-8,\n", - " \"linear_solver\": \"ma57\",\n", - " \"ma57_pivtol\": 1e-3,\n", - " \"OF_ma57_automatic_scaling\": \"yes\",\n", - " \"nlp_scaling_method\": \"user-scaling\",\n", - " }\n", - " solve_iteration = 0\n", - " for i in range(1, 10): # keep looping until condition is met\n", - " solve_iteration += 1\n", - " print(\"Solve # \", solve_iteration)\n", - " res = solver.solve(m, tee=True)\n", - " if \"Optimal Solution Found\" in res.solver.message:\n", - " break\n", "\n", - " ms.to_json(m, fname=\"NGFC_flowsheet_solution.json.gz\")" + " ms.to_json(m, fname=\"NGFC_flowsheet_init.json.gz\")\n", + " \n", + " res = solver_ma97.solve(m, tee=True)\n", + " if \"Optimal Solution Found\" in res.solver.message:\n", + " ms.to_json(m, fname=\"NGFC_flowsheet_solution.json.gz\")" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 6, "metadata": { "scrolled": true }, @@ -449,406 +287,12 @@ "text": [ "DOF = 0\n", "\n", - "Solve # 1\n", - "WARNING: model contains export suffix\n", - " 'fs.bypass_rejoin.mixed_state[0.0].scaling_factor' that contains 13\n", - " component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.bypass_rejoin.bypass_inlet_state[0.0].scaling_factor' that contains 13\n", - " component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.bypass_rejoin.syngas_inlet_state[0.0].scaling_factor' that contains 13\n", - " component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.reformer.control_volume.properties_out[0.0].scaling_factor' that\n", - " contains 15 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.reformer.control_volume.properties_in[0.0].scaling_factor' that\n", - " contains 13 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.reformer.control_volume.scaling_factor' that contains 10 component\n", - " keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix 'fs.reformer.scaling_factor' that\n", - " contains 4 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.reformer_mix.mixed_state[0.0].scaling_factor' that contains 13\n", - " component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.reformer_mix.steam_inlet_state[0.0].scaling_factor' that contains 26\n", - " component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.reformer_mix.oxygen_inlet_state[0.0].scaling_factor' that contains 13\n", - " component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.reformer_mix.gas_inlet_state[0.0].scaling_factor' that contains 13\n", - " component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.intercooler_s2.control_volume.properties_out[0.0].scaling_factor' that\n", - " contains 14 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.intercooler_s2.control_volume.properties_in[0.0].scaling_factor' that\n", - " contains 13 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.intercooler_s2.control_volume.scaling_factor' that contains 1\n", - " component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.air_compressor_s2.properties_isentropic[0.0].scaling_factor' that\n", - " contains 15 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.air_compressor_s2.control_volume.properties_out[0.0].scaling_factor'\n", - " that contains 14 component keys that are not exported as part of the NL\n", - " file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.air_compressor_s2.control_volume.properties_in[0.0].scaling_factor'\n", - " that contains 15 component keys that are not exported as part of the NL\n", - " file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.intercooler_s1.control_volume.properties_out[0.0].scaling_factor' that\n", - " contains 14 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.intercooler_s1.control_volume.properties_in[0.0].scaling_factor' that\n", - " contains 13 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.intercooler_s1.control_volume.scaling_factor' that contains 1\n", - " component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.air_compressor_s1.properties_isentropic[0.0].scaling_factor' that\n", - " contains 15 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.air_compressor_s1.control_volume.properties_out[0.0].scaling_factor'\n", - " that contains 14 component keys that are not exported as part of the NL\n", - " file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.air_compressor_s1.control_volume.properties_in[0.0].scaling_factor'\n", - " that contains 28 component keys that are not exported as part of the NL\n", - " file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.reformer_bypass.bypass_outlet_state[0.0].scaling_factor' that contains\n", - " 11 component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.reformer_bypass.reformer_outlet_state[0.0].scaling_factor' that\n", - " contains 11 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.reformer_bypass.mixed_state[0.0].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\n", - " 'fs.NG_expander.properties_isentropic[0.0].scaling_factor' that contains\n", - " 15 component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.NG_expander.control_volume.properties_out[0.0].scaling_factor' that\n", - " contains 14 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.NG_expander.control_volume.properties_in[0.0].scaling_factor' that\n", - " contains 15 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.reformer_recuperator.cold_side.properties_out[0.0].scaling_factor'\n", - " that contains 13 component keys that are not exported as part of the NL\n", - " file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.reformer_recuperator.cold_side.properties_in[0.0].scaling_factor' that\n", - " contains 27 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.reformer_recuperator.hot_side.properties_out[0.0].scaling_factor' that\n", - " contains 13 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.reformer_recuperator.hot_side.properties_in[0.0].scaling_factor' that\n", - " contains 13 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix 'fs.reformer_recuperator.scaling_factor'\n", - " that contains 2 component keys that are not exported as part of the NL\n", - " file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.anode_HRSG.control_volume.properties_out[0.0].scaling_factor' that\n", - " contains 11 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.anode_HRSG.control_volume.properties_in[0.0].scaling_factor' that\n", - " contains 10 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.anode_HRSG.control_volume.scaling_factor' that contains 1 component\n", - " keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.combustor_expander.properties_isentropic[0.0].scaling_factor' that\n", - " contains 12 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.combustor_expander.control_volume.properties_out[0.0].scaling_factor'\n", - " that contains 10 component keys that are not exported as part of the NL\n", - " file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.combustor_expander.control_volume.properties_in[0.0].scaling_factor'\n", - " that contains 12 component keys that are not exported as part of the NL\n", - " file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.combustor_expander.control_volume.scaling_factor' that contains 1\n", - " component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.combustor.control_volume.properties_out[0.0].scaling_factor' that\n", - " contains 13 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.combustor.control_volume.properties_in[0.0].scaling_factor' that\n", - " contains 10 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.combustor.control_volume.scaling_factor' that contains 1 component\n", - " keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.combustor_mix.mixed_state[0.0].scaling_factor' that contains 10\n", - " component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.combustor_mix.cathode_inlet_state[0.0].scaling_factor' that contains\n", - " 10 component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.combustor_mix.anode_inlet_state[0.0].scaling_factor' that contains 10\n", - " component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.cathode_exhaust_translator.properties_out[0.0].scaling_factor' that\n", - " contains 11 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.cathode_exhaust_translator.properties_in[0.0].scaling_factor' that\n", - " contains 5 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.cathode_HRSG.control_volume.properties_out[0.0].scaling_factor' that\n", - " contains 8 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.cathode_HRSG.control_volume.properties_in[0.0].scaling_factor' that\n", - " contains 7 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.cathode_HRSG.control_volume.scaling_factor' that contains 1 component\n", - " keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.cathode_expander.properties_isentropic[0.0].scaling_factor' that\n", - " contains 9 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.cathode_expander.control_volume.properties_out[0.0].scaling_factor'\n", - " that contains 7 component keys that are not exported as part of the NL\n", - " file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.cathode_expander.control_volume.properties_in[0.0].scaling_factor'\n", - " that contains 9 component keys that are not exported as part of the NL\n", - " file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.cathode_expander.control_volume.scaling_factor' that contains 1\n", - " component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.cathode_exhaust_split.combustor_outlet_state[0.0].scaling_factor' that\n", - " contains 5 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.cathode_exhaust_split.exhaust_outlet_state[0.0].scaling_factor' that\n", - " contains 5 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.cathode_exhaust_split.mixed_state[0.0].scaling_factor' that contains 5\n", - " component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.cathode_blower.properties_isentropic[0.0].scaling_factor' that\n", - " contains 9 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.cathode_blower.control_volume.properties_out[0.0].scaling_factor' that\n", - " contains 8 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.cathode_blower.control_volume.properties_in[0.0].scaling_factor' that\n", - " contains 9 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.cathode_recycle.recycle_state[0.0].scaling_factor' that contains 5\n", - " component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.cathode_recycle.exhaust_state[0.0].scaling_factor' that contains 5\n", - " component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.cathode_recycle.mixed_state[0.0].scaling_factor' that contains 5\n", - " component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.cathode_heat.control_volume.properties_out[0.0].scaling_factor' that\n", - " contains 8 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.cathode_heat.control_volume.properties_in[0.0].scaling_factor' that\n", - " contains 7 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.cathode_translator.properties_out[0.0].scaling_factor' that contains\n", - " 16 component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.cathode_translator.properties_in[0.0].scaling_factor' that contains 5\n", - " component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.cathode.ion_outlet_state[0.0].scaling_factor' that contains 5\n", - " component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.cathode.air_outlet_state[0.0].scaling_factor' that contains 5\n", - " component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.cathode.mixed_state[0.0].scaling_factor' that contains 5 component\n", - " keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.cathode_mix.mixed_state[0.0].scaling_factor' that contains 7 component\n", - " keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.cathode_mix.recycle_state[0.0].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\n", - " 'fs.cathode_mix.feed_state[0.0].scaling_factor' that contains 7 component\n", - " keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.cathode_hx.cold_side.properties_out[0.0].scaling_factor' that contains\n", - " 8 component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.cathode_hx.cold_side.properties_in[0.0].scaling_factor' that contains\n", - " 7 component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.cathode_hx.hot_side.properties_out[0.0].scaling_factor' that contains\n", - " 7 component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.cathode_hx.hot_side.properties_in[0.0].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 'fs.cathode_hx.hot_side.scaling_factor'\n", - " that contains 1 component keys that are not exported as part of the NL\n", - " file. Skipping.\n", - "WARNING: model contains export suffix 'fs.cathode_hx.scaling_factor' that\n", - " contains 2 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.air_blower.properties_isentropic[0.0].scaling_factor' that contains 9\n", - " component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.air_blower.control_volume.properties_out[0.0].scaling_factor' that\n", - " contains 8 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.air_blower.control_volume.properties_in[0.0].scaling_factor' that\n", - " contains 16 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.recycle_translator.properties_out[0.0].scaling_factor' that contains\n", - " 14 component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.recycle_translator.properties_in[0.0].scaling_factor' that contains 8\n", - " component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.anode_blower.properties_isentropic[0.0].scaling_factor' that contains\n", - " 12 component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.anode_blower.control_volume.properties_out[0.0].scaling_factor' that\n", - " contains 11 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.anode_blower.control_volume.properties_in[0.0].scaling_factor' that\n", - " contains 12 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.anode_recycle.recycle_state[0.0].scaling_factor' that contains 8\n", - " component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.anode_recycle.exhaust_state[0.0].scaling_factor' that contains 8\n", - " component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.anode_recycle.mixed_state[0.0].scaling_factor' that contains 8\n", - " component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.anode.control_volume.properties_out[0.0].scaling_factor' that contains\n", - " 11 component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.anode.control_volume.properties_in[0.0].scaling_factor' that contains\n", - " 10 component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix 'fs.anode.control_volume.scaling_factor'\n", - " that contains 10 component keys that are not exported as part of the NL\n", - " file. Skipping.\n", - "WARNING: model contains export suffix 'fs.anode.scaling_factor' that contains\n", - " 4 component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.fuel_cell_mix.mixed_state[0.0].scaling_factor' that contains 10\n", - " component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.fuel_cell_mix.ion_inlet_state[0.0].scaling_factor' that contains 10\n", - " component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.fuel_cell_mix.fuel_inlet_state[0.0].scaling_factor' that contains 10\n", - " component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.anode_translator.properties_out[0.0].scaling_factor' that contains 8\n", - " component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.anode_translator.properties_in[0.0].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\n", - " 'fs.prereformer.control_volume.properties_out[0.0].scaling_factor' that\n", - " contains 13 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.prereformer.control_volume.properties_in[0.0].scaling_factor' that\n", - " contains 13 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.prereformer.control_volume.scaling_factor' that contains 13 component\n", - " keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix 'fs.prereformer.scaling_factor' that\n", - " contains 4 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.anode_hx.cold_side.properties_out[0.0].scaling_factor' that contains\n", - " 13 component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.anode_hx.cold_side.properties_in[0.0].scaling_factor' that contains 13\n", - " component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix 'fs.anode_hx.cold_side.scaling_factor'\n", - " that contains 1 component keys that are not exported as part of the NL\n", - " file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.anode_hx.hot_side.properties_out[0.0].scaling_factor' that contains 10\n", - " component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.anode_hx.hot_side.properties_in[0.0].scaling_factor' that contains 10\n", - " component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix 'fs.anode_hx.hot_side.scaling_factor'\n", - " that contains 1 component keys that are not exported as part of the NL\n", - " file. Skipping.\n", - "WARNING: model contains export suffix 'fs.anode_hx.scaling_factor' that\n", - " contains 3 component keys that are not exported as part of the NL file.\n", - " Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.anode_mix.mixed_state[0.0].scaling_factor' that contains 13 component\n", - " keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.anode_mix.recycle_state[0.0].scaling_factor' that contains 13\n", - " component keys that are not exported as part of the NL file. Skipping.\n", - "WARNING: model contains export suffix\n", - " 'fs.anode_mix.feed_state[0.0].scaling_factor' that contains 13 component\n", - " keys that are not exported as part of the NL file. Skipping.\n", - "Ipopt 3.13.2: max_iter=50\n", - "tol=0.0001\n", - "bound_push=1e-08\n", - "linear_solver=ma57\n", - "ma57_pivtol=0.001\n", + "Ipopt 3.13.2: max_iter=200\n", + "tol=1e-07\n", + "bound_push=1e-05\n", + "mu_init=0.01\n", + "linear_solver=ma97\n", "nlp_scaling_method=user-scaling\n", - "option_file_name=C:\\Users\\dang\\AppData\\Local\\Temp\\tmpohg_fgrp_ipopt.opt\n", - "\n", - "Using option file \"C:\\Users\\dang\\AppData\\Local\\Temp\\tmpohg_fgrp_ipopt.opt\".\n", "\n", "\n", "******************************************************************************\n", @@ -869,7 +313,7 @@ " computation. See http://www.hsl.rl.ac.uk.\n", "******************************************************************************\n", "\n", - "This is Ipopt version 3.13.2, running with linear solver ma57.\n", + "This is Ipopt version 3.13.2, running with linear solver ma97.\n", "\n", "Number of nonzeros in equality constraint Jacobian...: 759386\n", "Number of nonzeros in inequality constraint Jacobian.: 0\n", @@ -886,68 +330,67 @@ " 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.67e+00 1.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", - " 1 0.0000000e+00 1.68e+02 4.70e+06 -1.0 3.39e+05 - 3.65e-03 1.00e+00f 1\n", - " 2 0.0000000e+00 1.67e+02 4.69e+06 -1.0 6.13e+05 - 2.87e-01 3.00e-03h 1\n", - " 3 0.0000000e+00 1.49e+02 3.77e+06 -1.0 5.96e+05 - 5.87e-01 2.18e-01H 1\n", - " 4 0.0000000e+00 8.40e+01 2.44e+06 -1.0 3.76e+05 - 9.06e-01 4.37e-01h 1\n", - " 5 0.0000000e+00 8.36e+01 2.32e+06 -1.0 5.96e+04 - 9.94e-01 4.75e-02h 1\n", - " 6 0.0000000e+00 5.67e+01 1.34e+06 -1.0 3.66e+04 - 1.00e+00 5.48e-01H 1\n", - " 7 0.0000000e+00 1.77e+00 4.29e+05 -1.0 1.26e+04 - 1.00e+00 1.00e+00H 1\n", - " 8 0.0000000e+00 4.61e-01 1.58e+05 -1.0 1.40e+03 - 1.00e+00 1.00e+00f 1\n", - " 9 0.0000000e+00 1.70e-01 5.81e+04 -1.0 1.43e+03 - 1.00e+00 1.00e+00h 1\n", + " 0 0.0000000e+00 1.61e+00 1.00e+00 -2.0 0.00e+00 - 0.00e+00 0.00e+00 0\n", + " 1 0.0000000e+00 1.23e+00 9.83e+02 -2.0 2.60e+00 - 3.06e-02 1.00e+00f 1\n", + " 2 0.0000000e+00 6.11e-01 3.99e+03 -2.0 1.59e+00 - 9.60e-01 5.04e-01h 1\n", + " 3 0.0000000e+00 4.71e-01 3.04e+03 -2.0 1.52e+00 - 9.90e-01 2.28e-01h 1\n", + " 4 0.0000000e+00 2.30e-03 6.07e+00 -2.0 9.63e-01 - 1.00e+00 1.00e+00h 1\n", + " 5 0.0000000e+00 4.83e-04 3.06e-01 -2.0 2.58e-01 - 1.00e+00 1.00e+00h 1\n", + " 6 0.0000000e+00 2.19e-05 7.45e-02 -2.0 8.17e-02 - 1.00e+00 1.00e+00h 1\n", + " 7 0.0000000e+00 1.11e-04 5.82e+00 -3.0 6.83e-01 - 1.00e+00 1.00e+00H 1\n", + " 8 0.0000000e+00 9.95e-07 1.11e-02 -3.0 2.92e-02 - 1.00e+00 1.00e+00f 1\n", + " 9 0.0000000e+00 1.27e-06 2.77e-04 -3.0 2.14e-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 0.0000000e+00 6.24e-02 2.14e+04 -1.0 1.06e+03 - 1.00e+00 1.00e+00h 1\n", - " 11 0.0000000e+00 2.30e-02 7.86e+03 -1.0 1.00e+00 0.0 5.53e-01 1.00e+00h 1\n", - " 12 0.0000000e+00 1.79e-02 6.12e+03 -1.0 2.54e+03 - 1.00e+00 2.50e-01f 3\n", - " 13 0.0000000e+00 1.68e-02 2.25e+03 -1.0 1.85e+03 - 9.04e-01 1.00e+00h 1\n", - " 14 0.0000000e+00 7.34e-03 8.29e+02 -1.0 1.12e+02 - 1.00e+00 1.00e+00h 1\n", - " 15 0.0000000e+00 5.21e-03 3.05e+02 -1.0 6.04e+02 - 1.00e+00 1.00e+00h 1\n", - " 16 0.0000000e+00 5.21e-03 1.47e+06 -1.0 2.54e+01 2.2 5.27e-06 8.21e-07H 1\n", - " 17 0.0000000e+00 1.38e-03 1.75e+02 -1.0 5.54e-01 2.7 1.00e+00 1.00e+00h 1\n", - " 18 0.0000000e+00 5.44e-04 1.56e+05 -1.0 2.08e+00 2.2 5.35e-01 1.00e+00H 1\n", - " 19 0.0000000e+00 6.97e-04 2.71e+05 -1.0 2.48e-01 2.6 2.43e-02 1.00e+00f 1\n", + " 10 0.0000000e+00 5.48e-07 1.46e+03 -4.5 6.14e-02 - 6.18e-01 1.00e+00H 1\n", + " 11 0.0000000e+00 6.02e-07 5.15e+02 -4.5 7.21e-02 - 6.08e-01 1.00e+00h 1\n", + " 12 0.0000000e+00 5.98e-07 1.18e-05 -4.5 1.04e-01 - 1.00e+00 1.00e+00h 1\n", + " 13 0.0000000e+00 5.29e-07 9.32e+02 -6.8 1.06e-01 - 2.12e-01 1.00e+00h 1\n", + " 14 0.0000000e+00 4.55e-07 1.72e+03 -6.8 1.46e-02 - 3.37e-01 1.00e+00h 1\n", + " 15 0.0000000e+00 4.14e-07 2.33e+03 -6.8 6.91e-03 - 5.64e-02 1.00e+00h 1\n", + " 16 0.0000000e+00 3.45e-07 2.90e+03 -6.8 1.01e-04 - 2.14e-01 1.00e+00h 1\n", + " 17 0.0000000e+00 5.97e-07 3.12e+03 -6.8 5.35e-04 - 1.37e-02 1.00e+00h 1\n", + " 18 0.0000000e+00 5.74e-07 3.25e+03 -6.8 1.60e-03 - 8.54e-02 1.00e+00h 1\n", + " 19 0.0000000e+00 5.30e-07 3.49e+03 -6.8 1.34e-03 - 8.76e-02 1.00e+00h 1\n", "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n", - " 20 0.0000000e+00 6.97e-04 1.19e+05 -1.0 8.84e-02 2.1 6.98e-01 1.00e+00h 1\n", - " 21 0.0000000e+00 6.86e-04 1.15e+05 -1.0 8.39e+03 - 3.71e-02 1.56e-02f 7\n", - " 22 0.0000000e+00 6.65e-04 7.09e+04 -1.0 8.17e+03 - 3.85e-01 3.12e-02f 6\n", - " 23 0.0000000e+00 6.54e-04 6.97e+04 -1.0 7.73e+03 - 2.01e-02 1.56e-02f 7\n", - " 24 0.0000000e+00 6.49e-04 7.20e+04 -1.0 7.53e+03 - 1.70e-01 7.81e-03f 8\n", - " 25 0.0000000e+00 6.39e-04 6.85e+04 -1.0 7.43e+03 - 7.02e-02 1.56e-02f 7\n", - " 26 0.0000000e+00 2.53e-03 5.60e+04 -1.0 7.23e+03 - 8.68e-01 2.50e-01f 3\n", - " 27 0.0000000e+00 2.39e-04 3.14e+03 -1.0 4.19e+03 - 6.72e-01 1.00e+00H 1\n", - " 28 0.0000000e+00 1.78e-05 1.20e+02 -1.0 6.59e-03 1.7 9.48e-01 1.00e+00h 1\n", + " 20 0.0000000e+00 7.79e-07 3.66e+03 -6.8 1.62e-04 - 1.95e-01 1.00e+00h 1\n", + " 21 0.0000000e+00 9.49e-07 3.26e+02 -6.8 1.01e-04 - 2.10e-01 1.00e+00h 1\n", + " 22 0.0000000e+00 9.34e-08 1.84e+02 -6.8 8.77e-05 - 4.61e-01 1.00e+00h 1\n", + "Cannot recompute multipliers for feasibility problem. Error in eq_mult_calculator\n", "\n", - "Number of Iterations....: 28\n", + "Number of Iterations....: 22\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.7770481779855499e-05 1.7770481779855499e-05\n", + "Dual infeasibility......: 5.3733521937880550e+02 5.3733521937880549e+04\n", + "Constraint violation....: 9.3390433969156556e-08 9.3390433969156556e-08\n", "Complementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\n", - "Overall NLP error.......: 1.7770481779855499e-05 1.7770481779855499e-05\n", + "Overall NLP error.......: 9.3390433969156556e-08 5.3733521937880549e+04\n", "\n", "\n", - "Number of objective function evaluations = 93\n", - "Number of objective gradient evaluations = 29\n", - "Number of equality constraint evaluations = 93\n", + "Number of objective function evaluations = 27\n", + "Number of objective gradient evaluations = 23\n", + "Number of equality constraint evaluations = 27\n", "Number of inequality constraint evaluations = 0\n", - "Number of equality constraint Jacobian evaluations = 29\n", + "Number of equality constraint Jacobian evaluations = 23\n", "Number of inequality constraint Jacobian evaluations = 0\n", - "Number of Lagrangian Hessian evaluations = 28\n", - "Total CPU secs in IPOPT (w/o function evaluations) = 41.744\n", - "Total CPU secs in NLP function evaluations = 2.465\n", + "Number of Lagrangian Hessian evaluations = 22\n", + "Total CPU secs in IPOPT (w/o function evaluations) = 13.452\n", + "Total CPU secs in NLP function evaluations = 2.432\n", "\n", - "EXIT: Optimal Solution Found.\n" + "EXIT: Optimal Solution Found.\n", + "addfunc: duplicate function cubic_root_l\n", + "addfunc: duplicate function cubic_root_h\n", + "addfunc: duplicate function cubic_root_l_nan\n", + "addfunc: duplicate function cubic_root_h_nan\n", + "addfunc: duplicate function cubic_root_l_ext\n", + "addfunc: duplicate function cubic_root_h_ext\n", + "addfunc: duplicate function cbrt\n", + "addfunc: duplicate function x_over_exp_x_minus_one\n" ] } ], "source": [ "# After the initial solve, setup the flowsheet to be controlled by changing the ROM inputs\n", - "# from solved state, re-solving with new inputs takes ~ 30 minutes\n", - "\n", - "# to ensure overall convergence and discourage local minimia that end in solver loops,\n", - "# we take a similar approach as the flowsheet solve and only calculate 25 iterations at a time\n", "\n", "# current density\n", "m.fs.SOFC.current_density.fix(4000)\n", @@ -982,32 +425,15 @@ "m.fs.SOFC.deltaT_cell.unfix()\n", "m.fs.SOFC.air_util.fix(0.4488)\n", "\n", - "from idaes.core.util.model_statistics import degrees_of_freedom\n", - "\n", "print(\"DOF = \", degrees_of_freedom(m))\n", "print()\n", - "solver = pyo.SolverFactory(\"ipopt\")\n", - "solver.options = {\n", - " \"max_iter\": 50,\n", - " \"tol\": 1e-4,\n", - " \"bound_push\": 1e-8,\n", - " \"linear_solver\": \"ma57\",\n", - " \"ma57_pivtol\": 1e-3,\n", - " \"OF_ma57_automatic_scaling\": \"yes\",\n", - " \"nlp_scaling_method\": \"user-scaling\",\n", - "}\n", - "solve_iteration = 0\n", - "for i in range(1, 10): # keep looping until condition is met\n", - " solve_iteration += 1\n", - " print(\"Solve # \", solve_iteration)\n", - " status = solver.solve(m, tee=True)\n", - " if \"Optimal Solution Found\" in status.solver.message:\n", - " break" + "\n", + "status = solver_ma97.solve(m, tee=True)" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 7, "metadata": { "tags": [ "testing" @@ -1032,9 +458,9 @@ "\n", "import pytest\n", "\n", - "assert pytest.approx(660.608, rel=1e-5) == value(m.fs.net_power)\n", - "assert pytest.approx(0.625588, rel=1e-5) == value(m.fs.HHV_efficiency)\n", - "assert pytest.approx(291.249, rel=1e-5) == value(m.fs.CO2_emissions)\n", + "assert pytest.approx(659.8, rel=1e-1) == value(m.fs.net_power)\n", + "assert pytest.approx(0.6248, rel=1e-4) == value(m.fs.HHV_efficiency)\n", + "assert pytest.approx(291.2, rel=1e-1) == value(m.fs.CO2_emissions)\n", "\n", "print(\"Problem solved successfully\")" ] @@ -1047,16 +473,16 @@ "\n", "The results of the simulation can be viewed in the SVG file below.\n", "\n", - "It can be seen from the figure that the bulk of the power generated by the NGFC plant is from the SOFCs (542.6 MW). The steam turbine and natural gas expander both contribute smaller amounts at 107.3 and 21.1 MW, respectively. The auxiliary load from the recycle blowers and air compressors is only 10.4 MW. The net power of the system is 660.6 MW.\n", + "It can be seen from the figure that the bulk of the power generated by the NGFC plant is from the SOFCs (541.9 MW). The steam turbine and natural gas expander both contribute smaller amounts at 107.1 and 21.1 MW, respectively. The auxiliary load from the recycle blowers and air compressors is only 10.3 MW. The net power of the system is 659.8 MW.\n", "\n", - "The higher heating value of the natural gas feed is 908,839 J/mol. Multiplying by the inlet flowrate of 1,161 mol/s gives a total thermal input of 1056 MW. Based on the thermal input and the net generation the efficiency is 62.56%. The carbon emissions are 291.2 g/kWh.\n", + "The higher heating value of the natural gas feed is 908,839 J/mol. Multiplying by the inlet flowrate of 1,161 mol/s gives a total thermal input of 1056 MW. Based on the thermal input and the net generation the efficiency is 62.48%. The carbon emissions are 291.2 g/kWh.\n", "\n", - "The results also show the closure of the energy balance around the SOFC. The heat duty of the anode is -673.92 MW and the duty of the cathode is 114.57 MW. When added together they produce the DC stack power with an absolute value of 559.3 MW." + "The results also show the closure of the energy balance around the SOFC. The heat duty of the anode is -673.0 MW and the duty of the cathode is 114.3 MW. When added together they produce the DC stack power with an absolute value of 558.7 MW." ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -1070,16 +496,16 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ - "image/svg+xml\n", - "\t\n", + "image/svg+xml\n", + "\t\n", "\t\t\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\t\n", "\t\t\n", "\t\n", @@ -1151,434 +577,434 @@ "\t\n", "\n", "\t\n", - "\t\t\n", - "\t\t\t\n", + "\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\n", + "\t\n", "\t\n", "\t\t\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\t\n", "\t\t\n", "\t\n", "\t\n", "\t\tFor SVG HRSG\n", - "\t\t\n", + "\t\t\n", "\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tSheet.1\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tSheet.2\n", "\t\t\tSteam\n", "\t\t\t\n", - "\t\t\t\n", - "\t\t\t\n", - "\t\t\tSteam\t\t\n", - "\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\tSteam\t\t\n", + "\t\t\n", "\t\t\tSheet.3\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tSheet.4\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tSheet.5\n", "\t\t\tSOFC Stack\n", "\t\t\t\n", - "\t\t\t\n", - "\t\t\t\n", - "\t\t\tSOFC Stack\t\t\n", - "\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\tSOFC Stack\t\t\n", + "\t\t\n", "\t\t\tSheet.6\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tSheet.7\n", "\t\t\tAir\n", "\t\t\t\n", - "\t\t\t\n", - "\t\t\t\n", - "\t\t\tAir\t\t\n", - "\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\tAir\t\t\n", + "\t\t\n", "\t\t\tSheet.8\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tSheet.9\n", "\t\t\tCathode\n", "\t\t\t\n", - "\t\t\t\n", - "\t\t\t\n", - "\t\t\tCathode\t\t\n", - "\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\tCathode\t\t\n", + "\t\t\n", "\t\t\tSheet.10\n", "\t\t\tElectrolyte\n", "\t\t\t\n", - "\t\t\t\n", - "\t\t\t\n", - "\t\t\tElectrolyte\t\t\n", - "\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\tElectrolyte\t\t\n", + "\t\t\n", "\t\t\tSheet.11\n", "\t\t\tAnode\n", "\t\t\t\n", - "\t\t\t\n", - "\t\t\t\n", - "\t\t\tAnode\t\t\n", - "\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\tAnode\t\t\n", + "\t\t\n", "\t\t\tAC source\n", "\t\t\t\n", - "\t\t\t\t\n", - "\t\t\t\t\n", - "\t\t\t\t\n", - "\t\t\t\t\n", + "\t\t\t\t\n", + "\t\t\t\t\n", + "\t\t\t\t\n", + "\t\t\t\t\n", "\t\t\t\n", - "\t\t\t\n", - "\t\t\t\n", - "\t\t\t\n", - "\t\t\t\n", - "\t\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\t\n", - "\t\t\t\t\n", - "\t\t\t\t\n", - "\t\t\t\t\n", + "\t\t\t\t\n", + "\t\t\t\t\n", + "\t\t\t\t\n", "\t\t\t\n", "\t\t\tInverter\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\t\tSheet.14\n", "\t\t\t\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\t\tSheet.15\n", "\t\t\t\t1\n", - "\t\t\t\t\n", - "\t\t\t\t\n", - "\t\t\t\t\n", + "\t\t\t\t\n", + "\t\t\t\t\n", + "\t\t\t\t\n", "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tSheet.16\n", "\t\t\tInverter\n", "\t\t\t\n", - "\t\t\t\n", - "\t\t\t\n", - "\t\t\tInverter\t\t\n", - "\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\tInverter\t\t\n", + "\t\t\n", "\t\t\tSheet.17\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tSheet.18\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tSheet.19\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tSheet.20\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tSheet.21\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tDynamic connector.122\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tSheet.23\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tDynamic connector.124\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tDynamic connector.125\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tSheet.26\n", "\t\t\tAC\n", "\t\t\t\n", - "\t\t\t\n", - "\t\t\t\n", - "\t\t\tAC\t\t\n", - "\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\tAC\t\t\n", + "\t\t\n", "\t\t\tDynamic connector.127\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tSheet.29\n", "\t\t\tCathode Blower\n", "\t\t\t\n", - "\t\t\t\n", - "\t\t\t\n", - "\t\t\tCathode Blower\t\t\n", - "\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\tCathode Blower\t\t\n", + "\t\t\n", "\t\t\tSheet.31\n", "\t\t\tCathode HTX\n", "\t\t\t\n", - "\t\t\t\n", - "\t\t\t\n", - "\t\t\tCathode HTX\t\t\n", - "\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\tCathode HTX\t\t\n", + "\t\t\n", "\t\t\tSheet.32\n", "\t\t\tAutothermal\n", "\t\t\t\n", - "\t\t\t\n", - "\t\t\t\n", - "\t\t\tAutothermal\t\t\n", - "\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\tAutothermal\t\t\n", + "\t\t\n", "\t\t\tDynamic connector.78\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tDynamic connector.134\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tSheet.35\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tDynamic connector.136\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tDynamic connector.138\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tDynamic connector.137\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tDynamic connector.139\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tSheet.40\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tSheet.41\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tSheet.43\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tDynamic connector.144\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tDynamic connector.109\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tDynamic connector.110\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tSheet.50\n", "\t\t\tPreheat\n", "\t\t\t\n", - "\t\t\t\n", - "\t\t\t\n", - "\t\t\tPreheat\t\t\n", - "\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\tPreheat\t\t\n", + "\t\t\n", "\t\t\tSheet.51\n", "\t\t\tAutothermal Reformer\n", "\t\t\t\n", - "\t\t\t\n", - "\t\t\t\n", - "\t\t\tAutothermal Reformer\t\t\n", - "\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\tAutothermal Reformer\t\t\n", + "\t\t\n", "\t\t\tSheet.52\n", "\t\t\tAnode HTX\n", "\t\t\t\n", - "\t\t\t\n", - "\t\t\t\n", - "\t\t\tAnode HTX\t\t\n", - "\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\tAnode HTX\t\t\n", + "\t\t\n", "\t\t\tSheet.53\n", "\t\t\tCombustor\n", "\t\t\t\n", - "\t\t\t\n", - "\t\t\t\n", - "\t\t\tCombustor\t\t\n", - "\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\tCombustor\t\t\n", + "\t\t\n", "\t\t\tSheet.54\n", "\t\t\tNatural Gas\n", "\t\t\t\n", - "\t\t\t\n", - "\t\t\t\n", - "\t\t\tNatural Gas\t\t\n", - "\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\tNatural Gas\t\t\n", + "\t\t\n", "\t\t\tDynamic connector.155\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tSheet.62\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tSheet.64\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tDynamic connector.167\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tSheet.66\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tSheet.67\n", "\t\t\tAir\n", "\t\t\t\n", - "\t\t\t\n", - "\t\t\t\n", - "\t\t\tAir\t\t\n", - "\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\tAir\t\t\n", + "\t\t\n", "\t\t\tSheet.68\n", "\t\t\tHeat Recovery Steam Generator\n", "\t\t\t\n", - "\t\t\t\n", - "\t\t\t\n", - "\t\t\tHeat Recovery Steam Generator\t\t\n", - "\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\tHeat Recovery Steam Generator\t\t\n", + "\t\t\n", "\t\t\tSheet.69\n", "\t\t\tSteam Turbine Generator\n", "\t\t\t\n", - "\t\t\t\n", - "\t\t\t\n", - "\t\t\tSteam Turbine Generator\t\t\n", - "\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\tSteam Turbine Generator\t\t\n", + "\t\t\n", "\t\t\tDynamic connector.154\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tAC source.160\n", "\t\t\t\n", - "\t\t\t\t\n", - "\t\t\t\t\n", - "\t\t\t\t\n", - "\t\t\t\t\n", + "\t\t\t\t\n", + "\t\t\t\t\n", + "\t\t\t\t\n", + "\t\t\t\t\n", "\t\t\t\n", - "\t\t\t\n", - "\t\t\t\n", - "\t\t\t\n", - "\t\t\t\n", - "\t\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tSheet.72\n", "\t\t\tAC\n", "\t\t\t\n", - "\t\t\t\n", - "\t\t\t\n", - "\t\t\tAC\t\t\n", - "\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\tAC\t\t\n", + "\t\t\n", "\t\t\tDynamic connector.170\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tDynamic connector.172\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tDynamic connector.191\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tDynamic connector.192\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tDynamic connector.132\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tDynamic connector.193\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tDynamic connector.42\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tDynamic connector.96\n", - "\t\t\t\n", + "\t\t\t\n", "\t\t\n", - "\t\t\n", + "\t\t\n", "\t\t\tSheet.98\n", "\t\t\tPre-Reformer\n", "\t\t\t\n", - "\t\t\t\n", - "\t\t\t\n", - "\t\t\tPre-Reformer\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\tPre-Reformer\t\t\n", "\t\n", - "621 K137 kPaSYN_INT:P:3,642 mol/sF:979 K137 kPaANODE_RECT:P:4,084 mol/sF:890 K105 kPaCATH_INT:P:34,197 mol/sF:998 K104 kPaCATH_OUTT:P:32,525 mol/sF:998 K104 kPaCATH_HX_HIT:P:16,262 mol/sF:288 K101 kPaAIRT:P:17,934 mol/sF:834 K137 kPaANODE_INT:P:8,041 mol/sF:978 K137 kPaANO_HX_HIT:P:5,084 mol/sF:825 K136 kPaANO_HX_HOT:P:5,084 mol/sF:814 K137 kPaANO_HX_CIT:P:7,727 mol/sF:978 K137 kPaANODE_OUTT:P:9,169 mol/sF:476 K102 kPaCATH_HX_HOT:P:16,262 mol/sF:1,002 K105 kPaCATH_RECT:P:16,262 mol/sF:297 K111 kPaCATH_HX_CIT:P:17,934 mol/sF:787 K105 kPaCATH_HX_COT:P:17,934 mol/sF:348.30.6617.3ROM InputsFuel Inlet Temperature (C):Internal Reformation fraction:Air Inlet Temperature (C):4,000Avg. Curent Density (A/m^2):0.5Air Recirculation fraction:2.1Oxygen to Carbon ratio:Fuel Utilization fraction:Air Utilization fraction:0.80.449559.3ROM OutputsDC Stack Power (MW):0.8668Stack Voltage (V):30.6265.17-673.92Heat Duties (MW)Anode Heat Exchanger:Cathode Heat Exchanger:Anode:48.1Reformer Recuperator:114.57Cathode:422 K206 kPaSTEAM_INT:P:464 mol/sF:310 K203 kPaAIR_INT:P:1,333 mol/sF:747 K206 kPaREF_INT:P:465 mol/sF:288 K3,447 kPaFUEL_INT:P:1,161 mol/sF:1,060 K137 kPaREF_OUTT:P:2,944 mol/sF:1,265 K95 kPaCOMB_OUTT:P:9,545 mol/sF:405 K94 kPaANOD_EXHT:P:9,546 mol/sF:476 K102 kPaCOMB_AIRT:P:4,878 mol/sF:405 K101 kPaCATH_EXHT:P:11,384 mol/sF:476 K102 kPaCATH_HRSG_INT:P:11,384 mol/sF:107.321.110.4Performance SummarySteam Turbine Power (MW):NG Expander Power (MW):Auxiliary Load (MW):542.6AC Stack Power (MW):660.6Net Power (MW):Thermal Input (MW):HHV Efficiency (%):CO2 Emissions (g/kWh):1,056.0291.262.561,012 K3,447 kPaHOT_FUELT:P:1,161 mol/sF:" + "621 K137 kPaSYN_INT:P:3,639 mol/sF:979 K137 kPaANODE_RECT:P:4,076 mol/sF:890 K105 kPaCATH_INT:P:34,162 mol/sF:998 K104 kPaCATH_OUTT:P:32,492 mol/sF:998 K104 kPaCATH_HX_HIT:P:16,246 mol/sF:288 K101 kPaAIRT:P:17,916 mol/sF:834 K137 kPaANODE_INT:P:8,029 mol/sF:978 K137 kPaANO_HX_HIT:P:5,080 mol/sF:825 K136 kPaANO_HX_HOT:P:5,080 mol/sF:814 K137 kPaANO_HX_CIT:P:7,715 mol/sF:978 K137 kPaANODE_OUTT:P:9,157 mol/sF:476 K102 kPaCATH_HX_HOT:P:16,246 mol/sF:1,002 K105 kPaCATH_RECT:P:16,246 mol/sF:297 K111 kPaCATH_HX_CIT:P:17,916 mol/sF:787 K105 kPaCATH_HX_COT:P:17,916 mol/sF:348.30.6617.3ROM InputsFuel Inlet Temperature (C):Internal Reformation fraction:Air Inlet Temperature (C):4,000Avg. Curent Density (A/m^2):0.5Air Recirculation fraction:2.1Oxygen to Carbon ratio:Fuel Utilization fraction:Air Utilization fraction:0.80.449558.7ROM OutputsDC Stack Power (MW):0.8668Stack Voltage (V):30.61264.97-673.02Heat Duties (MW)Anode Heat Exchanger:Cathode Heat Exchanger:Anode:48.0Reformer Recuperator:114.32Cathode:422 K206 kPaSTEAM_INT:P:464 mol/sF:310 K203 kPaAIR_INT:P:1,332 mol/sF:746 K206 kPaREF_INT:P:464 mol/sF:288 K3,447 kPaFUEL_INT:P:1,161 mol/sF:1,060 K137 kPaREF_OUTT:P:2,942 mol/sF:1,265 K95 kPaCOMB_OUTT:P:9,537 mol/sF:405 K94 kPaANOD_EXHT:P:9,537 mol/sF:476 K102 kPaCOMB_AIRT:P:4,873 mol/sF:405 K101 kPaCATH_EXHT:P:11,372 mol/sF:476 K102 kPaCATH_HRSG_INT:P:11,372 mol/sF:107.121.110.3Performance SummarySteam Turbine Power (MW):NG Expander Power (MW):Auxiliary Load (MW):541.9AC Stack Power (MW):659.8Net Power (MW):Thermal Input (MW):HHV Efficiency (%):CO2 Emissions (g/kWh):1,056.0291.262.481,010 K3,447 kPaHOT_FUELT:P:1,161 mol/sF:" ], "text/plain": [ "" @@ -1608,7 +1034,7 @@ "metadata": { "celltoolbar": "Tags", "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "Python 3", "language": "python", "name": "python3" }, @@ -1622,7 +1048,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.12" + "version": "3.7.3" } }, "nbformat": 4, diff --git a/idaes_examples/mod/power_gen/NGFC_flowsheet.py b/idaes_examples/mod/power_gen/NGFC_flowsheet.py index 97aa8cc8..f2a18617 100644 --- a/idaes_examples/mod/power_gen/NGFC_flowsheet.py +++ b/idaes_examples/mod/power_gen/NGFC_flowsheet.py @@ -18,6 +18,8 @@ """ import os +import logging + from collections import OrderedDict # Import Pyomo libraries @@ -33,7 +35,6 @@ from idaes.core.util import model_serializer as ms, ModelTag, ModelTagGroup from idaes.core.util.tags import svg_tag from idaes.core.util.tables import create_stream_table_dataframe -from idaes.core.util.exceptions import InitializationError import idaes.core.util.scaling as iscale @@ -71,10 +72,8 @@ initialize_SOFC_ROM, ) -import logging - -def build_power_island(m): +def build_properties(m): # create property packages - 3 property packages and 1 reaction NG_config = get_prop( components=[ @@ -105,6 +104,8 @@ def build_power_island(m): **get_rxn(m.fs.syn_props, reactions=["h2_cmb", "co_cmb", "ch4_cmb"]) ) + +def build_power_island(m): # build anode side units m.fs.anode_mix = Mixer( inlet_list=["feed", "recycle"], @@ -725,7 +726,7 @@ def set_reformer_inputs(m): m.fs.reformer_bypass.split_fraction[0, "bypass_outlet"].fix(0.6) # air to reformer - m.fs.air_compressor_s1.inlet.flow_mol[0] == 1332.9 # mol/s + m.fs.air_compressor_s1.inlet.flow_mol[0] = 1332.9 # mol/s m.fs.air_compressor_s1.inlet.temperature.fix(288.15) # K m.fs.air_compressor_s1.inlet.pressure.fix(101353) # Pa, equal to 14.7 psia m.fs.air_compressor_s1.inlet.mole_frac_comp.fix(1e-11) @@ -749,7 +750,7 @@ def set_reformer_inputs(m): m.fs.intercooler_s2.deltaP.fix(-3447) # Pa, equal to -0.5 psi # steam to reformer - m.fs.reformer_mix.steam_inlet.flow_mol[0] == 464.77 # mol/s + m.fs.reformer_mix.steam_inlet.flow_mol[0] = 464.77 # mol/s m.fs.reformer_mix.steam_inlet.temperature.fix(422) # K m.fs.reformer_mix.steam_inlet.pressure.fix(206843) # Pa, equal to 30 psia m.fs.reformer_mix.steam_inlet.mole_frac_comp.fix(1e-11) @@ -767,219 +768,180 @@ def scale_flowsheet(m): m.fs.NG_props.set_default_scaling("flow_mol_phase", 1e-3) m.fs.NG_props.set_default_scaling("temperature", 1e-2) m.fs.NG_props.set_default_scaling("pressure", 1e-5) - m.fs.NG_props.set_default_scaling("mole_frac_comp", 1e2) - m.fs.NG_props.set_default_scaling("mole_frac_comp", 1e2, index="C2H6") - m.fs.NG_props.set_default_scaling("mole_frac_comp", 1e2, index="C3H8") - m.fs.NG_props.set_default_scaling("mole_frac_comp", 1e2, index="C4H10") - m.fs.NG_props.set_default_scaling("mole_frac_phase_comp", 1e2) - m.fs.NG_props.set_default_scaling( - "mole_frac_phase_comp", 1e2, index=("Vap", "C2H6") - ) - m.fs.NG_props.set_default_scaling( - "mole_frac_phase_comp", 1e2, index=("Vap", "C3H8") - ) - m.fs.NG_props.set_default_scaling( - "mole_frac_phase_comp", 1e2, index=("Vap", "C4H10") - ) - m.fs.NG_props.set_default_scaling("enth_mol_phase", 1e-6) - m.fs.NG_props.set_default_scaling("entr_mol_phase", 1e-4) + m.fs.NG_props.set_default_scaling("entr_mol_phase", 1e-1) + m.fs.NG_props.set_default_scaling("entr_mol", 1e-1) # set syn_props default scaling m.fs.syn_props.set_default_scaling("flow_mol", 1e-3) m.fs.syn_props.set_default_scaling("flow_mol_phase", 1e-3) + m.fs.syn_props.set_default_scaling("flow_mol_phase_comp", 1e-3) m.fs.syn_props.set_default_scaling("temperature", 1e-2) m.fs.syn_props.set_default_scaling("pressure", 1e-5) m.fs.syn_props.set_default_scaling("mole_frac_comp", 1e2) m.fs.syn_props.set_default_scaling("mole_frac_phase_comp", 1e2) m.fs.syn_props.set_default_scaling("enth_mol_phase", 1e-6) - m.fs.syn_props.set_default_scaling("entr_mol_phase", 1e-4) + m.fs.syn_props.set_default_scaling("entr_mol_phase", 1e-1) + m.fs.syn_props.set_default_scaling("entr_mol", 1e-1) # set air_props default scaling m.fs.air_props.set_default_scaling("flow_mol", 1e-3) m.fs.air_props.set_default_scaling("flow_mol_phase", 1e-3) + m.fs.air_props.set_default_scaling("flow_mol_phase_comp", 1) m.fs.air_props.set_default_scaling("temperature", 1e-2) m.fs.air_props.set_default_scaling("pressure", 1e-5) m.fs.air_props.set_default_scaling("mole_frac_comp", 1e2) m.fs.air_props.set_default_scaling("mole_frac_phase_comp", 1e2) m.fs.air_props.set_default_scaling("enth_mol_phase", 1e-6) - m.fs.air_props.set_default_scaling("entr_mol_phase", 1e-4) - - iscale.set_scaling_factor(m.fs.prereformer.lagrange_mult, 1e-4) - iscale.set_scaling_factor(m.fs.anode.lagrange_mult, 1e-4) - - iscale.set_scaling_factor(m.fs.reformer.lagrange_mult, 1e-4) - - # overwrite mole_frac lower bound to remove warnings - print('overwriting mole_frac lower bound, set to 0 to remove warnings') - for var in m.fs.component_data_objects(pyo.Var, descend_into=True): - if '.mole_frac' in var.name: # don't catch log_mole_frac variables - var.setlb(0) - - # some specific variable scaling - - # heat exchanger areas and overall heat transfer coefficiencts - iscale.set_scaling_factor(m.fs.anode_hx.area, 1e-4) - iscale.set_scaling_factor(m.fs.anode_hx.overall_heat_transfer_coefficient, 1) - iscale.set_scaling_factor(m.fs.cathode_hx.area, 1e-4) - iscale.set_scaling_factor(m.fs.cathode_hx.overall_heat_transfer_coefficient, 1) - iscale.set_scaling_factor(m.fs.reformer_recuperator.area, 1e-4) - iscale.set_scaling_factor(m.fs.reformer_recuperator.overall_heat_transfer_coefficient, 1) - - # control volume heats - iscale.set_scaling_factor(m.fs.anode_hx.tube.heat, 1e-7) - iscale.set_scaling_factor(m.fs.anode_hx.shell.heat, 1e-7) - iscale.set_scaling_factor(m.fs.anode.control_volume.heat, 1e-8) - iscale.set_scaling_factor(m.fs.cathode_hx.tube.heat, 1e-8) - iscale.set_scaling_factor(m.fs.cathode_hx.shell.heat, 1e-8) - iscale.set_scaling_factor(m.fs.cathode_heat.control_volume.heat, 1e-8) - iscale.set_scaling_factor(m.fs.cathode_HRSG.control_volume.heat, 1e-6) - iscale.set_scaling_factor(m.fs.intercooler_s1.control_volume.heat, 1e-6) - iscale.set_scaling_factor(m.fs.intercooler_s2.control_volume.heat, 1e-6) - iscale.set_scaling_factor(m.fs.anode_HRSG.control_volume.heat, 1e-8) - iscale.set_scaling_factor(m.fs.prereformer.control_volume.heat, 1e-6) - iscale.set_scaling_factor(m.fs.reformer.control_volume.heat, 1e-6) - iscale.set_scaling_factor(m.fs.reformer_recuperator.shell.heat, 1e-6) - iscale.set_scaling_factor(m.fs.reformer_recuperator.tube.heat, 1e-6) - - # work - iscale.set_scaling_factor(m.fs.anode_blower.control_volume.work, 1e-5) - iscale.set_scaling_factor(m.fs.air_blower.control_volume.work, 1e-6) - iscale.set_scaling_factor(m.fs.cathode_blower.control_volume.work, 1e-5) - iscale.set_scaling_factor(m.fs.air_compressor_s1.control_volume.work, 1e-6) - iscale.set_scaling_factor(m.fs.air_compressor_s2.control_volume.work, 1e-6) - iscale.set_scaling_factor(m.fs.cathode_expander.control_volume.work, 1e-6) - iscale.set_scaling_factor(m.fs.combustor_expander.control_volume.work, 1e-6) - iscale.set_scaling_factor(m.fs.NG_expander.control_volume.work, 1e-6) - - # reaction extents - iscale.set_scaling_factor(m.fs.combustor.control_volume.rate_reaction_extent[0, "h2_cmb"], 1e2) - iscale.set_scaling_factor(m.fs.combustor.control_volume.rate_reaction_extent[0, "co_cmb"], 1e2) - iscale.set_scaling_factor(m.fs.combustor.control_volume.rate_reaction_extent[0, "ch4_cmb"], 1e5) - - print('Scaling flowsheet constraints') - - list_units = ['anode_mix', 'anode_hx', 'prereformer', 'anode_translator', - 'fuel_cell_mix', 'anode', 'anode_recycle', 'anode_blower', - 'recycle_translator', 'air_blower', 'cathode_hx', - 'cathode_mix', 'cathode', 'cathode_translator', - 'cathode_heat', 'cathode_recycle', 'cathode_blower', - 'cathode_exhaust_split', 'cathode_expander', 'cathode_HRSG', - 'cathode_exhaust_translator', 'combustor_mix', 'combustor', - 'combustor_expander', 'anode_HRSG', 'reformer_recuperator', - 'NG_expander', 'reformer_bypass', 'air_compressor_s1', - 'intercooler_s1', 'air_compressor_s2', 'intercooler_s2', - 'reformer_mix', 'reformer', 'bypass_rejoin'] + m.fs.air_props.set_default_scaling("entr_mol_phase", 1e-1) + m.fs.air_props.set_default_scaling("entr_mol", 1e-1) + + built_units = [] + + if hasattr(m.fs, "reformer"): + iscale.set_scaling_factor(m.fs.reformer.lagrange_mult, 1e-4) + + # heat exchanger areas and overall heat transfer coefficiencts + iscale.set_scaling_factor(m.fs.reformer_recuperator.area, 1e-3) + iscale.set_scaling_factor(m.fs.reformer_recuperator.overall_heat_transfer_coefficient, 1e-1) + + # control volume heats + iscale.set_scaling_factor(m.fs.intercooler_s1.control_volume.heat, 1e-4) + iscale.set_scaling_factor(m.fs.intercooler_s2.control_volume.heat, 1e-5) + iscale.set_scaling_factor(m.fs.reformer.control_volume.heat, 1e-6) + iscale.set_scaling_factor(m.fs.reformer_recuperator.shell.heat, 1e-6) + iscale.set_scaling_factor(m.fs.reformer_recuperator.tube.heat, 1e-6) + + # work + iscale.set_scaling_factor(m.fs.air_compressor_s1.control_volume.work, 1e-5) + iscale.set_scaling_factor(m.fs.air_compressor_s2.control_volume.work, 1e-5) + iscale.set_scaling_factor(m.fs.NG_expander.control_volume.work, 1e-6) + + reformer_units = [ + 'reformer_recuperator', 'NG_expander', 'reformer_bypass', + 'air_compressor_s1', 'intercooler_s1', 'air_compressor_s2', + 'intercooler_s2', 'reformer_mix', 'reformer', 'bypass_rejoin' + ] + built_units += reformer_units + + if hasattr(m.fs, "anode"): + iscale.set_scaling_factor(m.fs.anode.lagrange_mult, 1e-4) + iscale.set_scaling_factor(m.fs.prereformer.lagrange_mult, 1e-4) + + # heat exchanger areas and overall heat transfer coefficiencts + iscale.set_scaling_factor(m.fs.anode_hx.area, 1e-4) + iscale.set_scaling_factor(m.fs.anode_hx.overall_heat_transfer_coefficient, 1e-1) + iscale.set_scaling_factor(m.fs.cathode_hx.area, 1e-4) + iscale.set_scaling_factor(m.fs.cathode_hx.overall_heat_transfer_coefficient, 1e-1) + + # control volume heats + iscale.set_scaling_factor(m.fs.anode_hx.tube.heat, 1e-7) + iscale.set_scaling_factor(m.fs.anode_hx.shell.heat, 1e-7) + iscale.set_scaling_factor(m.fs.anode.control_volume.heat, 1e-8) + iscale.set_scaling_factor(m.fs.cathode_hx.tube.heat, 1e-8) + iscale.set_scaling_factor(m.fs.cathode_hx.shell.heat, 1e-8) + iscale.set_scaling_factor(m.fs.cathode_heat.control_volume.heat, 1e-8) + iscale.set_scaling_factor(m.fs.cathode_HRSG.control_volume.heat, 1e-7) + iscale.set_scaling_factor(m.fs.anode_HRSG.control_volume.heat, 1e-8) + iscale.set_scaling_factor(m.fs.prereformer.control_volume.heat, 1) + + # work + iscale.set_scaling_factor(m.fs.anode_blower.control_volume.work, 1e-4) + iscale.set_scaling_factor(m.fs.air_blower.control_volume.work, 1e-5) + iscale.set_scaling_factor(m.fs.cathode_blower.control_volume.work, 1e-5) + iscale.set_scaling_factor(m.fs.cathode_expander.control_volume.work, 1e-3) + iscale.set_scaling_factor(m.fs.combustor_expander.control_volume.work, 1e-3) + + # reaction extents + iscale.set_scaling_factor(m.fs.combustor.control_volume.rate_reaction_extent[0, "h2_cmb"], 1) + iscale.set_scaling_factor(m.fs.combustor.control_volume.rate_reaction_extent[0, "co_cmb"], 1) + iscale.set_scaling_factor(m.fs.combustor.control_volume.rate_reaction_extent[0, "ch4_cmb"], 1e1) + + iscale.set_scaling_factor(m.fs.combustor.control_volume.rate_reaction_generation[0, "Vap", "H2"], 1e-1) + iscale.set_scaling_factor(m.fs.combustor.control_volume.rate_reaction_generation[0, "Vap", "CO"], 1e-1) + iscale.set_scaling_factor(m.fs.combustor.control_volume.rate_reaction_generation[0, "Vap", "H2O"], 1e-1) + iscale.set_scaling_factor(m.fs.combustor.control_volume.rate_reaction_generation[0, "Vap", "CO2"], 1e-1) + iscale.set_scaling_factor(m.fs.combustor.control_volume.rate_reaction_generation[0, "Vap", "O2"], 1e-1) + + power_island_units = [ + 'anode_mix', 'anode_hx', 'prereformer', 'anode_translator', + 'fuel_cell_mix', 'anode', 'anode_recycle', 'anode_blower', + 'recycle_translator', 'air_blower', 'cathode_hx', + 'cathode_mix', 'cathode', 'cathode_translator', + 'cathode_heat', 'cathode_recycle', 'cathode_blower', + 'cathode_exhaust_split', 'cathode_expander', 'cathode_HRSG', + 'cathode_exhaust_translator', 'combustor_mix', 'combustor', + 'combustor_expander', 'anode_HRSG' + ] + built_units += power_island_units # set scaling for unit constraints - for name in list_units: + for name in built_units: unit = getattr(m.fs, name) - # mixer constraints + # mixer if hasattr(unit, 'material_mixing_equations'): for (t, j), c in unit.material_mixing_equations.items(): iscale.constraint_scaling_transform(c, 1e-3, overwrite=False) - if hasattr(unit, 'enthalpy_mixing_equations'): - for t, c in unit.enthalpy_mixing_equations.items(): - iscale.constraint_scaling_transform(c, 1e-3, overwrite=False) - if hasattr(unit, 'minimum_pressure_constraint'): - for (t, i), c in unit.minimum_pressure_constraint.items(): - iscale.constraint_scaling_transform(c, 1e-5, overwrite=False) - if hasattr(unit, 'mixture_pressure'): - for t, c in unit.mixture_pressure.items(): - iscale.constraint_scaling_transform(c, 1e-5, overwrite=False) - - # separator constraints - if hasattr(unit, 'material_splitting_eqn'): - for (t, o, j), c in unit.material_splitting_eqn.items(): - iscale.constraint_scaling_transform(c, 1e-3, overwrite=False) - if hasattr(unit, 'temperature_equality_eqn'): - for (t, o), c in unit.temperature_equality_eqn.items(): - iscale.constraint_scaling_transform(c, 1e-2, overwrite=False) - if hasattr(unit, 'pressure_equality_eqn'): - for (t, o), c in unit.pressure_equality_eqn.items(): - iscale.constraint_scaling_transform(c, 1e-5, overwrite=False) - if hasattr(unit, 'sum_split_frac'): - for t, c in unit.sum_split_frac.items(): - iscale.constraint_scaling_transform(c, 1, overwrite=False) - - # pressurechanger constraints - - if hasattr(unit, "ratioP_calculation"): - for t, c in unit.ratioP_calculation.items(): - iscale.constraint_scaling_transform(c, 1e-5, overwrite=False) - - if hasattr(unit, "actual_work"): - for t, c in unit.actual_work.items(): - iscale.constraint_scaling_transform(c, 1e-6, overwrite=False) - - if hasattr(unit, "isentropic_pressure"): - for t, c in unit.isentropic_pressure.items(): - iscale.constraint_scaling_transform(c, 1e-5, overwrite=False) - - if hasattr(unit, "isentropic"): - for t, c in unit.isentropic.items(): - iscale.constraint_scaling_transform(c, 1e-1, overwrite=False) - + # pressure changer if hasattr(unit, "isentropic_energy_balance"): for t, c in unit.isentropic_energy_balance.items(): iscale.constraint_scaling_transform(c, 1e-3, overwrite=False) - - if hasattr(unit, "state_material_balances"): - for (t, j), c in unit.state_material_balances.items(): - iscale.constraint_scaling_transform(c, 1e-3, overwrite=False) - - # HeatExchanger non-CV constraints + # heat exchanger if hasattr(unit, "heat_transfer_equation"): for t, c in unit.heat_transfer_equation.items(): iscale.constraint_scaling_transform(c, 1e-7, overwrite=False) - if hasattr(unit, "unit_heat_balance"): - for t, c in unit.unit_heat_balance.items(): - iscale.constraint_scaling_transform(c, 1e-7, overwrite=False) - - if hasattr(unit, "delta_temperature_in_equation"): - for t, c in unit.delta_temperature_in_equation.items(): - iscale.constraint_scaling_transform(c, 1e-1, overwrite=False) - - if hasattr(unit, "delta_temperature_out_equation"): - for t, c in unit.delta_temperature_out_equation.items(): - iscale.constraint_scaling_transform(c, 1e-1, overwrite=False) - - # Translator has no constraints to scale - # Gibbs reactor minimization is scaled elsewhere, set by gibbs_scaling - # adding scaling factors of unity here for completeness - if hasattr(unit, "gibbs_minimization"): - for (t, p, j), c in unit.gibbs_minimization.items(): - iscale.constraint_scaling_transform(c, 1, overwrite=False) - - if hasattr(unit, "inert_species_balance"): - for (t, p, j), c in unit.inert_species_balance.items(): - iscale.constraint_scaling_transform(c, 1, overwrite=False) - - print('Calculating scaling factors') iscale.calculate_scaling_factors(m) - print() - -def initialize_power_island(m): + constraints_to_scale = { + m.fs.prereformer.control_volume.element_balances[0.0, "H"]: 1e-2, + m.fs.prereformer.control_volume.element_balances[0.0, "C"]: 1e-2, + m.fs.prereformer.control_volume.element_balances[0.0, "O"]: 1e-2, + m.fs.prereformer.control_volume.element_balances[0.0, "N"]: 1e-2, + m.fs.prereformer.control_volume.element_balances[0.0, "Ar"]: 1e-2, + m.fs.prereformer.inert_species_balance[0.0, "Vap", "O2"]: 1e-2, + m.fs.anode.control_volume.element_balances[0.0, "H"]: 1e-2, + m.fs.anode.control_volume.element_balances[0.0, "C"]: 1e-2, + m.fs.anode.control_volume.element_balances[0.0, "O"]: 1e-2, + m.fs.anode.control_volume.element_balances[0.0, "N"]: 1e-2, + m.fs.anode.control_volume.element_balances[0.0, "Ar"]: 1e-2, + m.fs.anode_recycle.material_splitting_eqn[0.0, "exhaust", "CH4"]: 0.01, + m.fs.anode_recycle.material_splitting_eqn[0.0, "recycle", "CH4"]: 0.01, + m.fs.anode_hx.hot_side.material_balances[0.0, "CH4"]: 0.01, + m.fs.combustor_mix.material_mixing_equations[0.0, "CH4"]: 0.01, + m.fs.combustor.control_volume.material_balances[0.0, "CH4"]: 0.01, + m.fs.anode_blower.isentropic_energy_balance[0.0]: 1e-5, + m.fs.air_blower.isentropic_energy_balance[0.0]: 1e-5, + m.fs.cathode_blower.isentropic_energy_balance[0.0]: 1e-5, + m.fs.cathode_expander.isentropic_energy_balance[0.0]: 1e-5, + m.fs.combustor_expander.isentropic_energy_balance[0.0]: 1e-4, + } + + for c, sf in constraints_to_scale.items(): + iscale.constraint_scaling_transform(c, sf) + + +def initialize_power_island(m, outlvl=logging.INFO): solver = pyo.SolverFactory("ipopt") solver.options = { "max_iter": 500, "tol": 1e-5, "bound_push": 1e-8, "linear_solver": "ma57", - "ma57_pivtol": 1e-3, "OF_ma57_automatic_scaling": "yes", "nlp_scaling_method": "user-scaling" - } + } # cathode side - m.fs.air_blower.initialize(outlvl=logging.INFO) + m.fs.air_blower.initialize(outlvl=outlvl, optarg=solver.options) - propagate_state(m.fs.cathode_hx.tube_inlet, m.fs.air_blower.outlet) + propagate_state( + source=m.fs.air_blower.outlet, + destination=m.fs.cathode_hx.tube_inlet + ) - # fix cathode inlet to initial guess + # set cathode inlet to initial guess m.fs.cathode.inlet.flow_mol[0] = 34174 m.fs.cathode.inlet.temperature[0] = 892 m.fs.cathode.inlet.pressure[0] = 105490 @@ -989,39 +951,61 @@ def initialize_power_island(m): m.fs.cathode.inlet.mole_frac_comp[0, "O2"] = 0.1690 m.fs.cathode.inlet.mole_frac_comp[0, "Ar"] = 0.0099 - m.fs.cathode.initialize(outlvl=logging.INFO) - - m.fs.cathode.inlet.unfix() + m.fs.cathode.initialize(outlvl=outlvl, optarg=solver.options) # cathode translator block - propagate_state(m.fs.cathode_translator.inlet, m.fs.cathode.ion_outlet) + propagate_state( + source=m.fs.cathode.ion_outlet, + destination=m.fs.cathode_translator.inlet + ) - m.fs.cathode_translator.initialize() + m.fs.cathode_translator.initialize(outlvl=outlvl, optarg=solver.options) # rest of cathode side - propagate_state(m.fs.cathode_heat.inlet, m.fs.cathode.air_outlet) + propagate_state( + source=m.fs.cathode.air_outlet, + destination=m.fs.cathode_heat.inlet + ) - m.fs.cathode_heat.initialize(outlvl=logging.INFO) + m.fs.cathode_heat.initialize(outlvl=outlvl, optarg=solver.options) - propagate_state(m.fs.cathode_recycle.inlet, m.fs.cathode_heat.outlet) + propagate_state( + source=m.fs.cathode_heat.outlet, + destination=m.fs.cathode_recycle.inlet + ) - m.fs.cathode_recycle.initialize(outlvl=logging.INFO) + m.fs.cathode_recycle.initialize(outlvl=outlvl, optarg=solver.options) - propagate_state(m.fs.cathode_hx.shell_inlet, m.fs.cathode_recycle.exhaust) + propagate_state( + source=m.fs.cathode_recycle.exhaust, + destination=m.fs.cathode_hx.shell_inlet + ) - m.fs.cathode_hx.initialize(outlvl=logging.INFO) + m.fs.cathode_hx.initialize(outlvl=outlvl, optarg=solver.options) - propagate_state(m.fs.cathode_blower.inlet, m.fs.cathode_recycle.recycle) + propagate_state( + source=m.fs.cathode_recycle.recycle, + destination=m.fs.cathode_blower.inlet + ) - m.fs.cathode_blower.initialize(outlvl=logging.INFO) + m.fs.cathode_blower.initialize(outlvl=outlvl, optarg=solver.options) - propagate_state(m.fs.cathode_mix.recycle, m.fs.cathode_blower.outlet) + propagate_state( + source=m.fs.cathode_blower.outlet, + destination=m.fs.cathode_mix.recycle + ) - propagate_state(m.fs.cathode_mix.feed, m.fs.cathode_hx.tube_outlet) + propagate_state( + source=m.fs.cathode_hx.tube_outlet, + destination=m.fs.cathode_mix.feed + ) - m.fs.cathode_mix.initialize(outlvl=logging.INFO) + m.fs.cathode_mix.initialize(outlvl=outlvl, optarg=solver.options) - propagate_state(m.fs.cathode.inlet, m.fs.cathode_mix.outlet) + propagate_state( + source=m.fs.cathode_mix.outlet, + destination=m.fs.cathode.inlet + ) # anode side # anode inlet is used as tear stream @@ -1041,51 +1025,52 @@ def initialize_power_island(m): m.fs.anode.lagrange_mult[0, "H"] = 78296 m.fs.anode.lagrange_mult[0, "O"] = 291784 - m.fs.anode.outlet.mole_frac_comp[0, "O2"] = 0 - - # This initialization step fails to converge, but is sufficient to resolve - try: - m.fs.anode.initialize(outlvl=logging.INFO) - except InitializationError: - # this step may end on Solve to Acceptable Level, add resolve condition - for i in range(1, 10): # keep looping until condition is met - res = solver.solve(m.fs.anode, tee=True) - if 'Optimal Solution Found' in res.solver.message: - break + m.fs.anode.initialize(outlvl=outlvl, optarg=solver.options) - propagate_state(m.fs.anode_recycle.inlet, m.fs.anode.outlet) - - m.fs.anode_recycle.initialize(outlvl=logging.INFO) + propagate_state( + source=m.fs.anode.outlet, + destination=m.fs.anode_recycle.inlet + ) - propagate_state(m.fs.anode_blower.inlet, m.fs.anode_recycle.recycle) + m.fs.anode_recycle.initialize(outlvl=outlvl, optarg=solver.options) - # This initialization step fails to converge, but is sufficient to resolve - try: - m.fs.anode_blower.initialize(outlvl=logging.INFO) - except InitializationError: - # this step may end on Solve to Acceptable Level, add resolve condition - for i in range(1, 10): # keep looping until condition is met - res = solver.solve(m.fs.anode_blower, tee=True) - if 'Optimal Solution Found' in res.solver.message: - break + propagate_state( + source=m.fs.anode_recycle.recycle, + destination=m.fs.anode_blower.inlet + ) - propagate_state(m.fs.recycle_translator.inlet, m.fs.anode_blower.outlet) + m.fs.anode_blower.initialize(outlvl=outlvl, optarg=solver.options) - m.fs.recycle_translator.initialize() + propagate_state( + source=m.fs.anode_blower.outlet, + destination=m.fs.recycle_translator.inlet + ) - propagate_state(m.fs.anode_mix.recycle, m.fs.recycle_translator.outlet) + m.fs.recycle_translator.initialize(outlvl=outlvl, optarg=solver.options) - m.fs.anode_mix.initialize(outlvl=logging.INFO) + propagate_state( + source=m.fs.recycle_translator.outlet, + destination=m.fs.anode_mix.recycle + ) - propagate_state(m.fs.anode_hx.tube_inlet, m.fs.anode_mix.outlet) + m.fs.anode_mix.initialize(outlvl=outlvl, optarg=solver.options) - propagate_state(m.fs.anode_hx.shell_inlet, m.fs.anode_recycle.exhaust) + propagate_state( + source=m.fs.anode_mix.outlet, + destination=m.fs.anode_hx.tube_inlet + ) - m.fs.anode_hx.initialize(outlvl=logging.INFO) + propagate_state( + source=m.fs.anode_recycle.exhaust, + destination=m.fs.anode_hx.shell_inlet + ) - propagate_state(m.fs.prereformer.inlet, m.fs.anode_hx.tube_outlet) + m.fs.anode_hx.initialize(outlvl=outlvl, optarg=solver.options) - propagate_state(m.fs.prereformer.outlet, m.fs.prereformer.inlet) + propagate_state( + source=m.fs.anode_hx.tube_outlet, + destination=m.fs.prereformer.inlet + ) m.fs.prereformer.gibbs_scaling = 1e-4 @@ -1093,91 +1078,106 @@ def initialize_power_island(m): m.fs.prereformer.lagrange_mult[0, "H"] = 62744 m.fs.prereformer.lagrange_mult[0, "O"] = 293569 - m.fs.prereformer.outlet.mole_frac_comp[0, "O2"] = 0 - m.fs.prereformer.outlet.mole_frac_comp[0, "Ar"] = 0.003 - m.fs.prereformer.outlet.mole_frac_comp[0, "C2H6"] = 0 - m.fs.prereformer.outlet.mole_frac_comp[0, "C3H8"] = 0 - m.fs.prereformer.outlet.mole_frac_comp[0, "C4H10"] = 0 + m.fs.prereformer.initialize(outlvl=outlvl, optarg=solver.options) - m.fs.prereformer.initialize(outlvl=logging.INFO) - - propagate_state(m.fs.anode_translator.inlet, m.fs.prereformer.outlet) + propagate_state( + source=m.fs.prereformer.outlet, + destination=m.fs.anode_translator.inlet + ) - m.fs.anode_translator.initialize() + m.fs.anode_translator.initialize(outlvl=outlvl, optarg=solver.options) - propagate_state(m.fs.fuel_cell_mix.fuel_inlet, m.fs.anode_translator.outlet) + propagate_state( + source=m.fs.anode_translator.outlet, + destination=m.fs.fuel_cell_mix.fuel_inlet + ) - propagate_state(m.fs.fuel_cell_mix.ion_inlet, m.fs.cathode_translator.outlet) + propagate_state( + source=m.fs.cathode_translator.outlet, + destination=m.fs.fuel_cell_mix.ion_inlet + ) - m.fs.fuel_cell_mix.initialize(outlvl=logging.INFO) + m.fs.fuel_cell_mix.initialize(outlvl=outlvl, optarg=solver.options) ############################## # Combustor and HRSG section # ############################## # cathode side - propagate_state(m.fs.cathode_exhaust_split.inlet, m.fs.cathode_hx.shell_outlet) + propagate_state( + source=m.fs.cathode_hx.shell_outlet, + destination=m.fs.cathode_exhaust_split.inlet + ) - m.fs.cathode_exhaust_split.initialize(outlvl=logging.INFO) + m.fs.cathode_exhaust_split.initialize(outlvl=outlvl, optarg=solver.options) propagate_state( - m.fs.cathode_expander.inlet, m.fs.cathode_exhaust_split.exhaust_outlet + source=m.fs.cathode_exhaust_split.exhaust_outlet, + destination=m.fs.cathode_expander.inlet ) - m.fs.cathode_expander.initialize(outlvl=logging.INFO) + m.fs.cathode_expander.initialize(outlvl=outlvl, optarg=solver.options) - propagate_state(m.fs.cathode_HRSG.inlet, m.fs.cathode_expander.outlet) + propagate_state( + source=m.fs.cathode_expander.outlet, + destination=m.fs.cathode_HRSG.inlet + ) - m.fs.cathode_HRSG.initialize(outlvl=logging.INFO) + m.fs.cathode_HRSG.initialize(outlvl=outlvl, optarg=solver.options) propagate_state( - m.fs.cathode_exhaust_translator.inlet, - m.fs.cathode_exhaust_split.combustor_outlet, + source=m.fs.cathode_exhaust_split.combustor_outlet, + destination=m.fs.cathode_exhaust_translator.inlet ) - m.fs.cathode_exhaust_translator.initialize() + m.fs.cathode_exhaust_translator.initialize(outlvl=outlvl, optarg=solver.options) # anode side propagate_state( - m.fs.combustor_mix.cathode_inlet, m.fs.cathode_exhaust_translator.outlet + source=m.fs.cathode_exhaust_translator.outlet, + destination=m.fs.combustor_mix.cathode_inlet ) - propagate_state(m.fs.combustor_mix.anode_inlet, m.fs.anode_hx.shell_outlet) + propagate_state( + source=m.fs.anode_hx.shell_outlet, + destination=m.fs.combustor_mix.anode_inlet + ) - m.fs.combustor_mix.initialize(outlvl=logging.INFO) + m.fs.combustor_mix.initialize(outlvl=outlvl, optarg=solver.options) - propagate_state(m.fs.combustor.inlet, m.fs.combustor_mix.outlet) + propagate_state( + source=m.fs.combustor_mix.outlet, + destination=m.fs.combustor.inlet + ) - # This initialization step fails to converge, but is sufficient to resolve - try: - m.fs.combustor.initialize(outlvl=logging.INFO) - except InitializationError: - # this step may end on Solve to Acceptable Level, add resolve condition - for i in range(1, 10): # keep looping until condition is met - res = solver.solve(m.fs.combustor, tee=True) - if 'Optimal Solution Found' in res.solver.message: - break + m.fs.combustor.initialize(outlvl=outlvl, optarg=solver.options) - propagate_state(m.fs.combustor_expander.inlet, m.fs.combustor.outlet) + propagate_state( + source=m.fs.combustor.outlet, + destination=m.fs.combustor_expander.inlet + ) - m.fs.combustor_expander.initialize() + m.fs.combustor_expander.initialize(outlvl=outlvl, optarg=solver.options) - propagate_state(m.fs.anode_HRSG.inlet, m.fs.combustor_expander.outlet) + propagate_state( + source=m.fs.combustor_expander.outlet, + destination=m.fs.anode_HRSG.inlet + ) - m.fs.anode_HRSG.initialize() + m.fs.anode_HRSG.initialize(outlvl=outlvl, optarg=solver.options) -def initialize_reformer(m): +def initialize_reformer(m, outlvl=logging.INFO): solver = pyo.SolverFactory("ipopt") solver.options = { "max_iter": 500, "tol": 1e-5, "bound_push": 1e-8, "linear_solver": "ma57", - "ma57_pivtol": 1e-3, "OF_ma57_automatic_scaling": "yes", "nlp_scaling_method": "user-scaling" - } + } + m.fs.reformer.inlet.flow_mol[0] = 2262 # mol/s m.fs.reformer.inlet.temperature[0] = 470 # K m.fs.reformer.inlet.pressure[0] = 203395 # Pa @@ -1185,102 +1185,89 @@ def initialize_reformer(m): m.fs.reformer.inlet.mole_frac_comp[0, "C2H6"] = 0.006 m.fs.reformer.inlet.mole_frac_comp[0, "C3H8"] = 0.002 m.fs.reformer.inlet.mole_frac_comp[0, "C4H10"] = 0.001 - m.fs.reformer.inlet.mole_frac_comp[0, "H2"] = 0 - m.fs.reformer.inlet.mole_frac_comp[0, "CO"] = 0 + m.fs.reformer.inlet.mole_frac_comp[0, "H2"] = 1e-19 + m.fs.reformer.inlet.mole_frac_comp[0, "CO"] = 1e-19 m.fs.reformer.inlet.mole_frac_comp[0, "CO2"] = 0.002 m.fs.reformer.inlet.mole_frac_comp[0, "H2O"] = 0.212 m.fs.reformer.inlet.mole_frac_comp[0, "N2"] = 0.458 m.fs.reformer.inlet.mole_frac_comp[0, "O2"] = 0.122 m.fs.reformer.inlet.mole_frac_comp[0, "Ar"] = 0.006 - m.fs.reformer.lagrange_mult[0, "C"] = 39230 - m.fs.reformer.lagrange_mult[0, "H"] = 81252 - m.fs.reformer.lagrange_mult[0, "O"] = 315049 - - m.fs.reformer.outlet.mole_frac_comp[0, "O2"] = 0 - m.fs.reformer.outlet.mole_frac_comp[0, "Ar"] = 0.004 - m.fs.reformer.outlet.mole_frac_comp[0, "CH4"] = 0.0005 - m.fs.reformer.outlet.mole_frac_comp[0, "C2H6"] = 0 - m.fs.reformer.outlet.mole_frac_comp[0, "C3H8"] = 0 - m.fs.reformer.outlet.mole_frac_comp[0, "C4H10"] = 0 - - # This initialization step fails to converge, but is sufficient to resolve - try: - m.fs.reformer.initialize(outlvl=logging.INFO) - except InitializationError: - # this step may end on Solve to Acceptable Level, add resolve condition - for i in range(1, 10): # keep looping until condition is met - res = solver.solve(m.fs.reformer, tee=True) - if 'Optimal Solution Found' in res.solver.message: - break + m.fs.reformer.initialize(outlvl=outlvl, optarg=solver.options) # reformer recuperator - propagate_state(m.fs.reformer_recuperator.shell_inlet, m.fs.reformer.outlet) - - # This initialization step fails to converge, but is sufficient to resolve - try: - m.fs.reformer_recuperator.initialize(outlvl=logging.INFO) - except InitializationError: - # this step may end on Solve to Acceptable Level, add resolve condition - for i in range(1, 10): # keep looping until condition is met - res = solver.solve(m.fs.reformer_recuperator, tee=True) - if 'Optimal Solution Found' in res.solver.message: - break + propagate_state( + source=m.fs.reformer.outlet, + destination=m.fs.reformer_recuperator.shell_inlet + ) + + m.fs.reformer_recuperator.initialize(outlvl=outlvl, optarg=solver.options) # NG expander - propagate_state(m.fs.NG_expander.inlet, m.fs.reformer_recuperator.tube_outlet) - - # This initialization step fails to converge, but is sufficient to resolve - try: - m.fs.NG_expander.initialize(outlvl=logging.INFO) - except InitializationError: - # this step may end on Solve to Acceptable Level, add resolve condition - for i in range(1, 10): # keep looping until condition is met - res = solver.solve(m.fs.NG_expander, tee=True) - if 'Optimal Solution Found' in res.solver.message: - break + propagate_state( + source=m.fs.reformer_recuperator.tube_outlet, + destination=m.fs.NG_expander.inlet + ) + + m.fs.NG_expander.initialize(outlvl=outlvl, optarg=solver.options) # reformer bypass - propagate_state(m.fs.reformer_bypass.inlet, m.fs.NG_expander.outlet) + propagate_state( + source=m.fs.NG_expander.outlet, + destination=m.fs.reformer_bypass.inlet + ) - m.fs.reformer_bypass.initialize() + m.fs.reformer_bypass.initialize(outlvl=outlvl, optarg=solver.options) # air compressor train - m.fs.air_compressor_s1.initialize() + m.fs.air_compressor_s1.initialize(outlvl=outlvl, optarg=solver.options) - propagate_state(m.fs.intercooler_s1.inlet, m.fs.air_compressor_s1.outlet) + propagate_state( + source=m.fs.air_compressor_s1.outlet, + destination=m.fs.intercooler_s1.inlet + ) - m.fs.intercooler_s1.initialize() + m.fs.intercooler_s1.initialize(outlvl=outlvl, optarg=solver.options) - propagate_state(m.fs.air_compressor_s2.inlet, m.fs.intercooler_s1.outlet) + propagate_state( + source=m.fs.intercooler_s1.outlet, + destination=m.fs.air_compressor_s2.inlet + ) - # This initialization step fails to converge, but is sufficient to resolve - try: - m.fs.air_compressor_s2.initialize(outlvl=logging.INFO) - except InitializationError: - # this step may end on Solve to Acceptable Level, add resolve condition - for i in range(1, 10): # keep looping until condition is met - res = solver.solve(m.fs.air_compressor_s2, tee=True) - if 'Optimal Solution Found' in res.solver.message: - break + m.fs.air_compressor_s2.initialize(outlvl=outlvl, optarg=solver.options) - propagate_state(m.fs.intercooler_s2.inlet, m.fs.air_compressor_s2.outlet) + propagate_state( + source=m.fs.air_compressor_s2.outlet, + destination=m.fs.intercooler_s2.inlet + ) - m.fs.intercooler_s2.initialize() + m.fs.intercooler_s2.initialize(outlvl=outlvl, optarg=solver.options) # reformer mixer - propagate_state(m.fs.reformer_mix.oxygen_inlet, m.fs.intercooler_s2.outlet) + propagate_state( + source=m.fs.intercooler_s2.outlet, + destination=m.fs.reformer_mix.oxygen_inlet + ) - propagate_state(m.fs.reformer_mix.gas_inlet, m.fs.reformer_bypass.reformer_outlet) + propagate_state( + source=m.fs.reformer_bypass.reformer_outlet, + destination=m.fs.reformer_mix.gas_inlet + ) - m.fs.reformer_mix.initialize() + m.fs.reformer_mix.initialize(outlvl=outlvl, optarg=solver.options) # bypass rejoin - propagate_state(m.fs.bypass_rejoin.syngas_inlet, m.fs.reformer_recuperator.shell_outlet) + propagate_state( + source=m.fs.reformer_recuperator.shell_outlet, + destination=m.fs.bypass_rejoin.syngas_inlet + ) - propagate_state(m.fs.bypass_rejoin.bypass_inlet, m.fs.reformer_bypass.bypass_outlet) + propagate_state( + source=m.fs.reformer_bypass.bypass_outlet, + destination=m.fs.bypass_rejoin.bypass_inlet + ) - m.fs.bypass_rejoin.initialize() + m.fs.bypass_rejoin.initialize(outlvl=outlvl, optarg=solver.options) def connect_reformer_to_power_island(m): @@ -1291,7 +1278,7 @@ def connect_reformer_to_power_island(m): pyo.TransformationFactory("network.expand_arcs").apply_to(m.fs) -def SOFC_ROM_setup(m): +def SOFC_ROM_setup(m, init=True): # create the ROM build_SOFC_ROM(m.fs) @@ -1404,11 +1391,14 @@ def ROM_internal_reformation(fs): m.fs.SOFC.pressure.fix(1) # initialize ROM - calculate_variable_from_constraint( - m.fs.SOFC.air_temperature, m.fs.ROM_air_inlet_temperature - ) - calculate_variable_from_constraint(m.fs.SOFC.air_util, m.fs.ROM_air_utilization) - initialize_SOFC_ROM(m.fs.SOFC) + if init: + calculate_variable_from_constraint( + m.fs.SOFC.air_temperature, m.fs.ROM_air_inlet_temperature + ) + calculate_variable_from_constraint( + m.fs.SOFC.air_util, m.fs.ROM_air_utilization + ) + initialize_SOFC_ROM(m.fs.SOFC) # add constraints for power calculations m.fs.F = pyo.Param(initialize=96487, units=pyunits.C / pyunits.mol) @@ -1661,7 +1651,7 @@ def fstr(value, decimals, unit=""): tag_group.str_include_units = False original_svg_file = os.path.join(this_file_dir(), - "../../notebooks/archive/power_gen/ngfc/NGFC_results_template.svg") + "../../archive/power_gen/ngfc/NGFC_results_template.svg") with open(original_svg_file, "r") as f: svg_tag(svg=f, tag_group=tag_group, outfile=outfile) @@ -1676,11 +1666,12 @@ def main(): if os.path.exists("../../notebooks/archive/power_gen/ngfc/NGFC_flowsheet_init.json.gz") and reinit is False: # already initialized, can build model and load results from json + build_properties(m) build_power_island(m) build_reformer(m) scale_flowsheet(m) connect_reformer_to_power_island(m) - SOFC_ROM_setup(m) + SOFC_ROM_setup(m, init=False) add_SOFC_energy_balance(m) add_result_constraints(m) if os.path.exists("../../notebooks/archive/power_gen/ngfc/NGFC_flowsheet_solution.json.gz") and resolve is False: @@ -1693,26 +1684,20 @@ def main(): print('Loading initialized model') ms.from_json(m, fname="NGFC_flowsheet_init.json.gz") # solver and options - solver = pyo.SolverFactory("ipopt") - solver.options = { - "max_iter": 50, - "tol": 1e-5, - "bound_push": 1e-8, - "linear_solver": "ma57", - "ma57_pivtol": 1e-3, - "OF_ma57_automatic_scaling": "yes", + solver_ma97 = pyo.SolverFactory("ipopt") + solver_ma97.options = { + "max_iter": 200, + "tol": 1e-7, + "bound_push": 1e-5, + "mu_init": 1e-2, + "linear_solver": "ma97", "nlp_scaling_method": "user-scaling" - } - solve_iteration = 0 - for i in range(1, 10): # keep looping until condition is met - solve_iteration += 1 - print('Solve # ', solve_iteration) - res = solver.solve(m, tee=True) - if 'Optimal Solution Found' in res.solver.message: - break + } + solver_ma97.solve(m, tee=True) ms.to_json(m, fname="NGFC_flowsheet_solution.json.gz") else: # need to initialize model, serialize, and try to solve/serialize + build_properties(m) build_power_island(m) build_reformer(m) scale_flowsheet(m) @@ -1721,27 +1706,34 @@ def main(): initialize_power_island(m) initialize_reformer(m) connect_reformer_to_power_island(m) - SOFC_ROM_setup(m) + + solver_ma57 = pyo.SolverFactory("ipopt") + solver_ma57.options = { + "max_iter": 200, + "tol": 1e-7, + "bound_push": 1e-5, + "linear_solver": "ma57", + "OF_ma57_automatic_scaling": "yes", + "nlp_scaling_method": "user-scaling" + } + solver_ma57.solve(m, tee=True) + + SOFC_ROM_setup(m, init=True) add_SOFC_energy_balance(m) add_result_constraints(m) + ms.to_json(m, fname="NGFC_flowsheet_init.json.gz") - solver = pyo.SolverFactory("ipopt") - solver.options = { - "max_iter": 50, - "tol": 1e-5, - "bound_push": 1e-8, - "linear_solver": "ma57", - "ma57_pivtol": 1e-3, - "OF_ma57_automatic_scaling": "yes", + + solver_ma97 = pyo.SolverFactory("ipopt") + solver_ma97.options = { + "max_iter": 200, + "tol": 1e-7, + "bound_push": 1e-5, + "mu_init": 1e-2, + "linear_solver": "ma97", "nlp_scaling_method": "user-scaling" - } - solve_iteration = 0 - for i in range(1, 10): # keep looping until condition is met - solve_iteration += 1 - print('Solve # ', solve_iteration) - res = solver.solve(m, tee=True) - if 'Optimal Solution Found' in res.solver.message: - break + } + solver_ma97.solve(m, tee=True) ms.to_json(m, fname="NGFC_flowsheet_solution.json.gz")