subramanya sadasiva <[email protected]> writes:

> Hi Jed, I was just looking through the SNES documentation, I came
> across SNESLineSearchSetVIFunctions. Is there an example of the use of
> this function to implement and arbitrary projection?  Can I use this
> to implement a function that projects the solution back into the
> feasible region? I am assuming this should be able to handle simple
> linear inequality constraints of the type that I have, which can be
> applied pointwise.

Hmm, that interface is currently used by SNESVI *implementations* to
communicate information to the SNESLineSearch object.  So while it may
work to provide a custom projection, the current code will overwrite it,
e.g., SNESSolve_VINEWTONRSLS in virs.c:

  ierr = SNESLineSearchSetVIFunctions(snes->linesearch, 
SNESVIProjectOntoBounds, SNESVIComputeInactiveSetFnorm);CHKERRQ(ierr);

Maybe Peter has further thoughts about adding other constraints to the
SNESVI interface.  The restriction to simple bound constraints is a
significant impediment, preventing its use for elastic contact and other
applications.

Attachment: pgpGJv5K2gHjE.pgp
Description: PGP signature

Reply via email to