Chain Link Tutorial Mesh and Solve Issues

Hi, I am going through the tutorial series by FEAnalyst on YouTube and I have run into an issue with the chain link tutorial.

First issue, I am not able to get the mesh refinement to work. I have applied the local mesh refinements, however, it does not seem to be solving with the refinements. I do not see any errors when I am solving for the mesh.

Additionally, I attempted to solve the simulation with this coarser mesh and it solves with failures. When I check the results, it seems as if the force is applied in the incorrect direction because the two components move away from each other.

Has anyone run into this issue before or have any ideas on how to troubleshoot this?

Thanks!

Please share the .pmx file. You can try reducing the contact stiffness and even replacing force with prescribed displacement if it still doesn’t work. Otherwise, the solver may struggle with force-controlled contact problem having initial rigid body motion before contact is properly established. Sometimes it works in CalculiX and sometimes doesn’t. It may also depend on the CalculiX version.

Another user also struggled with this case in FreeCAD (although there the main issue was likely the need to have a gap to avoid generating a continuous mesh):
https://forum.freecad.org/viewtopic.php?t=94244
https://forum.freecad.org/viewtopic.php?t=94030

I had a quick go at this and have attached my attempts for your entertainment. One suggestion is to use position control -rather than force control (at least in the first instance).Often this appears a more stable approach to deal with contact analysis.

PPmaxChainLink.pmx (2.8 MB)

One question I like to ask my learned friends in this community is one about the use of the “NLgeom” switch in contact analysis like this. I thought all contact analysis would be non linear?? I am surprised these analysis even runs with non linear affects switched off, I imagined the contact definition may have force the analysis to be non linear. What is the validity of a contact analysis with NLgeom tuned off?

Indeed local refinement is different now:

than before:

Those are different kinds of nonlinearities. Contact or plasticity already make the analysis nonlinear, regardless of Nlgeom. With Nlgeom you have an additional source of nonlinearity and it often leads to non-convergence in CalculiX. Of course, geometric nonlinearity might be needed in some problems with large deformations/rotations, instabilities, load stiffening and so on.

1 Like

The simulation solves with the prescribed displacement, thank you for the recommendation.

I have shared the model with the force load and the prescribed displacement if you would like to review still and give me any ideas on why the model isn’t solving with the force applied. Thanks!

Tutorial 14 - Displacement Load.pmx (2.6 MB)

Tutorial 14.pmx (1.6 MB)

It works with a mesh generated in old PrePoMax version (where Netgen refinement was working as shown in the video):

Chain link old mesh.pmx (1.8 MB)

You could also try obtaining a similar refinement with Gmsh. It just shouldn’t be too coarse.

1 Like

Thank you for sharing, this modeled solved.

How are PrePoMax files storing the geometry and mesh when they are shared? I was able to open the model you shared but I am not able to edit the mesh or view the original geometry in the Geometry tab, but I am able to solve and review the results in the Results tab.

Am I able to edit this mesh or add more to the geometry of this file to compare to the original results if I wanted to?

Hello, I have the same doubt. I was checking this post (Link), but I could not find the thicken shell mesh in the Geometry tab, only in the History.

That’s actually because I used mesh created in an old version of PrePoMax and imported to the new one. In such a case, there’s no geometry (just the imported mesh) so the Geometry tab is empty. You can’t edit this mesh too, because it has no associated geometry.

You would have to generate a similar mesh in the new version of PrePoMax where local refinement with Netgen doesn’t work so well. Tetrahedral Gmsh algorithm should work better.

This tool is available in the Geometry tab if your model includes geometry (not just imported mesh) and in the FE Model tab for other cases. Check the documentation: https://prepomax.fs.um.si/wp-content/uploads/2026/03/PrePoMax-v2.5.0-manual.pdf

1 Like

I was able to get the mesh to refine in the area of contact using the Tetrahedral Gmsh, but now it is propagating through the entire top portion of the components.

Also, I am now getting this error when I try to solve the simulation:

Yeah, Gmsh has different growth. You could try partitioning the model to get more localized refinement. For example:

But this case is tricky because depending on the mesh it may fail to establish contact leading to initial RBM and non-convergence when force control is used instead of displacement control.

Negative jacobians are usually due to enabled adjustment in tie constraints or contact pairs.