<div dir="ltr"><div><div><div><div><div><div><div><div><div><div><div>Hi everyone,<br><br></div>I have a two part question regarding the integration of the following optimization problem<br><br></div>min 1/2 u^T*K*u + u^T*f<br></div>S.T. u >= 0<br><br></div>into SNES and TS<br><br></div>1) For SNES, assuming I am working with a linear FE equation, I have the following algorithm/steps for solving my problem<br><br></div>a) Set an initial guess x<br>b) Obtain residual r and jacobian A through functions SNESComputeFunction() and SNESComputeJacobian() respectively<br></div>c) Form vector b = r - A*x<br></div>d) Set Hessian equal to A, gradient to A*x, objective function value to 1/2*x^T*A*x + x^T*b, and variable (lower) bounds to a zero vector<br></div></div>e) Call TaoSolve<br><br></div><div>This works well at the moment, but my question is there a more "efficient" way of doing this? Because with my current setup, I am making a rather bold assumption that my problem would converge in one SNES iteration without the bounded constraints and does not have any unexpected nonlinearities.<br><br></div><div>2) How would I go about doing the above for time-stepping problems? At each time step, I want to solve a convex optimization subject to the lower bounds constraint. I plan on using backward euler and my resulting jacobian should still be compatible with the above optimization problem.<br><br></div><div>Thanks,<br></div><br>-- <br><div class="gmail_signature"><div dir="ltr"><div><div><div>Justin Chang<br></div>PhD Candidate, Civil Engineering - Computational Sciences<br></div>University of Houston, Department of Civil and Environmental Engineering<br></div>Houston, TX 77004<br>(512) 963-3262<br></div></div></div>