Fill out the form to download

Required field
Required field
Not a valid email address
Required field


Advanced Tutorial: Bending of an Aluminum Pipe

This article provides a step-by-step tutorial for the nonlinear structural simulation of the bending process for an aluminum pipe. The objective of this simulation is to analyze the deformation and stress distribution developed on the pipe during the process, including nonlinear phenomena such as material plasticity, physical contact, and large deformation.

Figure 1: Deformed shape and von Mises stress contour results on the aluminium pipe.

This tutorial teaches how to:

  • Set up and run a nonlinear static simulation.
  • Assign boundary conditions, material, and other properties to the simulation.
  • Mesh the geometry with the SimScale standard meshing algorithm.
  • Explore the results using SimScale online post-processor.

We are following the typical SimScale workflow:

  1. Prepare the CAD model for the simulation.
  2. Set up the simulation.
  3. Set up the mesh and run the simulation.
  4. Analyze the results.

1. Prepare the CAD Model and Select the Analysis Type

First of all, click the button below. It will copy the tutorial project containing the geometry of the aluminum pipe into your own workbench.

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

imported cad workbench aluminium pipe stopper roller
Figure 2: The imported CAD model of the aluminium pipe, rollers and stopper. This is how your screen should look like after hitting the import link button.

If you are using your own CAD model make sure to follow these instructions:

All solid geometry should be free of any interference, intersecting surfaces, and small edges. Issues such as these should be fixed in CAD before bringing the geometry into the SimScale platform. More specific preparation details are mentioned here.

Before starting to set up the model, check the following:

  • Please make sure that the imported geometry consists of solid parts and not sheet/surface elements.
  • If the geometry has small fillets or round faces which are insignificant for the analysis, then it is recommended to remove this geometry in CAD. This will dramatically reduce mesh cell count and therefore solve time.

1.1. Create Simulation

create simulation
Figure 3: Creating a new simulation, note that the geometry is selected.

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

create simulation list static analysis
Figure 4: Analysis types available in SimScale, choose the static one for this tutorial. In doubt you can hit the ‘Need Help?’ button.

Choose ‘Static’ as analysis type and click on the new ‘Create Simulation‘ option to get started.

On the new simulation properties window that is opened, toggle on the ‘Non Linear analysis‘ option:

non linear static analysis
Figure 5: Enabling the non linear analysis.

A static nonlinear analysis makes it possible to take into account phenomena such as:

  • Non-elastic materials (plasticity in this case)
  • Varying loads
  • Large displacements and rotations

This is done by ignoring inertia effects at the same time. This is different from a dynamic analysis, which would take into account inertial forces.

2. Set Up the Simulation

In this tutorial, we will simulate the forming process of an aluminum pipe via a hydraulic bending machine and analyze the mechanical stress and strain induced in the part(s). The following picture illustrates the parts of the model and the process:

bending aluminum pipe model and process
Figure 6: Illustration of the model parts and how they will act during the simulation.

The following modelling techniques will be used to simulate the process:

  1. We want to deform the pipe, which is why we need to model the pipe as a plastic material.
  2. The Pipe and the rollers contact areas change over the duration of the simulation, also the contact forces are important for the deformation process, which is why we are modelling these contacts as a Physical contact.
  3. A Bonded contact between the pipe and the stopper, because we want the stopper to prevent one end of the pipe from any movement.
  4. As pictured in figure 6, the rotating roller causes the pipe to bend by moving around the fixed roller, which is why we assign a Rotating motion to the small roller with the large roller as a center.
  5. As both the geometry and the boundary conditions are symmetric, we model only one half of the pipe and apply a symmetry condition. This way we can safe half of the computational resources.

2.1. Creating Contacts

We will assign two contacts:

  • A bonded contact, between the upper end of the pipe and the stopper. This is a normal contact, whereas
  • the contact between the fixed-, rotating roller, and the pipe is physical contact.

Beware that this is a difference because normal contacts are such that are representing ideal situations that would never appear like this in reality but can help simplify the simulation a lot. Physical contacts represent reality more accurately.

Check out this documentation page if you want to find out more about contacts.

A. Bonded Contact

SimScale automatically detects any touching faces within the geometry and assign bonded contacts. In this case all contacts are only on a line of touch, so the automatic detection fails with the following message:

no contacts detected
Figure 7: Automatic contact detection failure message. You can ignore it for this simulation.

In this case we can ignore the warning and just click on ‘ok’.

As our model needs a bonded contact between the pipe and the stopper, we are going to manually add it:

  • Click on the ‘+’ icon next to the Contacts item in the simulation tree – this is not the same as physical contact.
  • Select the ‘Bonded‘ under the Manual Contact creation.
  • Change the Position tolerance to ‘Off‘.
  • Assign the following faces as Master and Slave:
bonded manual contact static analysis
Figure 8: Creating a bonded manual contact between the pipe and the stopper. This fixes the upper end of the pipe.

B. Physical Contacts

We now proceed to the Physical Contacts assignment. Physical contacts are used in touching surfaces that can slip, come into touch, separate, and transfer forces during the simulated process, such as the pipe and the rollers in our model. Friction effects can also be included, but they won’t be needed in this case. Follow the instructions below to create the physical contact model:

  • Click on the ‘+’ icon next to Physical Contacts.
  • Apply ‘1e+12‘ to the Penalty Coefficient.
  • Assign the faces as shown in the picture:
physical contact static analysis nonlinear
Figure 9: Creating a physical contact between the roller and the large and small roller.


If you are not sure about which surface to chose as a master and which as a slave for your own simulation, have a look at this knowledgebase article.

2.2. Model & Element Technology

Leave those two panels as default, and proceed to the Materials item.

2.3. Assign Materials

Two different materials are used for this simulation:

  • Steel for the rollers and stopper. This material will be linear elastic, as the bodies will be rigid.
  • Aluminum for the pipe. This material will use an elastoplastic model, as it will undergo large deformations.

In order to create a new material, click the ‘+’ icon next to Materials. The materials library will be shown. Select the desired material from the list and click ‘Apply’ to create the material item, as shown in the picture:

steel material library
Figure 10: Choosing steel from the material library.

First create a Steel material item, which will be assigned to the Stopper, the Small roller, and the Large roller bodies. All other parameters can be left as default:

steel assignment
Figure 11: Properties and assignment for steel, you can change the properties if you want to define a custom material.

For the pipe, first create an Aluminium material, with the same procedure used for steel. Notice that the pipe body is automatically selected, as it is the only one left without material assignment.

The following picture illustrates the stress-strain curve of the material, which is known as an elastoplastic behavior. Changing the material behavior to plastic allows permanent deformation of the part, whereas the elastic behavior will cause the body to spring back to its original shape.

aluminum stress strain plot
Figure 12: Aluminium stress-strain plot. We need to tell the solver that is should follow this graph when calculating the pipe’s deformation.

Ir order to model such non-linear behavior, change the Material behavior to ‘Elasto-plastic’, and set up the other parameters as shown. Notice the error message indicating that the stress curve \(\sigma\)<VM> data is missing. We will provide it in the following step.

aluminum assignment properties material pipe
Figure 13: Aluminium material properties, this is how they look like when changing the material behavior to elasto-plastic.

The solver needs the stress-strain curve, for aluminum pictured in figure 12, for the material in order to predict the deformation. We will provide this curve in the form of a table. Use the following button to open the spreadsheet containing the curve data:

When you are on the spreadsheet, download the data to your computer in CSV format by going to File > Download > Comma-separated values.

Plastic Curve Data

If you examine or plot the CSV table, you will notice that it only includes the plastic part of the curve. That is, the [0,0] point is not in the curve, but it starts from the yielding point. This convention should always be followed when uploading data for a plastic curve.

Now click the table input button in the material window (highlighted in red in Figure 13). This will reveal the Specify value window:

specify value window for plastic material
Figure 14: Specify values for the material plastic curve.

Click the ‘Browse files’ button to select and upload the previously downloaded CSV file. The \(\varepsilon – \sigma\) table should populate with the data as follows:

aluminum plastic curve table data
Figure 15: Uploaded plastic material table data.

Once you have uploaded this table, click the ‘Apply’ button in the settings from figure 14 to accept the data and the ‘check-mark’ button on the material window (figure 13) to save the setup. Note that the error message from figure 13 should be gone by now.

2.4. Initial and Boundary Conditions

For this simulation, the initial conditions can be left untouched.

Take a look at figure 7 to get an overview of the physical situation and better understand what we are doing in this section.

In order to create a boundary condition, follow this procedure: click on the ‘+’ button option next to the ‘Boundary conditions‘ element at the left panel, and select the required boundary condition type from the drop-down menu, as shown in the figure:

how to create a boundary condition nonlinear static simulation
Figure 16: Create a boundary condition.

A. Fixed Roller and Stopper

Create a Fixed value boundary condition.

By default, we are in Face selection mode. In order to assign a Solid-body, you can use the scene tree at the right hand side of the workbench to activate the volume selection mode:

activate volume selection change render and selection mode
Figure 17: Activate the volume selection to assign bodies, not faces to the fixed value boundary condition. You can find this panel in the upper middle of the workbench.

We need to assign it to the Large roller and Stopper bodies. Both of them have to be prevented from any movement, as presented in figure 6.

fixed value boundary condition static simulation zero displacement
Figure 18: Applying a fixed value on the large roller and stopper as they will not do any movement during the simulation.

B. Pipe Symmetry Plane

As you might have noticed, the geometry model includes only one-half of the pipe and the other bodies. This allows us to save on the mesh size and computation cost. A Symmetry plane boundary condition will be applied to the flat faces of the pipe (the other bodies have their degrees of freedom specified in the other boundary conditions, so no need to include them here). Create the boundary condition as explained above and assign the pipe symmetry faces as shown in the picture:

symmetry boundary condition pipe static simulation
Figure 19: Applying a symmetry boundary condition on the two pipe faces to save computational resources.

C. Moving Roller Rotation

For the particular movement of the small roller, we will employ a Rotating motion boundary condition.

In our model, it happens that the axis of rotation passes through the origin, and is oriented in the X-direction. For a different model, the position and orientation of the rotation axis must be obtained from the CAD program and input in the boundary condition. Create the Rotating motion and assign the top face of the Small roller. Set up the parameters as shown:

rotating motion boundary condition roller static simulation
Figure 20: Applying a rotating motion to the small roller.

In order to specify the rotation angle of the body, we will use a table input. It will go from zero to the maximum value in the simulated time, and the solver applies linear interpolation to the values in between. Take a look at the following image to remember what we are simulating:

Figure 21: Start and end position of the rotating roller: We start at 0° and end at 130°

It is important to take into account the right-hand rule and the direction of the rotation axis specified, to get the correct direction for the rotation. In this case, we want a positive 130° rotation of the roller to achieve the desired bending angle on the pipe.

Time [s]Rotation angle [°]
Table 1: Rotation angle input values.

In order to input the values, click the curve button from the rotating motion boundary condition window (highlighted in orange in figure 20).

The Specify value window appears, just as in the material case, but this time with Formula and Table input options. Select the Table tab and input the values as shown:

how to specify the value window within the simscale platform
Figure 22: Specify value window for rotation angle.

Click the ‘Apply’ button (in figure 22) and the ‘check-mark’ button (in figure 20) to save the setup.

2.5. Numerics and Simulation Control

The Numerics parameters control the solver behavior and precision. In this case, we will only change one parameter: Convergence criteria. The default Relative criteria make use of the applied load magnitude to check the convergence of the computation. That is not possible in this simulation, because the model is driven by an imposed displacement so there are no loads. Accordingly, we need to change the criteria to Absolute, as shown in the picture:

numeric solver parameters static simulation
Figure 23: Numeric solver parameters, change the convergence criteria to ‘Absolute’.

The Simulation control parameters, on the other hand, specify the simulation time, time step, time adaptation and output write interval. Fill in the simulation control settings as below:

simulation control panel
Figure 24: Simulation Control settings, change the ‘Maximum time step length’ to ‘0.05s’ and the ‘Maximum runtime’ to ‘1e+4s’.
  • Leave the Simulation interval at the default value of 1 \(s\). This specifies that the simulation will run from 0 to 1 \(s\). This is the same interval that we used to define the rotation of the roller body.
  • Change the Maximum time step length to 0.05 \(s\), so we get 20 integration steps in the [0,1] \(s\) interval.
  • Change the Maximum runtime to 10000 \(s\), to prevent the simulation from being stopped before it ends.

2.6. Result Control

Result control allows us to query specific result fields from the simulation, such as displacements, strains and stresses, and their characteristics such as average or maximum values. A few default fields are provided, but in this case we will need to add more:

A. Solution Fields

Two result fields will be queried from the solver that are not among the default ones:

  • Signed von Mises stress: this field is used to predict failure according to the distortion energy theory, at the same time allowing to distinguish regions in tension (positive stress) and compression (negative stress).
  • Contact pressure: this field is used to measure the transferred force through the contact, in the form of a distributed pressure field.

In order to create the additional solution fields:

stress result control solution field
Figure 25: Creating a solution field for the stress results visualization.
  1. Click the ‘+’ icon next to Solution fields, under Result control
  2. Select the type of field from the drop-down menu.

First, create a Stress field, and change the stress type to Signed von Mises stress.

signed von mises solution field stress result control
Figure 26: Setting the stress to signed von Mises.

Then, create a Contact field, and leave the default parameters:

contact pressure results control solution field
Figure 27: Creating a contact pressure solution field.

B. Volume Calculation

Volume calculations are used to compute statistics of a field over a part, and are reported as curves over the simulation interval. In this case, two-volume calculations will be added:

  • Minimum and maximum values of the von Mises stress, to find the lower and higher stress levels on the pipe.
  • Minimum and maximum values of the signed von Mises stress, to find the extreme compression and tension stresses on the pipe.

In order to add a volume calculation, follow this steps:

min max volume calculation pipe results control
Figure 28: Adding a new volume calculation item.
  1. Click the ‘+’ icon next to Volume calculation under Result control
  2. Select the type of statistic from the drop-down list.

Use the steps above to create a Volume calculation – Min-max item, and setup for the von Mises stress field over the pipe, as shown in the picture:

von Mises stress volume calculation min max pipe
Figure 29: Volume calculation settings for von Mises stress.
  • Change the Field selection to ‘Stress’.
  • Select the ‘Von Mises’ Stress type.
  • The Component selection will be automatically changed to ‘Von Misses stress’.
  • Assign this calculation to the Pipe. You can select it by clicking on the viewer.

Repeat the steps to create the Signed von Mises Stress min-max item:

signed von Mises stress volume calculation min max pipe
Figure 30: Volume calculation settings for signed von Mises stress.

3. Mesh

The standard mesh algorithm will be used. General settings can be left at their default values in this case:

standard mesh algorithm mesh settings pipe
Figure 31: Mesh settings for the standard mesh algorithm.

Mesh refinements allow us to control the local size of elements over given faces and volumes. They are used primarily to optimize on computational resources: Instead of increasing the fineness globally, we assigning small element sizes only to regions of interest, which keeps the overall cell count smaller than if we would refine all the cells in the domain.

We will add one Local element size refinement:

adding mesh refinement static simulation
Figure 32: Adding a mesh refinement item.
  1. Click the ‘+’ icon next to Refinements under Mesh
  2. Select the type of refinement from the drop-down list.

The Local element size will be applied on the following faces:

  • All the (seven) pipe faces,
  • The face of the large roller that makes contact with the pipe, and
  • The face of the small roller that makes contact with the pipe.

Select the indicated faces (9 in total) from the viewer as shown in the picture, and then, apply a Maximum edge length of 4.6e-3 \(m\). This value corresponds to the pipe wall thickness and will ensure a good aspect ratio of the elements.

selection faces local element refinement mesh pipe
Figure 33: Selecting faces of the aluminum pipe and rollers for applying a local element refinement.

There is no need to generate the mesh at this point, because it will be computed as part of the simulation run. When the mesh computation is done, it will be marked with a green check-mark icon next to it. You can come back to it and view the resulting mesh:

final mesh of model
Figure 34: Visualization of the mesh.

4. Start the Simulation

Create a new computation run by clicking on the ‘+‘ icon next to the Simulation Runs on the tree, as shown below:

new run simulation tree
Figure 35: Creating a new simulation run.

In the pop-up dialog, you can name and start the simulation run. After about one hour, you can have a look at the results.


When you create a simulation run, the following warning message will appear:

warning message simulation
Figure 36: The warning message can be ignored in this simulation. Press “OK” to proceed.

In the present tutorial, the run will be successful, therefore you can ignore the warning message by clicking on the ‘OK’ button.

5. Post-Processing

Once the simulation run is finished, you can post-process the pipe bending analysis results. To access the online post-processor you can use one of two methods:

access simscale online post processor
Figure 37: The two options to access the online post-processor
  1. Click ‘Solution Fields’ under the finished run.
  2. Click the ‘Post-process results’ button from the run dialog.

5.1 Deformations

To visualize the deformation of the pipe and the movement of the parts, add a displacement filter:

create displacement filter deformation plot simscale
Figure 38: Creating a Displacement filter to visualize the deformed shape
  1. Click on ‘Add Filter’ in the Filters panel
  2. Select ‘Displacement’ from the drop-down menu.

The following plot is displayed:

pipe bending final deformed shape plot simscale post processor
Figure 39: Visualization of the deformed shape after the bending process

It can be noticed that the pipe followed the shape of the rig, and the bending was successfully captured.

5.2 Stress

To visualize the stress level in the pipe, select the corresponding field for Coloring under Parts Color:

parts coloring field selection simscale post processor
Figure 40: Changing the field for parts coloring

You can see that the field selected by default is Von Mises Stress, which coincides with our goal. In order to make the legend scale easier to interpret, perform two changes:

pipe bending von mises stress plot simscale post processor
Figure 41: Von Mises Stress plot for the pipe after the bending process
  1. Change the stress units to \(MPa\).
  2. Change the maximum value of the scale to the yield stress of ‘194’ \(MPa\).
  3. Rotate the model to visualize the internal section of the pipe.

Here we can see all the regions of the pipe that went past the yield point, colored in red. The Hertzian contact stress on the follower body can also be appreciated.

5.3 Animation

The animation of bending process can also be visualized. To create the animation, add an Animation filter, the same way the Displacement filter was created. The default parameters for the filter are enough for our purpose:

creating animation filter simscale post processor
Figure 42: Creating an Animation

Click the ‘Play’ button under Animation controls to start the animation of the bending process:

pipe bending process animation simscale post processor
Animation 1: Animation of the bending process

5.4 Part Visibility

In order to better visualize the stress on the bent pipe, we want to hide all other parts. To do so, we follow this procedure:

hiding parts simscale post processor
Figure 43: Hiding parts that are not of interest
  1. Left-click to select all the parts except for the pipe
  2. Right-click to bring up the contextual menu
  3. Select ‘Hide Selection’
pipe bending isolated stress plot simscale post processor
Figure 44: Plot of the Von Mises Stress over the isolated pipe after the bending process

The details of the stress distribution on the bent pipe can be seen without the obstruction of the other parts. In the plot, the higher stress levels occur in the outer portion of the pipe, close to the point of contact with the roller part.

Go ahead and try out for yourself what each one of the parameters does and what visualizations you can come up with. If you want to learn more about SimScale’s online post-processor, you can have a look at our post-processing guide.

Congratulations! You finished the tutorial!


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

Last updated: February 26th, 2021

Data Privacy