<div dir="ltr"><div>I've been working on mechanical contact in MOOSE for a while, and it's led to me to think about general inequality constraint enforcement. I've been playing around with both `vinewtonssls` and `vinewtonrsls`. In Benson's and Munson's Flexible Complementarity Solvers paper, they were able to solve 73.7% of their problems with SS and 65.5% with RS which led them to conclude that the SS method is generally more robust.  We have had at least one instance where a MOOSE user <a href="https://groups.google.com/d/msg/moose-users/Kzimz-HcK2s/y_jnCQGaCAAJ">reported an order of magnitude reduction</a> in non-linear iterations when switching from SS to RS. Moreover, when running the problem described in <a href="https://gitlab.com/petsc/petsc/issues/411#note_229556542">this issue</a>, I get these results:</div><div><br></div><div style="margin-left:40px">num_elements = 100</div><div style="margin-left:40px">SS nl iterations = 53<br></div><div style="margin-left:40px">RS nl iterations = 22<br></div><div style="margin-left:40px"><br></div><div style="margin-left:40px">num_elements = 1000</div><div style="margin-left:40px">SS nl iterations = 123<br></div><div style="margin-left:40px">RS nl iterations = 140</div><div style="margin-left:40px"><br></div><div style="margin-left:40px">num_elements = 10000</div><div style="margin-left:40px">SS: fails to converge within 50 nl iterations during the second time step whether using a `basic` or `bt` line search</div><div style="margin-left:40px">RS: fails to converge within 50 nl iterations during the second time step whether using a `basic` or `bt` line search (although I believe `vinewtonrsls` performs a line-search that is guaranteed to keep the degrees of freedom within their bounds)</div><div><br></div><div>So depending on the number of elements, it appears that either SS or RS may be more performant. I guess since I can get different relative performance with even the same PDE, it would be silly for me to ask for guidance on when to use which? In the conclusion of Benson's and Munson's paper, they mention using mesh sequencing for generating initial guesses on finer meshes. Does anyone know whether there have been any publications using PETSc/TAO and mesh sequencing for solving large VI problems?<br></div><div><br></div><div>A related question: what needs to be done to allow SS to run with `-snes_mf_operator`? RS already appears to support the option.<br></div><br></div>