Bolt and washer contact not converging

Good evening everyone,
lately I’ve been struggling a lot with the convergence of the analysis attached in the .pmx file. It consists of two aluminium plates held together by a steel pre-loaded bolt on G10 busing. There are three different Yound moduli involved, very dissimilar from each other… The goal is to understand how much the G10 washers (and sleeve) squash under a pre-tension load of 50 kN.

I tried adjusting the Linear contact parameters many times, following the specifide hints but nothing seems to work. Even gradually applying the load seems to have no effect.

I also enforced BCs on the the outer edges of the sleeve, washers and bolt to prevent Z rotaion.

I’m well stuck, may anyone have a look at it?
modello.pmx (1013.6 KB)

Thanks a lot,
Giuseppe.

  1. Did you try with displacement-controlled preload ? This would be much better for convergence. You would just have to iteratively determine the displacement magnitude based on the obtained force.
  2. Applying BCs to rotational DOFs has no effect for solid elements.
  3. Did you try without Nlgeom ?
  4. Your contact stiffness is very high. Try with much lower values estimated using the approach shown here: 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. Did you try without friction ? It often has a negative impact on convergence.
  6. You could also try changing some linear contacts to tied contacts or (even better) tie constraints, at least for debugging.

In short words, I would first switch to displacement control and tie everything to see if it works. Then change tied interfaces to contacts one by one to see which ones are problematic. But maybe just using displacement control will help. But don’t forget to reduce the contact stiffness accordingly.

See the changes here: modello mod.pmx (1024.0 KB)

2 Likes

I’m no expert, but in my opinion, remove all loads. Remove contact and make TIE connections. Simple supports and loads. Disable nonlinear calculations. If it doesn’t work, improve the mesh. You have a lot of contacts. In my opinion, further divide the contact surfaces so that one master surface has one slave surface.

K=100000000000 N/mm³, Sinfinity=20000000 MPa?

Start with a soft contact or the default.

To simplify, your model doesn’t work for simple statics. I had to make a lot of changes to get the test to work. The mesh has large variations in stiffness.

It runs if you just use displacement-controlled preload (much better for convergence) and lower contact stiffness (at least without Nlgeom), as I did in the uploaded modified model. Even the default contact stiffness is usually too large. Adding partitions for contact pairs or tie constraints is definitely a good, but not necessarily aids convergence.

1 Like

Thanks to both!
What actually I could do is tie the upper washer with the sleeve, since in a real application they would be parts of a unique lathe machined component. I was still using version 2.4.0 , is it possible with the latest to build a revolved mesh for compund parts? That could help decrease the dof of the model (i guess).
Would it be possible to run the analysis using axis-symmetric elements?

No, compound parts can be used only for transfinite meshing (requires all subvolumes to have 5/6 faces with 3/4 edges each).

Sure, you can try that. Or cyclic symmetry. They will reduce the number of DOFs to apply. However, 2D elements often cause various issues/bugs in CalculiX so they have to be used carefully and sometimes you end up with a 3D model anyway (it can be just a small sector, though).

1 Like

One thing I’m realizing now is that the pretension stress might be off. The 50 kN on a 20mm diameter, for a length of 40mm should cause an elongation of 0.032mm, with E=197 GPa and elongation calculated as dx = FL / (EA)

When checking the von Mises stress i only read 0.04 MPa:

Am i missing something? Checking the U3 displacements of the 2 bolt halves, the sum returns the 0.032 displacement preload… the top moves downwards -0.01969 mm and the bottom moves upwards 0.0123 mm.

What did you change to make it converge ? Maybe the model is overconstrained now (possibly if you replaced some contacts with tie constraints). Check the pretension direction and value (e.g. using the section print feature). Also check contact outputs (such as CPRESS) to make sure that contact is properly established.

As for the axisymmetric model, pretension load is not supported there, but you could use thermal expansion instead.

Bolt modello axis.pmx (580.5 KB)

1 Like

I touched nothing! At first i run your modified model, then another with the tie constraint replacing the contact pair upper washer/sleeve. In both cases the von Mises stress is far off.
The FZ force is:

I assume 3.52 N is the computed preload. FX and FY are both almost 0.

It has displacement-controlled preload, but with arbitrarily selected displacement magnitude. It still needs some iterations to get the desired force.

Do you take symmetry into account when applying preload ?

1 Like

Yes, i changed the arbitrary 0.5mm to the 0.032 value which should generate the 50000 N preload. This displacement value is not sensitive to symmetry because in the formula dx = FL / EA using F/4 (since 1/4 of the bolt is modelled) and A/4 still gives the same dx

1 Like

Yeah, I meant the case where you apply (or at least applied) force directly.

If you can merge (compound) or tie some parts, it may converge more easily.

Ideally, the bolt could also be meshed with hex elements (if you split it into more subvolumes before compounding). This would even eliminate the need for prismatic boundary layer and improve the CPRESS results at the contact interface. There’s a large difference in stiffnesses of these two contacting parts (G10 has E=10 MPa) so contact stiffness needs to be adjusted accordingly.

Hi guys - I had a little play and the first thing i noticed was the .stp model had several regions where parts over lapped. I forced a small separation between parts, made an effort to quad mesh all parts and it all ran smoothly. A quick test I have found useful before is to run the analysis after removing the load (in this case the pre tension) and see if the model has any stress or deformation

qb2.pmx (4.8 MB)

1 Like

This is still displacement-controlled preload with 0.5 mm. Meshed outside of PrePoMax, but with proper volume partitions, transfinite Gmsh could still be applied to the bolt. For other parts, revolved mesh would suffice. Unless the axisymmetric approach is used.

However, stiffness of the G10 material is now 10000 MPa instead of 10 MPa. So the OP should have a closer look at the material properties before proceeding with the analysis.

Small overlaps could be fixed by adjustment in contact/tie constraints assuming that the mesh is good.

Here’s a completed axisymmetric model with preload via thermal expansion whose initial version I shared yesterday (I wasn’t able to finalize it yesterday because selection doesn’t work correctly on some laptops):

I also had to change E for G10 to 10 GPa.

Bolt modello axis 2.pmx (627.3 KB)

1 Like

Of course, this also changes the recommended contact stiffness calculated as 0.5*(E_stiff+E_less_stiff)/L_char:

Convergence:

1 Like

Too bad it’s not possible to select interior surfaces/edges. It would allow defining section print for the compound bolt:

1 Like

The simplest model:

Bolt itself can also work with force preload. And have a transfinite hex mesh (no need for prismatic boundary layer then):

1 Like

I’ve tried also another simplified method, which is also giving problems, but i don’t think they are related to the analysis itself.

I’m concentrating only on the sleeve and washer, the 0.1 shortening of the bolt is divided into 2 displacement BC, one shiftting downwards and the other upwards by 0.05mm the top and bottom concant surfaces of the washers.
The presence of the flange is substituted by compression only supports.
The analysis runs in less than 5 seconds, but as soon as i open the result file PrePoMax crashes instantly. Does it also happen to you?
solo rondelle.pmx (1.6 MB)