[petsc-users] Integrating TAO into SNES and TS
Barry Smith
bsmith at mcs.anl.gov
Thu Apr 2 18:53:04 CDT 2015
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 <jchang27 at uh.edu> 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
More information about the petsc-users
mailing list