17
Projets numériques - Présentation générale de la plateforme OpenFOAM® - Cyprien Soulaine ([email protected]) Toulouse 19 mars 2012

12 03 19_n7_openfoam_presentation_generale

  • Upload
    cypiii

  • View
    1.372

  • Download
    2

Embed Size (px)

DESCRIPTION

Cours n°1 d'OpenFOAM à l'N7

Citation preview

Page 1: 12 03 19_n7_openfoam_presentation_generale

Projets numériques

-

Présentation générale de

la plateforme

OpenFOAM® -

Cyprien Soulaine ([email protected])

Toulouse

19 mars 2012

Page 2: 12 03 19_n7_openfoam_presentation_generale

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

Pré

se

nta

tio

n g

én

éra

le d

’ Op

en

FO

AM

®

2

Présentation de la plateforme OpenFOAM®

La boîte à outil OpenFOAM

Qu’est ce qu’OpenFOAM ?

Exemples d’utilisation

Comment créer une géométrie simple

Diffusion de la chaleur dans une pièce métallique

Où trouvez de l’aide et de la documentation ?

OpenFOAM : programmation des équations

Conclusions

Page 3: 12 03 19_n7_openfoam_presentation_generale

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

Pré

se

nta

tio

n g

én

éra

le d

’ Op

en

FO

AM

®

3

Présentation de la plateforme OpenFOAM®

La boîte à outil OpenFOAM

Qu’est ce qu’OpenFOAM ?

Exemples d’utilisation

Comment créer une géométrie simple

Diffusion de la chaleur dans une pièce métallique

Où trouvez de l’aide et de la documentation ?

OpenFOAM : programmation des équations

Conclusions

Page 4: 12 03 19_n7_openfoam_presentation_generale

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

Pré

se

nta

tio

n g

én

éra

le d

’ Op

en

FO

AM

®

4

Qu’est ce qu’OpenFOAM® ?

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

= 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)

Page 5: 12 03 19_n7_openfoam_presentation_generale

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

Pré

se

nta

tio

n g

én

éra

le d

’ Op

en

FO

AM

®

5

La boîte à outils OpenFOAM®

OpenFOAM® = plus de 200 programmes (pas seulement 1 exécutable)

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)

Solvers : - écoulement incompressible / compressible

- écoulement multiphasique

- combustion, électromagnétique, structure

- transfert de chaleur

- plusieurs approches de turbulence (DNS, RANS, LES)

- etc…

Préprocesseurs :

- Mailleur (blockMesh, snappyHexMesh…)

- Convertisseur de maillage (Ansys, Salomé, ideas, CFX, Star-CD, Gambit, Gmsh…)

Page 6: 12 03 19_n7_openfoam_presentation_generale

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

Pré

se

nta

tio

n g

én

éra

le d

’ Op

en

FO

AM

®

6

OpenFOAM® : programmation des équations

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

Page 7: 12 03 19_n7_openfoam_presentation_generale

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

Pré

se

nta

tio

n g

én

éra

le d

’ Op

en

FO

AM

®

7

Où trouver de l’aide et de la documentation ?

2 guides officiels par OpenCFD (« user guide » et « programmer guide » )

(Documentation souvent insuffisante)

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)

Page 8: 12 03 19_n7_openfoam_presentation_generale

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

Pré

se

nta

tio

n g

én

éra

le d

’ Op

en

FO

AM

®

8

Présentation de la plateforme OpenFOAM®

La boîte à outil OpenFOAM

Qu’est ce qu’OpenFOAM ?

Exemples d’utilisation

Comment créer une géométrie simple

Diffusion de la chaleur dans une pièce métallique

Où trouvez de l’aide et de la documentation ?

OpenFOAM : programmation des équations

Conclusions

Page 9: 12 03 19_n7_openfoam_presentation_generale

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

Pré

se

nta

tio

n g

én

éra

le d

’ Op

en

FO

AM

®

9

Structure générale d’un cas OpenFOAM

$ cd ~

$ mkdir -p $HOME/OpenFOAM/${LOGNAME}-1.7.1/run

Paramétrage du calcul (choix des solvers, des schémas

de discrétisation, du pas de temps, des sorties

fichiers…)

Contient les informations relatives au maillage

Toutes valeurs constantes pendant le calcul (Propriétés

du transport, des modèles de turbulence, de

thermodynamique…etc)

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 »

Page 10: 12 03 19_n7_openfoam_presentation_generale

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

Pré

se

nta

tio

n g

én

éra

le d

’ Op

en

FO

AM

®

10

Exemple : Diffusion de la chaleur (1/4)

Géométrie et maillage générés

avec Ansys

Résolution de l’équation de la

chaleur

Conversion avec l’utilitaire

ansysToFoam

Exemple issu des tutoriaux livrés

avec OpenFOAM

573K

273K

Tini = 273K

Solver : laplacianFoam

Page 11: 12 03 19_n7_openfoam_presentation_generale

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

Pré

se

nta

tio

n g

én

éra

le d

’ Op

en

FO

AM

®

11

Exemple : Diffusion de la chaleur (2/4)

$ run ¶

$ cp –r $FOAM_TUTORIALS/basic/laplacianFoam/flange Exo1 ¶

$ cd Exo1 ¶

$ 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

Page 12: 12 03 19_n7_openfoam_presentation_generale

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

Pré

se

nta

tio

n g

én

éra

le d

’ Op

en

FO

AM

®

12

Exemple : Diffusion de la chaleur (3/4)

Définition des conditions initiales

et des conditions à la limite

Dimensions du champ T

[kg m s K kgmol A cd]

Température initiale uniforme (T=273K)

à l’intérieur du solide

Valeur fixe (T=273K)

Flux nul

Valeur fixe (T=573K)

Condition à aux limites à t=0s

Page 13: 12 03 19_n7_openfoam_presentation_generale

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

Pré

se

nta

tio

n g

én

éra

le d

’ Op

en

FO

AM

®

13

Exemple : Diffusion de la chaleur (4/4)

Conversion du maillage :

$ ansysToFoam flange.ans –scale 0.001 ¶

Visualisation du maillage dans paraView

$ paraFoam ¶

Lancement de la simulation

$ laplacianFoam ¶

Visualisation du résultat dans paraView

$ paraFoam ¶

Création de fichiers dans le

répertoire polyMesh

Création d’un répertoire / pas de

temps

1 - Choix des

champs à visualiser

2 - « apply »

3- Choisir

« surface »

4 - Choix du

champ à

visualiser

5 - Pour lire

l’ensemble des

pas de temps

Page 14: 12 03 19_n7_openfoam_presentation_generale

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

Pré

se

nta

tio

n g

én

éra

le d

’ Op

en

FO

AM

®

14

Création de la géométrie et du maillage avec l’utilitaire BlockMesh

Cas de la cavité entrainée (tutorial détaillé dans le User Guide)

fixedWalls

fixedW

alls

fixe

dW

alls

Ux=1m/s

movingWall

x

y

Créer une géométrie avec blockMesh (1/2)

Géométrie 2D

0,1m

0,1

m

Page 15: 12 03 19_n7_openfoam_presentation_generale

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

Pré

se

nta

tio

n g

én

éra

le d

’ Op

en

FO

AM

®

15

Créer une géométrie avec blockMesh (2/2)

Géométrie et maillage définis dans le fichier blockMeshDict

$ gedit constant/polyMesh/blockMeshDict ¶

BlockMesh = utilitaire de prétraitement pour les géométries simples

Définition de la géométrie en 3D car OpenFOAM n’accepte

que des géométrie 3D

4 5

6 7

3 2

1

0 x

y z

Attention l’ordre de numérotation des points est important !!

Définition des points

Définition du bloc hexa

Définition du maillage (Maillage

homogène, 1 seule maille dans

la direction z pour calcul 2D)

Définition des bords de la

géométrie (« patches »)

pour application des

conditions aux limites.

Les faces orthogonales a

l’axe Oz sont « vides »

pour préciser que le

calcul est 2D

On précise que le calcul est 2D

Les patches peuvent être de plusieurs types : -patch (type générique)

-wall (pour les conditions de mur, utile pour la turbulence)

-cyclic (pour les conditions périodiques)

-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)

Page 16: 12 03 19_n7_openfoam_presentation_generale

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

Pré

se

nta

tio

n g

én

éra

le d

’ Op

en

FO

AM

®

16

Conclusions : OpenFOAM®

• Plateforme CFD libre (donc gratuite, avantage non négligeable!!)

• Accès au code source

• 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

Page 17: 12 03 19_n7_openfoam_presentation_generale

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

Pré

se

nta

tio

n g

én

éra

le d

’ Op

en

FO

AM

®

17