OpenFOAM

OpenFOAM (Open Field Operational and Manipulation) est un logiciel de simulation multi-physiques qui résout principalement les équations différentielles de la mécanique des fluides en utilisant la méthode des volumes finis.

OpenFOAM est essentiellement constitué d'une bibliothèque logicielle en langage C++ libre. Le code de OpenFOAM est très intéressant lorsqu'il s'agit d'implémenter de nouveaux modèles. Aucune connaissance approfondie du C++ n'est nécessaire pour écrire son propre modèle sur OpenFOAM.

 

 

Génération ce maillage

OpenFOAM propose deux outils pour générer des maillages : blockMesh et snappyHexMesh. Notre BEI n'a pas pour but de se focaliser sur la manipulation de maillage. Par conséquent nous ne développons pas cette partie dans ce projet.
Pour plus d'information sur l'utilisation de ces deux outils, rendez-vous sur l'URL suivante.

http://hmf.enseeiht.fr/travaux/bei/beiep/content/g21/2-creation-maillage
http://hmf.enseeiht.fr/travaux/projnum/content/utilisation-basique-de-snappyhexmesh
 

Il est important de noter que OpenFOAM est capable de convertir un certain nombre de maillages développé par d'autres logiciels comme DesignModeler, Salome ou CFX. OpenFOAM dispose de plusieurs d'outils spécifiques à chaque mailleur pour convertir les maillages en extension lisible par les solvers OpenFOAM. On peut citer entre autre l'outil fluent3DMeshToFoam pour convertir les .msh et l'outil star4ToFoam pour convertir les maillages Star-CD. La liste des convertisseur est disponible sur l'URL suivante.

http://www.openfoam.org/docs/user/standard-utilities.php

 

 

Calcul avec des solveurs

Comme annonce dans la présentation du BEI, il existe de nombreux solveurs sur OpenFOAM qui couvrent une large gamme de domaines de la physique (combustion, écoulements incompressibles, compressibles, turbulents, multiphasiques, avec ou sans réaction chimique, transferts thermiques etc). Pour les écoulements turbulents, il existe de différents modèles implantés dans le code OpenFOAM comme RANS (k-epsilon, k-omega), LES et DNS. Pour une liste complète, nous vous envoyons une nouvelle fois sur le site OpenFOAM qui regorge d'information utiles.

http://www.openfoam.org/features/standard-solvers.php
http://www.openfoam.org/features/turbulence.php

 

 

Post-traitement

OpenFOAM est distribué avec Paraview, un logiciel de post-traitement open-source. Pour les utilisateurs qui préfèrent d'autres outils de visualisation, il existe des modules d'export pour Fluent, Ensight, FieldView. Là encore, on trouve la liste de ces modules sur le site officiel de OpenFOAM dans la rubrique standard utilities.

http://www.openfoam.org/docs/user/standard-utilities.php

 

Pour ce qui concerne le fonctionnement des répertoires et dictionnaires de OpenFOAM, nous ne détaillerons pas leur principe d'utilisation. En revanche, pour ce qui concerne notre projet, nous expliquerons les choix effectués dans nos démarches. Pour comprendre comment OpenFOAM fonctionne, un excellent tutoriel ce trouve sur l'URL suivante.

https://www.imft.fr/IMG/pdf/INITIATION_OPENFOAM_TOME_1v3-05.pdf

 

 

Intérêt de OpenFOAM

Le code OpenFOAM est un logiciel open-source et il peut être téléchargé gratuitement depuis le site officiel. Comme c'est un logiciel open-source, l'utilisation de ce logiciel est beaucoup plus souple par rapport aux autres logiciels commerciaux et tout le monde a l'accès directement au code pour pouvoir créer son propre solveur.

Voici un example d'équation différentielle :

$\frac{\partial {\rho U}}{\partial t}+\nabla . {\phi U} - \nabla . {\mu \nabla U}=-\nabla p $

Cette équation est écrit comme ci-dessous dans le code OpenFOAM :

solve

(

        fvm::ddt(rho, U)

     + fvm::div(phi, U)

     -  fvm::laplacian(mu, U)

        ==

     -  fvc::grad(p)

);

On peut remarquer que OpenFOAM est logiciel intéressant dans son utilisation pour plusieurs points :

  • l'utilisateur peut créer ou modifier un solveur qui convient le plus au phénomène physique étudié
  • l'utilisateur peut reprendre les fonctions pré-définies/pré-compilées dans la shared library
  • les algorithmes de calculs transparents nous permet de mieux comprendre la physique des phénomènes : l'utilisateur peut voir le schéma numérique employé pour résoudre l'équation différentielle dans le répertoire system/fvschemeshttp://www.openfoam.org/docs/user/fvschemes.php pour mieux comprendre les différents schémas existants dans le code OpenFOAM).