Contact Algorithm In Abaqus – How Does It Work?

Contact is a very important aspect while solving multibody dynamics problems in engineering applications. It accurately represents how different components interact with each other in real world scenarios. Adding contact into the FEA model will help us capture the accurate load transfer mechanisms, which will ensure that each component carries its designated share of load without being overloaded, thus avoiding potential failure risks. It also enables us to predict wear patterns during functioning of a mechanical system which will help in evaluating life of a component.

Abaqus/Standard Solver Algorithm

In standard analysis, the solution of nonlinear problems is obtained by applying the load and boundaries gradually to the system and incrementally working towards finding the final solution. So, the problem is broken into a number of load increments and an approximate equilibrium solution is obtained at the end of each increment. If the residual forces are within a set tolerance, then we attain a converged solution. If the increment attempted (think percentage of load from zero to 100) is too large and the residual forces are not within tolerance, the solution is not converged. A new smaller increment is used in this case and the solving process is repeated. As shown in the figure below, the linear load increase can be solved in one increment – but when forces become nonlinear, smaller increments are required to obtain a converged solution. The increment size is chosen such that the load change is almost linear within that period. In standard analysis, the unknown quantities in the current time step (tn) are calculated based on the slopes in the next time step (tn+1). Because of this dependency between consecutive step variables, a set of equations are obtained in each increment. We use numerical methods, such as Newton-Raphson, to solve the set of equations.

Contact algorithms in FEA

Nonlinearity occurs in a model due to 3 main reasons : material, geometric (large deformation theory) and contact. For more information on each of these types of nonlinearities, please refer to our previous blog here. In this article, let’s discuss how the contact algorithm works with the Newton-Raphson solver and how to overcome some basic sources of convergence issues in a contact model.


Abaqus/Standard Contact Algorithm

Adding contact introduces nonlinearity in the finite element problem and can be computationally very expensive as it causes stiffness change at the contact interactions. Debugging contact problems can be a very challenging task. But comprehending the algorithm behind solving the contact problems can be helpful when trying to understand the diagnostic output in the message file.

We define contact using two surfaces: primary and secondary. The nodes on the primary surface can penetrate the secondary surface but the nodes on the secondary surface cannot penetrate into the primary surface. Because of this formulation, one must carefully select primary and secondary surfaces in order to achieve the best possible results from contact problems. A finer mesh on the secondary surface compared to the primary surface will lessen the primary node penetration. When the mesh densities are similar for primary and secondary surfaces, choosing a softer material for secondary surfaces will be beneficial as it tries to conform to the shape of master surface.

Contact algorithms in FEA


When the primary surface interacts with the secondary surface during load application, the penetration of the secondary nodes into the primary surface has to be resolved and the contact pressure has to be quantified. This is done based on the algorithm shown in the figure below. 

Contact algorithms in FEA

This contact algorithm is built around the Newton-Raphson technique to solve Standard problem.  For each load/time increment, contact has to be resolved. So, this algorithm will be activated once per time increment. ‘P’ in the flow chart denotes the contact pressure at a secondary node and ‘h’ denotes the penetration of secondary node into the primary surface. At the beginning of the time increment, the state of all contact nodes is examined to determine whether they are closed or open.

Closed Contact

This means that the nodes on primary and secondary surfaces are in contact with each other. There is no gap between them, and the normal contact and frictional forces have to be computed. When the node is closed, we have to determine whether it is sticking or sliding.

Open Contact

This indicates that there is a gap between the primary and secondary nodes. There are no active contact forces. Depending on the analysis settings, open nodes may allow penetration or relative motion between the surfaces.

Solving For Contact

Constraint conditions are applied to all closed nodes and the constraints are removed at all the open nodes. Now, the iteration is carried out to update the model configuration at this state. At this point, the contact status is checked again at the secondary nodes. Any nodes with negative or zero clearance in the new configuration are updated to be closed. The nodes with negative contact pressure are updated from closed to open. When there are contact changes detected in this phase of iteration, the iteration is termed as ‘severe discontinuity iteration’ and no force and moment equilibrium checks are carried out for this iteration.

After updating the open and closed nodes, the next iteration is carried out. This procedure is repeated until an iteration is completed with no changes in contact status. This iteration is termed as the first ‘equilibrium iteration’.  In this iteration, the force and moment equilibrium checks are performed. If this convergence check passes, then the solver moves on to solve the next increment. If the convergence check fails, the solver goes on to perform another iteration. If the convergence rate is too slow, then this increment is stopped and a smaller time increment is considered.

Monitoring Contact

It is very important to note the number of severe discontinuity and equilibrium iterations taking place in each increment. More severe discontinuity iterations and less equilibrium iterations in the increment mean that the solver is having difficulty in determining proper contact conditions. If there are too many severe discontinuity iterations (>12), then the time increment size is reduced to find a converged solution. When there are no severe discontinuity iterations, it means that the contact state is not changing between increments.  More equilibrium iterations and fewer severe discontinuity iterations generally indicate that the analysis is stable. The solver is effectively balancing forces and moments in the model while minimizing instabilities in the solution.


Final Thoughts

Hopefully this article has given good insights into the algorithm used to solve a contact problem using standard solver. The contact algorithm works with Newton-Raphson technique. Understanding the algorithm will help us in debugging a contact problem by pinpointing the problematic areas in the model. More equilibrium iterations and fewer severe discontinuity iterations in the message file indicate that the analysis is smoothly and steadily converging towards a steady solution.

If you’d like to discuss this or any other other aspects of FEA, get in touch with our expert team today!

Share this post