Open source FEM – shell calculations

I often read that free programs for FEA are good, but not for shell calculations. That’s where you need a proven, paid solver. In this article I want to check this, “Are open source programs (Code Aster and Calculix) suitable for shell calculations?”.

Shell elements

Shell elements are a type of finite element used in 3D FEA analysis to model thin, flat or slightly curved structures such as plates, shells, membranes. They consist of flat or curved surfaces and their thickness is usually neglected or very small compared to the other dimensions of the element. These elements are characterised by their ability to carry membrane stress or bending loads. In 3D FEA analyses, shell elements are often used to model thin-walled structures e.g. vehicle bodies, pressure vessels. Solid elements may not accurately represent the stress and strain distribution in thin-walled and flat structures, so shell elements should be used in such cases. In many thin-walled structures, in order to obtain a satisfactory solid mesh, a large number of small elements would have to be used (in order to maintain an appropriate aspect ratio depending on the thickness). The shell mesh is free of this.

In my opinion (and not only mine), not using shell elements is one of the most common mistakes in FEA analysis. When I see tutorials where someone models a thin structure using solid elements (tetrahedral with 1 layer of elements after the thickness) I think “xD”.

Load case

To check our solvers, we will use the case “Hemispherical shell point load” with a known solution. The geometry is ¼ of a hemisphere with a radius of 10m and a wall thickness of 0.04m. Linear material law, Young’s modulus 68 250 MPa Poisson’s ratio 0.3.

On the walls of the symmetry, we apply appropriate displacement boundary conditions (blue and green lines). At the top point block vertical displacements (yellow). At the lower points we apply forces of 2kN as shown in the figure.


The expected result is a displacement of 185 mm in the X direction where the red force is applied. To verify the Salome-Meca and PrePoMax programmes, we will also compare the results with a paid FEA programme (top level). We will check several mesh sizes and the influence of the mesh order on the result.

You can see from the graph that the paid program did by far the best (independent of the order of elements). Code Aster in Salome Meca for the second element row has correct results, slightly worse for the first element row version. Calculix in PrePoMax completely failed in this task achieving a result of 2 mm. The asterisked version skipped the rotation constraints on the symmetry conditions. It improved the result, but it is not the same calculation case. Why did Calculix perform so badly?

Calculix and shell simplification.

The answer is available in the Calulix documentation. “In CalculiX, quadratic shell elements are automatically expanded into 20-node brick elements.” This solver does not have proper shell elements but replaces them with solid elements (brick). By default, solid elements do not have rotating boundary conditions. Calculix allows their use, but as you can see in this case it does not work properly. In some cases this may work (e.g. calculations with an asterisk) but in many cases it may not be sufficient. As I wrote in the introduction, not using shell elements where it should be done gives bad results, so if Calculix only supports pseudo-shells and makes solids from them then it is not suitable for calculating thin-walled structures.


Very interesting results. In part the myth that free solvers are not suitable for shell calculations is true (Calulix), in part I was able to bust it. This time we only checked displacements, which are the easiest parameter to calculate. I am curious to see how the open solvers will perform when I prepare an example where we compare the calculated stresses. There will be tutorials on the blog and youtube soon on how to do the simulations from this article. Thank you for reading and visiting my blog and see you in the next articles. Write in the comment an idea of what I can check or calculate in open source FEA programs.

Similar Posts


  1. Greetings! Very useful advice in this particular article! Its the little changes that will make the biggest changes. Thanks for sharing!

  2. It seems to be better to post in official CalculiX discussion when someone found an error, bugs, disadvantages, large discrepancy, or inconsistency of results. Probably, there’s something wrong in the model.

    As can be seen, the model using symmetry and lead to large discrepancy. Did edge rotational restraint being properly defined?

Leave a Reply

Your email address will not be published. Required fields are marked *