Guidance of installing and running program on Windows Version 1.1 Zeyu Yang [email protected] School of Chemical and Biomolecular Engineering Georgia Institute of Technology July, 20th 2016 This documentation provides how to install software and packages required to run the simulated moving bed process simulation using the optimizer attached, and provides how to use the optimizer to perform desired simulations. The method used in the optimizer and the default parameter setting are identical as the study by Kawajiri and Biegler (Kawajiri & Biegler, 2006). The code of optimizer was originally created by Suriya Arulselvan in December 2015, revised and developed by Zeyu Yang in July 2016. Section 1: Software and Package Installation The following installation guide can be applied for running program under Windows operating system, Cygwin terminal is used. Step by step installation guide is following: 1. Install Cygwin Cygwin is a Linux-like environment for Windows. Go to the website and download 32 or 64 bits version depend on operating system (but strongly suggest to install 32 bits version even if you have 64 bits OS). https://cygwin.com/install.html 1) Click next 2) Select ‘install from the internet’ (default) and click next 3) Select a directory where Cygwin is to be installed (you can leave the default) and choose all other things to your liking, then click next 4) Select a temp directory for Cygwin setup to store some files (if you put it on your desktop you will later remember to delete it) 5) Select ‘direct connection’ (default) and click next 6) Select some mirror site that seems close by to you and click next 7) At the step of select packages, select the following packages: ‘Devel’: gcc-core: GNU Compiler Collection (C, OpenMP) ‘Devel’: gcc-fortran: GNU Compiler Collection (Fortran) ‘Devel’: pkg-config ‘Devel’: subversion ‘Archive’: unzip ‘Utils’: patch ‘Utils’: patcher & patchutils ‘Web’: wget ‘Libs’: libfreetype-devel: Free Type font engine ‘Libs’: libpng-devel: PNG library ‘Python’: python: Python language interpreter ‘Python’: python-numpy ‘Python’: python-ply ‘Python’: python-pyparsing ‘Python’: python-setuptools ‘Python’: python-six When a Resolving Dependencies window comes up, be sure to ‘Select required packages (RECOMMENDED)’. This will automatically also select some other packages. From now on the directory where Cygwin installed will be called $Cygwin in this documentation. 2. Install Pyomo An older version of pyomo will be installed. From https://software.sandia.gov/trac/pyomo/downloader Download pyomo_4.0.9682.zip and pyomo_install At the same time, download ‘get-pip.py’ from http://www.pyomo.org/installation Put all files above to $Cygwin\home\your_user_name Run Cygwin terminal as administrator, go to this directory, enter following lines: $ python get-pip.py $ python pyomo_install --zip=pyomo_4.0.9682.zip The $ indicates the command line prompt, do not type $. 3. Install Ipopt Ipopt is an open source software package for large-scale nonlinear optimization. Download the latest version in .tgz file of Ipopt from http://www.coin-or.org/download/source/Ipopt The name of the file looks like Ipopt-x.y.z.tgz, where x.y.z is the version number, such as 3.12.0. Also put the file in $Cygwin\home\your_user_name Where your_user_name is the user name of your computer. In Cygwin terminal, go to the directory, run following lines: $ $ $ $ gunzip Ipopt-x.y.z.tgz tar xvf Ipopt-x.y.z.tar mv Ipopt-x.y.z CoinIpopt cd CoinIpopt These commands unpacked the tgz file, renamed the directory and go to the directory. From now on this directory will be called $IPOPTDIR in this documentation. Next, some external code will be downloaded, this includes BLAS, LAPACK and ASL. Run the following command: $ $ $ $ $ $ cd ThirdParty/Blas ./get.Blas cd ../Lapack ./get.Lapack cd ../ASL ./get.ASL Next, HSL will be required, follow the following steps, 1) 2) 3) 4) Go to http://hsl.rl.ac.uk/ipopt Choose HSL Full code. To download, select the relevant ‘source’ link. Follow the instructions on the website, read the license, and submit the registration form. Wait for an email containing a download link (this should take no more than one working day). 5) Download the .zip file of HSL. 6) Unpack the archive, then move and rename the resulting directory so that it becomes $IPOPTDIR/ThirdParty/HSL/coinhsl Last we compile Ipopt. 1) Download the make file from http://www.cmake.org/files/cygwin/make.exe and save it to $Cygwin/bin, if this make file does not work, download another version from http://www.cmake.org/files/cygwin/make.exe-cygwin1.7, rename this file and save it to $Cygwin/bin 2) Type the following lines, i. ii. iii. $ mkdir $IPOPTDIR/build cd $IPOPTDIR/build ../configure These lines create a directory to configure and do the configuration. After typing these lines, if the last output line reads ‘configure: Main configuration of Ipopt successful’ then everything worked fine. Otherwise, look at the screen output, have a look at the config.log output files and/or consult http://www.coin-or.org/Ipopt/documentation/node19.html#ExpertInstall 3) Type the following lines, i. $ make ii. $ make install If that will work. The IPOPT solver executable will be in the subdirectory bin called ‘ipopt.exe’. 4. All the rest Type the following lines, i. ii. $ pip install matplotlib $ export PATH=$PATH “/cygdrive/$Cygwin/home/your_user_name/CoinIpopt/build/bin” Where at the second step, you should type in the directory where ipopt.exe stored in your computer. Now, all software and packages should be successfully installed and ready to use. Note: If there is any problem encountered during the installation process, try to run Cygwin as administrator. If this does work, then reference https://software.sandia.gov/downloads/pub/pyomo/PyomoInstallGuide.html for Pyomo and http://www.coin-or.org/Ipopt/documentation/node10.html for Ipopt. Section 2: Performing Simulations For running the program without changing any parameter, follow the step below. 1. For SMB, in Cygwin terminal, go to the directory ‘SMB’ and enter any subdirectory, enter the following line, $ python Optimization_SMB.py 2. For PowerFeed, in Cygwin terminal, go to the directory ‘PowerFeed’ and enter any subdirectory, enter the following line, $ python Optimization_PowerFeed.py The program would generate a .txt file and one or three .png files. Appendix 2 has listed the result of SMB simulation with linear isotherm and PowerFeed simulation with nonlinear isotherm. If you are not new to Pyomo and Ipopt or want to perform simulations using other parameters other than provided, then read the following for explanation and details of running the program. Mathematical model from previous study by Kawajiri and Biegler (Kawajiri & Biegler, 2006) is used in this program. This partial differential equation model is highly accurate and simple. Detail of the mathematical model can be found in Appendix 1. Two types of simulated moving bed process are provided: standard SMB and PowerFeed process. The folder named ‘SMB’ provides all files used to run SMB and the folder named ‘Powerfeed’ provides all files used to run PowerFeed simulations. Both folders include two sub folders named ‘linear isotherm’ and ‘nonlinear isotherm’, and both sub folders include another sub folder each named ‘result’ which includes all auto-generated files by the program. Besides the result folder, the following files are included: 1) ‘Optimization_SMB.py’ or ‘Optimization_PowerFeed.py’ Main file of the model. Provides detail of parameters of Ipopt and perform the simulations. 2) ‘SMB.py’ or ‘SMBModel.py’ ‘SMB.py’ files are in the ‘SMB’ folder while ‘SMBModel.py’ files are in ‘PowerFeed’ folder. These files provide the mathematical model of SMB process in linear isotherm or nonlinear isotherm. 3) ‘data__.dat’ or ‘data__SMB.dat’ Files named ‘data__SMB.dat’ are in ‘SMB’ folder while files named ‘data__.dat’ are in the ‘PowerFeed’ folder. These files provide parameters of the model. Details of each parameter in these files are following: a) NComp: Number of composition. The program only works when there are two components. b) NCP: Number of collocation points. The program only works when there are three collocation points. c) eb: Void fraction, this parameter should be changed according to different simulations. d) K & H: Parameters of isotherm relation, K is dimensionless and H in g/L, these parameters should be changed according to different simulations. e) Kap: Mass transfer coefficient, in 1/s, this parameter should be changed according to different simulations. f) ExtractRecMin: Minimum extract recovery, with a range of 0-100, this parameter should be changed according to different simulations. g) ExtractPurMin: Minimum extract purity, with a range of 0-100, this parameter should be changed according to different simulations. h) RaffinateRecMin: Minimum raffinate recovery, with a range of 0-100, this parameter should be changed according to different simulations. i) RaffinatePurMin: Minimum raffinate purity, with a range of 0-100, this parameter should be changed according to different simulations. j) A: Parameters of collocation points. This should not be changed if NCP =3. 4) ‘Initdata_SMB.py’ or ‘Initdata.py’ These files provide parameters of the model as well as initial operating condition. Details of each parameter in these files are following: a) U1Init: Initial operating fluid velocity of zone 1, in m/s, this parameter should be changed according to different simulations. b) U2Init: Initial operating fluid velocity of zone 2, in m/s, this parameter should be changed according to different simulations. c) U3Init: Initial operating fluid velocity of zone 3, in m/s, this parameter should be changed according to different simulations. d) U4Init: Initial operating fluid velocity of zone 4, in m/s, this parameter should be changed according to different simulations. e) StepTimeInit: Initial step time, in s, this parameter should be changed according to different simulations. f) Colum: Number of total column. The number entered must be a multiple of 4, i.e. 4, 8, etc. This parameter should be changed according to different simulations. g) Nfet: Number of finite element in temporal domain, this parameter should be changed according to different simulations. h) Nfex: Number of finite element in spatial domain, this parameter should be changed according to different simulations. i) ColL: Length of each column, in m, this parameter should be changed according to different simulations. j) UB: Upper bound of fluid velocity, in m/h, this parameter should be changed according to different simulations. k) LB: Lower bound of fluid velocity, in m/h, this parameter should be changed according to different simulations. Step by step instruction of running simulation should be following: 1. Decide if running SMB process or PowerFeed process If you want to perform a SMB simulation, enter the ‘SMB’ folder and edit files in that folder. If you want to perform a PowerFeed simulation, enter the ‘Powerfeed’ folder and edit files in that folder. 2. Decide if running linear isotherm or nonlinear isotherm Enter the ‘linear isotherm’ folder if you want to perform the linear isotherm simulation or enter the ‘nonlinear isotherm’ folder if you want to perform nonlinear isotherm simulation. 3. Change parameters (if needed) Parameters should be changed according to specific requirement. For the SMB simulation, edit the file ‘Initdata_SMB.py’, and if using linear isotherm, edit ‘data_linearSMB.dat’ or if using nonlinear isotherm, edit ‘data_nonlinearSMB.dat’. For the PowerFeed simulation, edit the file ‘Initdata.py’, and if using linear isotherm, edit ‘data_linear.dat’ or if using nonlinear isotherm, edit ‘data_nonlinear.dat’. Edit parameters according to the explanation above. Note: The default setting is using the same parameters from the study by Kawajiri and Biegler (Kawajiri & Biegler, 2006), you may not change anything if you want to perform the same simulation as Kawajiri and Biegler’s study. 4. Run the simulation In Cygwin terminal, go to the directory of saving files above, enter the following line, $ python Optimization_XXX.py Where XXX may stand for SMB or PowerFeed. For example, if you are running PowerFeed process, type the following $ python Optimization_PowerFeed.py Note: The simulation should be performed under python 2. The program will generate following files automatically in the same folder where simulation performed: 1) ‘Output_PowerFeed.txt’ or ‘Output_SMB.txt’ file which gives the result of simulation. You can find the final result at the end of this auto-generated file. At the same time, details about the simulation such as total time taken and number of iterations performed as well as the fluid velocity profile is also provided in this file. 2) ‘concentration_profile.png’ which gives a plot of concentration profile of both components. For PowerFeed simulation the following two additional files will also be automatically generated: 1) ‘zone_4_powerfeed.png’ file which gives the plot of velocity profile of zone 4 in PowerFeed simulations. 2) ‘fluid_velocity_powerfeed.png’ which gives plots of extract, raffinate, desorbent and feed velocities in PowerFeed simulations. Appendix 2 shows two examples of output files generated by simulations including standard SMB with linear isotherm and PowerFeed simulation with nonlinear isotherm. The same parameters from Kawajiri and Biegler’s study (Kawajiri & Biegler, 2006) has been used in these simulations. For the output of SMB nonlinear isotherm simulation and PowerFeed linear isotherm simulation, please reference attached files. Parameters of these simulation are also from Kawajiri and Biegler’s research (Kawajiri & Biegler, 2006). Reference 1. Kawajiri Y, Biegler LT, Optimization Strategies for Simulated Moving Bed and PowerFeed Processes. AIChE Journal. 2006;52:1343-1350. Appendix Appendix 1. Mathematical model of SMB process Mass balance in liquid 𝜀𝑏 𝜕𝐶𝑛,𝑖 (𝑥, 𝑡) 𝜕𝑞𝑛,𝑖 (𝑥, 𝑡) 𝜕𝐶𝑛,𝑖 (𝑥, 𝑡) + (1 − 𝜀𝑏 ) + 𝑢𝑚 (𝑡) =0 𝜕𝑡 𝜕𝑡 𝜕𝑥 Mass balance in adsorbent Liquid phase based (1 − 𝜀𝑏 ) 𝜕𝑞𝑛,𝑖 (𝑥, 𝑡) 𝑒𝑞 = 𝐾𝑎𝑝𝑝𝑙,𝑖 (𝐶𝑛,𝑖 (𝑥, 𝑡) − 𝐶𝑛,𝑖 (𝑥, 𝑡)) 𝜕𝑡 (1) Solid phase based 𝜕𝑞𝑛,𝑖 (𝑥, 𝑡) 𝑒𝑞 = 𝐾𝑎𝑝𝑝𝑠,𝑖 (𝑞𝑛,𝑖 (𝑥, 𝑡) − 𝑞𝑛,𝑖 (𝑥, 𝑡)) 𝜕𝑡 (2) Boundary condition 𝑖𝑛 𝐶𝑛,𝑖 (0, 𝑡) = 𝐶𝑛,𝑖 (𝑡), 𝑖 = 1, … , 𝑁𝑐 , 𝑛 = 1, … , 𝑁𝑐𝑜𝑙𝑢𝑚𝑛 𝑚 = 𝐼, 𝐼𝐼, 𝐼𝐼𝐼, 𝐼𝑉 Where 𝜀𝑏 is void fraction and should be specified as a parameter, 𝐶𝑛,𝑖 (𝑥, 𝑡) and 𝑞𝑛,𝑖 (𝑥, 𝑡) are concentration 𝑖𝑛 in liquid phase and solid phase of component 𝑖 in column 𝑛, respectively. 𝐶𝑛,𝑖 (𝑡) is the inlet concentration 𝑒𝑞 𝑒𝑞 in column 𝑛. 𝑢𝑚 is liquid velocity in zone 𝑚, 𝐶𝑛,𝑖 (𝑥, 𝑡) and 𝑞𝑛,𝑖 (𝑥, 𝑡) are equilibrium concentration in liquid and solid phase, respectively. 𝐾𝑎𝑝𝑝𝑠,𝑖 and 𝐾𝑎𝑝𝑝𝑙,𝑖 are mass transfer coefficient of solid based and liquid based, respectively, they should be specified as parameters. Mass balance in each port is given by the following: Desorbent inlet port 𝑢𝐼𝑉 (𝑡) + 𝑢𝐷 (𝑡) = 𝑢𝐼 (𝑡) 𝑖𝑛 (𝑡)𝑢𝐼 (𝑡) = 𝐶𝑁𝑐𝑜𝑙𝑢𝑚𝑛 ,𝑖 (𝐿, 𝑡)𝑢𝐼𝑉 (𝑡) 𝐶1,𝑖 Extract outlet port 𝑢𝐼 (𝑡) − 𝑢𝐸 (𝑡) = 𝑢𝐼𝐼 (𝑡) 𝐶𝑁𝑖𝑛𝐼 +1,𝑖 (𝑡) = 𝐶𝑁𝐼 ,𝑖 (𝐿, 𝑡) Feed inlet port 𝑢𝐼𝐼 (𝑡) + 𝑢𝐹 (𝑡) = 𝑢𝐼𝐼𝐼 (𝑡) 𝐶𝑁𝑙 +𝑁𝐼𝐼 ,𝑖 (𝐿, 𝑡)𝑢𝐼𝐼 (𝑡) + 𝐶𝐹,𝑖 (𝑡)𝑢𝐹 (𝑡) = 𝐶𝑁𝑖𝑛𝐼 +𝑁𝐼𝐼 +1 (𝑡)𝑢𝐼𝐼𝐼 (𝑡) Raffinate outlet port 𝑢𝐼𝐼𝐼 (𝑡) − 𝑢𝑅 (𝑡) = 𝑢𝐼𝑉 (𝑡) 𝐶𝑁𝑖𝑛𝐼 +𝑁𝐼𝐼 +𝑁𝐼𝐼𝐼 +1,𝑖 (𝑡)𝑢𝐼 (𝑡) = 𝐶𝑁𝐼 +𝑁𝐼𝐼 +𝑁𝐼𝐼𝐼 ,𝑖 (𝐿, 𝑡) Where 𝑢𝐷 (𝑡), 𝑢𝐸 (𝑡), 𝑢𝐹 (𝑡), 𝑢𝑅 (𝑡) are fluid velocities of desorbent, extract, feed and raffinate, respectively. Moreover, the unit of fluid velocity in all equations above is m/h which has been divided by cross sectional area of columns already. In CSS, the concentration profile at the beginning of a cycle should be the same as the concentration profile at the end of the cycle. Since the operation of each column is the same in SMB, the concentration profile at beginning of a time step in a column should be equal to the concentration profile at the end of the time step at the next column. 𝐶𝑛,𝑖 (𝑥, 0) = 𝐶𝑛+1,𝑖 (𝑥, 𝑡𝑠𝑡𝑒𝑝 ) 𝑞𝑛,𝑖 (𝑥, 0) = 𝑞𝑛+1,𝑖 (𝑥, 𝑡𝑠𝑡𝑒𝑝 ) With 𝑛 = 1, … , 𝑁𝑐𝑜𝑙𝑢𝑚𝑛 − 1, and 𝐶𝑁𝑐𝑜𝑙𝑢𝑚𝑛 ,𝑖 (𝑥, 0) = 𝐶1,𝑖 (𝑥, 𝑡𝑠𝑡𝑒𝑝 ) 𝑞𝑁𝑐𝑜𝑙𝑢𝑚𝑛 ,𝑖 (𝑥, 0) = 𝑞1,𝑖 (𝑥, 𝑡𝑠𝑡𝑒𝑝 ) Where 𝑡𝑠𝑡𝑒𝑝 denotes the step time, which equals to the time interval of valve change and the initial value of step time should be specified as a parameter. In the SMB, the maximization of the feed velocity is always the objective, with reaching the minimum purity and recovery requirements. Objective: max 𝑎𝑣𝑔(𝑢𝐹 ) = 1 𝑡𝑠𝑡𝑒𝑝 𝑡𝑠𝑡𝑒𝑝 ∫ 𝑢𝐹 (𝑡)𝑑𝑡 0 Subject to 𝑡 ∫0 𝑠𝑡𝑒𝑝 𝑢𝐸 (𝑡)𝐶𝐸,𝑘 (𝑡)𝑑𝑡 𝑡 𝑠𝑡𝑒𝑝 𝑐 ∑𝑁 𝑢𝐸 (𝑡)𝐶𝐸,𝑘 (𝑡)𝑑𝑡 𝑖=1 ∫0 ≥ 𝑃𝑢𝑟𝑚𝑖𝑛 𝑡 ∫0 𝑠𝑡𝑒𝑝 𝑢𝐸 (𝑡)𝐶𝐸,𝑘 (𝑡)𝑑𝑡 𝑡𝑠𝑡𝑒𝑝 ∫0 𝑢𝐹 (𝑡)𝐶𝐹,𝑘 (𝑡)𝑑𝑡 ≥ 𝑅𝑒𝑐𝑚𝑖𝑛 Where the first inequality is the product purity constrain and the second inequality is the product recovery constrain. 𝐶𝐸,𝑖 (𝑡) and 𝐶𝐹,𝑖 (𝑡) are concentration of component 𝑖 in extract stream and feed stream, respectively with 𝑘 stands for the desired product index. There is also a lower bond and an upper bond for both fluid velocity and time step, 𝑢𝑙 ≤ 𝑢𝑚 ≤ 𝑢𝑢 𝑡𝑠𝑡𝑒𝑝𝑙 ≤ 𝑡𝑠𝑡𝑒𝑝 ≤ 𝑡𝑠𝑡𝑒𝑝𝑢 The lower bond and an upper bond for fluid velocity should be specified as parameters for simulation. For linear isotherm, following equation is used and mass balance equation in liquid phase (Equation (1)) should be used, 𝑒𝑞 𝑞𝑛,𝑖 (𝑥, 𝑡) = 𝐾𝑖 𝐶𝑛,𝑖 (𝑥, 𝑡) While 𝐾𝑖 is parameter of isotherm relation and should be specified as a parameter. For nonlinear isotherm, following equation of bi-Langmuir isotherm is used and mass balance equation in solid phase (Equation (2)) should be used, 𝑒𝑞 𝑞𝑛,𝑖 = 𝐻1,𝑖 𝐶𝑛,𝑖 (𝑥, 𝑡) 𝐻2,𝑖 𝐶𝑛,𝑖 (𝑥, 𝑡) + 1 + 𝐾11 𝐶𝑛,1 (𝑥, 𝑡) + 𝐾12 𝐶𝑛,2 (𝑥, 𝑡) 1 + 𝐾21 𝐶𝑛,1 (𝑥, 𝑡) + 𝐾22 𝐶𝑛,2 (𝑥, 𝑡) Where 𝐾and 𝐻 are parameters of isotherm relation and should be specified as parameters. The initial value of operating fluid velocity in each zone should also be specified as parameters. Appendix 2. Example of output files 1. SMB simulation with linear isotherm. In this example, same parameters from Kawajiri and Biegler’s study (Kawajiri & Biegler, 2006) has been used. The program generates a .txt file named ‘Output_SMB.txt’ and a .png file named ‘concentration_profile.png’. Details of these two files are following: Output_SMB.txt: mu_init=0.001 ma57_pivtol=1e-08 max_iter=5000 linear_system_scaling=mc19 mu_init=0.001 ma57_pivtol=1e-08 max_iter=5000 linear_system_scaling=mc19 *********************************************************************** ******* This program contains Ipopt, a library for large-scale nonlinear optimization. Ipopt is released as open source code under the Eclipse Public License (EPL). For more information visit http://projects.coin-or.org/Ipopt *********************************************************************** ******* This is Ipopt version 3.12, running with linear solver ma27. Number of nonzeros in equality constraint Jacobian...: Number of nonzeros in inequality constraint Jacobian.: Number of nonzeros in Lagrangian Hessian.............: 135214 2 9921 Total number of variables............................: variables with only lower bounds: variables with lower and upper bounds: variables with only upper bounds: Total number of equality constraints.................: Total number of inequality constraints...............: inequality constraints with only lower bounds: inequality constraints with lower and upper bounds: inequality constraints with only upper bounds: 34001 4 5 0 34001 4 4 0 0 iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls 0 -3.5999964e+01 5.00e-01 1.01e+02 -3.0 0.00e+00 - 0.00e+00 0.00e+00 0 1 -3.3752214e+01 4.69e-01 9.47e+01 -3.0 3.19e+01 - 3.03e-02 6.25e-02h 5 2 -3.1644808e+01 6.25e-02h 5 3 -2.7693158e+01 1.25e-01h 4 4 -2.4234970e+01 1.25e-01h 4 5 -2.1208624e+01 1.25e-01h 4 6 -1.8560193e+01 1.25e-01h 4 7 -1.6242484e+01 1.25e-01h 4 8 -1.4214199e+01 1.25e-01h 4 9 -1.2439197e+01 1.25e-01h 4 iter objective alpha_pr ls 10 -1.0885848e+01 1.25e-01h 4 11 -1.0849884e-02 1.00e+00w 1 12 -1.0000800e-02 1.00e+00h 1 13 -1.0000800e-02 1.00e+00h 1 4.39e-01 8.89e+01 -3.0 2.86e+01 - 1.00e+00 3.85e-01 7.78e+01 -3.0 2.39e+01 - 1.64e-01 3.37e-01 6.82e+01 -3.0 1.65e+01 - 1.00e+00 2.95e-01 5.97e+01 -3.0 1.26e+01 - 4.66e-01 2.58e-01 5.24e+01 -3.0 8.19e+00 2.26e-01 4.60e+01 -3.0 7.85e+00 - 8.76e-01 1.97e-01 4.04e+01 -3.0 1.00e+01 - 1.00e+00 1.73e-01 3.56e+01 -3.0 1.29e+01 - 1.00e+00 inf_pr inf_du lg(mu) ||d|| -4.0 1.00e+00 lg(rg) alpha_du 1.51e-01 3.14e+01 -3.0 1.60e+01 - 1.00e+00 1.64e-01 1.43e+00 -3.0 1.76e+01 - 1.00e+00 1.86e-05 4.58e+00 -3.0 2.45e+01 - 1.00e+00 5.50e-15 5.59e-05 -3.0 2.08e-03 -4.5 1.00e+00 Number of Iterations....: 13 Objective...............: 1.0000800000000559e-02 Dual infeasibility......: 1.0231815394945443e-12 Constraint violation....: 5.4956039718945249e-15 Complementarity.........: 0.0000000000000000e+00 Overall NLP error.......: 1.0231815394945443e-12 Number of Number of Number of Number of Number of Number of Number of Total CPU Total CPU (scaled) -2.7780000000001553e-04 (unscaled) - 2.8421709430404007e-14 5.4956039718945249e-15 0.0000000000000000e+00 5.4956039718945249e-15 objective function evaluations objective gradient evaluations equality constraint evaluations inequality constraint evaluations equality constraint Jacobian evaluations inequality constraint Jacobian evaluations Lagrangian Hessian evaluations secs in IPOPT (w/o function evaluations) secs in NLP function evaluations EXIT: Optimal Solution Found. = = = = = = = = = 56 14 56 56 14 14 13 7.568 0.529 Ipopt 3.12: Optimal Solution Found -------------------Initial Condition Solution---------------------Comp A product recovery Comp A product recovery Comp B product purity 1 Comp B product purity 2 Comp A product recovery Comp A product recovery Comp B product purity 1 Comp B product purity 2 Control Varialbes: 1 2 : : 1 2 : : : : : : 4.44182773014 80.4416001917 5.23285621102 94.767143789 95.5581758394 19.5584033779 83.0099161121 16.9900838879 U U[1] = 7.9999992 U[2] = 5.0000004 U[3] = 5.0100012 U[4] = 3.4999992 UD UD[1] = 4.5 UD[2] = 0 UD[3] = 0 UD[4] = 0 UE UE[1] = 2.9999988 UE[2] = 0 UE[3] = 0 UE[4] = 0 UF UF[1] = 0 UF[2] = 0 UF[3] = 0.0100008 UF[4] = 0 UR UR[1] = 0 UR[2] = 0 UR[3] = 1.510002 UR[4] = 0 Step Time 1140 Comp A conc in extract = 0.00740364115777 Comp B conc in extract = 0.134080108046 Comp A conc in raffinate = 0.316442683792 Comp B conc in raffinate = 0.0647680180289 mu_init=0.001 ma57_pivtol=1e-08 max_iter=5000 linear_system_scaling=mc19 mu_init=0.001 ma57_pivtol=1e-08 max_iter=5000 linear_system_scaling=mc19 *********************************************************************** ******* This program contains Ipopt, a library for large-scale nonlinear optimization. Ipopt is released as open source code under the Eclipse Public License (EPL). For more information visit http://projects.coin-or.org/Ipopt *********************************************************************** ******* This is Ipopt version 3.12, running with linear solver ma27. Number of nonzeros in equality constraint Jacobian...: Number of nonzeros in inequality constraint Jacobian.: Number of nonzeros in Lagrangian Hessian.............: 148719 120 33203 Total number of variables............................: variables with only lower bounds: variables with lower and upper bounds: variables with only upper bounds: Total number of equality constraints.................: Total number of inequality constraints...............: inequality constraints with only lower bounds: inequality constraints with lower and upper bounds: inequality constraints with only upper bounds: 34005 7 6 0 34001 14 7 0 7 iter objective alpha_pr ls 0 -3.5999964e+01 0.00e+00 0 1 -3.2564798e+00 9.11e-01h 1 2 -3.1510889e+00 3.26e-02h 1 3 -2.4707821e-01 9.21e-01h 1 4 -2.4240048e-01 1.92e-02h 1 5 -2.1879676e-01 1.06e-01f 1 6 -1.0011879e-01 5.48e-01h 1 7 -1.0000011e-01 1.83e-02h 1 8 -1.0000579e-01 2.80e-03h 1 9 -1.0002888e-01 5.68e-02f 2 iter objective alpha_pr ls inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du 2.80e+01 2.14e-03 -3.0 0.00e+00 2.34e+00 1.26e+02 -3.0 3.02e+00 -4.0 9.00e-02 2.25e+00 1.21e+02 -3.0 2.33e+00 -3.6 3.12e-01 3.35e-03 3.81e+02 -3.0 6.84e+00 3.28e-03 3.79e+02 -3.0 2.82e+00 -3.1 1.40e-01 2.93e-03 3.64e+02 -3.0 3.49e+00 -3.6 2.54e-01 1.32e-03 3.71e+02 -3.0 1.62e+00 -4.1 1.81e-01 1.30e-03 4.84e+02 -3.0 2.22e+01 - 3.86e-02 1.29e-03 8.49e+02 -3.0 4.16e+01 - 7.15e-03 1.24e-03 8.19e+02 -3.0 4.78e+01 - 3.46e-02 inf_pr inf_du lg(mu) ||d|| - - 0.00e+00 9.12e-02 lg(rg) alpha_du 10 -1.1149894e-01 3.91e-03f 1 11 -1.0001149e-01 1.31e-01f 1 12 -1.0581357e-01 5.00e-01f 2 13 -1.0290968e-01 9.52e-02h 2 14 -1.0677328e-01 4.01e-02h 3 15 -1.0339002e-01 1.06e-01h 2 16 -1.0254336e-01 1.41e-01h 3 17 -1.0190815e-01 5.89e-02h 3 18 -1.0128007e-01 1.00e+00h 1 19 -1.0204231e-01 1.00e+00h 1 iter objective alpha_pr ls 20 -3.7252357e-01 5.00e-01f 2 21 -4.1393695e-01 1.00e+00h 1 22 -4.4299250e-01 1.00e+00h 1 23 -4.8576769e-01 1.00e+00H 1 24 -4.7513273e-01 1.00e+00h 1 25 -4.7834914e-01 1.00e+00h 1 26 -4.7247500e-01 1.00e+00h 1 27 -4.7246322e-01 1.00e+00h 1 28 -5.0296010e-01 1.00e+00h 1 29 -5.1981927e-01 1.00e+00h 1 iter objective alpha_pr ls 30 -5.1877275e-01 1.00e+00h 1 31 -5.2097412e-01 1.00e+00h 1 32 -5.2100404e-01 1.00e+00h 1 33 -5.2101677e-01 1.00e+00h 1 1.23e-03 8.20e+02 -3.0 1.29e+03 1.07e-03 6.94e+02 -3.0 1.80e+00 1.20e-03 3.41e+02 -3.0 5.13e+02 1.08e-03 4.56e+02 -3.0 3.55e+01 -5.1 9.63e-01 9.96e-04 4.27e+02 -3.0 1.21e+03 -5.5 3.12e-02 8.92e-04 2.75e+02 -3.0 6.02e+01 -5.1 1.00e+00 7.58e-04 2.86e+02 -3.0 8.49e+01 -5.6 1.00e+00 7.14e-04 2.71e+02 -3.0 3.79e+01 -5.2 1.00e+00 8.70e-05 2.24e+02 -3.0 1.15e+01 -5.6 1.00e+00 1.61e-05 3.57e+01 -3.0 6.13e+00 -6.1 9.52e-01 inf_pr inf_du lg(mu) ||d|| - 1.07e-05 -4.6 9.99e-01 - 1.06e-01 lg(rg) alpha_du 1.67e-03 5.82e+01 -3.0 1.13e+02 2.12e-04 1.55e+01 -3.0 2.43e+01 9.22e-04 6.88e+00 -3.0 9.07e+01 - 1.00e+00 1.80e-03 1.56e+01 -3.0 2.40e+02 - 1.00e+00 1.26e-03 8.84e+00 -3.0 1.45e+02 - 1.00e+00 1.09e-04 3.58e-01 -3.0 1.12e+01 - 1.00e+00 1.25e-05 3.74e-02 -3.0 1.76e+01 - 1.00e+00 2.75e-08 1.45e-05 -3.0 7.53e-01 - 1.00e+00 5.59e-05 5.72e+01 -4.5 2.02e+01 - 9.52e-01 3.66e-05 1.77e-01 -4.5 1.97e+01 - 1.00e+00 inf_pr inf_du lg(mu) ||d|| - 1.88e-01 -6.6 1.00e+00 lg(rg) alpha_du 7.58e-08 1.85e-04 -4.5 8.83e-01 - 1.00e+00 5.47e-07 1.18e-02 -6.8 2.37e+00 - 1.00e+00 3.23e-10 7.89e-07 -6.8 6.61e-02 - 1.00e+00 1.90e-11 3.85e-07 -9.0 1.41e-02 - 1.00e+00 34 -5.2101677e-01 4.09e-13 5.83e-13 1.00e+00h 1 -9.0 2.20e-06 - 1.00e+00 Number of Iterations....: 34 (scaled) -1.4472687980989125e-02 Objective...............: 5.2101676731560853e-01 Dual infeasibility......: 2.0974329839773705e-11 Constraint violation....: 4.0856207306205761e-13 Complementarity.........: 3.2727272727712488e-08 Overall NLP error.......: 3.2727272727712488e-08 Number of Number of Number of Number of Number of Number of Number of Total CPU Total CPU (unscaled) - 5.8262027332704736e-13 4.0856207306205761e-13 9.0909090910312459e-10 9.0909090910312459e-10 objective function evaluations objective gradient evaluations equality constraint evaluations inequality constraint evaluations equality constraint Jacobian evaluations inequality constraint Jacobian evaluations Lagrangian Hessian evaluations secs in IPOPT (w/o function evaluations) secs in NLP function evaluations = = = = = = = = = 54 35 54 54 35 35 34 35.057 1.073 EXIT: Optimal Solution Found. Ipopt 3.12: Optimal Solution Found -------------------Power Feed Solution---------------------Comp A product recovery Comp A product recovery Comp B product purity 1 Comp B product purity 2 Comp A product recovery Comp A product recovery Comp B product purity 1 Comp B product purity 2 Control Varialbes: U U[1] = 7.9999992 U[2] = 3.73911904562 U[3] = 4.26013581293 U[4] = 3.12961132903 UD UD[1] = 4.87038787097 UD[2] = 0 UD[3] = 0 1 2 : : 1 2 : : : : : : 8.88902662837 79.9998634692 10.0001548209 89.9998451791 91.1109769412 20.0001401004 81.9998748704 18.0001251296 UD[4] = 0 UE UE[1] = 4.26088015438 UE[2] = 0 UE[3] = 0 UE[4] = 0 UF UF[1] = 0 UF[2] = 0 UF[3] = 0.521016767316 UF[4] = 0 UR UR[1] = 0 UR[2] = 0 UR[3] = 1.1305244839 UR[4] = 0 Step Time 1414.67516407 Throughput: 0.521016767316 [m/hr] Desorbent: 4.87038787097 [m/hr] D/F ratio: 9.34785246176 Comp A conc in extract = Comp B conc in extract = Comp A conc in raffinate Comp B conc in raffinate Optimization Completed 0.543471253048 4.891157138 = 20.9948327764 = 4.60866089915 ‘concentration_profile.png’ 2. Powerfeed nonlinear isotherm In this example, same parameters from Kawajiri and Biegler’s study (Kawajiri & Biegler, 2006) has been used as well. Four files are generated from the program: A .txt file named ‘Output_PowerFeed.txt’ and three .png files named ‘concentration_profile.png’, ‘zone_4_powerfeed.png’and ‘fluid_velocity_powerfeed.png’. Details of these four files are following: Output_PowerFeed.txt mu_init=0.001 ma57_pivtol=1e-08 max_iter=5000 linear_system_scaling=mc19 mu_init=0.001 ma57_pivtol=1e-08 max_iter=5000 linear_system_scaling=mc19 *********************************************************************** ******* This program contains Ipopt, a library for large-scale nonlinear optimization. Ipopt is released as open source code under the Eclipse Public License (EPL). For more information visit http://projects.coin-or.org/Ipopt *********************************************************************** ******* This is Ipopt version 3.12, running with linear solver ma27. Number of nonzeros in equality constraint Jacobian...: Number of nonzeros in inequality constraint Jacobian.: Number of nonzeros in Lagrangian Hessian.............: 76221 30 16075 Total number of variables............................: variables with only lower bounds: variables with lower and upper bounds: variables with only upper bounds: Total number of equality constraints.................: Total number of inequality constraints...............: inequality constraints with only lower bounds: inequality constraints with lower and upper bounds: inequality constraints with only upper bounds: 18109 40 5 0 18109 40 40 0 0 iter objective alpha_pr ls 0 -3.5999964e+01 0.00e+00 0 1r-3.5999964e+01 4.77e-07R 22 2r-1.1988744e+01 1.09e-02f 1 3r-1.1152614e+01 1.30e-03f 1 inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du 4.85e-01 1.01e+02 -3.0 0.00e+00 - 0.00e+00 4.85e-01 9.99e+02 -0.3 0.00e+00 - 0.00e+00 3.03e-01 9.88e+02 -0.3 1.67e+01 - 1.05e-03 1.14e-02 9.97e+02 -0.3 2.33e+02 - 1.14e-01 4r-1.1315293e-02 1.32e-01f 1 5r-4.3735875e-01 1.59e-01f 2 6r-5.2176465e-01 9.43e-01f 1 7r-2.3051653e-01 1.00e+00f 1 8r-7.4049253e-02 7.13e-01f 1 9r-2.3549349e-02 7.27e-01f 1 iter objective alpha_pr ls 10r-1.0107843e-02 7.36e-01f 1 11r-3.3739484e-03 1.00e+00f 1 12r-9.0801258e-04 9.54e-01f 1 13r-7.3274429e-04 1.00e+00f 1 14r-6.4442771e-04 1.00e+00h 1 15r-3.8631855e-04 9.44e-01f 1 16r-6.0483750e-04 2.20e-01f 1 17r-1.0798090e-03 2.01e-01f 1 18r-3.0331090e-03 1.00e+00f 1 19r-3.0806671e-03 1.00e+00h 1 iter objective alpha_pr ls 20r-3.0816468e-03 1.00e+00h 1 21r-3.0850346e-03 1.00e+00f 1 22r-7.4664326e-03 2.94e-02f 1 23r-1.4782926e-02 5.52e-02h 1 24r-4.2520100e-02 1.00e+00h 1 25r-5.5125806e-02 1.79e-01h 1 26r-6.9154940e-02 2.42e-01h 1 27r-1.1307691e-01 1.00e+00h 1 3.13e-03 8.30e+02 -0.3 7.25e-02 - 1.00e+00 1.98e-03 5.61e+03 -0.3 2.04e-01 - 2.32e-01 8.30e-04 6.57e+02 -0.3 3.87e-02 - 1.00e+00 8.17e-04 1.14e+00 -0.3 1.19e-02 - 1.00e+00 1.37e-04 6.28e+01 -2.6 2.52e-03 - 1.00e+00 8.45e-05 2.85e+01 -2.6 5.67e-02 - 6.24e-01 inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du 7.02e-05 1.35e+02 -2.6 1.76e-02 - 9.66e-01 6.86e-05 2.12e-02 -2.6 9.55e-03 - 1.00e+00 6.81e-05 2.75e+01 -3.9 2.84e-02 - 1.00e+00 6.69e-05 7.44e-01 -3.9 2.00e-02 - 1.00e+00 5.94e-05 6.46e-03 -3.9 3.63e-03 - 1.00e+00 6.01e-05 1.74e+01 -5.8 8.43e-03 - 9.81e-01 1.14e-04 7.63e+01 -5.8 3.48e-02 - 2.73e-01 1.14e-04 6.11e+01 -5.8 1.11e-01 - 1.87e-01 1.12e-04 3.99e+01 -5.8 1.19e-01 - 3.69e-01 1.12e-04 5.71e-01 -5.8 3.65e-02 - 9.58e-01 inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du 1.12e-04 4.57e-05 -5.8 4.69e-03 - 1.00e+00 1.14e-04 3.28e-01 -8.7 5.35e-03 - 8.91e-01 3.80e-04 2.50e+00 -8.7 9.79e+00 - 1.37e-02 1.26e-03 4.68e+00 -8.7 7.63e+00 - 3.83e-02 1.02e-02 2.54e+01 -8.7 1.11e+00 9.50e-03 6.70e+00 -8.7 3.24e+00 - 3.66e-01 8.63e-03 5.08e+00 -8.7 2.26e+00 - 4.67e-01 1.66e-02 2.32e+00 -8.7 1.38e+00 - 1.00e+00 -4.0 1.37e-01 28r-1.1318338e-01 3.94e-03 7.25e-01 7.69e-01h 1 29r-1.1314308e-01 9.10e-05 7.56e-04 1.00e+00h 1 -8.7 9.39e-02 - 1.00e+00 -8.7 3.30e-02 - 1.00e+00 Number of Iterations....: 29 (scaled) -1.5713920653197058e-02 Objective...............: 1.1314022870301882e-01 Dual infeasibility......: 7.1999999667846623e+02 Constraint violation....: 9.0987458893826206e-05 Complementarity.........: 1.5464254094650691e-08 Overall NLP error.......: 7.1999999667846623e+02 Number of Number of Number of Number of Number of Number of Number of Total CPU Total CPU (unscaled) - 9.9999999538675880e+01 9.0987458893826206e-05 2.1478130687014849e-09 9.0987458893826206e-05 objective function evaluations objective gradient evaluations equality constraint evaluations inequality constraint evaluations equality constraint Jacobian evaluations inequality constraint Jacobian evaluations Lagrangian Hessian evaluations secs in IPOPT (w/o function evaluations) secs in NLP function evaluations = = = = = = = = = 53 3 57 57 32 32 30 11.455 0.728 EXIT: Converged to a point of local infeasibility. Problem may be infeasible. Ipopt 3.12: Converged to a locally infeasible point. Problem may be infeasible. WARNING - Loading a SolverResults object with a warning status -------------------Initial Consition Solution---------------------Comp A product recovery Comp A product recovery Comp B product purity 1 Comp B product purity 2 Comp A product recovery Comp A product recovery Comp B product purity 1 Comp B product purity 2 Control Varialbes: U U[1][1] = 6.4239984 U[1][2] = 6.4239984 U[1][3] = 6.4239984 1 2 : : 1 2 : : : : : : 99.2087923071 8.02147215627 92.5193953438 7.48060465617 0.791210303713 91.9785300158 0.852875410655 99.1471245893 U[1][4] = 6.4239984 U[1][5] = 6.4239984 U[2][1] = 6.42399840009 U[2][2] = 6.42399840006 U[2][3] = 6.42399840004 U[2][4] = 6.42399840003 U[2][5] = 6.42399840002 U[3][1] = 4.3909992 U[3][2] = 4.3909992 U[3][3] = 4.3909992 U[3][4] = 4.3909992 U[3][5] = 4.3909992 U[4][1] = 4.39100397399 U[4][2] = 4.39100000038 U[4][3] = 4.39099962925 U[4][4] = 4.3909995103 U[4][5] = 4.39099945979 U[5][1] = 4.8030012 U[5][2] = 4.8030012 U[5][3] = 4.8030012 U[5][4] = 4.8030012 U[5][5] = 4.8030012 U[6][1] = 4.80300120053 U[6][2] = 4.80300120072 U[6][3] = 4.80300120092 U[6][4] = 4.80300120112 U[6][5] = 4.80300120128 U[7][1] = 3.9989988 U[7][2] = 3.9989988 U[7][3] = 3.9989988 U[7][4] = 3.9989988 U[7][5] = 3.9989988 U[8][1] = 3.9989988 U[8][2] = 3.99899880001 U[8][3] = 3.99899880001 U[8][4] = 3.99899880002 U[8][5] = 3.99899880003 UD UD[1][1] = 2.67228345379 UD[1][2] = 2.70966423521 UD[1][3] = 2.7494019673 UD[1][4] = 2.75255476409 UD[1][5] = 2.73540244361 UD[2][1] = 0 UD[2][2] = 0 UD[2][3] = 0 UD[2][4] = 0 UD[2][5] = 0 UD[3][1] = 0 UD[3][2] = 0 UD[3][3] = 0 UD[3][4] = 0 UD[3][5] = 0 UD[4][1] UD[4][2] UD[4][3] UD[4][4] UD[4][5] UD[5][1] UD[5][2] UD[5][3] UD[5][4] UD[5][5] UD[6][1] UD[6][2] UD[6][3] UD[6][4] UD[6][5] UD[7][1] UD[7][2] UD[7][3] UD[7][4] UD[7][5] UD[8][1] UD[8][2] UD[8][3] UD[8][4] UD[8][5] UE UE[1][1] UE[1][2] UE[1][3] UE[1][4] UE[1][5] UE[2][1] UE[2][2] UE[2][3] UE[2][4] UE[2][5] UE[3][1] UE[3][2] UE[3][3] UE[3][4] UE[3][5] UE[4][1] UE[4][2] UE[4][3] UE[4][4] UE[4][5] UE[5][1] UE[5][2] UE[5][3] UE[5][4] UE[5][5] UE[6][1] UE[6][2] = = = = = = = = = = = = = = = = = = = = = = = = = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 = = = = = = = = = = = = = = = = = = = = = = = = = = = 0 0 0 0 0 2.03299920027 2.03299920017 2.03299920011 2.03299920007 2.03299920004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 UE[6][3] UE[6][4] UE[6][5] UE[7][1] UE[7][2] UE[7][3] UE[7][4] UE[7][5] UE[8][1] UE[8][2] UE[8][3] UE[8][4] UE[8][5] UF UF[1][1] UF[1][2] UF[1][3] UF[1][4] UF[1][5] UF[2][1] UF[2][2] UF[2][3] UF[2][4] UF[2][5] UF[3][1] UF[3][2] UF[3][3] UF[3][4] UF[3][5] UF[4][1] UF[4][2] UF[4][3] UF[4][4] UF[4][5] UF[5][1] UF[5][2] UF[5][3] UF[5][4] UF[5][5] UF[6][1] UF[6][2] UF[6][3] UF[6][4] UF[6][5] UF[7][1] UF[7][2] UF[7][3] UF[7][4] UF[7][5] UF[8][1] UF[8][2] UF[8][3] UF[8][4] = = = = = = = = = = = = = 0 0 0 0 0 0 0 0 0 0 0 0 0 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.164718147234 0.127337366017 0.0875996341943 0.0844468376785 0.101599158391 0 0 0 0 0 0 0 0 0 0 0 0 0 0 UF[8][5] = 0 UR UR[1][1] = 0 UR[1][2] = 0 UR[1][3] = 0 UR[1][4] = 0 UR[1][5] = 0 UR[2][1] = 0 UR[2][2] = 0 UR[2][3] = 0 UR[2][4] = 0 UR[2][5] = 0 UR[3][1] = 0 UR[3][2] = 0 UR[3][3] = 0 UR[3][4] = 0 UR[3][5] = 0 UR[4][1] = 0 UR[4][2] = 0 UR[4][3] = 0 UR[4][4] = 0 UR[4][5] = 0 UR[5][1] = 0 UR[5][2] = 0 UR[5][3] = 0 UR[5][4] = 0 UR[5][5] = 0 UR[6][1] = 0.804002400754 UR[6][2] = 0.804002401053 UR[6][3] = 0.80400240138 UR[6][4] = 0.804002401696 UR[6][5] = 0.804002401963 UR[7][1] = 0 UR[7][2] = 0 UR[7][3] = 0 UR[7][4] = 0 UR[7][5] = 0 UR[8][1] = 0 UR[8][2] = 0 UR[8][3] = 0 UR[8][4] = 0 UR[8][5] = 0 Step Time 180 Comp A conc in extract = 0.165634669943 Comp B conc in extract = 0.0133922998372 Comp A conc in raffinate = 0.00334020313993 Comp B conc in raffinate = 0.388300017484 mu_init=0.001 ma57_pivtol=1e-08 max_iter=5000 linear_system_scaling=mc19 mu_init=0.001 ma57_pivtol=1e-08 max_iter=5000 linear_system_scaling=mc19 *********************************************************************** ******* This program contains Ipopt, a library for large-scale nonlinear optimization. Ipopt is released as open source code under the Eclipse Public License (EPL). For more information visit http://projects.coin-or.org/Ipopt *********************************************************************** ******* This is Ipopt version 3.12, running with linear solver ma27. Number of nonzeros in equality constraint Jacobian...: Number of nonzeros in inequality constraint Jacobian.: Number of nonzeros in Lagrangian Hessian.............: 82736 230 27691 Total number of variables............................: variables with only lower bounds: variables with lower and upper bounds: variables with only upper bounds: Total number of equality constraints.................: Total number of inequality constraints...............: inequality constraints with only lower bounds: inequality constraints with lower and upper bounds: inequality constraints with only upper bounds: 18130 60 6 0 18109 86 43 0 43 iter objective alpha_pr ls 0 -3.5999964e+01 0.00e+00 0 1 -3.1139041e+01 1.38e-01h 1 2 -2.5383395e+00 9.44e-01h 1 3 -2.4747749e+00 3.19e-02H 1 4 -2.1782249e+00 1.18e-01h 4 5 -2.1282176e+00 2.80e-02h 5 6 -1.2272009e+00 4.49e-01h 2 7 -1.2134290e+00 1.56e-02h 7 8 -1.1149148e+00 8.97e-02h 4 9 -1.1092728e+00 7.81e-03h 8 inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du 2.96e+01 1.01e+02 -3.0 0.00e+00 - 0.00e+00 2.58e+01 8.71e+01 -3.0 4.91e+00 -4.0 6.37e-02 1.43e+00 4.86e+00 -3.0 4.21e+00 -4.5 4.76e-01 1.38e+00 1.23e+02 -3.0 4.46e+00 -5.0 8.55e-01 1.19e+00 2.43e+02 -3.0 3.18e+00 -5.4 3.79e-01 1.15e+00 2.31e+02 -3.0 1.05e+01 -5.9 1.52e-01 4.60e-01 1.04e+02 -3.0 7.74e+00 -6.4 2.66e-01 4.43e-01 2.40e+02 -3.0 4.94e+00 -5.1 6.30e-01 3.05e-01 5.96e+00 -3.0 6.64e+00 -4.6 5.08e-01 2.94e-01 2.60e+02 -3.0 9.37e+00 -5.1 4.55e-01 iter objective alpha_pr ls 10 -9.9405695e-01 1.22e-01h 4 11 -9.9239010e-01 3.63e-03h 9 12 -8.9351831e-01 1.23e-01h 4 13 -8.9233422e-01 3.48e-03h 9 14 -2.3034949e-01 9.72e-01w 1 15 -3.6486769e-01 1.00e+00w 1 16 -7.6386650e-01 2.75e-01w 1 17 -8.0958613e-01 1.21e-01h 3 18 -2.3941445e-01 1.00e+00H 1 19 -2.5188317e-01 6.25e-02h 5 iter objective alpha_pr ls 20 -3.4692861e-01 1.00e+00H 1 21 -3.6498835e-01 6.25e-02h 5 22 -4.8218615e-01 1.00e+00H 1 23 -4.9415092e-01 3.12e-02h 6 24 -6.3119840e-01 1.00e+00h 1 25 -1.0820627e+00 9.92e-01h 1 26 -9.8012664e-01 1.00e+00h 1 27 -9.4547658e-01 7.87e-01h 1 28 -8.9416147e-01 1.00e+00h 1 29 -8.9281362e-01 1.00e+00h 1 iter objective alpha_pr ls 30 -8.9253208e-01 1.00e+00h 1 31 -9.3466964e-01 7.82e-01h 1 32 -9.5620446e-01 5.30e-01h 1 inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du 1.47e-01 1.71e+02 -3.0 1.73e+00 -4.7 9.99e-01 1.45e-01 2.35e+02 -3.0 5.78e+01 -5.2 2.09e-01 4.58e-02 1.60e+02 -3.0 2.16e+00 -4.7 1.00e+00 4.42e-02 2.11e+02 -3.0 4.69e+01 -5.2 2.71e-01 7.54e-02 4.76e+00 -3.0 2.15e+00 -4.8 1.00e+00 5.12e-01 3.29e+02 -3.0 1.34e+01 -5.3 5.31e-01 6.15e+00 2.18e+02 -3.0 1.52e+02 -5.7 1.79e-01 1.01e-02 1.47e+02 -3.0 2.49e+01 -5.3 1.00e+00 7.72e-03 4.20e+00 -3.0 2.15e+00 -4.9 1.00e+00 8.84e-03 1.83e+02 -3.0 5.50e+00 -5.4 4.42e-01 inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du 6.60e-03 4.56e+00 -3.0 1.78e+00 -4.9 1.00e+00 9.80e-03 4.18e+01 -3.0 1.06e+01 -5.4 6.43e-01 8.00e-03 1.61e+00 -3.0 2.71e+00 -5.0 1.00e+00 9.31e-03 2.85e+02 -3.0 1.06e+01 -5.5 7.02e-01 3.29e-01 2.52e+00 -3.0 2.71e+00 -5.0 1.00e+00 4.58e+00 1.42e+02 -3.0 1.19e+01 -5.5 6.90e-01 7.59e-01 9.96e+00 -3.0 2.18e+01 -6.0 1.00e+00 4.15e-01 6.87e+01 -3.0 9.82e+00 -6.5 1.00e+00 1.18e-01 5.10e-01 -3.0 5.95e+00 - 1.00e+00 7.48e-02 6.23e-02 -3.0 2.41e+00 - 1.00e+00 inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du 1.67e-03 1.07e-03 -3.0 4.83e-01 - 1.00e+00 6.47e-02 1.30e+01 -4.5 7.61e+00 - 7.12e-01 9.06e-02 1.75e+00 -4.5 1.30e+01 - 6.46e-01 33 -9.7081043e-01 5.02e-01h 1 34 -9.8137254e-01 5.30e-01h 1 35 -9.8754687e-01 1.00e+00h 1 36 -9.8763031e-01 1.00e+00h 1 37 -9.9182560e-01 8.64e-01h 1 38 -9.9253681e-01 1.00e+00h 1 39 -9.9253210e-01 1.00e+00h 1 iter objective alpha_pr ls 40 -9.9253230e-01 1.00e+00h 1 41 -9.9253239e-01 1.00e+00h 1 42 -9.9256038e-01 1.00e+00h 1 43 -9.9256040e-01 1.00e+00h 1 1.70e-01 1.73e+01 -4.5 1.38e+01 8.51e-02 9.67e+00 -4.5 4.43e+00 - 1.00e+00 5.70e-03 3.00e-02 -4.5 1.04e+00 - 1.00e+00 4.37e-05 1.82e-05 -4.5 9.99e-02 - 1.00e+00 4.46e-03 1.24e-01 -6.8 1.17e+00 - 8.93e-01 4.24e-03 3.79e-02 -6.8 1.61e+00 - 9.47e-01 8.43e-04 3.48e-04 -6.8 5.78e-01 - 1.00e+00 inf_pr inf_du lg(mu) ||d|| -6.0 9.06e-01 lg(rg) alpha_du 1.30e-05 2.21e-05 -6.8 7.37e-02 - 1.00e+00 7.15e-09 7.31e-08 -6.8 2.38e-03 - 1.00e+00 7.07e-06 4.15e-06 -9.0 6.26e-02 - 1.00e+00 3.02e-09 8.98e-09 -9.0 1.30e-03 - 1.00e+00 Number of Iterations....: 43 Objective...............: 9.9256039784784844e-01 Dual infeasibility......: 6.4621826033369709e-08 Constraint violation....: 3.0246985032318348e-09 Complementarity.........: 6.6029449162341676e-09 Overall NLP error.......: 6.4621826033369709e-08 Number of Number of Number of Number of Number of Number of Number of Total CPU Total CPU (scaled) -1.3785561081220110e-01 (unscaled) - 8.9752536157457874e-09 3.0246985032318348e-09 9.1707568281030052e-10 8.9752536157457874e-09 objective function evaluations objective gradient evaluations equality constraint evaluations inequality constraint evaluations equality constraint Jacobian evaluations inequality constraint Jacobian evaluations Lagrangian Hessian evaluations secs in IPOPT (w/o function evaluations) secs in NLP function evaluations EXIT: Optimal Solution Found. Ipopt 3.12: Optimal Solution Found = = = = = = = = = 146 44 146 146 44 44 43 46.971 1.545 -------------------Power Feed Solution---------------------Comp A product recovery Comp A product recovery Comp B product purity 1 Comp B product purity 2 Comp A product recovery Comp A product recovery Comp B product purity 1 Comp B product purity 2 Control Varialbes: U U[1][1] U[1][2] U[1][3] U[1][4] U[1][5] U[2][1] U[2][2] U[2][3] U[2][4] U[2][5] U[3][1] U[3][2] U[3][3] U[3][4] U[3][5] U[4][1] U[4][2] U[4][3] U[4][4] U[4][5] U[5][1] U[5][2] U[5][3] U[5][4] U[5][5] U[6][1] U[6][2] U[6][3] U[6][4] U[6][5] U[7][1] U[7][2] U[7][3] U[7][4] U[7][5] U[8][1] U[8][2] U[8][3] U[8][4] = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 6.42399900372 6.42399929458 6.42399934602 6.42399933866 6.42399929805 6.42399900372 6.42399929458 6.42399934602 6.42399933866 6.42399929805 4.26312341759 3.62194059303 4.32988084673 4.37949854257 4.61393403098 4.26312341759 3.62194059303 4.32988084673 4.37949854257 4.61393403098 6.42399544875 6.42397786425 4.32984533959 4.37946267711 4.61389809042 6.42399544875 6.42397786425 4.32984533959 4.37946267711 4.61389809042 0.93043073109 3.37847163124 4.32987635115 4.37949702897 4.61393324695 0.93043073109 3.37847163124 4.32987635115 4.37949702897 1 2 : : 1 2 : : : : : : 79.9970616196 2.4753822029 96.9985341913 3.00146580866 20.001636154 97.5240065646 17.0189549203 82.9810450797 U[8][5] = 4.61393324695 UD UD[1][1] = 5.49356827263 UD[1][2] = 3.04552766334 UD[1][3] = 2.09412299487 UD[1][4] = 2.04450230969 UD[1][5] = 1.8100660511 UD[2][1] = 0 UD[2][2] = 0 UD[2][3] = 0 UD[2][4] = 0 UD[2][5] = 0 UD[3][1] = 0 UD[3][2] = 0 UD[3][3] = 0 UD[3][4] = 0 UD[3][5] = 0 UD[4][1] = 0 UD[4][2] = 0 UD[4][3] = 0 UD[4][4] = 0 UD[4][5] = 0 UD[5][1] = 0 UD[5][2] = 0 UD[5][3] = 0 UD[5][4] = 0 UD[5][5] = 0 UD[6][1] = 0 UD[6][2] = 0 UD[6][3] = 0 UD[6][4] = 0 UD[6][5] = 0 UD[7][1] = 0 UD[7][2] = 0 UD[7][3] = 0 UD[7][4] = 0 UD[7][5] = 0 UD[8][1] = 0 UD[8][2] = 0 UD[8][3] = 0 UD[8][4] = 0 UD[8][5] = 0 UE UE[1][1] = 0 UE[1][2] = 0 UE[1][3] = 0 UE[1][4] = 0 UE[1][5] = 0 UE[2][1] = 2.16087558613 UE[2][2] = 2.80205870156 UE[2][3] = 2.09411849929 UE[2][4] = 2.0445007961 UE[2][5] = 1.81006526707 UE[3][1] UE[3][2] UE[3][3] UE[3][4] UE[3][5] UE[4][1] UE[4][2] UE[4][3] UE[4][4] UE[4][5] UE[5][1] UE[5][2] UE[5][3] UE[5][4] UE[5][5] UE[6][1] UE[6][2] UE[6][3] UE[6][4] UE[6][5] UE[7][1] UE[7][2] UE[7][3] UE[7][4] UE[7][5] UE[8][1] UE[8][2] UE[8][3] UE[8][4] UE[8][5] UF UF[1][1] UF[1][2] UF[1][3] UF[1][4] UF[1][5] UF[2][1] UF[2][2] UF[2][3] UF[2][4] UF[2][5] UF[3][1] UF[3][2] UF[3][3] UF[3][4] UF[3][5] UF[4][1] UF[4][2] UF[4][3] UF[4][4] UF[4][5] UF[5][1] UF[5][2] = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 = = = = = = = = = = = = = = = = = = = = = = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.16087203116 2.80203727123 UF[5][3] UF[5][4] UF[5][5] UF[6][1] UF[6][2] UF[6][3] UF[6][4] UF[6][5] UF[7][1] UF[7][2] UF[7][3] UF[7][4] UF[7][5] UF[8][1] UF[8][2] UF[8][3] UF[8][4] UF[8][5] UR UR[1][1] UR[1][2] UR[1][3] UR[1][4] UR[1][5] UR[2][1] UR[2][2] UR[2][3] UR[2][4] UR[2][5] UR[3][1] UR[3][2] UR[3][3] UR[3][4] UR[3][5] UR[4][1] UR[4][2] UR[4][3] UR[4][4] UR[4][5] UR[5][1] UR[5][2] UR[5][3] UR[5][4] UR[5][5] UR[6][1] UR[6][2] UR[6][3] UR[6][4] UR[6][5] UR[7][1] UR[7][2] UR[7][3] UR[7][4] = = = = = = = = = = = = = = = = = = 0.0 0.0 0.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5.49356471766 3.04550623301 0.0 0.0 0.0 0 0 0 0 UR[7][5] = 0 UR[8][1] = 0 UR[8][2] = 0 UR[8][3] = 0 UR[8][4] = 0 UR[8][5] = 0 Step Time 172.403989672 Throughput: 0.992581860477 [m/hr] Desorbent: 2.89755745833 [m/hr] D/F ratio: 2.91921258458 Comp A conc in extract = Comp B conc in extract = Comp A conc in raffinate Comp B conc in raffinate Optimization Completed ‘concentration_profile.png’ ‘fluid_velocity_powerfeed.png’ 1.09154696262 0.0337761896523 = 0.348748604486 = 1.70042895148 ‘zone_4_powerfeed.png’
© Copyright 2026 Paperzz