Description
This model checks if Cmex creates an error as expected when dealing with external equations. The errors we want to get are: - Aij in variable has non integer value in =X= equation - Aij out of range in variable in =X= equation - Aij not unique in variable in =X= equation - Aij not the same in variable in =X= equation Contributor: Lutz Westermann
Small Model of Type : GAMS
Category : GAMS Test library
Main file : xerr2.gms
$title External Equation Errors: Aij wrong (xerr1,SEQ=494)
$onText
This model checks if Cmex creates an error as expected when dealing with
external equations. The errors we want to get are:
- Aij in variable has non integer value in =X= equation
- Aij out of range in variable in =X= equation
- Aij not unique in variable in =X= equation
- Aij not the same in variable in =X= equation
Contributor: Lutz Westermann
$offText
$onEcho > err.gms
set i / i1*i4 /
variables x(i), z;
equations zdef;
zdef.. sum(i, (ord(i)+ord(i)/10)*x(i) ) + (card(i)+1)* z =X= 1;
model xerr 'External equations' / all /;
solve xerr using nlp minimizing z;
$offEcho
$call =gams err.gms lo=%GAMS.lo%
$if not errorlevel 1 $abort should get error because of Aij not integer
$onEcho > err.gms
set i / i1*i4 /
variables x(i), z;
equations zdef;
zdef.. sum(i, (ord(i)+1)*x(i) ) + (card(i)+2)* z =X= 1;
model xerr 'External equations' / all /;
solve xerr using nlp minimizing z;
$offEcho
$call =gams err.gms lo=%GAMS.lo%
$if not errorlevel 1 $abort should get error because of Aij out of range
$onEcho > err.gms
set i / i1*i4 /
variables x(i), z;
equations zdef;
zdef.. sum(i, (card(i)+1)*x(i) ) + (card(i)+1)* z =X= 1;
model xerr 'External equations' / all /;
solve xerr using nlp minimizing z;
$offEcho
$call =gams err.gms lo=%GAMS.lo%
$if not errorlevel 1 $abort should get error because of Aij not unique
$onEcho > err.gms
set i / i1*i4 /
variables x(i), z;
equations zdef, zdef2;
zdef.. sum(i, ord(i) *x(i) ) + (card(i)+1)* z =X= 1;
zdef2.. sum(i, (ord(i)+1)*x(i) ) =X= 2;
model xerr 'External equations' / all /;
solve xerr using nlp minimizing z;
$offEcho
$call =gams err.gms lo=%GAMS.lo%
$if not errorlevel 1 $abort should get error because of Aij not the same in variable