Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

48
29 septembre 2006 Rapport de stage ingénieur 5 Juin - 29 Septembre Création d’une base de données de Travaux pratiques en calcul numérique Estelle Etienne Encadrement : Marc Montagnac. CERFACS - CFD - 42, avenue Gaspard Coriolis - 31057 Toulouse Cedex 1

Transcript of Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

Page 1: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

29 septembre 2006

Rapport de stage ingénieur

5 Juin - 29 Septembre

Création d’une base de données de

Travaux pratiques en calcul numérique

Estelle Etienne

Encadrement : Marc Montagnac.CERFACS - CFD - 42, avenue Gaspard Coriolis - 31057 Toulouse Cedex 1

Page 2: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

Remerciements

Je tiens en premier lieu à remercier Jean-François Boussugue, notre chef d’équipe et MarcMontagnac, mon maître de stage pour m’avoir accueillie au CERFACS.

Merci aussi à Yann Colin qui a toujours su répondre à mes questions avec compétence etpatience, merci à Guillaume Puigt pour sa gentillesse et sa disponibilité, merci à Antoine Devesa,mon collègue de bureau, qui m’a suivie dans mon apprentissage de Linux... enfin merci à toutel’équipe pour la bonne ambiance qui y règne.

Je tiens aussi à remercier mes collocataires pour ces quatre mois agréables passés à Toulouse.Bonne continuation à vous tous !

2

Page 3: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

Table des matières

Introduction 7

1 Moyens mis en oeuvre 8

1.1 Site WIKI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.1.1 support WIKI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.1.2 Architecture du site . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.2 Code de calcul elsA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.2.1 Script Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2 Déroulement d’un calcul type 12

2.1 TP squelette . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2 Analyse du cas physique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.3 Pré-traitement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.3.1 Conditions initiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.3.2 Conditions aux limites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.3.3 Adimensionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.4 Maillage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.5 Simulation numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.6 post-traitement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3 Points d’étude 20

3.1 Modélisation de la turbulence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.1.1 Modèle de Spalart-Allmaras . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.1.2 Modèle k-ω . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.1.3 Couche limite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.1.4 Phénomènes physiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.2 Influence des schémas numériques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.2.1 Schéma centré de Jameson . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.2.2 Schéma décentré de Roe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.3 Techniques d’accélération de la convergence . . . . . . . . . . . . . . . . . . . . . . 34

3.3.1 Méthode explicite / implicite . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3

Page 4: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

3.3.2 Méthode multi-grille . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

Conclusion 38

4

Page 5: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

Table des figures

1.1 page d’accueil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.1 TP squelette . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.2 Conditions initiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.3 Géométrie du profil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.4 configuration du maillage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.5 Répartition des points sur le profil . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.6 repère propre au maillage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.7 Maillage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.1 Plaque plane (modèle de Spalart) - Loi de paroi . . . . . . . . . . . . . . . . . . . . 23

3.2 Plaque plane - couche limite laminaire et turbulente. Effet du choix du modèle deturbulence. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.3 RAE2822 (cas 9) - coefficient de pression. . . . . . . . . . . . . . . . . . . . . . . . 25

3.4 RAE2822 (cas 9) - coefficient de frottement. . . . . . . . . . . . . . . . . . . . . . . 25

3.5 RAE2822 (cas 10) - vecteurs vitesse suivant une ligne du maillage proche du pieddu choc. Visualisation du retournement des vecteurs vitesse (décollement) . . . . . 26

3.6 RAE2822 (cas 10) - Coefficient de pression. . . . . . . . . . . . . . . . . . . . . . . 27

3.7 RAE2822 (cas 10) - Coefficient de frottement. . . . . . . . . . . . . . . . . . . . . . 27

3.8 NACA - position du choc pour α = 2 . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.9 NACA - position du choc pour α = 4 . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.10 Polaire obtenue par calcul Euler : effets de la viscosité numérique d’elsA. . . . . . . 29

3.11 détails du maillage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.12 schéma - détail du maillage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.13 schémas numériques à t=0s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.14 schémas numériques à t=2s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.15 schémas numériques à t=5s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.16 schémas numériques à t=7s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.17 2 niveaux de grilles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

3.18 comparaison des résidus avec et sans méthode multi-grille . . . . . . . . . . . . . . 37

5

Page 6: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

Liste des notations

CFD : Computational Fluid Dynamics

CFL : Courant-Friedrichs-Levy

elsA : Ensemble Logiciel de Simulation Aérodynamique

Rij : tenseur de Reynolds en kg.m.s−2

µt : viscosité turbulente en kg.m−1.s−1

k : energie cinétique turbulente en m2.s−2

ω : fréquence caractéristique de la turbulence en s−1

τ : tenseur des contraintes

κ : la constante de Von Karman (sans dimension) qui vaut 0.41

W : le vecteur des variables conservatives

Y : une variable conservative quelconque

α : la vitesse d’advection

f : le flux de Y

6

Page 7: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

Introduction

Le stage ingénieur, dont le travail est décrit dans ce rapport, a été effectué au sein de lasociété CERFACS (Centre de Recherche et de Formation Avancée en Calcul Scientifique) dansle département Computational Fluid Dynamics (CFD) au sein de l’équipe AAM (Advanced Ae-rodynamics and Multiphysics). L’entreprise, ses activité principales, son organisation et celle del’équipe AAM sont présentées dans l’annexe A.

Le sujet du stage, "création d’une base de données de Travaux Pratiques en calcul numérique"s’inscrit dans un projet interne au Cerfacs. Une série de trois Travaux Pratiques avait déjà étémise au point mais les sujets ne suivaient pas une architecture commune.

Cette base de données a pour but de proposer un ensemble de sujets construits sur le mêmemodèle. La première étape a été de définir la base de tous les sujets : un TP squelette, qui servirade canneva pour la construction de tous les TP. Le choix d’un plan chronologique a été fait. Achaque étape, figurent les points théoriques qui interviennent. Ce sont ces différents points que lestravaux pratiques s’attachent à illustrer. Ils apparaissent ou non dans l’énoncé selon les objectifsdu sujet.

Ces Travaux Pratiques sont à vocation pédagogique. Ils sont destinés à initier les élèves detroisième année de l’ENSEEIHT à la simulation numérique avec le code de calcul elsA utilisé chezAirbus. Dans un premier temps, le but est de leur faire intégrer le déroulement d’un calcul CFD etensuite d’aborder certaines notions importantes de la modélisation et des méthodes numériques.

Cette base de données a été mise en ligne sur un site internet de type WIKI (www.cerfacs.fr/wiki/cfdwiki),ce qui offre la possibilité de l’enrichir à tout moment. Vous pouvez aller consulter ce site pour mieuxvous rendre compte du travail effectué durant le stage.

7

Page 8: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

Chapitre 1

Moyens mis en oeuvre

1.1 Site WIKI

1.1.1 support WIKI

Principe

PmWiki est un système de type wiki pour la création et l’entretien collectif de sites Internet.

Un WikiWikiWeb est un "système ouvert d’édition" où l’accent est mis sur l’écriture et lacollaboration à l’écriture de documents plutôt que la lecture rapide ou leur visualisation simple. Lemot "wiki" provient du terme hawaïen "wiki wiki" qui signifie "informel" ou "rapide". Le conceptde base d’un WikiWikiWeb (ou "wiki") est que (presque) tout le monde peut éditer n’importequelle page. L’objectif de ce système est de rendre la création et l’édition de contenus en ligneaussi facile que possible

Les pages PmWiki ont le même aspect et fonctionnent comme des pages Internet ordinaires,sauf qu’elles possèdent un lien pour "éditer" ce qui permet de modifier ou d’ajouter facilementdes pages à un site, en utilisant les règles d’édition de base. Il n’est pas nécessaire de connaîtrele langage HTML. Il existe notamment un émulateur Latex pour faciliter l’écriture des formulesmathématiques. L’édition des pages peut être laissée ouverte à tout public ou restreinte à ungroupe d’utilisateurs.

Pourquoi un site Wiki ?

Le choix d’un support Wiki a été fait déjà pour permettre un travail collaboratif durant lestage et pour donner l’opportunité à ce site d’évoluer et de s’enrichir. Par la suite, ce site seraouvert à d’autres utilisateurs tels que l’ONERA. D’autres sujets de TP pourront être proposés etrédigés en se servant des travaux déjà effectués. Ils bénéficieront de tout l’environnement du site.

1.1.2 Architecture du site

Le site a été pensé de manière à privilégier la fonctionnalité. Il est organisé sous formed’arborescense vers différentes pages auxquelles on accède grâce à des liens. On trouve sur la paged’accueil du site plusieurs liens :

– la liste des TP à laquelle on accède en ouvrant le lien « TP calcul numérique »– deux autres parties qui sont détaillées ci-dessous et qui sont disponibles depuis la barre

d’outils : des rappels théoriques et une « boîte à outil ».Ce sont des parties qui encombre-

8

Page 9: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

raient l’énoncé et qui ne sont pas forcément nécessaires aux étudiants. Elles permettentd’obtenir rapidement une aide ponctuelle durant la séance.

– un lexique qui recense les mots difficiles et en donne une brève définition.

Rappels théoriques

On y trouve pour l’instant deux parties, les équations de base et une partie théorique surla couche limite, mais au fur et à mesure de l’évolution du site, de nouveaux points théoriquesy seront traités. La partie « Equation de base » rappelle les équations d’Euler, Navier-Stokes, etNavier-Stokes moyennées (RANS). Ce sont ces équations que résout le code de calcul elsA utilisédans les TP. Ce code de calcul est présenté dans la partie suivante.

Outils

Il s’agit d’un inventaire des logiciels que les étudiants vont être amenés à utiliser, avec pourchaque logiciel, un lien vers un pseudo guide d’utilisation orienté spécifiquement pour ce qui estdemandé en TP. Y figurent les logiciels de visualisation Tecplot et Quickview, l’outil EDM (Editorof Model) qui permet de générer les fichiers nécessaires à un calcul elsA et de convertir les résultatsdu calcul au format souhaité, le code de calcul elsA où l’on trouve la démarche à suivre pour lancerun calcul et enfin un guide Unix qui répertorie les commandes de base et qui présente l’éditeur detexte « vi ».

1.2 Code de calcul elsA

ElsA (Ensemble Logiciel de Simulation Aérodynamique) est un logiciel de simulation desécoulements compressibles, laminaires ou turbulents, en 3D, sur des maillages structurés en blocs.Ce code de calcul a été développé par l’ONERA depuis l’année 1997 et en collaboration avec leCerfacs depuis 2000. ElsA résout les équations de Navier-Stokes moyennées (RANS pour ReynoldsAverage Navier-Stokes), dans leur forme intégrale, dans un référentiel fixe ou mobile. La turbulencepeut être modélisée par des modèles algébriques ou avec équations de transport. Des simulationsstationnaires et instationnaires peuvent être réalisées. Les utilisateurs interagissent avec elsA grâceà un script construit en Python qui sert d’interface.

1.2.1 Script Python

C’est dans ce script que les utilisateurs d’elsA définissent leurs paramètres de calcul. Uneconnaissance très limité du language Python suffit pour mettre au point un script. Python estun langage moderne, orienté objet. Sa syntaxe est facile à lire. En général, on récupère un scriptPython que l’on modifie selon les paramètres numériques que l’on souhaite changer ou rajouter.Un script Python basique s’articule autour de plusieurs grandes parties :

– Création du problème auquel on donne un nom et dont on spécifie la configuration (pro-blème 2D, 3D).

– Création du modèle physique : cette partie précise tous les paramètres qui définissent lesystème d’équations résolu par elsA.On y entre le système d’équation (Euler, Navier-Stokeslaminaire ou turbulent), les caractéristiques du fluide (γ, Cv), les valeurs adimensionnéesµ∞ et T∞ nécessaires au calcul de la viscosité selon la loi de Sutherland, et le modèle deturbulence souhaité.

– Création de l’algorithme numérique : cette partie précise les paramètres qui définissentcomment le système d’équations va être résolu. On y entre la méthode de discrétisationen espace (schéma numérique) et d’intégration en temps (nombre d’itérations, méthoded’accélération de la convergence).

9

Page 10: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

Fig. 1.1 – page d’accueil

10

Page 11: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

– Etat amont : On défini le champ infini. On donne les valeurs adimensionnées des variablesconservatives et des quantités turbulentes suivant le modèle de turbulence choisi. On ini-tialise généralement l’état initial avec les valeurs de l’état infini.

– Création et initialisation des blocs : c’est là que l’on fournit le maillage.– Conditions aux limites : celles-ci doivent être précisées pour chaque frontière.– Extraction des résultats : on précise dans cette partie les variables à extraire et le nom des

fichiers dans lesquels on souhaite les mettre.Il ne s’agit bien évidemment pas là d’une liste exhaustive des possibilités d’un script Python pource qui est de la définition des conditions d’un calcul, mais, sont cités les principaux paramètresque l’on a été amené à modifier pendant ce stage.

11

Page 12: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

Chapitre 2

Déroulement d’un calcul type

2.1 TP squelette

Le TP squelette est, comme il a été dit dans l’introduction, le modèle sur lequel sont etseront construits tous les autres sujets de TP. Son plan doit pouvoir convenir pour n’importe quelcas test. C’est pourquoi on a choisi un plan chronologique qui permet aussi de bien mettre enévidence le déroulement d’un calcul en insistant sur chaque étape. Le TP squelette s’apparente àun cours succint de CFD organisé de manière chronologique. En effet, à chaque étape, figurent lespoints théoriques qui s’y rattachent, sous forme de lien. S’il font partie intrinsèque du déroulementd’un calcul, ils apparaissent systématiquement dans l’énoncé du TP, sinon, s’il s’agit de pointsse rapportant au numérique, ils apparaissent selon l’objectif du sujet. Le plan du TP squelette(cf Figure 2.1) reprend donc les étapes d’un calcul, à savoir : l’analyse du cas physique, le pré-traitement, le maillage, le calcul à proprement parler, et le post-traitement.

12

Page 13: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

Fig. 2.1 – TP squelette

Sur ce modèle là, ont déjà été traités trois cas tests : « Plaque plane », « Calcul Euler autourd’un profil NACA 0012 » et « Ecoulement autour d’un profil RAE2822 ». Nous allons voir commentchaque étape a été illustrée au sein des TP.

13

Page 14: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

2.2 Analyse du cas physique

Cette partie permet de poser le problème. Elle sera plus ou moins importante selon la com-plexité du cas. On y fixe d’une certaine manière l’objectif du TP : on référence dans cette partiesous forme de mots clefs les points importants du TP afin d’orienter l’analyse des étudiants.

2.3 Pré-traitement

L’étape de pré-traitement sert à créer le script Python qui sera ensuite « lu » par elsA. Oncalcule là les valeurs adimensionnées du champ initial et on fixe les conditions aux limites.

2.3.1 Conditions initiales

Sont données dans l’énoncé les paramètres nécessaires pour démarrer un calcul elsA. Ondonne en général le nombre de Mach, le nombre de Reynolds et l’angle d’incidence. les grandeursturbulentes sont déjà initialisées dans le script Python. Le lien « Conditions initiales », précisetoutes les conditions initiales que l’on doit fournir à elsA (voir Figure 2.2).

Fig. 2.2 – Conditions initiales

14

Page 15: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

2.3.2 Conditions aux limites

L’attribution des conditions aux limites est une étape primordiale, et qui peut ne pas êtreévidente. Plusieurs possibilités peuvent convenir sans pour autant qu’elles donnent les même ré-sultats. C’est pour initier les étudiants à ce choix qu’est donné une liste des conditions aux limitesusuelles. La configuration du maillage leur est fournie avec, en couleur, les frontières des blocs dumaillage pour lesquelles ils ont à choisir les conditions aux limites. Ils n’auront pas cependant àentrer dans le script Python.

2.3.3 Adimensionnement

Pour résoudre les équations de Navier-Stokes, il est conseillé d’utiliser des quantités adimen-sionnées. Il n’existe pas de système d’unité dans elsA. C’est donc à l’utilisateur de rentrer desdonnées utilisant un système d’unité cohérent.

La normalisation est basée sur le choix de 4 quantités indépendantes que l’on prend égalesà l’unité. La longueur de référence est toujours prise égale à 1. Il existe quatre possibilitésqui mènent aux normalisations SRPT (Static-Rho-Pressure-Temperature), SRVT (Static-Rho-Velocity-Temperature), SRCT (Static-Rho-Celerity-Temperature) et TRCT(Total-Rho-Celerity-Temperature).

Selon la normalisation choisie, on fixe certaines quantités et les autres sont calculées à l’aidedes relations isentropiques. Le fluide est considéré comme un gaz parfait. Est détaillée ici la nor-malisation SRPT. On prend donc les trois variables suivantes égales à 1 :

ρ∗∞

= 1 , p∗∞

= 1 , T ∗

∞= 1 .

La loi des gaz parfaits donne la relation :

p∞ = ρrgazT∞ ,

avecrgaz = Cv(γ − 1) .

On en déduit :p∞ = ρ∞(γ − 1)CvT∞

et il vient

Cv =1

γ − 1.

D’après la relation

p∞ = pt∞

(

1 +γ − 1

2M2

)

−γ

γ−1 ,

on déduit :

p∗t∞ =(

1 +γ − 1

2M2

)

γ

γ−1 .

De même, pour Tt∞ , d’après la relation :

T∞ = Tt∞

(

1 +γ − 1

2M2

)

−1,

on déduit :

T ∗

t∞ = 1 +γ − 1

2M2

∞.

D’après la relation :

a∞ =√

(γrgazT∞) ,

15

Page 16: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

soit :a∞ =

γ(γ − 1)CvT∞ ,

il vient :a∗

∞=

√γ .

Il en découle :U∗

∞= M∞a∗

∞= M∞

√γ .

D’après la relation :

et∞ = CvT∞ +1

2U2∞

,

on déduit :

e∗t∞ =1

γ − 1+

1

2M2

∞γ .

D’après la relation :ht∞ = γCvTt∞ ,

il résulte :

h∗

t∞ =γ

γ − 1(1 +

γ − 1

2M2

∞) .

Comme on connaît le nombre de Reynolds, et que l’on a la relation :

µ∞ =ρ∞U∞

Re∞

il vient :

µ∗

∞=

M∞

√γ

Re∞.

On accède aux valeurs des variables conservatives ρu, ρv et ρw grâce aux relations suivantes :

ρu = ρ∞U∞cos(α)cos(β)

ρv = ρ∞U∞sin(β)

ρw = ρ∞U∞sin(α)cos(β)

Cet exercice est proposé au début de chaque TP. Les étudiants ont un script Python à remplir.Dans un souci de facilité, les scripts ont été modifiés, on a créé de nouvelles variables qui renvoientaux valeurs adimensionnées à entrer et que l’on a placées en début de script.

2.4 Maillage

Le maillage sera, dans la majorité des cas, fourni. C’est une étape longue qui alourdiraitconsidérablement les TP si elle devait être répétée à chaque séance. Il est cependant souhaitableque les étudiants en aient l’expérience pour apprendre à ne pas négliger cette étape et se rendrecompte de l’impact d’un maillage plus ou moins bien fait sur le calcul.

Le sujet « calcul Euler autour d’un profil NACA 0012 » est un TP qui s’échelonnera surplusieurs séances dont une consacrée au maillage. Le mailleur utilisé s’appelle Megacads. Lesétudiants ne connaissant pas le logiciel, toutes les étapes sont détaillées. Voilà, en général, comments’effectue la réalisation d’un maillage :

• On choisit dans quel repère on va travailler. On importe les données géométriques du profil,un ensemble de points, par lequel on fait passer une courbe. On a ainsi créé la géométrie duprofil (cf. Figure 2.3). On définit ensuite le domaine de calcul en créant les frontières et on crée àl’intérieur les blocs du maillage qui seront discrétisés (cf. Figure 2.4).

16

Page 17: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

• On répartit les points du maillage aux frontières. On choisit une distribution de Poisson, demanière à avoir une discrétisation plus fine près du profil. On peut choisir la longueur des premieret dernier espacements. Pour les blocs qui ne sont pas rectangulaires, on joue sur cette valeurpour obtenir le maillage le plus orthogonal possible, ce qui est le gage d’un maillage de qualité (cf.Figure 2.5).

• Le maillage à créer est un maillage structuré : un sommet du maillage est repéré par untriplet (i,j,k), ce qui impose une conservation du nombre de maille sur les faces « parallèles » desblocs. Pour construire le maillage, on fonctionne comme dans un repère, en reliant les points desfrontières qui se font face. (cf. Figures 2.6 et 2.7).

Ce maillage sera ensuite utilisé pour le calcul, ce qui permettra de voir (un peu trop tard !) siil était ou non bien fait. Pour ne pas fausser les résultats attendus dans la suite du TP, un maillagedont on est sûr est fourni. Ce qui simplifiera aussi la démarche de calcul. En effet le passage d’unmaillage Mégacads à un fichier d’entrée elsA est long et présente de nombreuses occasions de setromper. C’est pourquoi, on a mis au point deux scripts qui reprennent les commandes à effectuer.

Fig. 2.3 – Géométrie du profil

Fig. 2.4 – configuration du maillage

17

Page 18: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

Fig. 2.5 – Répartition des points sur le profil

Fig. 2.6 – repère propre au maillage.

Fig. 2.7 – Maillage

2.5 Simulation numérique

La simulation numérique consiste à lancer le calcul elsA. On a créé un lien « Comment lancerun calcul elsA ? » vers une page qui donne les instructions pour démarrer le calcul. On y fournitle fichier batch ci-dessous, qui permet de lancer le calcul et dans lequel les étudiants auront à

18

Page 19: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

préciser le script Python qu’ils exécutent. Ce fichier batch est un script de commande qui permetde se « logger » sur le calculateur et d’avoir accès aux processeurs de calcul. Les processeurssont attribués selon un système de queue. Nos calculs sont assez courts et s’effectent sur un seulprocesseur, on se met donc sur la queue « dev » pour développement. L’avantage de cette queueest la rapidité de passage, mais le temps alloué par calcul est faible, aux alentours de 20 minutes.

#!/bin/tcsh# BSUB -n 1# BSUB -o sortie%J.txt# BSUB -e sortie%J.txt# BSUB -q dev# BSUB -J nacaecho ’------------------------------------------------------------’setenv MPI_USE_LIBELAN_SUB 0cd $LS_SUBCWDsource ~etienne/ELSA/setupelsa.csh I3203g dec_r8_so ~etienne/ELSA

elsa -f naca01-1deg_V.epyecho ’------------------------------------------------------------’

2.6 post-traitement

Le post-traitement consiste à visualiser les résultats. On utilise pour cela le logiciel Tecplot.Pour les visualisations un peu compliquées, une aide Tecplot est accessible depuis la barre d’outils.Ce lien répertorie suivant les TP les visualisations à faire et guide l’étudiant. On cherche à validerles résultats numériques par comparaison avec des données expérimentales, ou à observer desphénomènes physiques.

19

Page 20: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

Chapitre 3

Points d’étude

L’objectif de ce chapitre est de présenter succintement l’ensemble des points théoriques abor-dés et de montrer comment ils ont été illustrés.

3.1 Modélisation de la turbulence

elsA permet de faire des calculs non-visqueux (équations d’Euler) et visqueux. La turbulence ;qui se rencontre au quotidient (panaches de fumée de cheminée d’usine,...), est un phénomènephysique très complexe. Pour les écoulements visqueux turbulents, elsA dispose d’un grand choixde modèles de turbulence conçus grâce à une approche RANS (Reynolds Averaged Navier-Stokes).Le principe de cette approche est de séparer les champs conservatifs en une partie moyenne et unepartie fluctuante. La partie moyenne est obtenue par application d’un filtre :

– le filtre de Reynolds pour la pression p et la masse volumique ρ,– le filtre de Favre écrit à partir de la moyenne de Reynolds pour toute les autres grandeurs

physiques.Avec cette approche, de nouveaux termes issus du passage à la moyenne apparaissent et doiventetre modélisés. C’est cette modélisation qui fait apparaître la viscosité turbulente µt dont leseffets viennent s’ajouter à ceux de la viscosité laminaire (ou moléculaire). Les modèles à viscositéturbulente (modèles du premier ordre) sont basés sur l’hypothèse de Boussinesq qui consiste àexprimer les tensions de Reynolds en fonction de la viscosité turbulente µt que l’on cherche àdéterminer :

Rij = µt

(

∂ui

∂xj+

∂uj

∂xi− 2

3δij(

3∑

k=1

∂uk

∂xk)

)

− 2

3ρkδij

avec Rij , le tenseur de Reynolds :

Rij =

u′u′ u′v′ u′w′

u′v′ v′v′ v′w′

u′w′ v′w′ w′w′

et k énergie cinétique turbulente.

De plus, un coefficient de diffusivité thermique turbulent λt permet de prendre en compte leseffets de la turbulence sur la thermique de l’écoulement. L’évolution du coefficient de diffusivitéthermique de la turbulence est liée aux variations de µt. Pour déterminer µt, plusieurs modèlessont disponibles dont plusieurs sont implémentés dans elsA :

– les modèles algébriques qui expriment directement µt en fonction des variables conserva-tives,

20

Page 21: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

– les modèles à une seule équation de transport, comme le modèle de Spalart-Allmaras,permettent de calculer directement l’évolution de µt en fonction des champs conservatifs,

– les modèles à 2 équations de transport, comme le modèle k − ω de Wilcox calculent 2échelles de la turbulence et ces 2 échelles permettent d’obtenir µt par relation algébrique.

Dans le cadre des TP, seuls les modèles de Spalart-Allmaras et k −ω de Wilcox ont été présentés.

3.1.1 Modèle de Spalart-Allmaras

Le modèle de Spalart-Allmaras est un modèle à 1 équation. Les modèles à 1 équation pro-posent soit une équation de transport liée à µt soit à une autre grandeur de la turbulence direc-tement liée à la viscosité turbulente.

3.1.2 Modèle k-ω

Le modèle k−ω est un modèle à deux équations de transport. Pour ces modèles là, la viscositéturbulente s’exprime en fonction de deux grandeurs de la turbulence. On écrit une équation detransport pour chacune de ces deux grandeurs, ici :

– pour k, l’énergie cinétique turbulente,– pour ω, fréquence caractéristique de la turbulence. L’inverse de ω représente l’échelle de

temps caractéristique de la dissipation de l’énergie cinétique k. La viscosité turbulentes’exprime en fonction de k et ω :

µt = ρk

ω

3.1.3 Couche limite

La couche limite est une zone située au voisinage d’un corps immergé dans un fluide enmouvement, en dehors de laquelle, les effets de la viscosité sont négligeables. Elle est le siège deforts gradients des champs conservatifs. C’est la capacité à plus ou moins bien prédire cette zonede l’écoulement qui permet de décider si un modèle de turbulence st précis ou non. Sur le planthéorique, on distingue deux régions dans la couche limite :

– la première, très près de la paroi, est appelée sous couche laminaire et elle est le siège dela loi linéaire

– l’autre, loin de la paroi, est appelée zone d’équilibre et elle est le siège de la loi logarithmique.Les deux régions sont contrôlées par les valeurs respectives de la viscosité laminaire et de la viscositéturbulente, que l’on retrouve dans le tenseur des contraintes :

τ = (µ + µt)(∇u + ∇ut − 2

3∇.uI)

On suppose que l’on étudie une couche limite de plaque plane turbulente avec un très faiblegradient de pression longitudinal. Cela permet de simplifier fortement les équations de Navier-Stokes dans la couche limite. En particulier, on montre que la composante normale du cisaillementest conservée dans ce cas :

τ = (µ + µt)∂u

∂y= τw .

On définit la vitesse de frottement :

uτ =

τw

ρw.

On introduit une vitesse et une distance adimensionnelles appelées les « variables de paroi » :

U+ =u

uτet y+ =

yuτ

ν.

21

Page 22: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

Sous-couche linéaire

Au voisinage immédiat de la paroi, les contraintes turbulentes tendent vers 0 et la viscositélaminaire domine largement la viscosité turbulente, d’où :

τ = µ∂u

∂y

Par définition de la vitesse de frottement et en approchant la dérivée de la vitesse par son approxi-mation linéaire, on peut écrire :

τw = ρwu2τ = µ

∂u

∂y= µ

u

y

Soit,u

uτ= y

ρwuτ

µ

On écrit une loi de la vitesse en fonction de la distance à la paroi. Si on réécrit cette expressionen fonction des variables de paroi, on obtient la loi linéaire :

u+ = y+

La loi linéaire est vérifiée pour y+ < 3.

Zone logarithmique

Dans cette zone, les tensions turbulentes dominent la composante laminaire du tenseur descontrainte car la viscosité turbulente domine la viscosité laminaire. La viscosité turbulente estobtenue par produit des échelles caractéristiques de la turbulence. Des essais en souflerie montrequ’on peut la modéliser comme suit :

µt = ρκuτy .

La nouvelle constante est appelée constante de Von Karman : κ = 0.41.On a par ailleurs,

µt∂u

∂y= ρwu2

τ ,

et d’autre part, la contrainte de Reynolds reste en première approximation constante dans ladirection normale à la paroi :

τ = τw = ρwu2τ

On obtient donc,

µt∂u

∂y= ρu2

τ = ρκuτy∂u

∂y

où y représente la distance à la paroi. Soit,

ky=

∂u

∂y

On peut intégrer cette équation par rapport à y et l’écrire en fonction des variables de paroi,soit :

u+ =1

kln(y+) + C

où C est une constante d’intégration.

Les très nombreux essais en soufflerie subsonique et transonique montrent que c’est uneconstante universelle proche de 5. La loi logarithmique est valable pour des valeurs de y+ supé-rieures à environ 30. La région comprise entre y+ = 3 et y+ = 30 est appelée région tampon.

22

Page 23: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

Comparaison entre calculs et lois théoriques

Les comportements théoriques sont obtenus sur une plaque plane. L’objectif d’un TP estde les retourver par simulation numérique. Pour cela, on simule avec elsA un écoulement surune plaque plane adiabatique à M∞ = 0.85. Pour retrouver les lois linéaire et logarithmique (cfFigure 3.1), on construit les variables de paroi u+ et y+ et on trace la fonction u+ = f(y+). On seplace en un point assez éloigné du bord d’attaque de la plaque afin de disposer d’une couche limitesuffisamment établie. On récupère la valeur du frottement pariétal en ce point. On fait ensuiteune coupe en ce même point suivant la direction normale à la paroi et on relève les valeurs de laviscosité et de la masse volumique à la paroi.

yplus

uplu

s,up

lus_

th,u

plus

_log

100 101 102 103 104 1050

5

10

15

20

u+=f(y+)u+=y+u+=5.6 log(y+)+5

Frame 001 21 Sep 2006 Laminar computation -- Flat Plate

Fig. 3.1 – Plaque plane (modèle de Spalart) - Loi de paroi

Comparaison laminaire / turbulent

Les couches limites pour les régimes d’écoulement laminaire et turbulent sont différentes(cfFigure 3.2). La couche limite turbulente est plus épaisse que la laminaire. En effet, la loi devariation de la vitesse dépend de la viscosité du fluide qui induit un frottement entre les couchesvoisines. Par rapport à un écoulement laminaire, il existe en plus de la viscosité turbulente quirenforce le terme de diffusion visqueuse. Comme l’écoulement est plus visqueux, il y a besoin deplus de place pour que la vitesse locale atteigne la valeur de la vitesse amont.

Comparaison des modèles de turbulence

Les écoulements sur plaque plane sont les plus simples à reproduire par le calcul. On doitobtenir la même couche limite pour tous les modèles de turbulence (cf. Figure 3.2) dans la mesureoù les modèles ont été mis au point pour coller aux résultats expérimentaux sur la plaque plane.

Sur des configurations plus complexes, comme un profil d’aile d’avion par exemple, les résul-tats peuvent fortement différer. Dans le cadre du TP « Ecoulement autour d’un profil RAE2822 »

23

Page 24: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

y

u

0 0.02 0.04

0.3

0.4

0.5

0.6

0.7

laminaireSpalartK-Omega

Frame 001 21 Sep 2006 Laminar computation -- Flat Plate

Fig. 3.2 – Plaque plane - couche limite laminaire et turbulente. Effet du choix du modèle deturbulence.

on traite deux cas bien connus d’écoulements transoniques, les cas 9 et 10, pour lesquels on pos-sède des données expérimentales. Ces cas servent notamment à valider ou comparer des modèlesnumériques.

Le cas 9 est un cas considéré sans décollement ou avec un décollement très faible. Pour ce cas,on obtient des résultats qui collent bien aux données expérimentales. On visualise le coefficient depression et le coefficient de frottement (cf Figures 3.3 et 3.4). On constate que les deux modèlesde turbulence donnent des résultats quasiment identiques.

24

Page 25: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

x, V1

Cp,

V2

0.2 0.4 0.6 0.8 1

-0.5

0

0.5

1SpalartK-Omegaexp

Frame 001 27 Sep 2006 RAE2822 - Mach 0.73

Fig. 3.3 – RAE2822 (cas 9) - coefficient de pression.

x, V1

Cf,

frict

ionm

odul

us,V

2

0 0.2 0.4 0.6 0.8

-0.005

0

0.005

0.01SpalartSpalartK-OmegaK-Omegaexp

Frame 001 27 Sep 2006 friction on wall_1

Fig. 3.4 – RAE2822 (cas 9) - coefficient de frottement.

Le cas 10 est un cas avec décollement en pied de choc (cf Figure 3.5). Là, la physique estbeaucoup plus complexe et les modèles ne sont pas initiallement conçus pour la reproduire par-faitement. On touche là aux limites d’une modélisation RANS. Les calculs effectués dans le cadredu TP montrent que la position du choc et la taille du décollement sont dépendants du choix du

25

Page 26: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

modèle de turbulence. Aucun ne donne la même chose et aucun non plus n’est capable de prédirecorrectement la position du choc. On remarque que la simulation prédit le choc trop tard parrapport à la solution expérimentale (cf Figure 3.6) et que l’évolution du frottement (variation deu) change fortement entre les 2 modèles (cf. Figure 3.7). On retrouve la présence d’un décollementquand le coefficient de frottement change de signe le long du profil, car il est directement lié auxvariations de la vitesse par la relation Cf = µ∂u

∂y .

x

z

0.659 0.66

0.052

0.0525

0.053

0.0535

Frame 001 26 Sep 2006 RAE2822 - Mach 0.73

Fig. 3.5 – RAE2822 (cas 10) - vecteurs vitesse suivant une ligne du maillage proche du pied duchoc. Visualisation du retournement des vecteurs vitesse (décollement)

26

Page 27: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

x, V1

Cp,

V2

0.2 0.4 0.6 0.8 1

-0.5

0

0.5

1K-OmegaSpalartexp

Frame 001 21 Sep 2006 RAE2822 - Mach 0.73

Fig. 3.6 – RAE2822 (cas 10) - Coefficient de pression.

x, V1

Cf,

frict

ionm

odul

us,V

2

0 0.2 0.4 0.6 0.8

-0.004

-0.002

0

0.002

0.004

0.006

0.008 SpalartSpalartK-OmegaK-Omegaexp

Frame 001 21 Sep 2006

Fig. 3.7 – RAE2822 (cas 10) - Coefficient de frottement.

27

Page 28: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

3.1.4 Phénomènes physiques

Déplacement du choc avec l’incidence

L’écoulement autour d’un profil est fortement dépendant des conditions de vol. Pour le vérifierà moindre coût numérique, un TP propose d’effectuer 2 calculs Euler autour du profil NACA0012pour 2 angles d’incidence différents. On constate alors que la position du pied de choc sur le profilchange fortement (décalage de 5% vers le bord de fuite). Ce résultat est montré sur les figures 3.8et 3.9.

x

z

0.8 0.9 1 1.1

-0.1

0

0.1

0.2

0.3

Frame 003 20 Sep 2006 NACA0012 - Mach 0.85

x

z

0.8 1

-0.1

0

0.1

0.2

Frame 002 20 Sep 2006 NACA0012 - Mach 0.85

Fig. 3.8 – NACA - position du choc pour α = 2

x

z

0.8 1

-0.1

0

0.1

0.2

Frame 002 20 Sep 2006 NACA0012 - Mach 0.85

x

z

0.8 0.9 1 1.1

-0.1

0

0.1

0.2

Frame 003 20 Sep 2006 NACA0012 - Mach 0.85

Fig. 3.9 – NACA - position du choc pour α = 4

28

Page 29: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

Phénomène de décrochage

Le phénomène de décrochage est lié à une baisse de la portance Cz et peut être obtenupar le calcul. Pour preuve, une polaire est tracée en scéance de TP pour le profil NACA 0012en Euler. Normalement, le décrochage n’existe pas avec les écoulements obtenus par résolutiondes équations d’Euler car le décrochage est lié à la viscosité du fluide dans la couche limite (enparticulier, présence de décollement). Les équations d’Euler ne permettent pas de modéliser unecouche limite et c’est la viscosité numérique du solveur elsA qui permet ici de construire une tellepolaire.

0

0.2

0.4

0.6

0.8

1

1.2

1.4

0 2 4 6 8 10 12 14 16

Polaire : Cz = f(α)

Cz

angle d’attaque en degrés

Fig. 3.10 – Polaire obtenue par calcul Euler : effets de la viscosité numérique d’elsA.

3.2 Influence des schémas numériques

Un schéma numérique sert à discrétiser les équations de Navier-Stokes et se ramène au calculdu flux à l’interface. On définit donc un « pas » d’espace qui représente la taille des mailles dumaillage.

Soit W le vecteur des variables conservatives :

W =

ρρuρvρwρet

.

Les schémas sont très généralement construits par une analyse 1D puis étendus aux autres dimen-sions. Ainsi, les explications seront donc faites en 1D.

29

Page 30: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

Fig. 3.11 – détails du maillage

On se propose de résoudre l’équation modèle d’advection suivante :

∂Y

∂t+ α

∂Y

∂x= 0 ,

où Y représente une variable conservative et α une constante appelée vitesse d’advection.

L’équation d’advection est résolue par une méthode volumes finis qui permet de prendre encompte des discontinuités dans la solution. Ainsi, on intègre l’équation précédente sur une celluleindicée i du maillage :

Ci

∂Y

∂t+ α

Ci

∂Y

∂x= 0 .

On peut réécrire :∫

Ci

∂Y

∂x=

∂Ci

Y.n.ds ,

avec– ∂Ci bord de la cellule Ci,– n vecteur normal dirigé vers l’extérieur de Ci.Ainsi, en 1D, :

α

Ci

∂Y

∂x= fi+1/2 − fi−1/2

où fk représente le flux à l’interface k et f peut s’écrire sous la forme f = αY . Pour les deuxschémas expliqués ci-dessous, on ne s’interessera plus qu’au flux numérique permettant le calculdes flux advectifs aux interfaces.

3.2.1 Schéma centré de Jameson

On cherche donc à déterminer la valeur du flux f aux interfaces i − 1/2 et i + 1/2.

Pour le schéma de Jameson, on utilise un développement en série de Taylor. Si on développef(x) en séries de Taylor au point d’abcisse z :

f(x) = f(z) + f ′(z)(x − z) + o(x − z)2 .

Si on développe à l’interface z = i + 1/2 :

fi = fi+1/2 + f ′

i+1/2(xi − xi−1/2) + o(xi − xi−1/2)2

fi+1 = fi+1/2 + f ′

i+1/2(xi+1 − xi−1/2) + o(xi+1 − xi−1/2)2

=⇒ fi + fi+1 = 2fi+1/2 + f ′

i+1/2(−∆x

2+

∆x

2) + o(∆x)2

⇐⇒ fi + fi+1

2= fi+1/2 + o(∆x)2 .

30

Page 31: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

Il s’agit donc d’un schéma centré d’ordre 2. Mais un schéma purement centré est instable,c’est pourquoi on utilise le schéma centré de Jameson qui lui rajoute de la dissipation numériqueou dissipation artificielle. L’équation d’advection s’écrit alors :

∂u

∂t+ a

∂u

∂x= ε

∂4u

∂x4

et le flux à l’interface :

fi+1/2 =1

2(fi + fi+1) − k4(ui+2 − 3ui+1 + 3ui−1 + ui−2) .

3.2.2 Schéma décentré de Roe

Comme son nom l’indique, le schéma décentré ne fait pas une moyenne des deux valeurs descellules voisines de l’interface, mais prend la valeur de la cellule qui précède selon le signe de α(pour un schéma décentré d’ordre 1).

fi+ 1

2

=

{

fi si α > 0fi+1 si α < 0

i i+1

x

x

i−1/2 i+1/2 i+3/2

a<0a>0

a>0

a<0

Fig. 3.12 – schéma - détail du maillage

Y se propage à la vitesse α, suivant l’équation d’advection :

∂u

∂t+ a

∂u

∂x= 0

On pose :α+ = max(α, 0)

31

Page 32: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

α− = min(α, 0)

|α| = α+ − α−

α = α+ + α−

On réécrit l’équation d’advection :

∂u

∂t+ (α+ + α−)

∂u

∂x= 0

∂u

∂t+ α+ ∂u

∂x+ α−

∂u

∂x= 0

∂u

∂t+ α+

(

ui − ui−1

∆x

)

+ α−

(

ui+1 − ui

∆x

)

= 0

∂u

∂t+

α + |α|2

(

ui − ui−1

∆x

)

+α − |α|

2

(

ui+1 − ui

∆x

)

= 0

∂u

∂t+ α

(

ui+1 − ui−1

2∆x

)

= |α|∆x

(

ui+1 − 2ui + ui−1

2∆x2

)

∂u

∂t+ α

[

(

ui+1 + ui

2∆x

)

−(

ui + ui−1

2∆x

)

]

− |α|(

ui+1 − ui

2∆x

)

+ |α|(

ui − ui−1

2∆x

)

= 0

∂u

∂t+

[

α

(

ui+1 + ui

2∆x

)

− |α|(

ui+1 − ui

2∆x

)

]

−[

α

(

ui + ui−1

2∆x

)

− |α|(

ui − ui−1

2∆x

)

]

= 0

Par identification avec l’équation d’advection en volumes finis

∂u

∂t+

[

fi+1/2 − fi−1/2

∆x

]

= 0

On obtient :

fi+1/2 = α

(

ui+1 + ui

2

)

− |α|(

ui+1 − ui

2

)

,

soit :

fi+1/2 =1

2(fi+1 + fi) −

|α|2

(ui+1 − ui) .

Mettre en évidence l’influence des schémas numériques sur une simulation est assez difficilecar on constatera seulement que le calcul aboutit ou n’aboutit pas. C’est ce que l’on montreaux étudiants dans un premier temps en leur faisant lancer un calcul avec un schéma purementcentré puis avec un schéma décentré de Roe. Ces calculs introduisent une activité Matlab quivient en démonstration et explication du comportement des schémas numériques. Trois schémasnumériques différents ont été codé sous Matlab. Il s’agit du schéma de Lax-Wendroff, que l’onpeut rapprocher d’un schéma centré, d’un schéma « upwind method » qui correspond à un schémadécentré et d’un schéma « superbee limiter » que l’on peut comparer à un schéma décentré d’ordre2. On les applique à un maillage, où l’on a initialisé une moitié en forme de porte à la valeur u0.On recalcule la valeur de l’écoulement à chaque pas de temps avec les trois schémas. On observel’évolution de la solution exacte.

On constate effectivement que le schéma purement centré est instable, que le schéma décentréest trop dissipatif alors que le schéma décentré d’ordre deux reste assez proche de la solution exacte.

32

Page 33: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

Fig. 3.13 – schémas numériques à t=0s

Fig. 3.14 – schémas numériques à t=2s

Fig. 3.15 – schémas numériques à t=5s

33

Page 34: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

Fig. 3.16 – schémas numériques à t=7s

3.3 Techniques d’accélération de la convergence

3.3.1 Méthode explicite / implicite

Les équations de Navier-Stokes couplées aux modèles de turbulence contiennent un termed’advection, un terme de diffusion et un terme source. Pour faciliter l’exposé, ces 3 termes serontregroupés sous la dénomination de R (pour « Right-Hand-Side « ).

Le but des phases explicite et implicite est l’intégration en temps de l’équation suivante :

VWn+1 − Wn

∆t+ R = 0

avec V le volume d’une cellule et W vecteur des variables conservatives.

Phase explicite

On réécrit l’équation :

VWn+1 − Wn

∆t+ Rn = 0

avec Rn calculé au temps n, c’est-à-dire avec les champs conservatifs pris au temps n. On parlealors de schéma explicite car l’état n + 1 se calcule directement à partir de l’état n :

Wn+1 = Wn − ∆t

VRn

La phase explicite à l’avantage d’être facile à implémenter. Cependant, elle n’est pas trèsrobuste. Sa condition de stabilité impose un pas de temps très faible et par conséquent un grandnombre d’itérations pour atteindre la convergence. Le temps et le coût de calcul peuvent ainsi êtretrès importants.

34

Page 35: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

Phase implicite

On réécrit l’équation :

V∆W

∆t+ Rn+1 = 0

On développe Rn+1 en séries de Taylor :

Rn+1 = Rn +( ∆R

∆W

)n

∆W

On réinjecte dans l’équation :

V∆−→W

∆t+ Rn +

( ∆R

∆W

)n

∆W = 0

⇐⇒(

V

∆tI +

( ∆R

∆W

)n)

∆W + Rn = 0

⇐⇒ K∆W + Rn = 0

⇐⇒ ∆W = K−1Rn

La phase implicite revient à faire une inversion de matrice, ce qui est assez lourd ; cependant,il n’y a pas de limitation sur le CFL, ce qui implique une réduction du temps de calcul importante.

Dans la pratique, on ne calcule pas exactement la matrice inverse, mais on l’approxime. Ilexiste plusieurs méthodes. On peut soit l’approximer par un scalaire, soit essayer d’en calculer unevaleur aprochée par des méthodes numériques d’inversion de matrice (méthode LU par exemple).

3.3.2 Méthode multi-grille

La méthode multi-grille est un moyen d’accélérer la convergence.

Elle se base sur plusieurs niveaux de grille, de la grille la plus fine (maillage initial) à desgrilles de plus en plus grossières (on divise par deux le nombre de points dans chaque direction dumaillage). On cherche d’abord une solution un peu convergée sur la grille fine. On transpose cettesolution sur la grille grossière. Là, le temps de calcul jusqu’à la convergence est beaucoup pluscourt car directement lié au nombre de points du maillage. On interpole cette solution "grossière"sur le maillage fin et le calcul converge alors beaucoup plus rapidement.

Il existe deux cycles de multi-grille, le cycle en V et le cycle en W. Le plus souvent, les calculsse font sur deux niveaux de grille.

– Le cycle en V décrit un V ! Il part d’une grille fine, passe sur 2 niveaux de grilles grossièreset remonte de la même manière à la grille fine

– Le cycle en W décrit, comme son nom l’indique, un W. Il part d’une grille fine, descendsur 2 niveaux de grilles, remonte à la grille intermédiaire, puis redescend à la grille la plusgrossière pour enfin remonter à la grille fine

Le cycle en V est le plus souvent utilisé. Le cycle en W est pourtant plus puissant maispour atteindre la valeur des résidus souhaités, ils sont équivalents. Alors que le cycle en V stagnepresque passé cette valeur, le cycle en W continue de décroître.

35

Page 36: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

Fig. 3.17 – 2 niveaux de grilles

36

Page 37: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

iteration

resi

dual

_ro

1000 2000 3000 4000 5000

10-14

10-12

10-10

10-8

10-6

10-4

10-2

100

monogrillemulti-grille

Frame 001 28 Sep 2006 NACA0012 - Mach 0.85 - Residus

Fig. 3.18 – comparaison des résidus avec et sans méthode multi-grille

37

Page 38: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

Conclusion

Le site propose donc aujourd’hui trois TP cohérents avec le modèle de base que l’on s’est fixé.Grâce au système Wiki, il va être amené à evoluer, en s’enrichissant de l’apport de chacun : denouveaux sujets de TP, des points théoriques supplémentaires ou plus approfondis, un lexique pluscomplet, etc. Le fait d’avoir défini un modèle à suivre impose quelques contraintes de rédactionselon le sujet mais garantit cependant une unité des sujets de TP et une évolution structurée dusite.

On peut se rendre compte avec le recul que les TP ne présentent pas aux étudiants une visiontrès objective de ce qu’est le numérique. En effet, les exercices proposés ont été « prémachés »pour que les calculs soient rapides et aboutissent. En réalité, le travail d’ingénieur en simulationnumérique est une boucle comprennant :

– le maillage,– le prétraitement du calcul,– le calcul lui-même,– le post-traitement.

et plusieurs passages de cet algorithme sont souvent nécéssaires pour obtenir une solution de bonnequalité.

38

Page 39: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

Annexe A

présentation du Cerfacs

Créé en 1987, le CERFACS est une organisation de recherche qui a pour but de développerdes méthodes avancées pour la simulation numérique et la solution algorithmique de problèmesscientifiques et technologiques complexes intéressant aussi bien la recherche que l’industrie. Cettemission requiert l’accès aux ordinateurs les plus puissants disponibles.

Le CERFACS a cinq actionnaires :

1. le CNES (Centre National d’Études spatiales)

2. EADS (European Aeronautic and Defence Space company)

3. EDF (Électricité de France)

4. Météo-France

5. SNECMA (Société Nationale d’Étude et de Construction de Moteurs d’Avions)

Le CERFACS abrite des équipes inter-disciplinaires, aussi bien pour la recherche que pourla formation avancée dans les domaines de la physique, les mathématiques appliqués, l’analysenumérique et l’informatique.

Environ 100 personnes travaillent au CERFACS, dont 90 chercheurs et ingénieurs venant de10 pays différents. L’activité est répartie en six groupes de recherche :

1. algorithmique parallèle

2. aérodynamique

3. combustion

4. climat et environnement

5. fusion de données

6. électromagnétisme.

Moyens informatiques

En interne, le CERFACS possède :– un super-calculateur Cray XD1 muni de 120 processeurs optérons ;– un Compaq AlphaServer SC45 de 40 processeurs ;– une SGI Origin 2000 avec 32 processeurs.

En externe, nous avons la possibilité d’accéder au super-calculateur Fujistsu de Météo-France,aux moyens du CCRT (Centre de Calcul Recherche et Technologie) du Commissariat à l’ÉnergieAtomique (CEA) et au CINES (Centre Informatique National de l’Enseignement Supérieur). Enmars 2005, l’équipe combustion a même eu la possibilité de porter son code de recherche sur l’IBMBlueGene/L du Thomas Watson Research Center qui était à ce moment la 8ème machine la pluspuissante au monde selon le Top500. SUr un maillage de 40 millions de cellules, ils ont observéun speed-up de 2037 sur une configuration de 2048 processeurs et un speed-up de 4078 sur une

39

Page 40: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

configuration de 4096 processeurs. Démontrant ainsi l’excellente stalabilité de leur code puisqueproche d’un speed-up linéaire.

40

Page 41: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

Annexe B

Nous donnons ici un exemple de script python pour elsA.

!/usr/bin/env EpMuse.py# ==========================================================================# Project: elsA - DSNA/ELSA - Copyright (c) 1998-2000 by ONERA# Type : <17470693 7474> Test file# File : script/naca01-EXTRACT/naca01-EXTRACT.epy# Vers : $Revision: 1.13 $# Chrono : No DD/MM/YYYY Author V Comments# 1.1 15/05/2000 MCLP 2.0 User Python, tex text, nb it, join.# 1.0 30/08/1999 AJ/SB 1.0 Creation# ==========================================================================# Name naca01-EXTRACT# Memo transonic inviscid flow around a 2-D profile - 1 domain# See# void# Physics# 1- Configuration# > 2-D profile# 2- Computational domain# > The computational domain is a C-shape domain around the profile.# 3- Equations# > Euler equations with perfect gas EOS# 4- Wall conditions# > Slip condition on the walls# 5- External conditions# > Non-reflective conditions# 6- Initial conditions# > Uniform flowfield# Numerics# 1- Computational domain# > See physics for the definition of the domain# > Mesh : 1 domain with 257x33x2 mesh points# 2- Space discretization# > Jameson centered scheme with artificial dissipation# 3- Time discretization# > Explicit Runge-Kutta (RK4) with local time stepping# 4- Resolution method# > Explicit# 5- Wall conditions# > boundary type "wallslip" with extrap 0# 6- External conditions# > boundary type "nref"# 7- Initial conditions# > At t=t0, the far-field state is defined in each cell.# Computer# 1- Type : SGI# 2- Processors: 1# 3- Memory: ?# 4- CPU: ?## Files# 1- Data# > not used# 2- Mesh# > ./naca_eu.mai# 3- t0 fields# > not used# 4- t1 fields# > not used# Design# void

41

Page 42: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

# References# void## ===========================================================================## --- HighLigths# This par is used into the Validation document# Each line is a LaTeX item, thus you can insert pure LaTeX text##@ NACA0012 2D wing profile.#@ Infinite flow : ${M_\infty}~=~0.85$, $\alpha~=~1\deg$.#@ Steady transonic perfect gas flow.#@ Mesh:~ $257 \times 33 \times 2$ .#@ Initial field : far-field state.#@ Jameson centered fluxes with artificial dissipation ‘‘dissca’’ : $[~0.5~,~0.032~,~1~]$.#@ Time integration : Runge-Kutta 4 steps with freezing.#@ Implicit residual smoothing.#@ Local time step.#@ 1500 iterations, CFL=15.#@ Flux extraction.#import time## ---------------------------------------------------------------------------# PRELIMINARY COMPUTATION## Reference used by normalization: RoInf, Vinf# Calculation of the far-field state corresponding to the values# of the Mach number and the angle of attack# (flow is 2-D in coordinates (x,z))#from math import *#MachInf=0.85Gamma=1.4Alpha = 1.0 * pi /180.Pinf = 1. / (Gamma*MachInf*MachInf)#RoInf = 1.RouInf = cos(Alpha)RovInf = 0.RowInf = sin(Alpha)RoeInf = Pinf/(Gamma-1.) + 0.5#IBF1=33IBF2=225#IMIN=1IMAX=257#JMIN=1JMAX=33#KMIN=1KMAX=2##-----------------------------------------------------------# PROBLEM CREATION AND NAMING#----------------------------#naca = cfdpb(name=’naca’)naca.set(’config’,’2d’)##-----------------------------------------------------------# MESH CREATION, NAMING, DESCRIPTION#-----------------------------------#mshnaca = mesh(name=’mshnaca’)#mshnaca.set(’file’,’naca_eu.mai’)mshnaca.set(’format’,’fmt_tp’)#mshnaca.submit()##-----------------------------------------------------------# BLOCK CREATION, NAMING, DESCRIPTION#------------------------------------#blknaca = block(name=’blknaca’)#

42

Page 43: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

blknaca.set(’mesh’,’mshnaca’)#blknaca.show()blknaca.submit()##-----------------------------------------------------------# MODEL CREATION, NAMING, DESCRIPTION#------------------------------------#mod = model(name=’mod’)#mod.set(’fluid’,’pg’)mod.set(’phymod’,’euler’)mod.set(’gamma’,1.4)#mod.show()mod.submit()##-----------------------------------------------------------# NUMERICS CREATION, NAMING, DESCRIPTION#---------------------------------------#num = numerics(name=’num’)num.set(’limiter’,’none’)#num.set(’multigrid’,’none’)num.set(’restrict_type’,’synchronous’)#num.set(’time_algo’,’steady’)num.set(’ode’,’rk4’)num.set(’implicit’,’irs’)num.set(’flux’,’jameson’)num.set(’artviscosity’,’dissca’)num.set(’av_base’,[0.5, 0.032, 1.0])num.set(’freezing’,1)num.set(’multigrid’,’w_cycle’)num.set(’nbcoarsegrid’,2)num.set(’nitercoarse’,2)num.set(’niter’,700)num.set(’inititer’,1)##num.set(’avcoef_k2’,0.5)num.set(’avcoef_k4’,0.032)num.set(’avcoef_sigma’,1.)#num.set(’freqcomptimestep’,1)num.set(’cfl’,11.)##num.set(’freqcompres’,1)num.set(’convergence_level’,1e-10)#num.show()##-----------------------------------------------------------# BOUNDARY CREATION, NAMING, DESCRIPTION#---------------------------------------# No boundary on K-faces due to 2-D calculation##--- jmin - join#w1 = window(’blknaca’,name=’w1’)#w1.set(’iw1’,IMIN)w1.set(’iw2’,IBF1)w1.set(’jw1’,JMIN)w1.set(’jw2’,JMIN)w1.set(’kw1’,KMIN)w1.set(’kw2’,KMAX)#b1 = boundary(’blknaca’,’w1’,’join’,name=’b1’)#b1.set(’jtype’,’match’)b1.set(’blkrac’,’blknaca’)b1.set(’wndrac’,’w3’)##--- jmin - wallslip#w2 = window(’blknaca’,name=’w2’)#

43

Page 44: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

w2.set(’iw1’,IBF1)w2.set(’iw2’,IBF2)w2.set(’jw1’,JMIN)w2.set(’jw2’,JMIN)w2.set(’kw1’,KMIN)w2.set(’kw2’,KMAX)#b2 = boundary(’blknaca’,’w2’,’wallslip’,name=’b2’)#b2.set(’extrap’,0)##--- jmin - join#w3 = window(’blknaca’,name=’w3’)#w3.set(’iw1’,IBF2)w3.set(’iw2’,IMAX)w3.set(’jw1’,JMIN)w3.set(’jw2’,JMIN)w3.set(’kw1’,KMIN)w3.set(’kw2’,KMAX)#b3 = boundary(’blknaca’,’w3’,’join’,name=’b3’)#b3.set(’jtype’,’match’)b3.set(’blkrac’,’blknaca’)b3.set(’wndrac’,’w1’)##--- jmax - nref#w4 = window(’blknaca’,name=’w4’)#w4.set(’iw1’,IMIN)w4.set(’iw2’,IMAX)w4.set(’jw1’,JMAX)w4.set(’jw2’,JMAX)w4.set(’kw1’,KMIN)w4.set(’kw2’,KMAX)#b4 = boundary(’blknaca’,’w4’,’nref’,name=’b4’)#b4.set(’state’,’stateInf’)##--- imin - nref#w5 = window(’blknaca’,name=’w5’)#w5.set(’iw1’,IMIN)w5.set(’iw2’,IMIN)w5.set(’jw1’,JMIN)w5.set(’jw2’,JMAX)w5.set(’kw1’,KMIN)w5.set(’kw2’,KMAX)#b5 = boundary(’blknaca’,’w5’,’nref’,name=’b5’)#b5.set(’state’,’stateInf’)##--- imax - nref#w6 = window(’blknaca’,name=’w6’)#w6.set(’iw1’,IMAX)w6.set(’iw2’,IMAX)w6.set(’jw1’,JMIN)w6.set(’jw2’,JMAX)w6.set(’kw1’,KMIN)w6.set(’kw2’,KMAX)#b6 = boundary(’blknaca’,’w6’,’nref’,name=’b6’)#b6.set(’state’,’stateInf’)##-----------------------------------------------------------# INITIAL FIELD CREATION, NAMING, DESCRIPTION#--------------------------------------------#stateInf = state(name=’stateInf’)#stateInf.set(’ro’, RoInf)

44

Page 45: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

stateInf.set(’rou’,RouInf)stateInf.set(’rov’,RovInf)stateInf.set(’row’,RowInf)stateInf.set(’roe’,RoeInf)#winit = window(’blknaca’,name=’winit’)#winit.set(’all’,’yes’)#init1 = init(’winit’,name=’init1’)#init1.set(’state’,’stateInf’)##-----------------------------------------------------------# EXTRACTION CREATION, NAMING, DESCRIPTION#-----------------------------------------##--- Cell extraction#wext1 = window(’blknaca’,name=’wext1’)#wext1.set(’all’,’yes’)#ext1 = extract(’wext1’,name=’ext1’)#ext1.set(’file’,’naca01_1deg_W_cell.tp’)ext1.set(’var’,’conservative ’)ext1.set(’title’,’NACA0012 - Mach 0.85 ’)ext1.set(’loc’,’cell’)##--- Node extraction#wext2 = window(’blknaca’,name=’wext2’)#wext2.set(’iw1’,1)wext2.set(’iw2’,IMAX)wext2.set(’jw1’,1)wext2.set(’jw2’,JMAX)wext2.set(’kw1’,1)wext2.set(’kw2’,1)#ext2 = extract(’wext2’,name=’ext2’)#ext2.set(’file’,’naca01-1deg_W_node.tp’)ext2.set(’var’,’xyz ro rou rov row roe mach’)ext2.set(’title’,’NACA0012 - Mach 0.85 ’)ext2.set(’loc’,’node’)##--- Cell + boundary extension extraction#ext3 = extract(’wext1’,name=’ext3’)#ext3.set(’file’,’naca01-1deg_W_cellfict.tp’)ext3.set(’var’,’xyz ro mach’)ext3.set(’title’,’NACA0012 - Mach 0.85 ’)ext3.set(’loc’,’cellfict’)##--- Residus#extRes = extract_group(name=’extRes’)#extRes.set(’title’,’NACA0012 - Mach 0.85 - Residus’)extRes.set(’windows’,’winit’)extRes.set(’var’,’residual_ro residual_rou residual_row residual_roe’)extRes.set(’file’,’./residual_1deg_W.tp’)extRes.set(’norm’,1)##--- Lift (standard output)#extLift1 = extract_group(name=’extLift1’)#extLift1.set(’windows’,’+w2’)extLift1.set(’var’,’convflux_row’)extLift1.set(’fluxcoeff’,-2.)##--- Lift (file)#extLift2 = extract_group(name=’extLift2’)#extLift2.set(’title’,’NACA0012 - Mach 0.85 - Lift (fluxcoeff -2)’)

45

Page 46: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

extLift2.set(’windows’,’+w2’)extLift2.set(’var’,’convflux_row’)extLift2.set(’file’,’./lift_1deg_W.tp’)extLift2.set(’fluxcoeff’,-2.)##--- Test : mode = 2#extMode = extract_group(name=’extMode’)#extMode.set(’title’,’Test : mode=2’)extMode.set(’windows’,’-w2’)extMode.set(’var’,’convflux_row’)extMode.set(’file’,’./allfluxes_1deg_W.tp’)extMode.set(’fluxcoeff’,-2.)##--- Test : multiple observors period/mode#extObs = extract_group(name=’extObs’)#extObs.set(’windows’,’-w2’)extObs.set(’var’,’convflux_row’)extObs.set(’period’,2)##--- Test : lift on two windows#w7 = window(’blknaca’,name=’w7’)#w7.set(’iw1’,IBF1)w7.set(’iw2’,100)w7.set(’jw1’,JMIN)w7.set(’jw2’,JMIN)w7.set(’kw1’,KMIN)w7.set(’kw2’,KMAX)#w8 = window(’blknaca’,name=’w8’)#w8.set(’iw1’,100)w8.set(’iw2’,IBF2)w8.set(’jw1’,JMIN)w8.set(’jw2’,JMIN)w8.set(’kw1’,KMIN)w8.set(’kw2’,KMAX)#extWnds = extract_group(name=’extWnds’)#extWnds.set(’title’,’Test : lift on two winodws’)extWnds.set(’windows’,’-w7-w8’)extWnds.set(’var’,’convflux_row’)extWnds.set(’file’,’./liftWindows_1deg_W.tp’)##-----------------------------------------------------------# CONNECTING NUMERICS AND MODEL WITH PROBLEM#-------------------------------------------#naca.set(’global_numerics’,’num’)naca.set(’global_model’,’mod’)#naca.submit()naca.show()##-----------------------------------------------------------# FLOW COMPUTATION#-----------------#t1=time.clock()#naca.compute()#t2=time.clock()##-----------------------------------------------------------# RESULT EXTRACTION#------------------#naca.extract()##-----------------------------------------------------------# PRINT CPU Time#---------------#

46

Page 47: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

print ""print "============================="print "CPU Time"print "-----------------------------"print "total for compute : ", t2-t1print "============================="print ""##-----------------------------------------------------------# PRINT Memory#-------------#naca.statistics()#

47

Page 48: Rapport de stage ingénieur 5 Juin - 29 Septembre Création d'une ...

Bibliographie

[1] « Manuel théorique elsA »

[2] « beginner guide 1 » : documentation elsA

[3] « elsA User’s reference manual »

[4] Yann Colin « Overview of preconditionning techniques », septembre 2005

[5] Yann Colin et Jean-Philippe Boin, « Driving state definition and normalisation withinelsA-Python script », fevrier 2006

[6] Marcel Lesieur « La turbulence », Collection Grenoble Sciences,

[7] Yann Colin « TP3 » et « TP4 », novembre 2005

[8] « Reynolds stress transport modelling of transonic flow around the RAE2822 airfoil »,AIAA-paper, 94-0309, 32nd Aerospace Science Meeting, janvier 1994

[9] J.L. Estivalezes « Notes de cours sur la turbulence », octobre 2005

48