Fill out the form to download

Required field
Required field
Not a valid email address
Required field
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 the Simulation

The first step you will do is to create the simulation.

geometry dialog box to show steps how to select a simulation
Figure 3: 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 4: Simulation list.

Choose Thermomechanical as 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 5: Simulation tree.

1.2 Create Topological Entity Sets

Prior to setting up the simulation, we recommend creating topological entity sets. You can do this at any point of 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 6: 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 7: 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

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
Groove – Ring 11801000
Ring 2160150
Groove – Ring 2160400
Ring 3140150
Groove – Ring 3140400
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\)
  • z: 0.02028 \(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 pisotn

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

  • x: 0 \(m\)
  • 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 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 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 inbetween two connecting nodes, which helps to model deformations more accurate.

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 18: 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 one from two options:

how to access the online post processor after the simulation run is finished
Figure 19: Opening the online post-processor to access to simulation results
  1. Click Solution fields under the simulation run.
  2. Click the ‘Post-process results’ button form the run dialog.

You can choose what results to visualize by going to the Filters panel:

von mises stress selection
Figure 20: Select the Von Mises Stress field for parts contour coloring.
  1. Expand the Parts Color section,
  2. Select the desired field for Coloring.

5.1 Temperature

For example, we will plot the Temperature field:

temperature distribution plot for the thermomechanical analysis of the piston
Figure 21: Temperature distribution contour plot on the piston head

To achieve this visualization we performed a couple of changes from the default state:

  1. Changed the temperature units to \(°C\).
  2. Selected ‘Use continuous scale’ in the context menu, opened by right-clicking on the color bar:
context menu for the color bar opened using right mouse click
Figure 22: Context menu for the color bar options

5.2 Von Mises Stress

We can also visualize the von Mises stress distribution with this same method:

  1. Change the units to \(MPa\).
  2. Use continuous scale.
  3. Change the maximum value of the legend to ‘400’.
von mises stress result distribution plot for the thermomechanical analysis
Figure 23: Von Mises stress distribution contour plot on the piston head

By lowering the maximum value of the color scale, we can create a threshold and find all the regions in the part where the stress exceeds this value. Those regions are colored in red in Figure 23, and are found in the support holes and the top face, where applied and reaction forces appear.

5.3 Deformation

Finally, we want to visualize the deformation of the piston head. For this, we select ‘Displacement’ from the operations toolbar above:

engine piston displacement from post processor
Figure 24: Creating a displacement visualization plot

You might notice that the deformation is not apparent. This happens because the magnitude of the deformations is relatively small. In order to fix this, we changed the Scaling factor to 20:

scaling factor in simscale post-processor
Figure 25: Changing the Scaling factor to make the displacements visible

Also, to be able to find the magnitude of the deformations, we switched the Coloring to Displacement > Magnitude:

selecting the displacement magnitude plot for the parts coloring
Figure 26: Changing the part coloring to the displacement magnitude field

Finally, we come up with the following plot:

displacement deformation result plot for the thermomechanical analysis
Figure 27: Displacement plot showing the deformation shape and magnitude coloring on the piston head

We can see how the piston head deforms due to the applied loads, boundary, and thermal conditions. The top face sinks down, while the ring portion bulks out. We can also see the expansion at the bottom portion, which can be important for design purposes.

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: January 25th, 2022