Web under local loads – Lessons learned
Let’s compare hand calculations, linear, and nonlinear FEA in solving the local loads in the web problem.22 February 2021
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 : )
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:
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.
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 do not exist! Elements more or less “describe” how nodes are connected (with equations). It’s convenient to draw elements, but in reality, the 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!
This is a common issue and you will find a lot of suggestions on how to deal with it. I will share them below with my thought on them:
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 a 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!
I will try to recap what I have written here:
There is a spoiler as well. I’m thinking about a simplified method of dealing with this. I need to discuss it with a few people (that are smarter and more experienced than me!) and if it is any good I will write about it soonish : )
This is great! I’ve prepared a free FEA course! Subscribe below to get it:
Join my FEA Newsletter