Penalty contact

In a penalty contact solution method the contact interaction between the bodies is handled via spring elements that model the stiffness of the contact. Hence, in a penalty approach it is possible that the faces in contact penetrate each other slightly depending on the defined contact stiffness that couples the interpenetration with the consequential reaction forces. As the interpenetration causes forces that try to prevent further intersection and penalize this behavior it is called Penalty method.


The contact stiffness of a penalty contact can be defined in different ways. For the Code_Aster solver it is done via the stiffness coefficient of the linear penetration model. In CalculiX the penalty contact can be defined in different ways that describe the relation between the penetration and the contact pressure.

Code_Aster penalty contact

With the Code_Aster solver you define the linear relation between the interpenetration and the contact pressure via the Penalty coefficient. The higher you choose the parameter the stiffer the contact gets, which is desired in most cases, as you do not want the bodies to penetrate at all. However it gets harder to reach convergence for your nonlinear calculation in most cases when you increase the penalty coefficient, so you have to find a tradeoff between those counteracting interests.

CalculiX penalty contact

In CalculiX the relation between contact pressure and interpenetration is described via a function.


The exponential function describing the contact pressure is:

\[p = p_0 exp(ln(100)/c_0 d)\]

It depends on the penetration of the slave nodes into the master surface d, which is calculated from the nodal displacements. To specify the stiffness of the contact you have to provide the constant parameters \(p_0\) and \(c_0\). \(p_0\) is the pressure value at zero penetration while \(c_0\) determines the penetration value where the contact pressure drops to 1% of \(p_0\). If you increase \(c_0\) the contact becomes stiffer, influencing the convergence behavior in a negative way in most cases.


The linear contact definition is given by:

\[p = K d (1/2 + (1/\pi)*tan^{-1} (d/\epsilon))\]

where again d is the penetration value of the contact faces. Actually the function is split into an approximately linear part for the contact interaction for positive penetration (the \(tan^{-1}\) becomes small compared to the linear part) and a almost constant behavior for negative penetration values (as \(\epsilon\) should be chosen really small). Two parameters \(K\) and \(\epsilon\) have to be specified, where \(K\) is the slope of the linear part and \(\epsilon\) should be a small value that adds a very small pressure for negative penetration (clearance).