Code saturne
logiciel informatique
From Wikipedia, the free encyclopedia
code_saturne est un logiciel libre de mécanique des fluides numérique (CFD) développé par la division recherche et développement d'EDF. Publié sous licence GNU GPL depuis 2007, il repose sur une approche volumes finis co-localisés et permet de simuler des écoulements incompressibles ou dilatables, avec ou sans turbulence et transfert de chaleur[1].
| Développé par | EDF |
|---|---|
| Première version | |
| Dernière version | 9.0[1] () |
| Version avancée | 9.0.1[1] () |
| Dépôt | « code_saturne sur GitHub » |
| État du projet | En développement actif |
| Écrit en | C++, C, Fortran |
| Interface | Qt |
| Environnement | GNU/Linux, Unix, macOS |
| Langues | Anglais |
| Type | Mécanique des fluides numérique |
| Politique de distribution | Gratuit |
| Licence | GNU GPL |
| Site web | code-saturne.org |
Le logiciel est intégré à la plate-forme SALOME via la distribution salome_cfd[2] et peut être couplé au code de thermique solide SYRTHES ainsi qu'au code de mécanique des structures code_aster, tous deux développés par EDF sous licence libre.
Son extension diphasique, Neptune_CFD, co-développée par EDF et le CEA, permet de traiter les écoulements à deux phases (mélanges eau-vapeur, eau-air)[3].
Historique
Le développement de code_saturne débute en 1997 au sein de la division R&D d'EDF, initialement comme outil interne destiné aux études de sûreté nucléaire et de thermohydraulique des centrales nucléaires[3].
En , EDF publie le code sous licence GNU GPL, adoptant un modèle de développement ouvert[4]. Cette ouverture favorise l'adoption du logiciel par des partenaires industriels et académiques en France et à l'international.
Le logiciel a depuis été retenu comme application de référence dans le cadre du projet européen PRACE (Partnership for Advanced Computing in Europe) pour l'évaluation des performances de supercalculateurs[3].
Fonctionnalités
Méthode numérique
code_saturne résout les équations de Navier-Stokes par une méthode de volumes finis co-localisés. Il accepte des maillages de tout type — structurés, non structurés, hybrides, conformes ou non conformes — et des éléments géométriques variés : tétraèdres, hexaèdres, prismes, pyramides ou polyèdres quelconques[1].
Les écoulements simulés peuvent être stationnaires ou instationnaires, laminaires ou turbulents, isothermes ou non, incompressibles ou compressibles[3].
Modèles de turbulence
Le logiciel dispose de nombreux modèles de turbulence couvrant les approches :
Modules physiques spécifiques
En complément du solveur généraliste, code_saturne intègre des modules dédiés à des physiques particulières[1] :
- Combustion : flammes de gaz (diffusion, prémélange), combustion de charbon pulvérisé avec suivi lagrangien des particules, et simulation d'incendie
- Rayonnement thermique : transfert radiatif en milieux semi-transparents
- Écoulements atmosphériques : couche limite atmosphérique, stratification thermique, dispersion de polluants
- Suivi lagrangien de particules : transport de particules, gouttelettes ou bulles dans un champ eulérien avec couplage inverse
- Magnétohydrodynamique : couplage des équations de Navier-Stokes et de Maxwell
- Turbomachines : maillages tournants avec interface de recollement glissant (sliding mesh).
Parallélisation et couplage
Le code est parallélisé à l'aide de la bibliothèque MPI, ce qui lui permet de fonctionner sur des architectures de calcul haute performance[3]. Il peut être couplé au code de thermique solide SYRTHES et au code de mécanique des structures code_aster, notamment via la plate-forme SALOME.
Interopérabilité
code_saturne est compatible avec différents types de maillages (éléments polyédriques quelconques, non structurés), avec gestion de recollements non conformes. En revanche, il ne dispose pas de mailleur ni de module de visualisation intégré, mais il est compatible avec de nombreux outils et formats standards[5].
Formats de maillages reconnus :
Formats de sortie (post-traitement) :
Domaines d'application et utilisateurs
code_saturne est utilisé dans un cadre à la fois industriel et académique, en France et à l'international. Environ 500 ingénieurs et chercheurs l'emploient au sein d'EDF[3].
Énergie et sûreté nucléaire
Initialement conçu pour les études de sûreté des installations nucléaires, le logiciel est utilisé pour l'analyse des écoulements dans les circuits primaires, le refroidissement, les transferts thermiques couplés fluide-structure et l'étude des générateurs de vapeur. Il est également employé pour la modélisation de fermes éoliennes, notamment l'étude des interactions entre turbines et l'optimisation de leur implantation[3].
Environnement et atmosphère
Le logiciel est employé pour la modélisation des écoulements atmosphériques, la dispersion de polluants, la qualité de l'air et les interactions entre le vent et les structures[3].
Hydrodynamique et industrie
code_saturne a été utilisé par des industriels pour des applications d'hydrodynamique, notamment dans le domaine de la construction navale[6].
Recherche et enseignement
Le logiciel est employé dans des universités et des organismes de recherche pour le développement et la validation de modèles numériques, ainsi que pour l'enseignement de la mécanique des fluides numérique.
Développement et communauté
Le développement est piloté par la division R&D d'EDF. Le code source est hébergé sur GitHub[7]. Les versions sont publiées selon des cycles réguliers.
Une communauté d'utilisateurs, regroupant des ingénieurs et des chercheurs du monde industriel et académique, contribue au projet par le développement de modèles physiques, d'outils associés ou de cas de validation. Un forum officiel[8] et une documentation technique (guides utilisateurs, manuels de référence, exemples) sont accessibles sur le site du projet.
Publications
Les fondements numériques et la validation de code_saturne sont décrits dans plusieurs publications scientifiques :
- F. Archambeau, N. Méchitoua et M. Sakiz, « Code_saturne: A finite volume code for the computation of turbulent incompressible flows - Industrial applications », International Journal on Finite Volumes, vol. 1, no 1, (lire en ligne)
- Y. Fournier, J. Bonelle, C. Moulinec, Z. Shang, A.G. Sunderland et J.C. Uribe, « Optimizing Code_Saturne computations on Petascale systems », Computers & Fluids, vol. 45, no 1, , p. 103–108 (DOI 10.1016/j.compfluid.2011.01.028)
Disponibilité
code_saturne est principalement destiné aux systèmes de type Unix. Il fonctionne sous GNU/Linux et, plus généralement, sous les systèmes Unix.
Le logiciel est distribué sous forme de code source, téléchargeable depuis le site officiel « Téléchargement », sur code-saturne.org (consulté le ). Des paquets précompilés sont également fournis pour certaines distributions GNU/Linux, notamment Debian et Ubuntu.
Des images de conteneurs compatibles avec Docker et Singularity sont proposées afin de faciliter le déploiement sur des stations de travail et des environnements de calcul haute performance. Ces binaires et images de conteneurs sont disponibles à la fois sur le site officiel et via la plate-forme Open Simulation Center« Téléchargement de code_saturne », sur Open Simulation Center (consulté le ).
Sous Windows, Code_Saturne n’est pas disponible nativement, mais peut être utilisé à travers le Windows Subsystem for Linux.