[petsc-dev] coding style

Munson, Todd tmunson at mcs.anl.gov
Thu Aug 18 18:01:34 CDT 2016


>> For now, I am not proposing interface changes, but rather answering the
>> question of what types of problems do we need to support.  We can 
>> discuss actual interfaces later.
>> 
>> Note: you really only need one multiplier for the each of the 
>> constraints (maybe interior-point methods are different).
>> The sign changes depending on the bound that is active.
> 
> I don’t believe interior-point methods work this way; they typically maintain estimates of duality multipliers, and inequality constraints aren’t necessarily active until convergence. When these methods converge, complementary slackness holds approximately, and I believe a crossover algorithm must be implemented to determine the active constraints, at which point, complementary slackness would be satisfied more exactly.

No doubt that internally, you have more multipliers.  What we report
to the user for the multipliers at the solution may be different 
though.

Internally the solvers can do lots of stuff.  Most interior point 
methods, for example, would convert any inequality constraints 
into equality constraints by adding slack variables and 
bounding the slacks.  That way they only need bounds on 
variables.

I believe crossover is only really needed when the problem is 
degenerate at the solution and you need to make decisions to 
find an invertible basis matrix.  If you don't care about
the invertible basis matrix, then its not needed.  [One
reason for wanting the invertible basis matrix is for
parametric sensitivities or for branch and bound
for combinatorial problems.]

In the strict complementarity case, the multiplier for the 
inactive bounds will go to zero and the slack will remain
bounded below.  Setting the multiplier to zero will only
decrease the norm of the gradient of the Lagrangian.

> I already do this in SQPTR, although only for the Hilbert space case. Assuming it eventually gets merged, the interfaces need to be revised for norm-reflexive convex Banach spaces so that all inner products become duality pairings. I am not sure if ROL does this, but the Heinkenschloss and Ridzal paper cited in the SQPTR comments suggests this generalization can be made.

I think doing things in function spaces is more of a change than I 
want to consider right now.  You would have to start by convincing
the regular PETSc folks to convey the function spaces for their
PDEs...

I prefer the simpler discretize then optimize...  

Todd.



More information about the petsc-dev mailing list