<div dir="ltr">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">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? <div>

<div><br></div><div>This fix might not be enough to make the SS method work with JFNK, however: the line search </div><div>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?</div>

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