'Torque Arm' simulation project by ggiraldo


I created a new simulation project called 'Torque Arm':

Torque limiter arm asembly simulation

More of my public projects can be found here.


This project was created to collaboratively build the simulation.

Study case provided by user @mhere

Development log


  • Geometry imported and first mesh created
  • Test simulation run (linear elastic, bonded contact)
  • First nonlinear simulation run (linear elastic, physical contact, torque load)


  • Test variations in load magnitud
  • Test mesh refinement
  • Test variation in Lagrange augmentation coefficient


  • Switched to refined mesh
  • Updated previous calculations to correct material properties and be consistent.


  • Implemented bi-linear plasticity in aluminum part
  • Proposed failure mode and assessment

Results Discussion

Linear Statics Run

This run is created primarily as a first approach to the problem. Results were downloaded in order to isolate the arm body and check stress levels. Here are the results:

  • Maximum (von Mises) stress level in arm: 733.4 [MPa]
  • Aluminum yield stress (6061 T6): 270 [MPa]
  • Safety factor: 0.368
  • Applied torque load: 200 [N-m]
  • Expected torque resistance: 73.6 [N-m]

One can see that stress distribution is symmetric, which doesn’t seem to be realistic. This is due to the symmetric boundary conditions as well as the bonded contact, which is a bad model for the physical contacts. This results are not to be trusted and a more realistic model should be developed.

200 [Nm] Torque Load Nonlinear Elastic Run


Model with ramp load and physical contacts, still elastic materials. Results are more realistic and yield stress occurs at between 10% and 20% of maximum load. Simulation ends with error at around 60% of maximum load, because deformation causes contact error. Here are the results:

  • Maximum load level: 200 [N-m]
  • Maximum (von Mises) stress at 10% load: 159.7 [MPa]
  • Maximum (von Mises) stress at 20% load: 313.8 [MPa]
  • Aluminum yield stress (6061 T6): 270 [MPa]
  • Interpolated occurrence of yield stress: 15.2% of max. load
  • Safety factor: 0.152
  • Expected torque resistance: 41.0 [N-m]

40 [Nm] and 1 [Nm] Torque Load Nonlinear Elastic Run

As of predicted failure load from previous case, load is reduced accordingly. Stress above yield point appears at contact regions immediately. Theoretical stress at contact point is infinite, but the effect could be magnified due to lack of refinement or contact model. Mesh refinement in the contact region will be tested.

As contact stress might never go down bellow yield point, a failure criteria different than simple stress level might be needed, such as full plastification of a spline section. For this, plastic material model is needed. Stress redistribution due to local plastification might help with stress levels.

40 [Nm] Torque Load Nonlinear Elastic - Refined Mesh


The mesh was refined in the contact faces, which also correspond to stress concentration regions. This results seem more consistent and realistic. Yield point is still reached early in the loading, due to local contact stress, but overall stresses, specially in nearby areas, are kept low. In order to assess failure mode, plastic material model is needed.

120 [Nm] Torque Load Plastic


A bi-linear plastic model is implemented for the aluminum part, while the steel remains elastic. As expected, stress levels remain close to yield point, due to stress redistribution in plastic zones. Simulation fails to converge after 90% of the load, suspect cause is the combination of large deformations and physical contacts, in the root of the arm teeth. At this load level, no full plastification of the tooth profile is found, but considerable permanent deformation occurs. We will take the failure mode as the moment when plasticity forms all across the tooth section:

  • Maximum load: 120 [Nm]
  • Occurrence of failure mode: 40% of max. load
  • Safety factor: 0.4
  • Expected torque resistance: 48 [Nm]

Current Status / To Do

  • Find a way to achieve convergence at high load levels (~110 [Nm]).
  • Add fillets to contact regions in order to smooth stress, if needed.
  • Contact stress might never converge. Special failure criteria and corresponding posprocessing would be needed.


  • This post will constantly be updated to reflect project advancement.
  • Feel free to reply with comments or suggestions.


How did you isolate the maximum stress in the arm from that in the axle?

BTW: I made a copy of your sim, made some changes:

  • broke out the two holes in the arms to separate BCs and made one flexible to better allow the twisting.
  • ramped the augmentation coefficient.
  • increased the number of steps.
  • attempted to graph some point data.


I downloaded the results and used Paraview, it has a filter called “Extract Block” which allows to pick the desired solids.

Great! What were your findings?

I think my results are not conclusive, I have yet to run some more simulations to be sure.


Well, I’m still trying to wrap my brain around the output data – but at least I’m getting output :slight_smile:

I also downloaded the results and explored them with paraview and I produced a gif from the results of the last run that certainly looks a lot like the physical test results: https://ibb.co/mxDJJy

I’m now trying a run that uses the penalty method rather than augmented Lagrange as I’d like to see the penetration. I’m not sure if it’ll complete, and I’m unsure exactly what the penalty value represents – there are no units given – so I’ve no idea how representative the results will be.

I have a couple of things I like to try:

1 - Increase the thickness of the TA to 10mm. (I played with the onshape model, but that entire interface leaves me cold.

2 - Change the material of the existing TA to mild steel and see what that produces.

And, I’d like to get back to the multi-layer spring steel TA at some point, but I think I need to understand what I’m seeing here first.



What do you think about stress levels? I think they don’t look realistic at this point (at least in my simulations). Right now I am trying some refinements to the mesh and testing the augmentation coefficient.

Also I wanted to ask, have you carried any hand calculation for stress levels (at least approximations)? I think they would be useful to assess the simulation results.


All I’m seeing at this point is pretty colours and a maximum value in the legend; which I think pertains to the axle more than the TA. (I haven’t yet worked out how to do the block extract in paraview. I keep crashing it :frowning: )

That’s why I tried to extract a graph of point data just in front of the leading edge of the lead spline. I have some graphs, but I’ haven’t looked closely at them yet to understand what they are telling me.

No. I wasn’t involved in the testing of that design; I only predicted that it would fail, and the nature of the failure based in intuition and experience.

I do have this graph that was produced by the test rig (for a slightly different version of the TA):junk48

which is effectively a stress vs strain graph, and it should be possible to extract some pretty accurate numbers from that – but is 5.30am my time and I refuse to do math until I’ve had some sleep :slight_smile:

It’s worth noting that the initial yield point matches your 31N.m prediction very well indeed.



200N.m @0.01725/2 over 7*( 0.004 . π . 0.005)/4 = 210MPa.

But the average radius of the quarter circle contact area is less than 8.526, and the force acting per unit area falls off with the cos of the radius of the splines, but increases with the reduction in the distance from the centre of rotation.

And all of that assumes an exact fit (no machining tolerances or surface defects), and no distortion or elastic penetration; which obviously isn’t the case: https://www.simscale.com/de.simscale.webservice.SimScaleWebService/PostProcessorScreenshotDownloadServlet?uid=1656503609&sessionID=AU5x46kB-yrBvrJ_Papf0vXETe0w-kC9EIwLFAqPQFE&projectIdExt=5952868425123478486&resultUUID=75fde700-307a-4bbc-93a9-756ef2087a1d&operation=show

At the extreme, the sharp edge of the steel axle spines forms a line contact and a pretty ideal cutting tool on the softer Al. Peak stress from a line contact is a good approximation of infinite; it falls off rapidly as penetration progresses, but by then the slip plains are defined and the damage is done.

Looking at the literature, there are a variety of methods for simulating this; from the simplistic Kelvin-Voigt viscoelastic model, through many variations on Hertz theory, which all seem to be comprehensively rubbished, and Liu et.al which requires detailed knowledge of the clearances and materials.

I found this paper (Cândida M. Pereira, Amílcar L. Ramalho, Jorge A. Ambrósio. A critical overview of internal and external cylinder contact force models. Nonlinear Dynamics, Springer Verlag, 2010, 63 (4), pp.681- 697. <10.1007/s11071-010-9830-3>. ) which compares a bunch of different models, but basically concludes that they all produce different results but that

“Also, when involving the length of the cylinder on the contact forces, the conclusions on the validity
and precision of the contact models remain the same, i.e., the use of the Johnson and Radzimovsky contact models are recommended.”

Without in any way suggesting I understand it all, there is reference to a method which is briefly described as

“The exception is the force-penetration relation proposed by Lankarani and Nikravesh, with a modification of the pseudo-stiffness parameter and of the indentation exponent.”

which sounds at least superficially similar to the Physical Contact Penalty method offered here; but my attempts to use that have all failed.

Even taking the model (my current version of yours) as is from a working Augmented Lagrange run and switching the General setting and those for Connection 1 to the penalty method (nice to see that those parameters now issue warnings in the case of a mismatch :slight_smile: ), and dropping the penalty as low as 1000 (which is suggested somewhere in one of the help texts as how to get something to run), and it fails dismally.


This is a mere coincidence! We are a little far from conclusive results yet.


Why 2 torque values? And what does that mean?

Also, isn’t the reason for making the torque a function of “time” and producing results from multiple steps, that it allows you to investigate at those intermediate steps without needing to do multiple runs?

Ie. 200N.m ramped over 20 steps; compare & contrast imagery from steps 3 & 4 to see what was going on when the torque level transitioned through 30-40N.m.

What I’m trying to say is that I was (am?) expecting that the transition from elastic to plastic deformation of the Al spline(s) should show up as a distinct jump in the displacement; possibly (if we could model with fine enough resolution) with a distinct drop-off in the stress level as the Al yields.

I guess that changing the torque force formula to 20+20*t would zero in on the 20-40N.m range and might show something interesting?


Okay I was just noting it.

On a different note: In the Remote Force BC, there is a parameter “Deformation behavior” (you have it set to deformable), but to what is that related?

The face the force is being applied to (the axle face), the point from which the force originates?

I assume it has to be the axle face, but why would we want to model that as deformable?


Take a look at this project I just finished, it might shed some light in the remote point boundary condition usage:



They are just two different setups, different runs. You can check the project for details.

The reasoning for lowering the load is to have smaller increments (steps as you call them). That is because of the smaller the step, the more precise the solution is. It is just like making a zoom in the problem to focus on the region of interest.


Okay. I went to the beam project and dug my way through all the BC definitions in all 6 runs; and tried to relate the changes in those to the imagery produced; but without some annotation beyond the titles*, I cannot for the life of me see why you would use undeformable for the RFBCs in that project and deformable for the torque RFBC on the axle?

(*Something that at least said why the changes were made, what they are meant to demonstrate, I find it very hard to correlate the changes made with the results produced in order to reason about why they were made and what the results are showing me.

I also tried to divine something from the changes in the Reaction Force graphs you’ve produced; but again without some annotation to tell me what I should be looking for; they don’t inform me much.

This place is screaming out for the ability to compare the differences two between two sets of run setting.

And a way to view two sets of results side by side.

Anyway, I guess I am probably exasperating you now, so I’ll shut up and watch the project evolve over the next however long.


Did you read the project commentary? Feel free to ask questions in that thread, I will gladly try my best to answer them.


I did (yesterday) and now again, and I still see nothing that relates to your use of deformable in the axle BC.

(I do have questions about that demo – particularly relating to the description of using a remote force BC for the application of torque – and I’ll ask them there when I’ve whittled them down to concise questions.)