Fill out the form to download

Required field
Required field
Not a valid email address
Required field


Advanced Tutorial: Thermomechanical Analysis of an Engine Piston

This article provides a step-by-step tutorial for a thermomechanical analysis of an engine piston under maximum pressure and temperatures.

cutting plane with visualization of stress distribution of a engine piston after thermomechanical analysis
Figure 1: Visualization of stress distribution.

This tutorial teaches how to:

  • Set up and run a thermomechanical analysis.
  • Assign topological entity sets in SimScale.
  • Assign boundary conditions, material, and other properties to the simulation.
  • Mesh with the SimScale standard meshing algorithm.

We are following the typical SimScale workflow:

  1. Preparing the CAD model for the simulation.
  2. Setting up the simulation.
  3. Creating the mesh.
  4. Run the simulation and analyze the results.

1. Prepare the CAD Model and Select the Analysis Type

Firstly, you can click the button below and it will copy the tutorial project containing the geometry into your own workbench.

The following picture shows what should be visible after importing the tutorial project.

workbench view with piston model for thermomechanical analysis tutorial
Figure 2: Workbench view.

1.1 Create Topological Entity Sets

Prior to starting the simulation, we recommend creating topological entity sets. You can do this at any point in the simulation setup, however, it is easier to do it in the beginning.

The sets for the top, the rings and the ring grooves have already been created for you according to the following picture:

drawing of piston model for thermomechanical analysis tutorial with topological entitiy sets pointed by arrows where the blue arrows are precreated entity sets and red arrows is the topological entity set that the user will have to create
Figure 3: Overview of entity sets.

Now, you will only need to create the set for the interior and the skirt of the piston, which is everything other than what is already assigned to sets. Here are the steps that you can follow:

steps on how to create an entity set for thermomechanical analysis tutorial from hiding all the precreated entity sets, selecting the part and creating the entity set for the interior and skirt of the piston
Figure 4: Steps to create entity set.
  1. Hide all the existing topological entity sets.
  2. Activate the box selection.
  3. Select all remaining parts.
  4. Hit the ‘+’ next to Topological Entity Set and give it a name.

Find out more

You can find out more regarding our viewer in the following link: Viewer Tips & Tricks

1.2 Create the Simulation

Now, you can create the simulation.

geometry dialog box to show steps how to select a simulation
Figure 5: Geometry dialog box.

Hitting the ‘Create Simulation’ button leads to the following options:

simulation list in simscale with thermomechanical selected and create simulation button pointed with an arrow
Figure 6: Simulation list.

Choose Thermomechanical as an analysis type and click the ‘Create Simulation’ button to confirm. After that, a simulation tree showing you all the necessary steps to set up all your simulation will show in your workbench.

simulation tree to show the steps necessary to setup a thermomechanical analysis
Figure 7: Simulation tree.

2. Assigning the Material and Boundary Conditions

In this section we will define the physics of our model.

2.1 Model (Gravity)

In the first step, we define the magnitude and direction of the gravity by assigning the values below:

model dialog box with gravity magnitude of -9.81 m^2/s in the direction of 1 in ey
Figure 8: Model dialog box.

The magnitude of the gravity that we use is -9.81 \(m^2/s\) in the direction 1 in \(e_y\).

2.2 Define a Material

Afterwards, we will define the material of our piston and we will use Aluminium as the material.

maetrial list in  simscale with aluminium selected to show step on how to select material in simscale
Figure 9: Material list.

2.3 Assign the Boundary Conditions

A thermomechanical analysis will need two boundary conditions which are the thermal boundary conditions and the mechanical boundary conditions we will set up both in this section.

a. Thermal Boundary Conditions

We will use a Convective heat flux boundary condition as our thermal boundary conditions. You can therefore add a boundary condition by hitting the ‘+’ and select ‘Convective heat flux boundary’ condition:

steps to show how to create boundary conditions
Figure 10: Boundary conditions.

Following the above instructions open the setup options for convective heat flux. We will define them according to the picture below:

convective heat flux boundary condition applied at the top of the piston with a reference temperature of 741 c and a heat transfer coefficient of 450 w/km2
Figure 11: Convective heat flux boundary condition for the top of the piston.
  1. Firstly, you can set the \(T_0\) Reference temperature as 741 \(°C\) and the Heat transfer coefficient as 450 \(W/(K.m^2)\).
  2. Next, you will need to define the surface where the boundary condition is applied. For example, this is the boundary condition for the top of the piston.

Follow this procedure for each row within the table below:

Entity SetReference temperature [°C]Heat transfer coefficient [W/(K*m^2)]
Ring 1180150
Ring 1 Groove1801000
Ring 2160150
Ring 2 Groove160400
Ring 3140150
Ring 3 Groove140400
Interior and skirt120650
Table 1: Convective heat flux boundary conditions for engine piston.

b. Mechanical Boundary Conditions

Now it is time for the mechanical conditions, which are three pressure definitions (top and the first two rings) and two remote displacements. For example, we will assign a pressure boundary condition to the top of the piston.

pressure boundary condition applied at the top of the piston with a pressure of 20000000 pa
Figure 12: Pressure boundary condition.

By following the same process as before, you can select the pressure boundary condition in the lists of boundary conditions. After that, we will use a pressure value of 2e7 \(Pa\) at the top face of the piston. The pressure boundary conditions for the other parts can be seen in the table below:

EntityPressure [Pa]
Ring 114e7
Ring 24e6
Table 2: Pressure boundary conditions.

Now, you can create the two remote displacements and give them the following properties:

remote displacement applied at the top side of the piston pin with external point coordinates of 0,-0.042, 0.02028
Figure 13: Remote Displacement for top side of piston

For the first remote displacement, we will apply it at the top pin of the piston with coordinate of the external points:

  • x: 0 m
  • y: -0.042 m\(m\)
  • z: 0.02028 m \(m\)
remote displacement applied at the top side of the opposite piston pin with external point coordinates of 0,-0.042, .-0.01992
Figure 14: Remote displacement for bottom side of piston.

For the second remote displacement at the opposite side of the piston, the remote point will have the coordinates:

  • x: 0
  • y: 0.042 \(m\)
  • z: -0.01992 \(m\)

Now all boundary conditions are assigned and we can proceed to creating the mesh.

3. Mesh

We will use the standard algorithm for our mesh, which is a good choice in general as it is quite automated and delivers good results for the most geometries. For this tutorial, we will generate a second-order mesh.

You will only need to change the sizing to Manual and set our maximum edge length as 1.8e-3 m and enable the 2nd order elements to toggle. Make sure your setting look like the picture below:

mesh settings for second order mesh with manual mesh sizing, a maximum edge length of 0.0018 m and second order elements enabled
Figure 15: Second order mesh settings.

When the mesh has been generated, you can observe your mesh. The mesh will have about 235.2k nodes and 150.3k cells and look like this:

generated second order mesh of an engine piston for a thermomechanical analysis which has 235.2k nodes
Figure 16: Generated second order mesh.

If we create a first-order mesh, it will visually look exactly like the second-order mesh, because the cell count is the same for both. However, the second-order mesh has additional nodes between two connecting nodes, which helps to model deformations more accurately.

4. Start the Simulation

Finally, you can run your thermomechanical analysis for the engine piston and you can do this by clicking the ‘+’ button to start a simulation run.

simulation tree with the plus button beside simulation run circled to show the step to start a simulation run
Figure 17: Step to run a simulation.

Moreover, you can change the name of your simulation to your liking and start the simulation by clicking ‘Start’

new run dialog box which shows the estimate resources that will be used in the simulation and the simulation name which can be changed
Figure 17: New run dialog box.

Did you know?

Since we have generated two different mesh, we can select each mesh and run a simulation for each mesh simultaneously.

5. Post-Processing

After the simulation has finished, you can access the simulation results by clicking ‘Post-process results’ in your run dialog box or by going into the Solution fields and you will be redirected to the post-processor.

step to show how to access simulation results by post-process results button or solution fields
Figure 18: Access to simulation results.

You can choose what properties to visualize by going into Results and choose which property to visualize. For example, we will show the Temperature and the von Mises stress in this tutorial.

results tree to show how the steps to visualize the simulation results
Figure 19: Results tree,

Below is the temperature distribution of the piston:

temperature distribution of an engine piston after a thermomechanical analysis
Figure 20: Temperature distribution.

We can also see the von Mises stress distribution below for your engine piston:

von mises stress distribution of an engine piston after a thermomechanical analysis
Figure 21: Von Mises stress distribution.

Congratulations! You finished the thermomechanical analysis of an engine piston tutorial!


If you have questions or suggestions, please reach out either via the forum or contact us directly.

Last updated: June 30th, 2020

Data Privacy