Mesh convergence with examples
Deciding on the correct mesh size is a rather difficult thing. The most accurate approach would be doing a mesh convergence check. I will show you an example of how to do it.27 July 2020
Somehow I never used triangular elements. Not that I knew why TRI are “bad”. I think I just didn’t like how they look (!). This saved me quite some trouble, proving that sometimes having luck (let’s call this a gut feeling shall we?) really helps! But you don’t have to rely on a gut feeling – let’s analyze the subject!
Triangular Finite Elements are stiffer in bending problems because they have constant strain across the element. This simply makes it impossible for an FE solver to calculate the bending response properly… unless a lot of TRI elements are used!
Let’s make a simple model and check what will happen – after all this is the best way to learn isn’t it?
Firstly we would have to dive deep into the mathematics of shape functions. And if you know me at least a bit you know that I won’t do that here. If you really want to you can torture yourself with any FEA book out there. But remember, you did it to yourself!
Instead, let me tell you this:
Table that has only 3 legs never wobble!
How clever that is huh! But you may ask: “Great, who cares?”. And the short answer is, your solver does!
As I wrote in another article about Nodes and Elements, Finite Elements don’t really know what displacement they have outside the nodes. So what can they do? Well, they do what every good student would… they interpolate!
Since the triangle has 3 nodes (another Captain Obvious quote!) you have 3 points in space… as with the table, this means that you get a “perfect plane” of deformation (I believe this is called the “displacement field”). In other words, if the displacements are linear (both in X and Y directions) you can perfectly predict them. The thing is, that strain is a derivative of deformation. Since deformations are described in a “linear” way, this means that the strain inside the element will be constant (derivative of a linear function is constant).
What does it practically mean… this:
This is a “normal” cantilever but notice how weird the actual strain (and stress) distribution is. This is because I used TRI3 elements, and on the entire area of the elements strain must be constant. The solver simply cannot calculate it any better… even if it wanted to! This, in turn, means that it creates some sort of a bizarre average.
The problem is, that strain changes along the height of the cantilever… but the TRI3 elements will only have constant strain inside their area… so they predict the outcomes very poorly:
Each TRI element “holds” constant strain… which makes it pretty difficult to “mimic” the real model behavior. Of course, unless there is a lot of those TRI elements!
I don’t know why, but when this is discussed usually focus is placed on deformations. I mean sure, TRI3 elements are stiffer, and they will underpredict in-plane deformation due to bending. But, as a structural engineer, I would say this is the least of the problems!
As you can see above, TRI3 elements will also underpredict strain… and that, in turn, will underpredict stress! And that is a much bigger issue I have with TRI3 elements!
The above chart can easily be for stress rather than strain, and it’s obvious that we are missing a lot of both!
I believe that the constant strain of TRI3 elements is a big problem. But I wouldn’t focus on underpredict deformations (even though this is an issue). For me, underpredicted stress is far worse!
One could say that “stress averaging” could be used. You know – I have values in some “spots” so let’s extrapolate those for better outcomes. This may work in some cases, but I always compare averaged and unaveraged outcomes anyway. I would not count on stress averaging to “magically fix stuff”. This is a dangerous assumption, especially when strain field is “weird” (like in most details in FEA models “weird”).
I did some internet searching for this topic. I even found that someone claimed that TRI elements are the order of magnitude stiffer… I’m not sure what that person meant precisely but I’m a do-it-yourself guy. Instead of writing all the equations, let’s do a simple example and see for ourselves what is going on 🙂
The hero of this example:
Firstly, let’s solve the problem, just so we know what to expect. This is this kind ot “math” that is really needed in FEA (you know, as opposed to the “solver math”!). Firstly, let’s calculate the section properties:
Then, calculating stress and maximal deformations is quite easy (as long as you know how to google for the equation of deflection in such a cantilever that is… no I didn’t know it by heart :P):
Now, we are ready to do some FEA!
While it’s super fun to estimate outcomes by hand, I don’t really expect “perfect fit” of FEA outcomes. Notice that I have a point support in my model that is bound to make some “stupid outcomes” nearby. I also introduced the bending moment as a pair of forces, which isn’t “perfect”.
Finally I know that this plate is too thick to be really consiedered a “plate”… but I modeled it in such a way anyway. It won’t cause much trouble in tis particular case!
I well remember my math teacher from uni. At one particular lecture, he attempted to solve the same integral using 2 different methods. After he finished the first method and got the outcome, he turned around and said: “I’m doing the riskiest thing any lecturer can do. I will attempt to solve the same problem in another way… if all goes well, I will even get the same result!”.
Yeah… let’s do the FEA shall we : )
Firstly, I did a very coarse mesh, to show you where the problem is:
Well… this didn’t go as planned did it? Deformations are 15% too small (yesss! we managed to prove that TRI3 element is too stiff!), but the stress is almost 3 times too small. That is awkward, so let’s try again: this time with smaller elements!
Well, deformations are almost ideal… but the stress still lacks 25% of the correct value! No worries though, I’m not done yet! let’s do another one!
OK, deformations are spot on… but we still “miss” 17% of stress. This is starting to be a bit uncomfortable… but you know never to give up and all that:
Well, we are getting there, but I want to move a bit faster. I decreased the mesh size to the point, where there were 10 TRI3 elements per height. This is when finally things start to work properly:
Finally, it worked!
So, let’s take a look at the outcomes in a more cohesive way:
As you can see TRI3 elements are capable of delivering correct outcomes. For deformations, it’s not even so bad in this case, but the correct stress value required a lot of those elements!
What to remember:
TRI3 elements in small numbers may underpredict deformations…
… but what is most important is, that you really need a lot of them to correctly predict stresses!
The above is a very simple model of a very simple example. Let’s try something more complex instead!
Below you will see a hopper analysis. The idea is, that you can fill the structure with gravel or whatever you have scattered around. This, in turn, causes pressures to the outside, and the hopper should be able to withstand those. As you will notice in a second one particular stiffener plays an important role in this… so obviously we need to pay attention to how we mesh it!
Firstly let’s take a look at how the failure looks like in model with a reasonable QUAD mesh and a TRI3 mesh. Note, that each QUAD element was “switched” for 2 TRI3 elements during remeshing (so there are twice as many TRI3 elements than QUADS). Computing in both cases was similar and took around 1200-1300s.
They look awfully similar, right? So now let’s compare the actual outcomes, see as a stability path below:
As you can see the TRI elements predicted capacity around load multiplier of 8… while the actual capacity (predicted by QUADS) is around 5. That is a 60% overprediction of capacity… OUCH!
I hope that the above two examples showed something. And that is that TRI3 elements aren’t perfect. Sadly, in “small amounts” they can lead to drastically wrong outcomes. This is never good.
But does this mean that TRI3 elements suck? No, not really. They come with a nice advantage:
Meshing with TRI3 elements is fast – not a lot of work for you to do, but it may not be just a “one-click” as it is often presented. Still, it is less work than with QUAD elements!
Is this alone an important enough factor to use TRI3 elements? I’m not sure. I guess this comes down to how long are you meshing your models, compared to how long they compute! TRI3 aren’t very effective in computing. Even though the same amount of elements computes much faster for TRI3 than QUAD4, but we should not compare it this way. To obtain “reasonable” results you will need to have far more TRI3 elements, and in such a case computing will take longer.
I usually run quite a few analyses on the same model (nonlinear this, nonlinear that, imperfections, different loads, etc.). This means that for me it makes sense to take a bit more time with QUAD meshing, as with each analysis I will get some of the time “back”. But if I would get a complex model and I knew I would have to do only one analysis overnight… meshing with very small TET3 elements may not be a bad call*.
*But I should note that in my career it was never “just one analysis”. Regardless of what you think at the beginning, there is always more to calculate than you initially assumed!
Are Triangular elements bad?
No, not really! I mean, if they were so super bad who would bother implementing them in the first place!
The problem with TRI3 elements is just that you need a lot of them, but at least you won’t put a lot of hours into meshing. This is an advantage.
The problems I’ve described above can also be solved by using “second-order elements” like TRI6. They have 6 nodes in total (there are additional nodes in the middle of each element edge). Those don’t need to have a constant strain and react far better to this issue.
Is it better to use QUAD elements rather than TRI?
This is an interesting question, and I would say yes!
But I think that my explanation may surprise you : )
As I wrote before QUAD elements require more work, but offer quicker computing for the same accuracy of outcomes. But you may not care about computing time all that much, and you may dislike meshing. In such a case TRI would be a perfect choice, but…
… people in FEA industry don’t like TRI elements!
You can provide a really good analysis, where mesh convergence was done and with a really good TRI mesh, but still people won’t be sure. I think that QUAD mesh just shows that you are a “professional” and that you “know what you are doing”. I was complimented several times on my QUAD meshes, and on some of the occasions, it was irrelevant!
Simply put QUAD elements make your analysis look pro… and this is a huge business advantage. It’s actually so big that I would say that it’s always worth to use QUADs : )
First of all, if you liked this article share it with your friends that might be interested in the topic. That would really help me out! Also, if you want to learn more about FEA, definitely sign up for a FREE FEA lesson from my online course below.
10 Lessons I’ve Learned in 10 Years!