FEA accuracy is a topic that often provokes discussions. Without a doubt, there are FEA evangelists (I would include myself to the group!) and FEA disbelievers. So, let’s take a look and wonder how accurate is Finite Element Analysis.
FEA is almost like a calculator: it’s as accurate as its user. But it’s also quite complex, and there are certain inaccuracies involved, that you can’t influence. Those aren’t that tragic, however, provided that you know what you are doing!
Let’s take a closer look at what you can and cannot control when it comes to accuracy in FEA.
Ask the right questions!
Let’s start with the obvious part, and then move on to the more complex problems.
Firstly, FEA (like any other software) does what the users ask it to do. I mean, sure, if you are using a very “untested” FEA package done by high school kids… there may be mistakes in the “software” itself. But most FEA packages were around for decades. You may be more or less certain that FEA users found most of the issues years ago. That said, it is always a good idea to be careful… you know just in case!
But this is not what I want to cover here.
The biggest issue with FEA accuracy is the experience of its user!
Simply put, if you model something wrongly… it’s like asking the wrong question. Sure, you will get the correct answer… but not the one you were searching for!
This means that you should put special care into understanding the problems that you want to solve. And I mean really understanding stuff!
If you can’t estimate the outcome by hand… maybe you shouldn’t analyze it with FEA as well?
This is the biggest issue I think. I’ve seen so many models that were wrongly supported, wrongly loaded or simplified beyond reason! If you would analyze them, the “FEA” would work just fine, but the outcomes would be terrible (at best!). This is why you should really pay attention to details when you create, support and mesh your models.
I’m not advocating for overanalyzing stuff, but being able to predict what will happen when you simplify this or that is critical. Oftentimes such mistakes lead to tragically wrong outcomes.
Are the above case of FEA accuracy? To be honest I don’t know! I mean, in the end, you solved a “wrong model” and got the “correct but wrong” answers. Maybe this means this is indeed an FEA error! If that is the case, I would say that Finite Element Analysis may be dangerously inaccurate in the hands of the inexperienced engineer.
But of course, not everything is doom and gloom here!
If you know how to model, support and mesh your problem… there are only few small things you need to pay attention too. The rest will work just fine!
What can go wrong?
Putting aside the obvious human errors (and boy I did my share of those!), there aren’t all that many things that can really go wrong in FEA!
Let’s try to take a look at the most prominent sources of inaccuracy in the analysis.
When size matters!
I think that meshing would be the part that everyone thinks about instinctively when it comes to accuracy!
The most “obvious one” is that you can simply use “too big elements” in your model. Like the folks who were designing the Sleipner A Platform. Very simply put elements are a bit “blind” what is going on inside them. They have shape functions to give them that knowledge, but i.e. stresses are exactly calculated only in a few points in the Element area. Usually, those Gauss Points are sufficient, but if the elements are too big… extrapolation may be a bit too extreme. This, in turn, may cause problems.
This is a bit connected with the previous issue. If you have too big elements you will lose a bit of accuracy. But things will get uncomfortably worse, if you are using stress averaging (or “stress smoothing” if you like). This is the process that your FEA software does for you.
As you could learn in the elements and nodes article I wrote, each Finite Element will provide you with stress value in a node. This means you will get several different answers for stress value in each Node (one for each element that shares that node!). If the elements are small, the differences are usually really small as well, and you can simply ignore those. But if the elements are too big… well see for yourself:
Notice that averaged stress is 110MPa, while unaveraged stress is 142.5MPa.
One could argue that the above really is an FEA “mistake”. But of course, there is a human component to this as well! After all, designing engineer is responsible for checking if the element size is correct. And if that would be the case… the above wouldn’t significantly contribute to the inaccuracy of the analysis (by definition the element size is ok when the above effects are irrelevant).
The shape of you!
The next interesting phenomenon is the mesh quality. Of course you should check that in the ideal world, but of course, there isn’t always enough time to do it.
The idea here is, that if you have a Finite Element with a poor shape, then the outcomes this element will provid will be poor as well. In general, this is, of course, the case, but also the bad quality of mesh is clearly an indicator that something may be wrong.
What is funny is, that it is often not understood that the accuracy of “bad shape elements” does also depend on the stress field they are in.
If you imagine a plate with very poor element shapes, that is in constant tension… answers will be 100% correct! The best example of this is the Barlows classification. He divided QUAD8 elements into 4 “groups” showing how “bad” the shape can be:
Well… there is a 5th group as well: those are the elements that are so bad that they don’t fit in any of the above. But that is extreme obviously. Notice that “d” is always less than 1, simply because the above are defined in the element coordinate system (and in perfect element nodes coordinates are always +/-1 in both directions).
And you know what is funny? That the accuracy of the outcomes provided by those elements looks like this:
Did you notice? The error is 0 (zero!) if the strain is constant in the element. It’s “relatively small” if the strain is linear (d^2 is quite small at least). The problems start when you have quadratic strain.
And here… another shocker! Each element has a portion of constant strain, a portion of linear strain and portion of quadratic strain (those are for QUAD8 “second order” elements). And each error value corresponds with the portion of the strain it comes with. I know it sounds a bit complicated, but take a look at this:
Imagine this is the strain distribution in an element with poor quality. The constant portion of the strain was calculated basically with no error… and that is most of the strain! The linear portion of the strain was calculated more-or-less ok, while the quadratic portion was poorly calculated. Overall, the accuracy wouldn’t be so tragic!
And there is another twist! If your elements are “small enough” definitely most of the strain in the element will be linear! Simply because strain differs in your model for sure, but it’s almost constant in a “small enough” area. This basically means you have a really good shot with the accurate results… even if the mesh quality sucks. All you need in that case are small elements!
And if the mesh quality is high… then there is no problem at all!
Trust me, I’m an engineer!
All in all this all goes down to you and me as FEA users. Sure, FEA has some issues regarding mesh accuracy etc. We could spend hours debating Gaus Points and how to extrapolate outcomes. However, such discussion wouldn’t contribute much to the issue at hand. Truth is, that if we model whatever we are trying to do accurately, mesh it reasonable and do a proper analysis type… we are fine!
So let’s take a look at what we should really worry about, instead!
- Don’t oversimplify stuff! I’m a huge fan of simplifying stuff… but overdoing that may lead to really bad things. I recently did a revised designed check of a silo roof where a lot of problems were “missed” simply because the calculation model was too simplistic!
- Think about boundary conditions! There are so many mistakes you can do there. It’s a rare occurrence that supporting your model is “simple”. You can read a lot about it here!
- Be careful with meshing! I’m not super picky when it comes to mesh. But I definitely don’t ignore the subject as well. I think that a simple convergence study is sufficient to verify if what I’m doing is ok or not. If you are not sure, just mesh everything with twice smaller elements. If you still get the same outcomes… you are fine! Want to learn more about mesh convergence? Read this!
- Know what to search in post-processing! Getting correct results is great… as long as you don’t forget to check them! You know, verifying all that is to verify is a pretty important thing! Having correctly calculated deformations is useless… when you won’t check them after the analysis is done!
- Be careful with stress averaging! Yea… this! Just remember that somewhere there is a button that makes the outcomes “unaveraged”. If the differences between elements are “small enough” so you can tolerate them… you are completely fine!
- Don’t forget about stuff! The things you will forget will kick you in the ass. Forgetting to check fatigue, the stability of vibrations when they are relevant is a perfect recipe for failure. The same goes for linear models when nonlinearities should have been used. Always make an initial list of what problems are you expecting… and check your model accordingly. After all FEA accuracy is irrelevant if you forget to even analyze something important!
Want to learn more about FEA?
This is great! I have an online course that goes really deep into Finite Element Analysis… and you can get a free lesson from it by signing up below!
Common questions about FEA accuracy
Can an accurately analyze a real-life structure with FEA?
In short: of course! In fact, I did several such studies. Those included a perfect recreation of laboratory tests (capacity was established within 1-2% of lab results). I also managed to predict the failure load of a 40m pole that was tested in an original scale with 5% accuracy. I think that such precision in engineering design is perfectly sufficient, so yes real-life stuff can be analyzed accurately!
The problem is, that it may not be simple at the beginning. The more complex problems you try to solve, the more complex analysis will be needed. While deflection of a beam can be in most cases nicely estimated with a linear analysis… capacity of almost everything will require a nonlinear approach for example.
What is critical for accuracy in Finite Element Analysis?
I think that engineering judgment would be an answer. You may operate your software at an incredible level… but that won’t help you solve most of the problems really. It just speeds up the process of making mistakes.
The key skill is to be able to predict how the model will behave. What the proper supports or loads should look like. Estimate what type of outcomes are you expecting. And when it comes to “computational” accuracy, having a reasonable mesh is a big plus! When this all is covered, the rest is just fine!
If I would have to rank the “FEA things” in order of importance for accuracy I think my list would be:
- Boundary conditions (inc. loads): If you load or support your model badly… your analysis will fail. Simple as that.
- Forgetting about something: you know something like buckling, fatigue etc.
- Wrong analysis type: doing stuff the static linear way when a problem is clearly nonlinear or dynamic (or both!).
- Wrong mesh: this includes using averaged outcomes, too big elements, bad quality mesh, and all the jazz.
- Bad post-processing: Well… it can be even in place one if you forget to check your outcomes : ) But of course usually, things aren’t that bad!
- Poor geometry: This is rarely a problem really. I mean, sure geometry require some accuracy. But if a 10mm shorter element survives the load, chances are that the 10mm longer element will survive that load as well : ) Especially when you are designing a 20m long beam!
- Poor solver settings: I’m on the edge here. I mean, if you would try to prove me wrong I know that it’s possible to set a solver in such a bizarre way, that it would produce really stupid outcomes… but it’s almost impossible to do it “by accident” (just don’t mess with the increment convergence tolerances and you are fine!). Usually, poor settings will lead to no outcomes at all (and a lot of frustrations!) so since there are no outcomes, there are no mistakes in the outcomes as well!