Introduction Open FOAM Bote outils CFD pour simulations
Introduction à Open. FOAM Boîte à outils CFD pour simulations multi-physiques Christine Beaulieu, candidate au doctorat Rémi Demol, candidat à la maîtrise Sébastien Lortie, candidat à la maîtrise Jean-Michel Tucny, candidat au doctorat Génie Par la Simulation 2 Juin 2017
Christine Beaulieu 1 Doctorat en génie chimique Directeurs : François Bertrand et Jamal Chaouki Transfert de chaleur dans les matériaux granulaires dans des fours rotatifs Introduction à Open. FOAM - 02/06/2017
Rémi Demol, candidat à la maîtrise 2 Diplôme Ingénieur des Industries Chimiques, Nancy, France. Maîtrise recherche en Génie Chimique, Montréal, Canada. Directeurs : Pr. Jamal Chaouki et François Bertrand. Chaire de recherche industrielle NSERC/Total en modélisation de l’hydrodynamique et réactions catalytiques des procédés multiphasiques sous conditions extrêmes Introduction à Open. FOAM - 02/06/2017
Sébastien Lortie 3 Bacc. en génie aérospatial Maîtrise en génie mécanique Sujet: Simulation d’écoulements à surface libre entre un liquide et un gaz Directeur: Dominique Pelletier compressible Introduction à Open. FOAM - 02/06/2017
Jean-Michel Tucny 4 Directeur: François Bertrand Projet: Optimisation de la performance des filtres multicouches à aérosols composés de nanofibres Intérêts: Filtration des aérosols, écoulements raréfiés, LBM (Lattice-Boltzmann method) Introduction à Open. FOAM - 02/06/2017
Référence 5 Cette présentation s’inspire de la formation donnée à l’université d’Ottawa les 21 et 22 février 2017 par : Dr Chris Sideroff, Applied CCM Canada c. sideroff@appliedccm. ca Cette présentation est basée sur la version 3. 0. 1 d’Open. FOAM. Introduction à Open. FOAM - 02/06/2017
Plan de notre présentation 1. Présentation générale d’Open. FOAM 2. Tutoriel 1 : Écoulement dans une cavité 3. Tutoriel 2 : Écoulement autour d’un profil aérodynamique 4. Tutoriel 3 : Écoulement contre un barrage Introduction à Open. FOAM - 02/06/2017 6
Qu’est ce qu’Open. FOAM ? Open Field Operation And Manipulation • • • Boîte à outils Open source Installation multiplateforme Manipulation de champs Code en C++ Pas seulement pour la CFD, mais principalement… Par défaut : 3 D (mais peut aussi être utilisé en 2 D et 1 D) Facilement parallélisable Introduction à Open. FOAM - 02/06/2017 7
Qu’est ce qu’Open. FOAM ? Bibliothèque d’outils qui permet de manipuler des champs (scalaires, vecteurs, tenseurs) • Température • Vitesse • Pression • Champ magnétique • Champ électrique… Les outils peuvent résoudre des problèmes de : • Combustion • Écoulements compressibles et incompressibles • Réactions chimiques • Transfert de chaleur • Analyse de contraintes sur les solides • Dynamique moléculaire • Simulation Monte Carlo • Finance (équation de Black-Scholes) • … Introduction à Open. FOAM - 02/06/2017 8
Opérations algébriques et différentielles Code orienté objets • Pas séquentiel • Structure en classes permet entre autres de représenter les opérateurs mathématiques plus facilement Ø Divergence Ø Gradient Ø Laplacien Ø Dérivée temporelle Introduction à Open. FOAM - 02/06/2017 9
Structure des fichiers pour un cas Tous les modèles Open. FOAM doivent avoir la structure ci-contre. (Certains fichiers ont changé de répertoire entre les versions 2 et 3. ) 10 <case> system block. Mesh. Dict control. Dict decompose. Par. Dict fv. Scheme fv. Solution set. Fields. Dict constant x. Properties poly. Mesh boundary faces neighbour owner points <time directories> Introduction à Open. FOAM - 02/06/2017
Structure des fichiers pour un cas 11 System Constant Dossiers de sortie pour chaque pas de temps Contrôle l’exécution du code Spécifie les propriétés constantes durant la simulation Contient les fichiers descriptifs des variables d’intérêt - schéma de discrétisation - propriétés des matériaux -doit avoir le dossier 0 pour débuter (conditions initiales) - solveur - propriétés de la turbulence -pendant la simulation, les dossiers résultats vont être écrits - pas de temps, start. Time, end. Time - déclaration de forces (gravité) -fichiers utilisés pour la visualisation - commandes d’écriture de sortie -polymesh (généré automatiquement) - Exemple : pression, vitesse, température, flux moyen - déclaration du maillage (points, vecteurs, blocs) Introduction à Open. FOAM - 02/06/2017
Comment utiliser Open. FOAM ? 1. Se familiariser avec les exemples déjà disponibles dans les bibliothèques Open. FOAM 2. Trouver un exemple qui ressemble au problème qu’on veut résoudre 3. Adapter l’exemple à son cas particulier : conditions frontières, conditions initiales, données de sortie, solveurs… Introduction à Open. FOAM - 02/06/2017 12
Méthode des volumes finis (FVM) 13 Équation d’advection-diffusion d’un scalaire passif, la température (T). Intégration sur un volume Wi Approximation. Théorème de avec la valeur. Greenau centre Ostrogradsky Théorème de Green. Ostrogradsky Wi Discrétisation Interpolation de la vitesse. Discrétisation et de la température au du gradient centre de la face D’après B. Blais (2017), Section 5: The Finite Volume Method (FVM), notes de cours GCH 6953 E. Introduction à Open. FOAM - 02/06/2017 Gi
Méthode des volumes finis (FVM) Équation d’advection-diffusion d’un scalaire passif, la température (T). Cette équation s’écrit avec la méthode des volumes finis : D’après B. Blais (2017), Section 5: The Finite Volume Method (FVM), notes de cours GCH 6953 E. Introduction à Open. FOAM - 02/06/2017 14
Tutoriel 1 Écoulement dans une cavité
Tutoriel 1 : square lid driven cavity Écoulement dans une cavité carrée induite par le mouvement du couvercle. U = 1 m/s 16 cavity system block. Mesh. Dict control. Dict fv. Scheme fv. Solution constant transport. Properties poly. Mesh boundary faces neighbour owner points 0 p U Introduction à Open. FOAM - 02/06/2017
Tutoriel 1 : square lid driven cavity Équation de momentum icofoam. C Équations de Navier-Stokes laminaire incompressible utilisant un algorithme PISO. Introduction à Open. FOAM - 02/06/2017 17
Tutoriel 1 : square lid driven cavity 18 Géométrie / Maillage (simples) Création de la géométrie et du maillage avec la commande block. Mesh § Fichier nécessaire system/block. Mesh. Dict Définition de la géométrie et des différentes frontières (mur, entrée, sortie…) ainsi que le maillage selon chaque axe. § Crée le répertoire constant/poly. Mesh contenant l’ensemble des points, faces, voisins… cavity system block. Mesh. Dict control. Dict fv. Scheme fv. Solution constant transport. Properties poly. Mesh boundary faces neighbour owner points Pour des géométries plus compliquées, il est possible d’importer des géométries d’autre logiciels ou encore d’utiliser l’utilitaire snappy. Hex. Mesh. 0 p U Introduction à Open. FOAM - 02/06/2017
Tutoriel 1 : square lid driven cavity 19 Géométrie / Maillage : fichier block. Mesh. Dict (1/2) En-tête standard des fichiers Open. FOAM Dimension (ici toutes les distances sont en décimètres) Coordonnées des sommets (x y z) Ces sommets sont numérotés : 0, 1, 2… 7 Blocs définis par les numéros des sommets hex(0 1 2 3 4 5 6 7) suivi de la discrétisation spatiale dans chaque direction simple. Grading(Dx, Dy, Dz) Définition des arêtes, par défaut droites. Introduction à Open. FOAM - 02/06/2017
Tutoriel 1 : square lid driven cavity 20 Géométrie / Maillage : fichier block. Mesh. Dict (2/2) Définitions des différentes faces (patchs) désignées par les numéros des 4 faces. Mur mobile type wall Mur latéraux type wall en haut immobiles Faces avant et arrière, géométrie 2 D type empty Fusions de plusieurs faces Introduction à Open. FOAM - 02/06/2017
Tutoriel 1 : square lid driven cavity 21 Conditions initiales et conditions frontière Propriétés rassemblées dans le répertoire /0 qui correspond selon le cas à l’itération 0 (simulation stationnaire) ou au temps 0 (simulation transitoire). cavity system block. Mesh. Dict control. Dict fv. Scheme fv. Solution constant transport. Properties poly. Mesh boundary faces neighbour owner points 0 p U Introduction à Open. FOAM - 02/06/2017
Tutoriel 1 : square lid driven cavity 22 Conditions initiales et conditions frontière : fichier U [kg m s K mol A cd] [ 0 1 -1 0 0 ] Dimensions (m/s). Champs de vitesse (vecteur) au temps initial défini uniforme dans cet exemple. Conditions frontières pour chacun des patchs définis dans la géométrie. Introduction à Open. FOAM - 02/06/2017
Tutoriel 1 : square lid driven cavity 23 Conditions initiales et conditions frontière : fichier p [kg m s K mol A cd] [ 0 2 -2 0 0 ] Dimension (m 2/s 2) incompressible). (simulation Champs de pression au temps initial défini uniforme dans cet exemple. Conditions frontières pour chacun des patchs définis dans la géométrie. Introduction à Open. FOAM - 02/06/2017
Tutoriel 1 : square lid driven cavity 24 Paramètres de résolution Paramètres rassemblés dans le répertoire /system cavity system block. Mesh. Dict control. Dict fv. Scheme fv. Solution constant transport. Properties poly. Mesh boundary faces neighbour owner points 0 p U Introduction à Open. FOAM - 02/06/2017
Tutoriel 1 : square lid driven cavity 25 Paramètres de simulation : fichier control. Dict Solveur Temps initial, final, pas de temps Fréquence d’écriture de résultats et format Option permettant de changer le temps final de simulation (à éviter pour de grosses simulations) Introduction à Open. FOAM - 02/06/2017
Tutoriel 1 : square lid driven cavity 26 Paramètres de simulation : fichier fv. Scheme Schémas de discrétisation Dérivée temporelle Gradient Divergence Laplacien Schéma d’interpolation Correction pour non-orthogonalité Introduction à Open. FOAM - 02/06/2017
Tutoriel 1 : square lid driven cavity 27 Paramètres de simulation : fichier fv. Solution Paramètres de solveurs Algorithme de résolution : PISO Introduction à Open. FOAM - 02/06/2017
Tutoriel 1 : square lid driven cavity 28 Propriétés Fichier constant/transport. Properties cavity system block. Mesh. Dict control. Dict fv. Scheme fv. Solution constant transport. Properties poly. Mesh boundary faces neighbour owner points Viscosité, unité, valeur. L’unité est définie par les exposants des unités de base, par défaut le système international. [kg m s K mol A cd] [ 0 2 -1 0 0 ] c’est-à-dire des m 2/s Introduction à Open. FOAM - 02/06/2017 0 p U
Tutoriel 1 : square lid driven cavity Exécution de la simulation Exécuter la simulation : commande ico. Foam dans le répertoire <case> Post-traitement Voir les résultats avec paraview : commande para. Foam ou créer un fichier avec l’extension *. foam, lancer le logiciel paraview et ouvrir le fichier *. foam Introduction à Open. FOAM - 02/06/2017 29
Tutoriel 2 Écoulement autour d’un profil aérodynamique
Tutoriel 2 : NACA 0012 airfoil Écoulement autour d’un profil aérodynamique (bidimensionnel) Introduction à Open. FOAM - 02/06/2017 31
Tutoriel 2 : NACA 0012 airfoil Écoulement autour d’un profil aérodynamique (bidimensionnel) Introduction à Open. FOAM - 02/06/2017 32
Tutoriel 2 : NACA 0012 airfoil 33 L’objectif est de calculer un écoulement turbulent incompressible autour d’un profil aérodynamique. On veut résoudre les équations de Navier-Stokes incompressibles turbulentes: Avec les conditions frontières suivantes: On sélectionne le solveur simple. Foam pour ces écoulements. Introduction à Open. FOAM - 02/06/2017
Tutoriel 2 : NACA 0012 airfoil On évalue en général la turbulence d’un écoulement à l’aide du nombre de Reynolds: Plus un écoulement est turbulent, plus l’échelle minimale de l’écoulement à résoudre est petite. Il est donc difficile de résoudre directement ces écoulements. Il est préférable d’utiliser un modèle. Ces modèles impliquent des paramètres de fermeture. Possibilité de programmer son propre modèle de turbulence. Introduction à Open. FOAM - 02/06/2017 34
Tutoriel 2 : NACA 0012 airfoil Modélisation des grandes échelles de l’écoulement (LES). Smagorinsky model Smagorinsky 2 Smagorinsky model with 3 -D filter homogenous. Dyn. Smagorinsky Homogeneous dynamic Smagorinsky model dyn. Lagrangian two equation eddy-viscosity model scale. Similarity Scale similarity model mixed. Smagorinsky Mixed Smagorinsky/scale similarity model homogeneous. Dyn. One. Eq. Eddy One Equation Eddy Viscosity Model for incompressible flows k. Omega. SSTSAS k-w SST scale adaptive simulation (SAS) model one. Eq. Eddy k-equation eddy-viscosity model dyn. One. Eq. Eddy Dynamic k-equation eddy-viscosity model spect. Eddy. Visc Spectral eddy viscosity model LRDDiff. Stress LRR differential stress model Deardorff. Diff. Stress Deardorff differential stress model Spalart. Allmaras Spalart-Allmaras model Introduction à Open. FOAM - 02/06/2017 35
Tutoriel 2 : NACA 0012 airfoil Équations RANS (Moyenne de Reynolds) k. Epsilon Standard high-Re k-e model k. Omega Standard high-Re k-w model k. Omega. SST k-w-SST model RNGk. Epsilon RNG k-e model Nonlinear. KEShih Non-linear Shih k-e model Lien. Cubic. KE Lien cubic k-e model q. Zeta q-z model Launder. Sharma. KE Launder-Sharma low-Re k-e model Lam. Bremhorst. KE Lam-Bremhorst low-Re k-e model Lien. Cubic. KELow. Re Lien cubic low-Re k-e model Lien. Leschziner. Low. Re Lien-Leschziner low-Re k-e model LRR Launder-Reece-Rodi RSTM Launder. Gibson. RSTM Launder-Gibson RSTM with wall-reflection terms realizable. KE Realizable k-e model Spalart. Allmaras Spalart-Allmaras 1 -eqn mixing-length model Introduction à Open. FOAM - 02/06/2017 36
Tutoriel 2 : NACA 0012 airfoil On utilise un modèle k-e pour calculer nt Équation pour k : Équation pour e: Expression pour la viscosité turbulente: Qu’on utilise ensuite pour résoudre: Introduction à Open. FOAM - 02/06/2017 37
Tutoriel 2 : NACA 0012 airfoil 38 Possibilité d’importation d’une géométrie Fluent à l’aide de la commande fluent. Mesh. To. Foam On peut regarder la qualité du maillage à l’aide de la commande check. Mesh. Voici une partie ses informations: Overall domain bounding box (-24 -18. 5837 -0. 615014) (25 18. 5837 0. 615014) Mesh (non-empty, non-wedge) directions (1 1 0) Mesh (non-empty) directions (1 1 0) All edges aligned with or perpendicular to non-empty directions. Boundary openness (-2. 93168 e-19 9. 8486 e-20 -1. 46584 e-18) OK. Max cell openness = 2. 71681 e-16 OK. Max aspect ratio = 18. 9547 OK. Minimum face area = 2. 44255 e-06. Maximum face area = 4. 71858. Face area magnitudes OK. Min volume = 3. 0044 e-06. Max volume = 3. 68921. Total volume = 1758. 83. Cell volumes OK. Mesh non-orthogonality Max: 77. 9924 average: 25. 0427 *Number of severely non-orthogonal faces: 60. Non-orthogonality check OK. <<Writing 60 non-orthogonal faces to set non. Ortho. Faces Face pyramids OK. Max skewness = 1. 68481 OK. Coupled point location match (average 0) OK. Introduction à Open. FOAM - 02/06/2017
Tutoriel 2 : NACA 0012 airfoil Introduction à Open. FOAM - 02/06/2017 39
Tutoriel 2 : NACA 0012 airfoil Norme de la vitesse. Introduction à Open. FOAM - 02/06/2017 40
Tutoriel 3 Écoulement contre un barrage
Tutoriel 3 : Dam Break 42 Géométrie: Choix du solveur: - 20 choix disponibles qui couvrent différents cas possibles en multiphasique; - Pour ce problème: inter. Foam Description inter. Foam: Solver for 2 incompressible, isothermal immiscible fluids using a VOF (volume of fluid) phase-fraction based interface capturing approach. Autres possibilités intéressantes: - inter. Dy. MFoam - compressible. Inter. Dy. MFoam Définitions prises de cfd. direct Introduction à Open. FOAM - 02/06/2017
Tutoriel 3 : Dam Break 43 Génération de maillage: dam. Break/system/block. Mesh. Dict Le fichier block. Mesh. Dict contient l’information sur le maillage pour block. Mesh Dans ce cas-ci, on raffine près de l’obstacle, on définit donc 5 zones dans le fichier block. Mesh. Dict 3. 4. 2. block. Mesh. Dict 1. 5. Maillage Introduction à Open. FOAM - 02/06/2017
Tutoriel 3 : Dam Break 44 Conditions frontières: dam. Break/system/block. Mesh. Dict dam. Break/constant/poly. Mesh/boundary dam. Break/0/(U, p_rgh, alpha. water. orig) block. Mesh Boundary – Généré par block. Mesh Répertoire 0 block. Mesh. Dict U Introduction à Open. FOAM - 02/06/2017
Tutoriel 3 : Dam Break 45 Générer les phases: dam. Break/system/set. Fields. Dict Le fichier set. Fields. Dict contient l’information pour la fonction set. Fields Dans ce cas-ci, on veut séparer l’eau et l’air comme montré dans la géométrie Avec la méthode VOF de capture d’interface, on introduit alpha. water. Cette variable représente la proportion d’eau dans une cellule vs la proportion d’air (si alpha. water = 1, on a de l’eau à 100%). Valeur par défaut de 0 (air) Valeur de 1 pour la région spécifiée (eau) set. Fields. Dict Introduction à Open. FOAM - 02/06/2017
Tutoriel 3 : Dam Break 46 Propriétés du fluide: dam. Break/constant/transport. Properties Le fichier transport. Properties contient l’information sur les différentes phases. Dans ce cas-ci, on a de l’air et de l’eau, qui ont chacun leurs propriétés distinctes. Ici, on choisit transport. Model Newtonian pour spécifier que les propriétés du fluide sont constantes dans notre simulation. transport. Properties Introduction à Open. FOAM - 02/06/2017
Tutoriel 3 : Dam Break 47 Intégration en temps : dam. Break/system/control. Dict Le fichier control. Dict contient, entre autres, l’information sur le pas de temps. Dans ce cas-ci, inter. Foam offre une option standard d’ajustement du pas temps. On active l’ajustement du pas de temps On donne des valeurs maximales pour le nombre de Courant à ne pas dépasser On donne une valeur maximale du pas de temps control. Dict Lancement du programme: inter. Foam | tee log Cette commande imprime le fichier de sortie dans « log » . Résultats: voir paraview Introduction à Open. FOAM - 02/06/2017
Avantages / Inconvénients 48 Avantages § Aucun coût de licence § Mise à jour régulière § Accès intégral au code source § De nombreux modèles prêts à être utilisés § Très bien lié à paraview § Possibilité d’ajouter son propre code (mais demande des connaissances poussées en C++) § Support disponible sur des forums d’utilisateurs (www. cfd-online. com) Inconvénients § Lignes de commandes (basique) et C++ (pour utilisation avancée) § Installation qui peut s’avérer complexe (Mac, Windows) § Pas d’interface utilisateur § Peu de documentation disponible § Nécessite du temps pour être à l’aise § La validation des codes n’est pas clairement indiquée § Quasiment aucun commentaire dans le code source Introduction à Open. FOAM - 02/06/2017
Merci pour votre attention ! Avez-vous des questions ? Introduction à Open. FOAM - 02/06/2017
SLIDE SUPPLÉMENTAIRE Introduction à Open. FOAM - 02/06/2017 50
- Slides: 51