SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
Projets numériques
            -
Présentation générale de
     la plateforme
     OpenFOAM®
          -

    Cyprien Soulaine
  (cyprien.soulaine@imft.fr)




                                   Toulouse
                               19 mars 2012
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Présentation générale d’ OpenFOAM®




                                     Projets numériques – N7 2ème année   17

Contenu connexe

Tendances

FMI-Ver 1.0 FMI for Model Exchange のモデルについて
FMI-Ver 1.0 FMI for Model Exchange のモデルについてFMI-Ver 1.0 FMI for Model Exchange のモデルについて
FMI-Ver 1.0 FMI for Model Exchange のモデルについてAmane Tanaka
 
最適化計算/パラメータスタディーとFreeCADの連携についての調査
最適化計算/パラメータスタディーとFreeCADの連携についての調査最適化計算/パラメータスタディーとFreeCADの連携についての調査
最適化計算/パラメータスタディーとFreeCADの連携についての調査Daisuke Matsubara
 
Turbulence Models in OpenFOAM
Turbulence Models in OpenFOAMTurbulence Models in OpenFOAM
Turbulence Models in OpenFOAMFumiya Nozaki
 
EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).
EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).
EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).vangogue
 
OpenFOAM の Function Object 機能について
OpenFOAM の Function Object 機能についてOpenFOAM の Function Object 機能について
OpenFOAM の Function Object 機能についてFumiya Nozaki
 
présentation ppt du stage technicien
présentation ppt du stage technicienprésentation ppt du stage technicien
présentation ppt du stage technicienIheb Ben Salem
 
OpenFOAMにおけるDEM計算の衝突モデルの解読
OpenFOAMにおけるDEM計算の衝突モデルの解読OpenFOAMにおけるDEM計算の衝突モデルの解読
OpenFOAMにおけるDEM計算の衝突モデルの解読takuyayamamoto1800
 
OpenFOAMにおける相変化解析
OpenFOAMにおける相変化解析OpenFOAMにおける相変化解析
OpenFOAMにおける相変化解析takuyayamamoto1800
 
Tutorial to set up a case for chtMultiRegionFoam in OpenFOAM 2.0.0
Tutorial to set up a case for chtMultiRegionFoam in OpenFOAM 2.0.0Tutorial to set up a case for chtMultiRegionFoam in OpenFOAM 2.0.0
Tutorial to set up a case for chtMultiRegionFoam in OpenFOAM 2.0.0ARPIT SINGHAL
 
Mixer vessel by cfmesh
Mixer vessel by cfmeshMixer vessel by cfmesh
Mixer vessel by cfmeshEtsuji Nomura
 
非同期処理の基礎
非同期処理の基礎非同期処理の基礎
非同期処理の基礎信之 岩永
 
OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-
OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-
OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-Fumiya Nozaki
 
openFrameworks基礎 たくさんの図形を動かす 静的配列と動的配列 - 芸大グラフィックスプログラミング演習B
openFrameworks基礎 たくさんの図形を動かす 静的配列と動的配列 - 芸大グラフィックスプログラミング演習BopenFrameworks基礎 たくさんの図形を動かす 静的配列と動的配列 - 芸大グラフィックスプログラミング演習B
openFrameworks基礎 たくさんの図形を動かす 静的配列と動的配列 - 芸大グラフィックスプログラミング演習BAtsushi Tadokoro
 

Tendances (20)

SDN OpenDaylight
SDN OpenDaylightSDN OpenDaylight
SDN OpenDaylight
 
Of tutorials v1712
Of tutorials v1712Of tutorials v1712
Of tutorials v1712
 
FMI-Ver 1.0 FMI for Model Exchange のモデルについて
FMI-Ver 1.0 FMI for Model Exchange のモデルについてFMI-Ver 1.0 FMI for Model Exchange のモデルについて
FMI-Ver 1.0 FMI for Model Exchange のモデルについて
 
Corrige tp java
Corrige tp javaCorrige tp java
Corrige tp java
 
最適化計算/パラメータスタディーとFreeCADの連携についての調査
最適化計算/パラメータスタディーとFreeCADの連携についての調査最適化計算/パラメータスタディーとFreeCADの連携についての調査
最適化計算/パラメータスタディーとFreeCADの連携についての調査
 
Turbulence Models in OpenFOAM
Turbulence Models in OpenFOAMTurbulence Models in OpenFOAM
Turbulence Models in OpenFOAM
 
Ladder
LadderLadder
Ladder
 
EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).
EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).
EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).
 
Mesh dexcs
Mesh dexcsMesh dexcs
Mesh dexcs
 
Tp n 5 linux
Tp n 5 linuxTp n 5 linux
Tp n 5 linux
 
OpenFOAM の Function Object 機能について
OpenFOAM の Function Object 機能についてOpenFOAM の Function Object 機能について
OpenFOAM の Function Object 機能について
 
présentation ppt du stage technicien
présentation ppt du stage technicienprésentation ppt du stage technicien
présentation ppt du stage technicien
 
OpenFOAMにおけるDEM計算の衝突モデルの解読
OpenFOAMにおけるDEM計算の衝突モデルの解読OpenFOAMにおけるDEM計算の衝突モデルの解読
OpenFOAMにおけるDEM計算の衝突モデルの解読
 
OpenFOAMにおける相変化解析
OpenFOAMにおける相変化解析OpenFOAMにおける相変化解析
OpenFOAMにおける相変化解析
 
Tutorial to set up a case for chtMultiRegionFoam in OpenFOAM 2.0.0
Tutorial to set up a case for chtMultiRegionFoam in OpenFOAM 2.0.0Tutorial to set up a case for chtMultiRegionFoam in OpenFOAM 2.0.0
Tutorial to set up a case for chtMultiRegionFoam in OpenFOAM 2.0.0
 
Mixer vessel by cfmesh
Mixer vessel by cfmeshMixer vessel by cfmesh
Mixer vessel by cfmesh
 
Google App Engine - INTRO
Google App Engine - INTROGoogle App Engine - INTRO
Google App Engine - INTRO
 
非同期処理の基礎
非同期処理の基礎非同期処理の基礎
非同期処理の基礎
 
OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-
OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-
OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-
 
openFrameworks基礎 たくさんの図形を動かす 静的配列と動的配列 - 芸大グラフィックスプログラミング演習B
openFrameworks基礎 たくさんの図形を動かす 静的配列と動的配列 - 芸大グラフィックスプログラミング演習BopenFrameworks基礎 たくさんの図形を動かす 静的配列と動的配列 - 芸大グラフィックスプログラミング演習B
openFrameworks基礎 たくさんの図形を動かす 静的配列と動的配列 - 芸大グラフィックスプログラミング演習B
 

Similaire à 12 03 19_n7_openfoam_presentation_generale

08 jus 20101123_cae_linux_presentation
08 jus 20101123_cae_linux_presentation08 jus 20101123_cae_linux_presentation
08 jus 20101123_cae_linux_presentationOpenCascade
 
Graphotec granit opensource
Graphotec granit opensourceGraphotec granit opensource
Graphotec granit opensourcepjoulaud
 
Introduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à LinuxIntroduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à LinuxBruno Cornec
 
Outils de construction pour la recherche
Outils de construction pour la rechercheOutils de construction pour la recherche
Outils de construction pour la rechercheJohan Moreau
 
JUS 2011 - Manipulation de champs avec SALOME
JUS 2011 - Manipulation de champs avec SALOMEJUS 2011 - Manipulation de champs avec SALOME
JUS 2011 - Manipulation de champs avec SALOMEOpenCascade
 
Développer des codes de simulation numérique avec une équipe "non geek" à l'ULg
Développer des codes de simulation numérique avec une équipe "non geek" à l'ULgDévelopper des codes de simulation numérique avec une équipe "non geek" à l'ULg
Développer des codes de simulation numérique avec une équipe "non geek" à l'ULgRomain Boman
 
Cartographie des marchés Open Source belges et français
Cartographie des marchés Open Source belges et françaisCartographie des marchés Open Source belges et français
Cartographie des marchés Open Source belges et françaisRobert Viseur
 
Chap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec pythonChap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec pythonMohammed TAMALI
 
De l’open source à l’open cloud
De l’open source à l’open cloudDe l’open source à l’open cloud
De l’open source à l’open cloudRobert Viseur
 
Séminaire janvier 2011 - Le poste de travail libre : projets, réussites et pe...
Séminaire janvier 2011 - Le poste de travail libre : projets, réussites et pe...Séminaire janvier 2011 - Le poste de travail libre : projets, réussites et pe...
Séminaire janvier 2011 - Le poste de travail libre : projets, réussites et pe...LINAGORA
 
Séminaire Linagora : poste de travail Libre, décembre 2009
Séminaire Linagora : poste de travail Libre, décembre 2009Séminaire Linagora : poste de travail Libre, décembre 2009
Séminaire Linagora : poste de travail Libre, décembre 2009LINAGORA
 
Plume Solutions Linux 2009
Plume Solutions Linux 2009Plume Solutions Linux 2009
Plume Solutions Linux 2009Alexis Monville
 
1_architecture_rappels_IOT_PhD.pdf
1_architecture_rappels_IOT_PhD.pdf1_architecture_rappels_IOT_PhD.pdf
1_architecture_rappels_IOT_PhD.pdfssuser10e066
 
Introduction aux logiciels libres
Introduction aux logiciels libresIntroduction aux logiciels libres
Introduction aux logiciels libresolberger
 
Intégration continue
Intégration continueIntégration continue
Intégration continueJohan Moreau
 
CRaSH @ JUGSummerCamp 2012 - Quickie
CRaSH @ JUGSummerCamp 2012 - QuickieCRaSH @ JUGSummerCamp 2012 - Quickie
CRaSH @ JUGSummerCamp 2012 - QuickieArnaud Héritier
 
Open the Source 2: cartographie du marché Open Source belge
Open the Source 2: cartographie du marché Open Source belgeOpen the Source 2: cartographie du marché Open Source belge
Open the Source 2: cartographie du marché Open Source belgeRobert Viseur
 
Cohabitation Logiciels Libres et propriétaires
Cohabitation Logiciels Libres et propriétairesCohabitation Logiciels Libres et propriétaires
Cohabitation Logiciels Libres et propriétairesMichel-Marie Maudet
 

Similaire à 12 03 19_n7_openfoam_presentation_generale (20)

08 jus 20101123_cae_linux_presentation
08 jus 20101123_cae_linux_presentation08 jus 20101123_cae_linux_presentation
08 jus 20101123_cae_linux_presentation
 
Graphotec granit opensource
Graphotec granit opensourceGraphotec granit opensource
Graphotec granit opensource
 
Introduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à LinuxIntroduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à Linux
 
Outils de construction pour la recherche
Outils de construction pour la rechercheOutils de construction pour la recherche
Outils de construction pour la recherche
 
JUS 2011 - Manipulation de champs avec SALOME
JUS 2011 - Manipulation de champs avec SALOMEJUS 2011 - Manipulation de champs avec SALOME
JUS 2011 - Manipulation de champs avec SALOME
 
Développer des codes de simulation numérique avec une équipe "non geek" à l'ULg
Développer des codes de simulation numérique avec une équipe "non geek" à l'ULgDévelopper des codes de simulation numérique avec une équipe "non geek" à l'ULg
Développer des codes de simulation numérique avec une équipe "non geek" à l'ULg
 
Cartographie des marchés Open Source belges et français
Cartographie des marchés Open Source belges et françaisCartographie des marchés Open Source belges et français
Cartographie des marchés Open Source belges et français
 
Chap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec pythonChap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec python
 
De l’open source à l’open cloud
De l’open source à l’open cloudDe l’open source à l’open cloud
De l’open source à l’open cloud
 
Séminaire janvier 2011 - Le poste de travail libre : projets, réussites et pe...
Séminaire janvier 2011 - Le poste de travail libre : projets, réussites et pe...Séminaire janvier 2011 - Le poste de travail libre : projets, réussites et pe...
Séminaire janvier 2011 - Le poste de travail libre : projets, réussites et pe...
 
Séminaire Linagora : poste de travail Libre, décembre 2009
Séminaire Linagora : poste de travail Libre, décembre 2009Séminaire Linagora : poste de travail Libre, décembre 2009
Séminaire Linagora : poste de travail Libre, décembre 2009
 
Plume Solutions Linux 2009
Plume Solutions Linux 2009Plume Solutions Linux 2009
Plume Solutions Linux 2009
 
1_architecture_rappels_IOT_PhD.pdf
1_architecture_rappels_IOT_PhD.pdf1_architecture_rappels_IOT_PhD.pdf
1_architecture_rappels_IOT_PhD.pdf
 
Introduction aux logiciels libres
Introduction aux logiciels libresIntroduction aux logiciels libres
Introduction aux logiciels libres
 
output
outputoutput
output
 
Intégration continue
Intégration continueIntégration continue
Intégration continue
 
Yocto oe
Yocto oeYocto oe
Yocto oe
 
CRaSH @ JUGSummerCamp 2012 - Quickie
CRaSH @ JUGSummerCamp 2012 - QuickieCRaSH @ JUGSummerCamp 2012 - Quickie
CRaSH @ JUGSummerCamp 2012 - Quickie
 
Open the Source 2: cartographie du marché Open Source belge
Open the Source 2: cartographie du marché Open Source belgeOpen the Source 2: cartographie du marché Open Source belge
Open the Source 2: cartographie du marché Open Source belge
 
Cohabitation Logiciels Libres et propriétaires
Cohabitation Logiciels Libres et propriétairesCohabitation Logiciels Libres et propriétaires
Cohabitation Logiciels Libres et propriétaires
 

12 03 19_n7_openfoam_presentation_generale

  • 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
  • 17. Présentation générale d’ OpenFOAM® Projets numériques – N7 2ème année 17