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.
pgpGJv5K2gHjE.pgp
Description: PGP signature
