# F. Troubleshooting Guide for Implicit Convergence

Implicit simulations often encounter convergence problems that are difficult to diagnose and fix. Below is a list of commonly used techniques for obtaining convergence in implicit problems.

When using a multi-level solver such as control contact, two distinct convergence issues are often encountered: (1) the model problem (i.e., the level 0 solver) fails to converge, and (2) control contact (i.e., the level 1 solver) fails to converge. The following suggestions may help to obtain convergence in either case:

- Add additional constraints to remove rigid body modes. If the problem is depending on contact to remove rigid body modes, it can be difficult for the solver to converge due to poor conditioning of the system. If there is a way to remove the rigid body modes without relying on contact then these problems are better posed and easier for the solver to handle.

- Add tangent diagonal scaling. If it is not possible to add additional constraints to remove rigid body modes then tangent diagonal scale can avoid some of the ill-conditioning of the problem. Because this option only modifies the preconditioner, it will not affect the final converged solution significantly. However, if too much tangent diagonal scaling is used then the solver convergence rate may slow down. See Section 4.2.1 for further discussion.

- Set a reasonably small number of maximum iterations and a high acceptable residual for the model problem. This is useful because the contact constraints for the first model problem solve may be over-constrained or otherwise invalid. These inconsistencies are resolved after the first contact iteration, and setting the maximum iterations and a high acceptable residual allows the simulation to get past this hurdle. Adjusting these parameters will not affect the final converged solution since the overall solution will still be checked against the convergence tolerances of the level 1 control contact solve.

- Try the full tangent preconditioner. The full tangent preconditioner often makes problems converge in significantly fewer iterations and is typically more efficient than other available preconditioners.

- Take smaller step sizes. This can help reduce the amount of nonlinearity introduced in the load step, making the problem easier to solve.

- Turn off load step predictor. This can help because the interactions are defined in the initial predicted configuration. Predicting the initial configuration can be very difficult and no prediction is always better than a bad prediction. See Section 4.9 for details.

- Turn off adaptive penalty. The adaptive penalty algorithm attempts to improve the convergence rate by adjusting the penalty parameters but is sometimes unsuccessful. Without adaptive penalty convergence is typically slower but more robust.

- Turn off adaptive time stepping. Adaptive time stepping can mask larger issues by pushing past the real issue and later spawning a fictitious issue.

- If using frictionless contact, try a frictional model. Frictional models have tangential stiffness that prevents sliding modes, making the model problem easier to solve.

- Solve the model problem to a tighter target tolerance. The penalty kernel for augmented Lagrange comes from the model problem solve. So, if the model problem is not solved to a sufficiently small tolerance then there is little hope that the Lagrange multiplier will converge with an acceptable residual tolerance.

- Try a different preconditioner. The full-tangent preconditioner is sensitive to rigid body modes but can handle body forces better than the nodal preconditioner. Alternatively, the nodal preconditioner is insensitive to rigid body modes but is very slow to converge body forces.

- Use iteration plot to diagnose problems. This is useful to see if a rigid body mode is present. It can also be helpful to determine where contact is iterating excessively to diagnose problems which would be difficult to address without a visual aid. See Section 4.1.1 for further discussion.

- Switch contact constraint formulation. The node-face contact constraint formulation is better able to handle conflicting constraints but may miss contact in corners or introduce force concentrations that make the problem difficult to solve. Alternatively, face-face constraints give smoother forces but can have more difficulty with constraint conflicts.

- Avoid constraint conflicts with contact. Kinematic boundary conditions, MPCs and prescribed rigid bodies can all conflict with contact constraint definitions (see Appendix A). When this occurs convergence can be very poor because the penalty algorithm does not see the other constraints and assumes it can freely move the constrained nodes/faces.

- Use default normal and tangential search tolerance. Bad search tolerances can cause the solver to miss constraints or attempt to enforce bad constraints. The default values are generally robust.

- Use block skinning instead of side-set definitions. Block skinning gives contact search more information to work with when making projections to define constraints. This extra information can help the search cull incorrect contact constraints.

- Adjust the AL penalty. If contact constraints appear to be under-enforced, increasing the AL penalty parameter may help. In particular, for cases in which a very stiff material contacts a very soft material, increasing the AL penalty parameter can sometimes improve convergence. Conversely, a high AL penalty parameter may be over enforcing the constraints, resulting in an ill-conditioned system. If this is the case, decreasing the AL penalty may help, see Section 8.6.1.6.

- Set a Lagrange tolerance. This is useful if the maximum gap is acceptably small and the residual in the model problem is acceptably small, but the residual imbalance introduced by a small Lagrange multiplier change prevents control contact convergence, see Section 4.5.1.6.

- Use Control Damped Solve. This is useful in problems that have rigid body motion before contact is seated, problems where contact causes rebound or bouncing to occur, problems that involve sliding contact, and other difficult implicit problems. Control Damped Solve adds artificial springs to the nodes where the solve difficulty is occurring, and the spring force is slowly decreased near zero so the springs do not introduce error into the problem. See Section 4.8 for more details.