Interference fit implementation

Good morning,

I would like to know if there is a way to make an interference fit in PrePoMax; for example, in order to simulate the stress of an inner cage of a bearing on a shaft.

Thank you.

This would be very useful but currently, it’s not implemented. In fact, CalculiX doesn’t support it in the form of keywords, it’s necessary to use the presfit option in GraphiX (CalculiX’s native pre- and postprocessor) which utilizes MPCs to move the nodes. Here’s a discussion about this feature on CalculiX forum: Modeling interference fit (shrink fit) - CalculiX

And a video with an example: Interference Fit Analysis using Calculix || CAE4U || Finite element Analysis || GMSH - YouTube

So to implement this in PrePoMax it would be likely necessary to add automatically generated MPCs like those used by GraphiX but MPCs are not yet supported in PrePoMax as well.

1 Like

We recently used an axisymmetric model to check an interference fit with PrePoMax (file attached). We modeled the parts with the parts overlapping by the interference amount. We then used a linear surface interaction at the interface.

We haven’t done enough testing to confirm this will give accurate results with other materials or geometries, but in this case the radial and tangential stresses at the interface closely matched calculations from an in-house spreadsheet we have used successfully for several years.

Two_Piece_A.pmx (333.0 KB)

That’s interesting, I thought that contact algorithms in CalculiX can’t handle interference fits correctly, as you can see in the referenced thread on ccx discourse group. I used a simple example with two cylinders and compared the results (CPRESS) with the same model solved in Abaqus and with the analytical solution. Maybe contact settings in CalculiX have to be changed. Thank you for sharing the file, I will take a closer look at it and try to do some additional tests.

Thank you for the hint. For more complex geometries, for example ring, is there a way to simulate the interference like that geometry? We should define a ring of a diameter 0.05 smaller than the shaft, then use a linear surface interaction. Does it might work?

I checked your file and apparently the trick that makes it work is that you are making use of thermal expansion. That’s the traditional approach commonly used in the past in FEA when interference fit algorithms were not available. As I’ve mentioned, I was trying to realize such a simulation with an approach known from Abaqus - interference fit option for contact which automatically adjusts the nodes with strain generation (as opposed to strain-free adjustment used for example with tie constraints). However, it seems to be impossible in CalculiX without using GraphiX.

Thank you for looking into this. In the past with other software I have used thermal expansion to simulate an interference fit. In this case the “zero temperature” for thermal expansion of the materials is the same as the initial condition specified (70 F), therefore there should not be any actual thermal expansion. I just removed the thermal expansion coefficients and the initial temperature, and it still appears to solve correctly.

Then I’ll try with an axisymmetric model like you did. With plane strain, I got completely incorrect results. Maybe I’ve encountered some bug.

It is interesting, because we also ran the analysis with a quarter model and symmetry on the cut surfaces and got the same results. I’m starting to wonder if I set things up incorrectly and it just happened to work.

What kind of keywords are created by GraphiX in order to simulate presfit? Do you also know how they work in the background?

I have very little experience with GraphiX but I managed to use this command (send dep indep abq areampc presfit sx where x is the distance) for a simple test case. It generates two files - one with .bou extension (with *BOUNDARY keywords) and one with .equ extension (with *NODE and *EQUATION keywords). Their syntax is the same as that of .inp files. Of course, I can share them here if needed. According to the documentation, the nodes in the dep set are moved by the specified distance in the normal direction with respect to the indep set. I checked the aforementioned files and BCs refer to control nodes defined in the .equ file. Those nodes are used in equations together with the nodes from the defined sets.

The interface fit should then be a separate analysis step in which the nodes are moved from the initial (slave) to the final (master) position using BCs. And then, a second step with contacts is added.

PrePoMax could compute the needed displacements based on the shortest distance between the slave nodes and master elements.

Right, implementing this as a step type seems to be a good idea. In Abaqus it’s just an option for contact definition but Abaqus has a single keyword for that and CalculiX requires the aforementioned complicated workaround.

In addition to automatically calculated distance, I would also add an option to specify the distance manually.

After some tests and discussion with Guido, it turned out that interference fit can be resolved using default contact settings (of course without the ADJUST parameter). I just uploaded a tutorial showing this: PrePoMax (CalculiX FEA) - Tutorial 29 - Interference fit (press fit / shrink fit) - YouTube

5 Likes