SimScale CAE Forum

Physical contact solution Calculix vs CodeAster


Often we want to perform simulations involving contact. There are different types of contact which can be categorized in two categories:

Linear Contacts:

  1. Bonded contact
  2. Cyclic contact
  3. Sliding contact

Non-linear Contact:

  1. Physical contact.

CodeAster offers all the above types of contact whereas Calculix offers bonded and physical contact.For physical contact simulations we have two choices for CodeAster and Calculix:


  1. Penalty method.
  2. Augmented Lagrange method.

Calculix: (Pressure over-closure behavior)

  1. Exponential
  2. Linear

We suggest the user to use Penalty method for CodeAster and Linear for Calculix in order to get the first results. Especially when dealing with 2nd order mesh Calculix is much faster than CodeAster. The only tricky part is to set the parameters for the contact. For Calculix the optimum parameters are as shown in the figure below:

To obtain good results, the slope should be 5-50 times of the Young modulus. As the default material in SimScale platform is steel, therefore we choose slope K = 1e12. The larger this value, the harder is the contact. A good value for tension at larger clearance is 0.25% of the maximum expected stress in the model. For more information please read the following document (page: 170):

In terms of CodeAster, the contact takes some time to converge. The general parameters required are as follows:

The penalty coefficient is similar to the slope parameter of Calculix. It is the artificial stiffness added that prevents the master and slave to penetrate within each other. SimScale default values works for the default material i.e. steel. One can also add fictions clearance if the master and slave surfaces are already penetrating within each other before the start of simulation.

The best steps to get success with physical contact simulations are as follows:

  1. Always start with penalty contact for CodeAster and Linear for Calculix.
  2. Always use auto time stepping scheme for CodeAster. This helps to break the time steps if the simulation does not converge in the prescribed interval.
  3. Always add friction after the friction less contact simulation has converged. We can only add friction for CodeAster.
  4. Always start with 1st order mesh and then move to 2nd order mesh if necessary.
  5. Applying contact with Calculix can be challenging as mentioned in the following link:

Global contact setting