# cont5.jl using JuMP function testIt(n,useMPS) m = n n1 = n-1 m1 = m-1 dx = 1/n T = 1.58 dt = T/m h2 = dx^2 a = 0.001 yt = [0.5*(1 - (j*dx)^2) for j=0:n] tic() mod = Model(:Min) @defVar(mod, 0 <= y[0:m,0:n] <= 1) @defVar(mod, -1 <= u[1:m] <= 1) @setObjective(mod, y[0,0]) # PDE for i = 0:m1 for j = 1:n1 #@addConstraint(mod, (y[i+1,j] - y[i,j])/dt == 0.5*(y[i,j-1] - 2*y[i,j] + y[i,j+1] + y[i+1,j-1] - 2*y[i+1,j] + y[i+1,j+1])/h2 ) @addConstraint(mod, h2*(y[i+1,j] - y[i,j]) == 0.5*dt*(y[i,j-1] - 2*y[i,j] + y[i,j+1] + y[i+1,j-1] - 2*y[i+1,j] + y[i+1,j+1]) ) end end # IC for j = 0:n @addConstraint(mod, y[0,j] == 0) end # BC for i = 1:m @addConstraint(mod, y[i,2] - 4*y[i,1] + 3*y[i,0] == 0) #@addConstraint(mod, (y[i,n-2] - 4*y[i,n1] + 3*y[i,n])/(2*dx) == u[i] - y[i,n]) @addConstraint(mod, y[i,n-2] - 4*y[i,n1] + 3*y[i,n] == (2*dx)*(u[i] - y[i,n])) end buildTime = toc() tic() if !useMPS writeLP(mod, "cont5_jl.lp") else writeMPS(mod, "cont5_jl.mps") end writeTime = toc() @printf("N %7d buildTime %7.3f writeTime %7.3f totalTime %7.3f %s\n", n, buildTime, writeTime,buildTime+writeTime,useMPS ? "MPS" : "LP") end n = int(ARGS[1]) useMPS = (ARGS[2] == "M") testIt(n, useMPS)