The role of software and math in FEA
I used to think about the role of math and software in FEA as about two different phenomenons. But recently…21 November 2022
My relationship with 3D FEA is definitely love and hate. There are things I think are critical, and those that are completely unnecessary most of the time. Let’s take a deeper look into this today!
3D FEA has an advantage: there are things that you simply cannot solve in 2D. But of course, this doesn’t mean that 2D FEA is useless… actually far from it! Also, the answer strongly depends on what you mean by 3D and 2D!
I hope that I sparked your curiosity a bit! Let’s start with what it actually means that FEA is 3D or 2D!
This is seemingly a simple question. But to be honest, it isn’t! I also think that it’s pretty important to differentiate this, as engineers often say 2D or 3D FEA while thinking about different things!
I think that it’s quite obvious that you can have a 2D and 3D “space” in your model. This means, that you will have different “movement and deformation possibilities” in your model. I already wrote a post about the Degrees of Freedom so I won’t go into this here (read this if you are interested of course). Generally, it’s quite simple to show the difference between 2D and 3D “space”:
The problem is with names. Plate elements are often called “2D elements” while solid elements are “3D elements”. This makes it a bit “funny”. After all, you don’t know what someone means if they say “2D FEA”. They may be referring to a 2D space in your model or to the use of plate elements. I would say that a decade ago (maybe a bit more) using 3D space wasn’t very common (due to computing costs). Back then, 2D FEA almost always meant “2D space of the model”. Now, almost every software operates in 3D space “by default”. This means that “2D FEA” more often refers to plate elements! You can learn more about Finite Element Types in this post!
Thanks to a kind comment by David Oliviera on Linkedin I realized, that I’ve missed something. When I will be discussing 2D elements, I’m referring to plane stress elements. It’s also possible to have plane strain elements (where the length of the model is “long” and “constant” and we are analyzing a “section” of the problem). Somehow I’ve missed that while writing the post!
This gets quite ridiculous when you try to mix the above. In 3D it’s even ok since you need a 3D space to do 3D elements. But you can use 2D elements in a 3D space… is this 2D or 3D FEA then? Apart from obvious (2.5D!) I won’t even try to answer that, as I hate arguments about semantics!
But this is a serious thing, as, in the end, we will have to define what we are even talking about! This is why I’ve made all the “reasonable possibilities” listed below, divided by element types. I will refer to space as 2D and 3D, and I will call elements plates/shells (for 2D elements) and solid elements (for 3D elements) to avoid confusion!
I omitted 1D space since I don’t think it is used at all 🙂
It’s good to see, that while beams are technically a “1D element” its super easy to make a 2D or a 3D model from them. This is the “space” component that I’ve described above. Simply put you need to have a 3D space in your model to “build” a 3D structure from beams.
But there is also one more thing. If you make a 2D structure (a single frame above) notice that it’s not the same in 2D and 3D space. You don’t have to support the frame in the “out of plane” direction in 2D space. Simply put… there is no “out of plane” direction in 2D!
But if you copy the same model into a 3D space, suddenly it’s unstable… because it can “fall down” in the “out of plane” direction. This is why a 2D structure in a 3D space needs additional “out of plane” supports marked above! We will discuss the differences in a second!
But let’s finish with all the possibilities ok? Next, are the plate/shell elements:
As you can see, it’s the same as in the case of beams. I can do both a 2D and a 3D structure from my plate/shell elements. And if I have a 2D structure in a 3D space I still need to worry about out of plane supports.
And finally solid elements… not much to say here, since they need a 3D space to “exist”. This means there is really only one option:
All right! It seems like we know what we are talking about now, so let’s compare the 2D and 3D possibilities shall we? I will start with the “space”!
This is a good starting point. After all, one of the first things you have to decide, is whether you want to use a 2D or 3D space in your FEA model.
I get the feeling that several years ago, this choice was about computing time (3D models are usually bigger so they compute longer). Now, it’s more about the time you need to set things up (2D models are usually faster to make).
2D “space” is simply put “flat”. Something like the examples below:
I always felt that 2D “space” models are missing things. But this doesn’t mean that they have only negative sides. Let’s start with the positives then:
2D “space” positives:
The biggest positive (and I guess drawback at the same time!) is the lack of 3rd dimension. You don’t have to worry about supporting your model in the out-of-plane direction… since there is no such direction!
Also, there is less Degrees of Freedom to “consieder” in FEA, so the models will run faster (you can read more about DoF in this post!). I must confess that it’s difficult to imagine a model in 2D where computing would be a big issue (those are usually quite small to be honest). But, if you happen to have a “huge” model, that is totally flat… then this makes sense I guess!
I think that at this point you already know what the biggest drawback of a 2D space is… and of course, it’s the lack of the 3rd dimension! Usually, this is associated with the fact, that you cannot build a “real” 3D model. The difference is:
This is, of course, true, but I think that the real drawbacks lay elsewhere. It all comes down to accuracy (as always), and the amount of needed work!
2D “space” negatives:
It’s pretty easy to “forget” that you have a 2D model. For instance, when you analyze buckling in a 2D frame… nothing will buckle in the out-of-plane direction. Simply put, there isn’t such a direction in your model! BUT! In reality stuff can easily buckle this way. This shuold be analyzed of course, but your model cannot do that!
While in 2D you don’t have to worry about those out-of-plane supports it’s not all the same where they are in reality! It’s very easy to forget about such problems while solving 2D models!
But there is also question of how your model works. This is also easy to miss, but to explain that I will need an example!
There is something about your model that is sometimes called “spatial work”. In essence, you can try to simplify a 3D model into a selection of 2D problems, but it’s not always easy!
The best examples come from beam models, but this goes to plate models as well of course (you can’t have solid models in 2D, so they are out of the comparison for now). Let’s use a relatively simple steel hall building as an example.
If the situation is simple, things are simple:
Sure, you should be a bit careful about how you load a 2D model. Normally you would apply the loads on the roof to the purlins, and those would load the roof rafter (in a 3D model). However, in 2D you don’t have the purlins, so it’s reasonable to load the rafters with loads applied where the purlins will be attached. This is a small issue, of course!
The bigger problem comes, when something makes things “uneven”. Imagine, that your hall building has 5 of those 2D frames (so it’s long). But, in the middle frame, we have to remove the middle column (for whatever reason). I did a schematic to show what I mean – notice that the isometry is only the “left half” of the building and truss is actually in the middle (there is an identical right side, and a middle wall is a symmetry plane):
If someone would ask us to design this, but with a 2D model, it’s instantly clear that we need several of those 2D models right?
I can imagine that the procedure would look like this:
Firstly, we have to estimate the load on the truss. To do that, we can solve the frame in axis C, assuming that the truss is the support. Reaction forces on this support will be the load on our truss. Having the load, we can solve the truss:
Notice, that I had to cheat a bit. I’ve made a truss that is connected without a moment connection to the column (the original sketch had a rigid connection). Since I will analyze the “flat 2D frame” next, there would be no way to apply the bending moment in a perpendicular plane… it seems we are already hitting on problems!
Finally, having the load from the truss (no perpendicular bending moment!) I can make the Frame in Axis B, and calculate the “stronger column” I need there. And that would be it.
Modeling in 2D space:
As you can see, to use 2D modeling effectively you have to understand how things work. And this is a good thing! Definitely 2D modelin teaches you how structures work, and it’s awesome!
Is this less work than modeling the whole building? I would say that at this point… yup! Sure, we had to do several different models, but they were pretty easy to make. Also you get a chance to really understand how your models work this way!
We ran into some troubles through. If you will have elements that are bended out of plane (i.e. bended in two directions), you are done! There is nothing you can do about that in 2D.
… but this is not all. There is a cruel twist here!
I must admit, that I cheated you a bit, and I really hope that you’ve noticed it. If you did, then you can easily build 2D models! But I get a feeling that you also know, that it’s more work than reasonable in such cases!
I sneaked a really ugly assumption to the previous procedure. If you don’t know what was it, stop reading and go back and try to find it! I’ll wait here for you to come back 🙂
In *Step 1* I assumed that the truss is the vertical support. This is hardly the case! In reality, the truss deforms under the load. This means that in *Step 1* I shouldn’t assume vertical support. Instead, this is a spring in reality… and I don’t know the rigidity of that spring!
Of course, I could calculate the rigidity of the spring, but I would have to know the solution of the truss first. And this becomes iterative to some degree! The more truss deforms, the less rigid the spring. The less rigid the spring, the less load it will “take”, and the truss will deform less. Not to mention that I need to start somewhere anyway… and in the first iteration, I would assume the rigid support! It just shouldn’t be the end of the calculations!
But this is only part of the point! The bigger part is, that the roof rafters would have much worse working conditions in the middle frame (axis C)! This is because the middle support isn’t too rigid! This would mean that bending moments in the roof rafters would increase. Something we would completely miss in our procedure!
This is one of the good examples of support rigidity. If you want to learn more about it, definitely sign up for my free FEA course here.
I think that the above example nicely shows the limitations of 2D space. Whenever you try to use 2D modeling, you simply assume that you will be able to accurately represent what is happening in the “other directions” of your model. This doesn’t have to be a bad thing! Let’s take a look at the pros and cons:
If you know how to represent “the missing dimension” accurately – 2D is your friend! Of course, if the problem is relatively simple – then there is no issue with this at all! In either case, 2D modeling can really be fast and effective. Furthermore, it gives a certain understanding of how the model really works – and this is a good thing for sure.
I strongly believe that it’s good to model some things in such 2D schematics as I did here. It really teaches you how structures behave, and why. This is definitely an important skill to have!
In some cases, computing may be an issue. Without a doubt, 2D models will compute much faster. I’m not sure however if this is a real issue nowadays!
Did you notice that for more complex cases 2D modeling advantage depended on your skills? If you did notice what I cheated on in my example, you should be fine. But if you didn’t? Yup… 2D modeling forces you to make a LOT of assumptions. Not all of them are crystal clear all the time.
It’s just easy to miss that something is a spring, not rigid support, or that there will be torsion involved, or bending in the second direction, etc. In other words, it’s best to be careful and constantly think about how things work! 2D modeling isn’t as simple as engineers think! In some sense, it’s more difficult than 3D modeling!
It’s also pretty easy to forget that in 2D… you really do not have the 3rd direction. So there will be no buckling nor vibrations in the out-of-plane! This can lead to problems if you won’t realize this in time! This is why it’s often a good idea to model a 2D problem in a 3D space… simply so the elements can really buckle in the out-of-plane direction! This, of course, forces you to consider, where your 2D model is supported in the out-of-plane direction (and if the support is a spring!). This is why I showed you 2D models in 3D space before:
Of course, there are things you simply can’t model in 2D. But in those instances, you don’t have a choice, so I guess that there is no point to discuss that! If you really need an example, try to model and calculate this in 2D:
I think that everything is clear, but I want to drive the point home! Let’s take a look at the pros and cons of a 3D space!
3D space solves most of the above problems “automatically”. If I would model my hall building with the truss, I wouldn’t have to worry about the spring stiffness. The solver would “automatically” know, what is the rigidity of the structure, and act accordingly (no iterations needed too!).
I can’t also make some “stupid” assumptions about out-of-plane supports etc. Since I have all the elements in my model, their rigidity will be taken into account. I don’t have to assume anything.
Also, there are problems you can solve only in a 3D space… so this is an obvious advantage as well!
But of course, it’s not all sunshine and rainbows!
3D space is a time hog! It takes significantly more time to build all the models. It’s also easier to make modeling mistakes (and much harder to find them)!
But there is also something else… if you build a huge model, you lose “contact” with it! The bigger the thing, the more distant it becomes. It’s so easy to “get lost” in your huge model. And sometimes you will simply “believe” that everything is fine (even though you’ve literally “lost control” on what is going on in the model). This is a pretty dangerous thing!
A 3D model can “discover” something for you (like the truss rigidity impact on the outcomes). You can literally correctly take into account effects you had no idea that they exist! But this is a double edge sword, as it’s also easy to believe your “big and smart” 3D model… also when it’s completely wrong! And finding why it’s wrong will be much more difficult than in the case of 2D models!
This is the second part of the discussion! So far we have covered the “space” aspect of the 2D vs 3D! But of course, there is still the element part we need to dig into.
This may seem like the “more difficult” part of the problem, but it’s actually much less complex! In the space, we had to deal with assumptions, what we lose in 2D, and discuss 2D elements in 3D space and all that.
Here, we just have to compare 2D and 3D elements!
While this is much less complex, I think that this aspect causes A LOT of confusion and errors!
In fact, I think that using 3D mesh where 2D mesh should be used may be the most common FEA mistake out there!
If I had to guess I would say that 3D elements are the most common elements in FEA. There are many situations where using any other element type simply won’t work.
In very short, no matter how hard you try, you won’t be able to model this using 1D or 2D mesh:
The problem with 3D mesh is… that literally everything can be meshed with 3D…
I would never argue against using 3D elements when they are needed. But I know that those elements are greatly overused! In my Breakthrough FEA course, I refer to 3D mesh as the “mesh of last resort”. What I mean is, that you should use 3D elements, only if using 2D elements is not possible. There is a good reason for this, trust me!
The reality is, that 3D mesh is used wrongly in a tremendous amount of cases… because of CAD geometry! Every time I get a model from a Customer as an input, it is done as a 3D .stp or .parasolid file. This means, that each plate has a modeled thickness! It’s only natural to mesh something like that with 3D mesh… the model is practically prepared for it:
As you can see above, there are a few places where the model should be simplified, but apart from that geometry is ready for a 3D mesh…
And that is an issue, as in this particular case 3D elements will only hurt you! What should be done instead is preparing a “2D geometry”, or to be more precise a geometry ready for a 2D mesh. It’s actually quite some work! To the point that in many cases we started doing models “from scratch” in 2D instead of using 3D models… as de-featuring would take longer than creating the 2D model!
Whether you take the de-featuring route, or you start the plate model from scratch, finally, it would look like the one below (notice that each plate does not have a thickness, and all are connected in “corners”):
It took us a few hours to prepare the model above… It’s no wonder why people don’t want to do it… it’s time-consuming, and everything nowadays has to be done so fast!
The thing is, that every hour you put into that, you will get back in the accuracy of outcomes and analysis time!
Wait, what?! Accuracy of outcomes is lower with 3D elements?
But I’ve heard that 3D elements are the most accurate bunch since only they can represent the geometry accurately!
I think the above is the most typical response to what I just wrote at the end of the last section. And this is a sound argument we should deal with, to move through the topic.
The thing is, that in order to make 3D mesh to work, you need a LOT of elements. Mostly, because the 3D mesh was not created to model plates and shells (this is what 2D mesh is for!).
Simply put, to capture bending properly, you need several elements through-thickness of your plate/shell. While this may not sound like a big problem, it’s very easy to create a model with millions of elements… especially since you want to avoid HEX elements with poor aspect ratios:
You quickly start to realize, that plate structures (like the hopper above) simply cannot be done properly with 3D FEA… in a reasonable time!
And that is the main thing! It’s not that you cannot properly calculate a plate structure with a 3D mesh… you can! But, it will take ages! You will have to spend a lot of time waiting for computing to end – not the best tradeoff!
All, right! It’s all nice, but let’s wrap the 2D vs 3D Elements thing into one actionable rule:
2D vs 3D Elements!
If it is possible to reasonably model the element you analyze into 2D shell/plate model… this should be done!
3D elements should be reserved to solve problems that cannot be easily simplified to 1D or 2D element geometry (beams and plates/shells).
This is not only to save computing time. Using too few 3D elements (like 1 per plate thickness etc.) can really reduce accuracy of your analysis!
Let’s take a last look at what we covered here today:
Thanks for reading! I really hope that you like the article, and of course please share your thoughts in the comments below 🙂
This is awesome! I’ve prepared a special free FEA course for my subscribers. You can get it below.
10 Lessons I’ve Learned in 10 Years!