1. Projets numériques
-
Présentation générale de
la plateforme
OpenFOAM®
-
Cyprien Soulaine
(cyprien.soulaine@imft.fr)
Toulouse
19 mars 2012
2. Présentation de la plateforme OpenFOAM®
Présentation générale d’ OpenFOAM®
Qu’est ce qu’OpenFOAM ?
La boîte à outil OpenFOAM
OpenFOAM : programmation des équations
Où trouvez de l’aide et de la documentation ?
Exemples d’utilisation
Diffusion de la chaleur dans une pièce métallique
Comment créer une géométrie simple
Conclusions
Projets numériques – N7 2ème année 2
3. Présentation de la plateforme OpenFOAM®
Présentation générale d’ OpenFOAM®
Qu’est ce qu’OpenFOAM ?
La boîte à outil OpenFOAM
OpenFOAM : programmation des équations
Où trouvez de l’aide et de la documentation ?
Exemples d’utilisation
Diffusion de la chaleur dans une pièce métallique
Comment créer une géométrie simple
Conclusions
Projets numériques – N7 2ème année 3
4. Qu’est ce qu’OpenFOAM® ?
Présentation générale d’ OpenFOAM®
= Open Field Operation and Manipulation
- Résout les équations aux dérivées partielles par la méthode des volumes finis
- Code multi-physique principalement orienté vers la mécanique des fluides
- Prise en compte par défaut des géométries 3D
- Code open-source développé en C++ (programmation orientée objets)
- Téléchargeable gratuitement sur www.openfoam.com
- Conçu comme une boite à outils « facilement » programmable
- Modules de calcul-parallèle
- Installation multi-platforme (préférence Linux)
1989 : Début du développement à l’Imperial College London
1996 : Première version de FOAM
2004 : OpenFOAM Distribué sous license GPL par OpenCFD Ltd.
2011 : version 2.1.0 ; rachat de OpenCFD par SGI
Projets numériques – N7 2ème année 4
5. La boîte à outils OpenFOAM®
OpenFOAM® = plus de 200 programmes (pas seulement 1 exécutable)
Présentation générale d’ OpenFOAM®
Préprocesseurs :
- Mailleur (blockMesh, snappyHexMesh…)
- Convertisseur de maillage (Ansys, Salomé, ideas, CFX, Star-CD, Gambit, Gmsh…)
Solvers :
- écoulement incompressible / compressible
- écoulement multiphasique
- combustion, électromagnétique, structure
- transfert de chaleur
- plusieurs approches de turbulence (DNS, RANS, LES)
- etc…
post-traitement :
- livré avec ParaView (et l’utilitaire paraFoam)
- exportation vers d’autres plateformes de post-traitement (Fluent, Fieldview, EnSight…
- Utilitaire « sample » pour l’échantillonnage 1D ou 2D (export vers gnuplot, Grace/xmgr et jPlot)
Projets numériques – N7 2ème année 5
6. OpenFOAM® : programmation des équations
Présentation générale d’ OpenFOAM®
Le champ considéré peut-être scalaire, vectoriel ou tensoriel
La discrétisation des opérateurs est précisée lors du lancement de la
simulation
Ecriture des équations très proche de la formulation mathématique
Projets numériques – N7 2ème année 6
7. Où trouver de l’aide et de la documentation ?
2 guides officiels par OpenCFD (« user guide » et « programmer guide » )
(Documentation souvent insuffisante)
Présentation générale d’ OpenFOAM®
Plusieurs thèses fondatrices (Hrvoje Jasak 96, Henrik Rusche 2001, …)
Un tutorial par solver. Il a souvent valeur de cas-test (Validation non-disponible
publiquement)
Accès direct au code-source (attention, le code n’est pas annoté !!)
En payant un support auprès d’OpenCFD Ltd, Wikki Ltd,….
Communauté active !
- Forum d’entraide (www.cfd-online.com/Forums/openfoam/)
- Un wiki (openfoamwiki.net)
- un Workshop annuel (6ème édition en 2011) (www.openfoamworkshop.org)
- Projet de travail collaboratif dirigé par 2 des développeurs orignaux
(www.extend-project.de)
Projets numériques – N7 2ème année 7
8. Présentation de la plateforme OpenFOAM®
Présentation générale d’ OpenFOAM®
Qu’est ce qu’OpenFOAM ?
La boîte à outil OpenFOAM
OpenFOAM : programmation des équations
Où trouvez de l’aide et de la documentation ?
Exemples d’utilisation
Diffusion de la chaleur dans une pièce métallique
Comment créer une géométrie simple
Conclusions
Projets numériques – N7 2ème année 8
9. Structure générale d’un cas OpenFOAM
$ cd ~
$ mkdir -p $HOME/OpenFOAM/${LOGNAME}-1.7.1/run
Présentation générale d’ OpenFOAM®
Paramétrage du calcul (choix des solvers, des schémas
de discrétisation, du pas de temps, des sorties
fichiers…)
Toutes valeurs constantes pendant le calcul (Propriétés
du transport, des modèles de turbulence, de
thermodynamique…etc)
Contient les informations relatives au maillage
Un répertoire par pas de temps. Chaque répertoire
contient autant de fichier que de champs calculés
(T,U,p, Yi, k, Omega…)
L’initialisation du calcul se fait via un répertoire « 0 »
Projets numériques – N7 2ème année 9
10. Exemple : Diffusion de la chaleur (1/4)
Tini = 273K Exemple issu des tutoriaux livrés
avec OpenFOAM
Présentation générale d’ OpenFOAM®
273K
Géométrie et maillage générés
avec Ansys
Conversion avec l’utilitaire
ansysToFoam
Résolution de l’équation de la
chaleur
Solver : laplacianFoam
573K
Projets numériques – N7 2ème année 10
11. Exemple : Diffusion de la chaleur (2/4)
$ run ¶
$ cp –r $FOAM_TUTORIALS/basic/laplacianFoam/flange Exo1 ¶
$ cd Exo1 ¶
Présentation générale d’ OpenFOAM®
$ ls ¶
$ gedit 0/T ¶
Conditions initiales et conditions aux limites
pour le champ T
Maillage : faces, points… défini plus loin
avec ansysToFoam
Valeur du coefficient de diffusion (m2/s)
Paramètres du calcul (pas de temps, sorties
fichiers…)
Schémas de discrétisation des différents
opérateurs (div, laplacian, ddt, grad…)
Paramètres et choix des solvers linéaires
Scripts pour lancer automatiquement le tuto et
nettoyer le répertoire
Maillage créé avec Ansys
Projets numériques – N7 2ème année 11
12. Exemple : Diffusion de la chaleur (3/4)
Définition des conditions initiales
et des conditions à la limite
Présentation générale d’ OpenFOAM®
Dimensions du champ T
[kg m s K kgmol A cd]
Température initiale uniforme (T=273K)
à l’intérieur du solide
Condition à aux limites à t=0s
Flux nul
Valeur fixe (T=273K)
Valeur fixe (T=573K)
Projets numériques – N7 2ème année 12
13. Exemple : Diffusion de la chaleur (4/4)
Conversion du maillage :
Création de fichiers dans le
$ ansysToFoam flange.ans –scale 0.001 ¶
répertoire polyMesh
Visualisation du maillage dans paraView
Présentation générale d’ OpenFOAM®
$ paraFoam ¶
Lancement de la simulation Création d’un répertoire / pas de
temps
$ laplacianFoam ¶
Visualisation du résultat dans paraView
$ paraFoam ¶
4 - Choix du
champ à 5 - Pour lire
visualiser l’ensemble des
pas de temps
3- Choisir
« surface »
2 - « apply »
1 - Choix des
champs à visualiser
Projets numériques – N7 2ème année 13
14. Créer une géométrie avec blockMesh (1/2)
Ux=1m/s
movingWall
Présentation générale d’ OpenFOAM®
fixedWalls
fixedWalls
0,1m
y
fixedWalls
x
0,1m
Cas de la cavité entrainée (tutorial détaillé dans le User Guide)
Géométrie 2D
Création de la géométrie et du maillage avec l’utilitaire BlockMesh
Projets numériques – N7 2ème année 14
15. Créer une géométrie avec blockMesh (2/2)
BlockMesh = utilitaire de prétraitement pour les géométries simples
Géométrie et maillage définis dans le fichier blockMeshDict
Présentation générale d’ OpenFOAM®
Définition des points
$ gedit constant/polyMesh/blockMeshDict ¶
Définition de la géométrie en 3D car OpenFOAM n’accepte
que des géométrie 3D
3 2
Définition du bloc hexa
7 6
Définition du maillage (Maillage y z
homogène, 1 seule maille dans 0
la direction z pour calcul 2D) x 1
4
5
Définition des bords de la Attention l’ordre de numérotation des points est important !!
géométrie (« patches »)
pour application des On précise que le calcul est 2D
conditions aux limites.
Les patches peuvent être de plusieurs types :
Les faces orthogonales a -patch (type générique)
l’axe Oz sont « vides » -wall (pour les conditions de mur, utile pour la turbulence)
pour préciser que le -cyclic (pour les conditions périodiques)
calcul est 2D
-symmetryPlane (pour les plans de symétrie)
-empty (pour revenir à des géométries 2D ou 1D)
-wedge (pour les géométries axi-symmétrique)
-processor (pour le calcul parallèle)
Projets numériques – N7 2ème année 15
16. Conclusions : OpenFOAM®
• Plateforme CFD libre (donc gratuite, avantage non négligeable!!)
• Accès au code source
Présentation générale d’ OpenFOAM®
• Communauté grandissante (congrès, forum, université d’été…)
• Facilité d’implémentation de nouveaux modèles physiques
• Nombreux modèles « clé-en-main »
• Compatibilité avec de nombreux pré/post processeurs
•Peu de documentation
•Des bases en C++ s’avère nécessaire pour une utilisation « poussée »
•Temps d’apprentissage assez long
•Pas d’interface graphique
Projets numériques – N7 2ème année 16