<div dir="ltr">Todd,<div><br></div><div>What's the semi-smooth version in TAO that respect the bounds at the iterates?</div><div>Maybe that would be a good place to attempt a unification with SNESVI.</div><div><br></div>

<div>The current implementation could benefit from refactoring to enable more composability:</div><div>could we use a VIRS method inside VISS and allow for a user-defined active set definition/projection?</div><div>Then a bound-respecting VISS would be a combination of the current VISS and VIRS, potentially</div>

<div>controllable from the command line.  </div><div><br></div><div>The same goes for the linesearch: Armijo would be another  SNESLineSearch type that could be turned on on demand.</div><div>Finally, perhaps we could enable composition of DM(SNES) objects?  Then wrapping projection onto bounds around residual/Jacobian evaluation routines would be a composition of two DM(SNES) objects.  Right now something along those lines takes place in VIRS where an RS DM is "composed" with the full space DM, although this composition is</div>

<div>currently ad hoc.</div><div><br></div><div>Dmitry.</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Aug 1, 2014 at 9:35 AM, Munson, Todd S. <span dir="ltr"><<a href="mailto:tmunson@mcs.anl.gov" target="_blank">tmunson@mcs.anl.gov</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
Possibly it can be taken out; don't have time to go through the details today though.<br>
<br>
Regarding feasibility, there are feasible versions that respect the bounds in TAO<br>
as well as infeasible versions that only respect the bounds at the solution.<br>
<span class="HOEnZb"><font color="#888888"><br>
Todd.<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On Aug 1, 2014, at 10:02 AM, Dmitry Karpeyev <<a href="mailto:karpeev@mcs.anl.gov">karpeev@mcs.anl.gov</a>> wrote:<br>
<br>
> Currently the semi-smooth VI solver (VINEWTONSSLS) doesn't play well with the matrix-free SNES (aka JFNK).  This is partly because the calculation of the merit function gradient requires the action of the transpose of the Jacobian, which isn't implemented for MATMFFD.  Presumably, the merit function would be used in a fancy (Armijo?) line search as described here: <a href="http://arxiv.org/abs/math/0307305" target="_blank">http://arxiv.org/abs/math/0307305</a>.  However, it appears that only a basic line search is performed and the merit function gradient isn't used.  Should the merit gradient calculation be taken out?<br>


><br>
> This fix might not be enough to make the SS method work with JFNK, however: the line search<br>
> there isn't projected, so MatMFFD might have an infeasible base at some iterates.  This might break residual evaluation (e.g., due to negative densities). More importantly, however, even if the intermediate iterates were feasible, the increments used in the MatMFFD differencing algorithm might not be, and there is really no way around it with something like projection without breaking the semantics of MatMult.  Is VINEWTONSSLS unusable with JFNK in its current form?  In any event, should the Armijo line search be implemented?<br>


><br>
> Dmitry.<br>
><br>
<br>
</div></div></blockquote></div><br></div>