Convergence Issue - probably because of contact definition

Hello everyone, I’m a new user to prepomax and calculix. I am running a case where you have a softer body pushed against a harder one, forming an indent. The following figure gives a good idea about the geometry (unfortunately I’m not allowed to share the entire assembly).

The green line indicates that body A is fully fixed on that face, the red line shows the bottom surface of part B which is given a displacement of 5um upwards. Note that all the other DoF of the red surface is set to zero except for the veritcal one.

The following is the output shown by the solver

 iteration 9

 Number of contact spring elements=1251078

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

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

 Factoring the system of equations using the symmetric pardiso solver
 number of threads = 10

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

line search factor=1.000000

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

 average force= 0.085053
 time avg. forc= 0.085053
 largest residual force= 950.260792 in node 1566415 and dof 3
 largest increment of disp= 0.000000e+00
 largest correction to disp= 0.000000e+00

divergence allowed: number of contact elements stabilized
 no convergence

 iteration 10

 Number of contact spring elements=1251078

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

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

 Factoring the system of equations using the symmetric pardiso solver
 number of threads = 10

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

line search factor=1.000000

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

 average force= 0.085053
 time avg. forc= 0.085053
 largest residual force= 950.260792 in node 1566415 and dof 3
 largest increment of disp= 0.000000e+00
 largest correction to disp= 0.000000e+00


Kill command sent by user.

Node 1566415 lies on the red surface. The figures given below is a snapshot of the contact pair

Body B is PEEK and body A is Stainless Steel. I use linear pressure overclosure surface interaction and the value of the slope was set to 50 times yield strength of PEEK. The element sizes of the mating surfaces are also set to match with each other. Even after more than 15 iterations, the residuals remain the same. Can someone point me to the right direction to troubleshoot this??

Thanks in advance!

A few general tips (for more detailed advice, I would have to play with the model - perhaps you could share it privately or at least the key part of it?):

  1. Use first-order hexahedral mesh if possible - the geometry seems simple enough to do this, but you need to choose one of the available hex meshing methods.
  2. Watch out for element distortion due to indentation. Refine the mesh locally if needed.
  3. Follow the master-slave assignment rules (most importantly, master should be coarser and stiffer).
  4. Try reducing the contact stiffness. I recommend this approach: Snap-fit contact snagging problem - #17 by JuanP74 - Analysis issues - CalculiX (official versions are on www.calculix.de, the official GitHub repository is at https://github.com/Dhondtguido/CalculiX).
  5. Use hyperelasticity instead of linear elasticity if strains are higher than around 5%
  6. Try simplifying the model, e.g. disabling Nlgeom.

Do you have plasticity too ?

@FEAnalyst Thank you for the prompt response.

I can share it privately, but I’m struggling to find a way to do that here on this forum.

  • There are some other components connected to this assembly, which can’t have hex mesh due to their geometry. But I’ll try to do so for A and B - thanks
  • Yes, I’m planning to add a small fillet at the sharp corner on fig 2 to get rid of stress singularity and refine the mesh further in my second iteration. But the “maximum no. of contact elements stabilised” message makes me want to hold this off till this issue is fixed.
  • The master is indeed stiffer, but the element sizes are pretty much similar.
  • Yes, I tried using the averaged E over characteristic length as the K value. But the solution still doesnt converge. The characteristic length that I took here is the circumference of the protruding ring in part A.
  • For the last two points, I’ll make relevant changes and try running the case. For the former I think I’d have to edit the calculix files by hand, I believe. And for the latter, I’ll assign elastic materials to all bodies, turn NLGEOM off and run the solver. I’ll update my findings as soon as I get the results

Yes I do have plasticity. PEEK is assigned a E modulus of 4GPa and yield strength of 110MPa. Plastic stress strain data is defined from that point onwards.

1 Like

I will send you a private message with instructions.

Perhaps you could mesh some parts with hex elements and connect them to tet mesh parts using tie constraints.

Also, use planar or even axial/cyclic symmetry if possible, at least in the test model consisting only of the key parts.

Maybe try reducing it further, even by a few orders of magnitude, it often helps.

The characteristic length is usually the average element size in the contact region.

Yes, hyperelasticity needs custom keywords (PrePoMax has Keyword Editor), but defining it is rather easy if you figure out the constants (they can be determined from linear elastic constants for the simplest models).

1 Like

there’s Mortar contact options available for switching, known good at case of edge to surface also.

Mortar can help if more accurate contact results without penetration are needed, but it’s usually way worse for convergence, especially in CalculiX 2.22, which is the one provided with PrePoMax.

1 Like

this case is specific to sharp edge-to-surface contact condition as mentioned, previous case of snap fit i test is fails using old existing contact methods but mortar succeed without any issue.

1 Like

There’s also node to surface formulation commonly used in Abaqus to supplement surface to surface contact when such edge to surface interactions are modeled. Unfortunately, CalculiX doesn’t allow mixing contact formulations.

1 Like