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!

barminFebruary 25, 2019 at 11:51 amI agree with you…for the most part 🙂

I think, that “some” CFD can be useful for FEA engineer , for estimating ie wind forces or something like that (order of magnitude, not the precise effects). Better to know “something” than nothing at all :).

About the good open CFD/FEA software, on the CFD field I belive that OpenFoam is generally top-notch, even outpacing commercial stuff in some degree.

For FEA, I’ll keep an eye on Calculix solver, as they are now implementing Riks algorithms into it, and it has same input file format as abaqus 😉

Just my 2 cents 🙂

Łukasz SkotnyFebruary 25, 2019 at 1:00 pmWell, it’s always better to know something rather than nothing for sure. I’m not sure however if I would trust my “something” enough to use the insights in an actual design 🙂

I will have to look into Calculix for sure… if they will implement Riks – now that would be something!

Thanks for dropping by… I have no clue how did you find this article so fast BTW… I haven’t announced it yet 😛

barminFebruary 25, 2019 at 2:28 pmPlanned features:

http://dhondt.de/pre_calc.htm

Source website etc:

http://www.dhondt.de/index.html

Seems you’ve so;ved the issue with browser refreshing :D. By “something” I meant- “well, this aerodynamic drag looks like someone with good CFD skills should have a closer look” 🙂

Łukasz SkotnyFebruary 25, 2019 at 2:56 pmWell, I didn’t but a wonderful person E. did 🙂

Ach ok… in that case this might be a useful skill 🙂

See you around!

Ł

Alexander KarachunMarch 12, 2019 at 8:42 amCFD is fun! But mesh/timestep/size of fluid domain convergence first, then fun)

Łukasz SkotnyMarch 12, 2019 at 9:54 amHey Alex!

Yea… to be honest, I have no practical experience. It looks to me like something requiring a pretty nice experience to be good at… and I’ve already done my Ph.D. 😛

But all those kind of calculations are fun in my opinion… you just have to be good at them to enjoy them : )

AdriaanMarch 12, 2019 at 12:15 pmI think the trick is to divorce numerical methods from application fields. At my university we where taught all the methods before we used them for they are traditionally “best” at. I use FEM, FD, and FVM for both structural analysis and fluid flow but in general (there are exceptions):

1. If you have complex 3D geometry and advection then use FVM but it is only 2nd-order accurate.

2. If you need maximum accuracy and you have advection then use FD but you must simplify the geometry and perform a conformal mapping the an equi-spaced grid.

3. If you have complex geometry and diffusion equations then use FVM but if you also have geometrical and closure non-linearity then use FEM.

Interestingly there are some structural problems where FVM is best – large deformations are easily handled by FVM (practically a hybridization if FVM and FEM) – AutoDYN for instance uses FVM , amongst others, which results in the so-called hydrocode solvers for material response to impact and detonation where the characteristic velocity of the “load application” us on the order or in excess of the acoustic velocity of the material.

The FVM does not exhibit the stability issues plaguing FEM for large deformations but it is less accurate.

Google “OpenFOAM and Large Deformation solver” to see some awesome stuff 😉

Love your blog btw!

Łukasz SkotnyMarch 12, 2019 at 1:03 pmHey Adriaan!

Awesome stuff… this is cool about blogging, I always get to learn something 🙂

Thanks for sharing that with us all… my Uni never taught us anything beyond very basics of FEA…

All the best Mate!

Ł

AlphaMarch 12, 2019 at 3:03 pmProbably one of the great piece of information I have ever read in 2019!

This is what it means to read a professional blog (I mean what I say).

The understanding obtained from this blog have made me feel or rather remembers the level of mastery I had in A level Physics,Chemistry and Mas(my score was at 96 percentile,that’s 10 yes ago)

Thanks for a great blog!!

Alpha

Łukasz SkotnyMarch 12, 2019 at 5:00 pmHey Alpha!

Wow… now that was something to read for sure 🙂

I’m not sure if I deserve such praise. I do what I can, let’s leave it at that

I really appreciate you being here and reading what I wrote – that is certain. It’s nice to know there are people around who enjoy my work 🙂

All the best

jeremy thelerMarch 12, 2019 at 6:05 pmHey Lukasz! I think it shouls ve stressed that FEA and CFD live in different spaces and cannot be used as options like “either FEA or CFD.” As you explained, FEA can be used for CFD (provided you stabilize the convection term). I use both FEM and FVM to solve neutron transport and diffusion (with my open-sour ce tool milonga https://seamplex.com/milonga) i.e. there are many many combinations.

Good to know someone has the will to explain it as you did.

Łukasz SkotnyMarch 12, 2019 at 7:54 pmHey Jeremy!

Nice to have you here 🙂

I’m glad that you like the post 🙂

ArashMarch 15, 2019 at 4:14 pmHello Lukasz. Wonderful blog! I am very happy that I found it today through your Linkedin profile.

I did my PhD in heat transfer and fluid mechanics field and I used CFD for a part of my research. However, due to lack of enough job opportunities for CFD people in Toronto, I want to start learning FEA! Some people would say it is too late for me now.I agree to disagree. I have friend who already went down this path and now he is successful in FEA as well.

I will dig out your blog to learn more. Thank you 🙂

Łukasz SkotnyMarch 15, 2019 at 5:38 pmHey Arash!

I think it’s never too late to learn! I wish you all the best on this journey. I really hope that you will find a ton of useful stuff here, also never hesitate to contact me if you will encounter any trouble!

All the best!

Ł