Modelling the crushing of an aluminium can

Hi, I recognise that Calculix is not ideal for modelling crushing due to needing to use an explicit dynamic step. However, as part of a project I need to compare the simulation abilities of various different FEA softwares, so would like to try and get the best result I can from PrePoMax.

The scenario is this: crushing an aluminium can, to half its height, between two plates. The result I need is an animation of the can being crushed and a graph plotting the force that the can undergoes against time.

I’m seeking advice on how to set this up: whether it would be using a static step or trying to use a dynamic step; including which sections to use, how to potentially set up a self-contact for the can (I haven’t managed to do this yet); or even what to set up to then export the file to OpenRadioss (this is a last resort).

As much detail as possible would be appreciated as I’m still very new to FEA.

And thank you in advance for any advice given!

Check this example, it’s exactly what you are looking for: Soda_Can_Buckling · main · Matej Borovinšek / PrePoMax Models · GitLab

But in short words:

  • normally, explicit dynamics procedure would be perfect for that, but it’s highly underdeveloped, limited and very slow in CalculiX
  • implicit dynamics procedure in CalculiX often struggles with convergence so I would just use the static step (assuming it’s a quasi-static problem anyway)
  • self-contact is handled by just selecting the same surface as master and slave in a contact pair (there are a few discussions about this approach on the CalculiX forum)
  • if you want to try OpenRadioss at some point, there is a converter from CalculiX’s .inp: Tools/input_converters/inp2rad at main · OpenRadioss/Tools · GitHub
  • normally, shell elements would be the best choice for the thin-walled can, but they have many limitations in CalculiX (see this: Known CalculiX limitations) so converting them to solids with the Thicken Shell Mesh tool might be a good idea
  • as you can see in the attached example, the usual way to model such nonlinear buckling problems is to use a mesh with an imperfection (e.g. from a linear buckling analysis: https://www.youtube.com/watch?v=Jq2mKRZmIsQ)

Thank you! The github example is very useful, and I appreciate you laying the steps out clearly.

Apologies if this is the wrong forum for this question, but would OpenRadioss be able to simulate the crush without an imperfection in the shell mesh? And if so, would the settings needed to set the step up for a perfect can be the same as the imperfect can settings (using PrePoMax, before converting the inp)?

The idea of including imperfections in non-buckling analyses is independent of the software. With ideal mesh, you will likely get overestimated critical load and may not jump into the right equilibrium path.

Check the EnterFEA blog posts on this topic. For example this one: Imperfections in buckling design - Enterfea

But of course, it might be a good idea to try without imperfections and then with different imperfections to see how the model behaves.

Hi, I have managed to recreate the can set up using my own geometry and going through the steps to add the correct constraints, however when I first ran the simulation I modelled the can body as shells because it was struggling to mesh the solid parts and when I ran the simulation it didn’t end up deforming anything. Have I missed a constraint or contact?

I then also tried running the scenario with the can body modelled as a solid (using thicken gmsh), and this throws up a non-positive jacobian error, in other forum questions based on this the error seemed to be caused by the ties having adjust set to “Yes” but I have these set to “No”. Any ideas as to what may be causing the error?

Overall would you advise that I run the simulation using shells or solids? Do either provide specific benefits or disadvantages?

Could you share the file (can be via private message if you want) ? It looks like missing or incorrectly defined contact.

Maybe adjustment enabled in contact ? Otherwise, it can be just incorrectly generated (thickened ?) mesh.

Shell elements are normally always recommended for thin-walled parts (unless their plane stress state is insufficiently accurate or there are other special reasons to use solids). But, as I’ve mentioned above, they have many limitations and issues in CalculiX. That’s because they aren’t true shell elements - they are internally expanded to solids. This expansion is nonlinear and often causes convergence issues and other problems listed in the thread linked above.

You can find some tips about shell modeling on this FreeCAD wiki page: https://wiki.freecad.org/FEM_Geometry_Preparation_and_Meshing#Shell_models