Fill out the form to download

Required field
Required field
Not a valid email address
Required field
Required field
  • Set up your own cloud-native simulation in minutes.

  • Documentation

    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 saved selections 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 setup in SimScale consists of configuring the physics in the simulation tree

    1.2 Create Saved Selections

    Before setting up the simulation, we recommend creating saved selections. You can do this at any point of the simulation setup, however, it is easier to do it in the beginning.

    The selections 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 saved selections

    Now, you will only need to create the selection for the interior and the skirt of the piston, which is everything except the pre-created selections. Here are the steps:

    steps on how to create saved selections for thermomechanical analysis tutorial from hiding all the precreated saved selections, selecting the part and creating the selection for the interior and skirt of the piston
    Figure 7: Saved selections help to speed up the setup of a simulation
    1. Hide all the existing saved selections
    2. Right-click in the viewer and click on ‘Select all’
    3. Hit the ‘+’ button next to Saved Selections and give a name to the new selection.

    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’ saved selection. Alternatively, you can click directly on the top face in the viewer.

    Follow the same procedure for the rows within the table below:

    Saved SelectionReference 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 assigned 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:

    Saved SelectionPressure [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: November 29th, 2023