I got lucky (I think!). At an early point in my career, I realized I won’t be able to learn everything there is to learn. Instead, I will focus on what I consider “fun” while giving myself some ease about other things. This is why there aren’t any CFD articles on the blog – I simply don’t do CFD at all. To be honest, I’m not sure if CFD is “fun”, but at least we can take a look at how FEA and CFD differs.
The difference between FEA and CFD is complex. Finite Element Analysis (FEA) allows you to solve Partial Differential Equations in a certain way, that is traditionally used for structural problems. Computational Fluid Dynamics (CFD) is a set of similar methods, but better suited for solving fluid-flow problems. Still… you can solve some CFD problems with FEA!
No worries, it will be clear in a second!
In the beginning, there was a differential equation!
It’s only fair to start here. No worries though, it won’t be “mathematically complex”!
I think that every engineering problem can be described with Partial Differential Equations (PDEs). The thing is, that those do not have closed form solutions for almost any cases (apart from those very simple ones with “easy” boundary conditions). This makes solving them quite impossible, at least at our current knowledge level (honestly, my level does not allow for solving even the simpler ones. Luckily you don’t really need that to use FEA!).
Since we don’t have a closed form solution (i.e. doing this “by hand” like in high school physics), we need to do other things to solve our PDEs. Over the years mathematicians developed several “mathematical approaches”. Those aren’t “accurate” but they produce very reasonable approximations. This is why you often hear that FEA or CFD “never gives accurate outcomes”. This is technically true, but if you use such methods correctly you will get tremendously accurate outcomes!
You shouldn’t worry too much about FEA/CFD accuracy: you will make far worse mistakes while defining your problem, than your solver while solving it!
The mathematical approaches worth mentioning are:
- FEM – Finite Element Method
- BEM – Boundary Element Method
- DEM – Discrete Element Method
- FVM – Finite Volume Method
- FDM – Finite Difference Method
Look’s like there is a method for everything huh? No worries, we can get through them quite easily really!
Solving the unsolvable problem
All of the methods I’ve listed above serve the same purpose. Using different “mathematical tricks” they solve the PDEs we don’t know how to solve analytically. If you know me a bit, you know I won’t go into mathematical details here, but I’m pretty sure that any FEA/CFD book will torture you with equations just fine : )
Here, we will just take an overall look at what is going on : )
Finite Element Method (FEM) is by far the most popular and easiest to describe. It uses the Galerkin Method to solve the PDEs. This approach is not “perfect” for various types of problems. Usually, engineers use FEM in structural, heat transfer, and electromagnetic problems. You could try to solve CFD problems using FEM (but as far as I know it wouldn’t be the same “code”, but rather the FEM could be adopted to solve CFD). It wouldn’t be great, however, because fluid flow is governed by Navier-Stokes equations. Because of advection-convection, those equations are a bit more complicated and FEM may perform poorly in many situations.
Boundary Element Method (BEM) is a different approach to solving PDEs. Two professors at my Uni were writing a solver that used this method, but sadly I never got interested in the field. I never had anything to do with it, but as far as I understand you only mesh the “boundary” of the problem you are trying to solve, and it can be pretty efficient when it comes to computing time.
Discrete Element Method (DEM) is a bit different. Think about it as a “particle method”. You divide the domain into particles, and then you describe how those can interact with each other. One of the bigger problems is how to decide if you should check which particles are “close enough” to interact, as checking possible interactions between all takes ages! This is a really cool method if you want to check how a material will discharge from a silo (since silos store granulated stuff).
Finite Volume Method (FVM) and Finite Difference Methods (FDM) this is where it gets murky for me. Usually, those methods are used in CFD, and since I don’t really do CFD (and I dislike mathematics) I never got into reading about them! As far as I understood from reading Wikipedia (you know it must be right, I’ve read it on the Internet!) FVM focuses on dividing your model into nodes, and each of them has a small volume around it assigned to it. Pretty nice huh!
So what is the difference between FEA and CFD?
Finally, we can get to the point where the discussion is easier 🙂
Finite Element Analysis (FEA) is like the “practical” branch of FEM. I will get to the difference in a second, for now, let’s consider this is the same thing.
The goal is of course to solve particular PDEs, but this doesn’t sound too sexy, right? I completely get that! Sometimes such descriptions (for me anything containing “differential” to be honest) are so far away from the reality it’s hard to imagine what is going on!
So let’s make it simpler! Imagine you have a bracket like that, and that you want to know how the stress goes through it:
There are PDEs that describe that… but even if you would write them, solving them analytically wouldn’t be possible. So what you do instead is, you divide the bracket into small pieces (called Finite Elements), and in each piece, the “mathematics” are easy enough to solve. This way you can actually establish how the stress field looks like!
You used Finite Element Method applied for a practical problem – this is what people reference as Finite Element Analysis!
If you want to learn more about how to do FEA, definitely check out my FREE FEA Essentials Course:
Computational Fluid Dynamics (CFD) does a very similar thing… but for fluid-flow problems. But instead of using FEM to solve the equations, in this case, you will most likely use the Finite Volume Method or Finite Difference Method.
I’ve read somewhere that it’s “unfair” to say that FEM/FEA is for structural problems and CFD is for fluid related analysis… but I’m willing to write this anyway. Sure, you could use different methods I’ve listed above to solve any problem. However, some methods will solve one set of tasks more effectively than others. I think that the trend is obvious:
Finite Element Analysis (FEA) is a mathematical approach based on Galerkin method that allows you to nicely solve a lot of structural problems (including heat transfer and electromagnetism).
Computational Fluid Dynamics (CFD) most often uses Finite Volume Method (FVM) and Finite Difference Methods (FDM) to solve fluid-flow problems.
You can of course mix the solution schemes for various problems, but the above seems to be the most popular approach.
More on the difference between FEM and FEA
I think that this is a really important question… if you want to learn FEA.
As I wrote before, the Finite Element Method is the mathematical tool that is used in Finite Element Analysis to solve PDEs. But what does this means in practice?
While FEM and FEA are often used interchangeably, there is one big difference I think it’s good to be aware of:
Finite Element Method (FEM) referes mostly to complex matchematical procedures used in your favorite solver. Think about it like a theory manual, lots of equations and mathematics.
Finite Element Analysis (FEA) is usually used in the context of applying FEM to solve real engineering problems. Sadly, there is far more FEM books than FEA books, but it is obvious that practical application will attract a lot of interest… so many of the FEM books started to use FEA in their titles simply to boost sales (while still being only mathematical and theory manuals). I even saw a book that claimed it’s the “practical FEA manual for the industry” and still inside there are only matrix operations and mathematics. Somehow people think that if you are solving matrix equations on “numbers” rather than “symbols” this makes it practical already…
This means that FEA should refere to practical problems, but often may also point out to theory (depending on the source). On another hand FEM always refer to theory and mathematics (I haven’t seen an example when that was not the case).
I guess it’s quite clear at this point that I’m a very practical dude… I simply do FEA design for a living (with a bit of blogging and teaching here and there). This means that I’m interested in how to apply FEA to practical problems. The above means that by definition I would not be interested with books about FEM (lots of theory), but I’m also very selective when it comes to books about FEA (it’s so hard to find good materials :/).
However, my friend made his Ph.D. in upgrading some algorithm that calculates material yielding much more efficiently (yea… he is that geeky!). He would most definitely be interested in FEM books, while he might consider FEA books “too shallow” or “not on point”.
I’m not saying that FEA is better than FEM (or vice-versa). They are simply completely different! If you want to learn more, you can read an article I wrote on this topic!
Common questions about FEA and CFD:
What offers a better career: FEA or CFD?
To be honest, I don’t know! I’m really happy with what I do in FEA, and without a doubt, good FEA skills can have a dramatic impact on your career. You can read about my FEA story here.
That being said, I’m not using CFD at all! I can only imagine it offers the same amount of bang if you are good at it! I mean, this is useful stuff with all the valves, airplanes and ships. There is definitely a place for a CFD specialist in the market.
I wouldn’t try to differentiate which is better. I think it mostly depends on what you can do with it. For instance, I’m not an expert in “entire FEA”. I mean you can’t be! There is simply too much of this stuff. For the last 10 years (and a Ph.D.) I worked mostly on the shell and other thin elements stability. This is what I specialize in, and being a specialist really helps to spread your wings! I’m sure that CFD is also divided into “categories” so while you learn about all of them at the beginning, you should specialize in one of them at some point.
That said I think it’s not the best approach to learn both FEA and CFD. You can of course, just as I can. I just think that if I learn a bit more in my field it will give me far more than learning (even a lot) in CFD… simply because I will be a mediocre CFD user at best (there are people working in the field for decades for sure!). I could try to catch up to “everyone”… but this would take time where I could develop my own expertise in “my” field… I’d rather work on that, as it gives me a competitive edge! Sure I will eventually branch out (to composites stability for instance), but I don’t think that being an “expert” in everything is a good way to do it.
I wonder if you agree with such an approach – let me know in the comments ; )
What are good open source FEA and CFD codes?
This is a great question. Sadly “commercial” software tends to be AWFULLY expensive. Ok, I admit I live in Poland, and there are Countries where the prices may not be as absurd, but I heard a lot of complaints about the prices from people living all over the world, so I guess that the pain is universal : )
Using open-source software may be a great solution!
I would say that for FEA, the best one would be Code_Aster. I never used it before, but I’ve heard a lot of good things about it. Also, a friend is learning it right now, and I’m close to convincing him to write stuff on the blog : ) The big drawback is, that Code_Aster documentation is in French… for me it would be a really little difference if that would be Aramaic, to be honest!
CFD open software of choice would be OpenFOAM. Again, I haven’t used it myself, but I’ve heard so many good things about it, that something must be in them 🙂 If you are into CFD, definitely check it out!