Car wheel rim finite element analysis

Targeted SesamX version: V2021_04

This tutorial showcases how to create and analyze a finite element model of a car wheel rim. The step file describing the wheel rim geometry is the starting point of this tutorial. We will detail how to simplify and mesh the geometry, how to create a SesamX model (assuming a linear static deformation), and finally how to visualize the results. You can find all the relevant data to follow this tutorial at the end of this page. The model, along with the associated loading and boundary conditions, is showcased in the following picture.

The rim is clamped on its bolt holes. And a 3000 N vertical load is distributed over the rim surface (as depicted above). However the distribution is not uniform, but it is given by the following formula: $$f(x) = \cfrac{1 + \cos\Big(\cfrac{x}{0.09} \cfrac{\pi}{2}\Big)} {2}$$

For the material, we will use the aluminum A356, whose mechanical properties are:

  • Young's modulus: $ E = 72.4 \ GPa $
  • Poisson's ratio: $ \nu = 0.33 $

This tutorial proposes an effective workflow to pre-process, create the SesamX model and post-process the results. This workflow relies on the following software:

  • FreeCad: used to prepare the geometry,
  • Salome: used to build the mesh and visualize the results,
  • SesamX: used to create the model and perform the simulation.

Unlike Salome and SesamX, FreeCad is not bundled with the SesamX package, and you need to download and install it on your own (following the link provided previously).

The following picture describes the workflow exposed in this tutorial.

The first step of this tutorial is to prepare the geometry for meshing. The wheel rim that we are about to manipulate was designed by Henry from the GrabCad community.

The following video showcases how to prepare the geometry using FreeCad. First, the geometry is imported into FreeCad and refined (cleaned), as to make sure that there is no remaining duplicated vertices, edges or faces that could alter the subsequent meshing process. Then the geometry is simplified, and the rim outer surface is cut in order to match the surface on which the loading condition will be applied.

As illustrated in the video, we use parts in order to organize the FreeCad tree. When preparing geometries for meshing, a best practice is to always keep a clean copy of the initial geometry. This way we can visually notice the differences between the prepared geometry and the initial one. Besides it brings more flexibility if we want to assess multiple geometry simplifications at the same time.

To prepare for the load application, we need to have access to the sub-shapes exactly delimiting the load support. To create these sub-shapes, we draw the cutting lines, then extrude them, and finally perform the cut. Depending on what sub-shapes you need, you can use whatever method as long as you are getting the sub-shapes you are looking for.

Next come the mesh generation. The following video showcases how to mesh the prepared geometry using Salome. First, the geometry is imported into Salome. Then the mesh is built and exported to a med file.

As can be seen, during the step import Salome asks for unit conversion from millimeter to meter. Indeed, Salome recognizes that the step file was encoded in millimeter. If you instruct Salome to perform the unit conversion, then the mesh will subsequently be exported in meter. Otherwise, the mesh will be exported in millimeter. Because we are not playing with nothing more than length units when building the mesh, we could have stayed with millimeter without risking to break the consistency of the units implied. However, we chose to convert everything to meter to avoid potential conflicts.

We chose to use quadratic tetrahedrons over linear ones to build the mesh. Indeed, linear tetrahedrons are known to lock (similarly to shear and membrane locking as discussed in the shell finite element article), and must be avoided as much as possible. However, if you are running SesamX under a free license, you are restricted to 10000 nodes (where the mesh constructed here is about 50000 nodes). In this case, to go on with this tutorial you can uncheck Second order in the meshing parameters. The resulting mesh will be much lighter in terms of nodes.

As already discussed in a FEA meshing tutorial, by default, when building 3D meshes Salome also defines 1D and 2D elements. To remove these elements afterwards, we propose to create a group containing all the 1D elements, and then remove this group with its content (similarly for the 2D elements).

Eventually, instead of defining the groups uniquely at the mesh level, Salome enables the group definition at the geometry level also. Which is more practical in our situation where we already have created the underlying sub-shapes for the load and boundary condition supports. This way we can build the finite element groups in a straightforward manner.

Do not worry about the visual representation of the quadratic 3D faces in the Salome viewer. Salome displays these faces badly, however the underlying mesh is well formed.

We are now ready to write and run the SesamX job working on the previously exported mesh. The complete input file with the relevant details about each function call is provided here. Let's summarize its content.

  1. SET-DATABASE: we define the path to the database that SesamX will create.
  2. CREATE-MODEL: we define the new model WHEEL_RIM in this database.
  3. IMPORT-MED: we create mesh data and selections on the model by importing the mesh and groups from the .med file (built with Salome).
  4. CREATE-MATERIAL: we create the material to apply on the elements (the aluminum A356).
  5. SET-PROPERTIES: we set an isoparametric solid property on the elements.
  6. CREATE-CONSTRAINT: we create the boundary condition.
  7. CREATE-LOAD: we create the distributed loading condition.
  8. SOLVE: we compute the linear static response of the rim under the prescribed loading and boundary condition.
  9. OUTPUT-IMAGE: we ask SesamX to compute and output fields data into an output database. In this tutorial, we ask for the loading case, the boundary condition, the displacement field, the stress field and the strain field.
The paths provided in this input can be absolute or relative to the input file folder.

If you are looking for more explanations, you can consult the documentation about SesamX input files formatting.

But before we submit the SesamX input file, let's organize our directory structure. Following the previous steps of this tutorial, you should end up with a directory (let's call this directory “Fem”) containing the following files and sub-directories :

The “outputs” sub-directory is empty at the moment, we will use it to store the SesamX output files.

To submit the SesamX input file, you can open a command prompt in the “Fem” directory and enter the following command (adapted to your directory structure):

path_to_fem>path_to_sesamx\runSesamX.bat -o .\output 704_WHEEL_RIM_ANALYSIS.sx

As an example, in my situation my command prompt is (because I installed the SesamX folder next to the “Fem” folder):

L:\WRK\SesamX\Fem>..\SesamX\runSesamX.bat -o .\output 704_WHEEL_RIM_ANALYSIS.sx

After completion, we can check the content of the output folder. 3 files were created by SesamX:

  • 704_WHEEL_RIM_ANALYSIS.out: text file describing what were the actions performed by SesamX. You should always check this file to see if everything was processed correctly.
  • 704_WHEEL_RIM_DATABASE.h5: the SesamX database that we asked SesamX to create.
  • 704_IMAGE_WHEEL_RIM_ANALYSIS.h5: the image database filled with the output data that we asked (loading case, boundary condition, displacement, stress and strain fields).

Eventually, the following video showcases how to visualize the results of the previous analysis using Salome and the SesamX viewer extension.

As illustrated in the video, the SesamX output database can be directly imported into Salome using the SesamX viewer. This viewer allows us to select the image we wish to generate and control how it is displayed.

As for the geometry and the mesh, the images generated are organized along a tree structure. Hence, it enables an efficient visualization management where we can hide / show, and keep all the relevant images loaded in the same Salome session.

  • tutorials/car_wheel_rim.txt
  • Last modified: 2023/05/31 20:48
  • by Ali Baba