$title Simple test for variational inequalities through EMP (EMPVI01,SEQ=423) $onText This model checks the correctness of the models generated by EMP for two simple variational inequalities models. Contributor: Jan-H. Jagla, January 2009 $offText $eolCom // Equations defvi, e1, e0; Variable x,z,y; y.lo=1; e0.. y =n= 0; e1.. x =e= z + 3; defvi.. 2*x =e= z; model test /all/; $onEcho > "%gams.scrdir%reset.%gams.scrext%" x.l=0; x.m=0; y.l=1; y.m=0; z.l=0; z.m=0; e0.l=0; e0.m=0; e1.l=0; e1.m=0; defvi.l=0; defvi.m=0; $offEcho $include "%gams.scrdir%reset.%gams.scrext%" $call echo FileName vitest1.gms > jams.opt execute 'echo vi e0 y > "%emp.info%"'; test.optfile=1; solve test using emp; *Diff generated files with reference files execute 'sed "2d" vitest1.gms > vitest1.txt'; execute 'sed "2d" vitest1ref.gms > vitest1ref.txt'; execute '=diff -I reslim -bw vitest1.txt vitest1ref.txt'; abort$errorlevel 'vitest1 and vitest1ref differ'; $include "%gams.scrdir%reset.%gams.scrext%" $call echo FileName vitest2.gms > jams.op2 execute 'echo vi e0 y defvi x > "%emp.info%"'; test.optfile=2; solve test using emp; *Diff generated files with reference files execute 'sed "2d" vitest2.gms > vitest2.txt'; execute 'sed "2d" vitest2ref.gms > vitest2ref.txt'; execute '=diff -I reslim -bw vitest2.txt vitest2ref.txt'; abort$errorlevel 'vitest2 and vitest2ref differ'; execute 'rm -f vitest1* vitest2*' execute 'rm -f jams.opt jams.op2' * Reference files $onEcho > vitest1ref.gms *********************************************** * written by GAMS/EMP at 09/02/09 04:52:46 * for more information use JAMS option "Dict" *********************************************** Variables x1,x2,x3,u1,u2; Equations e1,e2,e3,zero_x1,zero_x2; e1.. 2*x1 - x2 =E= 0; e2.. x1 - x2 =E= 3; e3.. x3 =N= 0; zero_x1.. - 2*u1 - u2 =E= 0; zero_x2.. u1 + u2 =E= 0; * set non-default bounds x3.lo = 1; * set non-default levels x3.l = 1; Model m / e1.u1,e2.u2,e3.x3,zero_x1.x1,zero_x2.x2 /; m.limrow=0; m.limcol=0; Solve m using MCP; $offEcho $onEcho > vitest2ref.gms *********************************************** * written by GAMS/EMP at 09/02/09 04:52:46 * for more information use JAMS option "Dict" *********************************************** Variables x1,x2,x3,u2; Equations e1,e2,e3,zero_x2; e1.. 2*x1 - x2 - u2 =E= 0; e2.. x1 - x2 =E= 3; e3.. x3 =N= 0; zero_x2.. u2 =E= 0; * set non-default bounds x3.lo = 1; * set non-default levels x3.l = 1; Model m / e1.x1,e2.u2,e3.x3,zero_x2.x2 /; m.limrow=0; m.limcol=0; Solve m using MCP; $offEcho