An alternative approach is for you to solve it as a (non)linear variational 
inequality. See src/snes/examples/tutorials/ex9.c 

  How you should proceed depends on your long term goal. What problem do you 
really want to solve? Is it really a linear time dependent problem with 0 
bounds on U? Can the problem always be represented as an optimization problem 
easily? What are  and what will be the properties of K? For example if K is 
positive definite then likely the bounds will remain try without explicitly 
providing the constraints. 

  Barry

> On Apr 2, 2015, at 6:39 PM, Justin Chang <[email protected]> wrote:
> 
> Hi everyone,
> 
> I have a two part question regarding the integration of the following 
> optimization problem
> 
> min 1/2 u^T*K*u + u^T*f
> S.T. u >= 0
> 
> into SNES and TS
> 
> 1) For SNES, assuming I am working with a linear FE equation, I have the 
> following algorithm/steps for solving my problem
> 
> a) Set an initial guess x
> b) Obtain residual r and jacobian A through functions SNESComputeFunction() 
> and SNESComputeJacobian() respectively
> c) Form vector b = r - A*x
> 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
> e) Call TaoSolve
> 
> 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.
> 
> 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.
> 
> Thanks,
> 
> -- 
> Justin Chang
> PhD Candidate, Civil Engineering - Computational Sciences
> University of Houston, Department of Civil and Environmental Engineering
> Houston, TX 77004
> (512) 963-3262

Reply via email to