[petsc-dev] Semismooth Newton

Jed Brown jedbrown at mcs.anl.gov
Wed Aug 1 11:29:11 CDT 2012


On Tue, Jul 31, 2012 at 5:38 AM, Todd Munson <tmunson at mcs.anl.gov> wrote:

> Knowing the constraint structure and forming the augmented system is fine
> and can be
> helpful information to know when determining the active set.  I would
> concentrate on
> linear constraints and inequalities though; they are nicer to deal with
> and you do
> not have to be concerned with constraint qualifications.
>
> Nonlinear constraints are possible, but you need to satisfy a constraint
> qualification
> and you need second derivatives of the constraints for the augmented
> system.  (In
> optimization terms, the Hessian of the Lagrangian.)
>

I would be in favor of making the interface support this more general form.
I'm not wild about having the user add a bunch of extra variables because
then they have to explain enough about that reformulation to decompose it
again for an efficient multigrid solver.


>
> > There are some reformulations for polyhedral constraints, but they are,
> in my opinion,
> > a bit unwieldy.
> >
> > Why unwieldy?
>
> The standard semismooth formulation using the Fischer-Burmeister function
> and its
> cousins works only for bound constraints.  Designing a semismooth
> reformulation
> for general polyhedral constraints is difficult.  It can be done, but its
> really not easy.  You can define the normal map using projections, but
> then you need to be able to do the projections onto the constraint
> set.
>
> Of course, the augmented system results in a box constrained problem and
> the
> standard formulations work.
>

I'm not at all opposed to having the library use the augmented system
internally, I just don't like making the user reformulate because it's more
intrusive to their code and because it locks the library into solving the
problem that way.


>
> One thing we should try is adding slacks in the semismooth algorithm for
> box
> constraints and then applying the reformulation to the redefined system.
> There is some evidence that this will work better.
>

If you have a reference for a version that you like, I'll implement it when
I start messing with that code.


>
> > Note that changing the size of the constrained size is also important,
> and box constraints strike me as even more confusing in that context.
>
> I do not follow this at all.  Are you talking about something like a time
> dependent
> problem and the constraints in the VI are a function of time?  That
> becomes a
> somewhat odd problem and I'd have to see an example.  Normally the
> constraint set is fixed for all time and just the activities
> change.
>

Suppose we are doing unstructured elastic contact. Any surface point could
end up in contact with any other. If we reformulate with bound
contstraints, we end up adding N^2 auxiliary variables. If we can use
nonlinear constraints where the number of constraints can change each
iteration, then we only need to deal with the O(N) viable contact
possibilities. I'm happy to differentiate the constraint functions, but I
certainly want the flexibility.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20120801/a2eed25b/attachment.html>


More information about the petsc-dev mailing list