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 certification d une application numérique. Evidemment, 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 maillage 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 fluide 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 : Re = ρv inr µ où ρ et µ sont la masse volumique et la viscosité du fluide, tandis que V in et R correspondent 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 V in = 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 sortie 1. 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 ρ(v )v = p + µ 2 v (1) 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 P 2 P 1 et quadrangulaires Q 2 Q 1 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 : V in = 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 nonliné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 continuation. 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 globale 2 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.