Clearance options in contact menu

there’s clearance option in contact analysis but i miss this feature in menus. It can be useful when provide and available similar setting as adjust feature.

This keyword was discussed here: *Clearance tò simulate an interference - CalculiX (official versions are on www.calculix.de, the official GitHub repository is at https://github.com/Dhondtguido/CalculiX).

Perhaps we should revive that ccx forum thread to first confirm that this feature works correctly because there were some doubts.

1 Like

probably, using clearance feature for interference fit is misuse make it not working since it have negative values. It usually has nearly zero value then contact between surface immediately occurs no matter is gap distance in geometry existed. Clearance is complementary with Adjust feature in CalculiX i think; an opposite behavior it did not change the mesh during analysis.

this feature can be useful in modeling effective bolt diameter for example, oversize hole and bolts, threads include in shear plane can immediately contact without modeling the threads, accelerate convergence rates and keep stress results based unmodified bolt geometry. I do much test in this regard, clearance feature shown working properly. To avoid any problems, probably by simple restrict to positive value and provide nearly zero value as default.

It should handle negative values too (positive = clearance, negative = overclosure), but of course, there can be some bugs or undocumented limitations.

We should test this and report the results on the CalculiX forum.

Speaking about bolts, Abaqus has an additional BOLT parameter for this keyword to approximate the effect of threads in contact without explicitly modeling them (it adjusts contact normal directions to be normal to faces of reference threads).

the original poster in CalculiX forum also mention a negative value is not normally used, so clearance should work in general condition at normal with positive value. As comparison Ansys use default positive 0.001 in general contact. Altair Radioss define this value when not provide is based on mesh size length and always positive in sign.

Negative values would require some additional testing. CalculiX documentation mention them indirectly:

If this option is active, the actual clearance or overlapping based on the distance between the integration point on the slave surface and its orthogonal projection on the master surface is overwritten by the value specified here.

This is also how it works in Abaqus/Standard (Explicit accepts only positive values). It could be helpful to control some interference fit simulations.

it seems to be working also in negative value as documented. Any simple example to verify?

Something like this:

Clearance.pmx (248.4 KB)

CPRESS might be irregular with this option.

yes, it’ seems working properly depending on contact definition not the clearance itself.

compared to previous example file results,

What did you change ? Just swapped master/slave or also changed contact type/properties ?

clearance feature is just simple overwrites existing gap distances value, like stiffness in contact it can be overrides also.

regarding to uneven contact stress distribution, it can be many source i.e element type selection at curved geometry, mesh intensity, misplaced of slave and master surface definition or contact type and methods used. Please repost the problem in CalculiX forum, to make it clear and sure a keyword clearance is working properly or not and resolved.

similar condition, tied contact also cannot working at some case but not to decide this keyword to be removed i think.

Tied contact on curved surface and clearences - CalculiX (official versions are on www.calculix.de, the official GitHub repository is at https://github.com/Dhondtguido/CalculiX).

Yeah, I know. I just asked what you mean by this:

and how the analyses shown in both screenshots differ.

I use the standard approach for interference fit modeling so I’m interested in the *CLEARANCE keyword mainly to check if it needs to be reported to Guido as bugged or if it can be safely added to PrePoMax and recommended to users.

for quick answer related to example file, i do switch to Mortar from Surface to surface in contact definition. It has no sensitivity in misplaced of master and slave surface. However, i’m not sure about the results since no have familiarity in interference fit analysis only press or punch trough can understand.

1 Like

Ok, I see. The analytical solution is around 145 MPa so not bad. I have to try Mortar contact more often (one just has to remember to avoid 2D models then). I’m used to contact smoothing in Abaqus - Lagrange multipliers are rarely used there.

1 Like

For me, changing to Mortar contact makes it fail to converge. Even with non-default stiffness (42000 N/mm^3) and PaStiX. Do you have other tricks for this type of contact ?

no, i’m only switch to Mortar and left all setting unchanged. Here complete analysis logs reported,

03/03/2026 19:14:12

########   Starting run step number: 1   Increment number: 1   ########

Running command: C:\CAE\PrePoMax v2.5.0\Solver\ccx_dynamic.exe Analysis-1

************************************************************

CalculiX Version 2.23, Copyright(C) 1998-2025 Guido Dhondt
CalculiX comes with ABSOLUTELY NO WARRANTY. This is free
software, and you are welcome to redistribute it under
certain conditions, see gpl.htm

************************************************************

You are using an executable made on Fri Oct 24 20:08:29     2025

  The numbers below are estimated upper bounds

  number of:

   nodes:         7980
   elements:         5920
   one-dimensional elements:            0
   two-dimensional elements:            0
   integration points per element:            1
   degrees of freedom per node:            3
   layers per element:            1

   distributed facial loads:            0
   distributed volumetric loads:            0
   concentrated loads:            0
   single point constraints:         1180
   multiple point constraints:            1
   terms in all multiple point constraints:            1
   tie constraints:            1
   dependent nodes tied by cyclic constraints:            0
   dependent nodes in pre-tension constraints:            0

   sets:           12
   terms in all sets:        23496

   materials:            2
   constants per material and temperature:            4
   temperature points per material:            1
   plastic data points per material:            0

   orientations:            0
   amplitudes:            6
   data points in all amplitudes:            6
   print requests:            0
   transformations:            0
   property cards:            0

 *WARNING reading *SURFACE BEHAVIOR: hard
          behavior is by default reduced to
          linear behavior
 *WARNING reading *SURFACE BEHAVIOR. Card image:
          *SURFACEBEHAVIOR,PRESSURE-OVERCLOSURE=HARD

 *WARNING reading *SURFACE BEHAVIOR: K must
          be strictly positive
          the following default will be used:   10500000.000000000     
          the user is advised to analyze the results
          carefully

 *INFO reading *SURFACE BEHAVIOR: the tension
       value at large clearances
       (only relevant for node-to-surface contact)
       must be strictly positive
       the following default will be used:   3.0000000000000000     
       the user is advised to analyze the results
       carefully


 STEP            1

 *WARNING reading *STATIC: a nonlinear analysis is requested
          but no time increment nor step is specified
          the defaults (1,1) are used

 Static analysis was selected

 Newton-Raphson iterative procedure is active

 Decascading the MPC's

 Determining the structure of the matrix:
 Using up to 2 cpu(s) for setting up the structure of the matrix.
 number of equations
 22760
 number of nonzero lower triangular matrix elements
 738902

 increment 1 attempt 1 
 increment size= 1.000000e+00
 sum of previous increments=0.000000e+00
 actual step time=1.000000e+00
 actual total time=1.000000e+00

 iteration 1

 Determining the structure of the matrix:

 Using up to 2 cpu(s) for setting up the structure of the matrix.
 number of equations
 22760
 number of nonzero lower triangular matrix elements
 738902

 Using up to 2 cpu(s) for the stress calculation.

 Using up to 2 cpu(s) for the symmetric stiffness/mass contributions.

 Factoring the system of equations using the unsymmetric pardiso solver
 number of threads = 2

 Using up to 2 cpu(s) for the stress calculation.

 average force= 3072.583548
 time avg. forc= 3072.583548
 largest residual force= 1104.138547 in node 2 and dof 2
 largest increment of disp= 5.733829e-01
 largest correction to disp= 5.733829e-01 in node 3676 and dof 2

 no convergence

 iteration 2

 Determining the structure of the matrix:

 Using up to 2 cpu(s) for setting up the structure of the matrix.
 number of equations
 22760
 number of nonzero lower triangular matrix elements
 738902

 Using up to 2 cpu(s) for the stress calculation.

 Using up to 2 cpu(s) for the symmetric stiffness/mass contributions.

 Factoring the system of equations using the unsymmetric pardiso solver
 number of threads = 2

 Using up to 2 cpu(s) for the stress calculation.

 average force= 3072.557701
 time avg. forc= 3072.557701
 largest residual force= 2126.627962 in node 100 and dof 2
 largest increment of disp= 5.733829e-01
 largest correction to disp= 9.223694e-03 in node 3676 and dof 2

 no convergence

 iteration 3

 Determining the structure of the matrix:

 Using up to 2 cpu(s) for setting up the structure of the matrix.
 number of equations
 22760
 number of nonzero lower triangular matrix elements
 738902

 Using up to 2 cpu(s) for the stress calculation.

 Using up to 2 cpu(s) for the symmetric stiffness/mass contributions.

 Factoring the system of equations using the unsymmetric pardiso solver
 number of threads = 2

 Using up to 2 cpu(s) for the stress calculation.

 average force= 3072.527282
 time avg. forc= 3072.527282
 largest residual force= 2405.054002 in node 102 and dof 2
 largest increment of disp= 5.733829e-01
 largest correction to disp= 9.976503e-03 in node 3768 and dof 2

 no convergence

 iteration 4

 Determining the structure of the matrix:

 Using up to 2 cpu(s) for setting up the structure of the matrix.
 number of equations
 22760
 number of nonzero lower triangular matrix elements
 738902

 Using up to 2 cpu(s) for the stress calculation.

 Using up to 2 cpu(s) for the symmetric stiffness/mass contributions.

 Factoring the system of equations using the unsymmetric pardiso solver
 number of threads = 2

 Using up to 2 cpu(s) for the stress calculation.

 average force= 3072.459441
 time avg. forc= 3072.459441
 largest residual force= 2325.210249 in node 103 and dof 2
 largest increment of disp= 5.733829e-01
 largest correction to disp= 1.086650e-02 in node 3676 and dof 2

 no convergence

 iteration 5

 Determining the structure of the matrix:

 Using up to 2 cpu(s) for setting up the structure of the matrix.
 number of equations
 22760
 number of nonzero lower triangular matrix elements
 738902

 Using up to 2 cpu(s) for the stress calculation.

 Using up to 2 cpu(s) for the symmetric stiffness/mass contributions.

 Factoring the system of equations using the unsymmetric pardiso solver
 number of threads = 2

 Using up to 2 cpu(s) for the stress calculation.

 average force= 3072.469054
 time avg. forc= 3072.469054
 largest residual force= 2147.435093 in node 104 and dof 2
 largest increment of disp= 5.733829e-01
 largest correction to disp= 1.082287e-02 in node 3676 and dof 2

 no convergence

 iteration 6

 Determining the structure of the matrix:

 Using up to 2 cpu(s) for setting up the structure of the matrix.
 number of equations
 22760
 number of nonzero lower triangular matrix elements
 738902

 Using up to 2 cpu(s) for the stress calculation.

 Using up to 2 cpu(s) for the symmetric stiffness/mass contributions.

 Factoring the system of equations using the unsymmetric pardiso solver
 number of threads = 2

 Using up to 2 cpu(s) for the stress calculation.

 average force= 3072.497821
 time avg. forc= 3072.497821
 largest residual force= 2127.653020 in node 105 and dof 2
 largest increment of disp= 5.733829e-01
 largest correction to disp= 1.006452e-02 in node 3768 and dof 2

 no convergence

 iteration 7

 Determining the structure of the matrix:

 Using up to 2 cpu(s) for setting up the structure of the matrix.
 number of equations
 22760
 number of nonzero lower triangular matrix elements
 738902

 Using up to 2 cpu(s) for the stress calculation.

 Using up to 2 cpu(s) for the symmetric stiffness/mass contributions.

 Factoring the system of equations using the unsymmetric pardiso solver
 number of threads = 2

 Using up to 2 cpu(s) for the stress calculation.

 average force= 3072.528422
 time avg. forc= 3072.528422
 largest residual force= 2126.528153 in node 106 and dof 2
 largest increment of disp= 5.733829e-01
 largest correction to disp= 9.258013e-03 in node 3676 and dof 2

 no convergence

 iteration 8

 Determining the structure of the matrix:

 Using up to 2 cpu(s) for setting up the structure of the matrix.
 number of equations
 22760
 number of nonzero lower triangular matrix elements
 738902

 Using up to 2 cpu(s) for the stress calculation.

 Using up to 2 cpu(s) for the symmetric stiffness/mass contributions.

 Factoring the system of equations using the unsymmetric pardiso solver
 number of threads = 2

 Using up to 2 cpu(s) for the stress calculation.

 average force= 3072.528441
 time avg. forc= 3072.528441
 largest residual force= 2126.618506 in node 107 and dof 2
 largest increment of disp= 5.733829e-01
 largest correction to disp= 9.204224e-03 in node 3774 and dof 2

 no convergence

 iteration 9

 Determining the structure of the matrix:

 Using up to 2 cpu(s) for setting up the structure of the matrix.
 number of equations
 22760
 number of nonzero lower triangular matrix elements
 738902

 Using up to 2 cpu(s) for the stress calculation.

 Using up to 2 cpu(s) for the symmetric stiffness/mass contributions.

 Factoring the system of equations using the unsymmetric pardiso solver
 number of threads = 2

 Using up to 2 cpu(s) for the stress calculation.

 average force= 3072.528463
 time avg. forc= 3072.528463
 largest residual force= 2126.636538 in node 108 and dof 2
 largest increment of disp= 5.733829e-01
 largest correction to disp= 9.204572e-03 in node 3774 and dof 2

 no convergence

 iteration 10

 Determining the structure of the matrix:

 Using up to 2 cpu(s) for setting up the structure of the matrix.
 number of equations
 22760
 number of nonzero lower triangular matrix elements
 738902

 Using up to 2 cpu(s) for the stress calculation.

 Using up to 2 cpu(s) for the symmetric stiffness/mass contributions.

 Factoring the system of equations using the unsymmetric pardiso solver
 number of threads = 2

 Using up to 2 cpu(s) for the stress calculation.

 average force= 3072.528470
 time avg. forc= 3072.528470
 largest residual force= 2126.637471 in node 109 and dof 2
 largest increment of disp= 5.733829e-01
 largest correction to disp= 9.204676e-03 in node 3776 and dof 2

 no convergence

 iteration 11

 Determining the structure of the matrix:

 Using up to 2 cpu(s) for setting up the structure of the matrix.
 number of equations
 22760
 number of nonzero lower triangular matrix elements
 738902

 Using up to 2 cpu(s) for the stress calculation.

 Using up to 2 cpu(s) for the symmetric stiffness/mass contributions.

 Factoring the system of equations using the unsymmetric pardiso solver
 number of threads = 2

 Using up to 2 cpu(s) for the stress calculation.

 average force= 3072.528476
 time avg. forc= 3072.528476
 largest residual force= 2126.637482 in node 110 and dof 2
 largest increment of disp= 5.733829e-01
 largest correction to disp= 9.204742e-03 in node 3777 and dof 2

 no convergence

 iteration 12

 Determining the structure of the matrix:

 Using up to 2 cpu(s) for setting up the structure of the matrix.
 number of equations
 22760
 number of nonzero lower triangular matrix elements
 738902

 Using up to 2 cpu(s) for the stress calculation.

 Using up to 2 cpu(s) for the symmetric stiffness/mass contributions.

 Factoring the system of equations using the unsymmetric pardiso solver
 number of threads = 2

 Using up to 2 cpu(s) for the stress calculation.

 average force= 3072.528470
 time avg. forc= 3072.528470
 largest residual force= 2126.636312 in node 111 and dof 2
 largest increment of disp= 5.733829e-01
 largest correction to disp= 9.204807e-03 in node 3778 and dof 2

 no convergence

 iteration 13

 Determining the structure of the matrix:

 Using up to 2 cpu(s) for setting up the structure of the matrix.
 number of equations
 22760
 number of nonzero lower triangular matrix elements
 738902

 Using up to 2 cpu(s) for the stress calculation.

 Using up to 2 cpu(s) for the symmetric stiffness/mass contributions.

 Factoring the system of equations using the unsymmetric pardiso solver
 number of threads = 2

 Using up to 2 cpu(s) for the stress calculation.

 average force= 3072.528463
 time avg. forc= 3072.528463
 largest residual force= 2126.616854 in node 112 and dof 2
 largest increment of disp= 5.733829e-01
 largest correction to disp= 9.204859e-03 in node 3779 and dof 2

 no convergence

 iteration 14

 Determining the structure of the matrix:

 Using up to 2 cpu(s) for setting up the structure of the matrix.
 number of equations
 22760
 number of nonzero lower triangular matrix elements
 738902

 Using up to 2 cpu(s) for the stress calculation.

 Using up to 2 cpu(s) for the symmetric stiffness/mass contributions.

 Factoring the system of equations using the unsymmetric pardiso solver
 number of threads = 2

 Using up to 2 cpu(s) for the stress calculation.

 average force= 3072.528441
 time avg. forc= 3072.528441
 largest residual force= 2126.521971 in node 113 and dof 2
 largest increment of disp= 5.733829e-01
 largest correction to disp= 9.204787e-03 in node 3780 and dof 2

 no convergence

 iteration 15

 Determining the structure of the matrix:

 Using up to 2 cpu(s) for setting up the structure of the matrix.
 number of equations
 22760
 number of nonzero lower triangular matrix elements
 738902

 Using up to 2 cpu(s) for the stress calculation.

 Using up to 2 cpu(s) for the symmetric stiffness/mass contributions.

 Factoring the system of equations using the unsymmetric pardiso solver
 number of threads = 2

 Using up to 2 cpu(s) for the stress calculation.

 average force= 3072.528425
 time avg. forc= 3072.528425
 largest residual force= 2126.223946 in node 114 and dof 2
 largest increment of disp= 5.733829e-01
 largest correction to disp= 9.204272e-03 in node 3781 and dof 2

 no convergence

 iteration 16

 Determining the structure of the matrix:

 Using up to 2 cpu(s) for setting up the structure of the matrix.
 number of equations
 22760
 number of nonzero lower triangular matrix elements
 738902

 Using up to 2 cpu(s) for the stress calculation.

 Using up to 2 cpu(s) for the symmetric stiffness/mass contributions.

 Factoring the system of equations using the unsymmetric pardiso solver
 number of threads = 2

 Using up to 2 cpu(s) for the stress calculation.

 average force= 3072.528413
 time avg. forc= 3072.528413
 largest residual force= 2125.627700 in node 115 and dof 2
 largest increment of disp= 5.733829e-01
 largest correction to disp= 9.203030e-03 in node 3781 and dof 2

 no convergence

 iteration 17

 Determining the structure of the matrix:

 Using up to 2 cpu(s) for setting up the structure of the matrix.
 number of equations
 22760
 number of nonzero lower triangular matrix elements
 738902

 Using up to 2 cpu(s) for the stress calculation.

 Using up to 2 cpu(s) for the symmetric stiffness/mass contributions.

 Factoring the system of equations using the unsymmetric pardiso solver
 number of threads = 2

 Using up to 2 cpu(s) for the stress calculation.

 average force= 3072.528425
 time avg. forc= 3072.528425
 largest residual force= 2125.581180 in node 116 and dof 2
 largest increment of disp= 5.733829e-01
 largest correction to disp= 9.201811e-03 in node 3783 and dof 2

 no convergence

 iteration 18

 Determining the structure of the matrix:

 Using up to 2 cpu(s) for setting up the structure of the matrix.
 number of equations
 22760
 number of nonzero lower triangular matrix elements
 738902

 Using up to 2 cpu(s) for the stress calculation.

 Using up to 2 cpu(s) for the symmetric stiffness/mass contributions.

 Factoring the system of equations using the unsymmetric pardiso solver
 number of threads = 2

 Using up to 2 cpu(s) for the stress calculation.

 average force= 3072.499840
 time avg. forc= 3072.499840
 largest residual force= 2309.249595 in node 118 and dof 2
 largest increment of disp= 5.733829e-01
 largest correction to disp= 9.352438e-03 in node 3680 and dof 2

 no convergence

 iteration 19

 Determining the structure of the matrix:

 Using up to 2 cpu(s) for setting up the structure of the matrix.
 number of equations
 22760
 number of nonzero lower triangular matrix elements
 738902

 Using up to 2 cpu(s) for the stress calculation.

 Using up to 2 cpu(s) for the symmetric stiffness/mass contributions.

 Factoring the system of equations using the unsymmetric pardiso solver
 number of threads = 2

 Using up to 2 cpu(s) for the stress calculation.

 average force= 3072.490941
 time avg. forc= 3072.490941
 largest residual force= 1178.495054 in node 6 and dof 2
 largest increment of disp= 5.733829e-01
 largest correction to disp= 9.667711e-03 in node 3786 and dof 2

 no convergence

 iteration 20

 Determining the structure of the matrix:

 Using up to 2 cpu(s) for setting up the structure of the matrix.
 number of equations
 22760
 number of nonzero lower triangular matrix elements
 738902

 Using up to 2 cpu(s) for the stress calculation.

 Using up to 2 cpu(s) for the symmetric stiffness/mass contributions.

 Factoring the system of equations using the unsymmetric pardiso solver
 number of threads = 2

 Using up to 2 cpu(s) for the stress calculation.

 average force= 3072.557695
 time avg. forc= 3072.557695
 largest residual force= 0.000000 in node 7766 and dof 1
 largest increment of disp= 5.733829e-01
 largest correction to disp= 9.722090e-03 in node 3786 and dof 2

convergence

 the increment size exceeds the remainder of the step and is decreased to 0.000000e+00

 Using up to 2 cpu(s) for the stress calculation.


 Job finished

________________________________________

Total CalculiX Time: 95.269923
________________________________________


Process elapsed time:       96.226 s

Apparently, that’s the key difference.

With ccx 2.22:

With ccx 2.23:

image

I’m glad that Mortar contact has improved convergence in 2.23.

1 Like

indeed, all feature in CalculiX being improved in each release and let available in PrePoMax menu also. Unexpected results and behavior are different things; it can be user setup or solver problems and limitation probably.

btw, the case of interference fit seems less complicated and it did not require penalty contact. As my problem reported in CalculiX forum, tied contact with some distance shown shrinking or expanding thus generate stress and displacement.

1 Like

an additional, since tied contact and clearance with some distance can make the parts shrinking so it can be useful also to modeling prestressed bolt more straight forward.