Stress singularity – an honest discussion

Arjen asked me recently about stress singularity. There are quite a few articles about this issue already (it is a common problem I think). But I want to bring something to the discussion as well : )

Stress singularity basics

I’m sure you have heard about it, so I will be brief. Stress singularity is basically a place where stresses are “theoretically infinite”. I think that the most famous example would be a point load. When you apply the load to a point (no area), the stress is infinite (force is divided by zero area). There are of course other examples like:

  • Point load
  • Boundary condition applied to a point (point support)
  • Sharp “inside” corner
  • Contact on a sharp corner

Note, that this is not exactly a stress concentration. A lot of geometric features “concentrate” stress around them. I don’t want to go into details here, but in general, such problems have a “finite answer”. This means that in stress concentration you will actually get a convergence of the outcome with mesh refinement. If you are interested in learning how to perform mesh refinement be sure to check my free FEA essentials course!

When it comes to stress singularity you can think about it as a “mean and ugly sister of the stress concentration”.
No matter how much you refine mesh there will be higher and higher stress all the time!

How stress singularity works

I must admit that I would have trouble explaining this on the sharp inside corner example. This is most likely one of those things I miss with my attitude toward learning the math behind FEA. If you have read a nice explanation about this one please share a link in the comments (or your thoughts on it). I would love to read about it more : )

Here I will use a point load case since this is the simplest to use (and illustrate!).

Maybe you have heard about it somewhere: FE elements does not exist! Elements more or less “describe” how nodes are connected (with equations). It’s convenient to draw elements, but in reality, solver sees nodes connected together. Picture it this way: mesh consists of nodes connected by springs!

This is important here! You see, when you apply the load to a node, you didn’t actually load a “point”. Instead, you loaded the “space” around that node. Since your model has nodes and space between them, outcomes are a bit tricky. What you see on the screen is more or less an average of values assigned to the closest nodes. Simply speaking you are loading a node and “part” of each element that shares this node.

Now the thing becomes simple. If the elements are “big” the area that is “assigned” to the node is quite big as well. You have a force divided by this “area” that give you stress you see in your post-processor. After all how often did you saw an actual “infinity” on the scale?

From there, there is only one more step to understand this! If you make the elements smaller, the area “assigned” to the loaded node will be smaller as well. Since the force is always constant and with mesh refinement “assigned” area decreases… stress is higher and higher. It will never converge! The more you refine the mesh the higher the stress will be!

Fun fact: If a woman weighting 60kg stands on one high heel (0.5×0.5cm area) the stress is… 24MPa. Enough to smash concrete surfaces (at least the medium and weaker ones)… which as we know doesn’t really happen!

Common solutions

This is the common issue and you will find a lot of suggestions how to deal with it. I will share them below with my thought on them:

  • Ignore the singularity: The “big” one. There is some merit to it. Saint Venant’s Principle teaches that if you are “far enough” from the source of singularity you are fine. But I always had a problem with this one. After all whatever is causing the singularity is there in reality right? I agree that the load is not on “point” as in the model. It is applied to a small area instead! This means IT IS THERE! You should expect higher stresses in that region. Sure, they won’t be infinite, but this doesn’t mean you can ignore them altogether! I think this is a common mistake. People simply ignore the outcomes near the singularity, not thinking about what really happens there.
  • Add an area: This is a reasonable choice but you can’t apply it all the time. If you have the load on a small area simply model it this way. All is nice, and this solves the problem. Issues are of course with modeling which may not be very “practical”. You can do the same thing for supports – but it is a bit more tricky because of boundary conditions.
  • Model a fillet: I really dislike this. I think this is a blanket answer to the sharp “inside” corner problem. Usually, the answer goes like: “it’s impossible to make a perfect 90deg corner. There is always a small fillet – model it!”. I perfectly understand that this is true. However, practically speaking this is a complete utopia! If you have an element that is 10x10m and you need to analyze it as a whole, adding a 0.1mm fillet (with accurate mesh there!) isn’t all that great as a solution I would say! Sure there are cases when this is an only option, just don’t go there by default!
  • Make a smaller separate model: This makes sense in some cases. If you have a big model and there is a detail you need to check… just make a small accurate model and check this detail. Be aware however that usually, it’s pretty difficult to assign proper boundary conditions to such cut-out elements. You need to be very cautious here for sure!
  • Use nonlinear material: This is actually a great option. Stresses will be limited by yield, and you will simply get some plastic strain. Sure in place of a point load this strain can be very high, but in many cases still “acceptable”. It’s quite possible that this is the “cheapest” method when it comes to time, but of course, this also is something that you can’t use all the time.

Things to consider

It is easy to see that the problem is complicated – this is why there are so many approaches! Without a doubt each one of them is useful, simply otherwise they would not appear in all those articles (mine among them!).

I would say there are few special cases where you need to be extra careful. The one I want to mention the most is fatigue! If you want to solve the fatigue problem – stress singularity will make your head spin! Simply put you can’t ignore it (since it is critical to safety!), and you won’t use yield (unless you want to check against low-cycle fatigue which may not be the goal).

This usually means, that when fatigue is involved those small fillets and modeling of areas on which load is applied really does happen in complex models. Again, it is worth mentioning that in many cases creating a separate more detailed model may be a good idea. Just be cautious about boundary conditions!

Summary

I will try to recap what I have written here:

  • Stress singularities are a result of simplified modeling (which is completely reasonable).
  • Making more accurate model will solve the problem (but requires time that sometimes will simply be too long!).
  • Making a smaller model with sufficient details may help. Care should be taken for boundary conditions in such case.
  • Outcomes “far enough” from the singularity are ok thanks to the Saint Venant’s Principle.
  • Ignoring outcomes in stress singularities seems a common approach. Sadly this shouldn’t be done, as usually the effects are there for real (they are simply overestimated). Ignoring the outcomes altogether in that region will be risky!
  • Usually using nonlinear material means that in singularity region material yields. This solves the “infinite stress” problem. However plastic strains in those regions can be high, and should be checked as well!

There is a spoiler as well. I’m thinking about a simplified method of dealing with this. I need to discuss it with few people (that are smarter and more experienced than me!) and if it is any good I will write about it soonish : )

Do you want to learn more about FEA?

This is great! I’ve prepared a free FEA essential course! Subscribe below to get it:

Free FEA essentials course!


14 Comments

  1. J. Voermans December 20, 2017 at 11:24 am - Reply

    This is a very nice book on FEM, espcially part 3.

    Plates and FEM – Surprises and Pitfalls

    Enjoy reading!

  2. Phill Le Mottée December 22, 2017 at 6:30 am - Reply

    Often singularities once understood can be rationalized and identified as specific contact or connections. In these cases the straight forward approach is to take loads from the model (grid point force, spc force or indeed applied load ) and deal with the local issue using classical hand analysis. This is frequently cheaper and far more efficient on budget and schedule. Too many fea focussed engineers try too hard to stress an item by fea colours rather than apply logical rationalisation and time proven classical hand analysis.
    A typical example is where in a bolted joint under extreme loads in shear one bolt in fea is assumed to fail and indicates a singularity whilst adjacent bolt is low loaded. This is impossible in practice with all things equal the “give” due to elastic strain will cause load shed to redistribute the load in the joint.
    The effort I’ve witnessed engineers go to try and “model it out” is insane. So the message is “STEP BACK AND THINK ABOUT THE REAL LIFE PROBLEM WITH A PRACTICAL HEAD”
    This applies in some form to many singularity issues and is prominent at interfaces that do not account for material abutment.
    This is an important subject and often poorly communicated concepts applied offering over complex “solutions”

    • Łukasz Skotny December 22, 2017 at 10:11 am - Reply

      Hey Phill!

      This is a great point! Of course, this application has limits, but overall I agree. A lot can be verified with simple hand calculations and this is usually a great thing to do! Thank you for bringing this up – a really valuable comment for sure!

      All the best!
      Ł

  3. Henrik Sönnerlind December 22, 2017 at 2:48 pm - Reply

    Hi Lukasz,

    Always interesting to read your blogs. It seems that we have similar ideas about several topics. Here is a blog post I wrote on the same topic a couple of years ago:

    https://www.comsol.com//blogs/singularities-in-finite-element-models-dealing-with-red-spots

    Regards,
    Henrik

    • Łukasz Skotny December 24, 2017 at 1:04 pm - Reply

      Hey Henrik!

      I’m glad that you like my blog – very nice to hear, especially from you!

      I will definitely read what you have written – great to read others opinions on a subject – it nicely broadens perspective!

      All the best
      Ł

  4. LUIZ HENRIQUE ECKSTEIN May 12, 2018 at 1:17 am - Reply

    Beginners like me, it’s a bit difficult to understand stress singularity, but after understanding it, the world change to better. This article goes beyond, It helps us understand the particularity (superficial sometimes is essential) and gives some tricks to find alternatives like “look for a sister”.
    Good article.

    Luiz Eckstein

    • Łukasz Skotny May 12, 2018 at 4:27 am - Reply

      Hey Luiz!

      I’m really happy that you like it! Understanding stress singularity indeed is great, but I will raise the bar higher for you – understanding nonlinear FEA changed my career – tackle with that, it’s really worth it!

      All the best
      Ł

  5. Alexander May 18, 2018 at 7:50 am - Reply

    To simple the scheme: there are only three variants
    1. Ignore the singularity
    2. Resolve singularity (it is yours 2-4)
    3. Use nonlinear material

    • Łukasz Skotny May 18, 2018 at 12:10 pm - Reply

      Hey Alex!

      More or less you are right. I will just add that “ignoring the problem” rarely is the best solution, but sometimes is a reasonable approach. It would, however, require some knowledge from a person ignoring the problem : )

      All the best
      Ł

  6. Jurgen May 19, 2018 at 9:17 pm - Reply

    Yes. That’s the one. Thanks for your nice blog.

    • Łukasz Skotny May 20, 2018 at 3:54 am - Reply

      Hey Jurgen!

      I’m really glad that you like it!

      All the best
      Ł

  7. Stathis kardaris March 22, 2019 at 10:26 am - Reply

    Great tutorial Łukasz!

    The solution i have found in case of stress singularities is to turn the stress values to “element mean” in port processor instead of “Nodal averaged stress” in order to “stretch” the stress results into elements instead of nodes. That solution eliminates the problem of stress singularity (of course still exists!) but in combination with relatively small elements in the area of interest sims to work.

    • Łukasz Skotny March 22, 2019 at 2:20 pm - Reply

      Hey Stathis!

      I’m not sure if that would completely solve the problem (as you yourself noted). I guess this also depends on what Ansys does with the outcomes (and which outcomes BTW) when you use “elements mean” option. Did you ever try to learn that? That would be interesting to learn 🙂

      All the best, and thanks for posting!
      Ł

Leave A Comment

Do NOT follow this link or you will be banned from the site!