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.
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:
Prepare the CAD model for the simulation.
Set up the simulation.
Set up the mesh and run the simulation.
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.
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
Hitting the ‘Create Simulation’ button leads to the following options:
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:
A static nonlinear analysis makes it possible to take into account phenomena such as:
Non-elastic materials (plasticity in this case)
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:
The following modelling techniques will be used to simulate the process:
We want to deform the pipe, which is why we need to model the pipe as a plastic material.
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.
A Bonded contact between the pipe and the stopper, because we want the stopper to prevent one end of the pipe from any movement.
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.
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.
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:
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:
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:
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:
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:
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.
Ir order to model such non-linear behavior, change the Material behavior to ‘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.
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:
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:
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:
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:
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.
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:
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:
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:
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.
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:
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:
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:
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:
Click the ‘+’ icon next to Solution fields, under Result control
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.
Then, create a Contact field, and leave the default parameters:
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:
Click the ‘+’ icon next to Volume calculation under Result control
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:
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:
The standard mesh algorithm will be used. General settings can be left at their default values in this case:
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:
Click the ‘+’ icon next to Refinements under Mesh
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.
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:
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:
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.
Click ‘Solution Fields’ under the finished run in order to be redirected to the online post-processor. Within the results tab, apply the scalar von Mises stress. Also, to visualize the movement and deformations of the parts, the displacement should be applied.
Figure 36 shows an animation of the pipe bending process, with a contour plot of the generated von Mises stress.
Analyze your results with the SimScale post-processor. Have a look at our post-processing guide to learn how to use the post-processor.
Strictly Necessary Cookies
Strictly Necessary Cookie should be enabled at all times so that we can save your preferences for cookie settings.
If you disable this cookie, we will not be able to save your preferences. This means that every time you visit this website you will need to enable or disable cookies again.