[petsc-dev] Semismooth Newton
Todd Munson
tmunson at mcs.anl.gov
Wed Aug 1 13:10:41 CDT 2012
Yes, I am all in favor of actually specifying a VI externally and then
internally formulating the appropriate augmented system. This is what
I do in other contexts (i.e. PATH for GAMS/AMPL). Some things you
probably want to do with such an interface is differentiate between
linear and nonlinear constraints -- you do need second derivatives
for nonlinear constraints and they should be convex.
You can start getting very general (i.e. linear and nonlinear cone
constraints, which can appear in contact problems with friction),
but I would advocate for simplicity rather than generality.
The addition and deletion of nonlinear constraints in your example is fine.
For an active set method, the constraints can be implicitly defined and you
only need to bring in the new active nonlinear constraints and add them to
the constraint set for the linear algebra. You can also do this for other
methods. So the active nonlinear constraints can change from one Newton
iteration to the next. The only place where the inactive constraints
matter is in the evaluation of the residual for the line search and
termination tests.
For the contact problems with friction, you typically do an explicit
method though. In this setting, you know the subset of the possible
active constraints at each time step and can keep them constant in
the VI solver. They only change as you step forward through time.
So you can optimize for this case and not have to worry about the
constraints changing within each Newton iteration.
I'm not sure how you want to design the variable constraint functionality,
but there is nothing wrong with it technically.
I can explain the semismooth method with slacks thing in a few lines.
The simple problem is:
0 <= x perp f(x) >= 0
The compact semismooth formulation is:
Phi(x,f(x)) = 0
where Phi is the reformulation used.
The semismooth formulation with slacks is:
f(x) - s = 0
Phi(x,s) = 0
The linear algebra for the semismooth reformulation with slacks
is very similar to that for the compact formulation, but there
are subtle differences in the right hand side and the
subdifferential.
Cheers, Todd.
More information about the petsc-dev
mailing list