Gerris
Description de l'image Gerris logo.png.
Description de cette image, également commentée ci-après
Champ de vent autour du RV Tangaroa
Informations
Première version
État du projet Développement terminé
Écrit en C
Système d'exploitation Unix et LinuxVoir et modifier les données sur Wikidata
Environnement Unix, Linux
Type CFD
Politique de distribution Gratuit
Licence GPL
Site web gfs.sourceforge.net

Gerris est un logiciel libre de mécanique des fluides numérique.

Champ d'application modifier

Gerris résout les équations de Navier-Stokes en 2 ou 3 dimensions. Il permet donc de modéliser les fluides industriels (aérodynamique, écoulements internes, etc.) ou encore la formation et l'évolution des gouttes, grâce à la prise en compte des interfaces diphasiques et de la tension superficielle. C'est d'ailleurs en référence à ce genre d'application et à l'insecte du même nom que le logiciel a été baptisé.

 
Bannière du site de Gerris

Gerris dispose aussi de variantes dédiées aux écoulements géophysiques:

  1. marée océanique [1]
  2. tsunamis [2],[3]
  3. écoulements fluviaux [4]
  4. tourbillons océaniques [5]
  5. état de mer (vagues) [6],[7]

Les écoulements #1 à #3 ont été étudiés avec le solveur d'équations de Saint-Venant (i.e. shallow-water) inclus dans Gerris, le cas #4 nécessite de s'intéresser aux équations primitives et l'application #5 repose sur les équations spectrales de génération/propagation/dissipation de la houle (ou de la mer du vent): Gerris utilise pour cela les termes-source de WaveWatch III[8].

Notons enfin que le solveur (non-hydrostatique) de Navier-Stokes a aussi été utilisé dans l'océan pour étudier:

  • les panaches fluviaux [9]
  • les ondes internes [10]
  • la convection hydrothermale [11]

Par contre Gerris ne permet pas de modéliser les fluides compressibles (écoulements supersoniques).

Schéma numérique modifier

La résolution numérique des équations aux dérivées partielles peut se faire suivant différentes méthodes:

Gerris utilise une discrétisation en volumes finis.

Type de grille modifier

En distinguant les grilles structurées (Cartésiennes ou curvilignes) et les grilles non structurées (maillages triangulaires, tétraèdriques, etc.), on met en évidence l'originalité la plus forte de Gerris, à savoir que ce modèle ne se range dans aucune de ces deux catégories: en fait Gerris réalise un compromis entre les deux techniques grâce à l'utilisation d'une structure de donnée en arbre [12] pour représenter les champs, et ce de façon dynamique: la grille peut s'adapter au cours de la simulation en fonction de critères choisis par l'utilisateur (exemple: raffinement dynamique de la grille au voisinage de gradients locaux).

Fermeture turbulente modifier

Gerris est pour l'instant un code DNS, l'amplitude des Reynolds accessibles à l'utilisateur dépend donc directement de la capacité de calcul dont il dispose (même si le maillage auto-adaptatif permet de focaliser la charge de calcul sur les structures cohérentes); d'après la FAQ de Gerris [13] l'implantation de modèles de turbulence concernera plutôt la famille LES que les approches RANS.

Langage de programmation, bibliothèques utilisées, outils fournis modifier

Gerris est écrit en C avec les libraires Glib (orientation objet, compilation modulaire, etc.) et GTS[14]. Cette dernière sert aux calculs géométriques (triangulation des surfaces solides, intersection avec les cellules de calcul). D'autre part Gerris supporte nativement la parallélisation MPI.

Gerris n'a pas besoin de mailleur puisque le raffinement local (et même dynamique) de la grille est pris en charge par le solveur lui-même. Les surfaces solides peuvent quant à elles être spécifiées par:

  • leur description mathématique dans le fichier de paramètres ;
  • des fichiers de surface triangulée au format GTS ; la distribution de Gerris comporte notamment un outil permettant de traduire en GTS les surfaces triangulées au format STL (exporté par de nombreux logiciels de DAO 3D) ;
  • une base de données bathymétrique/topographique au format KDT (des outils sont fournis pour générér une telle base de données en partant de simples listings ASCII).

Les résultats peuvent être sortis de nombreuses façons ; citons:

  • Les sorties graphiques au format PPM : les images peuvent ensuite être converties en (presque) n'importe quel format grâce à ImageMagick et les animations au format MPEG grâce à FFmpeg (entre autres).
  • Les fichiers de simulation (.gfs), qui sont en fait des fichiers de paramètres concaténés avec les champs issus de la simulation ; ces fichiers peuvent ensuite être ré-utilisés comme fichiers de paramètres (avec conditions initiales, donc), ou alors confiés à Gfsview.
  • Gfsview, logiciel de visualisation distribué avec Gerris, capable de tirer parti de la structure en arbre de la grille de Gerris (une structure de donnée que n'exploitent pas efficacement les logiciels de visualisation généralistes [15]).

Licence modifier

Les logiciels de mécanique des fluides numérique (Computational Fluid Dynamics ou CFD pour les anglophones), comme les autres logiciels, peuvent être développés dans différents contextes:

  • Commercial;
  • Universitaire;
  • Open Source.

Pour une discussion (orientée) de ces différents modes de développement dans le contexte des logiciels de CFD, voir notamment le billet de Zaleski [16]. Il est à signaler que Gerris a adopté le mode Open Source dès le début du projet [17],[18].

Poursuite du développement modifier

À la suite d'une refonte de l'organisation logicielle, Gerris est devenu Basilisk, qui permet de développer son propre solveur (pas forcément en mécanique des fluides) en utilisant différentes structures de données (dont bien sûr les quadtree/octree) et des opérateurs optimisés d'itération, de dérivation, etc. Les solveurs sont écrits en C, plus précisément le C Basilisk. Cependant de nombreux solveurs sont disponibles « clé en main », notamment Navier-Stokes et Saint-Venant.

Voir aussi modifier

Le successeur de Gerris modifier


D'autres logiciels de calcul en mécanique des fluides sont disponibles sous licence libre. En voici quelques-uns (si le développement n'a pas été initié sous licence libre, la date de passage en Open Source est mentionnée entre parenthèses):

Fluides industriels modifier

Fluides géophysiques modifier

Notes et références modifier

  1. (en) R. Msadek, « Hydrodynamic tidal model of Cook Strait », Technical report, National Institute of Water and Atmospheric research,‎
  2. (en) S. Popinet, « Adaptive modelling of long-distance wave propagation and fine-scale flooding during the Tohoku tsunami », Natural Hazards and Earth System Sciences, vol. 12,‎ , p. 1213-1227
  3. (en) S. Popinet, « Quadtree-adaptive tsunami modelling », Ocean Dynamics, vol. 61,‎ , p. 1261-1285
  4. (en) A. Hyunuk et Y. Soonyoung, « Well-balanced shallow water flow simulation on quadtree cut cell grids », Advances in Water Resources, vol. 39,‎ , p. 60-70
  5. (en) S. Popinet et G. Rickard, « A tree-based solver for adaptive ocean modelling », Ocean Modelling, vol. 16,‎ , p. 224-249
  6. (en) C.-C. Tsai, T.-H. Hou et S. Popinet, « Wind wave prediction of tropical cyclones by a quadtree-adaptive model », Coastal Engineering, vol. 77,‎ , p. 108-119
  7. (en) S. Popinet, R.M. Gorman, G.J. Rickard et H.L. Tolman, « A quadtree-adaptive spectral wave model », Ocean Modelling, vol. 34,‎ , p. 36-49
  8. WaveWatchIII
  9. (en) J. O'Callaghan, G. Rickard, S. Popinet et C. Stevens, « Response of buoyant plumes to transient discharges investigated using an adaptive solver », Journal of Geophysical Research, vol. 115,‎ , p. C11025
  10. (en) G. Rickard, J. O'Callaghan et S. Popinet, « Numerical simulations of internal solitary waves interacting with uniform slopes using an adaptive model », Ocean Modelling, vol. 30,‎ , p. 16-28
  11. (en) Y. Tao, S. Rosswog et M. Brüggen, « A simulation modeling approach to hydrothermal plumes and its comparison to analytical models », Ocean Modelling, vol. 61,‎ , p. 68-80
  12. quadtree en 2D, octree en 3D
  13. Gerris (Foire Aux Questions)
  14. GTS
  15. Gerris dispose cependant d'un module permettant d'exporter ses résultats au format Esri Grid.
  16. Stéphane Zaleski, « Science and Fluid Dynamics should have more open sources », sur Institut Jean le Rond d'Alembert, (consulté le )
  17. (en) S. Popinet, « Gerris: a tree-based adaptive solver for the incompressible Euler equations in complex geometries », Journal of Computational Physics, vol. 190,‎ , p. 572-600
  18. (en) S. Popinet, « Free Computationel Fluid Dynamics », Cluster World, vol. 2,‎ , p. 2-8
  19. Basilisk
  20. ROMS
  21. GOTM
  22. Telemac-Mascaret
  23. Delft3D