CFD at NEMOSFLOW : what tools, what software?
As explained in a previous article, my job is to study the physics of flows via the numerical resolution of the equations governing the behavior of fluids. For this, a number of tools are essential:
✓ CAD software (Computer Aided Design), for the construction of the geometry and the mesh.
✓ CFD (Computational Fluid Dynamics) software, for the numerical resolution of the problem.
✓ A 3D visualization software, for the analysis of the results.
For each of these categories, multiple solutions exist. However, they can be separated into two large groups: commercial software and open source software. With NEMOSFLOW, I made the choice to specialize mainly in the use of Open Source software to process my studies. I take advantage of this article to justify this choice, and briefly describe to you those which I use the most currently.
The open source choice
By definition, open source software is software with source code that anyone can inspect, use, modify, and improve. This brings many benefits, which I have become particularly adept at.
Access to the source code allows you to know the slightest line of programming, and to understand precisely how the software in question works. In the world of CFD, this can be particularly useful for the optimization of a simulation, when one seeks to assess its physical relevance or to analyze problematic results, for example.
Optimisation and flexibility
Very often, Open Source software is natively designed to be easily modified by users (via the addition of additional modules, etc.). Thus, starting from the initial source code, it is possible to add something to meet your own needs. In CFD, this can for example be the addition of a new model or a new physical law, which will make it possible to correctly process the process that one wishes to model.
Security and stability
Known Open Source software has a very large number of users, including many experts. The transparency of the source code, and the many feedback from users thus ensure high quality of the software in question, and this on an ongoing basis. Moreover, this also guarantees its durability: Open Source software cannot disappear overnight following a change in a company’s policy.
Obviously, and in all honesty, free access to Open Source software represents an undeniable advantage in the context of an independent activity, thanks to the absence of the significant costs that may be present in the event of a commercial license.
Finally, the Open Source world is based on sharing, exchange and transmission of knowledge. Each user can bring his stone to the building, and work for the common good. These are values that I love, and that I strive to transmit through my activity.
Main used software
Although this list is not necessarily exhaustive, it nevertheless represents the essential of my current tools. The description that I make is also very concise, so do not hesitate to take a look at the mentioned sites.
OpenFoam is a multi-physics platform developed by OpenCFD Ltd, itself owned by ESI Group. Based on the finite volume method and mainly developed in C++, it consists of many solvers, each dedicated to a given type of flow. One of its strengths lies in the ease of implementing new models, thanks to the very intuitive syntax used in its C++ libraries.
This code is highly parallelizable. It is also provided with pre-processing (mesh, etc.) and post-processing (paraview) tools.
For more information : https://www.openfoam.com/
Code_Saturne is a fluid mechanics solver developed by EDF R&D. It is based on a finite volume type approach, and accepts most meshes encountered today (structured or not, compliant or not, elements of any type: tetrahedra, hexahedra, pyramids, polyhedra, etc.). This solver is designed for incompressible or weakly compressible fluids, with or without turbulence, with or without heat transfer. In addition, many modules have been developed, making it possible to deal with particular physics (atmospheric flows, combustion, turbomachines, MHD, multiphase flows, etc.).
Finally, this code is highly parallelizable and can be coupled with other software.
For more information : https://www.code-saturne.org/cms/web/
Syrthes is a software based on the finite element method, allowing to process heat transfers between solids: conduction and radiation in a transparent medium. It also incorporates evaporation and condensation models. Highly parallelizable, one of its great strengths lies in the possibility of being coupled with Code_Saturne, to study combined heat transfers and thus add convective exchanges to the whole.
Salome is a simulation platform developed by EDF, the CEA and other partners. It allows in particular to build geometries and meshes, and also contains post-processing tools. One of its strengths lies in the possibility of using python scripts, which automates the generation of cases and makes any type of parameterization easy.
For more information : https://www.salome-platform.org/?lang=fr
Gmsh is a software based on finite elements which allows to create, among other things, geometries and meshes. One of its strengths lies in the possibility of using scripts (syntax close to C), which automates the generation of cases and makes any type of parameterization easy.
For more information : https://gmsh.info/
Paraview is a data visualization software developed by Kitware, based on the VTK library. It is a very powerful post-processing tool, the principle of which is to apply different filters to the loaded data to arrive at the desired visualization, both in 2 or 3D and in the form of curves or others. It also allows for automation through the use of python scripts.
For more information : https://www.paraview.org/
The choice of Open Source is in line with my values and consistent with what I want to convey through my activity. But I would like to point out that it is above all a personal choice, far from any judgment towards internal or commercial software. In all honesty, I also regularly have to use them!
If you liked this article, or if you want to discuss it, do not hesitate to show up 🙂
See you soon.