Présentation de OpenFOAM


Présentation de OpenFOAM


 

OpenFOAM (Open Field Operation and Manipulation) est une bibliothèque C++ comprenant des outils pour la simulation numérique principalement axée sur la résolution des équations de la mécanique des fluides. Il possède une bibliothèque de solveurs qui permettent de décrire de nombreuses situations. Il existe par exemple des solveurs pour des écoulements compressibles, des écoulements multiphasiques, des écoulements turbulents. Il est gratuit et téléchargeable ici.

 

Une simulation sous OpenFOAM s'effectue en trois grandes étapes :

  • Maillage : OpenFOAM génère des maillages 3D. Le maillage est généré grâce à la commande blockMesh qui utilise les informations fournies dans le fichier blockMeshDict situé dans le répértoire constant. Ce fichier contient la géométrie, le nombre de mailles et les conditions limites.
  • Préparation de la simulation : Une fois le maillage généré, il faut paramétrer la simulation en définissant les différentes grandeurs caractéristiques :
    • les grandeurs physiques dans le fichier transportProperties et plus particulièrement dans le dossier constant.
    • les grandeurs de calcul (pas de temps, temps de calculs..) : controlDict dans le répertoire system.
  • Simulation : dans notre cas, le calcul se lance avec interFoam et la visualisation se fait avec paraFoam.

 

Un dossier type de calcul sous OpenFOAM se présente de la manière suivante. C'est dans ce répertoire que l'utilisateur travaille et fait les modifications nécessaires au lancement de sa simulation.

 

Figure : Structure d'un répertoire de calcul OpenFOAM 

Le dossier principal est le répertoire de travail, il faut se placer dans celui-ci pour lancer les calculs. Dans ce dossier on trouve :

  • 0 : Dossier d'initialisation, contient les conditions limites et initiales pour les champs nécessaires au calcul (dans notre cas U, P et la fraction de la phase $\alpha $).
  • Les dossier résultats (un par pas de temps) après le calcul, chacun de ces répertoires résultat contient autant de fichier que de champ calculés .
  • constant : contient toutes les valeurs constantes pendant le calcul
    • les propriétés du transport (transportProperties) : masse volumique($\rho$), viscosité($\nu$); les modèles de turbulence (turbulenceProperties) ...
    • polyMesh : contient les informations relatives au maillage (blockMeshDict, boundary ...)
  • system : Paramètrage du calcul : choix des solveurs (fvSolution), des schémas de discrétisation (fvSchemes), du pas de temps (controlDict) ...

 

Maintenant que nous avons présenté rapidement OpenFOAM, nous allons faire un tutoriel pour le lancement d'une simulation sous OpenFOAM.