Вы находитесь на странице: 1из 6

MECA-2120 Introduction aux éléments finis : projet 08-09 1

Ecoulement autour d’un


cylindre

L’objectif du projet est de vous initier aux


difficultés de la mise au point et de la certi-
fication d’une application numérique. Evi-
demment, il n’est pas question de vous
transformer en experts de la mise au point
de l’architecture de grandes applications
numériques modernes d’éléments finis. Il
vous est seulement demandé d’écrire un
programme Matlab pour la résolution des
équations de Navier-Stokes avec un mail-
lage comprenant des éléments triangulaires
et quadrangulaires.

La solution que nous avons fourni pour le


dernier exercice peut évidemment servir de
point de départ de votre projet.

Plus précisément, il s’agira de calculer l’écoulement incompressible stationnaire d’un flu-


ide newtonien autour d’un cylindre entre deux parois. La présence d’un cylindre va
induire une zone de recirculation qui va grandir progressivement si on augmente le débit
de l’écoulement. Nous resterons toutefois dans une gamme extrêmement modeste de
valeurs pour le nombre de Reynolds, afin que l’écoulement reste parfaitement symétrique
et stable : il s’agit évidemment d’un problème laminaire. Un tel écoulement peut être
caractérisé par un nombre de Reynolds :

ρVin R
Re =
µ

où ρ et µ sont la masse volumique et la viscosité du fluide, tandis que Vin et R corre-
spondent respectivement à la valeur maximale du profil de Poiseuille imposé en haut du
domaine et au rayon du cylindre. Par souci de simplicité et afin d’adimensionnaliser de
manière naturelle nos équations, nous prendrons des valeurs unitaires pour Vin = 1, R = 1
et µ = 1. Par contre, la valeur de ρ sera un paramètre que nous ferons varier afin d’obtenir
la valeur du nombre de Reynolds souhaité. Une valeur nulle de masse volumique permettra
d’obtenir un écoulement de Stokes, tandis que l’accroissement progressif de ρ permettra
d’obtenir des équations où le terme non-linéaire d’inertie prendra progressivement plus
d’importance.
MECA-2120 Introduction aux éléments finis : projet 08-09 2

Les lignes de courants et la norme de la vitesse représentées correspondent à Re = 100.


On observe que le maillage n’est pas assez long puisque l’écoulement n’est pas établi à
la sortie1 . Concrètement, nous vous demanderons d’obtenir les vitesses, la pression et les
lignes de courant pour Re = 50.

Equations de Navier-Stokes

Le problème aux conditions aux limites permettant d’obtenir le champs de vitesse et la


pression se compose des équations de Navier-Stokes en deux dimensions avec les conditions
aux limites données sur la Figure ??.


 ∇·v = 0
(1)
ρ(v · ∇)v = −∇p + µ∇2 v

où v = (u, v) représente le vecteur vitesse et p la pression. La fluide colle aux parois et au
cylindre. En haut du domaine, on impose un écoulement de Poiseuille. Comme nous nous
nous limitons à des valeurs de Re où l’écoulement reste symétrique, le domaine de calcul
pourra être défini en tirant profit de la symétrie et une condition de symétrie sera appliquée
sur l’axe de symétrie. En bas du domaine, nous imposons une contrainte normale nulle
ainsi qu’une vitesse tangentielle nulle : il est indispensable d’imposer une condition à la
sortie et ce choix permet d’être le moins contraignant possible tout en restant compatible
avec l’hypothèse que l’écoulement redevient établi à la sortie du domaine de calcul. La
densité de force de contact sur une frontière est notée t = σ · n, où σ et n représentent
respectivement le tenseur de Cauchy et la normale sortante à la frontière. Le vecteur
tangent est noté τ .

Les équations seront discrétisées à l’aide d’une formulation mixte classique avec les éléments
triangulaires P2 − P1 et quadrangulaires Q2 − Q1 de Taylor-Hood. La représentation de
vitesse sera donc (bi)-quadratique et continue, tandis que la pression sera (bi)-linéaire et
continue, afin d’assurer la stabilité de la formulation discrète. Pour éviter de générer une
erreur géométrique sur le cylindre, on considérera un élément isoparamétrique en termes de
vitesses. Les intégrations numériques seront effectuées avec des règles de Gauss-Legendre
avec 3 et 4 points respectivement.

Comme le problème de Navier-Stokes n’est pas linéaire, les équations discrètes ne seront
pas linéaires non plus ! Il s’agira donc d’utiliser la méthode de Newton-Raphson pour
1
A propos, quelle devrait être la longueur approximative du maillage pour que l’écoulement puisse
être considéré comme établi à sortie du domaine de calcul ? Et encore, c’est quoi un écoulement établi
au fond ?
MECA-2120 Introduction aux éléments finis : projet 08-09 3

Figure 1: Conditions aux limites : Vin = −1


MECA-2120 Introduction aux éléments finis : projet 08-09 4

obtenir la solution du système algébrique obtenu. Comble de difficulté, lorsque la non-


linéarité est assez importante, un vecteur de valeurs nodales nulles est trop éloignée
de la solution pour que notre méthode de Newton-Raphson converge. Il faudra donc
incrémenter progressivement le nombre de Reynolds, afin de toujours avoir un canditat
initial suffisamment proche de la solution et de donc rester dans le rayon de convergence
du schéma itératif. Une telle approche est connue sous le vocable de technique de conti-
nuation. Dans le cas qui nous concerne, nous augmenterons progressivement la valeur de
ρ, tous les autres paramètres étant inchangés.

Lorsque ρ = 0, le problème se réduit aux équations linéaires de Stokes : il s’agit évidemment


du premier résultat à obtenir !

Fonction de courant

Pour un écoulement incompressible plan, il est possible de définir un fonction scalaire


ψ par le problème de Poisson sur base du champs de vitesse que vous avez obtenu en
résolvant les équations de Navier-Stokes.

∇2 ψ = −∇ × v (2)

Cette équation sera également discrétisée en utilisant des éléments isoparamétriques (bi)-
quadratiques. La définition judicieuse des conditions frontières pour ce problème est laissé
à votre sagacité : réfléchissez bien à l’interprétation physique de la valeur de la fonction
de courant. L’incrément entre deux lignes de courants correspond exactement au débit
de l’écoulement passant entre les deux trajectoires.

Ce que vous devrez réaliser !

L’objet du projet est de réaliser un petit code d’éléments finis permettant de résoudre
l’écoulement autour d’un cylindre : il s’agit d’un petit laboratoire numérique où vous
allez être confrontés à la mise au point d’un petit programme : il y a peu à programmer
et beaucoup à comprendre !

Un programme pour lire les maillages est fourni par nos bons soins.... Il vous est toutefois
loisible d’en proposer d’autres. Une famille de quatre maillages pour le problème est
également fourni. Il vous est demandé :

1. De concevoir un -unique- programme permettant l’obtention de la vitesse, de la


pression et de la fonction de courant pour une valeur de Re donnée en argument.
MECA-2120 Introduction aux éléments finis : projet 08-09 5

Les interpolations des coordonnées, de la vitesse et de la fonction de courant seront


(bi)-quadratiques, tandis que la pression sera (bi)-linéaire. Le maillage comportera
un mélange de triangles et de quadrangles.

2. De donner les unités de tous les paramètres du modèle.

3. De calculer la force exercée par le fluide sur le cylindre.

4. D’expliquer comment être certain que le schéma de Newton-Raphson converge bien.

5. De résoudre le problème sur plusieurs maillages et d’analyser la convergence en


comparant les diverses valeurs de force obtenue. En déduire un taux de convergence
pour la force. Est-ce que la valeur correspond à ce que la théorie suggère ?

6. Effectuer la même analyse de convergence sur l’importance de la recirculation basée


sur la valeur du maximum (minimum) de la fonction de courant au centre de celle-ci.

7. De visualiser la structure creuse de la matrice globale2 où toutes les inconnues de


vitesses sont numérotées avant les inconnues de pression. Qu’observez-vous ?

8. De résoudre le problème avec le maillage le plus raffiné pour Re = 50.

9. De produire quelques illustrations pertinentes pour l’analyse de la solution.

10. Représenter avec gmsh, la fonction de courant pour Re = 25 obtenue avec le maillage
medium.msh. On tracera 15 isocourbes dont les valeurs progressent de manière
uniforme entre le cylindre et la paroi. La valeur précise de l’incrément devra pouvoir
être identifiée dans le rapport.

11. D’expliquer ce qui se passerait si on continuait d’augmenter le nombre de Re.


Qu’obtiendrait-on numériquement ? Que devrait-on observer physiquement ?

12. De rédiger une note de synthèse d’au maximum 7 pages pour le SGCPE (Service de
Gestion des Cylindres Plongés dans des Ecoulements) en analysant en particulier
l’impact du choix de l’interpolation, le résultat obtenu et en estimant la précision
de vos résultats. Ne pas recopier les développements théoriques du syllabus, ne pas
recopier l’énoncé du problème, ne pas fournir des diagrammes incompréhensibles,
ne pas donner des tableaux de chiffres indigestes ! L’orthographe, le soin et la
présentation seront conformes à celles d’une note fournie par un bureau d’études
professionnel.

13. De fournir une copie papier des 7 pages (oui, il faut imprimer votre rapport !).
2
La fonction spy de MatLab est particulièrement pratique pour cela !
MECA-2120 Introduction aux éléments finis : projet 08-09 6

14. De télécharger sur le site web, votre programme (qui doit être contenu dans un
unique fichier : il n’est pas nécessaire d’y inclure les programmes fournis pas nos
soins si vous ne les avez pas modifiés), ainsi que votre rapport sous un format
pdf. Le programme (unique pour toutes les questions) doit se nommer projet.m et
prendre en argument le nom du fichier de maillage et le nombre de Reynolds (pour
le problème de Stokes, on aura Re = 0). Le code doit écrire trois fichiers uv.pos,
p.pos et stream.pos correspondant respectivement à la vitesse, la pression et la
fonction de courant. Le code doit en outre renvoyer un vecteur contenant les deux
composantes de la force exercée par le fluide sur le cylindre (par unité de profondeur,
évidemment !).

En général, c’est une bonne idée de bien mettre le nom de tous les membres du groupe
dans l’entête du fichier de code ainsi que sur le rapport !

Quelques conseils utiles !


• spy vous permet de voir la silhouette d’une matrice creuse, et donc d’évaluer graphiquemement si
vos routines d’assemblage font bien ce qu’elles sont sensées faire.
• L’outil profiler de Matlab permet d’évaluer où votre code passe du temps. Ca peut être intéressant
à utiliser si votre code est vraiment trop lent.
• Utilisez un maillage très grossier lors de vos essais. N’ayez recours aux maillages très raffinés que
tout à la fin de votre mise au point.
• Il n’est pas possible d’obtenir une solution à haut nombre de Reynolds sur un maillage grossier :
c’est normal, c’est pas votre code qui foire là !
• Vérifiez votre travail bloc par bloc. Comparez vos matrices locales avec celles que l’on obtiendrait
à la main sur un triangle simple.
• Utilisez spy pour vérifier votre assemblage.
• Travaillez sur un mini-problème pour vérifier tous les détails algorithmiques : attention que pour
un nombre trop restreint d’éléments et un grand nombre de noeuds vitesses contraints, il est
possible que votre problème ne satisfasse plus la condition LBB !
• Pour savoir si les termes avec u sont exacts, il suffit de contraindre toutes les valeurs de p et v !
• Pour savoir si les termes avec v sont exacts, il suffit de contraindre toutes les valeurs de p et u !
• Pour savoir si les termes avec u et v sont exacts, il suffit de contraindre toutes les valeurs de p !
• Il n’est évidemment pas possible de résoudre le problème rien qu’avec des pressions : beh, tiens.

Вам также может понравиться