Self Piercing Rivet (SPR) separation analysis problem

  • Last Post 24 November 2019
  • Topic Is Solved
lincs2k9 posted this 03 November 2019

I have faced convergence problem about self piercing rivet separation of composite and aluminum plate. Composite and aluminum plate dimensions are 150 mm x 35 mm both. Rivet diameter is 8 mm. I have experimental data and setup. According to experimental setup, I have given fixed support and displacement in my 3D geometry in Ansys. I have created composite plate using ACP (Pre) and collect solid model to import in static structural. As in ACP (Pre), I didn't get any symmetry option, so I used complete model for analysis. 

There have 3 contact point in my model.

1. Aluminum plate to Rivet

2. Composite plate to Rivet

3. Aluminum plate to composite plate

I have used frictional contact with friction co-efficient 0.2 for these three contacts. Initial contact information shows all contacts are close. According to experimental analysis, after getting around 130 mm displacement between aluminum and composite plate, the SPR joint separates completely. But in Ansys after getting 54 mm displacement, there creates convergence problem. According to Newton-Raphson Residual Force, there shows problem is in "Aluminum plate to Rivet" contact points. I have tried to make mesh fine. I have tried to make element smaller in contact point. I have reduced contact stiffness. I have tried several ways, but I didn't understand what I have to do to solve this problem. In file0.err, there has no better information which can help to solve the problem. In Solver output option before creating convergence problem there repeatedly shows "There is too much penetration at (.........) contact points of the 3D contact elements".

I have attached several images of my Ansys setup and also experimental setup image for better understanding my problem. I have expected a better suggestion to solve my problem from experts of student community forum.

*****Experimental setup during SPR joint separation:

 Experimental Setup During separation of SPR joint

*******All setup in Ansys.

***As displacement and fixed support is given on 25 mm distance from edge of composite and aluminum plate in experimental setup, so I cut these 25 mm from 3D geometry and add displacement & fixed support at the edge. I give displacement in three steps. 1st step 60 mm, 2nd step 100 mm and third step 130 mm. 

****Cross-sectional view at the middle from width of 3D model.

*****Aluminum to Rivet contact setup information******

****Force convergence graph before convergence problem occurred.

****Newton-Raphson Residual force which shows problem in Aluminum to rivet contact point.

****File0.err shows these messages.


Order By: Standard | Newest | Votes
peteroznewman posted this 03 November 2019

Does the Aluminum have plasticity defined?

Have you tried reduced integration on the aluminum elements?

lincs2k9 posted this 03 November 2019

Thank you for your reply.

Here is the material properties I have added in engineering data for Aluminum:

Sorry to say, I didn't understand your second question. May be I don't know about it.

peteroznewman posted this 04 November 2019

I should also ask if the mesh has linear or quadratic elements. Quadratic elements are recommended. That is done by clicking on Mesh and in the Details window, setting the Element Order to Quadratic.

A problem that can arise is volumetric locking. It is more common with fully integrated elements. Volumetic locking can be avoided by using reduced order elements.

In Workbench, that is done by clicking on the Geometry branch and in the Details window, setting Element Control to Manual, then clicking on a solid body and in the Details window, setting the Brick Integration Scheme to Reduced.

lincs2k9 posted this 04 November 2019

I checked my file. My element control and element order both option was program control. 

I will change those options according to your suggestion and run the simulation.

Shall I maintain the same contact option, I have mentioned earlier for aluminum and rivet contact or I have to change something?

peteroznewman posted this 04 November 2019

See if this one change helps the convergence.

lincs2k9 posted this 07 November 2019

have run the simulation according to your suggestion. My simulation present condition has been shared here. Bisection occurred at the same point as previous. In solver output, there suggest to increase iterations per convergence to 50. So, I increased to 50. Then it suggests to increase 100. Should I increase to 100 and continue the simulation? Anything else you suggest so that it can helps to converge my problem.



lincs2k9 posted this 10 November 2019

Can anyone please give any idea how I can overcome my convergence problem? 

After creating above convergence problem, I have used Normal Lagrange formulation in Aluminium to Rivet contact. Then it goes up to 62.49 mm after that convergence problem occurred.

peteroznewman posted this 10 November 2019

Use smaller elements and more elements through the thickness of the conical rim of the part showing the high N-R residual force.  Use more substeps, especially limit the size of a step by having a large Minimum Substeps as well as Initial Substeps.

saifali posted this 13 November 2019

Is it possible to share the file


lincs2k9 posted this 15 November 2019

Hello Peter,

I have tried to increase the element in sharp edge of conical rim. But I have Hardware limitation. It's getting very very slow, If I increase the elements. Can I cut the model in half according to below image (Top View of my SPR joint 3D model) and use symmetrical behavior? I want to cut the model through the red line. As I have use ACP pre to make composite plate and there have no symmetry option. In that case if I make half composite plate in ACP (Pre) and use anything like restrict displacement or anything which will give me the same symmetry behavior. Is it possible?


According to experimental result, there have no failure in CFRP composite plate. Failure occurs in Aluminum plate and rivet (s45c steel). So, it's not important for me to analyse failure or stress result in ply wise in CFRP composite plate.
My CFRP composite plate has basically 3 major layer. Top and bottom ply are PCM Twill (Woven Fabric) material. Core part is PCM UD (Prepreg). So, If I make 3 solid bodies in design modeller and use "From new part" option to create a single part and provide those above mentioned material properties without using ACP(Pre), is that create any problem in analysis? I mean that there have any possibility to give this new setup totally different result than previous as I don't use ACP(Pre) to make composite plate? Do you have any idea in this issue?

My another question is-

In Ansys workbench analysis settings there have an option N-R UNSYMMETRIC. I have working another project which SMA material. I have posted here with my problem. At last I got solution of my SMA material problem. In SMA material project my problem is not converged if I don't use unsymmetric option. It's mention in Ansys SMA material demonstration and also a person who deals with SMA material simulation. But I see if I use unsummetric option, it takes a lot of memory to run the simulation. Is this option really helpful to converge nonlinear problem? Can you provide a clear idea when I should use which option (N-R=Full, Modified and Unsymmetric)? 

peteroznewman posted this 15 November 2019

(1) I don't use ACP(Pre) but I understand there is no symmetry option. To get the effect of symmetry when you slice through the XY plane, shell elements need Z = 0 and Rot_X = 0 and Rot_Y = 0.  The solid elements only need Z = 0 to achieve symmetry for a cut in the XY plane

(2) It would be valid to use 3 solid bodies and not use Pre if you can apply the equivalent material properties.

(3) I have not had to use NR Unsymmetric Solver.  I have always found that smaller elements resolved this type of problem.



  • Liked by
  • lincs2k9
lincs2k9 posted this 15 November 2019

Thank you for your reply. In my analysis Settings, I provide fixed support at the left bottom edge of composite plate. Provide displacement at the left top edge of Aluminum plate in Y direction including X and Z direction constant (0). For symmetry what I have to provide from analysis Settings including above fixed support and displacement settings?

peteroznewman posted this 15 November 2019

You don't need any changes to what you had for a fixed support and a displacement load, you just need to add what I described in (1) above to all the edges and faces that were created when the model was cut on a plane parallel to the XY plane.

lincs2k9 posted this 16 November 2019

My mistake, I couldn't explain my question properly. Actually, I want to know that should I take another displacement for symmetry behavior in analysis settings and select all faces which are parallel to the XY plane (as I cut the model half using XY plane) and give Z components value zero as like as below image.


If I use this type symmetry model, in that case reaction force according to fixed support will be half than previous case. Am I right?

peteroznewman posted this 16 November 2019

You are right. When you have half a model, you will get half the reaction force compared with a full model.

  • Liked by
  • lincs2k9
lincs2k9 posted this 20 November 2019

Hello Peter,

My simulation is now shown continuously. After that simulation automatically stops. 

"Element (*********) is turning inside out"

"Element (*********) is turning inside out"

According to experimental result, the spr joint will be separated after 130-140 mm displacement. In my simulation after 72.45 mm displacement, it shows this problem. I refine mesh at conical rim portion. In that position, element size is 0.07-0.12 mm. I use small load step like 2 mm and use time steps initial 0.001 s, minimum 0.0001 s. But still it shows the above problem at 72.45 mm displacement. What is the reason of this problem? What corrective action I can take to eliminate this problem?

Is static structural analysis suitable for this type of nonlinear very large deformation problem? I have faced very difficulties to solve this problem. I have to submit result within this month. I can't understand what should I do to get the result? 

peteroznewman posted this 20 November 2019

This model is extruding the conical rim of the aluminum rivet through the conical hole of the other part. That is a very difficult problem to model. You should expect to face many difficulties.

What does the conical lip of the rivet look like at the end of the experiment? Can you insert a close-up photographic image in your reply?

You say what the initial and minimum time steps are, but you don't say what the maximum time step is.  This is very important. You should try a maximum time step of 0.001 s. This will force the solver to take longer, but you need small time steps when the plasticity begins. You can save some time by breaking the solution into 2 steps. Use a large maximum time step up to 70 mm of displacement in step 1, then enforce a small maximum time step in step 2 when you go to 140 mm of displacement.

Static Structural is a good approach if the lip just deforms. Nonlinear adaptive remeshing of a region experiencing large deformation is a capability in ANSYS, but I have not found that to be useful in the past.  If the lip tears off, then there are other methods such as using element death to remove elements that have failed.  Explicit Dynamics is a whole different approach where element death is automatically included but is called Erosion. That solver has a different set of errors that can cause the solution to fail.

You could simplify the problem down to an aluminum rivet through a rigid part with a countersunk hole and apply an axial displacement to the rigid part. Turn this into a 2D axisymmetric model. Now you can have a very fast solve time with a very fine mesh through the lip. It will generate a force displacement plot of the rivet lip deforming to pass through the hole. This is not the same as your model, but will give you some ideas and some relevant data.

You could make this more difficult, you could start with a new rivet with a cylindrical tail and move down a punch to upset the tail into the conical form that fills the countersink and then retract the punch in step 1, then in step 2, you could pull up on the rigid part.  This simulation would include the residual stress in the rivet from the punch operation when the pulling up begins.

  • Liked by
  • lincs2k9
lincs2k9 posted this 21 November 2019

Sorry for late reply. When I posted my reply, it's already night in my time zone. So, I have no access of my Lab computer on that time.

I have attached the deformation image and 4 points N-R residual force images. I have used maximum time step 0.001 s.
Actually I give 2 mm load step after 70 mm to check smaller load steps can help to converge the problem or not.

Another issue I need to share. At first time, I have used all quadratic elements. In that there had convergence issues after 54 mm displacement. But "Element (*********) is turning inside out" problem didn't show in that time. When I refined mesh more in contact points, number elements and nodes became high. Which made the solver to choose out of core memory mode (as I have mentioned before, I have hardware limitation). So, I took linear elements and now after 72 mm displacement, the above problem occurred. 

For Nonlinear adaptive remeshing, I have to use tetrahedron element. Is that right?

I could not understand the modeling setup of 2D axisymmetric model case you have shared your last reply. 
Actually, I have not enough time to solve the problem. So, if I solve the problem with present setup, it will be better for me. 

peteroznewman posted this 21 November 2019

For Nonlinear Adaptive Region, yes, it is limited to tetrahedrons. I have not found it to be useful and looking at these cross-sections and the limited amount of deformation, I don't think it will be helpful to you either.

How much RAM is in your computer?  What is the maximum RAM your motherboard supports?  Can you upgrade and install more RAM?

When plasticity begins to be active, the elements are deforming in an incompressible manner. That means some of the methods that help hyperelastic material models to converge might help this model.  Those are (1) Reduced Integration and (2) Keyops on the Elements.  Here is an example

If you share the geometry, I can show you what I mean by an axisymmetric model.  Delete the mesh and make an archive of your model, or just save a SpaceClaim scdoc file and attach that to your reply.

lincs2k9 posted this 21 November 2019

1. My computer RAM is 32 GB. I can upgrade to 64 GB. But problem is the RAM is DDR3 server memory RAM. At present, it's not available in my area. I have to purchase it from abroad. 

2. If I use quadratic element, can it help to overcome this present problem? In my model element control is already manual and Brick Integration Scheme to Reduced. Do I need to add this below command in my Rivet part? or Rivet and Aluminum plate both?

3. I have attached the archive of my model here.


peteroznewman posted this 22 November 2019

Added the keyopt 2 and 6 to the rivet. Once you do the first one, you drag and drop it on each body.

I let it run till it failed to converge.  That took 15 hours on 15 cores of my computer.

It stopped at 4.6519 seconds into step 4 with the following error:

     DISP CONVERGENCE VALUE   =  0.7117E-04  CRITERION=   4.991     <<< CONVERGED
     LINE SEARCH PARAMETER =   1.000     SCALED MAX DOF INC = -0.7117E-04
     FORCE CONVERGENCE VALUE  =  0.1623      CRITERION=   13.84     <<< CONVERGED
    Writing NEWTON-RAPHSON residual forces to file: file.nr004
     DISP CONVERGENCE VALUE   =  0.1113E-03  CRITERION=   4.991     <<< CONVERGED
     LINE SEARCH PARAMETER =   1.000     SCALED MAX DOF INC =  0.1113E-03
     FORCE CONVERGENCE VALUE  =  0.3377E-01  CRITERION=   13.84     <<< CONVERGED
    Writing NEWTON-RAPHSON residual forces to file: file.nr001

 *** ERROR ***                           CP =   53601.086   TIME= 05:03:01
 Solution not converged at time 4.6520125 (load step 5 substep 139).     
  Run terminated.                                                        

So it is volumetric compatibility and contact that is the issue.

This is not as far as the solver got for you without the keyopts.

Let's see if any ANSYS staff have advice.

One approach is to soften the contact.


lincs2k9 posted this 22 November 2019

Thank you for your effort to check my project. So, your observation is that this keyopt is not working to solve this problem. I also run the simulation with your shared keyopt. It’s running now. It’s show the message- “Volumetric compatibility is not satisfied for ** U P elements” What is the meaning of this? So, from your observation, the main issue is contact. Do you suggest to soften the contact? How I can do that? Will I reduce the normal stiffness value? Another question is- will I use this keyopt for further analysis to overcome this problem or not?

peteroznewman posted this 22 November 2019

Correction: The tip displacement in my run reached 66.8 mm so it may have gotten further than your run.

Read ANSYS Help in the Mechanical APDL section, Element Library, and see what each Keyopt means.

For SOLID185, Keyopt(2) is defined below

Element technology:

0 -- Full integration with method (default)
1 -- Uniform reduced integration with hourglass control
2 -- Enhanced strain formulation
3 -- Simplified enhanced strain formulation

While Keyopt(2) = 1 is best for hyperelastic materials, if you read the Solver Output, it suggests Keyopt(2) = 2 because of the ElasticPlastic material.


KEYOPT(6) = 1 sets the element for using mixed formulation. For details on the use of mixed formulation, see Applications of Mixed u-P Formulations. Applications of Mixed u-P Formulations

Incompressible material behavior can be divided into two categories: fully incompressible materials and nearly incompressible materials. Typical fully incompressible materials are hyperelastic materials. You must use a current-technology element with mixed u-P formulation or SOLID285 to model this material behavior. For element SOLID187, set KEYOPT(6) = 1.

Nearly incompressible materials include hyperelastic materials and elastoplastic materials. The current-technology elements with mixed u-P formulation and SOLID285 are available for nearly incompressible hyperelastic materials.

The best element choice varies from problem to problem, as indicated in these general guidelines:

  • For material behavior with very small compressibility: Use a current-technology element with mixed u-P formulation or SOLID285.

  • For moderate compressibility: Use PLANE182/SOLID185 with  (most efficient), a current-technology element with mixed u-P formulation, or SOLID285.

  • When deformation is highly confined: Use a current-technology element with mixed u-P formulation.

Nearly incompressible elastoplastic materials are materials with Poisson's ratio close to 0.5, or elastoplastic materials undergoing very large plastic deformation. For such cases, especially when the deformation is close to being fully incompressible, the mixed u-P formulation of the current-technology elements and SOLID285 is more robust, yielding better performance. Try pure displacement formulation (KEYOPT(6) = 0) first, however, because the extra pressure degrees of freedom are involved in mixed formulation. If you are using mixed formulation with element SOLID187, it is good practice to specify hydrostatic pressure interpolation (KEYOPT(6) = 2).

On the topic of contact, softening means reducing the normal stiffness factor. This might help convergence, but at the cost of increased penetration. There is visible penetration already.

Looking at the location of Maximum N-R Force Residual, is is a little bit off the centerplane. Here is a section view.

 I can run the model one more time with Keyopt(2) = 2 and see what happens tomorrow.

peteroznewman posted this 22 November 2019

 Correction: you are already using reduced normal contact stiffness.

Also, is the feature in the end of the rivet an integral machined feature of the aluminum plate?

Or is it a separate part?  If separate, why is it integral to the plate?

Is that squeezed into the end of the rivet to secure the plate to the rivet?


lincs2k9 posted this 23 November 2019

The highlighted portion is a part of Aluminum plate. During Self piercing riveting, aluminum plate deform like this shape and this shape helps the rivet to attach with aluminum plate.

peteroznewman posted this 23 November 2019

Thanks for the clarification.

peteroznewman posted this 24 November 2019

I made some changes to your model and reduced the 15 hours of computation down to 3.75 hours (on 15 cores).  I did that by changing the contact from Symmetric to Asymmetric. This cut the contact computation in half.  I also flipped contact and target definitions.

Another change was in the keyopts. I used keyopt(2) = 2 only and commented out the keyopt(6).

The solution makes it to a deformation of 68 mm before convergence fails, and now I think I know why.

Look at the aluminum multilinear plasticity, the last entry has a plastic strain of 0.075.  That means at plastic strains higher than that, the tangent modulus is zero. In other words, there is no ability to support higher loads once the stress reaches 570 MPa at 0.075 plastic strain.

Here is a plot of the Maximum Plastic Strain in the model. You can see that at the beginning of step 3, the maximum plastic strain in the model has already passed the last value in the table and toward the end of step 4, the plastic strain is going toward infinity.


The reason the solution stops converging is that there is no static equilibrium beyond this point. When the entire cross section reaches this level of plastic strain, the section just wants to pull apart. That is what has happened to the lip.

What is the Elongation at Break value for the Aluminum? If it is < 23% then this simulation is predicting failure. You will get a more accurate prediction if you put more data into the plastic strain table of the material.

If this post has answered your question, please mark it with Is Solution to show that this discussion is Solved or ask a followup question. If you have new questions, please open a New Discussion.

Attached Files

  • Liked by
  • lincs2k9
lincs2k9 posted this 24 November 2019

Thank your for your findings. I have noticed previously that after a certain displacement stress value of Rivet and Aluminum didn't change. It stops with their providing ultimate stress value which I have provided in material data. But in that time, I can't understand it. Thank you for your clarification. 

So, If I want to reach higher displacement like 130 mm according to experimental result, I have to input higher strain value in material data for Rivet and Aluminum plate?

But I found in research paper that those are the ultimate stress and strain value which I have added in material data for Aluminum plate and Rivet. Then, in my practical experiment, how aluminum and Rivet sustain this high displacement then separate. I also found that break only happened in Aluminum plate after 130 mm displacement and then separate.    

peteroznewman posted this 24 November 2019

Where did the material data for the aluminum come from?  What work hardening was in that material?  Did you convert the material stress-strain data to True Stress and True Strain before you entered the data into ANSYS Engineering Data?

The rivet and plate experience some significant cold work during the riveting process. Perhaps the material properties are closer to a work-hardened aluminum than what you used in your material table.

Put higher values of stress and plastic strain in the table and the simulation will go to higher values of displacement.

  • Liked by
  • lincs2k9
lincs2k9 posted this 24 November 2019

I have got the Aluminum material data from my Supervisor who collects it from a Material Research Center. Yes, I got engineering stress-strain value. I converted it into true stress-strain before input in engineering data.

Actually I can't understand why the material data of stress-strain I got, it didn't match with my experimental and simulation result.

Btw, I really appreciate your support in my project. Thank you.