Cpa : Combustion of Propane in Air

Reference

  • Neculai Andrei, Nonlinear Optimization Applications Using the GAMS Technology,Springer Optimization and Its Applications, Model Cpa (4.5) in chapter Nonlinear Systems of Equations , 2013

Category : GAMS NOA library


Mainfile : cpa.gms

$Ontext
Combustion of propan in air.

Hiebert's (1983) reduced variant.
Hiebert, K.L., An evaluation of mathematical software that solves systems
of nonlinear equations. ACM Transactions on Mathematical Software,
vol. 8, 1983, pp.5-20.

Shacham, M., Brauner, N., Cutlip, M.B., (2002) A web-based library for
testing performance of numerical software for solving nonlinear algebraic
equations. Computers & Chemical Engineering, vol. 26, 2002, pp.547-554.

Meintjes, K., Morgan, A.P., (1990) Chemical equilibrium systems as
numerical test problems. ACM Trans. Math. Software, 16, 1990, pp. 143-151.
$Offtext

Scalars R /40/;

Variables x1,x2,x3,x4,x5,x6,x7,x8,x9,x10, obj;

Equations e1,e2,e3,e4,e5,e6,e7,e8,e9,e10, eobj;

* Constraints:

e1.. x1 + x4 - 3 =e= 0;
e2.. 2*x1 + x2 + x4 + x7 + x8 + x9 + 2*x10 - R =e= 0;
e3.. 2*x2 + 2*x5 + x6 + x7 - 8 =e= 0;
e4.. 2*x3 + x5 - 4*R =e= 0;
e5.. x1*x5 - 0.193*x2*x4 =e= 0;
e6.. x6*sqrt(x2) - 0.002597*sqrt(x2*x4*(x1+x2+x3+x4+x5+x6+x7+x8+x9+x10)) =e= 0;
e7.. x7*sqrt(x4) - 0.003448*sqrt(x1*x4*(x1+x2+x3+x4+x5+x6+x7+x8+x9+x10)) =e= 0;
e8.. x4*x8 - 1.799*x2*(x1+x2+x3+x4+x5+x6+x7+x8+x9+x10)/100000 =e= 0;
e9.. x4*x9 - 0.0002155*x1*sqrt(x3*(x1+x2+x3+x4+x5+x6+x7+x8+x9+x10)) =e= 0;
e10.. x10*sqr(x4) - 3.84 *sqr(x4)*(x1+x2+x3+x4+x5+x6+x7+x8+x9+x10)/100000 =e= 0;

* Objective:

eobj.. obj =e= 1;

*Bound on variables:
x1.lo = 0.000001;    x1.up = 100;
x2.lo = 0.000001;    x2.up = 100;
x3.lo = 0.000001;    x3.up = 100;
x4.lo = 0.000001;    x4.up = 100;
x5.lo = 0.000001;    x5.up = 100;
x6.lo = 0.000001;    x6.up = 100;
x7.lo = 0.000001;    x7.up = 100;
x8.lo = 0.000001;    x8.up = 100;
x9.lo = 0.000001;    x9.up = 100;
x10.lo = 0.000001;   x10.up = 100;

* Initial point:
x1.l = 2;
x2.l = 5;
x3.l = 40;
x4.l = 1;
x5.l = 0;
x6.l = 0;
x7.l = 0;
x8.l = 0;
x9.l = 0;
x10.l= 5;

Model cpa /all/;

$iftheni x%mode%==xbook
$onecho >bench.opt
  solvers knitro minos snopt
$offecho
cpa.optfile=1;
option nlp=bench;
$endif

Solve cpa minimizing obj using nlp;

$iftheni x%mode%==xbook
file prop /cpa1.dat/
put prop;
put x1.l:12:7, x2.l:12:7, x3.l:12:7 x4.l:12:7, x5.l:12:7,
    x6.l:12:7, x7.l:12:7, x8.l:12:7 x9.l:12:7, x10.l:12:7/;
$endif

* End cpa