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. Prepare the CAD model for the simulation.
  2. Set up the simulation.
  3. Create 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 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 after copying the tutorial project

1.1 Create the Simulation

The first step of a simulation setup is to create a new 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 types widget, containing the analysis types available in SimScale.

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

simulation tree to show the steps necessary to setup a thermomechanical analysis
Figure 5: The simulation set up in SimScale consists of configuring the physics in the simulation tree

1.2 Create Topological Entity Sets

Before 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:

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: Topological entity sets help to speed up the setup of a simulation.
  1. Hide all the existing topological entity sets
  2. Right-click in the viewer and click on ‘Select all’
  3. Hit the ‘+’ button next to Topological Entity Sets and give a name to the new set

Did you know?

You can find out more quick selection tips in the following article: 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)

Moving from the top to the bottom of the simulation tree, we have the Model tab, where we define the magnitude and direction of the gravity:

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 Gravity direction should be defined based on the orientation of the CAD model

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

2.2 Material

Afterward, we will define the material of our piston, which will be Aluminium. After clicking on the ‘+’ button next to Materials, the following list appears:

maetrial list in  simscale with aluminium selected to show step on how to select material in simscale
Figure 9: List of default and custom materials from SimScale

Choose ‘Aluminium’ from the list and confirm by pressing ‘Apply’. Since the CAD model from this tutorial contains a single volume, it will automatically receive the aluminium definition.

2.3 Assign the Boundary Conditions

A thermomechanical analysis will need two sets of boundary conditions: thermal and mechanical. In this section, we will define both sets of boundary conditions.

a. Thermal Boundary Conditions

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

steps to show how to create boundary conditions
Figure 10: Boundary conditions options for a thermomechanical analysis

A convective heat flux boundary condition generates a heat flux based on the surface area, heat transfer coefficient, and temperature difference between the Reference temperature and the surface temperature.

The first convective heat flux boundary condition will have the following settings:

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.

The \(T_0\) Reference temperature is 741 \(°C\), with a Heat transfer coefficient of 450 \(W/(K.m^2)\). This boundary condition is assigned to the ‘top’ topological entity set. Alternatively, you can click directly on the top face in the viewer.

Follow the same procedure for the rows 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 will be three Pressure definitions (top and the first two rings) and two Remote displacements. At first, we will create a new boundary condition, this time choosing ‘Pressure’ from the list, and give it the following definition:

pressure boundary condition applied at the top of the piston with a pressure of 20000000 pa
Figure 12: Pressure boundary condition defined to the top face of the cylinder

The first pressure boundary condition is defined to the ‘top’ face of the piston, with a value of ‘2e7’ \(Pa\). The pressure boundary conditions for the other parts can be seen in the table below:

EntityPressure [Pa]
Ring 11.4e8
Ring 24e6
Table 2: Pressure boundary conditions.

Now, you can create a ‘Remote displacement’ boundary condition and give it the following definition:

remote displacement applied at the top side of the piston pin with external point coordinates of 0,-0.042, 0.02028
Figure 13: The remote displacement boundary condition constrains the geometry in position, supporting the applied loads

The first remote displacement is assigned to the top pin of the piston with the following coordinates for the External point:

  • x: ‘0’ \(m\)
  • y: ‘-0.042’ \(m\)
  • z: ‘0.02028’ \(m\)

Following the same workflow, create a second ‘Remote displacement’ boundary condition, this time for the other side of the piston:

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 the bottom side of the piston

For the second remote displacement at the opposite side of the piston, please use the following coordinates for the External point:

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

Now all boundary conditions are assigned and we can proceed to create 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 most geometries.

You will only need to change the Sizing to Manual and set our maximum edge length as 1.8e-3 \(m\). Make sure your settings 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: For linear thermomechanical simulations, SimScale creates second-order meshes by default – the definition is done in the Element technology tab

When the mesh has been generated, it will look like this:

generated second order mesh of an engine piston for a thermomechanical analysis which has 235.2k nodes
Figure 16: Finalized second-order mesh for the thermomechanical piston tutorial

With default settings, a second-order mesh is created. Such meshes have additional nodes in-between two connecting nodes, which helps to calculate deformations more accurately.

4. Start the Simulation

At this point, you can run your thermomechanical analysis for the engine piston by clicking on the ‘+’ button next to Simulation runs.

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.

5. Post-Processing

After the simulation has finished, you can access the simulation results by either clicking on ‘Solution Fields’ or by pressing ‘Post-process results’:

how to access the online post processor after the simulation run is finished
Figure 19: Opening the online post-processor to access the simulation results

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 start by plotting 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. The temperature units were changed to \(°C\).
  2. The ‘Use continuous scale’ in the context menu, which can be opened by right-clicking on the legend 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 the 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, make sure that the ‘Displacement’ option from the toolbar is active:

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. 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, you can switch 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, 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: August 22nd, 2022