CFD Online Discussion Forums

CFD Online Discussion Forums (
-   Main CFD Forum (
-   -   Has enyone developped code for CFD using FEM? (

HectorRedal June 11, 2011 10:45

Has enyone developped code for CFD using FEM?

I would like to know if someone has developped any code for CFD using the finite element method.

Right now, I am developping a code for CFD using the Finite Element Method.
I am using the scheme proposed in the following reference:

The Finite Element Method. Volume 3: Fluid Dynamics.
O.C. Zienkiewicz, R.L. Taylor
Butterworth Heinemann

I am using the so-called Characteristic-based split (CBS) algorithm (Chapter 3 of the aforementioned reference).

I have found an errata in one of the formulas, more precisely in the second step, of this algorithm.

I would like to know if any researcher has used this scheme, and he has managed to get reliable results using this scheme.

I have implemented this scheme on C++, and even thougth, I have corrected the errata in the code, the results I am getting are not convergent.

I would appreciate any information someone could give to me.

Thanks in advance.

Hector Redal.

Kevin De Smet June 11, 2011 11:30

CFDesign got pretty popular rather quickly and seemingly out of nowhere, I believe they use FEA for most of their CFD offering. Now they are part of Autodesk.

cfdnewbie June 11, 2011 13:38

are you looking for continuous (classica) FEM code or discontinuous FEM (DG)??

HectorRedal June 12, 2011 03:32

Hi cfdnewbie,

What's the difference between classica and dicontinuous FEM?

Pardon me, but I have never heard about this distinction.

Best regards,

cfdnewbie June 12, 2011 05:27

Hello Hector,

classical FEM is done with (as far as I know) at least C0 globally continuous basis functions, in other words, two adjacent elements share a DOF on their common side. This approach works well for solutions without strong gradients, but gets really messy with things like shocks if you want to do compressible CFD or multiphase or sth like that, FEM by itself needs some nasty tricks for stabilization.

Discontinuous FEM has only locally continuous basis functions, and no continuity across the cell face is enforced - in other words, there's a jump at the cell interface, like in FV. The coupling is done weakly by fluxes. This allows the treatment of strong gradients + efficient parallelization.

From my experience, anyone doing compressible CFD prefers DFEM over CFEM.

If you have any more questions, shoot :)


HectorRedal June 12, 2011 07:16

Hello cfdnewbie,

According to your explanation, I am using classical FEM, since the basis function I am using are C0 continous: continuity among the cells is applied.

Right now, I am trying to solve incompressible flows.
More precisely, I am trying to solve the clasical lid driven cavity flow for Reynolds number 1000.

You can take a look at the results I am getting in the following link:

Since I am trying to solve incompressible problems, I understand, that it is enough to use classical FEM.

After I get good results in incompressible problems, maybe I will try to extend the software for compressible problem.
But I think, that, first of all, I have to succeed to solve incompressibility problems.
And this is not easy.

Kind regards,

praveen June 12, 2011 09:09

There are many excellent fem libraries available which make it easy to write an fem code to solve any pde. See deal.II, fenics and freefem.

HectorRedal June 13, 2011 13:13

Hi praveen,

Thank you for your information.
I will try to take a look into the links you have provided to me.

Furthermore, I would like to say, that right now, I am trying to develop my Thesis in the field of FEM and CFD, and that's the reason why I am using the CBS algorithm proposed by Zienkiewickz and co-workers.

I am trying to look insde this algorithm for further study.
I don't know which schemes / algorithms the libraries you had mentioned are using.

Nevertheless, thanks for your help and support.


praveen June 13, 2011 22:03

All of them provide you things like, finite elements, quadrature rules, linear algebra, grid adaptation, visualization, etc. They dont have any schemes built in. You have to use it as a library and write your own code to implement your own scheme.

All times are GMT -4. The time now is 00:25.