<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'><div>Thanks Jed. Being able to apply other pointwise constraints will be really helpful, even through implementation of a custom project function .Augmented lagrangian for the one extra constraint really ruins my convergence. </div><div>Subramanya </div><div><br><div>> From: jedbrown@mcs.anl.gov<br>> To: potaman@outlook.com; petsc-users@mcs.anl.gov<br>> CC: brune@mcs.anl.gov<br>> Subject: RE: [petsc-users] Extending PETSC-SNES-VI to linear inequality constraints,<br>> Date: Mon, 23 Dec 2013 21:54:42 -0700<br>> <br>> subramanya sadasiva <potaman@outlook.com> writes:<br>> <br>> > Hi Jed, I was just looking through the SNES documentation, I came<br>> > across SNESLineSearchSetVIFunctions. Is there an example of the use of<br>> > this function to implement and arbitrary projection?  Can I use this<br>> > to implement a function that projects the solution back into the<br>> > feasible region? I am assuming this should be able to handle simple<br>> > linear inequality constraints of the type that I have, which can be<br>> > applied pointwise.<br>> <br>> Hmm, that interface is currently used by SNESVI *implementations* to<br>> communicate information to the SNESLineSearch object.  So while it may<br>> work to provide a custom projection, the current code will overwrite it,<br>> e.g., SNESSolve_VINEWTONRSLS in virs.c:<br>> <br>>   ierr = SNESLineSearchSetVIFunctions(snes->linesearch, SNESVIProjectOntoBounds, SNESVIComputeInactiveSetFnorm);CHKERRQ(ierr);<br>> <br>> Maybe Peter has further thoughts about adding other constraints to the<br>> SNESVI interface.  The restriction to simple bound constraints is a<br>> significant impediment, preventing its use for elastic contact and other<br>> applications.<br></div></div>                                     </div></body>
</html>