Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from...

202
Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS de la dynamique de deux fluides non miscibles Thèse RÉDA MEKHLOUF Doctorat en génie civil Philosophiæ Doctor (Ph.D.) Québec, Canada © Réda Mekhlouf, 2018

Transcript of Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from...

Page 1: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS de la dynamique de deux fluides non

miscibles

Thèse

RÉDA MEKHLOUF

Doctorat en génie civil

Philosophiæ Doctor (Ph.D.)

Québec, Canada

© Réda Mekhlouf, 2018

Page 2: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS de la dynamique de deux fluides non

miscibles

Thèse

RÉDA MEKHLOUF

Sous la direction de :

ABDELKADER BAGGAG, directeur de recherche

Page 3: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

iii

Résumé

À l’heure actuelle, les écoulements à deux fluides non miscibles jouent un rôle très important

dans plusieurs domaines, que ça soit en science ou en ingénierie. Leur complexité est

tellement élevée que les modèles actuels ne permettent de résoudre que des cas particuliers

ou simplifiés avec un degré de précision qui demeurent souvent plutôt modeste. Une nouvelle

approche numérique parait être une nécessité pour capturer la complexité physique du

phénomène. Pour ce faire nous avons besoin d’outils robustes.

Au niveau de l’interface de séparation entre les deux fluides non miscibles, les variables

physiques sont discontinues, ce qui pose un défi majeur dans la description des variables et

des conditions aux limites à l’interface. Le fait que les densités et les viscosités de chaque

fluide soient différentes de part et d’autre de l’interface donne naissance à des défauts et des

impuretés dans le champ des vitesses, ce qu’on appelle une discontinuité faible. Pour sa part,

l’existence de la force de tension superficielle au niveau de l’interface crée une discontinuité

sur le champ de pression, ce qu’on appelle une discontinuité forte. Un autre grand problème

se pose au niveau de l’étude numérique du problème, où les méthodes numériques classiques

ont une précision assez limitée dans ce genre de situation.

L’objectif de ce travail est de fournir une étude complète de la dynamique de l’interface entre

deux fluides non miscibles à l’aide d’outils mathématiques, physiques et numériques

robustes.

D’abord, une étude analytique du problème a été faite où l’équation de Navier-Stokes et les

conditions de saut sur les variables physiques au niveau de l’interface de séparation entre les

fluides ont été prouvées en détail.

Pour traiter les discontinuités, nous avons discrétisé nos variables à l’aide de la méthode

XFEM. Dû aux larges distorsions rencontrées dans ce genre d’écoulement, nous avons utilisé

l’approche Eulérienne, pour corriger les oscillations des solutions dues aux choix du

système de coordonnées nous avons utilisé les techniques de stabilisation SUPG/PSPG. Le

traitement de la courbure des interfaces 𝜿 , a été fait à l’aide de l’opérateur Laplace Beltrami

et le suivi d’interface à l’aide de la méthode ¨Level-set¨. Pour le traitement des conditions de

saut au niveau de l’interface la méthode Nitsche est développée dans différents contextes.

Après avoir développé un modèle physique et mathématique dans les premières parties de

notre travail, nous avons fait une étude numérique à l’aide de la plateforme de calcul FEniCS,

qui est une plateforme de développement en langage C++ avec une interface Python. Un

code de calcul a été développé dans le cas des écoulements de deux fluides non miscibles

Page 4: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

iv

avec les modèles physiques et les outils mathématiques développés dans les sections

précédentes.

Page 5: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

v

Abstract

XFEM, Nitsche, Level-set modelling and FEniCS simulation

of the dynamics of two phase flow

The two-phase flow problems have an important role in the multitude of domains in science

and engineering. Their complexity is so high that the actual models can solve only particular

or simplified cases with a certain degree of precision. A new approach is a necessity to

understand the evolution of new ideas and the physical complexity in this kind of flow, to

contribute to the study of this field. A good study requires solid and robust tools to have

performing results and a maximum of efficacy.

At the interface of separation between the two immiscible fluids, the physical parameters are

discontinuous, which gives us difficulties for the description of the physical variables at the

interface and boundary conditions. The fact that the density and the viscosity are

discontinuous at the interface creates kinks in the velocity, which represent a weak

discontinuity. The existence of the surface tension at the interface create a discontinuity for

the pressure field, it represents a strong discontinuity.

The main objective of this work is to make a complete study based on strong and robust

physical, mathematical and numerical tools. A strong combination, capable of capturing the

physical aspect of the interface between the two fluids with a very good precision.

Building such a robust, cost effective and accurate numerical model is challenging and

requires lots of efforts and a multidisciplinary knowledge in mathematics, physics and

computer science.

First, an analytical study was made where the one fluid model of the Navier-Stokes equation

was proved from Newton’s laws and jump conditions at the interface was proved and detailed

analytically.

To treat the problem of discontinuity, we used the XFEM method to discretize our

discontinuous variables. Due to the large distortion encountered in this kind of fluid mechanic

problems, we are going to use the Eulerian approach, and to correct the oscillation of

solutions we will use the SUPG/PSPG stabilization technic.

The treatment of the interface curvature 𝜿, was done with the Laplace Beltrami operator

and the interface tracking with the Level-set method. To treat the jump conditions with a

very sharp precision we used the Nitsche’s method, developed in different cases.

Page 6: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

vi

After building a strong mathematical and physical model in the first parts of our work, we

did a numerical study using the FEniCS computational platform, which is a platform of

computational development based on C++ with a Python interface. A numerical code was

developed in this study, in the case of two-phase flow problem, based on the previous

mathematical and physical models detailed in previous sections.

Page 7: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

vii

Table des matières

Résumé ................................................................................................................................................iii

Abstract ............................................................................................................................................... v

Table des matières ............................................................................................................................. vii

Liste des figures ....................................................................................................................................x

Liste des tableaux .............................................................................................................................. xiii

Remerciements ................................................................................................................................. xiv

Chapitre 1 ............................................................................................................................................ 1

Introduction ....................................................................................................................................... 1

I-Introduction .................................................................................................................................. 1

II-Organisation de la thèse .............................................................................................................. 4

Chapitre 2 ............................................................................................................................................ 6

XFEM ................................................................................................................................................... 6

I-Introduction .................................................................................................................................. 6

II-Revue de la littérature sur la méthode XFEM .............................................................................. 6

II-A-Mécanique des fluides .......................................................................................................... 6

II-B-Transition de phase .............................................................................................................. 8

II-C-Problèmes de solidification .................................................................................................. 9

II-D-Problèmes thermique et thermomécanique ....................................................................... 9

III-Lacunes de la recherche ............................................................................................................ 10

IV-Objectifs de la recherche .......................................................................................................... 11

V-Méthode des éléments finis étendus XFEM .............................................................................. 13

V-1-Définition de la méthode XFEM ......................................................................................... 13

V-2-Méthodes d’enrichissements ............................................................................................. 14

VI-Bases de l’approximation XFEM ............................................................................................... 15

VII-Exemples d’applications .......................................................................................................... 16

VIII-Exemples de discrétisation XFEM ........................................................................................... 22

VIII-1-Modélisation d’une barre élastique 1D avec une discontinuité forte ............................ 22

V-2-Modélisation d’une barre élastique avec une discontinuité faible .................................... 26

Chapitre 3 .......................................................................................................................................... 32

Page 8: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

viii

Modèle mathématique ..................................................................................................................... 32

I-Introduction ................................................................................................................................ 32

II-Équation de Navier –Stokes pour deux fluides non miscibles avec tension superficielle ......... 33

III-Équation de conservation de la masse ..................................................................................... 38

III-1-Approche physique ............................................................................................................ 38

III-2-Approche mécanique des milieux continus ....................................................................... 43

IV-Équation régissant la physique de l’interface entre deux fluides non miscibles ...................... 45

V- Conditions de saut sur les grandeurs physiques au niveau de l’interface de séparation entre

les fluides ....................................................................................................................................... 53

Chapitre 4 .......................................................................................................................................... 60

Méthodes numériques et stratégies de résolutions ......................................................................... 60

I-Introduction ................................................................................................................................ 60

II-Modélisation numérique ........................................................................................................... 61

II-1-Nature de l’interface ........................................................................................................... 61

II-2-Choix du système de coordonnées ..................................................................................... 63

II-3-Techniques de stabilisation pour le champ de vitesse et de pression SUPG/PSPG. .......... 64

II-4-Discrétisation temporelle des équations de Navier Stokes dans le cas des écoulements

diphasiques ............................................................................................................................... 68

III-Opérateur Laplace Beltrami ...................................................................................................... 72

III-1-Cas où le coefficient de tension superficielle est constant ............................................... 74

III-2-Cas où le coefficient de tension superficielle est variable ................................................. 76

IV- Méthode Nitsche ..................................................................................................................... 78

IV-1-Introduction ....................................................................................................................... 78

IV-2-Nitsche pour le traitement des conditions aux limites de type Dirichlet .......................... 78

IV-3-Nitsche pour le traitement des conditions de sauts au niveau de l’interface entre de deux

domaines non miscibles ............................................................................................................ 90

V-Méthode ¨Level-set¨ .................................................................................................................. 98

V-1-Équation de transport ¨Level-set¨ ...................................................................................... 98

V-2-Formulation faible de l’équation ¨Level-set¨ ................................................................... 100

V-3-Processus de réinitialisation de la fonction ¨Level-set¨ ................................................... 102

V-4-Discrétisation temporelle de l’équation de transport ¨Level-set¨ ................................... 103

V-5-Limite pour les pas de temps ............................................................................................ 105

Page 9: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

ix

VI-Plateforme de calcul FEniCS ................................................................................................... 109

I-Introduction .......................................................................................................................... 109

II-Architecture de FEniCS ......................................................................................................... 109

III-Composants principaux de FEniCS ...................................................................................... 110

IV-Interface utilisateur : .......................................................................................................... 111

Chapitre 5 ........................................................................................................................................ 114

Résultats numériques ...................................................................................................................... 114

I-Interface linéaire abrupt stationnaire ....................................................................................... 114

II-Exemple d’une interface dans le cas du problème de Stokes ................................................. 119

III -Écoulements diphasiques ...................................................................................................... 120

III-1- Validation ........................................................................................................................ 120

III-2-Étude de différents paramètres dans les écoulements à deux phases : ......................... 123

III-3-Transition entre deux régimes d’écoulements (stratifié/ondulé) ................................... 127

III-4-Effet Marangoni ............................................................................................................... 129

III-5-Cas où le taux de remplissage de la phase la plus dense est très faible.......................... 131

III-6- Injection d’une phase dans une autre ............................................................................ 133

Chapitre 6 ........................................................................................................................................ 136

Conclusions et perspectives ............................................................................................................ 136

Annexe A : ....................................................................................................................................... 139

Équations mathématiques régissant les interfaces entre deux fluides non miscibles ................... 139

A-I-Loi de Young-Laplace ............................................................................................................. 139

A-I-1 Aspect énergétique ........................................................................................................ 140

A-I-2 Équilibre des forces ........................................................................................................ 143

A-I-3-Remarques ..................................................................................................................... 145

A-II- Force due à la présence tension superficielle. .................................................................... 145

A-III-Expression de la courbure d’une surface de séparation entre deux milieux ...................... 150

Annexe B ......................................................................................................................................... 158

Méthode Nitsche ............................................................................................................................. 158

Équation de Stokes ...................................................................................................................... 158

Annexe C ......................................................................................................................................... 163

Programmes FEniCS ........................................................................................................................ 163

Bibliographie ................................................................................................................................... 183

Page 10: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

x

Liste des figures

Figure 2.1 : Éléments et nœuds enrichis XFEM…………………...……………………….15

Figure 2.2 : Discontinuité forte, schémas XFEM et FEM………………………………….23

Figure 2.3 : Discontinuité faible, schémas XFEM et FEM…………………………………28

Figure 3.1 : Domaines contenant deux fluides de propriétés physiques différentes………...33

Figure 3.2 : Union des deux domaines fluides à travers une interface...…………………...35

Figure 3.3 : Volume de contrôle à deux phases non miscibles avec interface de séparation.39

Figure 3.4 : Interface de séparation entre deux fluides non miscibles………………………31

Figure 3.5 : Interface symétrique entre deux fluides non miscibles………………………..43

Figure 3.6 : Bilan sur une portion d’une interface de séparation entre deux fluides non

miscibles…………………………………………………………………………46

Figure 4.1 : Interface à diffusion……..…………………………………………………….62

Figure 4.2 : Interface abrupte……………………………………………………………….62

Figure 4.3 : Configuration entre deux fluides non miscibles……………………………….71

La figure 4.4 : Variation de log(e) en fonction de log(h)…………………………………..83

Figure 4.5 : Variation de log(h) en fonction de log(e)……………………………………...83

Figure 4.6 : Variation de log(e)en fonction de log(h) pour différentes valeurs de 𝜆∂Ω…….84

Figure 4.7 :(a) Représentation de la vitesse au milieu du domaine, (b) Évolution de la

pression dans le domaine…………………………………………………………..87

Figure 4.8 : Distribution des vitesses dans le domaine………………………………..........87

Page 11: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

xi

Figure 4.9: Distribution des pressions dans le domaine……………………………………87

Figure 4.10 : Distribution des vitesses dans le cas d’absence de glissement………………89

Figure 4.11 : Distribution des vitesses dans une section verticale …………………….......90

Figure 4.12 : Distribution de la pression dans le centre de la géométrie……………………90

Figure 4.13 : Domaine bi matériel …………………………………..……………………..91

Figure 4.14 : Deux fluides non miscibles avec une interface………………………………96

Figure 4.15 : Séparation d’un plan dans ℝ2 en différents domaines Ω+(𝑡) et Ω−(𝑡) avec un

contour Γ(𝑡) de la fonction ¨Level-set¨……………………………………………98

Figure 4.16 : Schéma de la plateforme de calcul FEniCS utilisant les différents

composants du projet FEniCS (Logg, A et al 2012, The FEniCS book)………….109

Figure 4.17: Architecture FEniCS (Logg et al.2009)……………………………………..111

Figure 4.18 :Schéma d’assemblage des différents composant de FEniCS………………..113

Figure 5.1: Domaine bi matériel en 2D……………………………………………………115

Figure 5.2 : Saut sur la pression à 1D……………………………………………………..116

Figure 5.3 : Cas stationnaire avec une interface droite, saut sur la pression P en x=0.5….116

Figure 5.4 : Représentation de la pression à 1D, dans le cas d’une discontinuité forte et

faible……………………………………………………………………….......118

Figure 5.5 : Représentation de la discontinuité faible et forte de la pression en 2D………118

Figure 5.6 : Taux de convergence pour la pression et la vitesse ………………………….120

Figure 5.7 : Cartographie des régimes d’écoulement selon Mandhan et al. 1974, basée

sur des visualisations expérimentales………………………………...............121

Figure 5.8 : Distribution des phases……………………………………………………….124

Figure 5.9: Distribution des vitesses au niveau de l’interface entre les deux fluides..........125

Figures 5.10 (a,b) : Vecteurs vitesses dans chaque phase pour les deux fluides………….126

Figure 5.11 : Représentation du vecteur vitesse dans la phase eau………………………..126

Page 12: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

xii

Figure 5.12 :Saut sur la variable pression au niveau de l’interface entre les deux fluides....127

Figure 5.13 : Transition d’un écoulement stratifié vers un écoulement ondulé……….......128

Figure 5.14 : Distribution des vitesses au niveau de l’interface entre deux fluides

(Écoulement ondulé) …………………………………………………...........129

Figure 5.15: Déplacement de fluide dû à l’effet Marangoni au niveau de l’interface….....130

Figure 5.16 : Distribution des phases dans le cas de faible taux de remplissage………….131

Figure 5.17 : Distribution des vitesses dans le cas de faible taux de remplissage………..132

Figure 5.18 : Distribution du module de vecteur vitesse…………………………….…...132

Figure 5.19 : a-Distribution des vitesses suivant X/ b- Distribution des vitesses suivant Y..133

Figure 5.20 : Distribution des vitesses dans le cas d’injection ……………………………133

Figure 5.21 : a-Distribution vectorielle des vitesses suivant les X /b- Distribution

vectorielle des vitesses suivant Y ……………………………………..….134

Figure 5.22 : Distribution des pressions dans la configuration …………………………..135

Figure A.1 : Variation de l’aire d’une surface lors d’un déplacement……………………140

Figure A.2 : Illustration d’une interface en coordonnées polaires………………………..143

Figure A.3 : Déformation d’une interface lors d’un déplacement infinitésimal δl………..146

Figure A.4 : Déplacement d’une surface paramétrée…………………………………….148

Figure A.5: Déplacement normal infinitésimal d’une interface………………………….150

Figure A.6 : Divergence d’une surface centrée dans un repère ………………………….154

Figure B.1 : Variation de log(h) et log(e) en fonction de N …………………………….161

Figure B.2 : Variation de Log(h) et Log(e) pour différents paramètres de stabilisation

𝛽……………………………………………………………………………….....161

Page 13: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

xiii

Liste des tableaux

Tableau 3.1 : Conditions de saut au niveau de l’interface…………………...……………...59

Tableau 4.1 :Valeur de h, l’erreur et le taux pour différentes valeurs du nombre de

cellule N …………………………………………….……………………….81

Tableau 4.2 : Solution 𝑢ℎ pour différentes valeurs de N……………………………………82

Tableau 4.3 : Termes Nistche ajoutés à la forme linéaire et bilinéaire de l’équation de

Navier-Stokes dans le cas d’existence de glissement………………………86

Tableau 4.4 : Termes Nistche ajoutés à la forme linéaire et bilinéaire de l’équation de

Navier-Stokes dans le cas d’absence de glissement……………………..…..89

Tableau 5.1 : Validation expérimentale de nos résultats numériques……………………..122

Tableau B.1: Valeurs de h de l’erreur et du taux de convergence en fonction du nombre de

cellules N ………….………………………………………………………...162

Page 14: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

xiv

Remerciements

Je tiens à remercier tout d’abord mon directeur de thèse le Professeur Abdelkader Baggag

pour avoir dirigé mes travaux de recherches, pour ses multiples conseils et ses efforts fournis

pour mener à bien ces travaux.

Je tiens à remercier aussi le Professeur Adolfo Foriero, le Professeur Daniel Nadeau et le

Professeur François Morency d’avoir accepté de prendre le temps de lire ce travail et de faire

partie des membres du jury de cette thèse.

Je tiens à remercier mes parents, mon cher père et ma bien aimée mère de m’avoir encouragé

tout au long de ma vie, il m’est difficile d’exprimer en quelques mots ma gratitude envers

eux.

À mes frères et à ma petite sœur, qui ont toujours cru en moi et qui m’ont toujours soutenu.

À ma future épouse, pour son soutien moral ininterrompu, ses encouragements et sa

confiance.

Page 15: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

1

Chapitre 1

Introduction

I-Introduction

À l’heure actuelle, les écoulements à deux fluides non miscibles jouent un rôle très important.

Autant dans le milieu scientifique, où ce genre d’écoulement comporte plein d’énigmes non

résolues par les scientifiques que ce soit expérimentalement, analytiquement ou encore

numériquement. Leur complexité est tellement élevée que les modèles actuels ne permettent

de résoudre que des cas particuliers ou simplifiés.

Il n’existe toujours pas de modèles scientifiques capables de prédire les écoulements

diphasiques et leurs transitions de façon continue entre les différentes topologies.

Dans le milieu industriel, on retrouve ce genre d’écoulement dans beaucoup de domaines

notamment en industrie nucléaire, où les écoulements à deux fluides non miscibles jouent un

rôle très important et capital, où la maitrise de ce genre d’écoulement est cruciale pour assurer

une fiabilité et une sécurité pour ces centrales nucléaires. Sachant que les interfaces sont dues

aux impuretés des matériaux utilisés et au changement de phase, due à la variation de

température lors du processus. La présence de l’écoulement annulaire est très présente aussi.

Dans le domaine aérospatial, ce genre d’écoulement est très important, la simulation

numérique de cet écoulement à interface est soutenue par l'industrie spatiale de manière

conséquente. Les écoulements à interfaces interviennent dans la dynamique du carburant, où

l’inertie de ce milieu diphasique joue un rôle très important dans le pilotage des véhicules

spatiaux, dans la stabilisation de l’appareil lors du changement de direction sous les effets de

Page 16: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

2

l’existence de ballottements de fluides, aussi lors du processus de lancement des véhicules

spatiaux et de leur atterrissage.

Par ailleurs, en ingénierie pétrolière, où les écoulements multiphasiques sont permanents,

une perte importante est subie lors de l’extraction de pétrole des gisements et du transport

pétrolier due notamment à la mauvaise gestion de ce genre d’écoulement au niveau des

pipelines. Des efforts considérables sont depuis longtemps fournis pour optimiser l'extraction

de ces ressources énergétiques.

Parmi les méthodes récentes pour l’extraction du pétrole, celle qui consiste à injecter de l’eau

ou du gaz pour pousser le pétrole vers le puits de production, grâce à laquelle le taux

d’extraction peut atteindre les 40%. Durant ce processus, les interfaces de séparation jouent

un rôle très important. L’exploitation des hydrocarbures est une autre source de motivation

pour l'étude du comportement des interfaces entre deux fluides non miscibles.

L'un des exemples typiques associés aux interfaces est l'état gazeux de la matière concernant

les problèmes de combustion : lorsqu'une flamme brûle, on observe l'interface entre les gaz

frais et les gaz brûlés.

L’observation de la nature nous renseigne aussi sur la forte présence de ce genre

d’écoulement dans plusieurs phénomènes naturels. Par exemple le déferlement des vagues,

les échanges gazeux entre océan-atmosphère et pleins d’autres phénomènes de la nature. La

compréhension de ce genre d’écoulement est essentielle pour appréhender ce genre de

phénomènes environnementaux, qui peuvent avoir des conséquences considérables sur notre

vie quotidienne.

Lors de la modélisation des écoulements entre deux fluides non miscibles, plusieurs

difficultés et problèmes existent. En premier lieu, les larges distorsions des interfaces lors du

mouvement des fluides. Pour la description cinématique du mouvement des fluides, on

adoptera la formulation Eulérienne. Ou le maillage est fixe et le fluide est en mouvement par

Page 17: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

3

rapport au maillage. Le plus grand avantage de la formulation Eulérienne est qu’elle facilite

le traitement des larges distorsions sans avoir besoin de remailler contrairement à l’approche

Lagrangienne. L’inconvénient avec la formulation Eulérienne est le traitement du terme non

linéaire dans l’équation de Navier-Stokes. Ce terme non linéaire convectif aura un traitement

spécial comme on le verra dans le prochain point.

Les opérateurs convectifs dans l’équation de Navier-Stokes avec la formulation Eulérienne

ne sont pas symétriques. Cependant comme conséquence la propriété d’approximation dans

la norme d’énergie dans la formulation Galerkin FEM est perdue. Donc, la solution sera

corrompue par des oscillations de la solution entre les nœuds, les erreurs seront encore plus

grandes quand le processus de convection devient plus dominant. Dans notre étude on

utilisera la technique de stabilisation the Streamline-Upwind Petrov-Galerkin¨ (SUPG) pour

stabiliser les oscillations en modifiant la forme faible de manière consistante (c’est-à-dire

que les solutions modifiées de la forme faible seront identiques aux solutions de la

formulation forte).

Durant l’évolution des interfaces de séparation entre deux fluides non miscibles, les

topologies changent de façon continue dans le temps (coalescence et interpénétration des

phases).On utilisera la méthode ¨Level-set¨ pour l’advection de la fonction ¨Level-set¨ pour

qui la valeur zéro décrit la position de l’interface. La méthode ¨Level-set¨ est capable de

prendre en compte le changement de topologie des interfaces sans avoir besoin de procédures

supplémentaires (contrairement aux méthodes de suivi d’interfaces).

Dans le cas où le ratio entre les viscosités des deux fluides est très important, des gradients

importants peuvent exister au voisinage de l’interface de séparation. Dans cette étude on

emploiera une procédure de maillage adaptatif raffiné dans le cas d’interfaces mobiles pour

capturer les gradients importants. Le maillage adaptatif raffiné est réalisé par l’intermédiaire

de ¨hanging nodes¨ adaptés aux fonctions de forme de telle sorte qu’ils satisfassent la

propriété de partition de l’unité ¨PUM¨. On notera aussi qu’en plus de capturer les gradients

importants, le maillage adaptatif servira à améliorer la description et l’évolution de

l’interface.

Page 18: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

4

La présence de tension superficielle induit à l’existence d’un saut sur le champ de pression.

La pression constitue une discontinuité forte au niveau de l’interface, donc nécessite un

traitement avec la méthode XFEM.

L’évaluation de la courbure des interfaces demande des fonctions ¨Level-set¨ très lisses, donc

pour la fonction Level-set¨ Φ(𝑥), la courbure 𝜅 de l’interface peut être calculée de telle sorte

que 𝜿 = ∆𝚽(𝒙) = 𝛁. 𝛁𝚽 c’est-à-dire le Laplacien de la fonction ¨Level-set¨. Il est simple de

se rendre compte que si Φ(𝑥) n’est pas assez lisse, le calcul de la courbure 𝜅 ne sera pas

exact. Dans cette étude pour améliorer le calcul de la courbure nous allons utiliser la

technique de Laplace-Beltrami pour reformuler le terme de tension superficielle pour calculer

𝜅.

Pour le couplage pression-vitesse, nous allons utiliser la technique de stabilisation PSPG

(Pressure-Stabilizing Petrov-Galerkin), qui utilise un ordre d’interpolation équivalent pour la

pression et la vitesse.

Les fonctions d’enrichissement dépendent du temps. Dans le cas de XFEM la discrétisation

temporelle est faite avant la discrétisation spatiale, ce qui n’est pas le cas dans FEM.

Dans le cas de conditions de sauts (conditions aux limites) au niveau de l’interface de

séparation entre deux fluides non miscible, on utilisera la méthode Nitsche pour traiter ce

genre de conditions dû à la grande précision qu’apporte cette méthode comparé au traitement

classique des conditions aux limites de type Dirichlet.

II-Organisation de la thèse

Ce document est structuré en 6 chapitres. Le premier chapitre est une introduction aux

écoulements diphasiques en citant les différents problèmes rencontrés dans ce domaine ainsi

que la motivation de ce travail. Le chapitre 2 présentera la méthode des éléments finis

étendus (XFEM), des définitions ainsi que des exemples analytiques sont traités pour

présenter la méthode de façon claire et objective. Le chapitre 3 concerne la modélisation

Page 19: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

5

mathématique des écoulements diphasiques. Les équations de Navier Stokes pour deux

fluides non miscibles ont été développées à partir de principes physiques et de loi de

conservations, aussi les conditions de saut des variables au niveau de l’interface de séparation

sont prouvées analytiquement et résumées dans un tableau à la fin de ce chapitre. Dans le

chapitre 4, les méthodes numériques et mathématiques sont présentées, la stratégie et le plan

de construction d’un modèle numérique sont discutés dans l’objectif d’avoir une

modélisation numérique du phénomène étudié de manière complète et avec la meilleure

précision possible, grâce à des outils performants. L’opérateur Laplace Beltrami, la méthode

Nitsche ainsi que la méthode ¨Level-set¨ seront présentés en détail dans ce chapitre, la

plateforme de calcul FEniCS sera présentée, son architecture, son environnement ainsi que

les modules qui la constitue seront vus à la fin de ce chapitre.

On présentera nos résultats numériques dans le chapitre 5, dans lequel on commencera par

une validation de nos résultats grâce à des comparaisons expérimentales et numériques de la

littérature. On présentera aussi les résultats numériques obtenus avec notre modèle développé

dans les sections précédentes du document.

On finira notre document avec le chapitre 6, dans lequel il y aura notre conclusion générale

et des perspectives pour la suite du projet.

Ce document contient aussi des annexes à la fin dans lesquelles, des calculs analytiques ont

été mis en détail, des exemples numériques ainsi que des codes de calculs développés sous

FEniCS dans le cadre de cette thèse.

Page 20: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

6

Chapitre 2

XFEM

I-Introduction

Dans ce chapitre nous allons d’abord exposer une revue bibliographique de la méthode des

éléments finis étendus (XFEM) dans différents domaines d’applications. Ensuite on définira

la méthode XFEM, sa formulation, les outils mathématiques sur lesquels se base cette

méthode particulière de discrétisation. On finira ce chapitre par des exemples simples de

discrétisation à l’aide de la méthode XFEM.

II-Revue de la littérature sur la méthode XFEM

II-A-Mécanique des fluides

La méthode des éléments finis étendus (XFEM) intervient en mécanique des fluides dans le

cas de présence d’interfaces (discontinuités), notamment les écoulements multiphasiques, les

jets, les gouttes, les bulles et d’autres écoulements dus à des phénomènes physiques par

exemple les instabilités capillaires.

La première implémentation de la méthode des éléments finis étendus (XFEM) dans le

domaine de la mécanique des fluides a été faite par Wagner et al. (2001), pour la simulation

de particules rigides dans un écoulement de Stokes, dans laquelle la surface des particules

n’était pas conforme aux maillages FEM. Le maillage au niveau de l’interface de chaque

particule a été construit à l’aide d’un enrichissement avec la méthode PUM.

Chessa and Belytschko (2003a) ont présenté pour la première fois la méthode des éléments

finis étendus (XFEM) dans le contexte d’un écoulement diphasique axisymétrique avec

Page 21: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

7

présence de tension superficielle, dans laquelle l’interface se déplace de façon arbitraire, les

discontinuités du gradient de vitesse à l’interface entre les deux fluides ont été modélisées

par la méthode PUM. Plus tard Chessa and Belytschko (2003b) ont employé XFEM avec

une discontinuité arbitraire des gradients pour les écoulements diphasiques, où l’interface a

été suivie à l’aide des fonctions ¨Level-set¨ avec un maillage FEM mis à jour à l’aide de la

loi de conservation stabilisée. Gross et Reusken (2007) ont enrichi la variable discontinue

qui est la pression dans le cas d’un écoulement à deux fluides non miscibles

incompressibles, dans lequel il existe une force de tension superficielle localisée au niveau

de l’interface de séparation.

Dolbow et al. (2008) ont employé la méthode de reconstruction d’interface couplée avec la

méthode XFEM dans le cas d’un problème multiphasique. Fries (2009) a présenté un modèle

intrinsèque de XFEM pour la simulation de deux fluides incompressibles non miscibles où

les discontinuités, faible pour la vitesse et forte pour la pression, ont été modélisées en

utilisant la méthode PUM. Esser, Grande et Reusken (2010) ont combiné la méthode XFEM

avec la méthode ¨Level-set¨ pour capturer le comportement de l’interface des gouttes, ils ont

appliqué le modèle dans le cas 3D.

Abbas, Alizada et Fries (2010) proposent un modèle et un algorithme d’éléments finis

étendus (XFEM) pour résoudre les problèmes diphasiques avec un gradient élevé au niveau

de l’interface de séparation, pour obtenir une solution avec un degré élevé de précision dans

le cas de présence de convection importante, sans techniques de stabilisation ni de maillage

raffiné. Sauerland et Fries (2011) ont fait des travaux pour modéliser les écoulements

diphasiques et à surfaces libres, où les discontinuités ont été capturées sans restriction de

topologies pour les interfaces.

Cheng et Fries (2012) ont développé la h-version de XFEM dans le cas de deux fluides non

miscibles, basé sur un maillage adaptatif à multiniveaux pour le raffinement réalisé à l’aide

de nœuds suspendus (¨hanging nodes¨), dans le cas bi et tridimensionnel.

Liao et Zuang (2012) ont présenté une technique de stabilisation ¨Upwind Pressure

Stabilizing Petrov-Galerkin¨ XFEM dans le cas des écoulements entre deux fluides non

miscibles dans laquelle la projection du gradient de convection et du gradient de pression a

été interpolée et construite avec des formules de stabilisation.

Page 22: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

8

Sauerland et Fries (2013) ont étudié les problèmes du mauvais conditionnement de XFEM

dans le cas des écoulements diphasiques, en mettant l’accent sur la stabilisation de XFEM et

l’application des solutions itératives.

Choi, Huldsen et Meijer (2010) ont développé une formulation XFEM dans le cas de la

simulation directe des écoulements viscoélastiques avec des particules suspendues dans

lequel un schéma ALE a été utilisé.

Court, Fournié et Lozinski (2014) ont proposé une méthode à domaines fictifs inspirée de la

méthode XFEM pour étudier le problème de Stokes dans laquelle l’interface entre le fluide

et la structure est localisée par la fonction ¨Level-set¨, les conditions de Dirichlet ont été

prises en compte avec la méthode du Multiplicateur de Lagrange.

II-B-Transition de phase

Les problèmes de transition de phase concernent la modélisation des interfaces entre

solide/liquide dans un phénomène de changement de phase. La transition de phase représente

des interfaces matérielles dans lesquelles il existe des discontinuités sur soit la grandeur

physique, soit le gradient de la grandeur.

Merl et Dolbow (2002) ont proposé une modélisation XFEM pour un problème thermique

avec une source de chaleur mobile et des conditions aux limites avec un changement de

phase.

Chessa, Smolinski et Belytschko (2002) ont proposé un enrichissement pour la méthode FEM

pour la solution numérique d’un problème de changement de phase, où l’évolution du front

de changement de phase a été capturée à l’aide de la méthode ¨Level-set¨.

Ji, Chopp et Dolbow (2002) ont présenté une méthode numérique XFEM hybride pour

modéliser l’évolution d’une interface abrupte en utilisant un maillage fixe.

Ji et Dolbow (2004) ont utilisé le concept des interfaces abruptes en utilisant XFEM, dans un

problème de changement de phase en utilisant un paramètre de pénalité pour les conditions

aux limites de type Dirichlet essentiellement pour la vitesse au niveau de l’interface.

Page 23: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

9

Zabaras, Ganapathysubramanian et Tan (2006) ont étudié la solidification dendrite d’un

matériau pur en utilisant un couplage XFEM/¨Level-set¨, pour modéliser le problème

thermique et une stabilisation basée sur la moyenne volumique pour modéliser le flux du

fluide.

II-C-Problèmes de solidification

Dans les problèmes de solidifications, on remarque que les complications sont décrites

comme un problème de changement de phase isotherme, où les matériaux sont décrits par

leur chaleur latente, ce qui rajoute une difficulté supplémentaire pour décrire la dynamique

du front de solidification qui est discontinu.

Uchibori et Ohshima(2012), ont présenté un modèle XFEM basé sur une technique XFEM à

front mobile pour modéliser un problème de solidification pour capturer le gradient de

température discontinu au niveau de l’interface solide-liquide. Zhou et Qi (2010) ont proposé

un modèle XFEM sur le logiciel commercial ABAQUS pour simuler une interface

discontinue entre un liquide et un solide où l’interface a été capturée par une fonction ¨Level-

set¨. Duddu et al (2012) ont présenté un modèle XFEM/¨Level-Set¨ pour la description des

interfaces abruptes, basé sur une description Eulérienne pour modéliser l’évolution d’un

changement de phase dans un milieu élastique. Skrzypczak (2012) a proposé un modèle

mathématique pour modéliser les interfaces abruptes dans le cas de la solidification des

métaux. Ghoneim, Hunedy et Ojo (2013) ont proposé un travail basé sur un enrichissement

XFEM/¨Level-set¨ pour étudier un problème de changement de phase où interviennent des

particules en poudre. Cosimo, Fachinotti et Cardona (2013) ont présenté une formulation

XFEM pour résoudre un problème de changement de phase isotherme où la modélisation du

gradient de température discontinue au niveau de l’interface.

II-D-Problèmes thermique et thermomécanique

Les problèmes thermiques et thermomécaniques sont rencontrés dans plusieurs domaines,

par exemple dans les chambres de combustion des véhicules spatiaux, dans les composants

Page 24: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

10

des réacteurs nucléaires ainsi que dans de nombreux domaines d’ingénierie. Il existe

plusieurs problèmes dans ces domaines d’ingénierie pour lesquels la source de chaleur est

mobile.

Michlik et Berndt (2006) ont proposé la prédiction d’un modèle thermomécanique avec la

méthode XFEM dans le cas des poutres à multicouches pour prédire l’efficacité de la

conductivité et le calcul du module de Young. Duflot (2008) a employé un modèle XFEM

pour l’analyse d’un problème thermoélastique stationnaire dans les structures fissurées, où

les deux champs mécanique et thermique ont été enrichis avec XFEM dans l’objectif de

décrire la température discontinue, le flux de chaleur, le déplacement et la force de traction.

Fagerstrom et Larsson (2008) ont proposé une formulation d’un problème thermomécanique

couplé, basé sur une discontinuité des champs thermique et mécanique. Zamani, Gracie et

Eslami (2010) ont proposé la simulation d’un problème avec une fissure stationnaire sous la

dynamique d’une charge thermomécanique pour modéliser les effets mécaniques et

thermiques. Lee, Yang et Maute (2011), ont présenté une méthode XFEM pour modéliser la

conduction de la chaleur à une échelle du micron pour des nanostructures matérielles à

géométries compliquées .

Yvonnet et al (2011) ont proposé une méthode basée sur le couplage XFEM/ Level-set¨ pour

modéliser la résistance thermique de type Kapitza au niveau d’une interface arbitraire.

Hosseini, Bayesteh et Mohammadi (2013) ont proposé une méthode base sur XFEM pour

l’analyse des fractures isotopique et ortho tropique des matériaux sous l’effet de la chaleur

stationnaire et des effets mécaniques

Yu et Gong (2013) ont employé XFEM pour la modélisation du champ de température dans

un matériau hétérogène, ou le champ de température a été enrichi en incorporant la méthode

¨Level-set¨ et la méthode XFEM pour les éléments contenant les interfaces matérielles.

III-Lacunes de la recherche

Dans la revue de littérature précédente, nous pouvons constater que la plupart des études sur

les écoulements non-miscibles à interfaces se limitent à l’utilisation de modèles existants.

Page 25: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

11

Certaines études proposent d’améliorer une technique en particulier couvrant un aspect du

problème, sans jamais s’attaquer de front aux lacunes globales des outils de modélisation

dont la performance est plutôt modeste vu la complexité du problème étudié.

Les lacunes de la recherche basées sur la revue de littérature, peuvent se résumer aux points

suivants :

- Limitation des méthodes dépendantes du maillage dans la description des interfaces

mobiles.

- Temps de calcul très important lorsqu’une approche classique est utilisée.

- Utilisation de méthodes de reconstruction d’interfaces et perte d’informations dans le

cas d’interfaces à grandes déformations.

- Limitation des méthodes classiques dans le cas du traitement des conditions aux

limites de type Dirichlet.

- Continuité des fonctions d’approximations dans les méthodes classiques et

discontinuités des grandeurs physiques au niveau de l’interface.

- Absence de prise en compte de la force de tension superficielle ainsi que de l’effet

Marangoni au niveau de l’interface de séparation.

- Limitation de la géométrie classique et nécessité d’introduction d’outils de la

géométrie différentielle.

- Prise en compte des conditions de saut sur les grandeurs physiques au niveau de

l’interface.

- Développement d’une méthode avec maillage qui permet de capter l’interface de

façon précise sans être trop couteuse en temps de calcul.

IV-Objectifs de la recherche

L’objectif scientifique de cette thèse est de fournir une étude complète basée sur des outils

mathématiques, physiques et numériques robustes. Notre objectif n’est pas la bonification

d’une méthode scientifique en particulier, mais bien plutôt, la combinaison de différentes

méthodes afin d’améliorer l’étude des phénomènes d’interfaces mobiles entre fluides non

miscibles.

Page 26: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

12

Dans la section précédente, nous avons tout d’abord étudié les lacunes dont souffrent les

études des interfaces entre fluides non miscibles. Cette étude a comme objectif le

développement d’un modèle unifié complet pour la simulation des interfaces abruptes,

mobiles, entre fluides non miscibles. Le but est de comprendre les différents aspects de ce

phénomène en se basant sur des outils de différentes disciplines scientifiques pour pouvoir

construire un modèle qui se rapproche le plus de la réalité.

Les paramètres physiques au niveau des interfaces de séparation sont discontinus, ce qui rend

les méthodes numériques classiques très peu précises à cause de l’interpolation des grandeurs

au niveau des maillages. Il existe des méthodes à maillages adaptatifs ou à remaillages

temporels, qui donnent de bons résultats au détriment du temps de calcul qui devient

rapidement très important. Notre objectif est de développer des méthodes numériques qui

donnent de bons résultats à moindre cout de calcul et qui demeurent partiellement

indépendantes du maillage.

Ce travail propose de prendre en compte la force de tension superficielle, qui joue un rôle

très important au niveau de l’interface et qui est la principale responsable de la discontinuité

de la pression au niveau de l’interface.

Amélioration des méthodes de traitement des conditions aux limites de types Dirichlet et

l’investigation de méthodes plus robustes, qui nous permettent de respecter les conditions

aux limites dans les équations lors de la formulation faible.

Ajouté aux objectifs précédents, nous visons l’amélioration de stratégies de résolutions des

problèmes à interfaces et l’évaluation des conditions de sauts basées sur des principes

physiques fondamentaux.

Le livrable final est un code de calcul gratuit et adaptable à différents cas d’études impliquant

deux fluides non miscibles.

Page 27: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

13

V-Méthode des éléments finis étendus XFEM

V-1-Définition de la méthode XFEM

La méthode des éléments finis étendus XFEM est une extension de la méthode des éléments

finis classique FEM, dans le cas de présence de discontinuités dans l’espace étudié. La

méthode des éléments finis classique est incapable de reproduire une discontinuité avec une

bonne précision à cause du fait que les fonctions de forme sont construites avec une base

polynomiale.

Dans un enrichissement XFEM, la discrétisation est faite d’abord en FEM classique loin de

la discontinuité, ensuite l’enrichissement est introduit au niveau de la discontinuité à l’aide

de nœuds suspendus ¨hanging nodes¨ (contrairement à FEM ou les nœuds sont fixes). Ces

nœuds suspendus doivent satisfaire la propriété de la partition de l’unité PUM.

La méthode de partition de l’unité (PUM) a été introduite par Duart and Oden (1996), basée

sur la définition des nuages de points (Clouds).

La méthode de partition de l’unité est une méthode qui est basée sur la propriété suivante :

Soit 𝑓𝑖 un ensemble de fonctions possédant la propriété de partition de l’unité, la somme de

ces fonctions calculées sur des points 𝑥 ∈ Ω𝑃𝑈 est égale à l’unité

∑𝑓𝑖(𝑥) = 1

𝑁

𝑖=1

∀𝑥 ∈ Ω𝑃𝑈 (2.1)

Si on définit une fonction arbitraire 𝜓(𝑥) définie sur Ω𝑃𝑈, la propriété précédente s’écrit

∑𝑓𝑖(𝑥)𝜓(𝑥𝑖) = 𝜓(𝑥)

𝑁

𝑖=1

(2.2)

Par exemple dans le cas de la méthode des éléments finis FEM, la propriété de la partition de

l’unité est respectée par les fonctions de formes.

Page 28: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

14

V-2-Méthodes d’enrichissements

Il existe deux manières d’enrichir l’approximation spatiale, soit enrichir la base vectorielle

qui est un enrichissement intrinsèque ou bien enrichir l’approximation qui est un

enrichissement extrinsèque.

V-2-a-Enrichissement intrinsèque

L’idée dans l’enrichissement intrinsèque est d’améliorer l’approximation de la grandeur 𝑢(𝑥)

en incluant de nouvelles fonctions de bases pour capturer les discontinuités ou les

singularités. Par exemple, si la base des fonctions d’enrichissement est définie comme suit

𝑁��(𝑋) = {��𝑖1, ��𝑖

2, … , ��𝑖𝑀}

𝑢(𝑥, 𝑡) =∑𝑁��(𝑥)𝒂��

𝑃

𝑖=1

= ��𝑇(𝑥)�� (2.3)

Avec 𝑁��(𝑥) est défini comme suit 𝑁��(𝑥) = ⟨𝑁𝑠𝑡𝑑(𝑥),𝑁𝑒𝑛𝑟(𝑥)⟩, ou 𝑁𝑠𝑡𝑑(𝑥) représente la

base standard qui est approximée avec la base polynomiale FEM et 𝑁𝑒𝑛𝑟(𝑥) la base enrichie,

cette manière d’enrichir est appelée enrichissement intrinsèque.

V-2-b-Enrichissement extrinsèque

Dans l’enrichissement extrinsèque, la propriété de la partition de l’unité est employée pour

introduire une base supplémentaire à la base standard, qui enrichira la partie discontinue lors

de la discrétisation.

Contrairement à d’autres variantes de la méthode FEM classique, la méthode XFEM utilise

un enrichissement extrinsèque local de l’approximation. Du fait que la discontinuité est

généralement locale, donc l’enrichissement peut être confiné dans une région spécifique au

lieu d’enrichir tout le domaine d’étude. Cette manière de faire nous permet d’avoir beaucoup

Page 29: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

15

d’avantages en économisant le temps de calcul, la mémoire utilisée ainsi que d’autres

avantages comme la robustesse et la précision de la méthode.

VI-Bases de l’approximation XFEM

La méthode XFEM est une technique employée pour décrire les discontinuités fortes et

faibles sans prendre en compte la nature de leurs géométries. La puissance de la méthode

XFEM par rapport aux autres méthodes réside dans le fait qu’elle peut prendre en compte

l’évolution des discontinuités au court du temps avec une grande précision comparé aux

méthodes à maillages adaptatifs.

Figure 2.1 Éléments et nœuds enrichis XFEM

Soit 𝑢(𝑥, 𝑡) une grandeur physique, la discrétisation de cette grandeur à l’aide de la méthode

FEM est

𝑢(𝑥, 𝑡) =∑𝑁𝑖(𝑥)𝒖��

𝑖=1

(2.4)

Avec la méthode XFEM cette discrétisation devient

Éléments enrichis

Noeuds enrichis

Page 30: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

16

𝑢(𝑥, 𝑡) =∑𝑁𝑖(𝑥)𝒖��

𝑖=1

+∑𝑁𝑗(𝑥)(𝜓(𝑥))𝒂��

𝑗=1

(2.5)

Ou ∑ 𝑁𝑗(𝑥)(𝜓(𝑥))𝒂��ℳ𝑗=1 représente le terme d’enrichissement XFEM.Ou 𝑵𝒋(𝒙) sont les

fonctions de formes enrichies, 𝒖�� est le déplacement nodal standard, 𝒂�� sont les degrés de

liberté nodaux correspondant aux fonctions d’enrichissement, 𝜓(𝑥) sont les fonctions

d’enrichissement, 𝑁𝑖(𝑥) les fonctions de formes standards.ℵ est l’ensemble des points

nodaux du domaine, ℳ est l’ensemble des points nodaux localisés dans et autour de la

discontinuité.

Dans l’enrichissement XFEM, deux approches sont employées de façon simultanée, d’abord

la méthode de partition de l’unité PUM pour renforcer l’approximation en ajoutant des

fonctions d’enrichissements à l’approximation standard. Ensuite l’enrichissement du champ

de déplacement est appliqué pour corriger le déplacement basé sur l’approximation standard

en incorporant le champ discontinu à travers la méthode PUM.

Nature de la discontinuité (Forte/ faible)

Les discontinuités dans les grandeurs physiques qui décrivent la nature de certains

phénomènes peuvent être classées en deux grandes catégories ; soit une discontinuité forte

où la variable physique est discontinue au niveau de l’interface et il existe un saut sur cette

grandeur. Ce saut est égal à une constante ou est en fonction de variables physiques ou

mathématiques.

La discontinuité est fable dans le cas où le gradient de la grandeur physique est discontinu et

la grandeur physique est continue.

VII-Exemples d’applications

Dans la section suivante, nous allons traiter un exemple physique régi par une équation

mathématique simple dans laquelle nous allons détailler chaque étape de traitement.

Page 31: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

17

D’abord la formulation forte du problème, ensuite la formulation faible suivit de la

discrétisation XFEM de chaque terme et on finira avec la forme matricielle du problème.

Formulation faible et discrétisation XFEM

On considère un domaine physique bidimensionnel Ω dans lequel il existe une discontinuité

Γ𝑑 . Cette discontinuité peut être forte ou faible.

L’équation stationnaire suivante décrira le phénomène physique dans le domaine Ω

𝛁. 𝝈 + 𝒇 = 𝟎 (2.6)

Avec 𝝈 étant le tenseur des contraintes et 𝒇 le vecteur force extérieur. On définit les fonctions

d’essais u (x, t) et les fonctions test v(x, t).

La formulation faible de l’équation précédente s’écrit :

∫ v(x, t)(∇. 𝜎 + 𝑓)𝑑Ω = 0 Ω

(2.7)

En appliquant le théorème de la divergence et en adaptant les intégrales sur les contours de

la géométrie, l’équation précédente devient

∫ ∇V: 𝜎 𝑑ΩΩ

+∫ ⟦𝑉. 𝜎⟧Γ𝑑

�� Γ𝑑𝑑Γ − ∫ �� Γ𝑡

. 𝑡𝑑Γ − ∫ V. 𝑓 𝑑ΩΩ

= 0 (2.8)

∫ ⟦𝑉. 𝜎⟧Γ𝑑

�� Γ𝑑𝑑Γ = ∫ ⟦𝑉. 𝑡 ⟧Γ𝑑

𝑑Γ = ∫ ⟦𝑉. 𝑡��⟧Γ𝑑

𝑑Γ (2.9)

(�� . 𝑡��)+ = (�� . 𝑡��)

− (2.10)

∫ ⟦𝑉. 𝜎⟧Γ𝑑

�� Γ𝑑𝑑Γ = ∫ ⟦𝑉. 𝑡��⟧Γ𝑑

𝑑Γ = ∫ ((�� )+. −(�� )−)

Γ𝑑

. 𝑡��𝑑Γ = 0 (2.11)

∫ ∇V: 𝜎 𝑑ΩΩ

−∫ �� Γ𝑡

. 𝑡𝑑Γ − ∫ V. 𝑓 𝑑ΩΩ

= 0 (2.12)

Page 32: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

18

Qui représente la formulation faible de l’équation de départ. Pour discrétiser l’équation

précédente, on utilisera la méthode XFEM, pour illustrer l’application de cette méthode nous

allons utiliser un enrichissement à l’aide des fonctions Heaviside 𝜓(𝑥)

On considère un déplacement 𝒖(𝑥, 𝑡), l’enrichissement avec la méthode XFEM s’écrit

comme suit

𝑢(𝑥, 𝑡) =∑𝑁𝑖(𝑥)𝒖��

𝑖=1

+∑𝑁𝑗(𝑥) (𝜓(𝑥) − 𝜓(𝑥𝑗))𝒂��

𝑗=1

= 𝑁𝑠𝑡𝑑(𝑥)�� + 𝑁𝑒𝑛𝑟(𝑥)�� (2.13)

Où 𝑁𝑠𝑡𝑑(𝑥) ≡ 𝑁𝑖(𝑥) représente la base standard et 𝑁𝑒𝑛𝑟(𝑥) ≡ 𝑁𝑗(𝑥) (𝜓(𝑥) − 𝜓(𝑥𝑗))

représente la base enrichie.

La discrétisation XFEM pour le terme relatif aux fonctions tests s’écrit comme suit

𝒗(𝑥, 𝑡) =∑𝑁𝑖(𝑥)𝒗��

𝑖=1

+∑𝑁𝑗(𝑥) (𝜓(𝑥) − 𝜓(𝑥𝑗)) 𝒒��

𝑗=1

= 𝑁𝑠𝑡𝑑(𝑥)�� + 𝑁𝑒𝑛𝑟(𝑥)�� (2.14)

À deux dimensions ces bases sont représentées comme suit :

𝑁𝑖𝑠𝑡𝑑 = [

𝑁𝑖(𝑥) 0

0 𝑁𝑖(𝑥)] (2.15)

Et

𝑁𝑗𝑒𝑛𝑟 = [

𝑁𝑗(𝑥) (𝜓(𝑥) − 𝜓(𝑥𝑗)) 0

0 𝑁𝑗(𝑥) (𝜓(𝑥) − 𝜓(𝑥𝑗))] (2.16)

Le gradient de la vitesse discrétisé avec la méthode XFEM s’écrit comme suit :

Page 33: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

19

𝛁𝒖(𝑥) =∑∇𝑁𝑖(𝑥)𝒖��

𝑖=1

+∑[ ∇𝑁𝑗(𝑥)(|𝜑(𝑥)| − |𝜑(𝑥𝑗)|) + 𝑁𝑗(𝑥)∇(|𝜑(𝑥)| − |𝜑(𝑥𝑗)|)]𝒂��

𝑗=1

(2.17)

Avec

∇(|𝜑(𝑥)| − |𝜑(𝑥𝑗)|) = 𝑠𝑖𝑔𝑛(𝜑(𝑥))∇𝜑(𝑥) = 𝑠𝑖𝑔𝑛(𝜑(𝑥))�� Γ𝑑

Si on définit 𝐷(�� ) comme suit :

𝐷(�� ) =1

2(∇ �� + ∇𝑇 �� ) (2.18)

Alors sa discrétisation XFEM s’écrit comme suit :

𝐷(�� ) =∑ 𝜕𝑁𝑖𝜕𝑥𝒖��

𝑖=1

+∑[𝜕𝑁𝑗

𝜕𝑥(𝜓(𝑥) − 𝜓(𝑥𝑗)) + 𝑁𝑗(𝑥)

𝜕

𝜕𝑥(𝜓(𝑥) − 𝜓(𝑥𝑗))] 𝒂��

𝑗=1

= 𝐵𝑠𝑡𝑑(𝑥)�� + 𝐵𝑒𝑛𝑟(𝑥)�� (2.19)

𝐵𝑠𝑡𝑑(𝑥) =

[ 𝜕𝑁𝑖

𝜕𝑥⁄ 0

0𝜕𝑁𝑖

𝜕𝑦⁄

𝜕𝑁𝑖𝜕𝑦⁄

𝜕𝑁𝑖𝜕𝑥⁄

]

(2.20)

𝐵𝑒𝑛𝑟(𝑥) =

[ 𝜕 ( 𝑁𝑗(𝑥) (𝜓(𝑥) − 𝜓(𝑥𝑗)))

𝜕𝑥⁄ 0

0𝜕 ( 𝑁𝑗(𝑥) (𝜓(𝑥) − 𝜓(𝑥𝑗)))

𝜕𝑦⁄

𝜕 ( 𝑁𝑗(𝑥) (𝜓(𝑥) − 𝜓(𝑥𝑗)))

𝜕𝑦⁄ 𝜕 ( 𝑁𝑖(𝑥) (𝜓(𝑥) − 𝜓(𝑥𝑗)))

𝜕𝑥⁄

]

(2.21)

Page 34: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

20

En remplaçant les expressions précédentes des matrices enrichies XFEM dans la formulation

faible du problème :

∫ (𝐵𝑠𝑡𝑑 �� + 𝐵𝑒𝑛𝑟 ��)𝑇 𝜎 𝑑ΩΩ

−∫ (𝑁𝑠𝑡𝑑 �� + 𝑁𝑒𝑛𝑟 ��)𝑇

Γ𝑡

𝑡𝑑Γ

−∫ (𝑁𝑠𝑡𝑑 �� + 𝑁𝑒𝑛𝑟 ��)𝑇 𝑓 𝑑ΩΩ

= 0 (2.22)

Qui peut être écrite sous la forme

��𝑻 {∫ (𝐵𝑠𝑡𝑑)𝑇 𝜎 𝑑ΩΩ

−∫ (𝑁𝑠𝑡𝑑)𝑇

Γ𝑡

𝑡𝑑Γ + ∫ (𝑁𝑠𝑡𝑑)𝑇 𝑓 𝑑ΩΩ

}

+ ��𝑻 {∫ (𝐵𝑒𝑛𝑟)𝑇 𝜎 𝑑ΩΩ

−∫ (𝑁𝑒𝑛𝑟)𝑇

Γ𝑡

𝑡𝑑Γ + ∫ (𝑁𝑒𝑛𝑟)𝑇 𝑓 𝑑ΩΩ

}

= 𝟎 (2.23)

L’équation précédente peut s’écrire sous une forme discrète comme suit :

𝑲�� − 𝑭 = 0 (2.24)

Où le vecteur des variables inconnues aux points nodaux est ��𝑇 = [��𝑻, ��𝑻], 𝑲 est la matrice

de rigidité et 𝑭 le vecteur forces extérieurs. Le système peut être écrit comme suit :

[𝑲𝒖𝒖 𝑲𝒖𝒂𝑲𝒂𝒖 𝑲𝒂𝒂

] (��

��) = (

𝑭𝒖𝑭𝒂) (2.25)

𝑲 =

[ ∫ (𝑩𝒔𝒕𝒅)

𝑻𝑫𝑩𝒔𝒕𝒅 𝑑Ω

Ω

∫ (𝑩𝒔𝒕𝒅)𝑻𝑫𝑩𝒆𝒏𝒓 𝑑Ω

Ω

∫ (𝑩𝒆𝒏𝒓)𝑻𝑫𝑩𝒔𝒕𝒅 𝑑ΩΩ

∫ (𝑩𝒆𝒏𝒓)𝑻𝑫𝑩𝒆𝒏𝒓 𝑑ΩΩ ]

(2.26)

Page 35: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

21

Et

𝑭 =

(

∫ (𝑵𝒔𝒕𝒅)

𝑻

𝚪𝒕

��𝒅𝚪 + ∫ (𝑵𝒔𝒕𝒅)𝑻 𝒇 𝒅𝛀

𝛀

∫ (𝑵𝒆𝒏𝒓)𝑻

𝚪𝒕

��𝒅𝚪 + ∫ (𝑵𝒆𝒏𝒓)𝑻 𝒇 𝒅𝛀𝛀 )

(2.27)

La discrétisation du saut sur le gradient de vitesse s’écrit

⟦𝛁𝒖(𝑥)⟧ = 𝛁𝒖(𝑥+) − 𝛁𝒖(𝑥−)

=∑∇𝑁𝑖(𝑥+)𝒖��

𝑖=1

+∑[ ∇𝑁𝑗(𝑥+)(|𝜑(𝑥+)| − |𝜑(𝑥𝑗)|) + 𝑁𝑗(𝑥

+)𝑠𝑖𝑔𝑛(𝜑(𝑥+))�� Γ𝑑]𝒂��

𝑗=1

−∑∇𝑁𝑖(𝑥−)𝒖��

𝑖=1

−∑[ ∇𝑁𝑗(𝑥−)(|𝜑(𝑥−)| − |𝜑(𝑥𝑗)|) + 𝑁𝑗(𝑥

−)𝑠𝑖𝑔𝑛(𝜑(𝑥−))�� Γ𝑑]𝒂��

𝑗=1

(2.28)

Théorème de divergence dans le cas discontinu s’écrit :

∫ ∇. �� 𝑑ΩΩ1

= ∫ �� . �� 1𝑑Γ∂Ω1

+∫ �� . �� 𝑑1𝑑ΓΓ𝑑1

(2.29)

∫ ∇. �� 𝑑ΩΩ2

= ∫ �� . �� 1𝑑Γ∂Ω2

+∫ �� . �� 𝑑2𝑑ΓΓ𝑑2

(2.30)

∫ ∇. �� 𝑑ΩΩ

= ∫ �� . �� 𝑑ΓΓ

−∫ ( �� + − �� −). �� 𝑑ΓΓ

(2.31)

⟦�� . �� ⟧ = ( �� + − �� −). �� (2.32)

Page 36: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

22

Pour des problèmes qui contiennent plusieurs discontinuités, l’équation précédente s’écrit :

∫ ∇. �� 𝑑ΩΩ

= ∫ �� . �� 𝑑ΓΓ

−∫ ∑⟦�� 𝑖⟧

𝑁𝑑

𝑖=1

. �� 𝑑𝑖𝑑Γ Γ

(2.33)

Ou 𝑁𝑑 est le nombre de discontinuités de notre domaine.

VIII-Exemples de discrétisation XFEM

VIII-1-Modélisation d’une barre élastique 1D avec une discontinuité forte

Pour illustrer le développement théorique de la section précédente, on présentera un exemple

pratique traité par Khoei (2015).

Le problème est une barre élastique avec une discontinuité au milieu, encastrée dans le mur

à une extrémité libre avec une condition aux limites sur le déplacement 𝑢 = 𝑢0.

Dans cet exemple, nous allons discrétiser notre problème avec les méthodes XFEM et FEM.

Dans la méthode XFEM, on choisira trois éléments avec deux nœuds dans laquelle la

discontinuité passe par le deuxième élément. Dans la méthode FEM classique, nous allons

choisir quatre éléments avec deux nœuds, les nœuds sont disposés de telle sorte à ce que la

discontinuité soit entre deux éléments et possédant un nœud dans chaque élément (les nœuds

sont sur la discontinuité, pour que le calcul soit possible avec l’approximation polynomiale).

Interface

𝒖𝟎

3l

Page 37: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

23

Modèle FEM

Modèle XFEM

Figure 2.2 : Discontinuité forte, schémas XFEM et FEM

Dans la méthode XFEM la matrice de rigidité pour les éléments (1) et (3) est comme suit :

𝐊(𝟏) = 𝐊(𝟑) =𝐴𝐸

𝑙[+𝟏 −𝟏−𝟏 +𝟏

] (2.34)

𝐻(𝜑(𝑥𝑐)) = 0

𝐻(𝜑(𝑥3)) = 1

𝐻(𝜑(𝑥2)) = 0

2

1

3

1

4

1

5

1

6

1 1

1

1 2 3

2

1 1 3 4

Page 38: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

24

Pour l’élément (1) :

𝐊(𝟐) =𝐴𝐸

𝑙2

[+𝟏 −𝟏−𝟏 +𝟏

] (2.35)

La matrice de rigidité totale est assemblée comme suit :

𝐊(𝑭𝑬𝑴) =𝐴𝐸

𝑙

[ 1 −1 0−1 3 −20000

−2000

2000

0 0 00 0 002−20

0−23−1

00−11 ] 𝑢1𝑢2𝑢3𝑢4𝑢5𝑢6

(2.36)

Avec la méthode des éléments finis FEM, le système précédent peut être résolu à l’aide des

conditions aux limites 𝑢1 = 0 et 𝑢6 = 𝑢0, ce qui donne le résultat suivant : 𝑢2 = 𝑢3 = 0 et

𝑢4 = 𝑢5 = 𝑢0

Dans la méthode XFEM, la discontinuité est modélisée à l’aide de la fonction Heaviside, à

l’aide d’enrichissement des points nodaux 2 et 3 dans lesquels 𝐻(𝜑(𝑥2)) = 0 et 𝐻(𝜑(𝑥3)) =

1.

Les fonctions de formes standards et enrichies, leurs dérivées et les matrices de rigidités pour

les trois éléments s’écrivent comme suit :

(1)𝑁𝑠𝑡𝑑(𝑥) = ⟨1 −𝑥

𝑙 𝑥

𝑙⟩

(1)𝑁𝑒𝑛𝑟(𝑥) =𝑥

𝑙(𝐻(𝜑) − 𝐻(𝜑2))

(1)𝐵𝑠𝑡𝑑(𝑥) = ⟨−1

𝑙 1

𝑙⟩

(1)𝐵𝑒𝑛𝑟(𝑥) =1

𝑙(𝐻(𝜑) − 𝐻(𝜑2))

Page 39: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

25

(𝟏)𝑲 = [∫ (𝑩𝒔𝒕𝒅)

𝑻𝐴𝐸𝑩𝒔𝒕𝒅 𝑑x

l∫ (𝑩𝒔𝒕𝒅)

𝑻𝐴𝐸𝑩𝒆𝒏𝒓 𝑑x

l

∫ (𝑩𝒆𝒏𝒓)𝑻𝐴𝐸𝑩𝒔𝒕𝒅 𝑑xl

∫ (𝑩𝒆𝒏𝒓)𝑻𝐴𝐸𝑩𝒆𝒏𝒓 𝑑xl

] =𝐴𝐸

𝑙[+𝟏 −𝟏 𝟎−𝟏𝟎

+𝟏 𝟎𝟎 𝟎

]

𝑢1𝑢2𝑢3

(2.37)

Dans laquelle 𝐻(𝜑) − 𝐻(𝜑2) = 0 pour l’élément (1)

Pour l’élément (2) :

(2)𝑁𝑠𝑡𝑑(𝑥) = ⟨1 −𝑥

𝑙 𝑥

𝑙⟩

(2)𝑁𝑒𝑛𝑟(𝑥) = ⟨(1 −𝑥

𝑙) (𝐻(𝜑) − 𝐻(𝜑2)) (

𝑥

𝑙)(𝐻(𝜑) − 𝐻(𝜑3))⟩

(2)𝐵𝑠𝑡𝑑(𝑥) = ⟨−1

𝑙 1

𝑙⟩

(2)𝐵𝑒𝑛𝑟(𝑥) = ⟨(−𝑥

𝑙) (𝐻(𝜑) − 𝐻(𝜑2)) (

1

𝑙)(𝐻(𝜑) − 𝐻(𝜑3))⟩

(𝟐)𝑲 =

[ ∫ (𝑩𝒔𝒕𝒅)

𝑻𝐴𝐸𝑩𝒔𝒕𝒅 𝑑x

l

∫ (𝑩𝒔𝒕𝒅)𝑻𝐴𝐸𝑩𝒆𝒏𝒓 𝑑x

l

∫ (𝑩𝒆𝒏𝒓)𝑻𝐴𝐸𝑩𝒔𝒕𝒅 𝑑xl

∫ (𝑩𝒆𝒏𝒓)𝑻𝐴𝐸𝑩𝒆𝒏𝒓 𝑑xl ]

=𝐴𝐸

𝑙[

1 −1 0.5 0.5−10.50.5

1−0.5−0.5

−0.50.50

−0.500.5

]

𝑢2𝑢3𝑎2𝑎3

(2.38)

Pour l’élément (3) :

(3)𝑁𝑠𝑡𝑑(𝑥) = ⟨1 −𝑥

𝑙 𝑥

𝑙⟩

(3)𝑁𝑒𝑛𝑟(𝑥) = (1 −𝑥

𝑙) (𝐻(𝜑) − 𝐻(𝜑3))

Page 40: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

26

(3)𝐵𝑠𝑡𝑑(𝑥) = ⟨−1

𝑙 1

𝑙⟩

(3)𝐵𝑒𝑛𝑟(𝑥) = (−1

𝑙)(𝐻(𝜑) − 𝐻(𝜑3))

(𝟑)𝑲 =

[ ∫ (𝑩𝒔𝒕𝒅)

𝑻𝐴𝐸𝑩𝒔𝒕𝒅 𝑑x

l

∫ (𝑩𝒔𝒕𝒅)𝑻𝐴𝐸𝑩𝒆𝒏𝒓 𝑑x

l

∫ (𝑩𝒆𝒏𝒓)𝑻𝐴𝐸𝑩𝒔𝒕𝒅 𝑑xl

∫ (𝑩𝒆𝒏𝒓)𝑻𝐴𝐸𝑩𝒆𝒏𝒓 𝑑xl ]

=𝐴𝐸

𝑙[+𝟏 −𝟏 𝟎−𝟏𝟎

+𝟏 𝟎𝟎 𝟎

]

𝑢3𝑢4𝑎3 (2.39)

La matrice de rigidité totale XFEM

𝐊(𝑿𝑭𝑬𝑴) =𝐴𝐸

𝑙

[ 1 −1 0−1 2 −10000

−100.50.5

2−1−0.5−0.5

0 0 00 0.5 0.5−1100

−0.500.50

−0.5000.5 ]

𝑢1𝑢2𝑢3𝑢4𝑎5𝑎6

(2.40)

La solution du système d’équations avec la méthode XFEM donne 𝑢1 = 𝑢2 = 0, 𝑢3 = 𝑢4 =

𝑢0, 𝑎2 = 𝑎3 = 𝑢0

V-2-Modélisation d’une barre élastique avec une discontinuité faible

Dans l’exemple suivant, nous allons traiter un problème de discontinuité faible dans le même

cas de géométrie que précédemment, c’est-à-dire une barre unidimensionnelle fixée d’un côté

et libre de l’autre côté avec une condition aux frontières, avec une charge égale à P. Les

Page 41: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

27

propriétés matérielles de l’élément de gauche sont : 𝐸1 et 𝜐1, pour la partie de droite les

propriétés matérielles sont : 𝐸2 et 𝜐2, avec une relation de 𝐸1 = 2𝐸2 = 𝐸 et 𝜐1 = 𝜐2 = 𝜐.

Comme dans l’exemple précédent, avec la méthode XFEM nous prenons trois éléments avec

deux nœuds, avec une discontinuité matérielle dans le deuxième élément. Avec la méthode

FEM nous allons prendre trois éléments, la discontinuité passe par le milieu du deuxième

élément, mais avec des nœuds supplémentaires sur la discontinuité de telle sorte qu’il y ait

alignement.

𝐸1, 𝜐1 𝐸2, 𝜐2

Modèle XFEM

Interface matérielle

𝑷

𝜑(𝑥𝑐) = 0

𝜑(𝑥3) = 0.5𝑙 |𝜑(𝑥2)| = 0.5𝑙

1 2 3

2

1 1 3 4

Page 42: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

28

Modèle FEM

Figure 2.3 : Discontinuité faible, schémas XFEM et FEM

La matrice FEM totale s’écrit comme suit :

𝐊(𝑭𝑬𝑴) =𝐴𝐸

𝑙

[ 1 −1 0 0 0−1000

3−200

−23−10

0−11.5−0.5

00−0.50.5 ]

𝑢1𝑢2𝑢3𝑢4𝑢5

(2.41)

La solution FEM du système linaire d’équation donne :

��𝑇 = ⟨𝑢1 𝑢2𝑢3𝑢4𝑢5⟩ =𝑃𝑙

𝐴𝐸⟨0 1 1.5 2.5 4.5⟩

Dans la résolution XFEM du problème, la discontinuité matérielle est modélisée en utilisant

des fonctions d’enrichissement entre les points nodaux 2 et 3, dans lesquels 𝜑(𝑥2) < 0 sur

la partie gauche de la discontinuité et 𝜑(𝑥2) > 0 sur la partie droite. Les éléments standard

et enrichis des fonctions de formes, de leurs dérivées et des matrices de rigidité, sont obtenus

de la même manière que l’exemple précédent. La fonction ¨Level-set¨ du premier élément

est définie comme 𝜑(𝑥) = 𝑥 − 1.5𝑙

(1)𝑁𝑠𝑡𝑑(𝑥) = ⟨1 −𝑥

𝑙 𝑥

𝑙⟩

(1)𝑁𝑒𝑛𝑟(𝑥) = (𝑥

𝑙) ( |(𝜑(𝑥))| − |𝜑(𝑥2)|) = 𝑥 −

𝑥2

𝑙

2

1

3

1

4

1

5

1

6

1 1

1

Page 43: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

29

(1)𝐵𝑠𝑡𝑑(𝑥) = ⟨−1

𝑙 1

𝑙⟩

(1)𝐵𝑒𝑛𝑟(𝑥) = (1

𝑙) (|(𝜑(𝑥))| − |𝜑(𝑥2)|) + (

𝑥

𝑙) 𝑠𝑖𝑔𝑛 ((𝜑(𝑥))) = 1 −

2𝑥

𝑙

(𝟏)𝑲 =𝐴𝐸

𝑙[

+𝟏 −𝟏 𝟎

−𝟏𝟎

+𝟏 𝟎

𝟎 𝒍𝟐

𝟑

]

𝑢1𝑢2𝑎2 (2.42)

En définissant la fonction ¨Level-set¨ du deuxième élément comme suit :

𝜑(𝑥) = 1 − 0.5𝑙

On obtient

(2)𝑁(𝑥) = ⟨(2)𝑁𝑠𝑡𝑑(𝑥) (2)𝑁𝑒𝑛𝑟(𝑥)⟩

= ⟨1 −𝑥

𝑙 𝑥

𝑙 (1 −

𝑥

𝑙) ( |(𝜑(𝑥))| − |𝜑(𝑥2)|) (

𝑥

𝑙) ( |(𝜑(𝑥))| − |𝜑(𝑥3)|)⟩

= ⟨1 −𝑥

𝑙 𝑥

𝑙 (1 −

𝑥

𝑙) ( |(𝑥 −

𝑙

2)| −

𝑙

2) (

𝑥

𝑙) ( |(𝑥 −

𝑙

2)| −

𝑙

2)⟩

(2)𝐵(𝑥) = ⟨(2)𝐵𝑠𝑡𝑑(𝑥) (2)𝐵𝑒𝑛𝑟(𝑥)⟩

= ⟨−1

𝑙 1

𝑙 ( −

1

𝑙) ( |(𝜑(𝑥))| − |𝜑(𝑥2)|)

+ (1 −𝑥

𝑙) 𝑠𝑖𝑔𝑛 ((𝜑(𝑥))) (

1

𝑙) ( |(𝜑(𝑥))| − |𝜑(𝑥3)|)

+ ( 1

𝑙) 𝑠𝑖𝑔𝑛 ((𝜑(𝑥)))⟩

= ⟨−1

𝑙 1

𝑙 ( −

1

𝑙) ( |(𝑥 −

𝑙

2)| −

𝑙

2) + (1 −

𝑥

𝑙) (𝑥 −

𝑙

2) / | (𝑥 −

𝑙

2) | (

1

𝑙) ( |(𝑥 −

𝑙

2)| −

𝑙

2) + (

𝑥

𝑙) (𝑥 −

𝑙

2) / |(𝑥 −

𝑙

2)|⟩ (2.43)

Page 44: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

30

(𝟑)𝑲 =𝐴𝐸

𝑙

[ 3

4−3

4

𝑙

8

𝑙

8

−3

4𝑙

8𝑙

8

3

4

−𝑙

8

−𝑙

8

−𝑙

8𝑙2

4𝑙2

8

−𝑙

8𝑙2

8𝑙2

4 ]

𝑢2𝑢3𝑎2𝑎3

(2.43)

Pour l’élément (3), la fonction ¨Level-set¨ dans les coordonnées locales est définie comme

suit 𝜑(𝑥) = 𝑥 + 0.5𝑙

(3)𝑁𝑠𝑡𝑑(𝑥) = ⟨1 −𝑥

𝑙 𝑥

𝑙⟩

(3)𝑁𝑒𝑛𝑟(𝑥) = (1 −𝑥

𝑙) ( |(𝜑(𝑥))| − |𝜑(𝑥3)|) = 𝑥 −

𝑥2

𝑙

(3)𝐵𝑠𝑡𝑑(𝑥) = ⟨−1

𝑙 1

𝑙⟩

(3)𝐵𝑒𝑛𝑟(𝑥) = (−1

𝑙) (|(𝜑(𝑥))| − |𝜑(𝑥3)|) + (1 −

𝑥

𝑙) 𝑠𝑖𝑔𝑛 ((𝜑(𝑥))) = 1 −

2𝑥

𝑙

(𝟑)𝑲 =𝐴𝐸

2𝑙[

+𝟏 −𝟏 𝟎

−𝟏𝟎

+𝟏 𝟎

𝟎 𝒍𝟐

𝟑

]

𝑢3𝑢4𝑎3 (2.44)

Page 45: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

31

𝐊(𝑿𝑭𝑬𝑴) =𝐴𝐸

𝑙

[ 1 −1 0

−17

4−3

4

0000

−3

40𝑙

8𝑙

8

5

4

−1

2

−𝑙

8

−𝑙

8

0 0 0

0𝑙

8

𝑙

8

−1

21

200

−𝑙

807𝑙2

12𝑙2

8

−𝑙

80𝑙2

85𝑙2

12 ]

𝑢1𝑢2𝑢3𝑢4𝑎2𝑎3

(2.45)

La solution du système résolu avec la méthode XFEM, dans les nœuds standard et enrichis

est :

��𝑇 = ⟨𝑢1 𝑢2𝑢3𝑢4𝑎2𝑎3⟩ =𝑃𝑙

𝐴𝐸⟨0 1 2.4317 4.4317

0.2295

𝑙 0.3607

𝑙⟩

Page 46: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

32

Chapitre 3

Modèle mathématique

I-Introduction

Ce chapitre présente le modèle mathématique pour un écoulement à deux fluides

incompressibles, visqueux, Newtoniens et non miscibles. Dans la première partie, on verra

comment obtenir l’équation de Navier-Stokes diphasique, modèle à un fluide, à partir d’un

bilan de forces, loi de Newton, pour un fluide monophasique occupant un domaine

spécifique. Le même raisonnement sera fait pour un autre fluide possédant des propriétés

physiques différentes.

On fera l’union des deux domaines fluides à travers une surface de fusion. Les deux fluides

étant non miscibles, cette surface sera une interface de séparation entre les deux fluides. En

fusionnant les deux domaines et en faisant un bilan de force au niveau de l’interface, on

obtiendra l’équation de Navier Stokes pour deux fluides non miscibles. Un terme dû au bilan

de force au niveau de l’interface apparaitra.

À travers l’interface de fusion des deux fluides apparaitront des discontinuités pour les

propriétés physiques des deux fluides. Pour traiter ces discontinuités, on appliquera des

conditions de saut pour ces grandeurs physiques. Ce qui fera l’objet de la deuxième partie de

ce chapitre.

Page 47: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

33

II-Équation de Navier –Stokes pour deux fluides non miscibles avec tension

superficielle

On considère un écoulement instationnaire de deux fluides incompressibles, visqueux et

Newtoniens.

La figure (3.1) représente une configuration de deux fluides non miscibles. Le domaine de

chaque fluide est noté: Ω1 pour le fluide 1 et Ω2 pour le fluide 2. Dans chaque domaine

correspondent une viscosité et une masse volumique différentes notées 𝜇1, 𝜇2 et 𝜌1, 𝜌2 pour

chacun des deux fluides respectivement.

𝜌 = {

𝜌1 𝑠𝑖 𝑥 ∈ Ω1 𝜌2 𝑠𝑖 𝑥 ∈ Ω2

(3.1)

𝜇 = {

𝜇1 𝑠𝑖 𝑥 ∈ Ω1 𝜇2 𝑠𝑖 𝑥 ∈ Ω2

(3.2)

Figure 3.1 : Domaines contenant deux fluides de propriétés physiques différentes

La surface externe de Ω1 est prise comme étant l’union de ∂Ω1 et Γ+, celle de Ω2 est prise

comme étant l’union de ∂Ω2 et Γ−. Le domaine total sera noté Ω = Ω1 ∪ Ω2.

Ω1

Ω2

∂Ω1

∂Ω2

𝑛1→

𝑛2→

Page 48: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

34

On exprimera le principe fondamental de la dynamique dans chaque domaine Ω1et Ω2. On

fera ensuite la fusion des deux domaines à travers l’interface de séparation.

Soit le domaine Ω1, bordé (délimité) par une surface ∂Ω1 et une interface Γ+ à travers laquelle

il y aura fusion avec l’autre fluide. Le vecteur �� étant perpendiculaire en chaque point de la

surface extérieure ∂Ω1 et le vecteur 𝑛1 est perpendiculaire à l’interface de séparation comme

le montre la figure (3.1).

Le principe fondamental de la dynamique appliqué au volume Ω1 donne :

D

Dt∫ (ρU )Ω1

dΩ =∑Forces agissantes sur le fluide 1 (3.3)

Les forces qui s’appliquent, sont soit des forces volumiques 𝐹 , soit des forces surfaciques

contenues (représentées) dans le tenseur des contraintes visqueuses 𝜎.

Ce qui donne

∑𝐹𝑜𝑟𝑐𝑒𝑠 = ∫ 𝐹 𝑑Ω +

Ω1

∫ 𝜎. �� ∂Ω1/Γ+

𝑑Γ + ∫ 𝜎. 𝑛1 Γ+

𝑑Γ (3.4)

Donc

𝐷

𝐷𝑡∫ (𝜌�� )Ω1

𝑑Ω = ∫ 𝐹 Ω1

𝑑Ω +∫ 𝜎. �� 𝑑Γ∂Ω1/Γ+

+∫ 𝜎. 𝑛1 𝑑ΓΓ+

(3.5)

En faisant le même raisonnement pour le volume fluide Ω2 on obtient :

𝐷

𝐷𝑡∫ (𝜌�� )Ω2

𝑑Ω = ∫ 𝐹 Ω2

𝑑Ω +∫ 𝜎. �� 𝑑Γ∂Ω2/Γ−

+∫ 𝜎. 𝑛2 𝑑ΓΓ−

(3.6)

En fusionnant les deux équations obtenues pour chaque domaine (3.5) et (3.6), et en

additionnant les termes de part et d’autre on obtient l’équation suivante:

𝐷

𝐷𝑡∫ (𝜌�� )Ω

𝑑Ω = ∫ 𝐹 Ω

𝑑Ω +∫ 𝜎. �� 𝑑Γ∂Ω

+∫ 𝜎. 𝑛1 𝑑ΓΓ+

+∫ 𝜎. 𝑛2 𝑑ΓΓ−

(3.7)

Page 49: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

35

Figure 3.2 : Union des deux domaines fluides à travers une interface

Avec Ω = Ω1 ∪ Ω2

Et ∂Ω = (∂Ω1/Γ+) ∪ (∂Ω2/Γ

−)

Concernant l’interface, lors de la fusion nous avons :

limΓ+→Γ∗

( ∫ 𝜎. 𝑛1 𝑑ΓΓ+

)

= ∫ (𝜎1). �� 𝑑ΓΓ∗

(3.8)

limΓ−→Γ∗

( ∫ 𝜎. 𝑛2 𝑑ΓΓ−

)

= ∫ (𝜎2). �� 𝑑ΓΓ∗

(3.9)

Avec Γ∗ la surface de séparation entre les deux domaines Ω1 et Ω2.

Finalement nous obtenons

𝐷

𝐷𝑡∫ (𝜌�� )Ω

𝑑Ω = ∫ 𝐹 Ω

𝑑Ω +∫ 𝜎. �� 𝑑Γ∂Ω

−∫ (𝜎1 − 𝜎2). �� 𝑑ΓΓ∗

(3.10)

En appliquant le théorème de la divergence sur l’intégrale de surface :

∫ 𝜎. �� 𝑑Γ∂Ω

= ∫ ∇. 𝜎Ω

𝑑Ω (3.11)

Et le théorème de transport de Reynolds sur le membre de gauche

𝐷

𝐷𝑡∫ (𝜌�� )Ω

𝑑Ω = ∫𝜕

𝜕𝑡(𝜌�� )

Ω

𝑑Ω +∫ (𝜌�� ). �� ∂Ω

𝑑Γ (3.12)

Ω ∂Ω 𝑛

𝑛→

Page 50: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

36

𝐷

𝐷𝑡∫ (𝜌�� )Ω

𝑑Ω = ∫𝜕

𝜕𝑡(𝜌�� )

Ω

𝑑Ω +∫ ∇. (𝜌�� )Ω

𝑑Ω (3.13)

On obtient :

𝜕

𝜕𝑡(𝜌�� )

Ω

𝑑Ω +∫ ∇. (𝜌�� )Ω

𝑑Ω −∫ 𝐹 Ω

𝑑Ω −∫ ∇. 𝜎Ω

𝑑Ω

+∫ (��1 − 𝜎2). �� 𝑑ΓΓ∗

= 0

(3.14)

Le terme (𝜎2 − 𝜎1). �� représente le saut sur l’interface de séparation entre les deux fluides.

Cette force étant une force surfacique, donc elle agit seulement au niveau de l’interface. On

pourra exprimer cette force sous forme d’une force volumique à l’aide de la fonction delta

de Dirac selon laquelle le terme multiplié par cette fonction est nul partout dans l’espace sauf

en une position bien précise de la troisième dimension, dans laquelle l’amplitude de cette

fonction est maximale.

Ce qu’il faut remarquer, c’est le fait que la tension superficielle est traitée en tant que terme

intégral et non en tant que condition aux limites du problème, cette idée a été introduite pour

la première fois par Brackbill, et al. (1992).

En d’autres termes, c’est une force à deux dimensions (plan) exprimée à trois dimensions,

pour pouvoir l’introduire dans le bilan de force précédent et mettre tous les termes sous la

même intégrale.

𝑓 𝑠(𝑥, 𝑡) = ∫ [(𝜎2 − 𝜎1). �� ]𝜹(�� − �� 𝒍(�� ))𝑑Ω

Ω

(3.15)

�� 𝒍(�� ) est une paramétrisation de l’interface.

On obtient alors:

∫ [𝜕

𝜕𝑡(𝜌�� ) + ∇. (𝜌�� ) − 𝐹 − ∇. 𝜎]

Ω

𝑑Ω −∫ 𝑓 𝑠(𝑥, 𝑡)𝑑ΩΩ

= 0

Page 51: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

37

∫ [𝜕

𝜕𝑡(𝜌�� ) + ∇. (𝜌�� ) − 𝐹 − ∇. 𝜎 − 𝑓 𝑠(𝑥, 𝑡)]

Ω

𝑑Ω = 0

𝜕

𝜕𝑡(𝜌�� ) + ∇. (𝜌�� ) − 𝐹 − ∇. 𝜎 − 𝑓 𝑠(𝑥, 𝑡) = 0

(3.16)

La masse volumique 𝜌 étant constante dans chaque fluide, nous pouvons écrire le premier

terme de l’équation comme suit : 𝜕

𝜕𝑡(𝜌�� ) = 𝜌

𝜕

𝜕𝑡(�� ).

Le deuxième terme peut être décomposé comme suit :

∇. (𝜌�� ) = ∇ (𝜌). �� + 𝜌∇. (�� ) = 𝜌∇. (�� ) (3.17)

On sait que

𝜎(�� , 𝑝) = −𝑝𝐼 + 2𝜇𝐷(�� ) (3.18)

Avec 𝑝 étant la pression, 𝜇 la viscosité dynamique et 𝐷(�� ) =1

2(∇ �� + ∇𝑇 �� ) le tenseur de

déformation.

∇. 𝜎 = ∇. (−𝑝𝐼 + 2𝜇𝐷(�� )) (3.19)

∇. (−𝑝𝐼) = −∇𝑝 (3.20)

∇. (2𝜇 𝐷(�� )) = ∇. (𝜇 (∇ �� + ∇𝑇 �� )) (3.21)

𝜇 étant constante ∇. (𝜇 (∇ �� + ∇𝑇 �� )) = 𝜇∇. ((∇ �� + ∇𝑇 �� ))

= 𝜇∇. ((∇ �� )) + 𝜇∇. (∇𝑇 �� )

= 𝜇∆�� (3.22)

Avec le fait que ∇. (∇𝑇 �� ) = 0 qui est une conséquence de l’équation de conservation de la

masse.

En regroupant tous les termes, on obtient

Page 52: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

38

𝜌𝜕

𝜕𝑡(�� ) + 𝜌∇. (�� ) − 𝐹 + ∇𝑝 − 𝜇∆�� − 𝑓 𝑠(𝑥, 𝑡) = 0

𝜌 [𝜕

𝜕𝑡(�� ) + ∇. (�� )] = 𝐹 − ∇𝑝 + 𝜇∆�� + 𝑓 𝑠(𝑥, 𝑡)

(3.23)

Qui représente l’équation de Navier-Stokes avec le terme de tension superficielle.

III-Équation de conservation de la masse

III-1-Approche physique

Le théorème de transport de Reynolds pour toute grandeur s’énonce comme suit :

𝐷

𝐷𝑡∫ 𝜙 𝑑ΩΩ

= ∫𝜕

𝜕𝑡𝜙 𝑑Ω

Ω

+ ∮ 𝜙�� . �� 𝑑Γ

∂Ω

(3.24)

Pour obtenir l’équation de conservation de la masse, on applique ce théorème sur chaque

volume de contrôle Ω1, Ω2constituant le volume total Ω. Ensuite on fait leur union.

En appliquant sur les deux volumes de fluides, séparés par une interface, on sera obligé de

découpler l’intégrale fermée relative à la surface en la somme de deux intégrales, la première

représentera la surface externe du volume et la deuxième l’interface, de telle sorte que l’union

des deux soit une surface fermée.

Page 53: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

39

Figure 3.3 : Volume de contrôle à deux phases non miscibles avec interface de séparation

L’équation de conservation de la masse s’obtient en remplaçant 𝜙 par 𝜌 dans l’équation

(3.24). Le bilan sur le volume de contrôle occupé par le fluide 1 s’écrit:

𝐷

𝐷𝑡∫ 𝜌1 𝑑ΩΩ1

= ∫𝜕

𝜕𝑡𝜌1 𝑑Ω

Ω1

+ ∮ 𝜌1𝑈1 . 𝑛1 𝑑Γ

∂Ω1

(3.25)

𝐷

𝐷𝑡∫ 𝜌1 𝑑ΩΩ1

= ∫𝜕

𝜕𝑡𝜌1 𝑑Ω

Ω1

+∫ 𝜌1𝑈1 . 𝑛1 𝑑Γ∂Ω1\∂Ω𝑖

+∫ 𝜌1(𝑈𝑖 − 𝑈1 ). 𝑛1 𝑑Γ∂Ω𝑖

(3.26)

L’interface se déplace à une vitesse relative par rapport à la vitesse du fluide, la vitesse

d’évolution de cette dernière est égale à (𝑈𝑖 − 𝑈1 ).

Avec 𝑈𝑖 vitesse de l’interface et 𝑈1 vitesse du fluide contenu dans le volume 1. Le bilan sur

le volume de contrôle occupé par le fluide 2 s’écrit :

∂Ω2

Ω1

∂Ω1 𝑛2→

Ω2

𝑛1→

∂Ω𝑖

Page 54: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

40

𝐷

𝐷𝑡∫ 𝜌2 𝑑ΩΩ2

= ∫𝜕

𝜕𝑡𝜌2 𝑑Ω

Ω2

+ ∮ 𝜌2𝑈2 . 𝑛2 𝑑Γ

∂Ω2

(3.27)

𝐷

𝐷𝑡∫ 𝜌2 𝑑ΩΩ2

= ∫𝜕

𝜕𝑡𝜌2 𝑑Ω

Ω2

+∫ 𝜌2𝑈2 . 𝑛2 𝑑Γ∂Ω2\∂Ω𝑖

+∫ 𝜌2(𝑈𝑖 − 𝑈2 ). 𝑛2 𝑑Γ∂Ω𝑖

(3.28)

En sommant les deux équations membre à membre, on obtient :

𝐷

𝐷𝑡∫ 𝜌1 𝑑ΩΩ1

+𝐷

𝐷𝑡∫ 𝜌2 𝑑ΩΩ2

= ∫𝜕

𝜕𝑡𝜌1 𝑑Ω

Ω1

+∫𝜕

𝜕𝑡𝜌2 𝑑Ω

Ω2

+∫ 𝜌1𝑈1 . 𝑛1 𝑑Γ∂Ω1\∂Ω𝑖

+∫ 𝜌2𝑈2 . 𝑛2 𝑑Γ∂Ω2\∂Ω𝑖

+∫ 𝜌1(𝑈𝑖 − 𝑈1 ). 𝑛1 𝑑Γ∂Ω𝑖

+∫ 𝜌2(𝑈𝑖 − 𝑈2 ). 𝑛2 𝑑Γ∂Ω𝑖

(3.29)

La masse totale à travers le volume total Ω est conservée, ça veut dire que la masse totale

reste invariable quand on suit le domaine matériel dans son mouvement, ce qui fait que le

terme de gauche est nul.

𝐷

𝐷𝑡∫ 𝜌1 𝑑ΩΩ1

+𝐷

𝐷𝑡∫ 𝜌2 𝑑ΩΩ2

= 0 (3.30)

On applique le théorème de la divergence sur les deux intégrales surfaciques et on somme

les deux termes intégrés sur l’interface.

0 = ∫𝜕

𝜕𝑡𝜌1 𝑑Ω

Ω1

+∫𝜕

𝜕𝑡𝜌2 𝑑Ω

Ω2

+∫ ∇. (𝜌1𝑈1 )𝑑Γ Ω1

+∫ ∇. (𝜌2𝑈2 )𝑑Γ Ω2

+∫ [𝜌1(𝑈𝑖 − 𝑈1 ). 𝑛1 + 𝜌2(𝑈𝑖 − 𝑈2 ). 𝑛2 ]𝑑Γ∂Ω𝑖

Page 55: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

41

∫ [

𝜕

𝜕𝑡𝜌1 + ∇. (𝜌1𝑈1 )] 𝑑Ω

Ω1

+∫ [𝜕

𝜕𝑡𝜌2 + ∇. (𝜌2𝑈2 )] 𝑑Ω

Ω2

∫ [𝜌1(𝑈1 − 𝑈𝑖 ). 𝑛1 + 𝜌2(𝑈2 − 𝑈𝑖 ). 𝑛2 ]𝑑Γ∂Ω𝑖

= 0

(3.31)

Cette équation reste valable, quels que soient les volumes de contrôle Ω1, Ω2 et l’interface

de séparation ∂Ω𝑖, ce qui fait que :

𝜕

𝜕𝑡𝜌1 + ∇. (𝜌1𝑈1 ) = 0

(3.32)

𝜕

𝜕𝑡𝜌2 + ∇. (𝜌2𝑈2 ) = 0

(3.33)

Qui exprime le bilan de masse sur l’élément de volume de chacune des phases (équations de

continuité dans chaque fluide).

L’équation locale instantanée sur les interfaces :

𝜌1(𝑈1 − 𝑈𝑖 ). 𝑛1 + 𝜌2(𝑈2 − 𝑈𝑖 ). 𝑛2 = 0 (3.34)

Figure 3.4 : Interface de séparation entre deux fluides non miscibles

�� 1

�� 2

𝝆𝟏

𝝆𝟐

Γ

Page 56: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

42

On sait qu’au niveau de l’interface au même point :

𝑛1 = −𝑛2 (3.35)

𝜌1(𝑈1 − 𝑈𝑖 ). 𝑛1 = 𝜌2(𝑈2 − 𝑈𝑖 ). 𝑛1 (3.36)

Qui est connue sous le nom de condition de Rankine-Hugoniot Gouin, H., & Gavrilyuk, S.

(1999). Selon laquelle s’il n’y a ni transfert de masse ni changement de phase (évaporation

par exemple), alors les deux parties de l’égalité sont nulles.

(𝑈1 − 𝑈𝑖 ). 𝑛1 = 0 (3.37)

(𝑈2 − 𝑈𝑖 ). 𝑛1 = 0 (3.38)

On décompose les vitesses en leurs composantes normales et tangentielles

𝑈1 = (𝑈1 . 𝑛1 )𝑛1 + 𝑈1𝑡 (3.39)

𝑈2 = (𝑈2 . 𝑛2 )𝑛2 + 𝑈2𝑡 = −(𝑈2 . 𝑛2 )𝑛1 + 𝑈2

𝑡 (3.40)

On sait que les deux phases ne glissent pas l’une sur l’autre, alors les composantes

tangentielles de part et d’autre de l’interface et au même point sont égales (condition de non-

glissement).

Ce qui nous conduit à conclure que lorsqu’il n’y a ni changement de phase ni glissement au

niveau de l’interface alors les vitesses au même point sont égales.

𝑈1 = 𝑈2 (3.41)

Donc, le saut sur les vitesses est nul

⟦�� ⟧ = 0 (3.42)

Page 57: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

43

III-2-Approche mécanique des milieux continus

Figure 3.5 : Interface symétrique entre deux fluides non miscibles

On considère un point 𝑋𝑠 appartenant à une interface de séparation Γ, entre deux milieux non

miscibles Ω1, Ω2 de propriétés physiques différentes. Soit �� le vecteur normal en tout point

de l’interface de séparation Γ.

Soit 𝑈1 et 𝑈2 les vitesses du fluide dans chaque volume Ω1, Ω2 respectivement. On prend un

petit volume W autour de l’interface de séparation Γ. L’épaisseur de W est très petite. On

notera cette épaisseur h, de telle sorte que l’interface passe de façon symétrique à travers w.

(L’interface coupe le volume w en deux parties symétriques d’épaisseur ℎ 2⁄ )

Soit S l’intersection de W avec Γ : 𝑆 = 𝑊 ∩ Γ

Le théorème de transport de Reynolds pour une fonction 𝜙 (𝑋 , 𝑡) continue sur le domaine W

s’écrit.

𝐷

𝐷𝑡∫ 𝜙 𝑑Ωw

= ∫𝜕

𝜕𝑡𝜙 𝑑Ω

w

+ ∮ 𝜙�� . 𝑛𝑤 𝑑Γ

∂w

(3.43)

Avec 𝑛𝑤 vecteur normal à la surface extérieure du volume w.

𝑋𝑠

��

Γ Ω2

Ω1 𝐰

𝐒

Page 58: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

44

Quand l’épaisseur h du volume W tend vers zéro, le volume W tend vers la surface S

limℎ→0

𝐷

𝐷𝑡∫ 𝜙 𝑑Ωw

= limℎ→0

∫𝜕

𝜕𝑡𝜙 𝑑Ω

w

+ limℎ→0

∮ 𝜙�� . 𝑛𝑤 𝑑Γ

∂w

(3.44)

Le terme 𝜕

𝜕𝑡𝜙 𝑑Ω correspond à une description Eulérienne (configuration actuelle) du

mouvement du volume de contrôle, ce qui fait que

limℎ→0

∫𝜕

𝜕𝑡𝜙 𝑑Ω

w

= 0 (3.45)

Et

limℎ→0

∮ 𝜙�� . 𝑛𝑤 𝑑Γ

∂w

= limℎ→0

∫ 𝜙�� . �� 𝑑Γ𝑆

(3.46)

Le terme 𝐷

𝐷𝑡∫ 𝜙 𝑑Ωw

correspond à une description Lagrangienne (repère de référence), ce

qui fait qu’il sera exprimé en fonction des valeurs initiales des variables de chaque domaine.

limℎ→0

𝐷

𝐷𝑡∫ 𝜙 𝑑Ωw

= ∫ ⟦𝜙�� ⟧.𝑆

�� 𝑑S (3.47)

⟦𝜙�� ⟧ = 𝜙2𝑈2 − 𝜙1�� 1 (3.48)

En faisant tendre la surface 𝑆 → 0, on obtient les valeurs des variables précédentes en un

point précis 𝑋𝑠.

lim

ℎ→0,𝑆→0

1

𝑆

𝐷

𝐷𝑡∫ 𝜙 𝑑ΩΩ

= limℎ→0,𝑆→0

1

𝑆∫ ⟦𝜙�� ⟧.𝑆

�� 𝑑S

= 𝜙2𝑈2 . �� − 𝜙1�� 1. ��

(3.49)

Page 59: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

45

En appliquant ce dernier résultat en prenant 𝜙 = 𝜌. Ce qui nous donne la loi de conservation

de la masse.

Ce qui nous donne

𝐷

𝐷𝑡∫ 𝜌 𝑑ΩΩ

= 0 (3.50)

Donc 𝜌2𝑈2 . �� = 𝜌1�� 1. �� (3.51)

Ce qui donne selon la condition de Rankine-Hugoniot (Gouin, H., & Gavrilyuk, S. (1999)),

et le fait qu’il n’y ait pas de changement de phase au niveau de l’interface

𝑈2 . �� = �� 1. �� (3.52)

Les composantes normales de chaque vitesse sont égales.

En prenant le même raisonnement que précédemment sur le fait qu’il n’y ait pas de

glissement entre les deux milieux, alors les deux composantes tangentielles des vitesses sont

égales au même point.

Ce qui donne finalement le même résultat que précédemment

⟦�� ⟧ = 0 (3.53)

IV-Équation régissant la physique de l’interface entre deux fluides non

miscibles

La loi de Young Laplace définit l’interface comme ayant une épaisseur nulle. On utilise

l’approche ¨Sharp interface¨ (interface à épaisseur nulle) contrairement à l’approche diffuse,

ainsi la viscosité et la densité représentent un saut au niveau de l’interface (deux valeurs

différentes de part et d’autre de l’interface). On suppose que l’interface a une tension

superficielle. On suppose qu’il n’y a pas de transfert de masse au niveau de l’interface

(surface imperméable), et aussi absence de surfactant dans le fluide.

Page 60: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

46

Une surface de séparation entre deux fluides non miscibles, non contaminée, présente une

propriété d’isotropie pour la tension superficielle (Pozrikidis 2011).

La tension superficielle diminue avec l’augmentation de la température. Au-delà d’un certain

seuil critique, elle devient nulle. Les composantes du tenseur de contrainte 𝜎 de part et

d’autre d’une interface de séparation entre deux fluides non miscibles ne sont pas

nécessairement égales. Ce qui donne naissance à une discontinuité. La discontinuité au

niveau de l’interface est déterminée par les propriétés physico-chimiques des fluides et la

constitution moléculaire de l’interface.

Pour trouver une expression pour la condition de saut au niveau de l’interface, on néglige la

masse de l’interface et on écrit un bilan de forces pour une portion de surface S.

On prend une surface de séparation entre deux fluides non miscibles. On prend une portion

de cette surface qu’on notera S. Le contour de S sera noté C. Le vecteur �� est normal à

l’interface S et au contour C, 𝒕 est un vecteur tangent au contour C et perpendiculaire à �� .

Comme le montre la figure 3.6 suivante :

Figure 3.6 : Bilan sur une portion d’une interface de séparation entre deux fluides non

miscibles

��

𝒕 ⨂��

𝒕

𝛀𝟏

𝛀𝟐

Page 61: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

47

La force totale agissant sur la surface de séparation S se compose de la force agissant sur S

et de la force agissant sur le contour C

𝐹 = ∫ (𝜎1 − 𝜎2 )

𝐴

. �� 𝑑𝐴 +∮ 𝛾𝑡 Γ

× �� 𝑑Γ (3.54)

Tel que 𝜎1et 𝜎2 sont les tenseurs de taux de déformation dans chaque milieu. Et 𝛾 la tension

superficielle au niveau de l’interface de séparation.

À noter que la force volumique comme le poids n’existe pas parce que l’interface est une

surface donc elle a un volume nul.

Même en absence d’équilibre, la somme des forces est nulle, parce que l’interface n’a pas de

masse.

∑𝐹 = 𝑚𝑎 (3.55)

𝑚 = 0

∫ (𝜎1 − 𝜎2 )𝐴

. �� 𝑑𝐴 + ∮ 𝛾𝑡 Γ

× �� 𝑑Γ = 0 (3.56)

Ce qui donne :

∫ (𝜎1 − 𝜎2 )𝐴

. �� 𝑑𝐴 = −∮ 𝛾𝑡 Γ

× �� 𝑑Γ (3.57)

On sait que

∮ 𝛾𝑡 Γ

× �� 𝑑Γ = −∮ 𝛾�� Γ

× 𝑡 𝑑Γ (3.58)

En appliquant le théorème de Stokes :

∮ 𝐹 . 𝑡 𝐶

𝑑𝑆 =∬ (∇ × 𝐹 ). �� 𝐴

𝑑𝐴 (3.59)

Page 62: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

48

En prenant 𝐹 comme étant le produit vectoriel de deux vecteurs 𝐹 = 𝑔 × �� avec �� = 𝑐𝑡𝑒.

On aura

∮ (𝑔 × �� ). 𝑡 𝐶

𝑑𝑆 =∬ (∇ × (𝑔 × �� )). �� 𝐴

𝑑𝐴 (3.60)

Le rotationnel d’un produit vectoriel de deux vecteurs donne

∇ × (𝑔 × �� ) = (∇ . �� )𝑔 − (∇ . 𝑔 )�� + �� . (∇ 𝑔 ) − 𝑔 . (∇ �� ) (3.61)

Le vecteur �� étant constant

(∇ . �� ) = (∇ �� ) = 0 (3.62)

Donc il va rester

∇ × (𝑔 × �� ) = −(∇ . 𝑔 )�� + �� . (∇ 𝑔 ) (3.63)

∮ (𝑔 × �� ). 𝑡 𝐶

𝑑𝑆 =∬ (−(∇ . 𝑔 )�� + �� . (∇ 𝑔 )) . �� 𝐴

𝑑𝐴 (3.64)

On posant

𝑔 = 𝛾�� (3.65)

On obtient

∮ (𝛾�� × �� ). 𝑡 𝐶

𝑑𝑆 = ∬ ((−∇ . (𝛾�� ))�� + �� . (∇ (𝛾�� ))) . �� 𝐴

𝑑𝐴 (3.66)

On sait que : (�� × �� ). 𝑡 = �� . (𝑡 × �� )

∮ 𝛾�� . (𝑡 × �� )𝐶

𝑑𝑆 =∬ (−∇ . (𝛾�� )�� . �� + �� . (∇ (𝛾�� )). �� )𝐴

𝑑𝐴 (3.67)

Page 63: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

49

�� . ∮ 𝛾(𝑡 × �� )

𝐶

𝑑𝑆 = ∬ �� . (−∇ . (𝛾�� )�� + (∇ (𝛾�� )). �� )𝐴

𝑑𝐴 (3.68)

En simplifiant le facteur commun des deux côtés de l’égalité, on obtient :

∮ 𝛾(𝑡 × �� )𝐶

𝑑𝑆 =∬ (−∇ . (𝛾�� )�� + (∇ (𝛾�� )) . �� )𝐴

𝑑𝐴 (3.69)

En décomposant les termes du membre de droite, en appliquant les relations mathématiques

spécifiques on obtient.

∇ . (𝛾�� ) = ∇ 𝛾. �� + 𝛾∇ . �� (3.70)

En multipliant par ��

∇ . (𝛾�� ). �� = (∇ 𝛾. �� ) �� + 𝛾(∇ . �� )�� (3.71)

∇ (𝛾�� ) = 𝛾(∇ �� ) + (∇ 𝛾⨂�� ) (3.72)

En multipliant par ��

∇ (𝛾�� ). �� = 𝛾(�� �� ). �� + (∇ 𝛾⨂�� ). �� (3.73)

On sait que

(�� �� ). �� =

1

2�� (�� . �� ) =

1

2�� (1) = 0

(3.74)

Donc

𝛾(�� �� ). �� = 0 (3.75)

Donc il ne restera que l’autre terme

∇ (𝛾�� ). �� = (∇ 𝛾⨂�� ). �� (3.76)

En regroupant les deux termes, on a :

Page 64: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

50

∮ 𝛾(𝑡 × �� )𝐶

𝑑𝑆 = ∫ [−(∇ 𝛾. �� )�� − 𝛾(∇ . �� )�� 𝐴

+ (∇ 𝛾⨂�� ). �� ]𝑑𝐴 (3.77)

En appliquant le résultat −∇ . �� = κ, (voir annexe A), avec κ étant la courbure de l’interface,

on obtient

−𝛾(∇ . �� )�� = −𝛾(−κ )�� = 𝛾κ�� (3.78)

(a ⨂�� ). 𝑐 = 𝑎 (b . 𝑐 ) (3.79)

(Avec 𝑎 , b 𝑒𝑡 𝑐 des vecteurs) sur le troisième terme du membre de droite, on obtient :

(∇ 𝛾⨂�� ). �� = ∇ 𝛾(�� . �� ) = ∇ 𝛾 (3.80)

En décomposant l’opérateur ∇ en sa composante normale et tangentielle

∇ 𝛾 = ∇𝑁 𝛾 + ∇Γ 𝛾 (3.81)

∇ 𝛾 = (∇ 𝛾. �� )�� + ∇Γ 𝛾

∇Γ 𝛾 = ∇ 𝛾 − (∇ 𝛾. �� )��

∇Γ 𝛾 = ∇ 𝛾 − �� (�� . (∇ 𝛾))

∇Γ 𝛾 = ∇ 𝛾 − �� ⨂�� (∇ 𝛾)

∇Γ 𝛾 = (∥ −�� ⨂�� )(∇ 𝛾) (3.82)

Le terme (∥ −�� ⨂�� ) est noté P et est appelé projecteur. Donc ∇Γ 𝛾 est la composante

projetée de (∇ 𝛾).

Donc en remplaçant les termes (3.78) et (3.80) dans l’équation de départ (3.77), on obtient :

∮ 𝛾(𝑡 × �� )𝐶

𝑑𝑆 = ∫ [𝛾κ�� − (∇ 𝛾 )𝐴

+ (∇ 𝛾⨂�� ). �� ]𝑑𝐴 (3.83)

Page 65: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

51

Sachant que

(a ⨂�� ). 𝑐 = 𝑎 (b . 𝑐 ) (3.84)

(∇ 𝛾 ⨂�� ). �� = ∇ 𝛾(n ⨂�� ) (3.85)

En injectant le résultat 3.85 dans l’équation 3.83 on obtient :

∮ 𝛾(𝑡 × �� )𝐶

𝑑𝑆 = ∫ [𝛾κ�� − (𝐴

Ι − (n ⨂�� ))(∇ 𝛾 )]𝑑𝐴 (3.86)

En tenant compte de 3.82 on obtient

∮ 𝛾(𝑡 × �� )𝐶

𝑑𝑆 = ∫ [𝛾κ�� −𝐴

(∇Γ 𝛾 )]𝑑𝐴 (3.87)

En remplaçant dans l’équation initiale 3.57, on trouve :

∫ (𝜎1 − 𝜎2 )𝐴. �� 𝑑𝐴 = −∫ [𝛾κ�� −

𝐴(∇Γ 𝛾 )]𝑑𝐴

∫ (𝜎1 − 𝜎2 )𝐴

. �� 𝑑𝐴 + ∫ [𝛾κ�� −𝐴

(∇Γ 𝛾 )]𝑑𝐴 = 0 (3.88)

Donc

⟦𝜎. �� ⟧ = [−𝛾κ�� + (∇Γ 𝛾 )] (3.89)

Qui représente la différence entre les deux valeurs du tenseur de taux de déformation au

niveau de l’interface, qui est appelée condition de saut.

On remarque que cette condition contient deux termes. Le premier terme dépend de la

propriété physique 𝛾 de l’interface, la courbure κ et d’une orientation suivant la normale �� .

Ce terme a la dimension d’une force, ce qui fait que lors de l’évolution de l’interface, le

Page 66: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

52

changement de forme de cette dernière avec un coefficient de tension superficielle 𝛾 constant

n’est conséquence que d’un bilan de force ou d’énergie.

En d’autres termes les interfaces se déforment, en conséquence d’un certain bilan d’énergie

ou de force selon lequel, l’énergie dissipée au cours de l’évolution est minimale.

Le second terme quant à lui correspond au gradient surfacique de la tension superficielle 𝛾,

∇Γ = (1 − �� ⨂�� )∇ qui est une projection de ∇ sur la surface pilotée par �� .

On voit très bien que ce terme modifie les conditions à l’interface de séparation entre deux

fluides non miscibles. L’effet de ce terme est appelé effet Marangoni.

On remarque très bien qu’un écoulement stratifié κ = 0 ne peut être au repos, que si le terme

∇Γ 𝛾 = 0. Dans le cas contraire, le mouvement du fluide sera piloté par le gradient surfacique,

qui représentera l’effet Marangoni. L’effet Marangoni n’est possible que si la tension

superficielle entre deux points de l’interface est différente. Ce phénomène est induit soit par

effet de la température, concentration des surfactants ou bien une instabilité liée à un potentiel

électrique ou à un champ magnétique. Ce qui suggère aussi qu’en absence de vitesse initiale

pour le fluide, son mouvement peut être dû à l’effet Marangoni, auquel cas le fluide va

s’écouler dans le sens où la tension superficielle est plus importante.

Page 67: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

53

V- Conditions de saut sur les grandeurs physiques au niveau de

l’interface de séparation entre les fluides

Au niveau de l’interface de séparation de deux fluides non miscibles, les grandeurs physiques

de part et d’autre de l’interface sont discontinues, ce qui impose des conditions de saut.

Pour la viscosité et la densité, leurs conditions de saut peuvent être écrites de manière

évidente (propriétés physiques de la matière) comme suit :

⟦𝜌⟧ = 𝜌+ − 𝜌− (3.90)

⟦𝜇⟧ = 𝜇+ − 𝜇− (3.91)

Pour deux fluides visqueux non miscibles, on avait vu précédemment que la vitesse est

continue au niveau de l’interface de séparation

⟦𝑈⟧ = 0 (3.92)

⟦𝑈𝑛⟧ = 0 (3.93)

⟦𝑈𝑡⟧ = 0 (3.94)

Le fait que la vitesse évolue de façon continue au niveau de l’interface, ceci suggère que la

variation, de la composante tangentielle, au même point, dans deux directions opposées soit

la même de part et d’autre, donc le saut sur la composante tangentielle du gradient de la

vitesse soit nul.

Donc ⟦∇ �� ⟧. 𝑡 = 0 (3.95)

On sait que pour deux fluides incompressibles, la condition de continuité est :

⟦∇ . �� ⟧ = 0 (3.96)

Trouvons la relation entre ∇ �� et ∇ . �� :

Page 68: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

54

∇ �� = �� ,𝑛𝑒𝑛 + �� ,𝑡𝑒𝑡 (3.97)

∇ . �� = �� 𝑛,𝑛 + �� 𝑡 ,𝑡

(3.98)

⟦∇ . �� ⟧ = �� . ⟦∇ �� ⟧. �� + 𝑡 . ⟦∇ �� ⟧. 𝑡 = 0 (3.99)

Donc �� . ⟦∇ �� ⟧. �� = 0 (3.100)

Ce qui suggère que la composante normale du gradient de la vitesse est continue au niveau

de l’interface.

⟦∇ �� ⟧ = ⟦∇𝑁 �� + ∇𝑇 �� ⟧ = ⟦∇𝑁 �� ⟧ + ⟦∇𝑇 �� ⟧ = 0 (3.101)

Donc le saut sur le gradient de la vitesse est nul.

Prenons maintenant le résultat obtenu précédemment et essayons de trouver les conditions

de sauts sur les grandeurs qui le constituent.

⟦𝜎 . �� ⟧ = [−𝛾κ�� + (∇Γ 𝛾 )] (3.102)

En revanche on sait que le tenseur de taux de déformation est défini comme suit :

𝜎(�� , 𝑝) = −𝑝𝐼 + 2𝜇𝐷(�� ) (3.19)

Le vecteur étant le même de part et d’autre de l’interface on peut écrire :

⟦𝜎 . �� ⟧ = ⟦𝜎 ⟧. �� (3.103)

Donc l’équation précédente se réduit à :

⟦−𝑝𝐼 + 2𝜇𝐷(�� )⟧. �� = −𝛾κ�� (3.104)

En appliquant la formule suivante

⟦𝐴 + 𝐵⟧ = ⟦𝐴 ⟧ + ⟦ 𝐵⟧ (3.105)

Page 69: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

55

On obtient

⟦−𝑝𝐼 + 2𝜇𝐷(�� )⟧ = ⟦−𝑝𝐼 ⟧ + ⟦ 2𝜇𝐷(�� )⟧ (3.106)

En faisant le produit scalaire par �� .

⟦𝑝 ⟧ = ⟦�� . 2𝜇𝐷(�� ). �� ⟧ + 𝛾κ (3.107)

⟦𝑝 ⟧ = ⟦�� . 𝜇(∇ �� + ∇𝑇 �� ). �� ⟧ + 𝛾κ (3.108)

⟦𝑝 ⟧ = �� . ⟦( 𝜇 ∇ �� )⟧. �� + �� . ⟦( 𝜇∇𝑇 �� )⟧ . �� + 𝛾κ (3.109)

⟦𝐴𝐵⟧ = ⟦𝐴 ⟧�� + ��⟦ 𝐵⟧ (3.110)

Avec �� = 𝑎𝐴2 + 𝑏𝐴1, �� = 𝑎𝐵2 + 𝑏𝐵1 avec a+b=1

⟦𝑝 ⟧ = �� . ⟦ 𝜇 ⟧(∇ �� ). �� + �� . ��⟦∇ �� ⟧. �� + �� . ⟦ 𝜇 ⟧(∇𝑇 �� ). �� + �� . �� ⟦ ∇𝑇 �� ⟧ . ��

+ 𝛾κ

(3.111)

On sait que

�� . ��⟦∇ �� ⟧. �� = �� . �� ⟦ ∇𝑇 �� ⟧ . �� = 0 (3.112)

Ce qui donne

⟦𝑝 ⟧ = �� . ⟦ 𝜇 ⟧(∇ �� ). �� + �� . ⟦ 𝜇 ⟧(∇𝑇 �� ). �� + 𝛾κ

(3.113)

(∇ �� ) = 𝑎(∇ �� )2 − (1 − 𝑎)(∇ �� )1 (3.114)

(∇𝑇 �� ) = 𝑎(∇𝑇 ��

)2 − (1 − 𝑎)(∇𝑇 ��

)1

(3.115)

En utilisant l’identité vectorielle suivante

Page 70: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

56

𝑎. 𝐵. 𝑐 = 𝑐. 𝐵𝑇. 𝑎 (3.116)

On aura

�� . (∇ �� ). �� = �� . (∇𝑇 �� ). �� (3.117)

Le saut sur la pression p devient :

⟦𝑝 ⟧ = 2⟦ 𝜇 ⟧�� . ∇ �� . �� + 𝛾κ (3.118)

⟦( 𝜇 ∇ �� )⟧. 𝑡 = ⟦ 𝜇 ⟧(∇ �� ). 𝑡 + ��⟦ ∇ �� ⟧. 𝑡 (3.119)

Le gradient tangentiel de la vitesse étant nul de part et d’autre de l’interface (obtenu

précédemment)

��⟦ ∇ �� ⟧. 𝑡 = 0 (3.120)

On obtient

⟦( 𝜇 ∇ �� )⟧. 𝑡 = ⟦ 𝜇 ⟧(∇ �� ). 𝑡 (3.121)

On sait que

⟦𝑡 . 𝜇(∇ �� + ∇𝑇 �� ). �� ⟧ = 0 (3.122)

𝑡 . ⟦( 𝜇 ∇ �� )⟧. �� + 𝑡 . ⟦( 𝜇∇𝑇 �� )⟧ . �� = 0

𝑡 . ⟦( 𝜇 ∇ �� )⟧. �� + �� . ⟦ 𝜇 ⟧∇ �� . 𝑡 = 0 (3.123)

Condition de saut sur ⟦( 𝜇 ∇ �� )⟧ :

⟦( 𝜇 ∇ �� )⟧ = ⟦�� . ( 𝜇 ∇ �� ). �� ⟧�� ⨂�� + ⟦𝑡 . ( 𝜇 ∇ �� ). 𝑡 ⟧𝑡 ⨂𝑡 + ⟦�� . ( 𝜇 ∇ �� ). 𝑡 ⟧�� ⨂𝑡

+ ⟦𝑡 . ( 𝜇 ∇ �� ). 𝑡 ⟧�� ⨂𝑡

(3.124)

Page 71: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

57

1/ ⟦�� . ( 𝜇 ∇ �� ). �� ⟧=�� . ⟦ 𝜇 ⟧(∇ �� ). �� + �� . ��⟦∇ �� ⟧. ��

= �� . ⟦ 𝜇 ⟧∇ �� . ��

= ⟦ 𝜇 ⟧�� . (∇ �� ). �� (3.125)

2/⟦𝑡 . ( 𝜇 ∇ �� ). 𝑡 ⟧ = 𝑡 . ⟦ 𝜇 ⟧(∇ �� ). 𝑡 + 𝑡 . ��⟦∇ �� ⟧. 𝑡

= 𝑡 . ⟦ 𝜇 ⟧(∇ �� ). 𝑡

= ⟦ 𝜇 ⟧𝑡 . (∇ �� ). 𝑡 (3.126)

3/⟦�� . ( 𝜇 ∇ �� ). 𝑡 ⟧ = �� . ⟦ 𝜇 ⟧(∇ �� ). 𝑡 + �� . ��⟦∇ �� ⟧. 𝑡

= �� . ⟦ 𝜇 ⟧(∇ �� ). 𝑡

= ⟦ 𝜇 ⟧�� . (∇ �� ). 𝑡 (3.127)

4/⟦𝑡 . ( 𝜇 ∇ �� ). �� ⟧:

On sait que :

⟦𝑝 ⟧ = ⟦𝜇(∇ �� + ∇𝑇 �� )⟧ + 𝛾κ�� + ∇Γ 𝛾 (3.128)

𝑡 . ⟦𝑝 ⟧. �� = 𝑡 . ⟦𝜇(∇ �� + ∇𝑇 �� )⟧ . �� + 𝑡 . (𝛾κ�� + ∇Γ 𝛾). ��

0 = 𝑡 . ⟦𝜇(∇ �� + ∇𝑇 �� )⟧ . �� + . (𝛾κ�� + ∇Γ 𝛾). ��

0 = 𝑡 . ⟦𝜇∇ �� ⟧. �� + 𝑡 . ⟦𝜇∇𝑇 �� ⟧ . �� + 𝑡 . (𝛾κ�� + ∇Γ 𝛾). ��

Page 72: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

58

𝑡 . ⟦𝜇∇ �� ⟧. �� = −�� . ⟦𝜇∇ �� ⟧. 𝑡 − 𝑡 . (𝛾κ�� + ∇Γ 𝛾). �� (3.129)

En sommant les quatre termes, on obtient :

⟦( 𝜇 ∇ �� )⟧ = ⟦𝜇⟧[(�� . (∇ �� ). �� )�� ⨂�� + (�� . (∇ �� ). 𝑡 )�� ⨂𝑡 − (�� . (∇ �� ) . 𝑡 ) 𝑡 ⨂��

+ ⟦𝑡 . (∇ �� ) . 𝑡 ⟧ 𝑡 ⨂𝑡 − 𝑡 . (𝛾κ�� + ∇Γ 𝛾). �� 𝑡 ⨂��

(3.130)

Tableau récapitulatif 3.1 sur les conditions de saut au niveau de l’interface de séparation de

deux fluides non miscibles :

Grandeur physique Saut sur la grandeur Valeur du saut

Vitesse ⟦�� ⟧

0

Viscosité dynamique ⟦𝜇⟧ 𝜇+ − 𝜇−

Masse volumique ⟦𝜌⟧ 𝜌+ − 𝜌−

Gradient des vitesses ⟦∇ �� ⟧ 0

Tenseur du taux de

déformation

⟦𝜎 . �� ⟧

[−𝛾κ�� + (∇Γ 𝛾 )]

Pression ⟦𝑝 ⟧

2⟦ 𝜇 ⟧�� . ∇ �� . �� + 𝛾κ

Gradient de pression ⟦∇ 𝑝 ⟧ 0

Page 73: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

59

Viscosité dynamique

multipliée par le gradient

des vitesses

⟦( 𝜇 ∇ �� )⟧ ⟦𝜇⟧((�� . (∇ �� ). �� )�� ⨂��

+ (�� . (∇ �� ). 𝑡 )�� ⨂𝑡

− (�� . (∇ �� ). 𝑡 )𝑡 ⨂��

+ ⟦𝑡 . (∇ �� ). 𝑡 ⟧ 𝑡 ⨂𝑡

− 𝑡 . (𝛾κ�� + ∇Γ 𝛾). �� 𝑡 ⨂��

Tableau 3.1 : Conditions de saut au niveau de l’interface

Page 74: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

60

Chapitre 4

Méthodes numériques et stratégies de

résolutions

I-Introduction

Dans ce chapitre, nous allons détailler les différents outils, méthodes et stratégies développés

pour construire le modèle de simulation. Nous allons présenter de façon progressive ces

méthodes et ces choix de développement dans un ordre logique. Les modèles développés en

détail dans les sections précédentes seront utilisés dans cette section.

On présentera la nature des discontinuités, les modèles de traitements et notre choix de

modélisation. On présentera aussi les différentes manières de traiter des interfaces dans un

système de coordonnées choisi, les avantages et inconvénients de chaque méthode et nos

choix dans la suite du travail.

Un gros problème se pose dans le choix des coordonnées, dans le cas où la différence dans

les propriétés physiques des deux fluides est très importante, les solutions sont affectées. Des

techniques de stabilisation sont employées dans le traitement du champ de vitesse et la

grandeur de la pression pour la précision et la stabilisation des solutions obtenues.

Nous allons expliquer pourquoi, contrairement à la discrétisation temporelle dans les

problèmes instationnaires traités avec la méthode FEM, le traitement avec la méthode XFEM

des problèmes instationnaires est différent, même si les discrétisations FEM et XFEM sont

des discrétisations spatiales et n’ont rien à voir avec la discrétisation des termes temporels.

Page 75: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

61

Pour résoudre les équations de Navier-Stokes dans le cas d’écoulements à deux fluides non

miscibles avec des conditions de saut au niveau de l’interface de séparation, nous

développerons la méthode Nitsche qui est très puissante mathématiquement pour traiter les

conditions de saut sans pour autant perdre le côté physique du phénomène. Les courbures

d’interfaces sont très importantes et doivent être discrétisées avec une grande précision vu

leur rôle clé dans le traitement des écoulements diphasiques et leur distinction dans les

régimes, nous avons développé l’opérateur Laplace Beltrami pour traiter les termes de

courbures. Encore une difficulté supplémentaire qui est le fait que les interfaces sont très

variables et mobiles au cours du temps, pour cela un couplage de la méthode ¨Level-set¨ est

nécessaire, en introduisant des outils mathématiques supplémentaires.

II-Modélisation numérique

II-1-Nature de l’interface

Dans le cas d’étude des écoulements diphasiques, la nature de l’interface de séparation entre

les deux fluides peut être étudiée de deux manières différentes : soit avec une approche

interface de diffusion (Anderson et al 1998), soit une approche interface abrupte. (Sussman

et al 2007) Les deux approches sont différentes dans leurs considérations physiques et

mathématiques des interfaces entre les deux fluides non miscibles.

Approche interface de diffusion : Dans ce genre d’approche, l’interface est considérée comme

ayant une certaine épaisseur, où il existe un phénomène de diffusion qui est régi par des

équations.

On considère deux fluides non miscibles A et B avec différentes densités et viscosités

comme le montre la figure (4.1). Si on considère la fraction volumique, du fluide A par

rapport au volume total des deux fluides, dans la maille que traverse l’interface. On notera

ça C, avec 0 ≤ 𝐶 ≤ 1 .

Les densités locales : 𝜌�� = 𝐶𝜌𝑎 et : 𝜌�� = (1 − 𝐶)𝜌𝑏

La densité moyenne sera définie 𝜌 = (𝜌�� + 𝜌��) = 𝐶𝜌𝑎 + (1 − 𝐶)𝜌𝑏

L’équation de continuité entre les deux fluides s’écrit comme suit :

Page 76: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

62

𝜕 𝜌��𝜕𝑡

+ ∇. 𝒏𝑎 = 0 (4.1)

Ou 𝒏𝑎 = 𝜌��𝑼 et 𝑼 la vitesse du fluide.

Les mêmes équations sont valables pour le fluide B

𝜕 𝜌��𝜕𝑡

+ ∇. 𝒏𝑏 = 0 (4.2)

Figure 4.1 : Interface diffuse

Dans cette approche, l’interface possède une épaisseur négligeable 휀 à travers laquelle il y a

une transition du milieu A vers le milieu B.

Approche interface abrupte: Dans cette approche l’interface possède une épaisseur nulle, de

telle sorte qu’il y a un saut sur les propriétés physiques de part et d’autre de cette interface,

sans qu’il y ait transition (figure 4.2). Par exemple si on a deux volumes Ω1 et Ω2 séparés par

une interface abrupte, on a les propriétés suivantes

Figure 4.2: Interface abrupte

Page 77: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

63

𝜌 = {𝜌1 𝑠𝑖 𝑥 ∈ Ω1

𝜌2 𝑠𝑖 𝑥 ∈ Ω2 𝜇 = {

𝜇1 𝑠𝑖 𝑥 ∈ Ω1

𝜇2 𝑠𝑖 𝑥 ∈ Ω2 (4.3)

II-2-Choix du système de coordonnées

Lors de l’étude des écoulements diphasiques, l’interface est soumise à beaucoup de

distorsions, ces dernières pouvant s’avérer être très compliquées à gérer dans certains cas.

Par exemple, dans le cas de l’interpénétration des phases, la coalescence et la dissociation

des phases, où l’interface se déforme, se dissocie et se reconstitue. Ce processus est tellement

complexe qu’on doit choisir la description de notre système de coordonnées avec grande

précision de manière délicate de telle sorte à ne pas affecter les solutions.

Dans notre cas, nous avons le choix entre l’approche Lagrangienne ou Eulérienne. Chacune

des deux approches possède des avantages et inconvénients. Nous devons choisir la méthode

permettant de maximiser la précision des résultats.

Dans l’approche Eulérienne, il n’est pas nécessaire de remailler à chaque pas de temps au

cours de la simulation, chose qui nous permettra d’économiser sur le temps de calcul tout en

gardant un degré de précision très élevé, tout en évitant les erreurs de troncature dues au

processus de projection lors du remaillage. Le seul point négatif de cette méthode est la

présence du terme convectif non linéaire. Les opérateurs convectifs non linéaires dans les

équations de Navier Stokes sont non symétriques, ce qui induit au fait que la meilleure

propriété de l’approximation de la norme Galerkin FEM est perdue. Par conséquent, cela

conduit à des oscillations de la solution obtenue, qui augmentent plus que le processus

convectif est présent dans l’écoulement.

L’avantage de l’approche Lagrangienne est qu’on n’a pas ce genre d’oscillations dans la

solution, comme il n’y a pas de terme convectif. Par contre, le principal point négatif de

l’approche Lagrangienne dans le cas des écoulements diphasiques est le remaillage. Lors du

processus de remaillage, quand les interfaces évoluent et sont sujettes soit à de larges

Page 78: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

64

déformations, à des topologies assez compliquées ou à des interpénétrations de phases, alors

le processus de ¨mapping¨ dans le repère Lagrangien a une précision assez faible et peut

donner parfois des résultats erronés dénués de sens physique.

Notre choix dans l’étude numérique est donc d’adopter l’approche Eulérienne qui possède le

grand avantage de bien représenter les interfaces à topologies compliquées. Pour résoudre le

problème du terme convectif et de son impact sur la solution, nous allons utiliser des

méthodes de stabilisations pour la vitesse et la pression (SUPG) Streamline Upwind Petrov

Galerkin et (PSPG) Pressure-Stabilizing Petrov-Galerkin, tel que décrit dans la section

suivante.

II-3-Techniques de stabilisation pour le champ de vitesse et de pression SUPG/PSPG.

Lorsque le nombre de Reynolds augmente, la formulation Galerkin devient instable, ce qui

crée une instabilité pour générer le terme de diffusion à partir du tenseur visqueux. Par

conséquent, l’approximation numérique se détériore de manière dramatique. Pour corriger ce

problème, des projections des termes de convection et de gradient de pression sont construites

et incorporées sous une formulation de stabilisation dans notre méthode. La méthode de

stabilisation empêche les dissipations numériques excessives dues aux oscillations.

Huges et al. (1986) ont introduit un terme de stabilisation basé sur le gradient de pression

dans un terme de l’équation de conservation de la masse lors de la modélisation de l’équation

de Stokes. Ce terme ajoute une matrice de moindres carrés dans les degrés de liberté relatifs

à la pression (DOF’s) et éliminer les oscillations de pression.

Tezduyer et al. (1991) ont incorporé cette stabilisation dans l’équation de Navier-Stokes et

l’ont nommé comme algorithme de pression stabilisée PG (PSPG).

Quand on utilise les algorithmes de stabilisation SUPG/PSPG, le tenseur des contraintes

visqueuses ne peut pas être reproduit et modélisé de façon consistante si on approxime notre

espace avec des éléments linéaires.

Page 79: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

65

Pour obtenir les termes de stabilisation SUPG/PSPG, pour un problème de deux fluides

incompressibles instationnaires non miscibles, on considère la formulation des moindres

carrés/ Galerkin.

Les termes de stabilisation sont obtenus en minimisant la somme au carré des résidus de

l’équation de quantité de mouvement intégrée sur chaque élément du domaine.

Cette procédure nous conduit à un terme de moindres carrés, constitué avec des contributions

du phénomène d’advection, de pression et de tenseur de viscosité. Ce terme-là est ensuite

ajouté à la formulation Galerkin du problème.

Les contributions du terme d’advection nous donnent le terme de stabilisation SUPG et celles

de pression nous donnent le terme de stabilisation PSPG. On remarque que les deux termes

diffèrent l’un de l’autre. Ces termes sont pris en compte avec des facteurs de pondération

spécifiques.

Les algorithmes SUPG/PSPG sont basés sur des méthodes de projections discontinues.

Le résidu de l’équation de quantité de mouvement s’écrit comme suit :

𝑅𝑀 = 𝜌𝜕

𝜕𝑡(�� ) + 𝜌∇. (�� ) − 𝐹 + ∇𝑝 − 𝜇∆�� + [−𝛾κ�� + (∇Γ 𝛾 )]𝜹(�� − �� 𝒍(�� )) (4.4)

Le schéma Galerkin standard pondéré du résidu souffre d’un problème d’instabilité, quand

le terme de convection domine les autres termes dans l’équation de quantité de mouvement.

Pour résoudre ce genre de problème, on augmente la pondération en amont des supports

nodaux au long des lignes de courant que produit le schéma SUPG.

La formulation faible est alors écrite :

∑∫ (𝑵𝒖 + 𝝉𝑺𝑼𝑷𝑮𝒆 𝒖. 𝛁𝑵𝒖). 𝑹𝑴

𝜴𝒆𝒆𝒍

𝒅𝛀

𝒆

= 𝟎 (4.5)

Où 𝑵𝒖 représente les fonctions vectorielles de l’interpolation nodale pour la vitesse et 𝝉𝑺𝑼𝑷𝑮𝒆

est un facteur pour le terme de stabilisation.

La formulation faible améliorée s’écrit :

Page 80: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

66

∑∫ (𝑵𝒑𝛁. 𝐮 +𝟏

𝝆𝝉𝑺𝑼𝑷𝑮𝒆 𝛁𝑵𝒑. 𝑹𝑴)

𝜴𝒆𝒆𝒍

𝒅𝛀

𝒆

= 𝟎 (4.6)

Où 𝑵𝒑 représente l’interpolation nodale des fonctions vectorielles dans le cas de

l’enrichissement.

À partir de la formulation faible trouvée précédemment, qui est formulée comme suit :

Trouver 𝒖𝒊𝒉 ∈ 𝑺𝒖𝒊

𝒉 et 𝒑𝒉 ∈ 𝑺𝒑𝒉 de telle sorte que ∀𝒘𝒊

𝒉 ∈ 𝝑𝒖𝒊𝒉 et ∀𝒒𝒉 ∈ 𝝑𝒑

𝒉

∫ 𝒘𝒊𝒉𝝆𝒌 (

𝛛 𝒖𝒊𝒉

𝛛𝒕+ 𝒖𝒋

𝒉𝛛𝒖𝒊

𝒉

𝛛𝒙𝒋)

𝛀

𝒅𝛀 +∫ 𝝈𝒊𝒋𝛛𝒘𝒊

𝒉

𝛛𝒙𝒋𝒅𝛀 −∫ 𝒘𝒊

𝒉𝝈𝒊𝒋𝒏𝒋𝚪

𝒅𝚪𝛀

+∫ 𝒒𝒉𝛛𝒖𝒋

𝒉

𝛛𝒙𝒋

𝛀

𝒅𝛀

= ∫ 𝒘𝒊𝒉𝝆𝒌𝒈𝒊

𝛀

𝒅𝛀 +∫ 𝜸𝜿𝒘𝒊𝒉𝒏𝒊

𝜞∗𝒅𝚪 − ∫ 𝒘𝒊𝛁𝚪𝜸

𝜞∗𝒅𝚪 (4.7)

Avec 𝑘 = 1,2.

On obtient la formulation faible avec les termes de stabilisation, ce qui donne la formulation

faible SUPG/PSPG stabilisée qui s’énonce comme suit

Trouver 𝒖𝒊𝒉 ∈ 𝑺𝒖𝒊

𝒉 et 𝒑𝒉 ∈ 𝑺𝒑𝒉 de telle sorte que ∀𝒘𝒊

𝒉 ∈ 𝝑𝒖𝒊𝒉 et ∀𝒒𝒉 ∈ 𝝑𝒑

𝒉

Page 81: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

67

∫ 𝒘𝒊𝒉𝝆𝒌(

𝛛 𝒖𝒊𝒉

𝛛𝒕+ 𝒖𝒋

𝒉𝛛𝒖𝒊

𝒉

𝛛𝒙𝒋)

𝛀

𝒅𝛀 +∫ 𝝈𝒊𝒋𝛛𝒘𝒊

𝒉

𝛛𝒙𝒋𝒅𝛀 −∫ 𝒘𝒊

𝒉𝝈𝒊𝒋𝒏𝒋𝚪

𝒅𝚪𝛀

+∫ 𝒒𝒉𝛛𝒖𝒋

𝒉

𝛛𝒙𝒋

𝛀

𝒅𝛀

+∑∫ 𝝉𝒆 (𝒖𝒋𝒉𝛛 𝒘𝒊

𝒉

𝛛𝒙𝒋+𝟏

𝝆𝒌

𝛛𝒒𝒉

𝛛𝒙𝒊) . [𝝆𝒌 (

𝛛 𝒖𝒊𝒉

𝛛𝒕+ 𝒖𝒋

𝒉𝛛𝒖𝒊

𝒉

𝛛𝒙𝒋− 𝒈𝒊)

𝜴𝒆𝒆𝒍

𝒏𝒆𝒍

𝒆=𝟏

−𝛛𝝈𝒊𝒋

𝛛𝒙𝒋] 𝒅𝛀 = ∫ 𝒘𝒊

𝒉𝝆𝒌𝒈𝒊𝛀

𝒅𝛀 +∫ 𝜸𝜿𝒘𝒊𝒏𝒊 𝜞∗

𝒅𝚪 − ∫ 𝒘𝒊𝛁𝚪𝜸 𝜞∗

𝒅𝚪 (4.8)

Où les termes de stabilisation additionnels sont compris dans le signe de

sommation∑ 𝒆𝒍𝒆=𝟏 . 𝒏𝒆𝒍 est le nombre d’éléments et 𝝉𝒆 est définie par Shakib et al (1991)

comme suit :

𝝉𝒆 = [(𝟐

∆𝒕)𝟐

+ ( 𝟐|𝒖𝒂𝒗𝒈

𝒉 |

𝒉𝒆)

𝟐

+ (𝟒𝝊

𝒉𝒆𝟐)

𝟐

]

−𝟏 𝟐⁄

(𝟒. 𝟗)

Où |𝒖𝒂𝒗𝒈𝒉 | représente la norme de la vitesse moyenne calculée sur un élément, 𝝊 est la

viscosité cinématique qui représente aussi la moyenne des viscosités dans un élément quand

l’élément est traversé par l’interface. Pour sa part, 𝒉𝒆 représente la dimension de la maille de

calcul, elle est définie

𝒉𝒆 = √𝟐𝑨𝒆𝒆𝒍

𝒉𝒅𝒊𝒂𝒈 (𝟒. 𝟏𝟎)

Ou 𝑨𝒆𝒆𝒍 est la surface de l’élément et 𝒉𝒅𝒊𝒂𝒈 est la distance diagonale la plus grande entre

deux nœuds.

Page 82: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

68

II-4-Discrétisation temporelle des équations de Navier Stokes dans le cas des

écoulements diphasiques

Lors de l’étude numérique spatio-temporelle des équations de Navier-Stokes, dans le

processus de discrétisation, on discrétise l’espace puis le temps à l’aide de la méthode de

semi-discrétisation.

Dans la méthode des éléments finis étendus (XFEM), les fonctions de formes dépendent du

temps contrairement à la méthode des éléments finis classique (FEM) ou les fonctions de

formes sont indépendantes du temps. C’est pour cette raison que dans la méthode des

éléments finis FEM on discrétise l’espace avant le temps, par contre dans la méthode XFEM

on discrétise d’abord le temps ensuite l’espace (Fries, T. P., & Zilian, A. (2009)).

II-4-a-Discrétisation temporelle

La méthode trapézoïdale, aussi appelée méthode de Crank-Nicolson (1947), est utilisée pour

traiter les pas de temps. La méthode trapézoïdale est une méthode de la famille des méthodes

dites thêta 𝜃 , avec 𝜃 = 1/2. Cette méthode possède une précision du deuxième ordre avec

un schéma semi-implicite et est inconditionnellement stable (Bell et al 1989).

À partir de l’équation de Navier-Stokes diphasique, modèle à un fluide, écrite sous la

forme suivante:

𝜌𝑘 (𝜕 𝑢𝑖𝜕𝑡+ 𝑢𝑗

𝜕 𝑢𝑖𝜕𝑥𝑗) −

𝜕𝜎𝑖𝑗

𝜕𝑥𝑗= 𝑓𝑘,𝑖 (4.11)

𝜕𝑢𝑗

𝜕𝑥𝑗= 0 (4.12)

∫ 𝑤𝑖𝜕𝜎𝑖𝑗

𝜕𝑥𝑗𝛺

𝑑Ω = −∫ 𝜎𝑖𝑗∂𝑤𝑖∂𝑥𝑗

𝑑Ω −∫ 𝑤𝑖Γ

𝑓𝑘,𝑖𝑛+1𝑑𝛺

Ω

(4.13)

La méthode de discrétisation trapézoïdale (Crank-Nicholson) est exprimée comme suit :

Page 83: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

69

𝑢𝑖𝑛+1 − 𝑢𝑖

𝑛

∆𝑡= 𝜃𝐺𝑖

𝑛+1 + (1 − 𝜃)𝐺𝑖𝑛 𝑎𝑣𝑒𝑐 𝜃 =

1

2 (4.14)

Où n+1 décrit le pas de temps actuel et n décrit le pas de temps précédent. La transcription i

fait référence à une composante d’un champ de variable. Par exemple 𝐺𝑖𝑛+1 fait référence à

la i -ème composante de la dérivée temporelle au pas de temps actuel.

En appliquant la loi trapézoïdale à l’équation de Navier et Stokes écrite sous la forme

précédente, on obtient :

𝐺𝑖 = −1

𝜌𝑘[𝜌𝑘𝑢𝑗

𝜕 𝑢𝑖𝜕𝑥𝑗

−𝜕𝜎𝑖𝑗

𝜕𝑥𝑗− 𝑓𝑘,𝑖 ] (4.15)

Donc la discrétisation temporelle de l’équation de Navier-Stokes devient

𝜌𝑘𝑢𝑖𝒏+𝟏 − 𝑢𝑖

𝒏

∆𝑡+ 𝜃 [𝜌𝑘𝑢𝑗

𝜕 𝑢𝑖𝜕𝑥𝑗

−𝜕𝜎𝑖𝑗

𝜕𝑥𝑗− 𝑓𝑘,𝑖 ]

𝒏+𝟏

− (1 − 𝜃)𝜌𝑘𝐺𝑖𝒏 = 0 (4.16)

En réarrangeant les termes, on obtient :

𝜌𝑘𝑢𝑖𝒏+𝟏 + 𝜃∆𝑡 [𝜌𝑘𝑢𝑗

𝜕 𝑢𝑖𝜕𝑥𝑗

−𝜕𝜎𝑖𝑗

𝜕𝑥𝑗− 𝑓𝑘,𝑖 ]

𝒏+𝟏

= 𝜌𝑘𝑢𝑖𝒏 + (1 − 𝜃)𝜌𝑘∆𝑡𝐺𝑖

𝒏

1

𝜃∆𝑡𝜌𝑘𝑢𝑖

𝒏+𝟏 + [𝜌𝑘𝑢𝑗𝜕 𝑢𝑖𝜕𝑥𝑗

−𝜕𝜎𝑖𝑗

𝜕𝑥𝑗− 𝑓𝑘,𝑖 ]

𝒏+𝟏

=1

𝜃∆𝑡𝜌𝑘𝑢𝑖

𝒏 +(1 − 𝜃)

𝜃𝜌𝑘𝐺𝑖

𝒏 (4.17)

Qu’on couplera avec l’équation de continuité

𝜕𝑢𝑗𝑛+1

𝜕𝑥𝑗= 0 (4.18)

Page 84: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

70

II-4-b-Discrétisation spatiale

Après avoir discrétisé notre équation temporellement, nous allons procéder à la discrétisation

spatiale. Pour cela nous devons écrire notre équation (4.11) sous la forme faible et cela en

multipliant par une fonction test 𝑤 et en intégrant sur le domaine Ω . On obtient alors :

1

𝜃∆𝑡∫ 𝑤𝑖𝜌𝑘𝑢𝑖

𝑛+1𝑑Ω +∫ 𝑤𝑖𝜌𝑘𝑢𝑗𝑛+1

𝛺

∂𝑢𝑖𝑛+1

∂𝑥𝑗

Ω

𝑑Ω −∫ 𝑤𝑖𝜎𝑖𝑗𝑛+1

∂𝑥𝑗𝑑Ω −∫ 𝑤𝑖

𝛺

𝑓𝑘,𝑖𝑛+1𝑑𝛺

Ω

=1

𝜃∆𝑡∫ 𝑤𝑖Ω

(𝜌𝑘𝑢𝑖𝑛 + (1 − 𝜃)𝜌𝑘∆𝑡𝐺𝑖

𝑛)𝑑Ω (4.19)

On remarque très bien que le terme ∫ 𝒘𝒊𝝏𝝈𝒊𝒋𝒏+𝟏

𝝏𝒙𝒋𝒅𝜴

𝜴 contient le terme de tension interfaciale,

qu’on doit expliciter pour discrétiser

∫ 𝑤𝑖𝜕𝜎𝑖𝑗

𝑛+1

∂𝑥𝑗𝑑Ω = ∫ 𝑤𝑖

𝛤ℎ𝑛+1

𝜎𝑖𝑗𝑛𝑗𝑑𝛤𝛺

+∫ 𝛾𝜅𝑤𝑖𝑛��𝛤𝑑𝑛+1

𝑑𝛤 + ∫ 𝑤𝑖∇Γ𝛾 𝛤𝑑𝑛+1

𝑑Γ

− ∫ 𝜎𝑖𝑗𝑛+1 𝜕𝑤𝑖

𝜕𝑥𝑗𝛺

𝑑Ω (4.20)

Où 𝛤𝑑 représente l’interface de séparation entre les deux fluides et 𝛤ℎ l’interface des parois

externes figure (4.3). On remarque que les termes d’intégrales surfaciques sont au pas de

temps actuel.

Dans notre étude, la position de l’interface est connue seulement au pas de temps précédent

quand on résout les équations de Navier-Stokes au pas de temps actuel. Donc, le terme de

tension superficielle est traité de manière explicite soit en prenant 𝜃 = 0. Impérativement

nous devons alors considérer la limite de pas de temps capillaire (Hysing 2005), dont on

discutera plus tard.

En couplant les deux équations précédentes, on obtient une équation discrétisée complète

avec les termes de tension superficielle bien explicités

Page 85: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

71

Figure (4.3) : Configuration entre deux fluides non miscibles

1

𝜃∆𝑡∫ 𝑤𝑖𝜌𝑘𝑢𝑖

𝑛+1𝑑Ω + ∫ 𝑤𝑖𝜌𝑘𝑢𝑗𝑛+1

𝛺

∂𝑢𝑖𝑛+1

∂𝑥𝑗

Ω

𝑑Ω −∫ 𝑤𝑖𝛤ℎ𝑛+1

𝜎𝑖𝑗𝑛𝑗𝑑𝛤 − ∫ 𝛾𝜅𝑤𝑖𝑛��𝛤𝑑𝑛+1

𝑑𝛤

− ∫ 𝑤𝑖∇Γ𝛾 𝛤𝑑𝑛+1

𝑑Γ + ∫ 𝜎𝑖𝑗𝑛+1 𝜕𝑤𝑖

𝜕𝑥𝑗𝛺

𝑑Ω −∫ 𝑤𝑖𝛺

𝑓𝑘,𝑖𝑛+1𝑑𝛺

=1

𝜃∆𝑡∫ 𝑤𝑖Ω

(𝜌𝑘𝑢𝑖𝑛 + (1 − 𝜃)𝜌𝑘∆𝑡𝐺𝑖

𝑛)𝑑Ω (4.21)

Cette équation représente la formulation faible complète de l’équation de Navier-Stokes. La

forme faible de l’équation de continuité est obtenue comme suit :

∫ 𝑞𝜕𝑢𝑗

𝑛+1

𝜕𝑥𝑗= 0

Ω

(4.22)

Avec q étant la fonction de pondération pour la pression.

Pour simplifier la notation dans l’équation suivante, les termes sont au pas de temps n+1,

sauf indication contraire. En introduisant les méthodes de stabilisation pour la vitesse et la

pression SUPG/PSPG, la formulation faible précédente s’exprime :

Trouver 𝒖𝒊𝒉 ∈ 𝑺𝒖𝒊

𝒉 et 𝒑𝒉 ∈ 𝑺𝒑𝒉 de telle sorte que ∀𝒘𝒊

𝒉 ∈ 𝝑𝒖𝒊𝒉 et ∀𝒒𝒉 ∈ 𝝑𝒑

𝒉

Ω Γℎ

Ω1

Ω2

Page 86: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

72

1

𝜃∆𝑡∫ 𝒘𝒊

𝒉𝝆𝒌𝒖𝒊𝒉

𝛀

𝒅𝛀 +∫ 𝒘𝒊𝒉𝝆𝒌𝒖𝒋

𝒉𝛛𝒖𝒊

𝒉

𝛛𝒙𝒋𝒅𝛀

𝛀

−∫ 𝒘𝒊𝒉𝝈𝒊𝒋𝒏𝒋𝒅𝛀

𝛀

+∫ 𝒒𝒉𝝏𝒖𝒋

𝒉

𝝏𝒙𝒋𝒅𝛀

Ω

+∑∫ 𝝉𝒆 (𝒖𝒋𝒉𝛛 𝒘𝒊

𝒉

𝛛𝒙𝒋+𝟏

𝝆𝒌

𝛛𝒒𝒉

𝛛𝒙𝒊) . [

𝟏

𝜽∆𝒕𝝆𝒌𝒖𝒊

𝒉 + 𝝆𝒌𝒖𝒋𝒉𝛛𝒖𝒊

𝒉

𝛛𝒙𝒋− 𝒇𝒌,𝒊

𝒉

𝜴𝒆𝒆𝒍

𝒏𝒆𝒍

𝒆=𝟏

−𝛛𝝈𝒊𝒋

𝒉

𝛛𝒙𝒋−𝟏

𝜽∆𝒕(𝝆𝒌𝒖𝒊

𝒏 + (𝟏 − 𝜽)𝝆𝒌∆𝒕𝑮𝒊𝒏)]𝒅𝛀 +∫ 𝝈𝒊𝒋

𝒉𝛛𝒘𝒊

𝒉

𝛛𝒙𝒋𝒅𝛀

𝛀

−∫ 𝒘𝒊𝒉𝒇𝒌,𝒊

𝒉𝒅𝛀 𝛀

=𝟏

𝜽∆𝒕∫ 𝒘𝒊

𝒉

𝛀

(𝝆𝒌𝒖𝒊𝒏 + (𝟏 − 𝜽)𝝆𝒌∆𝒕𝑮𝒊

𝒏)𝒅𝛀 (4.23)

Avec comme condition initiale 𝑢𝑖ℎ(𝑥, 0) = 0 , le terme de stabilisation avec le signe de

sommation ∑𝒏𝒆𝒍𝒆=𝟏 représente le résidu de l’équation discrétisée par rapport au temps

III-Opérateur Laplace Beltrami

L’évaluation de la courbure des interfaces demande des fonctions Level-set¨ très lisses, c’est

pour cette raison qu’on utilisera l’opérateur Laplace Beltrami. L’approximation de la

courbure sera basée sur l’opérateur Laplace- Beltrami (Bobenko, 2007), qui est une

généralisation de l’opérateur Laplacien aux variétés riemanniennes.

Le terme de courbure intervient dans le terme de la force de tension superficielle dans

l’expression de l’équation de Navier-Stokes.

On définit d’abord l’opérateur identité comme suit :

IdΓ: Γ → ℝ3

IdΓ(𝑥) = (𝑥1, 𝑥2, 𝑥3)𝑇

∇(IdΓ)𝑗 = 𝑒𝑗 1 ≤ 𝐽 ≤ 3

∇Γ(IdΓ)𝑗 = 𝑷𝑒𝑗 (4.24)

Page 87: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

73

𝛁𝚪 Étant le gradient surfacique au niveau de l’interface et 𝑷 l’opérateur de projection.

On a le résultat suivant, prouvé en annexe A :

divΓ[∇Γ(IdΓ)𝑗] = divΓ[𝑷𝑒𝑗 ] (4.25)

On sait que par définition :

𝑷 = (Ι − �� ⨂�� )

Donc

𝑷𝑒𝑗 = (Ι − �� ⨂�� ). 𝑒𝑗

= 𝑒𝑗 − �� ⨂�� . 𝑒𝑗

Donc finalement

divΓ[𝑷𝑒𝑗 ] = divΓ(𝑒𝑗 ) − divΓ[�� ⨂�� . 𝑒𝑗 ]

= −divΓ[�� ⨂�� . 𝑒𝑗 ] (4.26)

divΓ(𝑒𝑗 ) = 0

On sait que pour tous vecteurs 𝑎 , �� , 𝑐 . On a la relation suivante (prouvée en annexe) :

(𝑎 ⨂�� ). 𝑐 = 𝑎 (�� . 𝑐 )

Donc

�� ⨂�� . 𝑒𝑗 = �� (�� . 𝑒𝑗 )

(�� . 𝑒𝑗 ) = 𝑛𝑗 Projection de �� sur 𝑒𝑗

En remplaçant, on trouve

divΓ[𝑷𝑒𝑗 ] = −divΓ[�� . 𝑛𝑗] (4.27)

En appliquant, la propriété suivante prouvée en annexe A :

divΓ[Φ(𝑥)�� (𝑥)] = Φ(𝑥)divΓ[�� (𝑥)]

Page 88: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

74

Donc l’équation précédente, devient

divΓ[𝑷𝑒𝑗 ] = −𝑛𝑗divΓ[�� ]

divΓ[∇Γ(IdΓ)𝑗] = divΓ[𝑷𝑒𝑗 ]

= −𝑛𝑗divΓ[�� ] = −𝑛𝑗𝜅 (4.28)

On sait que :

divΓ[∇Γ] = ∆Γ

divΓ[∇Γ(IdΓ)𝑗] = ∆Γ(IdΓ)𝑗 (4.29)

III-1-Cas où le coefficient de tension superficielle est constant

Dans le cas où 𝛾 est constant, l’expression de la force de tension superficielle est de la forme

suivante

𝐹 = 𝛾𝜅�� (4.30)

Dans la formulation faible des équations de Navier–Stokes, le terme relatif à la force de

tension superficielle est multiplié par la fonction test de l’espace des éléments finis 𝑣 et

intégré sur le domaine.

En multipliant par la fonction test et en intégrant sur le domaine Γ on aura :

∫ 𝐹 . 𝑣 Γ

𝑑𝑠 = ∫ 𝛾𝜅 𝑛 . 𝑣 Γ

𝑑𝑠

= −∫ 𝛾∆ΓIdΓ(𝑥). 𝑣 Γ

𝑑𝑠 (4.31)

Pour toute surface fermée Γ et pour toute fonction vectorielle𝑓 définit dans Γ on a :

Page 89: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

75

∫ ∇ Γ. 𝑓 Γ

𝑑𝑠 = ∫ 𝜅𝑓 . �� Γ

𝑑𝑠 + ∮ 𝑓 . 𝑡 𝜕Γ

𝑑(𝜕𝐴) (4.32)

Si Γ est une surface ouverte alors la relation se réduit à :

∫ ∇ Γ. 𝑓 Γ

𝑑𝑠 = ∫ 𝜅𝑓 . �� Γ

𝑑𝑠 (4.33)

Si on remplace 𝑓 = ℎ(∇ Γ)𝑔 on aura :

∫ ∇ Γ. (ℎ(∇ Γ)𝑔) Γ

𝑑𝑠 = ∫ 𝜅(ℎ(∇ Γ)𝑔). �� Γ

𝑑𝑠 (4.34)

∫ [(∇ Γ)𝑖ℎ(∇ Γ)𝑖𝑔 + ℎ(∇ Γ)𝑖2𝑔]

Γ

𝑑𝑠 = ∫ 𝜅 ℎ(∇ Γ)𝑖𝑔 𝑛𝑖Γ

𝑑𝑠

∑(∇ Γ)𝑖𝑔 𝑛𝑖

3

𝑖=1

= 𝑛𝑇𝑷∇ Γ𝑔

= 𝑛𝑇(Ι − 𝑛 ⨂𝑛)∇ 𝑔

= 0

Donc l’équation précédente se réduit à :

∫ ∇ Γℎ. ∇ Γ𝑔𝑑𝑠Γ

= −∫ ℎ∇ Γ2𝑔

Γ

𝑑𝑠 = −∫ ℎ ∆Γ𝑔Γ

𝑑𝑠 (4.35)

Dans le cas de deux fonctions vectorielles, on aura :

∫ ∇ Γℎ . ∇ Γ𝑔 𝑑𝑠Γ

= −∫ ℎ . ∆Γ𝑔 Γ

𝑑𝑠 (4.36)

En appliquant, le dernier résultat (4.36) à (4.31) :

Page 90: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

76

∆ΓIdΓ(𝑥) = 𝜅��

−∫ 𝛾Γ

∆ΓIdΓ(𝑥). 𝑣 𝑑𝑠 = ∫ 𝛾∇ Γ𝑣 . ∇ ΓIdΓ(𝑥) 𝑑𝑠Γ

= 𝑓Γ(𝑣 )

Donc finalement on a l’égalité suivante

𝑓Γ(𝑣 ) = ∫ 𝛾𝜅 𝑛 . 𝑣 Γ

𝑑𝑠 = −∫ 𝛾Γ

(∆ΓIdΓ). 𝑣 𝑑𝑠

= ∫ 𝛾∇ Γ𝑣 . ∇ ΓIdΓ 𝑑𝑠Γ

(4.37)

Cette égalité nous permet d’exprimer la courbure 𝜅 soit en fonction de l’opérateur Laplace-

Beltrami de l’identité relatif à l’interface Γ, soit du produit scalaire du gradient surfacique de

l’identité et du gradient surfacique de la fonction teste.

III-2-Cas où le coefficient de tension superficielle est variable

Le coefficient de tension superficielle 𝛾 n’est pas constant, donc il y aura un terme

supplémentaire dû à l’effet Marangoni.

Donc la force de tension superficielle sous la formulation faible dans ce cas-là est exprimée

de la manière suivante :

𝑓Γ(𝑣 ) = ∫ (𝛾𝜅 𝑛 − ∇ Γ𝛾). 𝑣 Γ

𝑑𝑠

= ∫ (𝛾(−∆ΓIdΓ) − ∇ Γ𝛾). 𝑣 Γ

𝑑𝑠

= ∫ −(∆ΓIdΓ). (𝛾𝑣 )Γ

𝑑𝑠 − ∫ ∇ Γ𝛾.Γ

𝑣 𝑑𝑠 (4.38)

Page 91: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

77

Mais on sait que :

−∫ ∆Γ(𝑔)Γ

. (𝛾ℎ)𝑑𝑠 = ∫ ∇ Γ(𝛾ℎ). ∇ Γ𝑔 𝑑𝑠Γ

Donc

∫ −(∆ΓIdΓ). (𝛾𝑣 )Γ

𝑑𝑠 = ∫ ∇ Γ(𝛾𝑣 )Γ

. ∇ Γ(IdΓ)𝑑𝑠

Donc

𝑓Γ(𝑣 ) = ∫ ∇ Γ(𝛾𝑣 )Γ

. ∇ Γ(IdΓ)𝑑𝑠 − ∫ (∇ ΓΓ

𝛾). 𝑣 𝑑𝑠 (4.39)

Sachant que

∇ (𝛾𝑣 ) = ∇ 𝛾. 𝑣 + 𝛾∇ 𝑣

Donc

𝑓Γ(𝑣 ) = ∫ [(∇ 𝛾. 𝑣 + 𝛾∇ 𝑣 )Γ

. ∇ Γ(IdΓ)]𝑑𝑠 − ∫ ∇ ΓΓ

𝛾. 𝑣 𝑑𝑠

𝑓Γ(𝑣 ) = ∫ [(∇ 𝛾. 𝑣 ). ∇ Γ(IdΓ) + (𝛾∇ 𝑣 )Γ

. ∇ Γ(IdΓ)]𝑑𝑠 − ∫ ∇ ΓΓ

𝛾. 𝑣 𝑑𝑠 (4.40)

𝑓Γ(𝑣 ) =∑(∫ [(∇ 𝛾. 𝑣 ) . ∇ Γ(IdΓ)𝑖 + (𝛾∇ 𝑣 )𝑖. ∇ Γ(IdΓ)𝑖Γ

]𝑑𝑠) − ∫ ∇ ΓΓ

𝛾. 𝑣 𝑑𝑠

3

𝑖=1

(4.41)

Page 92: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

78

IV- Méthode Nitsche

IV-1-Introduction

Initialement, la méthode Nitsche a été développée pour traiter les conditions aux limites de

type Dirichlet (Nitsche. J 1971) pour les exprimer sous la formulation faible dans le contexte

de la méthode des éléments finis FEM. Cette méthode est très efficace à cet effet, ajouté à

cela le fait qu’elle préserve le taux de convergence et donne plus de précision que les

approches classiques. Après avoir atteint une certaine maturité et avoir prouvé sa robustesse

surtout dans le domaine de recherche des interactions fluide/structure (FSI) (Hansbo et al

2004); (Burman, et al 2007), la méthode Nitsche a été développée dans le contexte des

écoulements diphasiques pour décrire les conditions de saut au niveau de l’interface de

séparation entre deux fluides non miscibles.

Dans cette section, nous allons présenter la méthode Nitsche à travers des exemples, en

premier lieu pour le cas des conditions aux limites de type Dirichlet, ensuite dans le cas de

discontinuités (sauts) au niveau de l’interface de séparation.

IV-2-Nitsche pour le traitement des conditions aux limites de type Dirichlet

La méthode Nitsche a été introduite par Nitsche (1971) dans le but de capturer les conditions

aux limites de type Dirichlet dans la méthode des éléments finis classiques et l’exprimer sous

une forme faible particulière. La méthode Nitsche est un cas particulier de la méthode du

multiplicateur de Lagrange (Everett III, (1963)).

L’idée de base derrière la formulation Nitsche est le remplacement des multiplicateurs de

Lagrange par leur représentation physique, ajouté à cela des termes de pénalité pour restaurer

la coercivité de la forme bilinéaire.

On définira la méthode Nitsche à travers des exemples. L’équation de Poisson et l’équation

de Navier-Stokes seront traitées dans cette section. Pour sa part l’équation de Stokes est

Page 93: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

79

traitée à l’annexe (B). Le traitement de l’équation de Stokes servira de transition entre le cas

le plus simple qui est l’équation de Poisson et le cas le plus compliqué qui est l’équation de

Navier Stokes, cela permettra au fur et à mesure de connaitre les termes Nitsche

supplémentaires qui s’ajoutent.

IV-2-a-Équation de Poisson

Soit l’équation de Poisson pour une variable 𝑢, comme suit :

{−∆𝑢 = 𝑓 𝑖𝑛 Ω𝑢 = 𝑢0 𝑜𝑛 𝜕Ω

(4.42)

Où Ω est un domaine fermé, f une fonction donnée, 𝑢0 la valeur de u aux bords du domaine

Ω .

L’espace des fonctions tests �� est défini comme suit:

�� = {𝑣 ∈ 𝐻1( Ω): 𝑣 = 0 𝑜𝑛 𝜕Ω}

L’espace des fonctions d’essais est défini:

𝑉ℎ = {𝑣 ∈ 𝐻1( Ω): 𝑣 = 𝑢0 𝑜𝑛 𝜕Ω}

La formulation faible classique de l’équation de Poisson avec des conditions aux limites

imposées de type Dirichlet est définie de telle sorte qu’il faille trouver 𝑢ℎ ∈ 𝑉ℎ , soit:

( ∇(𝑢), ∇(𝑣))Ω= (𝑓, 𝑣)Ω ∀ 𝑣 ∈ 𝑉ℎ (4.43)

La formulation Nitsche pour l’équation de Poisson est définie: Trouvée 𝑢ℎ ∈ 𝑉ℎ ⊂ 𝐻1( Ω)

de telle sorte que :

𝑎(𝑢ℎ, 𝑣) = 𝐿(𝑣) ∀ 𝑣 ∈ 𝑉ℎ (4.44)

La formulation Nitsche classique du problème s’écrit :

Page 94: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

80

{

𝑎ℎ(𝑢, 𝑣) = ( ∇(𝑢), ∇(𝑣))Ω −<

(∇𝑢). �� , 𝑣 >∂Ω

−< 𝑢, (∇𝑣). �� >∂Ω+ 𝜆∂Ω < 𝑢, 𝑣 >∂Ω𝐿ℎ(𝑣) = (𝑓, 𝑣)Ω − < 𝑢0, (∇𝑣). �� >∂Ω + 𝜆∂Ω

< 𝑢0, 𝑣 >∂Ω

(4.45)

La méthode est consistante et a une estimation de l’erreur optimale de la norme ‖𝑣‖1,ℎ2 =

‖𝑣‖12 +< 𝑣, 𝑣 >1,ℎ,∂Ω

La formulation asymétrique s’écrit :

{

𝑎ℎ(𝑢, 𝑣) = ( ∇(𝑢), ∇(𝑣))Ω −<(∇𝑢). �� , 𝑣 >∂Ω

+< 𝑢, (∇𝑣). �� >∂Ω+ 𝜆∂Ω < 𝑢, 𝑣 >∂Ω𝐿ℎ(𝑣) = (𝑓, 𝑣)Ω + < 𝑢0, (∇𝑣). �� >∂Ω + 𝜆∂Ω < 𝑢0, 𝑣 >∂Ω

(4.46)

Où 𝜆∂Ω > 0 et constant, qu’on appelle paramètre de stabilisation. Dans notre exemple, on

prendra 𝜆∂Ω = 2 où �� est le vecteur unitaire normal sortant aux contours ∂Ω du domaine.

Pour tester la validité de cette méthode, prenons par exemple un domaine Ω en 2D Ω ⊂ ℝ2

délimité par ∂Ω. �� le vecteur normal sortant a ∂Ω.

Dans cet exemple, nous considérons un domaine unitaire carré [0,1] Χ [0,1] avec un nombre

de cellules N×N. Nous allons prendre le nombre de cellules N variable dans chaque cas teste.

Ensuite, nous allons comparer chaque résultat obtenu via la méthode Nitsche avec la solution

analytique exacte et calculer l’erreur quadratique 𝐿2. La formulation faible FEM est couplée

avec la formulation Nitsche.

On prendra comme solution exacte du problème de Poisson 2D dans l’espace cartésien (x,y)

la solution suivante :

𝑢𝑒𝑥𝑎𝑐𝑡 = 𝑥𝑦 + sin(Π 𝑥) × sin(Π 𝑦)

𝑓 = 2Π2 × sin(Π 𝑥) × sin(Π 𝑦) (4.47)

On définit l’erreur 𝑒 = 𝑢ℎ − 𝑢

On définit aussi le taux =ln(

𝑒

𝑒_)

ln (ℎ

ℎ_)

ℎ_ = 𝑁𝑋ℎ

Page 95: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

81

Avec ℎ_ = ℎ𝑖−1 si ℎ = ℎ𝑖

𝑒_ = 𝑒𝑖−1 si 𝑒 = 𝑒𝑖

En testant pour différents nombres de cellules N=8, 16, 32, 64, 128. Dans chaque cas nous

aurons h, l’erreur e et la représentation 2D de la solution 𝑢ℎ .Après des tests numériques,

nous obtenons les tableaux suivants :

Tableau 4.1 : Valeur de h, l’erreur et le taux pour différentes valeurs du nombre de cellules

N

La solution 𝑢ℎ pour différentes valeurs de N est donnée dans le tableau suivant :

Nombre de cellules h Erreur Taux

N=8 1.768E-01 2.672E-02 1.51

N=16 8.839E-02 7.535E-03 1.67

N=32 4.419E-02 1.970E-03 1.76

N=64 2.210E-02 5.025E-04 1.81

N=128 1.105E-02 1.269E-04 1.84

Page 96: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

82

Nombre de

cellules Solution 𝑢ℎ

N=8

N=16

N=32

N=64

N=128

Tableau 4.2 : Solution 𝑢ℎ pour différentes valeurs de N

Page 97: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

83

On tracera la figure (4.4) qui représente la variation de log(e) et de log(h) en fonction de N,

on voit très bien que les deux courbes décroissent en augmentant le nombre de cellules N.

La figure 4.4 : Variation de log(e) et de log(h) en fonction du nombre de mailles N

Figure 4.5 : Variation de log(e) en fonction de log(h)

La figure (4.5) représente la convergence du maillage, qui définit l’ordre de convergence de

la méthode numérique (l’ordre est le saut dans la courbure du maillage), comme on peut le

voir les termes ajoutés de la méthode Nitsche ne dégradent pas l’ordre de convergence de la

méthode.

-1,7327

-2,4259

-3,1192

-3,8121

-4,5053-5

-4

-3

-2

-1

0

-3,6223 -4,881 -6,2297 -7,5959 -8,9721

Log(

e)

Log(h)

Page 98: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

84

Figure 4.6 : Variation de log(h) en fonction de log(e) pour différentes valeurs de 𝜆∂Ω

La figure (4.6) représente la variation de log(h) en fonction de log(e) pour différentes valeurs

du paramètre de stabilisation 𝜆∂Ω .Comme on peut le voir les courbes ont plus au moins la

même allure avec des valeurs différentes de 𝜆∂Ω.

IV-2-b-Équation de Navier Stokes

L’objectif de cette section est de définir les termes Nitsche dans le cas des équations de

Navier-Stokes. On considère un domaine 2D Ω ⊂ ℝ2, avec une paroi extérieure 𝜕Ω. Les

conditions aux limites au niveau des parois sont de type Dircichlet.

La variation de la vitesse 𝑢(𝑥) et de la pression 𝑝(𝑥) est gouvernée par les équations de

Navier Stokes isothermes et incompressibles.

L’équation de Navier Stokes et la conservation de la masse pour un fluide incompressible

isotherme est :

{𝜌𝑢. ∇(𝑢) − ∇. 𝜎 = 𝐹 𝑖𝑛 Ω ∇. 𝑢 = 0 𝑖𝑛 Ω

(4.48)

Avec 𝜎(�� , 𝑝) , étant le tenseur de contrainte définie comme :

𝜎(�� , 𝑝) = −𝑝𝐼 + 2𝜇𝐷(�� ) (4.49)

-10

-8

-6

-4

-2

0

-1,7327 -2,4259 -3,1192 -3,8121 -4,5053

log(

h)

log(e)

λ_∂Ω=2

λ_∂Ω=3

λ_∂Ω=4

λ_∂Ω=20

Page 99: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

85

Comme conditions aux limites du problème, nous allons prendre une pression à l’entrée égale

à 𝑝𝑖𝑛 = 1000 𝑃𝑎 et une vitesse �� 𝑖𝑛 = (sin(𝜋𝑦) , 0). 𝐹 la force externe volumétrique qui

agit à l’intérieur du fluide est elle est prise égale à l’unité ‖𝐹 ‖ = 1. La densité est égale à

𝜌 = 1000𝑘𝑔/𝑚3 et la viscosité dynamique 𝜇 = 1 𝑃𝑎. 𝑠.

Notre domaine est rectangulaire avec un maillage quadratique, avec une longueur de 10 cm

et une hauteur de 2 cm. Ω = [0,10] × [0,2]. Le nombre de cellules total est de 2500.

Dans cette section, nous allons prendre le cas où il existe un glissement du fluide sur les

parois (¨free slip¨) ensuite le cas où il n’y a pas de glissement du fluide sur les parois (no

slip), pour l’équation de Navier-Stokes stationnaire pour un fluide incompressible en utilisant

la formulation Nitsche pour décrire les conditions de Dirichlet.

Cas d’existence de glissement au niveau des parois (¨free slip case¨)

Ce cas-là correspond aux conditions 𝑢 . �� = 0 et 𝑢 . 𝑡 ≠ 0 sur les parois, la composante normale

des vitesses est nulle tandis ce que la composante tangentielle ne l’est pas. La formulation

Nitsche des conditions de Dirichlet pour l’équation de Navier-Stokes dans le cas d’existence

de glissement pour la partie volumique s’écrit :

{

𝑎(𝑢, 𝑣) = ( ∇(𝑢). 𝑢, 𝑣)Ω − ( p, ∇. (v))Ω − ( q, ∇.(u))

Ω

+(2𝜇𝐷(𝑢),𝐷(𝑣))Ω𝐿 = (𝑓, 𝑣)Ω

(4.50)

Pour les termes Nitsche relatifs aux conditions aux limites de type Dirichlet dans le cas

d’existence de glissement, le tableau suivant donne les termes Nitsche au niveau des

conditions aux frontières (Entrée, sortie, paroi) (¨Inlet¨, ¨Outlet¨, ¨wall¨)

Page 100: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

86

Inlet

Termes

ajoutés à

a(u,v)

inlet inlet

2 . , ,2 .D u n v u D v n

inlet inlet

, . , , , .u p n v u v q n

1 ,inlet

u vh

Termes

ajoutés à

L(v)

−< uinlet, σ(v, q). n >inlet+ (β1μ

h)

< uinlet, v >inlet

Outlet

Termes

ajoutés à

a(u,v)

outlet outlet

, . , , , .u p n v u v q n

1 ,outlet

u vh

Termes

ajoutés à

L(v)

−< 𝑝𝑖𝑜 . 𝑛, 𝑣 >outlet

Wall

Termes

ajoutés à

a(u,v)

wall wall

, . , . . , , .u p n v n u n v q n

1 . , .

wallu n v n

h

Termes

ajoutés à

L(v)

−< 𝑢𝑤𝑎𝑙𝑙 , 𝜎(𝑣, 𝑞). 𝑛 >wall

+ (𝛽1𝜇

ℎ) < 𝑢𝑤𝑎𝑙𝑙 , 𝑣 >𝑤𝑎𝑙𝑙

Tableau (4.3) : Termes Nistche ajoutés à la forme linéaire et bilinéaire de l’équation de

Navier-Stokes dans le cas d’existence de glissement

Après implémentation de ces équations avec les conditions aux limites spécifiées, nous

obtenons les résultats suivants

Page 101: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

87

(a) (b)

Figure 4.7 :(a) Représentation de la vitesse au milieu du domaine, (b) Évolution de la

pression dans le domaine

Comme on peut le remarquer dans la figure (4.8), la vitesse au niveau de la paroi n’est pas

nulle comme ç’a été imposé par les conditions de non-glissement.

Figure 4.8 : Distribution des vitesses dans le domaine

Figure 4.9 : Distribution des pressions dans le domaine

V(m/s)

H(cm)

P (Pa)

L(cm)

V(m/s)

P(Pa)

Page 102: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

88

Cas d’absence de glissement au niveau des parois (No slip case)

L’absence de glissement se traduit par les conditions suivantes 𝑢 . �� = 0 et 𝑢 . 𝑡 = 0 au

niveau des parois. On impose des conditions sur les composantes des vitesses normales et

tangentielles pour qu’elles soient nulles.

La formulation Nitsche des conditions de Dirichlet sera différente du cas précèdent.

La partie volumique s’écrit :

{

𝐴 = ( ∇(𝑢). 𝑢, 𝑣)Ω + ( 𝜇∇(𝑢), ∇(𝑣))Ω − ( p, ∇.(v))

Ω

−( q, ∇. (u))Ω− ( 𝜇∇(𝑢). 𝑛, v)Ω

𝐿 = (𝑓, 𝑣 )Ω

(4.51)

Le tableau suivant nous donne les différents termes qu’on ajoutera à la forme linéaire et

bilinéaire selon la nature des parois (Entrée, sortie, paroi) (Inlet, Outlet, wall) pour obtenir la

formulation Nitsche finale.

Inlet

Termes ajoutés

à A (u, v)

< 𝑝. 𝑛, 𝑣 >inlet −< 𝜇∇(𝑢). 𝑛, 𝑣 >inlet

+< 𝑞. 𝑛, 𝑢 >inlet −< 𝜇∇(𝑣). 𝑛, 𝑢 >inlet

+(𝛽𝜇

ℎ) < 𝑢, 𝑣 >𝑖𝑛𝑙𝑒𝑡

Termes ajoutés

à L(v)

+< 𝑞. 𝑛, 𝑢inlet >inlet

−< 𝑢𝑖𝑛𝑙𝑒𝑡, 𝜇∇(𝑣). 𝑛 >𝑖𝑛𝑙𝑒𝑡

Page 103: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

89

+(𝛽1𝜇

ℎ) < 𝑢𝑖𝑛𝑙𝑒𝑡, 𝑣 >𝑖𝑛𝑙𝑒𝑡

Outlet

Termes ajoutés

à A (u, v)

Pas de termes

Termes ajoutés

à L(v)

−< 𝑝𝑖𝑜. 𝑛, 𝑣 >outlet

Wall

Termes ajoutés

à A (u, v)

Pas de termes

Termes ajoutés

à L(v)

−< 𝑢𝑤𝑎𝑙𝑙 , 𝑞. 𝑛 >wall

+(𝛽1𝜇

ℎ) < 𝑢𝑤𝑎𝑙𝑙 , 𝜇∇(𝑣). 𝑛 >𝑤𝑎𝑙𝑙

Tableau 4.4 : Termes Nistche ajoutés à la forme linéaire et bilinéaire de l’équation de

Navier-Stokes dans le cas d’absence de glissement

Figure 4.10 : Distribution des vitesses dans le cas d’absence de glissement

V(m/s)

Page 104: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

90

Figure 4.11 : Distribution des vitesses dans une section verticale

Figure 4.12 : Distribution de la pression dans le centre de la géométrie

IV-3-Nitsche pour le traitement des conditions de sauts au niveau de l’interface entre

de deux domaines non miscibles

-Passage de la méthode du Multiplicateur de Lagrange vers la méthode Nitsche :

Dans cette section, nous allons démontrer le passage de la méthode du multiplicateur de

Lagrange vers la méthode Nitsche. Pour cela, nous allons prendre le cas de l’équation de

V(m/s)

H(cm)

P (Pa)

L(cm)

Page 105: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

91

Poisson dans le cas de deux domaines de propriétés physiques différentes, séparés par une

interface.

Prenons un domaine de calcul à deux dimensions Ω ⊂ 𝑅2 avec une frontière lisse par

morceaux 𝜕Ω , Γ étant l’interface de séparation entre les deux domaines avec des propriétés

physiques différentes et �� le vecteur normal à cette interface.

Figure 4.13 : Domaine bi matériel

Les deux domaines Ω+ et Ω− sont de natures physiques différentes, donc il y a existence de

saut au niveau de l’interface de séparation. L’équation et les conditions aux limites pour ce

genre de problème sont les suivants :

−∇. (𝑘𝑖∇𝑢𝑖) = 𝑓 𝑑𝑎𝑛𝑠 Ω𝑖 𝑖 = 1,2 (4.52)

𝑢𝑖 = 0 𝑠𝑢𝑟 𝜕Ω

⟦𝑢⟧ = 𝑢1 − 𝑢2 = 0 𝑠𝑢𝑟 Γ

La continuité du flux au niveau de l’interface Γ est décrite par la condition suivante

𝑘1𝜕𝑢1𝜕𝑛1

+ 𝑘2𝜕𝑢2𝜕𝑛2

= 0 𝑠𝑢𝑟 Γ (4.53)

Le domaine d’étude est divisé en deux espaces ℑ1ℎ et ℑ2

ℎ pour chacun des deux domaines Ω1

and Ω2 respectivement. Nous définissons ensuite l’espace ℊ𝑖ℎ pour l’interface de séparation

Γ, pour le multiplicateur de Langrange.

Page 106: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

92

On dénotera 휀1ℎ et 휀2

ℎ les espaces pour les bords et les faces dans ℑ1ℎ et ℑ2

ℎ respectivement.

Soit 𝑢𝑖 la solution appartenant au domaine V𝑖 de telle sorte :

V𝑖 = {𝑣 ∈ 𝐻1(Ω𝑖):

𝜕𝑣𝑖𝜕𝑛𝑖|Γ

∈ 𝐿2(Γ), 𝑣|∂Ω = 0} 𝑖 = 1,2

Le sous-espace éléments finis est défini:

𝑉𝑖ℎ = {𝑣 ∈ 𝐻1(Ω𝑖): 𝑣|𝐾 ∈ ℘

𝑝(𝐾) ∀𝐾 ∈ ℑ𝑖ℎ} 𝑖 = 1,2

Pour le multiplicateur de Lagrange, on a aussi besoin d’un espace

Λ𝐻 = {𝑣 ∈ 𝐿2(Γ): 𝑣|𝐸 ∈ ℘��(𝐸) ∀𝐸 ∈ ℊ

𝑖ℎ} 𝑖 = 1,2

℘𝑝 dénote les polynômes de degrés ≤ ��

Le multiplicateur de Lagrange est énoncé de la sorte : trouver (𝑢, 𝜆) ∈ 𝑉 × 𝐿2(Γ) de telle

sorte que :

ℛ(𝑢, 𝜆; 𝑣, 𝜇) = ℱ(𝑣) ∀(𝑣, 𝜇) ∈ 𝑉 × 𝐿2(Γ)

On peut noter que les deux paramètres 𝜆 et 𝜇 appartiennent à 𝐿2(Γ), ces paramètres sont

définis à l’interface.

ℛ(𝑢, 𝜆; 𝑣, 𝜇) =∑(𝑘𝑖∇𝑢𝑖 , ∇𝑣𝑖)Ω𝑖

2

𝑖=1

− (𝜆, ⟦𝑣⟧)Γ − (𝜇, ⟦𝑢⟧)Γ 𝑖 = 1,2 (4.54)

ℱ(𝑣) =∑(𝑓, 𝑣𝑖)Ω𝑖

2

𝑖=1

𝑖 = 1,2 (4.55)

Avec le saut de 𝑣 sur Γ est définie

⟦𝑣⟧ = 𝑣2 − 𝑣1

Page 107: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

93

On définit le multiplicateur de Lagrange comme :

𝜆 = k1𝜕u1𝜕𝑛

= k2𝜕u2𝜕𝑛 (4.56)

Qui a la dimension d’un flux à travers l’interface de séparation Γ entre les deux domaines

aux propriétés physiques différentes, on définit aussi �� = 𝑛1 = − 𝑛2

On utilisera une méthode de stabilisation pour éviter les oscillations des solutions, la méthode

de stabilisation consiste à ajouter des termes qui vont servir à stabiliser la méthode

On définit h𝑖: Ω𝑖 → ℝ, 𝑖 = 1,2 de telle sorte que :

h𝑖(𝑥) = {h𝐾 𝑠𝑖 𝑥 ∈ 𝐾,𝐾 ∈ ℑ𝑖

h𝐸 𝑠𝑖 𝑥 ∈ 𝐸, 𝐸 ∈ 휀𝑖ℎ

Prenons la technique de stabilisation présentée dans Babuška, I. (1973) :

−1

𝛾 ((ℎ1𝑘1)

12(𝜆 − 𝑘1

𝜕𝑢1𝜕𝑛) + (

ℎ2𝑘2)

12(𝜆 − 𝑘2

𝜕𝑢2𝜕𝑛) , (ℎ1𝑘1)

12(𝜇 − 𝑘1

𝜕𝑣1𝜕𝑛)

+ (ℎ2𝑘2)

12(𝜇 − 𝑘2

𝜕𝑣2𝜕𝑛) ) = 0 (4.57)

Dans lequel 𝛾 est un paramètre de stabilisation.

Soient 𝛼1 et 𝛼2définis comme suit

𝛼1 =(𝑘2ℎ1)

1/2

(𝑘2ℎ1)1/2 + (𝑘1ℎ2)1/2 𝑒𝑡 𝛼2 =

(𝑘1ℎ2)1/2

(𝑘2ℎ1)1/2 + (𝑘1ℎ2)1/2

Si on définit le flux moyen :

[𝑘𝜕𝑣

𝜕𝑛] = 𝛼1𝑘1

𝜕𝑣1𝜕𝑛

+ 𝛼2𝑘2𝜕𝑣2𝜕𝑛 (4.58)

𝛼𝑖: Γ → ℝ , avec 0 ≤ 𝛼𝑖 ≤ 1 et 𝛼1 + 𝛼2 = 1

On définit 𝛽: Γ → ℝ

Page 108: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

94

𝛽 = (ℎ1𝑘1)1/2 + (

ℎ2𝑘2)1/2 =

(𝑘2ℎ1)1/2 + (𝑘1ℎ2)

1/2

(𝑘1𝑘2)1/2 (4.59)

Avec un calcul direct nous avons

(ℎ1𝑘1)

12(𝜇 − 𝑘1

𝜕𝑣1𝜕𝑛) + (

ℎ2𝑘2)

12(𝜇 − 𝑘2

𝜕𝑣2𝜕𝑛) = 𝛽 (𝜇 − [𝑘

𝜕𝑣

𝜕𝑛]) (4.60)

Le paramètre de stabilisation sera

−1

𝛾(𝛽2 (𝜆 − [𝑘

𝜕𝑣

𝜕𝑛]) , (𝜇 − [𝑘

𝜕𝑣

𝜕𝑛]))

Γ

= 0 (4.61)

La forme bilinéaire avec le terme de stabilisation s’écrira

ℛℎ(𝑢, 𝜆; 𝑣, 𝜇) =∑(𝑘𝑖∇𝑢𝑖 ,∇𝑣𝑖)Ω𝑖

2

𝑖=1

− (𝜆, ⟦𝑣⟧)Γ − (𝜇, ⟦𝑢⟧)Γ

−1

𝛾(𝛽2 (𝜆 − [𝑘

𝜕𝑢

𝜕𝑛]) , (𝜇 − [𝑘

𝜕𝑣

𝜕𝑛]))

Γ

(4.62)

Le problème stabilisé est de trouver le couple (𝑢ℎ, 𝜆𝐻) ∈ 𝑉ℎ × Λ𝐻 de telle sorte que;

ℛℎ(𝑢ℎ, 𝜆𝐻; 𝑣, 𝜇) = ℱ(𝑣) ∀(𝑣, 𝜇) ∈ 𝑉ℎ × Λ𝐻 (4.63)

Qui est la formulation de notre problème initial avec la méthode du multiplicateur de

Lagrange.

Définissons la méthode Nitsche à partir la méthode du multiplicateur de Lagrange associée.

L’idée principale est de résoudre le Multiplicateur de Lagrange comme une fonction à flux

variable et remplacer la valeur dans l’équation.

On supposera qu’il existe un couple unique (𝑢ℎ, 𝜆𝐻) ∈ 𝑉ℎ × Λ de telle sorte que la première

équation soit satisfaite.

En testant avec (0, 𝜇) ∈ 𝑉ℎ × Λ𝐻 , on trouve

Page 109: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

95

ℛℎ(𝑢ℎ, 𝜆𝐻; 0, 𝜇) = −(𝜇, ⟦𝑢ℎ⟧)Γ −1

𝛾(𝛽2 (𝜆𝐻 − [𝑘

𝜕𝑢ℎ

𝜕𝑛]) , 𝜇)

Γ

= 0 (4.64)

Avec 𝛽 constant par morceaux

(𝜆𝐻,𝜇)Γ = ([𝑘𝜕𝑢ℎ

𝜕𝑛]− 𝛾𝛽−2⟦𝑢ℎ⟧, 𝜇)

Γ

(4.65)

Nous pouvons écrire pour n’importe quelle valeur de 𝜇 ∈ Λ𝐻, l’interpretation

𝜆𝐻 = Π𝐻 [𝑘𝜕𝑢ℎ

𝜕𝑛] − 𝛾Π𝐻(𝛽−2⟦𝑢ℎ⟧) (4.66)

Dans laquelle Π𝐻: 𝐿2(Γ) → Λ𝐻 dénote la projection 𝐿2

Avec la même démarche, on peut obtenir 𝜇𝐻

𝜇𝐻 = Π𝐻 [𝑘𝜕𝑣ℎ

𝜕𝑛] − 𝛾Π𝐻(𝛽−2⟦𝑣ℎ⟧) (4.67)

ℛℎ (𝑢, Π𝐻 [𝑘𝜕𝑢

𝜕𝑛] − 𝛾Π𝐻(𝛽−2⟦𝑢⟧); 𝑣, Π𝐻 [𝑘

𝜕𝑣

𝜕𝑛] − 𝛾Π𝐻(𝛽−2⟦𝑣⟧))

=∑(𝑘𝑖∇𝑢𝑖 , ∇𝑣𝑖)Ω𝑖

2

𝑖=1

− ([𝑘𝜕𝑢

𝜕𝑛] , ⟦𝑣⟧)

Γ− ([𝑘

𝜕𝑣

𝜕𝑛] , ⟦𝑢⟧)

Γ

+ 𝛾(Π𝐻𝛽−2⟦𝑢⟧, ⟦𝑣⟧)Γ (4.68)

La méthode Nitsche s’énonce donc ainsi : trouver 𝑢ℎ ∈ V𝐻 de telle sorte que

ℬℎ(𝑢ℎ, 𝑣) = ℱ(𝑣) ∀𝑣 ∈ Vℎ

Dans laquelle

ℬℎ(𝑢, 𝑣) = ℛℎ (𝑢, Π𝐻 [𝑘𝜕𝑢

𝜕𝑛] − 𝛾Π𝐻(𝛽−2⟦𝑢⟧); 𝑣, Π𝐻 [𝑘

𝜕𝑣

𝜕𝑛] − 𝛾Π𝐻(𝛽−2⟦𝑣⟧))

Page 110: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

96

=∑(𝑘𝑖∇𝑢𝑖 , ∇𝑣𝑖)Ω𝑖

2

𝑖=1

− ([𝑘𝜕𝑢

𝜕𝑛] , ⟦𝑣⟧)

Γ− ([𝑘

𝜕𝑣

𝜕𝑛] , ⟦𝑢⟧)

Γ+ 𝛾(𝛽−2⟦𝑢⟧, ⟦𝑣⟧)Γ (4.69)

-Couplage de la Méthode Nitsche au niveau de l’interface dans l’équation de Navier-

Stokes dans le cas de deux fluides non miscibles

Figure 4.14 : Deux fluides non miscibles avec une interface

L’équation de Navier-Stokes pour deux fluides non miscibles avec une force de tension

superficielle localisée au niveau de l’interface s’écrit :

𝜕

𝜕𝑡(𝜌�� ) + ∇. (𝜌�� ) − 𝐹 − ∇. 𝜎 − 𝑓 𝑠(𝑥, 𝑡) = 0

Avec

𝑓 𝑠(𝑥, 𝑡) = ∫ [−𝛾κ�� + (∇Γ 𝛾 )]𝛿(𝑥 − 𝑥 𝑙(𝑠 ))𝑑𝛺𝛺

La méthode Nitsche pour l’interface de séparation entre les fluides et les conditions aux

limites de type Dirichlet sur les bords du domaine est définie comme :

Trouver (𝑢ℎ, 𝑝ℎ) ∈ 𝑊𝐻 × V𝐻 de telle sorte que :

𝐴ℎ(𝑢ℎ, 𝑝ℎ; 𝑣ℎ , 𝑞ℎ) = 𝐿ℎ(𝑣ℎ) ∀(𝑣ℎ, 𝑞ℎ) ∈ 𝑊𝐻 × Vℎ (4.70)

Ω ∂Ω 𝑛

𝑛→

Ω1

Ω2

Page 111: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

97

𝐴ℎ(𝑢ℎ, 𝑝ℎ; 𝑣ℎ , 𝑞ℎ) = 𝑎ℎ(𝑢ℎ, 𝑣ℎ) + 𝑏ℎ(𝑣ℎ, 𝑝ℎ) + 𝑏ℎ(𝑢ℎ, 𝑞ℎ) (4.71)

𝑎ℎ(�� , 𝑣 ) = (2𝜇𝐷(𝑢ℎ ), 𝐷(𝑣ℎ ))Ω1∪Ω2− (2𝜇𝐷(𝑢ℎ ). �� , ⟦𝑣ℎ ⟧)Γ

− (⟦𝑢ℎ ⟧, 2𝜇𝐷(𝑣ℎ ). �� )Γ

− 𝜆Γ(⟦𝑢ℎ ⟧, ⟦𝑣ℎ ⟧)Γ − (2𝜇𝐷(𝑢ℎ ). �� , 𝑣ℎ )∂Ω − (�� , 2𝜇𝐷(𝑣ℎ ). �� )∂Ω

+𝜆∂Ω(𝑢ℎ . �� , 𝑣ℎ . �� )∂Ω (4.72)

𝑏ℎ(𝑣ℎ, 𝑝ℎ) = −< 𝑝ℎ, 𝛻. 𝑣ℎ >𝛤 +< 𝑝ℎ , ⟦𝑣ℎ⟧. �� >𝛤 (4.73)

𝑏ℎ(𝑢ℎ, 𝑞ℎ) = −< 𝑞ℎ , 𝛻. 𝑢ℎ >𝛤 +< 𝑞ℎ , ⟦𝑢ℎ⟧. �� >𝛤 (4.74)

𝐿ℎ(𝑣ℎ) = (𝑓 , 𝑣ℎ )Ω −(𝛾κ, 𝑣ℎ . �� )Γ + (∇Γ 𝛾 , 𝑣ℎ )Γ + (𝑔 , 𝜆∂Ω𝑣ℎ )∂Ω (4.75)

Page 112: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

98

V-Méthode ¨Level-set¨

V-1-Équation de transport ¨Level-set¨

On présentera la méthode ¨Level-set¨ (Osher, S., & Sethian, J. A. (1988).) qui nous permettra

de décrire les interfaces de façon implicite. Une description implicite de l’interface définit

des interfaces comme des isolignes des fonctions ¨Level-set¨ avec le fait que l’espace des

isolignes est une dimension moindre que l’espace des fonctions ¨Level-set¨. Dans le cas où

la fonction ¨Level-set¨ 𝚽(𝒙) est une surface qui est définie pour tout 𝒙 ∈ ℝ𝒏, alors son

isoligne est définie dans l’espace ℝ𝒏−𝟏. Il y a beaucoup d’avantages associés à la

représentation des interfaces dans les dimensions supérieures.

Dans le cas de la représentation implicite, la connectivité n’a pas besoin d’un traitement

spécial et elle peut bien être faite dans un maillage cartésien uniforme en 2D ou 3D avec une

simple généralisation de la technique de ℝ2 vers ℝ3.

La fonction ¨Level-set¨ est défini de telle sorte que :

𝚽(𝐱(𝐭), 𝐭) = {

< 0 dans Ω−(𝑡)= 0 𝑠𝑢𝑟 Γ(𝑡)

> 0 dans Ω+(𝑡) (4.76)

Ou 𝒙 ∈ ℝ𝟐 et 𝒕 ∈ ℝ+ comme l’illustre la figure suivante (4.15). La formulation précédente

peut être appliquée à des dimensions plus élevées sans perdre la généralité.

Figure (4.15) Séparation d’un plan dans ℝ2 en différents domaines Ω+(𝑡) et Ω−(𝑡) avec un

contour Γ(𝑡) de la fonction ¨Level-set¨.

Ω−(𝑡)

Ω+(𝑡)

𝐱 = 𝐱𝟎

𝚪(𝐭)

Page 113: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

99

On suppose que l’interface de séparation Γ(𝑡) évolue avec une vitesse 𝐮(𝒙, 𝒕).

L’interface est définie

𝛷(𝑥(𝑡), 𝑡) = 0

𝑑𝛷(𝑥(𝑡), 𝑡)

𝑑𝑡= 0

𝜕𝛷

𝜕𝑡+ 𝒖. 𝛻𝛷 = 0

𝜕𝛷

𝜕𝑡+ 𝑢𝑛. |𝛻𝛷| = 0 (4.77)

Où on a 𝛻𝛷 = |𝛻𝛷|𝑛 et 𝑢𝑛 = 𝒖. 𝑛

La dernière équation représente une équation d’advection pour l’interface mobile et est

connue comme l’équation ¨Level-set¨ et a été introduite par Osher, S., & Sethian, J. A.

(1988). La courbure de l’interface est définie comme suit :

𝜅(𝑥(𝑡), 𝑡) = ∇. 𝑛 (4.78)

On essayera de définir cette courbure à l’aide de 𝜱

Sachant que 𝒏 =𝜵𝜱

|𝜵𝜱|

Donc la courbure devient : 𝜿(𝒙(𝒕), 𝒕) = 𝛁. (𝜵𝜱

|𝜵𝜱|)

On définit la fonction distance dont le rôle est comme suit :

𝜱𝒅(𝒙(𝒙, 𝒕), 𝒕) = 𝐦𝐢𝐧𝒙∗∈𝚪𝒅

‖𝒙 − 𝒙∗‖ , ∀ 𝒙 ∈ ℝ𝒏 (𝟒. 𝟕𝟗)

Page 114: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

100

D’un point de vue géométrique, pour chaque point 𝑥 ∈ ℝ𝑛 La valeur de 𝛷𝑑 represente la plus

petite distance du point par rapport à l’interface Γ.

Une des propriétés de fonction distance est :

|𝛻𝛷𝑑| = 1

Si on remplace cette propriété dans les équations précédentes, on trouve

𝜕𝛷𝑑

𝜕𝑡+ 𝑢𝑛 = 0 (4.80)

𝜅(𝑥(𝑡), 𝑡) = ∆𝛷𝑑 (4.81)

Un des plus grands inconvénients de la définition de la fonction distance est le fait qu’elle

représente un défaut à l’interface ou 𝛷𝑑 = 0 qui est un minimum local.

La fonction distance assignée est définie comme suit

𝛷𝑠𝑑(x(t), t) = {

−𝛷𝑑 ∀x ∈ Ω−(𝑡)

𝛷𝑑 = 0 ∀x ∈ Γ(𝑡)

+𝛷𝑑 ∀x ∈ Ω+(𝑡)

(4.82)

𝛷𝑠𝑑(𝑥(𝑥, 𝑡), 𝑡) = ± min𝑥∗∈Γ𝑑

‖𝑥 − 𝑥∗‖ , ∀ 𝑥 ∈ ℝ𝑛 (4.83)

Avec cette définition les problèmes de différentiation proche de l’interface et au niveau de

l’interface disparaissent.

V-2-Formulation faible de l’équation ¨Level-set¨

Pour exprimer la formulation faible de la fonction ¨Level-set¨, on définit d’abord l’espace

des fonctions d’essai et l’espace de fonctions test

𝑺𝚽𝒉 = 𝝑𝚽

𝒉 = {𝛙𝒉|𝝍𝒉 ∈𝓗𝟏𝒉}

Page 115: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

101

ℋ1ℎ ⊆ ℋ1 est l’espace de Sobolev pour les éléments finis, l’espace ℋ1 est l’ensemble des

fonctions qui sont avec leur première dérivative intégrable dans le domaine Ω.

Il faut noter que l’espace des fonctions tests et des fonctions essai coïncident entre eux s’il

n’y a pas de conditions aux limites spécifiées à l’entrée ou à la sortie (¨Inflow¨ /¨Outflow¨).

Dans le cas où il existe des conditions aux limites de type (¨Inflow¨ /¨Outflow¨), alors

l’équation de transport Level-set¨ devient une équation avec une advection pure, c’est-à-dire

hyperbolique, dans ce cas-là seulement les conditions de Dirichlet peuvent être spécifiées

(Gresho et Sani 1982).

Dans le cas où l’équation de transport ¨Level-set¨, nous avons aussi besoin d’introduire la

technique de stabilisation SUPG dans la forme faible. Cette formulation s’annonce comme

suit : Trouver 𝚽𝒉 ∈ 𝑺𝚽𝒉 de telle sorte ∀𝝍𝒉 ∈ 𝝑𝚽

𝒉

∫ 𝝍ℎ(𝜕 𝚽ℎ

𝜕𝑡+ 𝑢𝑗

ℎ 𝜕𝚽ℎ

𝜕𝑥𝑗)

𝛺

𝑑𝛺 +∑∫ 𝝉𝒆 (𝒖𝒋𝒉𝛛𝝍ℎ

𝛛𝒙𝒋) . (𝜕 𝚽ℎ

𝜕𝑡+ 𝑢𝑗

ℎ 𝜕𝚽ℎ

𝜕𝑥𝑗)

𝜴𝒆𝒆𝒍

𝒏𝒆𝒍

𝒆=𝟏

𝒅𝛀 = 0(4.84)

Le terme de stabilisation additionnel est le terme qui comprend le signe additionnel. Ce terme

stabilise les oscillations dues aux phénomènes d’advection dominant 𝝉𝒆 représente le

paramètre de stabilisation qui est spécifique à chaque élément et est défini comme suit

(Shakib et al 1991).

𝝉𝒆 = [(𝟐

∆𝒕)𝟐

+ ( 𝟐|𝒖𝒂𝒗𝒈

𝒉 |

𝒉𝒆)

𝟐

+ (𝟒𝝊

𝒉𝒆𝟐)

𝟐

]

−𝟏 𝟐⁄

(𝟒. 𝟖𝟓)

Avec |𝒖𝒂𝒗𝒈𝒉 | étant la norme de la vitesse moyenne calculée sur un élément, 𝜐 la viscosité

cinématique, qui prend une moyenne pondérée des viscosités des deux fluides quand

l’élément est traversé par l’interface, 𝒉𝒆 est défini comme suit

Page 116: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

102

𝒉𝒆 = √𝟐. (𝑨𝒆𝒆𝒍

𝒉𝒅𝒊𝒂𝒈) (𝟒. 𝟖𝟔)

𝑨𝒆𝒆𝒍 étant la surface de l’élément, 𝒉𝒅𝒊𝒂𝒈 la distance diagonale la plus grande entre les nœuds

de l’élément (Mittal 2000).

V-3-Processus de réinitialisation de la fonction ¨Level-set¨

La fonction ¨Level-set¨ 𝚽 est initialisée au début du processus de simulation pour être

assimilée à la fonction distance assignée 𝚽𝒔𝒅 pour 𝚪𝟎. On sait très bien que dans un

écoulement diphasique l’interface est soumise à des changements topologiques parfois très

compliqués, dans ce cas la fonction ¨Level-set¨ devient abrupte ou plate et perd ses propriétés

de courbures surtout au voisinage de l’interface, ce qui lui fait perdre la propriété suivante

|𝜵𝜱𝒅| = 𝟏 . Cette détérioration est un processus naturel dû aux conséquences du processus

d’advection, mais il rajoute des difficultés supplémentaires à la détermination précise de

l’interface.

Pour remédier à cela, nous allons faire une réinitialisation périodique de la fonction ¨Level -

set¨, c’est-à-dire qu’à chaque itération, on réinitialise la fonction ¨Level-set¨ pour qu’elle ne

perde pas ses propriétés. Ajouter à cela le fait d’utiliser un maillage raffiné au voisinage de

l’interface pour éviter les oscillations de la solution dues aux gradients élevés à l’interface

entre les deux phases (Harten et al.1987).

Le processus de réinitialisation consiste à remplacer la fonction 𝚽 par la fonction distance

assignée 𝚽𝒔𝒅 qui possède la même propriété que 𝚽, mais en plus de ça elle garde sa propriété

|𝛻𝛷𝑑| = 1 , ensuite on utilise cette fonction pour le prochain pas de temps.

La réinitialisation est faite d’abord par localisation de la position de l’interface à l’aide de

techniques d’interpolation puis via la construction de la fonction distance assignée pour le

front d’interpolation (Smolanski 2011, Peng et al 1994).

La précision de l’approximation dépend des méthodes d’interpolations utilisées.

Page 117: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

103

Dans les travaux de Sussman et al (1994), le processus de réinitialisation a été formulé pour

résoudre une équation aux dérivées partielles avec des conditions aux limites

𝜕𝛷

𝜕𝝉+ 𝑠𝑖𝑔𝑛(𝛷)(|𝛻𝛷 − 1|) = 0, ∀(x, 𝝉) ∈ Ω × (0, 𝑇𝑠𝑡𝑒𝑎𝑑𝑦) (4.87)

𝛷(𝑥, 0) = 𝛷0

𝑠𝑖𝑔𝑛(𝛷) = {−1 si 𝛷 < 0 0 si 𝛷 = 0+1 si 𝛷 > 0

(4.88)

𝜱𝟎 est la valeur initiale de la fonction ¨Level-set¨, avec 𝝉 le pseudo temps.

L’équation précédente représente l’algorithme d’interpolation pour décrire la position de

l’interface de façon explicite.

D’après les travaux de Sussmann et al (1999),

𝜕𝛷

𝜕𝝉+ 𝒘. |𝛻𝛷| = 𝑠𝑖𝑔𝑛(𝛷) (4.89)

Où 𝑤 = 𝑠𝑖𝑔𝑛(𝛷)𝛻𝛷

|𝛻𝛷| est la vitesse caractéristique de l’équation hyperbolique précédente. 𝒘

est le vecteur sortant dans la direction normale à l’interface. Ce qui veut dire que 𝛷(𝑥, 𝝉) sera

réinitialisé à |𝜵𝜱| = 𝟏 au voisinage de l’interface.

V-4-Discrétisation temporelle de l’équation de transport ¨Level-set¨

L’équation de transport ¨Level-set¨ s’écrit

𝜕Φ

∂𝑡+ 𝑢𝑗

𝜕Φ

𝜕𝑥𝑗= 0 (4.90)

Page 118: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

104

En appliquant la loi trapézoïdale, la discrétisation temporelle de l’équation de transport de

la fonction ¨Level-set¨ s’écrit :

Φ𝒏+𝟏 + 𝜃∆𝑡𝑢𝑗𝒏+𝟏 𝜕Φ

𝒏+𝟏

𝜕𝑥𝑗= Φ𝒏 + (1 − 𝜃)∆𝑡𝐺𝒏 (4.91)

Qui peut se mettre sous cette forme

1

𝜃∆𝑡𝚽𝒏+𝟏 + 𝑢𝑗

𝒏+𝟏 𝜕𝚽𝒏+𝟏

𝜕𝑥𝑗=1

𝜃∆𝑡𝚽𝒏 +

(1 − 𝜃)

𝜃𝐺𝒏 (4.92)

Avec

𝑮𝒏 = 𝒖𝒋𝒏𝝏𝚽𝒏

𝝏𝒙𝒋 (4.93)

La notation 𝒏 + 𝟏 est une notation qui décrit l’évaluation au temps 𝒏 + 𝟏 .

Après la discrétisation temporelle, on fera la discrétisation spatiale en employant la

formulation faible, en multipliant par une fonction test et en intégrant sur le domaine de calcul

𝜴

1

𝜃∆𝑡∫ 𝝍𝒏+𝟏𝚽𝒏+𝟏

𝛺

𝑑𝛺 +∫ 𝝍𝒏+𝟏𝑢𝑗𝑛+1 𝜕𝚽

𝒏+𝟏

𝜕𝑥𝑗𝑑𝛺

𝛺

=1

𝜃∆𝑡∫ 𝚽𝒏

𝛺

𝑑𝛺 +(1 − 𝜃)

𝜃∫ 𝝍𝒏+𝟏𝐺𝒏

𝛺

𝑑𝛺 (4.94)

La technique de stabilisation SUPG s’énonce comme suit : Trouver 𝚽 𝒉∈ 𝑺𝜱

𝒉 de sorte

que ∀ 𝝍 𝒉∈ 𝝂𝜱

𝒉

Page 119: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

105

1

𝜃∆𝑡∫ 𝝍ℎ𝚽ℎ

𝛺

𝑑𝛺 +∫ 𝝍ℎ𝑢𝑗ℎ 𝜕𝚽

𝜕𝑥𝑗𝑑𝛺

𝛺

+∑∫ 𝝉𝒆 (𝒖𝒋𝒉𝛛𝝍ℎ

𝛛𝒙𝒋) . [

1

𝜃∆𝑡𝚽𝑛 + 𝑢𝑘

ℎ𝜕𝚽ℎ

𝜕𝑥𝑘−1

𝜃∆𝑡(𝚽𝑛 + (1

𝜴𝒆𝒆𝒍

𝒏𝒆𝒍

𝒆=𝟏

− 𝜃)∆𝑡𝐺𝑛)]𝒅𝛀 =1

𝜃∆𝑡∫ 𝝍ℎ

𝛺

(𝚽𝑛 + (1 − 𝜃)∆𝑡𝐺𝑛)𝑑𝛺 (4.95)

Avec une condition initiale 𝚽ℎ(𝑥, 0) = 𝚽ℎ , qui représente le temps initial. Le terme de

stabilisation est compris dans le terme de sommation∑𝑛𝑒𝑙𝑒=1 , le terme entre les deux bars

représente la discrétisation temporelle du terme résidu.

L’espace des fonctions d’essais 𝑺𝜱𝒉 et des fonctions tests 𝝂𝜱

𝒉 a été défini plus haut.

V-5-Limite pour les pas de temps

A-Limitations physiques

Dans les équations de Navier-Stokes pour deux fluides non miscibles, plusieurs phénomènes

physiques interviennent comme la gravité, la viscosité et la tension superficielle. Ces

phénomènes introduisent des limitations au niveau de la discrétisation des pas de temps.

Pour obtenir les caractéristiques de la limite des pas temporels lors de la simulation

numérique, nous avons besoin de nombres adimensionnels qui sont le nombre de Reynolds,

le nombre de Froude et le nombre capillaire.

On définit d’abord le nombre de Froude comme suit :

𝑭𝒓 =𝑼(𝒈)

𝟐

𝒈𝑳 (𝟒. 𝟗𝟔)

Où L est la longueur caractéristique, 𝑼(𝒈)est la vitesse caractéristique, 𝒈 est l’accélération

gravitationnelle. On définit la vitesse caractéristique comme :

Page 120: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

106

𝑼 =𝑳

∆𝒕𝒑𝒉𝒚 (𝟒. 𝟗𝟕)

Avec ∆𝒕𝒑𝒉𝒚 étant l’échelle de temps caractéristique due à la force de gravité, définie comme

suit : ∆𝒕𝒑𝒉𝒚 = √𝑳

𝒈 .

Le nombre capillaire est défini comme le rapport de la viscosité à la force de tension

superficielle qui agit sur un volume et est définie comme :

𝑪𝒂 =𝝁𝑼𝒄𝒂

𝜸 (𝟒. 𝟗𝟖)

Ou 𝑼𝒄𝒂 est la vitesse caractéristique, 𝝁 la viscosité dynamique et 𝛾 le coefficient de tension

superficielle. ∆𝒕𝒑𝒉𝒚𝑪𝒂 , temps caractéristique du phénomène de capillarité, la vitesse relative à

ce phénomène est définie 𝑼𝒄𝒂 =𝑳

∆𝒕𝒑𝒉𝒚𝑪𝒂 . Cependant le temps caractéristique est défini ∆𝒕𝒑𝒉𝒚

𝑪𝒂 =

𝝁𝑳

𝜸.

Le dernier nombre adimensionnel qu’on va utiliser pour décrire l’échelle temporelle est le

nombre de Reynolds qui est définie comme étant le rapport entre les forces d’inertie par

rapport à la viscosité.

𝑹𝒆 =𝝆𝑼𝒓𝒆𝑳

𝝁 (𝟒. 𝟗𝟗)

La vitesse caractéristique est définie comme suit 𝑼𝒓𝒆 =𝑳

∆𝒕𝒑𝒉𝒚𝒓𝒆 , l’échelle caractéristique du

temps est ∆𝒕𝒑𝒉𝒚𝒓𝒆 =

𝝆𝑳𝟐

𝝁.

Dans notre choix du pas de temps utilisé pour la simulation, la limitation est décrite par les

temps caractéristiques qui sont définis pour chaque nombre adimensionnel. Ces conditions

représentent les limitations physiques du pas de temps choisi.

Page 121: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

107

B-Limitations numérique

Aux limitations physiques sur le pas de temps qu’on a vu précédemment, s’ajoutent des

limitations numériques. Du fait que le schéma semi-implicite employé est

inconditionnellement stable, la seule limitation sur ce pas à laquelle on aura affaire est la

limitation liée à l’utilisation de la méthode explicite pour le traitement du terme de force de

tension superficielle. Le temps numérique caractéristique relatif au phénomène de capillarite

est défini (Brackbill 1992) :

∆𝒕𝒏𝒖𝒎𝑪𝒂 = √

��𝒉𝟑

𝜸 (𝟒. 𝟏𝟎𝟎)

Où �� represente la moyenne de la densité des deux fluides au niveau de l’interface et 𝒉 la

taille du maillage. On peut rapidement remarquer que cette condition est proportionnelle à la

dimension du maillage et à la valeur du coefficient de tension superficielle.

Le schéma suivant montre le couplage entre la méthode ¨Level-set¨ et l’équation de Navier

Stokes :

Page 122: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

108

𝜙𝑛,𝑢𝑛,𝑝𝑛

Set 𝜙𝑖𝜃 = 𝜙𝑛 ,𝑢𝑖

𝑛+1 = 𝑢𝑛,𝑝𝑖𝑛+1 = 𝑝𝑛

𝑆𝑒𝑡 𝑢𝑗𝑛+1 = 𝑢𝑖

𝑛+1

Résoudre les équations de Navier-Stokes

𝑢𝑗+1𝑛+1, 𝑝𝑗+1

𝑛+1

‖ 𝑢𝑗+1𝑛+1 − 𝑢𝑗

𝑛+1‖

‖𝑢𝑗+1𝑛+1‖

< 휀2

Set 𝑢𝑖+1𝑛+1 = 𝑢𝑗+1

𝑛+1,𝑝𝑖+1𝑛+1 = 𝑝𝑗+1

𝑛+1

Résoudre l’équation Level-set

Φ𝑖+1𝑛+1

‖ Φ𝑖+1𝑛+1 − 𝑢𝑖

𝑛+1‖

‖𝑢𝑖+1𝑛+1‖

< 휀1

Set 𝜙𝑛+1 = 𝜙𝑖+1𝑛+1, 𝑢𝑛+1 = 𝑢𝑖+1

𝑛+1, 𝑝𝑛+1 = 𝑝𝑖+1𝑛+1

Set 𝑢𝑗𝑛+1 = 𝑢𝑗+1

𝑛+1

𝜙𝑖𝜃 = 𝜃𝜙𝑖

𝑛+1 + (1 − 𝜃)𝜙𝑛

𝜙𝑖𝑛+1 = 𝜙𝑖+1

𝑛+1

𝑢𝑖𝑛+1 = 𝑢𝑖+1

𝑛+1

𝑝𝑖𝑛+1 = 𝑝𝑖+1

𝑛+1

𝜙𝑛 = 𝜙𝑛+1

𝑢𝑛 = 𝑢𝑛+1

𝑝𝑛 = 𝑝𝑛+1

n=n+1

i=i+1

j=j+1

No

No

YES

YES

j=0

i=0

Boucle Level-set

Boucle interne

Boucle pour le temps

Page 123: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

109

VI-Plateforme de calcul FEniCS

I-Introduction

Dans cette section, on présentera le code source libre FEniCS (architecture, composants,

librairie) qui nous a permis de faire notre développement numérique. Le but de cette section

est de définir brièvement la plateforme FEniCS et son architecture. Pour plus de détail

concernant cette plateforme de calcul, le lecteur est prié de se référer à Logg et al (2012).

FEniCS est une plateforme de calcul pour les équations aux dérivées partielles (PDE), avec

une interface Python et C++ haute performance. Un des grands avantages de FEniCS est qu’il

est adapté aux calculs parallèle et adaptable du simple ordinateur personnel aux stations de

calcul haute performance.

Dans cette section, nous allons présenter le code de calcul FEniCS avec lequel nous avons

fait notre développement.

II-Architecture de FEniCS

Figure 4.16 : Schéma de la plateforme de calcul FEniCS utilisant les différents composants

du projet FEniCS (Logg, A et al 2012, The FEniCS book)

Pour résoudre les problèmes scientifiques avec FEniCS de façon efficace, le problème initial

est divisé en deux catégories :

Page 124: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

110

Entrée 1 : Qui représente la forme principale des équations aux dérivées partielles

Entrée 2 : Qui contient le domaine de calcul (maillage), conditions aux limites, coefficients

et propriétés matérielles.

Le FEniCS Form Compiler (FFC) (Kirby and Logg, 2007, 2008; Logg et al. 2010) ou bien

SyFi (Alnaes and Mardal 2012) reçoit l’équation aux dérivées partielles (input 1) sous forme

de code de haut niveau fondé en UFL (Alnaes 2012; Alnaes et Logg 2012) qui est proche des

notations mathématiques et généré par un code C++ compatible avec UFC (Alnaes et al.

2012).

Le code généré combiné avec la deuxième partie du programme à l’entrée (input 2) et ensuite

utilisé dans DOLFIN (Logg and Wells 2010); (Logg et al. 2012) pour résoudre le problème

sous forme variationnelle. Cette procédure est représentée dans le schéma voir la figure 4.16

dans Logg et al (2012). Les données dans (input 2) représentent les configurations spécifiques

du problème à résoudre, par exemple la géométrie, le maillage ou les propriétés physiques

du problème, par exemple la densité ou la viscosité dans notre cas.

III-Composants principaux de FEniCS

La plateforme FEniCS comprend plusieurs composants qui peuvent être adaptés aux

traitements de plusieurs problèmes de nature physique différente par la méthode des éléments

finis. Cependant chaque composant doit être adaptable à la plateforme FEniCS et aussi

indépendant les uns les autres, qui est une caractéristique très importante de FEniCS.

La figure (4.17) (Logg et al.2009) représente les différents composants de la plateforme

FEniCS, leurs classifications et relations dans différentes sections.

Comme montré dans la figure (4.17), les composants sont divisés en quatre sections :

Application, interface, composants principaux et librairies externes.

Page 125: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

111

Figure 4.17 : Architecture FEniCS (Logg et al. 2009)

À partir du schéma de la figure (4.17), on remarque qu’il existe plusieurs librairies externes

adaptables à FEniCS.

IV-Interface utilisateur :

DOLFIN fournit deux interfaces utilisateurs. Une interface est implémentée comme une

librairie C++ classique et une autre interface est implémentée comme un module Python. Les

deux interfaces sont plus au moins identiques, mais dans certains cas particuliers il existe une

différence entre les deux interfaces.

Page 126: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

112

Particulièrement dans le cas où l’interface Python ajoute un certain niveau d’automatisme la

méthode de génération de code ¨just in time¨.

Interface C++ :

L’interface DOLFIN C++ est construite comme une librairie C++ standard orientée objet.

Elle fournit des classes MATRIX,VECTOR, MESH, FINITE ELEMENT , FUNCTIONSPACE

and FUNCTION, qui modélise des concepts importants dans le calcul en éléments finis.

Ça fournit aussi un certain nombre de fonctions libres (fonction qui ne sont pas répertoriées

en classes), par exemple assemble et solve, qui peuvent être utilisés en conjonction avec des

classes d’objets DOLFIN pour implémenter les serveurs éléments finis.

DOLFIN a été construit de façon à être flexible avec des éléments extérieurs comme

MATRIX ou VECTOR, spécialement avec des structures de données provenant de librairies

extérieures comme PETSc et Trilinos .

Pour résoudre les équations aux dérivées partielles en utilisant l’interface DOLFIN C++, on

doit exprimer le problème d’éléments finis sous forme variationnelle en langage UFL. Cela

se fait en introduisant les formes dans des fichiers séparés. ufl, et compiler en utilisant un

compilateur de forme pour générer les composants UFC du code C++.Le code généré peut

être inclus ensuite dans le programme DOLFIN C++.

Page 127: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

113

Figure 4.18 :Schéma d’assemblage des différents composants de FEniCS

La figure (4.18) représente la manière dont l’assemblage entre les différents composants de

FEniCS est fait.

Page 128: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

114

Chapitre 5

Résultats numériques

I-Interface linéaire abrupt stationnaire

Le cas test suivant est considéré par Ausas et al. (2011), où une interface droite (linéaire) est

considérée. On a un saut sur la pression au niveau de l’interface de séparation (discontinuité

forte) qui est induite par une différence de viscosités des deux fluides.

Un domaine carré est considéré Ω ∈ [𝟎, 𝟏 𝒎] × [𝟎, 𝟏 𝒎] , avec une interface Γ horizontale

localisée en 𝑦 = 0.5𝑚 , 𝜌 = 𝜌1 = 𝜌2 = 10.0 𝑘𝑔/𝑚3, 𝜇1 = 5.0 𝑘𝑔/𝑚/𝑠 et 𝜇2 = 10.0 𝑘𝑔/

𝑚/𝑠 figure (5.1)

En négligeant les forces volumiques en premier lieu et en considérant les composantes de la

vitesse comme suit :

𝑢(𝑥) = (1 − 𝑥

𝑦)

Ce profil de vitesse est imposé aux parois de la géométrie.

La solution exacte pour la pression peut être modélisée comme suit :

𝑝(𝑥) =

{

𝜌 (𝑥 −

1

2(𝑥2 + 𝑦2)) + 2(𝜇1 − 𝜇2) , 𝑦 < 0.5

𝜌 (𝑥 −1

2(𝑥2 + 𝑦2)) , 𝑦 > 0.5

Page 129: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

115

Une condition sur la pression est imposée sur la paroi haute, on considère la pression nulle

𝑦 = 1.0𝑚

𝑦 = 0.0𝑚

Figure 5.1 : Domaine bi matériel en 2D

La solution quadratique exacte obtenue est représentée à une dimension à la figure (5.2).

On remarque très bien le saut au niveau de l’interface de séparation en x=0.5, l’interface

abrupte est bien visible en 1D.

𝑦 = 0.5𝑚

Ω2

Ω1

Page 130: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

116

Figure 5.2 : Saut sur la pression en 1D

La représentation bidimensionnelle de la solution quadratique exacte de la pression est

représentée dans la figure suivante (5.3)

Figure 5.3 : Cas stationnaire avec une interface droite, saut sur la pression P en x=0.5

P(Pa)

X(m)

P(Pa)

Page 131: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

117

On rajoute au cas test précédant une force volumique considérée sous la forme suivante

𝑓𝑥 = 0

𝑓𝑦 = {−10, 𝑦 < 0.5 0 , 𝑦 > 0.5

Dans ce cas un saut sur la pression et le gradient de pression existe, c’est-à-dire une

discontinuité faible et forte en même temps. La solution exacte pour la pression dans ce cas

est donnée comme suit :

𝑝(𝑥) =

{

𝜌 (𝑥 −

1

2(𝑥2 + 𝑦2) − 𝑓𝑦(0.5 − 𝑦)) + 2(𝜇1 − 𝜇2) , 𝑦 < 0.5

𝜌 (𝑥 −1

2(𝑥2 + 𝑦2)) , 𝑦 > 0.5

Les conditions aux limites, la position de l’interface et les maillages sont les mêmes que dans

le cas précèdent.

La solution exacte obtenue en prenant en compte la force volumique est représentée sur la

figure suivante

Page 132: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

118

Figure 5.4 : Représentation de la pression à 1D, dans le cas d’une discontinuité forte et

faible

En 2D, on obtient la représentation de la solution quadratique de la pression sur la figure

suivante (5.5), les deux discontinuités forte et faible sont alors présentes.

Figure 5.5 : Représentation de la discontinuité faible et forte de la pression en 2D

P(Pa)

X(m)

P(Pa)

Page 133: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

119

II-Exemple d’une interface dans le cas du problème de Stokes

Dans cette section, nous prenons l’exemple numérique présenté dans Hansbo et al (2014) et

Wang et Chen, (2015) pour évaluer notre modèle .

Dans cet exemple nous allons considérer le cas du problème de Stokes dans lequel la pression

a une discontinuité forte (discontinuité sur la variable pression) et la vitesse a une

discontinuité faible (discontinuité du gradient de vitesse) au niveau de l’interface.

L’interface est une droite d’équation 𝑦 = 0 et la condition de saut imposée au niveau de

l’interface est ⟦𝝁𝑫(𝒖). 𝒏 − 𝒑𝒏⟧. 𝒏 = 𝟏𝟎, la viscosité est imposée comme suit :

𝜇 = {2 𝑦 > 0200 𝑦 < 0

Et la force volumique :

𝑓 = (2𝑥, 4𝑥)

Le domaine de calcul sera [0,4] × [−0.4, 0.6] , les conditions de Dirichlets sur les parois sont

choisies de telle sorte que la solution exacte soit :

𝑢(𝑥, 𝑦) = (𝑢𝑥(𝑥, 𝑦), 𝑢𝑦(𝑥, 𝑦)) = (𝑥2𝑦

𝜇,−𝑥𝑦2

𝜇)

𝑝(𝑥, 𝑦) = 2𝑥𝑦 + 𝑥2 + 10𝜒(𝑦)

Ou 𝜒(𝑦) = 1 si 𝑦 < 0 et nul ailleurs

Page 134: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

120

Figure 5.6 : Taux de convergence pour la pression et la vitesse

On obtient la figure (5.6) dans laquelle les courbes de variation du logarithme de l’erreur sont

tracées en fonction du logarithme de la taille de la cellule h. À partir de cette figure, on voit

très bien que la méthode XFEM ne dégrade pas l’ordre de convergence de la méthode.

III -Écoulements diphasiques

III-1- Validation

Pour valider notre code de calcul et nos résultats obtenus, nous allons comparer nos résultats

numériques avec des résultats expérimentaux obtenus par Talley et al (2015), dans lesquels

ils ont étudié expérimentalement le comportement de deux fluides non miscibles

(gaz/liquide) séparés par une interface, le mécanisme d’interaction, la transition entre les

régimes d’écoulement, le tout dans le cas d’une configuration horizontale.

Les dimensions de la géométrie sont comme suit: le diamètre D=3.81 cm, la longueur de

développement de l’écoulement est de 248 D.

Le cas test pris sera le cas de l’écoulement stratifié, l’écoulement ondulé et la transition entre

les deux régimes d’écoulements.

Page 135: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

121

Chaque forme d’interface correspond à une gamme de débits (gaz/liquide), comme le montre

la cartographie des écoulements diphasiques expérimentale de Mandhan et al. 1974 figure

(5.7)

Figure 5.7 : Cartographie des régimes d’écoulement selon Mandhan et al. 1974, basée sur

des visualisations expérimentales

On sait très bien que pour les mêmes propriétés physiques de deux fluides non miscibles, la

même géométrie, les mêmes conditions aux limites, si on prend les mêmes débits pour chaque

phase, on obtient les mêmes régimes d’écoulements.

Les densités des deux fluides dans 𝛀𝟏 et 𝛀𝟐 sont 𝜌1−𝑒𝑎𝑢 = 1000𝑘𝑔/𝑚3et 𝜌2−𝑎𝑖𝑟 =

1.204 𝑘𝑔/𝑚3 les viscosités dynamiques sont 𝜇1−𝑒𝑎𝑢 = 10−3 𝑃𝑎. 𝑠 et 𝜇2−𝑎𝑖𝑟 =

1.8205. 10−5 𝑃𝑎. 𝑠, respectivement.

On procédera de la même manière que Talley et al (2015). On garde le débit de l’eau constant

et le débit de l’air variable en se basant sur la cartographie des écoulements figure (5.7) pour

obtenir une distribution des phases relative au régime stratifié, ondulé et la transition entre

les deux écoulements.

Page 136: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

122

Le maillage utilisé pour le domaine est un maillage régulier avec un nombre de cellules égal

à 9448800 mailles (la taille de chaque maille est de l’ordre du millimètre).

Tableau 5.1 : Validation expérimentale de nos résultats numériques

Le tableau (5.1), représente une validation de notre code de calcul développé avec FEniCS

cette validation est faite en comparaison avec les résultats expérimentaux de (Talley D. et al

2015).

On remarque à partir des résultats obtenus dans le tableau précédent (5.1) que notre code de

calcul reproduit exactement les mêmes régimes d’écoulement (mêmes formes d’interface de

séparations/distribution des phases) que dans le cas expérimental en prenant les mêmes

propriétés physiques de chaque fluide, la même géométrie et les mêmes conditions aux

limites.

Résultats expérimentaux (Talley D. et al 2015) Résultats obtenus

𝒋𝒆𝒂𝒖= 0.06𝑚/𝑠 𝒋𝒂𝒊𝒓/𝒂𝒕𝒎= 0.08 𝑚/𝑠

𝒋𝒆𝒂𝒖= 0.06𝑚/𝑠 𝒋𝒂𝒊𝒓/𝒂𝒕𝒎= 0.97 𝑚/𝑠

𝒋𝒆𝒂𝒖= 0.06𝑚/𝑠 𝒋𝒂𝒊𝒓/𝒂𝒕𝒎= 2.33 𝑚/𝑠

Page 137: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

123

III-2-Étude de différents paramètres dans les écoulements à deux phases :

Dans cette section, nous allons étudier le comportement d’un écoulement de deux fluides non

miscibles séparés par une interface.

Le maillage utilisé est un maillage régulier XFEM, avec un nombre de cellules variables

dépendamment de la géométrie, en prenant en compte que la taille de chaque cellule est de

l’ordre du millimètre.

III-2-a-Écoulement à interfaces dans une conduite horizontale

Dans notre cas d’étude, nous allons prendre une conduite horizontale dans laquelle nous

allons étudier le comportement d’un écoulement de deux fluides non miscible (air/eau) avec

une interface de séparation. La méthode XFEM est utilisée pour discrétiser les équations de

Navier-Stokes.

Nous allons d’abord commencer par étudier la distribution des phases et le comportement de

l’interface de séparation entre les deux fluides. Pour cela, nous allons prendre une géométrie

horizontale 2D avec les dimensions suivantes: 3m de longueur et 0.2 m de largeur.

La vitesse de l’air à l’entrée est de 𝑗(𝑎𝑖𝑟/𝑎𝑡𝑚) = 0.08 𝑚/𝑠 et la vitesse de l’eau à l’entrée est

de 𝑗(𝑒𝑎𝑢) = 0.06 𝑚/𝑠, on laissera notre écoulement se développer au-delà de 10 D et on

étudiera la distribution des phases, des vitesses et des pressions dans chaque phase et au

niveau de l’interface.

-Distribution des phases

Après quelques itérations, on obtient la distribution des phases sur la figure (5.8), on

remarque que l’écoulement obtenu est stratifié, avec une interface presque totalement

horizontale. Le fluide avec la densité la plus lourde (eau) occupe la partie inférieure de la

géométrie, le fluide de plus faible densité (air), quant à lui occupe la partie supérieure.

Page 138: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

124

La forme de l’interface dépend de l’interaction entre ces deux phases. Une interaction qui

dépend des propriétés des deux fluides et aussi des conditions initiales et aux limites.

Figure 5.8 : Distribution des phases

-Distribution des vitesses

La figure (5.9) représente la distribution de la vitesse au niveau de l’interface de séparation.

On voit très bien d’après la courbe que la vitesse au niveau de l’interface possède une

discontinuité faible qui représente une continuité sur la vitesse et une discontinuité du

gradient de la vitesse, donc chaque segment de courbe représente la valeur de la vitesse dans

une phase .Le fait de passer d’une phase à une autre créer une discontinuité dans le gradient

des vitesses. On a capturé la valeur de la vitesse au niveau de l’interface de séparation entre

les deux fluides, comme le montre la figure 5.9.

Page 139: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

125

Figure 5.9 : Distribution des vitesses au niveau de l’interface entre les deux fluides

Après avoir réussi à capturer la variation des vitesses au niveau de l’interface, on représentera

dans la figure suivante les vecteurs vitesse pour les deux phases d’abord figure (5.10a, 5.10b),

ensuite la représentation des vecteurs vitesse juste pour la phase liquide qui occupe la partie

inférieure de notre géométrie figure (5.11).

Les valeurs négatives des grandeurs vectorielles représentent certains cas où il existe des

écoulements ou les composantes des vitesses sont dans le sens contraire de l’écoulement

X(m)

V(m/s)

Page 140: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

126

(a)

(b)

Figures 5.10 (a,b) : Vecteurs vitesse dans chaque phase pour les deux fluides

Figure 5.11 : Représentation du vecteur vitesse dans la phase eau

Distribution des pressions

Au niveau de l’interface de séparation entre les deux fluides non miscibles, on capturera la

valeur de la pression dans les deux fluides figure (5.12) en prenant une section verticale dans

la géométrie étudiée. On remarque très bien sur cette figure que la pression représente une

discontinuité forte qui est traduite par un saut sur la variable pression.

Page 141: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

127

Figure 5.12: Saut sur la variable pression au niveau de l’interface entre les deux fluides

III-3-Transition entre deux régimes d’écoulements (stratifié/ondulé)

On se basant sur la carte d’écoulement de Mandan et al (1974) (voir figure (5.7)), pour passer

d’un régime d’écoulement stratifié (interface lisse) à un régime d’écoulement ondulé

(interface avec vagues), on augmente progressivement le débit de l’air jusqu’à ce qu’on

atteigne le régime complètement ondulé. Cette façon de procéder nous permet aussi de tester

la fiabilité et la robustesse de notre code de calcul développé.

X(m)

P(Pa)

Page 142: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

128

Distribution des vitesses

Figure 5.13 : Transition d’un écoulement stratifié vers un écoulement ondulé

Page 143: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

129

On remarque très bien d’après la figure (5.13) que l’interface de séparation entre les deux

fluides change de forme de façon progressive, jusqu’à ce qu’elle atteigne un développement

complet du nouveau régime.

Dans le cas où l’écoulement est complètement ondulé (régime développé), on étudiera la

distribution de la vitesse au niveau de l’interface de séparation entre les deux fluides ainsi

que la distribution de la pression. La figure (5.14) représente la distribution des vitesses au

niveau de l’interface de séparation, on peut très bien voir la nature de la discontinuité faible

de la vitesse.

Figure 5.14 : Distribution des vitesses au niveau de l’interface entre deux fluides

(Écoulement ondulé)

III-4-Effet Marangoni

Dans l’exemple suivant, nous allons considérer un écoulement entre deux fluides non

miscibles sans vitesses initiales pour chacun d’eux, c’est-à-dire que les deux fluides (Air/Eau)

sont au repos à t= 0 s. Le coefficient de tension superficielle 𝜸 va être pris variable au niveau

de l’interface de séparation entre les deux fluides de telle sorte qu’il aura une valeur de 𝛾1 =

70. 10−3𝑁.𝑚−1 dans la première moitié de la configuration et une valeur de 𝛾2 =

V(m/s)

X(m)

Page 144: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

130

72. 10−3𝑁.𝑚−1 dans la deuxième moitié de la configuration, comme indiquée sur la figure

(5.15).

Figure 5.15 : Déplacement de fluide dû à l’effet Marangoni au niveau de l’interface

On remarque qu’il y a déplacement du fluide dû à la différence entre les valeurs du coefficient

de tension superficielle des deux côtés. Ce phénomène et résultat numérique est en accord

avec le résultat obtenu dans le chapitre 3 du document. Comme on l’avait vu précédemment

dans l’équation (3.89), le saut au niveau de l’interface de séparation est égal à :

⟦𝜎. �� ⟧ = [−𝛾κ�� + (∇Γ 𝛾 )]

Dans notre cas, l’écoulement est stratifié, c’est-à-dire que la courbure est de l’interface est

nulle κ = 0 donc le résultat précédent devient :

⟦𝜎. �� ⟧ = (∇Γ 𝛾 )

On voit très bien d’après le résultat obtenu que le mouvement de l’interface est dû seulement

à l’effet Marangoni, le mouvement de cette interface est dans la direction du gradient

surfacique positif, c’est-à-dire du coefficient de tension superficielle le plus petit vers le

coefficient de tension superficielle le plus grand. On conclut aussi que cet effet est loin d’être

négligeable dans l’étude des écoulements entre deux fluides non miscibles.

𝜸𝟏 𝜸𝟐

Page 145: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

131

III-5-Cas où le taux de remplissage de la phase la plus dense est très faible

Dans l’exemple suivant, nous allons prendre le cas où le volume de la phase la plus dense est

très bas dans la configuration. On va la même configuration que dans les exemples précédents

avec les deux fluides étant (Air/Eau).

On obtient la distribution des phases comme indiqué sur la figure suivante (5.16).

Figure 5.16 : Distribution des phases dans le cas de faible taux de remplissage

On voit très bien que la phase liquide occupe la partie basse de notre configuration avec une

certaine discontinuité de matière, ce qui constitue un taux de remplissage de la phase liquide

qui est très bas.

La distribution des vitesses obtenue est comme suit :

Page 146: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

132

Figure 5.17 : Distribution des vitesses dans le cas de faible taux de remplissage

Les vecteurs vitesse sont représentés dans les figures suivantes, où on peut voir dans la

figure (5.18) les vecteurs modules de vitesses et dans les figures (5.19 a,b) la distribution

des composantes des vitesses suivant les X et les Y .

Figure 5.18 : Distribution du module de vecteur vitesse

(a)

X(m)

V(m/s)

Page 147: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

133

(b)

Figure 5.19 : a-Distribution des vitesses suivant X/ b- Distribution des vitesses suivant les

Y

III-6- Injection d’une phase dans une autre

Dans le cas suivant, nous allons étudier le comportement de l’interface entre deux fluides

non miscibles lors de l’injection d’une phase dans une autre.

Initialement, la configuration est remplie d’air à une vitesse d’entrée de 𝑗(𝑎𝑖𝑟/𝑎𝑡𝑚) =

0.08 𝑚/𝑠. On injectera de l’eau à une vitesse de 𝑗(𝑒𝑎𝑢) = 0.05 𝑚/𝑠 et observera le

phénomène et l’évolution de l’interface entre les deux fluides.

On obtient la distribution des vitesses comme indiquée dans la figure (5.20).

Figure 5.20: Distribution des vitesses dans le cas d’injection

Page 148: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

134

Les figures 5.21 (a,b) , montrent la distribution des vecteurs vitesse dans les directions X et

Y respectivement. On remarque le fait de l’existence de valeurs négatives de ses vecteurs,

les valeurs négatives indiquent le sens de l’écoulement, un sens qui est contraire au sens

positif défini initialement.

(a)

(b)

Figure 5.21: a-Distribution vectorielle des vitesses suivant les X /b- Distribution

vectorielles des vitesses suivant les Y

Dans le cas de la pression, on obtient la figure (5.22), qui représente la distribution des

pressions dans toute la configuration. On remarque l’existence de zone de dépression à

l’entrée et puis une augmentation progressive de la pression pour atteindre une valeur

maximale à la sortie.

Page 149: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

135

Figure 5.22 : Distribution des pressions dans la configuration

Page 150: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

136

Chapitre 6

Conclusions et perspectives

Dans cette thèse, nous avons développé un programme complet basé sur des outils physiques,

mathématiques et numériques robustes pour le traitement des écoulements diphasiques à

interfaces. Tout d’abord, l’approche physique a été développée en détail dans les premiers

chapitres avec un complément de preuves mathématiques détaillées, des lois physiques qui

régissent ces écoulements, en annexe. Ensuite une discrétisation de l’espace discontinue à

l’aide de la méthode XFEM pour trouver les inconnues au niveau de l’interface de séparation

mobile entre les deux fluides. Ces variables sont soumises à des conditions de saut au niveau

de l’interface. Ce saut est dû à la différence dans la nature physique des fluides, qui fait qu’il

y a des discontinuités sur les variables. Pour traiter les sauts de ces variables au niveau de

l’interface avec une grande précision, la méthode Nitsche a été développée. Le suivi de

l’interface au cours du temps et la capture des topologies variables des interfaces a été fait à

l’aide de la méthode ¨Level-set, pour avoir des interfaces parfaitement lisses, nous avions

utilisé l’opérateur Laplace Beltrami pour exprimer la courbure des interfaces avec une grande

précision. Ce terme de courbure se trouve dans le terme de force de tension superficielle,

modèle qui a été développé en détail lors de la construction du modèle physique dans les

premiers chapitres de ce document.

L’implémentation des modèles développés dans cette thèse a été faite avec la plateforme de

calcul FEniCS, qui est une plateforme de calcul FEM basée sur le langage C++ et Python.

Des programmes de calculs ont été développés dans plusieurs cas différents, que ce soit via

des tests de la méthode Nitsche avec différentes conditions aux parois ou des tests de

discontinuités. Une logique de progression a été respectée dans le développement des codes

de calculs, pour finalement compiler un code complet qui traite les écoulements diphasiques

avec la méthode XFEM pour la discrétisation, Nitsche pour les conditions de saut au niveau

de l’interface de séparation et aussi aux limites des parois. Laplace Beltrami pour le

Page 151: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

137

traitement des courbures et ¨Level-set¨ pour suivre l’évolution des interfaces au cours du

temps. Tous ces éléments constituent une contribution dans le code de calcul FEniCS. On

tient à préciser que FEniCS est basé sur la méthode FEM, notre développement d’un code

XFEM représente une extension de ce code de calcul open source et une grande contribution.

Le code de calcul final obtenu, a démontré sa robustesse et son habileté à prendre en main

des situations très compliquées dans le cas des écoulements diphasiques à interfaces. Des

validations qualitatives avec des résultats expérimentaux et numériques ont été faites. Des

tests dans le cas de l’effet Marangoni ont été faits au niveau de l’interface de séparation. Des

tests de transitions entre les régimes d’écoulement ont été faits aussi et ont donnés de très

bons résultats et démontrer la fiabilité des codes développés dans cette thèse.

De manière générale, nous avons atteint l’objectif de développer un modèle physique,

mathématique et numérique des plus complets avec des outils robustes capable de prendre en

compte différentes situations rencontrées dans le cas des écoulements diphasiques.

Perspectives

Comme suite à ce travail, il y aura le développement d’un code de calcul à 3D avec les

différents outils de modélisation utilisés dans notre travail à 2D.

Aussi comme perspective l’introduction de modèles de turbulences, pour pouvoir prendre en

compte le cas des écoulements diphasiques avec une forte turbulence.

Page 152: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

138

Annexes

Page 153: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

139

Annexe A :

Équations mathématiques régissant les

interfaces entre deux fluides non

miscibles

Cette section a pour objectif le traitement analytique des différents termes et équations

utilisés dans cette thèse. Les résultats obtenus après des développements mathématiques sont

utilisés dans les différentes sections de la thèse.

Dans cette annexe, nous allons prouver en détail les équations mathématiques qui décrivent

l’aspect physique des interfaces entre deux fluides non miscibles. La preuve détaillée de

l’équation de Young-Laplace sera traitée avec deux approches physiques différentes.

L’expression des forces qui sont dues à la présence de tension superficielle sera traitée en

détail. L’expression mathématique des courbures des interfaces entre deux fluides non

miscibles est traitée et le développement mathématique détaillé.

A-I-Loi de Young-Laplace

Considérons un système composé de deux fluides de différentes natures, séparés par une

interface libre.

On démontrera dans cette partie l’existence d’une courbure liée à la différence de pression

de part et d’autre de l’interface, cela avec deux aspects différents :

Page 154: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

140

A-I-1 Aspect énergétique

Figure A.1 : Variation de l’aire d’une surface lors d’un déplacement

Soit 𝐴 = 𝑥𝑦 l’aire initiale d’une surface de séparation entre deux fluides non miscibles.

Lors du déplacement de l’interface d’une distance "𝑑𝑧" , l’aire de la surface initiale change.

La variation de l’aire de la surface sera égale à l’aire finale 𝐴′ moins l’aire initiale 𝐴 :

𝑑𝐴 = 𝐴′ − 𝐴 (A.1)

Avec 𝐴′ = (𝑥 + 𝑑𝑥)(𝑦 + 𝑑𝑦)

Donc

𝑑𝐴 = (𝑥 + 𝑑𝑥)(𝑦 + 𝑑𝑦) − 𝑥𝑦

𝑑𝐴 = 𝑥𝑦 + 𝑥𝑑𝑦 + 𝑦𝑑𝑥 + 𝑑𝑥𝑑𝑦 − 𝑥𝑦 (A.2)

𝛼

𝛼

𝑅1 𝑅2

𝑥

𝑥 + 𝑑𝑥

𝑑𝑍

𝐴′

A

Page 155: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

141

En considérant le terme 𝑑𝑥𝑑𝑦 comme étant négligeable devant les autres termes. On obtient :

𝑑𝐴 = 𝑥𝑑𝑦 + 𝑦𝑑𝑥 (A.3)

Si on définit l’énergie associée à l’interface comme étant 𝐸 = 𝛾𝐴, alors la variation de cette

énergie est :

𝑑𝐸 = 𝛾𝑑𝐴 = 𝛾(𝑥𝑑𝑦 + 𝑦𝑑𝑥)

(A.4)

Avec 𝛾 une tension superficielle constante.

Le système étant conservatif, alors la variation de l’énergie est égale au travail mécanique

nécessaire au déplacement de l’interface.

𝑑𝐸 = 𝑑𝑊 (A.5)

Le travail thermodynamique associé à l’interface est défini comme étant :

𝑑𝑊 = ∆𝑝 𝑑𝑉 (A.6)

Donc

𝛾(𝑥𝑑𝑦 + 𝑦𝑑𝑥) = ∆𝑝 𝑥𝑦 𝑑𝑧 (A.7)

La longueur de l’arc "𝑥" est définie 𝑥 = 𝑅1𝑑𝛼 , avec 𝛼 étant l’angle solide que balaye la

surface suivant x.

𝑥 + 𝑑𝑥 = (𝑅1 + 𝑑𝑧)𝑑𝛼 (A.8)

𝑥 + 𝑑𝑥

𝑅1 + 𝑑𝑧= 𝑑𝛼 =

𝑥

𝑅1

Page 156: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

142

𝑅1𝑥 + 𝑅1𝑑𝑥 = 𝑥𝑅1 + 𝑥𝑑𝑧

𝑑𝑥

𝑥𝑑𝑧=1

𝑅1

𝑑𝑥 =

𝑥𝑑𝑧

𝑅1

(A.9)

La largeur de l’arc "𝑦" est définie comme : 𝑦 = 𝑅2𝑑𝛼

𝑦 + 𝑑𝑦

𝑅2 + 𝑑𝑧= 𝑑𝛼 =

𝑦

𝑅2

(A.10)

𝑑𝑦

𝑦𝑑𝑧=1

𝑅2

𝑑𝑦 =

𝑦𝑑𝑧

𝑅2

(A.11)

En remplaçant les résultats obtenus, on trouve :

𝛾 (𝑥𝑦𝑑𝑧

𝑅2+ 𝑦

𝑥𝑧

𝑅1) = ∆𝑝 𝑥𝑦 𝑑𝑧

𝛾 (1

𝑅2+1

𝑅1) = ∆𝑝

(A.12)

Qui représente la loi de Young Laplace.

Page 157: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

143

A-I-2 Équilibre des forces

Figure A.2 : Illustration d’une interface en coordonnées polaires

On définit une surface 𝑆 = 𝑅1𝑑𝜃1 . 𝑅2𝑑𝜃2, dans laquelle 𝑅1𝑑𝜃1 et 𝑅2𝑑𝜃2 sont les arcs de

courbes qui définissent la surface S. Cette surface est soumise à une tension superficielle 𝛾.

Donc la force qui agit sur S est 𝛾𝑅1𝑑𝜃1. En faisant une projection de cette force sur le milieu

de la surface (axe perpendiculaire à 𝑑𝑆 ), on trouve :

𝛾𝑅1𝑑𝜃1 sin(

𝑑𝜃22)

(A.13)

Donc la projection totale de part et d’autre de la normale est : 2𝛾𝑅1𝑑𝜃1 sin(𝑑𝜃2

2)

Pour un angle 𝑑𝜃2 très petit : sin(𝑑𝜃2

2) ≈

𝑑𝜃2

2

L’expression (A.13) devient :

2𝛾𝑅1𝑑𝜃1 sin(

𝑑𝜃22) = 𝛾𝑅1𝑑𝜃1𝑑𝜃2

(A.14)

𝑅1𝑑𝜃1

𝑑𝜃1

𝑑𝜃2

𝑑𝑆

𝑒1

Page 158: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

144

En ayant le même raisonnement, on obtient le même résultat suivant l’autre axe :

𝛾𝑅2𝑑𝜃2𝑑𝜃1 (A.15)

La force de pression qui agit sur la surface de séparation est perpendiculaire au plan, donc

parallèle au produit vectoriel des deux axes reliés à ce plan.

Donc

(𝑃𝑖𝑛𝑡 − 𝑃𝑒𝑥𝑡)𝑑𝑆 . [(𝑅1𝑑𝜃1)𝑒1 × (𝑅2𝑑𝜃2)𝑒2 ]

= (𝑃𝑖𝑛𝑡 − 𝑃𝑒𝑥𝑡)[(𝑅1𝑑𝜃1) (𝑅2𝑑𝜃2)]

(A.16)

Avec 𝑑𝑆 . (𝑒1 × 𝑒2 ) = 1

En sommant toutes les projections sur l’axe dont le vecteur est 𝑑𝑆 on trouve :

−𝛾𝑅1𝑑𝜃1𝑑𝜃2 − 𝛾𝑅2𝑑𝜃2𝑑𝜃1 + (𝑃𝑖𝑛𝑡 − 𝑃𝑒𝑥𝑡)[(𝑅1𝑑𝜃1) (𝑅2𝑑𝜃2)] = 0 (A.17)

Donc

−𝛾𝑅1 − 𝛾𝑅2 + (𝑃𝑖𝑛𝑡 − 𝑃𝑒𝑥𝑡)(𝑅1𝑅2) = 0

(𝑃𝑖𝑛𝑡 − 𝑃𝑒𝑥𝑡) = 𝛾(𝑅1+𝑅2)

(𝑅1𝑅2)

(𝑃𝑖𝑛𝑡 − 𝑃𝑒𝑥𝑡) = 𝛾(

1

𝑅1+1

𝑅2)

(A.18)

Qui représente la loi de Young-Laplace.

Page 159: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

145

A-I-3-Remarques

En effet les rayons de courbure 𝑅1et 𝑅2 sont des quantités algébriques, comptées positives si

le centre de courbure est situé d’un côté identifié.

Dans le cas d’une surface plane, les pressions de chaque côté de la surface sont égales.

𝑃𝑖𝑛𝑡 = 𝑃𝑒𝑥𝑡 ce qui fait que 𝛾 (1

𝑅1+

1

𝑅2) = 0

Sachant que 𝛾 ≠ 0 donc (1

𝑅1+

1

𝑅2) = 0

En conséquence de la loi de Laplace, plus une goutte est petite, plus le fluide à l’intérieur est

à une pression élevée. Les petites bulles sont donc bien sphériques et peu déformables.

Attention, pour les bulles de savon, la tension de surface agit des deux côtés des membranes

(il y a en effet deux surfaces eau-gaz). Il apparaît donc un facteur 2 dans la relation de Laplace

: ∆𝑃 = 4𝛾𝑅.

Cette surpression dans les petites bulles a de nombreuses conséquences, par exemple pour

l’initiation de la cavitation, de l’ébullition ou de la formation de brouillards.

A-II- Force due à la présence tension superficielle.

On considère une surface de séparation dS, entre deux milieux de propriétés physiques

différentes. La surface de séparation est munie d’une tension superficielle 𝜸. On trouvera

l’expression de la force de tension superficielle qui agit au niveau de l’interface, en supposant

que 𝜸 soit constant.

Page 160: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

146

Figure A.3 : Déformation d’une interface lors d’un déplacement infinitésimal δl.

Si la surface de séparation dS subit un déplacement infinitésimal, on trace la normale en

chaque point immobile de la surface. On notera par (𝛿𝑙) un petit déplacement normal qui

transformera dS en 𝑑𝑆′. En d’autres termes (𝛿𝑙) représente la distance perpendiculaire suivant

le déplacement.

Ce qui donne naissance à un volume qui sera égal à(𝛿𝑙)dS, ou dS est l’élément de surface

déplacée.

Soit 𝑃1 et 𝑃2 les pressions de part et d’autre de la surface de séparation des deux milieux,

soit 𝛿𝑙 le déplacement positif de la surface du milieu 1 vers le milieu 2, alors le travail total

dû au déplacement de l’interface dS est égal à :

−∫ (𝑃1 − 𝑃2)(𝛿𝑙)dS𝑆 {𝑇𝑟𝑎𝑣𝑎𝑖𝑙 𝑑û 𝑎𝑢 𝑑é𝑝𝑙𝑎𝑐𝑒𝑚𝑒𝑛𝑡 𝑑𝑒 𝑙′𝑖𝑛𝑡𝑒𝑟𝑓𝑎𝑐𝑒

𝛾𝛿𝑆 {𝑇𝑟𝑎𝑣𝑎𝑖𝑙 𝑑û à 𝑙𝑎 𝑑é𝑓𝑜𝑟𝑚𝑎𝑡𝑖𝑜𝑛 𝑑𝑒 𝑙′𝑖𝑛𝑡𝑒𝑟𝑓𝑎𝑐𝑒

𝛿𝑙 𝑑𝑆

𝑑𝑆′

𝑃1

𝑃2 Milieux 2

Milieux 1

Page 161: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

147

Le travail dû à la déformation de l’interface est proportionnel au changement d’aire de la

surface, avec 𝛾 étant la tension superficielle.

𝛾 : Coefficient de tension superficielle

𝛿𝑆 : Déformation de la surface

𝛿𝑊 = −∫(𝑃1 − 𝑃2)(𝛿𝑙)dS + 𝛾𝛿𝑆

(A.19)

Pour que le système soit en équilibre thermodynamique, il faut que le travail total soit nul

𝛿𝑊 = 0.

𝑑𝑙1 = 𝑅1𝑑𝜃1

𝑑𝑙′ = (𝑅1 + 𝛿𝑙)𝑑𝜃

𝑑𝑙′

𝑑𝑙1=(𝑅1 + 𝛿𝑙)

𝑅1= 1 +

𝛿𝑙

𝑅1

𝑑𝑙′ = (1 +𝛿𝑙

𝑅1)𝑑𝑙1

Donc 𝑑𝑙1 subit une variation de 𝛿𝑙

𝑅1

𝛿𝑙′

𝛿𝑙

𝛿𝑙1

Page 162: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

148

Figure A.4 : Déplacement d’une surface paramétrée

Si la surface dS avant le déplacement est égale à 𝑑𝑆 = 𝑑𝑙1𝑑𝑙2

Après déplacement, elle devient : 𝑑𝑆′ = 𝑑𝑙1′𝑑𝑙2

𝑑𝑆′ = (1 +

𝛿𝑙

𝑅1) 𝑑𝑙1. (1 +

𝛿𝑙

𝑅2) 𝑑𝑙2

(A.20)

𝑑𝑆′ ≈ 𝑑𝑙1𝑑𝑙2(1 +𝛿𝑙

𝑅1+𝛿𝑙

𝑅2)

𝑑𝑆′ ≈ 𝑑𝑙1𝑑𝑙2 + 𝑑𝑙1𝑑𝑙2𝛿𝑙(1

𝑅1+1

𝑅2)

𝑑𝑆′ = 𝑑𝑆 + ∆𝑆 (A.21)

Avec 𝑑𝑆 = 𝑑𝑙1𝑑𝑙2

Et ∆𝑆 = 𝑑𝑙1𝑑𝑙2𝛿𝑙(1

𝑅1+

1

𝑅2)

Ce qui fait que le changement de surface dû au déplacement est de :

𝑑𝑙1 𝑑𝑙2

𝑅2

𝑅1

Page 163: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

149

∆𝑆 = 𝑑𝑆𝛿𝑙(

1

𝑅1+1

𝑅2)

(A.22)

Donc le travail total est égal à :

𝛿𝑊 = −∫(𝑃1 − 𝑃2)(𝛿𝑙)dS + 𝛾∆𝑆

(A.23)

Soit 𝑅1 et 𝑅2 les rayons principaux de la courbure surfacique, 𝑑𝑙1 et 𝑑𝑙2 sont les arcs

relatifs à 𝑅1 et 𝑅2.

Quand une surface dS subis un déplacement infinitésimal, alors 𝑑𝑙1 et 𝑑𝑙2subissent une

variation de (𝛿𝑙

𝑅1)𝑑𝑙1 et (

𝛿𝑙

𝑅2)𝑑𝑙2 respectivement.

En remplaçant dans l’équation 2.26 on trouve :

𝛿𝑊 = −∫ 𝛿𝑙 ((𝑃1 − 𝑃2)

𝑆

− 𝛾 (1

𝑅1+1

𝑅2))𝑑𝑆 = 0

(A.24)

⇒ (𝑃1 − 𝑃2) − 𝛾 (

1

𝑅1+1

𝑅2) = 0

(A.25)

En multipliant par une surface orientée �� on trouve :

(𝑃1 − 𝑃2)�� = 𝛾 (

1

𝑅1+1

𝑅2) ��

(A.26)

Donc

𝐹 = 𝛾𝜅�� (A.27)

Page 164: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

150

Remarques

Si 𝑅1 et 𝑅2 sont positifs alors 𝑃1 − 𝑃2 > 0 cela suggère que la pression est supérieure

dans la région convexe, donc la force dans cette dernière région est plus grande.

Si 𝑅1 = 𝑅2 = ∞ la surface de séparation est un plan, et la force qui agit sur l’interface

est la même de part et d’autre de l’interface.

Si 1

𝑅1+

1

𝑅2= 0 cela correspond à l’équilibre d’un film liquide.

A-III-Expression de la courbure d’une surface de séparation entre deux

milieux

Figure A.5: Déplacement normal infinitésimal d’une interface

Z

X

Y

𝛿𝑧 = 𝛿𝑙

Z=A(x,y)

Page 165: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

151

Si on prend une surface S, d’équation 𝑧 = 𝐴(𝑥, 𝑦).On déplace cette surface suivant l’axe des

Z, d’une petite distance 𝛿𝑧 = 𝛿𝐴(𝑥, 𝑦) = 𝛿𝑙.

À partir de l’équation de variation de la surface de séparation de deux milieux obtenue

précédemment, on a :

𝛿𝑆 = ∫𝛿𝐴(

1

𝑅1+1

𝑅2) 𝑑𝑆

(A.28)

L’aire de la surface S est donnée par :

𝑆 = ∫√1 + (𝜕𝐴

𝜕𝑥)2 + (

𝜕𝐴

𝜕𝑦)2 𝑑𝑥𝑑𝑦

(A.29)

En prenant l’équation paramétrée du plan 𝑍 = 𝐴(𝑥, 𝑦), avec Z très proche de zéro, donc

𝐴(𝑥, 𝑦) centré autour de zéro ce qui nous permet d’utiliser le développement de Taylor autour

de zéro.

𝑆 ≈ ∫[1 +

1

2(𝜕𝐴

𝜕𝑥)2 +

1

2(𝜕𝐴

𝜕𝑦)2]𝑑𝑥𝑑𝑦

(A.30)

𝛿𝑆 = 𝛿∫[1 +1

2(𝜕𝐴

𝜕𝑥)2 +

1

2(𝜕𝐴

𝜕𝑦)2]𝑑𝑥𝑑𝑦

𝛿𝑆 = ∫𝛿[1 +1

2(𝜕𝐴

𝜕𝑥)2 +

1

2(𝜕𝐴

𝜕𝑦)2]𝑑𝑥𝑑𝑦

𝛿𝑆 = ∫𝜕

𝜕𝑥[1 +

1

2(𝜕𝐴

𝜕𝑥)2 +

1

2(𝜕𝐴

𝜕𝑦)2]𝜹𝒙 𝑑𝑥𝑑𝑦 + ∫

𝜕

𝜕𝑦[1 +

1

2(𝜕𝐴

𝜕𝑥)2 +

1

2(𝜕𝐴

𝜕𝑦)2]𝜹𝒚 𝑑𝑥𝑑𝑦

Page 166: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

152

𝛿𝑆 = ∫[(

𝜕𝐴

𝜕𝑥) (𝜕2𝐴

𝜕𝑥2)𝛿𝑥 +

𝜕𝐴

𝜕𝑦

𝜕2𝐴

𝜕𝑥𝜕𝑦𝛿𝑥] 𝑑𝑥𝑑𝑦 + ∫[(

𝜕𝐴

𝜕𝑥)𝜕2𝐴

𝜕𝑥𝜕𝑦𝛿𝑦

+𝜕𝐴

𝜕𝑦(𝜕2𝐴

𝜕𝑦2)𝛿𝑦]𝑑𝑥𝑑𝑦

(A.31)

Mais nous avons

𝜕𝐴

𝜕𝑦

𝜕2𝐴

𝜕𝑥𝜕𝑦𝛿𝑥 + (

𝜕𝐴

𝜕𝑥)𝜕2𝐴

𝜕𝑥𝜕𝑦𝛿𝑦 =

𝜕2𝐴

𝜕𝑥𝜕𝑦(𝜕𝐴

𝜕𝑥𝛿𝑦 +

𝜕𝐴

𝜕𝑦𝛿𝑥)

(A.32)

Et

𝜕

𝜕𝑥(𝛿𝐴) =

𝜕

𝜕𝑥(𝜕𝐴

𝜕𝑥𝛿𝑥 +

𝜕𝐴

𝜕𝑦𝛿𝑦)

=𝜕2𝐴

𝜕𝑥2𝛿𝑥 +

𝜕𝐴

𝜕𝑥

𝜕

𝜕𝑥(𝛿𝑥) +

𝜕2𝐴

𝜕𝑥𝜕𝑦𝛿𝑦 +

𝜕𝐴

𝜕𝑦

𝜕

𝜕𝑥(𝛿𝑦)

=𝜕2𝐴

𝜕𝑥2𝛿𝑥 +

𝜕𝐴

𝜕𝑥𝛿 (𝜕𝑥

𝜕𝑥) +

𝜕2𝐴

𝜕𝑥𝜕𝑦𝛿𝑦 +

𝜕𝐴

𝜕𝑥𝛿(𝜕𝑦

𝜕𝑦)

(A.33)

Donc

𝜕

𝜕𝑥(𝛿𝐴) = (

𝜕2𝐴

𝜕𝑥2𝛿𝑥 +

𝜕2𝐴

𝜕𝑥𝜕𝑦𝛿𝑦)

(A.34)

𝜕𝐴

𝜕𝑥[𝜕2𝐴

𝜕𝑥2𝛿𝑥 +

𝜕2𝐴

𝜕𝑥𝜕𝑦𝛿𝑦] =

𝜕𝐴

𝜕𝑥

𝜕

𝜕𝑥(𝛿𝐴)

(A.35)

Nous effectuons le même raisonnement pour l’autre terme

𝜕

𝜕𝑦(𝛿𝐴) =

𝜕

𝜕𝑦(𝜕𝐴

𝜕𝑥(𝛿𝑥) +

𝜕𝐴

𝜕𝑦(𝛿𝑦))

Page 167: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

153

=𝜕2𝐴

𝜕𝑥𝜕𝑦𝛿𝑥 +

𝜕𝐴

𝜕𝑥

𝜕

𝜕𝑦(𝛿𝑥) +

𝜕2𝐴

𝜕𝑦2(𝛿𝑦) +

𝜕𝐴

𝜕𝑦

𝜕

𝜕𝑦(𝛿𝑦)

=𝜕2𝐴

𝜕𝑥𝜕𝑦𝛿𝑥 +

𝜕2𝐴

𝜕𝑦2(𝛿𝑦)

(A.36)

Nous obtenons

𝜕𝐴

𝜕𝑦[𝜕2𝐴

𝜕𝑥𝜕𝑦𝛿𝑥 +

𝜕2𝐴

𝜕𝑥𝜕𝑦𝛿𝑦] =

𝜕𝐴

𝜕𝑦

𝜕

𝜕𝑦(𝛿𝐴)

(A.37)

En remplaçant les équations A.35 et A.37 dans l’équation de départ A.29, on obtient :

𝛿𝑆 = ∫(𝜕𝐴

𝜕𝑥

𝜕

𝜕𝑥(𝛿𝐴) +

𝜕𝐴

𝜕𝑦

𝜕

𝜕𝑦(𝛿𝐴))𝑑𝑥𝑑𝑦

(A.38)

En intégrant par parties les deux termes :

∫𝜕𝐴

𝜕𝑥

𝜕

𝜕𝑥(𝛿𝐴)𝑑𝑥𝑑𝑦 = −∫(

𝜕2𝐴

𝜕𝑥2)𝛿𝐴 𝜕𝑥𝜕𝑦 + ∫

𝜕𝐴

𝜕𝑥𝛿𝐴𝑛𝑥 𝑑Γ

(A.39)

∫𝜕𝐴

𝜕𝑦

𝜕

𝜕𝑦(𝛿𝐴)𝑑𝑥𝑑𝑦 = −∫(

𝜕2𝐴

𝜕𝑦2)𝛿𝐴 𝜕𝑥𝜕𝑦 + ∫

𝜕𝐴

𝜕𝑦𝛿𝐴𝑛𝑦 𝑑Γ

(A.40)

En faisant la somme :

𝛿𝑆 = −∫(𝜕2𝐴

𝜕𝑥2+𝜕2𝐴

𝜕𝑦2)𝛿𝐴 𝑑𝑥𝑑𝑦 + ∫(

𝜕𝐴

𝜕𝑥𝑛𝑥 +

𝜕𝐴

𝑦𝑛𝑦 ) 𝛿𝐴

= −∫(

𝜕2𝐴

𝜕𝑥2+𝜕2𝐴

𝜕𝑦2)𝛿𝐴 𝑑𝑥𝑑𝑦 + ∫𝑑𝑖𝑣𝐴 𝛿𝐴

(A.41)

Page 168: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

154

La surface 𝑍 = 𝐴(𝑥, 𝑦) est centrée par rapport aux axes y et x donc la divergence de part et

d’autre de chaque axe est égale et opposée donc elle s’annule.

Figure A.6 : Divergence d’une surface centrée dans un repère

Donc 𝑑𝑖𝑣𝐴 = 0

Donc 𝛿𝑆 = −∫(𝜕2𝐴

𝜕𝑥2+𝜕2𝐴

𝜕𝑦2) 𝛿𝐴𝑑𝑥𝑑𝑦

𝛿𝑆 = −∫(

𝜕2𝐴

𝜕𝑥2+𝜕2𝐴

𝜕𝑦2)𝛿𝐴 𝑑𝑆

(A.42)

Z

X

Y

𝒅𝒊𝒗�� =0

Page 169: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

155

En comparant avec l’équation de départ (2.31):

{

𝛿𝑆 = ∫𝛿𝐴 (

1

𝑅1+1

𝑅2) 𝑑𝑆

𝛿𝑆 = −∫(𝜕2𝐴

𝜕𝑥2+𝜕2𝐴

𝜕𝑦2)𝛿𝐴𝑑𝑆

}

⟹ (1

𝑅1+1

𝑅2) = −(

𝜕2𝐴

𝜕𝑥2+𝜕2𝐴

𝜕𝑦2)

(A.43)

Mais on sait que (1

𝑅1+

1

𝑅2) = 𝜅 représente la courbure et que 𝑍 = 𝐴(𝑥, 𝑦), Z étant très proche

de zéro, alors on peut écrire :

𝐹 = 𝐴(𝑥, 𝑦) − 𝑍 ≈ 𝐴(𝑥, 𝑦) (A.44)

Donc d’après l’expression précédente nous avons :

𝜅 = −𝑑𝑖𝑣 (∇ 𝐴) (A.45)

D’après la définition du vecteur unitaire �� normal en tout point de la surface définie par :

(Pozrikidis 2011)

�� =

∇𝐹

∥ ∇𝐹 ∥=

∇𝐴

∥ ∇𝐴 ∥

(A.46)

Mais on sait que ∥ ∇ 𝐴 ∥= 1

∇ 𝐴 =𝜕𝐴

𝜕𝑥𝑒𝑥 +

𝜕𝐴

𝜕𝑦𝑒𝑦 +

𝜕𝐴

𝜕𝑧𝑒𝑧

=𝜕𝐴

𝜕𝑧𝑒𝑧

=𝜕𝑍

𝜕𝑧𝑒𝑧 = 𝑒𝑧

(A.47)

Donc

Page 170: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

156

𝜅 = −𝑑𝑖𝑣 �� (A.48)

A-IV : Preuve que : 𝑑𝑖𝑣(𝑷(Φ(𝑥))) = 𝑑𝑖𝑣Γ(Φ(𝑥))

𝑑𝑖𝑣Γ(𝑓(𝑥)) = 𝑑𝑖𝑣 (𝑷(𝑓(𝑥)))

= 𝑑𝑖𝑣[(Ι − 𝑛⨂𝑛)𝑓(𝑥)]

= 𝑑𝑖𝑣(𝑓(𝑥)) −∑𝑛𝑖𝑛𝑇(∇𝑓𝑖)

3

𝑖=1

𝑑𝑖𝑣Γ(𝑓(𝑥)) = 𝑑𝑖𝑣(𝑓(𝑥)) − �� 𝑇(∇ 𝑓)�� (𝐴. 49)

On sait que

𝑛𝑇 ⨂�� = 1

∇(𝑛𝑇 ⨂�� ) = 0

∇ n. n = 0

En remplaçant dans l’équation précédente, la fonction vectorielle 𝑓(𝑥) par n on aura :

𝑑𝑖𝑣Γ(�� (𝑥)) = 𝑑𝑖𝑣(�� (𝑥)) − �� 𝑇(𝑥) (∇ �� (𝑥)) . �� (𝑥) (𝐴. 50)

Mais on sait que

�� 𝑇(𝑥) (∇ �� (𝑥)) . �� (𝑥) = 0

Donc

𝑑𝑖𝑣Γ(�� (𝑥)) = 𝑑𝑖𝑣(�� (𝑥)) (𝐴. 51)

On sait que la propriété suivante est vérifiée :

Page 171: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

157

𝑑𝑖𝑣(Φ(𝑥)�� (𝑥)) = Φ(𝑥)𝑑𝑖𝑣(�� (𝑥))

= Φ(𝑥)𝑑𝑖𝑣Γ(�� (𝑥))

= 𝑑𝑖𝑣Γ(Φ(𝑥)�� (𝑥))

𝑖𝑣Γ(Φ(𝑥)�� (𝑥)) = Φ(𝑥)𝑑𝑖𝑣Γ(�� (𝑥)) (𝐴. 52)

Page 172: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

158

Annexe B

Méthode Nitsche

Dans cette annexe, nous allons développer la méthode Nitsche, dans le cas de l’équation de

Stokes dans le cas d’un écoulement monophasique, appliquée aux frontières dans le cas des

conditions de Dirichlet. Le but de ce développement est de permettre d’avoir une progression

dans le développement de la méthode Nitsche. Pour faciliter la compréhension et avoir une

progression dans la difficulté au fur et à mesure que les termes s’ajoutent à l’équation, la

complexité des termes Nitsche augmente. Dans la section du chapitre 4, nous avons

développé cette méthode dans le cas de l’équation de Poisson comme étant le cas le plus

simple, ensuite Poisson à deux domaines pour finir avec l’équation de Navier-Stokes dans

les cas de deux fluides non miscibles, où les termes Nitsche sont très compliqués. Pour bien

comprendre le passage entre l’équation de Poisson et Navier-Stokes, il faut passer par

l’équation de Stokes.

Équation de Stokes

Soit Ω un domaine 2D fermé dans ℝ2 avec une frontière 𝜕Ω. L’équation de Stokes pour un problème

stationnaire pour un écoulement incompressible visqueux à deux dimensions s’écrit :

{−𝜇∆𝑢 + ∇𝑝 = 𝑓 𝑖𝑛 Ω ∇. 𝑢 = 0 𝑖𝑛 Ω𝑢 = 0 𝑜𝑛 𝜕Ω

(𝐵. 1)

Avec 𝑢 est la vitesse, 𝜇 la viscosité dynamique, 𝑝 est la pression et 𝑓 la force extérieure qui agit dans

le fluide.

La solution exacte 2D de l’équation de Stokes est :

Page 173: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

159

𝑓(𝑥, 𝑦) =

{

−𝜋 sin(𝜋𝑥) +𝜋2 sin(𝜋𝑦)

𝑅𝑒+ 1

𝜋2 sin(𝜋𝑥)

𝑅𝑒

(𝐵. 2)

𝑢𝑒𝑥𝑎𝑐𝑡 = {𝑦 + sin(𝜋𝑦)

𝑥 + sin(𝜋𝑥) (𝐵. 3)

𝑃𝑒𝑥𝑎𝑐𝑡 = 𝑥 + cos(𝜋𝑥) (𝐵. 4)

On va résoudre l’équation de Stokes numériquement, associée aux conditions de Dirichlet,

dans le contexte des éléments finis FEM, couplée à la méthode Nitsche pour exprimer les

conditions de Dirichlet sous la forme Nitsche. Après avoir résolu ça, on comparera la solution

FEM/Nitsche avec la solution exacte et on calculera l’erreur entre les deux. Prenons d’abord

la formulation faible du problème avec une viscosité égale à l’unité .Les conditions de

Dirichlet sont renforcées avec une formulation faible Nitsche avec des termes de pénalité

additionnels qui maintiennent la stabilité des opérateurs.

On choisira l’interpolation de Taylor-Hood (Benk et al 2011) en choisissant les fonctions

éléments finis biquadratiques pour la discrétisation de l’espace des vitesses, et les fonctions

bilinéaires éléments finis pour discrétiser l’espace des pressions, en ajoutant les termes de

pénalité et de stabilisation 𝛾1

ℎ𝐸𝑅𝑒< 𝑢, 𝑣 >∂Ω+

𝛾2

ℎ𝐸< 𝑢. 𝑛, 𝑣. 𝑛 >∂Ω avec 𝛾1 et 𝛾2 des

constantes de stabilisation.

Pour la simulation nous allons prendre un domaine rectangulaire avec une longueur de 20 et

une hauteur de 4, [0,20] × [0,4]. On fera varier le nombre de cellules 𝑁 ×𝑁 dans chaque

cas .Le nombre de Reynolds sera constant tout au long de la simulation et sera pris égal à

𝑅𝑒 = 300. La formulation symétrique faible de la partie volumique s’écrit :

{𝑎 =

1

𝑅𝑒( ∇(𝑢), ∇(𝑣))

Ω− ( p, ∇. (v))

Ω− ( q, ∇. (u))

Ω

𝐿 = (𝑓, 𝑣 )Ω

(𝐵. 5)

À cette partie, on rajoutera les termes qui renforceront les formulations faibles Nitsche des

conditions de Dirichlet pour obtenir la formulation symétrique Nitsche

Page 174: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

160

{

𝑎+ = −

1

𝑅𝑒< ∇(𝑢). 𝑛, 𝑣 >∂Ω−< p. 𝑛, 𝑣 >∂Ω+< q. n, u >∂Ω

−1

𝑅𝑒< ∇(𝑣). 𝑛, 𝑢 >∂Ω+

𝛽

ℎ𝐸𝑅𝑒< 𝑢, 𝑣 >∂Ω

𝐿+ = −1

𝑅𝑒< ∇(𝑣). 𝑛, u𝑒𝑥𝑎𝑐𝑡 >∂Ω−< 𝑞. 𝑛, u𝑒𝑥𝑎𝑐𝑡 >∂Ω

+𝛽

ℎ𝐸𝑅𝑒< u𝑒𝑥𝑎𝑐𝑡 , 𝑣 >∂Ω

(B. 6)

Avec (�� , 𝑝) étant les fonctions d’essais et (𝑣 , 𝑞) les fonctions testes pour notre problème, 𝛽

étant une constante de paramétrisation et elle est prise 𝛽 = 10. ℎ𝐸 représente la dimension

du maillage local et u𝑒𝑥𝑎𝑐𝑡 la solution exacte de l’équation de Stokes.

La formulation asymétrique pour la partie volumique est :

{𝑎 =

1

𝑅𝑒( ∇(𝑢), ∇(𝑣))

Ω− ( p, ∇. (v))

Ω+ ( q, ∇. (u))

Ω

𝐿 = (𝑓, 𝑣 )Ω

(𝐵. 7)

Pour la partie qui décrit la surface extérieure du domaine

{

𝑎+ = −

1

𝑅𝑒< ∇(𝑢). 𝑛, 𝑣 >∂Ω+< p. 𝑛, 𝑣 >∂Ω−< q. n, u >∂Ω

−1

𝑅𝑒< 𝑢, ∇(𝑣). 𝑛 >∂Ω+

𝛾1ℎ𝐸𝑅𝑒

< 𝑢, 𝑣 >∂Ω

+𝛾2ℎ𝐸< 𝑢. 𝑛, 𝑣. 𝑛 >∂Ω

𝐿+ = −1

𝑅𝑒< u𝑒𝑥𝑎𝑐𝑡 , ∇(𝑣). 𝑛 >∂Ω−< 𝑞. 𝑛, u𝑒𝑥𝑎𝑐𝑡 >∂Ω

+𝛾1ℎ𝐸𝑅𝑒

< u𝑒𝑥𝑎𝑐𝑡, 𝑣 >∂Ω+𝛾2ℎ𝐸< u𝑒𝑥𝑎𝑐𝑡 . 𝑛, 𝑣. 𝑛 >∂Ω

(𝐵. 8)

On couple la formulation classique et la formulation Nitsche dans le même code de calcul

.On utilisera la technique de stabilisation connue, pour régler les contraintes liées à la

divergence .La condition de glissement est prise �� . �� = 0 sur les parois du domaine ∂Ω.

Page 175: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

161

On obtient la figure (B1) qui représente la variation logarithmique de l’erreur et de la

dimension de la cellule h en fonction du nombre de cellules N. Comme on peut le voir log(e)

et log(h) diminuent avec l’augmentation du nombre de cellules N, qui est une première

confirmation du fait que la méthode Nitsche est une méthode qui est dépendante du maillage

.En deuxième remarque, l’erreur entre la solution exacte et la solution obtenue avec la

méthode Nitsche est très petite et commence à être négligeable à partir d’un certain nombre

de cellules.

Dans la figure (B2) nous avons représenté la variation de log(e) et log(h) pour différentes

valeurs du paramètre de stabilisation 𝛽

Figure B.1 : Variation de log(h) et log(e) en fonction de N

Figure B.2 : Variation de Log(h) et Log(e) pour différents paramètres de stabilisation 𝛽

-15

-10

-5

0

5

10

0 400 800 1200

Number of cells (N)

log(h) log(Error)

0

2

4

6

8

10

0,2429 -0,4503 -1,143 -1,8369

log(

e)

log(h)

log(e)β=8

log(e)β=10

log(e)β=12

log(e)β=50

Page 176: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

162

Nombre de cellules (N) h Erreur Rate

16 1.275E+00 1.667E+03 -1.08

32 6.374E-01 3.190E+02 0.07

64 3.187E-01 3.503E+01 0.85

128 1.593E-01 4.335E+00 1.28

254 7.967E-02 1.140E+00 1.48

1016 9.956E-05 2.154E-02 1.05

Tableau B.1: Valeurs de h de l’erreur et du taux de convergence en fonction du nombre de

cellules N

Page 177: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

163

Annexe C

Programmes FEniCS

Dans cette annexe nous allons classer tous les programmes développés dans le cadre de cette

thèse. Les résultats de ces différents programmes ont été utilisés dans ce manuscrit. Que ça

soit dans les exemples des chapitres constitutifs ou dans la partie résultats et discussion.

1. '''Équation de Poisson deux domaines''' 2. 3. from dolfin import * 4. 5. # Create classes for defining parts of the boundaries and the interior 6. # of the domain 7. class Left(SubDomain): 8. def inside(self, x, on_boundary): 9. return near(x[0], 0.0) 10. 11. class Right(SubDomain): 12. def inside(self, x, on_boundary): 13. return near(x[0], 1.0) 14. 15. class Bottom(SubDomain): 16. def inside(self, x, on_boundary): 17. return near(x[1], 0.0) 18. 19. class Top(SubDomain): 20. def inside(self, x, on_boundary): 21. return near(x[1], 1.0) 22. 23. class Obstacle(SubDomain): 24. def inside(self, x, on_boundary): 25. return (between(x[1], (0.5, 0.8)) and between(x[0], (0, 1.0))) 26. 27. 28. # Initialize sub-domain instances 29. left = Left() 30. top = Top() 31. right = Right() 32. bottom = Bottom() 33. obstacle = Obstacle() 34. 35. # Define mesh 36. mesh = UnitSquareMesh(256,256) 37. 38. # Initialize mesh function for interior domains 39. domains = CellFunction("size_t", mesh) 40. domains.set_all(0) 41. obstacle.mark(domains, 1)

Page 178: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

164

42. 43. # Initialize mesh function for boundary domains 44. boundaries = FacetFunction("size_t", mesh) 45. boundaries.set_all(0) 46. left.mark(boundaries, 1) 47. top.mark(boundaries, 2) 48. right.mark(boundaries, 3) 49. bottom.mark(boundaries, 4) 50. 51. # Define input data 52. a0 = Constant(10000.0) 53. a1 = Constant(0.000001) 54. g_L = Expression("6.0") 55. g_R = Constant("6.0") 56. f = Constant(4.0) 57. 58. # Define function space and basis functions 59. V = FunctionSpace(mesh, "CG", 2) 60. u = TrialFunction(V) 61. v = TestFunction(V) 62. 63. # Define Dirichlet boundary conditions at top and bottom boundaries 64. bcs = [DirichletBC(V, 200.0, boundaries, 2), 65. DirichletBC(V, 2.0, boundaries, 4)] 66. 67. # Define new measures associated with the interior domains and 68. # exterior boundaries 69. dx = Measure("dx")[domains] 70. ds = Measure("ds")[boundaries] 71. 72. # Define variational form 73. F = (inner(a0*grad(u), grad(v))*dx(0) + inner(a1*grad(u), grad(v))*dx(1) 74. - g_L*v*ds(1) - g_R*v*ds(3) 75. - f*v*dx(0)- f*v*dx(3) ) 76. 77. # Separate left and right hand sides of equation 78. a, L = lhs(F), rhs(F) 79. 80. # Solve problem 81. u = Function(V) 82. solve(a == L, u, bcs) 83. 84. # Evaluate integral of normal gradient over top boundary 85. n = FacetNormal(mesh) 86. m1 = dot(grad(u), n)*ds(2) 87. v1 = assemble(m1) 88. print "\int grad(u) * n ds(2) = ", v1 89. 90. # Evaluate integral of u over the obstacle 91. m2 = u*dx(1) 92. v2 = assemble(m2) 93. print "\int u dx(1) = ", v2 94. 95. # Plot solution and gradient 96. plot(u, title="u") 97. #plot(grad(u), title="plot(grad(u)") 98. interactive()

Page 179: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

165

1. """ 2. Interface jump pressure 3. """ 4. from dolfin import* 5. class DirichletBoundary(SubDomain): 6. def inside(self, x, on_boundary): 7. return abs(x[0] - 1.0) < DOLFIN_EPS and on_boundary 8. # mesh 9. mesh = UnitSquareMesh(64,64) 10. 11. # Defining the function spaces 12. 13. V_dg = FunctionSpace(mesh, "DG", 1) 14. V_cg = FunctionSpace(mesh, "CG", 1) 15. V_u = VectorFunctionSpace(mesh, "DG", 2) 16. # Create velocity Function 17. u = interpolate( Constant(("-10.0","+10.0")), V_u) 18. # Test and trial functions 19. v = TestFunction(V_dg) 20. phi = TrialFunction(V_dg) 21. 22. # Diffusivity 23. kappa = Constant(0.0001) 24. 25. # Source term 26. f = Constant(5.0) 27. 28. # Penalty term 29. alpha = Constant(-2.0) 30. # Mesh-related functions 31. n = FacetNormal(mesh) 32. h = CellSize(mesh) 33. h_avg = (h("+") + h("-"))/2 34. 35. # ( dot(v, n) + |dot(v, n)| )/2.0 36. un = (dot(u, n) + abs(dot(u, n)))/2.0 37. 38. # Bilinear form 39. a_int = dot(grad(v), kappa*grad(phi) - u*phi)*dx 40. 41. a_fac = kappa("+")*(alpha("+")/h("+"))*dot(jump(v, n), jump(phi, n))*dS \ 42. - kappa("+")*dot(avg(grad(v)), jump(phi, n))*dS \ 43. - kappa("+")*dot(jump(v, n), avg(grad(phi)))*dS 44. 45. a_vel = dot(jump(v), un("+")*phi("+") - un("-")*phi("-") )*dS \ 46. + dot(v, un*phi)*ds 47. a = a_int + a_fac + a_vel 48. # Linear form 49. L = v*f*dx 50. # Set up boundary condition (apply strong BCs) 51. g = Expression("sin(x[1])+4.0") 52. bc = DirichletBC(V_dg, g, DirichletBoundary(), "geometric") 53. # Solution function 54. phi_h = Function(V_dg) 55. # Assemble and apply boundary conditions 56. A = assemble(a) 57. b = assemble(L) 58. bc.apply(A, b) 59. # Solve system 60. solve(A, phi_h.vector(), b) 61. # Project solution to a continuous function space

Page 180: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

166

62. up = project(phi_h, V=V_cg) 63. file = File("temperature.pvd") 64. file << up 65. # Evaluate integral of u over the obstacle 66. m1 = kappa("+")/h("+")*dot(jump(v, n), jump(phi, n))*dS 67. v1 = assemble(m1) 68. print "\int kappa("+")/h("+")*dot(jump(v, n), jump(phi, n))*dS= ", v1 69. # Plot solution 70. plot(up, interactive=True)

Page 181: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

167

Programmes Nitsche

1. ''' 2. Methode Nitsche équation de Poisson 3. ''' 4. 5. from collections import namedtuple 6. from math import log as ln 7. from dolfin import * 8. 9. set_log_level(WARNING) 10. 11. Result = namedtuple('Result', ['h', 'L2', 'H10', 'H1']) 12. 13. f = Expression('2*pi*pi*sin(pi*x[0])*sin(pi*x[1])') 14. u_exact = Expression('x[0]*x[1] + sin(pi*x[0])*sin(pi*x[1])') 15. 16. 17. def strong_poisson(N): 18. 'Standard formulation with strongly imposed bcs.' 19. 20. mesh =UnitSquareMesh(N,N) 21. 22. V = FunctionSpace(mesh, 'CG', 1) 23. u = TrialFunction(V) 24. v = TestFunction(V) 25. 26. a = inner(grad(u), grad(v))*dx 27. L = inner(f, v)*dx 28. bc = DirichletBC(V, u_exact, DomainBoundary()) 29. 30. uh = Function(V) 31. solve(a == L, uh, bc) 32. 33. plot(uh, interactive=True) 34. # plot(uh, title='numeric') 35. # plot(u_exact, mesh=mesh, title='exact') 36. # interactive() 37. 38. # Compute norm of error 39. E = FunctionSpace(mesh, 'CG', 4) 40. uh = interpolate(uh, E) 41. u = interpolate(u_exact, E) 42. e = uh - u 43. 44. norm_L2 = assemble(inner(e, e)*dx, mesh=mesh) 45. norm_H10 = assemble(inner(grad(e), grad(e))*dx, mesh=mesh) 46. norm_H1 = norm_L2 + norm_H10 47. 48. norm_L2 = sqrt(norm_L2) 49. norm_H1 = sqrt(norm_H1) 50. norm_H10 = sqrt(norm_H10) 51. 52. return Result(h=mesh.hmin(), L2=norm_L2, H1=norm_H1, H10=norm_H10) 53. 54. 55. def nitsche1_poisson(N): 56. 'Classical (symmetric) Nitsche formulation.'

Page 182: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

168

57. 58. mesh =UnitSquareMesh(N,N) 59. 60. V = FunctionSpace(mesh, 'CG', 1) 61. u = TrialFunction(V) 62. v = TestFunction(V) 63. 64. beta_value = 20 65. beta = Constant(beta_value) 66. h_E = mesh.ufl_cell().max_facet_edge_length 67. n = FacetNormal(mesh) 68. 69. a = inner(grad(u), grad(v))*dx - inner(dot(grad(u), n), v)*ds -\ 70. inner(u, dot(grad(v), n))*ds + beta*h_E**-1*inner(u, v)*ds 71. # Beta is related to constant from inverse inequality 72. # h_E*norm((grad(u).n), L2(\Gamma)) < C*norm(grad(u), \Omega) 73. 74. L = inner(f, v)*dx -\ 75. inner(u_exact, dot(grad(v), n))*ds + beta*h_E**-

1*inner(u_exact, v)*ds 76. 77. uh = Function(V) 78. solve(a == L, uh) 79. plot(uh, interactive=True) 80. # plot(uh, title='numeric') 81. # plot(u_exact, mesh=mesh, title='exact') 82. # interactive() 83. 84. # Compute norm of error 85. E = FunctionSpace(mesh, 'CG', 4) 86. uh = interpolate(uh, E) 87. u = interpolate(u_exact, E) 88. e = uh - u 89. 90. norm_L2 = assemble(inner(e, e)*dx, mesh=mesh) 91. norm_H10 = assemble(inner(grad(e), grad(e))*dx, mesh=mesh) 92. norm_edge = assemble(h_E**-1*inner(e, e)*ds) 93. 94. norm_H1 = norm_L2 + norm_H10 + norm_edge 95. norm_L2 = sqrt(norm_L2) 96. norm_H1 = sqrt(norm_H1) 97. norm_H10 = sqrt(norm_H10) 98. 99. return Result(h=mesh.hmin(), L2=norm_L2, H1=norm_H1, H10=norm_H10) 100. 101. 102. def nitsche2_poisson(N): 103. 'Unsymmetric Nitsche formulation.' 104. mesh=UnitSquareMesh(N,N) 105. 106. V = FunctionSpace(mesh, 'CG', 1) 107. u = TrialFunction(V) 108. v = TestFunction(V) 109. 110. beta_value = 20 111. beta = Constant(beta_value) 112. h_E = mesh.ufl_cell().max_facet_edge_length 113. n = FacetNormal(mesh) 114. 115. a = inner(grad(u), grad(v))*dx - inner(dot(grad(u), n), v)*ds +\ 116. inner(u, dot(grad(v), n))*ds + beta*h_E**-1*inner(u, v)*ds

Page 183: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

169

117. # The symmetry is lost but beta is not tied anymore to constant from 118. # inverse estimate 119. 120. L = inner(f, v)*dx +\ 121. inner(u_exact, dot(grad(v), n))*ds + beta*h_E**-

1*inner(u_exact, v)*ds 122. 123. uh = Function(V) 124. solve(a == L, uh) 125. 126. 127. #plot(uh, title='numeric') 128. #plot(u_exact, mesh=mesh, title='exact') 129. 130. #interactive() 131. plot(uh, interactive=True) 132. 133. 134. # Compute norm of error 135. E = FunctionSpace(mesh, 'CG', 4) 136. uh = interpolate(uh, E) 137. u = interpolate(u_exact, E) 138. e = uh - u 139. 140. norm_L2 = assemble(inner(e, e)*dx, mesh=mesh) 141. norm_H10 = assemble(inner(grad(e), grad(e))*dx, mesh=mesh) 142. norm_edge = assemble(h_E**-1*inner(e, e)*ds) 143. norm_H1 = norm_L2 + norm_H10 + norm_edge 144. 145. norm_L2 = sqrt(norm_L2) 146. norm_H1 = sqrt(norm_H1) 147. norm_H10 = sqrt(norm_H10) 148. 149. return Result(h=mesh.hmin(), L2=norm_L2, H1=norm_H1, H10=norm_H10) 150. 151. # ---------------------------------------------------------------------------

-- 152. 153. methods = [strong_poisson, nitsche1_poisson, nitsche2_poisson] 154. method = methods[1] 155. norm_type = 'L2' 156. R = method(N=4) 157. h_ = R.h 158. e_ = getattr(R, norm_type) 159. 160. for N in [8, 16, 32, 64, 128]: 161. R = method(N=N) 162. h = R.h 163. e = getattr(R, norm_type) 164. rate = ln(e/(e_))/ln(h/(h_)) 165. 166. print '{h:.3E} {e:.3E} {rate:.2f}'.format(h=h, e=e, rate=rate) 167. 168.

Page 184: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

170

1. ''' 2. Methode Nitsche couplé à l’équation de Stokes 3. 4. ''' 5. 6. from collections import namedtuple 7. from math import log as ln 8. from dolfin import * 9. 10. set_log_level(WARNING) 11. 12. Result = namedtuple('Result', ['h', 'u', 'p']) 13. 14. re = 300 15. f = Expression(('-pi*sin(pi*x[0]) + pi*pi*sin(pi*x[1])/re + 1', 16. 'pi*pi*sin(pi*x[0])/re'), re=re) 17. u_exact = Expression(('x[1] + sin(pi*x[1])', 'x[0] + sin(pi*x[0])')) 18. p_exact = Expression('x[0] + cos(pi*x[0])') 19. 20. 21. def standard_stokes(N, symmetric=True): 22. 'Standard symmetric/skew-symmetric formulation.' 23. 24. mesh = Mesh(Rectangle(0, 0, 20,4), N,N) 25. 26. V = VectorFunctionSpace(mesh, 'CG', 2) 27. Q = FunctionSpace(mesh, 'CG', 1) 28. M = MixedFunctionSpace([V, Q]) 29. 30. u, p = TrialFunctions(M) 31. v, q = TestFunctions(M) 32. 33. Re = Constant(re) 34. 35. if symmetric: 36. a = Re**-1*inner(grad(u), grad(v))*dx\ 37. - inner(p, div(v))*dx - inner(q, div(u))*dx 38. else: 39. a = Re**-1*inner(grad(u), grad(v))*dx\ 40. - inner(p, div(v))*dx + inner(q, div(u))*dx 41. 42. L = inner(f, v)*dx 43. 44. bc = DirichletBC(M.sub(0), u_exact, DomainBoundary()) 45. 46. A, b = assemble_system(a, L, bc) 47. uph = Function(M) 48. solve(A, uph.vector(), b) 49. 50. uh, ph = uph.split(True) 51. 52. # Pressure determined up to constant. Fix it to match the p_exact 53. Ph = ph.vector() 54. normalize(Ph) 55. Ph += 0.5 56.

Page 185: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

171

57. # plot(uh, title='u numeric') 58. # plot(ph, title='p numeric') 59. # plot(u_exact, title='u exact', mesh=mesh) 60. # plot(p_exact, title='p exact', mesh=mesh) 61. # interactive() 62. # Compute norm of error 63. 64. Eu = VectorFunctionSpace(mesh, 'DG', 5) 65. Ep = FunctionSpace(mesh, 'CG', 4) 66. 67. uh = interpolate(uh, Eu) 68. ph = interpolate(ph, Ep) 69. u = interpolate(u_exact, Eu) 70. p = interpolate(p_exact, Ep) 71. eu = uh - u 72. ep = ph - p 73. 74. error_u_L2 = assemble(eu**2*dx, mesh=mesh) 75. error_u_H10 = assemble(grad(eu)**2*dx, mesh=mesh) 76. error_u = sqrt(error_u_L2 + error_u_H10) 77. 78. error_p_L2 = assemble(ep**2*dx, mesh=mesh) 79. error_p = sqrt(error_p_L2) 80. 81. return Result(h=mesh.hmin(), u=error_u, p=error_p) 82. 83. 84. def nitsche_stokes(N, symmetric=True): 85. 'Symmetric or ske-symmetric Nitsche formulation.' 86. 87. mesh = RectangleMesh(0.0, 0.0, 20.0, 4.0, N,N) 88. 89. V = VectorFunctionSpace(mesh, 'CG', 2) 90. Q = FunctionSpace(mesh, 'CG', 1) 91. M = MixedFunctionSpace([V, Q]) 92. 93. u, p = TrialFunctions(M) 94. v, q = TestFunctions(M) 95. 96. Re = Constant(re) 97. h_E = mesh.ufl_cell().max_facet_edge_length 98. n = FacetNormal(mesh) 99. 100. if symmetric: 101. a = Re**-1*inner(grad(u), grad(v))*dx\ 102. - inner(p, div(v))*dx - inner(q, div(u))*dx\ 103. 104. L = inner(f, v)*dx 105. 106. # Add terms forcing dirichlet bcs 107. beta_value = 50 108. beta = Constant(beta_value) 109. 110. a += - Re**-1*inner(dot(grad(u), n), v)*ds\ 111. + inner(p*n, v)*ds\ 112. - Re**-1*inner(dot(grad(v), n), u)*ds\ 113. + inner(q*n, u)*ds\ 114. + beta/h_E/Re*inner(u, v)*ds 115. 116. L += - Re**-1*inner(dot(grad(v), n), u_exact)*ds\ 117. + inner(q*n, u_exact)*ds\

Page 186: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

172

118. + beta/h_E/Re*inner(u_exact, v)*ds 119. else: 120. # Add terms forcing dirichlet bcs 121. gamma_1_value = 4 122. gamma_2_value = 8 123. gamma_1 = Constant(gamma_1_value) 124. gamma_2 = Constant(gamma_2_value) 125. 126. a = Re**-1*inner(grad(u), grad(v))*dx\ 127. - inner(p, div(v))*dx + inner(q, div(u))*dx 128. 129. L = inner(f, v)*dx 130. 131. # Add terms enforcing boundary conditions 132. a += - Re**-1*inner(dot(grad(u), n), v)*ds\ 133. + inner(p*n, v)*ds\ 134. - Re**-1*inner(u, dot(grad(v), n))*ds\ 135. - inner(q*n, u)*ds\ 136. + gamma_1/h_E/Re*inner(u, v)*ds\ 137. + gamma_2/h_E*inner(dot(u, n), dot(v, n))*ds # No Re**-1 ! 138. 139. L += - Re**-1*inner(u_exact, dot(grad(v), n))*ds\ 140. - inner(q*n, u_exact)*ds\ 141. + gamma_1/h_E/Re*inner(u_exact, v)*ds\ 142. + gamma_2/h_E*inner(dot(u_exact, n), dot(v, n))*ds # No Re**-1 143. 144. A, b = assemble_system(a, L) 145. uph = Function(M) 146. solve(A, uph.vector(), b) 147. 148. uh, ph = uph.split(True) 149. # plot(uh, interactive=True) 150. plot(uh, interactive=True) 151. plot(ph, interactive=True) 152. # Pressure determined up to constant. Fix it to match the p_exact 153. Ph = ph.vector() 154. normalize(Ph) 155. Ph += 0.5 156. 157. # plot(uh, title='u numeric') 158. # plot(ph, title='p numeric') 159. # plot(u_exact, title='u exact', mesh=mesh) 160. # plot(p_exact, title='p exact', mesh=mesh) 161. # interactive() 162. # Compute norm of error 163. 164. Eu = VectorFunctionSpace(mesh, 'DG', 5) 165. Ep = FunctionSpace(mesh, 'CG', 4) 166. 167. uh = interpolate(uh, Eu) 168. ph = interpolate(ph, Ep) 169. u = interpolate(u_exact, Eu) 170. p = interpolate(p_exact, Ep) 171. eu = uh - u 172. ep = ph - p 173. 174. error_u_L2 = assemble(eu**2*dx, mesh=mesh) 175. error_u_H10 = assemble(grad(eu)**2*dx, mesh=mesh) 176. error_u = sqrt(error_u_L2 + error_u_H10) 177. 178. error_p_L2 = assemble(ep**2*dx, mesh=mesh)

Page 187: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

173

179. error_p = sqrt(error_p_L2) 180. 181. return Result(h=mesh.hmin(), u=error_u, p=error_p) 182. 183. 184. # ---------------------------------------------------------------------------

- 185. 186. methods = [standard_stokes, nitsche_stokes] 187. method = methods[1] 188. norm_type = 'u' 189. symmetric = True 190. 191. R = method(N=4, symmetric=symmetric) 192. h_ = R.h 193. e_ = getattr(R, norm_type) 194. for N in [16,32,64,128,254]: 195. R = method(N=N, symmetric=symmetric) 196. h = R.h 197. e = getattr(R, norm_type) 198. rate = ln(e/e_)/ln(h/h_) 199. print '{h:.3E} {e:.3E} {rate:.2f}'.format(h=h, e=e, rate=rate) 200. 201. 202. 203. 204. 205. interactive ()

Page 188: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

174

1. ''' 2. Nitche s method\Navier_stokes with free slip 3. boundary conditions. 4. ''' 5. 6. from dolfin import * 7. 8. # Create classes for defining parts of the boundaries and the interior 9. # of the domain 10. class Left(SubDomain): 11. def inside(self, x, on_boundary): 12. return near(x[0], 0.0) 13. 14. class Right(SubDomain): 15. def inside(self, x, on_boundary): 16. return near(x[0], 1.0) 17. 18. class Bottom(SubDomain): 19. def inside(self, x, on_boundary): 20. return near(x[1], 0.0) 21. 22. class Top(SubDomain): 23. def inside(self, x, on_boundary): 24. return near(x[1], 1.0) 25. 26. class Obstacle(SubDomain): 27. def inside(self, x, on_boundary): 28. return (between(x[1], (0.4, 0.6)) and between(x[0], (0, 1.0))) 29. 30. # Initialize sub-domain instances 31. left = Left() 32. top = Top() 33. right = Right() 34. bottom = Bottom() 35. obstacle = Obstacle() 36. 37. # Define mesh 38. mesh = UnitSquareMesh(64, 64) 39. 40. # Initialize mesh function for interior domains 41. domains = CellFunction("size_t", mesh) 42. domains.set_all(0) 43. obstacle.mark(domains, 1) 44. 45. # Initialize mesh function for boundary domains 46. boundaries = FacetFunction("size_t", mesh) 47. boundaries.set_all(0) 48. left.mark(boundaries, 1) 49. top.mark(boundaries, 2) 50. right.mark(boundaries, 3) 51. bottom.mark(boundaries, 4) 52. 53. # Define input data 54. a0 = Constant(10.0) 55. a1 = Constant(0.01) 56. 57. g_L = Expression("- 10*exp(- pow(x[1] - 0.5, 2))") 58. g_R = Constant("1.0") 59. f = Constant(1.0)

Page 189: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

175

60. 61. from dolfin import * 62. 63. f = Constant((0., 0.)) 64. u_inlet = Expression(('0', '0')) 65. u_wall = Constant((0., 0.)) 66. p_io = Constant(1000.) 67. mu = Constant(10) 68. 69. 70. 71. from dolfin import * 72. 73. def penalty(): 74. 'Enforcing u.n = 0 by penalty method.' 75. 76. V = VectorFunctionSpace(mesh, 'CG', 2) 77. Q = FunctionSpace(mesh, 'CG', 1) 78. M = MixedFunctionSpace([V, Q]) 79. 80. up = TrialFunction(M) 81. u, p = split(up) 82. 83. vq = TestFunction(M) 84. v, q = split(vq) 85. 86. up0 = Function(M) 87. u0, p0 = split(up0) 88. 89. inlet_bdry = 15 90. wall_bdry = 16 91. cylinder_bdry = 17 92. outlet0_bdry = 18 93. outlet1_bdry = 19 94. 95. mu = Constant(10) 96. ds = Measure('ds')[boundaries] 97. n = FacetNormal(mesh) 98. h = mesh.ufl_cell().max_facet_edge_length 99. 100. D = lambda u: sym(grad(u)) 101. S = lambda u, p: -p*Identity(2) + 2*mu*D(u) 102. t = lambda u, p: dot(S(u, p), n) 103. s = Constant(2) 104. 105. F = inner(dot(grad(u), u0), v)*dx + inner(2*mu*D(u), D(v))*dx\ 106. - inner(p, div(v))*dx - inner(q, div(u))*dx\ 107. - inner(dot(mu*grad(u).T, n), v)*ds(outlet0_bdry)\ 108. - inner(2*mu*dot(D(u), n), v)*ds(outlet1_bdry)\ 109. - inner(dot(t(u, p), n), dot(v, n))*ds(cylinder_bdry)\ 110. + (1/h**s)*inner(dot(u, n), dot(v, n))*ds(cylinder_bdry)\ 111. - inner(f, v)*dx + inner(p_io*n, v)*ds(outlet1_bdry) 112. 113. a, L = system(F) 114. 115. bc_inlet = DirichletBC(M.sub(0), u_inlet, boundaries, inlet_bdry) 116. bc_wall = DirichletBC(M.sub(0), u_wall, boundaries, wall_bdry) 117. bcs = [bc_inlet, bc_wall] 118. 119. up = Function(M) 120. iter = 0

Page 190: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

176

121. iter_max = 50 122. converged = False 123. tol = 1E-8 124. e = 0 125. while not converged and iter < iter_max: 126. iter += 1 127. print 'Iteration', iter 128. 129. up0.assign(up) 130. 131. A = assemble(a) 132. b = assemble(L) 133. [bc.apply(A, b) for bc in bcs] 134. 135. solve(A, up.vector(), b) 136. 137. if iter == 1: 138. converged = False 139. u, _ = up.split(True) 140. error0 = sqrt(assemble(inner(u, u)*dx)) 141. else: 142. u, _ = up.split(True) 143. error = sqrt(assemble(inner(u, u)*dx)) 144. e = abs(error - error0)/(error + error0) 145. error0 = error 146. converged = e < tol 147. 148. print '\t Error', e 149. 150. u, p = up.split(True) 151. 152. plot(u, title='Penalty, velocity') 153. plot(p, title='Penalty, pressure') 154. interactive() 155. 156. 157. def nitsche(): 158. '''Velocity bcs on wall and inlet as well as u.n=0 on cylinder are enforced

159. strongly.''' 160. 161. 162. V = VectorFunctionSpace(mesh, 'CG',2) 163. Q = FunctionSpace(mesh, 'CG', 1) 164. M = MixedFunctionSpace([V, Q]) 165. 166. u, p = TrialFunctions(M) 167. v, q = TestFunctions(M) 168. 169. up0 = Function(M) 170. u0, p0 = split(up0) 171. 172. # These are all marked boundaries 173. inlet_bdry = 15 174. wall_bdry = 16 175. cylinder_bdry = 17 176. outlet0_bdry = 18 177. outlet1_bdry = 19 178. 179. ds = Measure('ds')[boundaries] 180. n = FacetNormal(mesh)

Page 191: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

177

181. h = mesh.ufl_cell().max_facet_edge_length 182. 183. D = lambda u: sym(grad(u)) 184. S = lambda u, p: -p*Identity(2) + 2*mu*D(u) 185. t = lambda u, p: dot(S(u, p), n) 186. 187. # Volume parts 188. a = inner(dot(grad(u), u0), v)*dx\ 189. - inner(p, div(v))*dx - inner(q, div(u))*dx\ 190. + inner(2*mu*D(u), D(v))*dx 191. 192. L = inner(f, v)*dx 193. 194. # Add pressure boundary term 195. a += - inner(dot(2*mu*D(u), n), v)*ds(outlet1_bdry) 196. L += - inner(p_io*n, v)*ds(outlet1_bdry) 197. 198. # Add zero traction on oulet0 199. a += - inner(dot(mu*grad(u).T, n), v)*ds(outlet0_bdry) 200. 201. beta1 = Constant(40) 202. # Add free slip, u.n = 0 so nothing for L 203. a += - inner(dot(v, n), dot(t(u, p), n))*ds(cylinder_bdry)\ 204. - inner(dot(u, n), dot(t(v, q), n))*ds(cylinder_bdry)\ 205. + beta1*mu/h*inner(dot(u, n), dot(v, n))*ds(cylinder_bdry) 206. 207. # Add velocity 208. ds_u = ds(inlet_bdry) + ds(wall_bdry) 209. a += -inner(dot(S(u, p), n), v)*ds_u\ 210. - inner(dot(S(v, q), n), u)*ds_u\ 211. + beta1*mu/h*inner(u, v)*ds_u 212. 213. L += - inner(dot(S(v, q), n), u_inlet)*ds(inlet_bdry)\ 214. + beta1*mu/h*inner(u_inlet, v)*ds(inlet_bdry)\ 215. - inner(dot(S(v, q), n), u_wall)*ds(wall_bdry)\ 216. + beta1*mu/h*inner(u_wall, v)*ds(wall_bdry) 217. 218. # Add the advection terms 219. beta2 = Constant(10.) 220. # Return zero value for outflow 221. inflow = lambda u, n: conditional(lt(dot(u, n), 0), 222. dot(u, n), 223. Constant(0.)) 224. 225. a += beta2/h*inner(dot(u, n), dot(v, n))*ds_u\ 226. - inflow(u0, n)*inner(u, v)*ds_u 227. 228. L += beta2/h*inner(dot(u_inlet, n), dot(v, n))*ds(inlet_bdry)\ 229. - inflow(u0, n)*inner(u_inlet, v)*ds(inlet_bdry)\ 230. + beta2/h*inner(dot(u_wall, n), dot(v, n))*ds(wall_bdry)\ 231. - inflow(u0, n)*inner(u_wall, v)*ds(wall_bdry) 232. 233. up = Function(M) 234. iter = 0 235. iter_max = 50 236. converged = False 237. tol = 1E-8 238. e = -1 239. while not converged and iter < iter_max: 240. iter += 1 241. print 'Iteration', iter

Page 192: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

178

242. 243. up0.assign(up) 244. 245. À = assemble(a) 246. b = assemble(L) 247. 248. solve(A, up.vector(), b) 249. 250. if iter == 1: 251. converged = False 252. u, _ = up.split(True) 253. error0 = sqrt(assemble(inner(u, u)*dx)) 254. else: 255. u, _ = up.split(True) 256. error = sqrt(assemble(inner(u, u)*dx)) 257. e = abs(error - error0)/(error + error0) 258. error0 = error 259. converged = e < tol 260. 261. print '\t Error', e 262. 263. u, p = up.split(True) 264. 265. plot(u, title='Nitsche, velocity') 266. plot(p, title='Nitsche, pressure') 267. interactive() 268. 269. # ----------------------------------------------------------------------------

- 270. 271. #penalty() 272. nitsche()

Page 193: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

179

Équation de Navier Stokes pour deux fluides non miscibles

1. from dolfin import * 2. import ufl 3. import time 4. import os 5. 6. 7. # get file name 8. fileName = os.path.splitext(__file__)[0] 9. parameters["form_compiler"]["cpp_optimize"] = True 10. parameters["form_compiler"]["quadrature_degree"] = 8 11. parameters["form_compiler"]["quadrature_rule"] = 'auto' 12. 13. 14. 15. center = Interface(x(1), x(2)) 16. radius = 0.2 17. 18. 19. #parameters['linear_algebra_backend'] = 'uBLAS' 20. 21. 22. # Time stepping parameters 23. dt = 0.01 24. t_end = 10.0 25. theta=Constant(0.5) # theta schem 26. k=Constant(1.0/dt) 27. g=Constant((0.0,-1.0)) 28. 29. # Mesh 30. mesh = RectangleMesh(0.0,0.0,1.0,2.0,20,40,'crossed') 31. 32. #distance function 33. dist = Expression("sqrt((x[0]-A)*(x[0]-A) + (x[1]-B)*(x[1]-B))-

r", A=center[0], B=center[1],r=radius) 34. 35. class InitialCondition(Expression): 36. def eval(self, values, x): 37. values[0] = 0.0 38. values[1] = 0.0 39. values[2] = 0.0 40. values[3] = sqrt((x[0]-center[0])*(x[0]-center[0]) + (x[1]-

center[1])*(x[1]-center[1]))-radius 41. def value_shape(self): 42. return (4,) 43. 44. ic=InitialCondition() 45. 46. # Define function spaces 47. V = VectorFunctionSpace(mesh, "CG", 2) 48. P = FunctionSpace(mesh, "CG", 1) 49. L = FunctionSpace(mesh, "CG", 1) 50. W = MixedFunctionSpace([V, P, L]) 51. 52. # Define unknown and test function(s) 53. w = Function(W) 54. w0 = Function(W) 55. 56. (v_, p_, l_) = TestFunctions(W) 57.

Page 194: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

180

58. (v,p,l)=split(w) 59. (v0,p0,l0)=split(w0) 60. 61. bcs = list() 62. bcs.append( DirichletBC(W.sub(0), Constant((0.0, 0.0)), "near(x[0],0.0) || near(

x[0],1.0) || near(x[1],0.0)") ) 63. 64. rho1=1e3 65. rho2=1e2 66. mu1=1e1 67. mu2=1e0 68. eps=1e-4 69. 70. def Sign(q): 71. return conditional(lt(abs(q),eps),q/eps,sign(q)) 72. 73. def delta(q): 74. return conditional(lt(abs(q),eps),(1.0/eps)*0.5*(1.0+cos(3.14159*q/eps)),Con

stant(0.0)) 75. 76. def rho(l): 77. return(rho1 * 0.5* (1.0+ Sign(l)) + rho2 * 0.5*(1.0 - Sign(l))) 78. 79. def nu(l): 80. return(mu1 * 0.5* (1.0+ Sign(l)) + mu2 * 0.5*(1.0 - Sign(l))) 81. 82. def EQ(v,p,l,v_,p_,l_): 83. F_ls = inner(div(l*v),l_)*dx 84. T= -p*I + nu(l)*(grad(v)+grad(v).T) 85. F_ns = inner(T,grad(v_))*dx + rho(l)*inner(grad(v)*v, v_)*dx - rho(l)*inner(

g,v_)*dx 86. F=F_ls+F_ns 87. return(F) 88. 89. n = FacetNormal(mesh) 90. I = Identity(V.cell().geometric_dimension()) # Identity tensor 91. h = CellSize(mesh) 92. h_avg = (h('+') + h('-'))/2.0 93. alpha=Constant(0.1) 94. r = alpha('+')*h_avg*h_avg*inner(jump(grad(l),n), jump(grad(l_),n))*dS 95. 96. F=k*0.5*(theta*rho(l)+(1.0-theta)*rho(l0))*inner(v-v0,v_)*dx + k*inner(l-

l0,l_)*dx + theta*EQ(v,p,l,v_,p_,l_) + (1.0-theta)*EQ(v0,p,l0,v_,p_,l_) + div(v)*p_*dx + r

97. 98. J = derivative(F, w) 99. ffc_options = {"quadrature_degree": 4, "optimize": True, "eliminate_zeros": Fals

e} 100. problem=NonlinearVariationalProblem(F,w,bcs,J,ffc_options) 101. solver=NonlinearVariationalSolver(problem) 102. 103. prm = solver.parameters 104. #info(prm, True) 105. prm['nonlinear_solver'] = 'newton' 106. prm['newton_solver']['linear_solver'] = 'umfpack' 107. prm['newton_solver']['lu_solver']['report'] = False 108. prm['newton_solver']['lu_solver']['same_nonzero_pattern']=True 109. prm['newton_solver']['absolute_tolerance'] = 1E-10 110. prm['newton_solver']['relative_tolerance'] = 1E-10 111. prm['newton_solver']['maximum_iterations'] = 20 112. prm['newton_solver']['report'] = True

Page 195: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

181

113. #prm['newton_solver']['error_on_nonconvergence'] = False 114. 115. 116. w.assign(interpolate(ic,W)) 117. w0.assign(interpolate(ic,W)) 118. 119. (v,p,l) = w.split() 120. (v0,p0,l0) = w0.split() 121. 122. 123. def reinit(l,mesh): 124. #implement here: 125. # given mesh and function l on the mesh 126. # reinitialize function l such that |grad(l)|=1 127. # and the zero levelset does not change 128. 129. 130. 131. return l 132. 133. 134. #assign(l, interpolate (dist,L)) 135. #assign(l0, interpolate (dist,L)) 136. 137. # plot(l0,interactive=True) 138. #plot(rho(l),interactive=True) 139. # Create files for storing solution 140. vfile = File("%s.results/velocity.pvd" % (fileName)) 141. pfile = File("%s.results/pressure.pvd" % (fileName)) 142. lfile = File("%s.results/levelset.pvd" % (fileName)) 143. 144. v.rename("v", "velocity") ; vfile << v 145. p.rename("p", "pressure") ; pfile << p 146. l.rename("l", "levelset") ; lfile << l 147. 148. # Time-stepping 149. t = dt 150. while t < t_end: 151. 152. print "t =", t 153. 154. begin("Solving transport...") 155. solver.solve() 156. end() 157. 158. (v,p,l)=w.split(True) 159. v.rename("v", "velocity") ; vfile << v 160. p.rename("p", "pressure") ; pfile << p 161. l.rename("l", "levelset") ; lfile << l 162. 163. V=assemble(conditional(lt(l,0.0),1.0,0.0)*dx) 164. print "velocity= %e"%V 165. 166. # plot(v,interactive=True) 167. # Move to next time step 168. l1=reinit(l,mesh) 169. #assign(w.sub(2),interpolate(l1,L)) 170. 171. w0.assign(w) 172. t += dt # t:=t+1

Page 196: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

182

Page 197: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

183

Bibliographie

Abbas, S., Alizada, A., & Fries, T. P. (2010). The XFEM for high‐gradient solutions in

convection‐dominated problems. International journal for numerical methods in

engineering, 82(8), 1044-1072

Alnæs, M. S. (2012). UFL: a finite element form language. Automated Solution of

Differential Equations by the Finite Element Method, 303-338.

Alnæs, M. S., Logg, A., & Mardal, K. A. (2012). UFC: a finite element code generation

interface. Automated Solution of Differential Equations by the Finite Element Method, 283-

302.

Alnæs, M. S., & Mardal, K. A. (2012). SyFi and SFC: Symbolic finite elements and form

compilation. In Automated Solution of Differential Equations by the Finite Element Method

(pp. 273-282). Springer Berlin Heidelberg.

Anderson, D. M., McFadden, G. B., & Wheeler, A. A. (1998). Diffuse-interface methods in

fluid mechanics. Annual review of fluid mechanics, 30(1), 139-165.

Ausas, R. F., Dari, E. A., & Buscaglia, G. C. (2011). A geometric mass‐preserving

redistancing scheme for the level set function. International journal for numerical methods

in fluids, 65(8), 989-1010.

Babuška, I. (1973). The finite element method with Lagrangian multipliers. Numerische

Mathematik, 20(3), 179-192.

Bell, J. B., Colella, P., & Glaz, H. M. (1989). A second-order projection method for the

incompressible Navier-Stokes equations. Journal of Computational Physics, 85(2), 257-283.

Benk, J., Mehl, M., & Ulbrich, M. (2011, May). Sundance PDE solvers on Cartesian fixed

grids in complex and variable geometries. In Proceedings of “ECCOMAS Thematic

Conference on CFD and Optimization”, Antalya.

Bobenko, A. I., & Springborn, B. A. (2007). A discrete Laplace–Beltrami operator for

simplicial surfaces. Discrete & Computational Geometry, 38(4), 740-756.

Brackbill, J. U., Kothe, D. B., & Zemach, C. (1992). A continuum method for modelling

surface tension. Journal of computational physics, 100(2), 335-354.

Burman, E., & Fernández, M. A. (2007). Stabilized explicit coupling for fluid–structure

interaction using Nitsche's method. Comptes Rendus Mathematique, 345(8), 467-472.

Cheng, K. W., & Fries, T. P. (2012). XFEM with hanging nodes for two-phase

incompressible flow. Computer Methods in Applied Mechanics and Engineering, 245, 290-

312.

Page 198: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

184

Chessa, Jack, Patrick Smolinski, and Ted Belytschko 2002 The extended finite element

method (XFEM) for solidification problems. International Journal for Numerical Methods in

Engineering 53(8):1959-1977

Chessa, Jack, and Ted Belytschko 2003a An enriched finite element method and level sets

for axisymmetric two‐phase flow with surface tension. International Journal for Numerical

Methods in Engineering 58(13):2041-2064

Chessa, Jack, and Ted Belytschko 2003b An extended finite element method for two-phase

fluids Journal of Applied Mechanics 70(1):10-17.

Choi, Y. J., Hulsen, M. A., & Meijer, H. E. (2012). Simulation of the flow of a Viscoelastic

fluid around a stationary cylinder using an extended finite element method Computers &

Fluids, 57, 183-194.

Cosimo, A., Fachinotti, V., & Cardona, A. (2013). An enrichment scheme for solidification

problems. Computational Mechanics, 1-19.

Court, S., Fournié, M., & Lozinski, A. (2014). A fictitious domain approach for the Stokes

problembased on the extended finite element method. International Journal for Numerical

Methods in Fluids, 74(2), 73-99.

Dolbow, J. E., & Franca, L. P. (2008). Residual-free bubbles for embedded Dirichlet

problems. Computer Methods in Applied Mechanics and Engineering, 197(45), 3751-3759.

Duarte, C. A., & Oden, J. T. (1996). An hp adaptive method using clouds. Computer methods

in applied mechanics and engineering, 139(1-4), 237-262.

Duddu, R., Lavier, L. L., Hughes, T. J., & Calo, V. M. (2012). A finite strain Eulerian

formulation for compressible and nearly incompressible hyperelasticity using high‐order B‐

spline finite elements. International Journal for Numerical Methods in Engineering, 89(6),

762-785.

Duflot, M., Wyart, E., Lani, F., Martiny, P., & Sagnier, S. (2008). Application of XFEM to

multi-site crack propagation. Engng Fract Mech, submitted for publication.

Esser, P., Grande, J., & Reusken, A. (2010). An extended finite element method applied to

levitated droplet problems. International journal for numerical methods in engineering,

84(7),757-773

Everett III, H. (1963). Generalized Lagrange multiplier method for solving problems of

optimum allocation of resources. Operations research, 11(3), 399-417.

Fagerström, M., & Larsson, R. (2008). Approaches to dynamic fracture modelling at finite

deformations. Journal of the Mechanics and Physics of Solids, 56(2), 613-639.

Fries, T. P. (2009). The intrinsic XFEM for two‐fluid flows. International Journal for

Numerical Methods in Fluids, 60(4), 437-471.

Page 199: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

185

Fries, T. P., & Zilian, A. (2009). On time integration in the XFEM. International Journal for

Numerical Methods in Engineering, 79(1), 69-93.

Gavrilyuk, S., & Gouin, H. (1999). A new form of governing equations of fluids arising from

Hamilton's principle. International Journal of Engineering Science, 37(12), 1495-1520.

Ghoneim, A., Hunedy, J., & Ojo, O. A. (2013). An Interface-Enriched eXtended Finite

Element-Level Set Simulation of Solutal Melting of Additive Powder Particles during

Transient Liquid Phase Bonding. Metallurgical and Materials Transactions A, 44(2), 1139-

1151.

Gouin, H., & Gavrilyuk, S. (1999). Hamilton's principle and Rankine–Hugoniot conditions

for general motions of mixtures. Meccanica, 34(1), 39-47

Groß, S., & Reusken, A. (2007). An extended pressure finite element space for two-phase

incompressible flows with surface tension. Journal of Computational Physics, 224(1), 40-

58.

Hansbo, P., Hermansson, J., & Svedberg, T. (2004). Nitsche's method combined with space–

time finite elements for ALE fluid–structure interaction problems. Computer Methods in

Applied Mechanics and Engineering, 193(39), 4195-4206.

Hansbo, P., Larson, M. G., & Zahedi, S. (2014). A cut finite element method for a Stokes

interface problem. Applied Numerical Mathematics, 85, 90-114.

Harten, A., Engquist, B., Osher, S., & Chakravarthy, S. R. (1987). Uniformly high order

accurate essentially non-oscillatory schemes, III. Journal of computational physics, 71(2),

231-303.

Hosseini, S. S., Bayesteh, H., & Mohammadi, S. (2013). Thermo-mechanical XFEM crack

propagation analysis of functionally graded materials. Materials Science and Engineering:

A, 561, 285-302

Hughes, T. J., Franca, L. P., & Balestra, M. (1986). A new finite element formulation for

computational fluid dynamics: V. Circumventing the Babuška-Brezzi condition: a stable

Petrov-Galerkin formulation of the Stokes problem accommodating equal-order

interpolations. Computer Methods in Applied Mechanics and Engineering, 59(1), 85-99.

Hysing, S. (2006). A new implicit surface tension implementation for interfacial flows.

International Journal for Numerical Methods in Fluids, 51(6), 659-672.

Ji, H, D Chopp, and JE Dolbow 2002 A hybrid extended finite element/level set method for

modelling phase transformations. International Journal for Numerical Methods in

Engineering 54(8):1209-1233.

Ji, H., & Dolbow, J. E. (2004). On strategies for enforcing interfacial constraints and

evaluating jump conditions with the extended finite element method. International Journal

for Numerical Methods in Engineering, 61(14), 2508-2535.

Page 200: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

186

Khoei, A. R. (2014). Extended finite element method: theory and applications. John Wiley

& Sons.

Kirby, R. C., & Logg, A. (2007). Efficient compilation of a class of variational forms. ACM

Transactions on Mathematical Software (TOMS), 33(3), 17.

Kirby, R. C., & Logg, A. (2008). Benchmarking domain-specific compiler optimizations for

variational forms. ACM Transactions on Mathematical Software (TOMS), 35(2), 10.

Lee, P., Yang, R., & Maute, K. (2011). An extended finite element method for the analysis

of submicron heat transfer phenomena. In Multiscale Methods in Computational Mechanics

(pp. 195-212). Springer Netherlands.

Liao, J. H., & Zhuang, Z. (2012). A consistent projection-based SUPG/PSPG XFEM for

incompressible two-phase flows. Acta Mechanica Sinica, 28(5), 1309-1322.

Logg, A. (2009). Efficient representation of computational meshes. International Journal of

Computational Science and Engineering, 4(4), 283-295.

Logg, A., & Wells, G. N. (2010). DOLFIN: Automated finite element computing. ACM

Transactions on Mathematical Software (TOMS), 37(2), 20.

Logg, A., Wells, G. N., & Hake, J. (2012). DOLFIN: A C++/Python finite element library.

Automated Solution of Differential Equations by the Finite Element Method, 173-225.

Logg, A., Mardal, K. A., & Wells, G. (Eds.). (2012). Automated solution of differential

equations by the finite element method: The FEniCS book (Vol. 84). Springer Science &

Business Media.

Mandhan J.M., G.A. Gregory, K. Aziz (1974) A flow pattern map for gas-liquid flow in

horizontal pipesInt. J. Multiphase Flow, 1, pp. 537-553

Merle, R., & Dolbow, J. (2002). Solving thermal and phase change problems with the

extended finite element method. Computational mechanics, 28(5), 339-350.

Michlik, P., & Berndt, C. (2006). Image-based extended finite element modelling of thermal

barrier coatings. Surface and Coatings Technology, 201(6), 2369-2380.

Mittal, S. (2000). On the performance of high aspect ratio elements for incompressible flows.

Computer Methods in Applied Mechanics and Engineering, 188(1), 269-287.

Nitsche, J. (1971). Über ein Variationsprinzip zur Lösung von Dirichlet-Problemen bei

Verwendung von Teilräumen, die keinen Randbedingungen unterworfen sind.

Abhandlungen aus dem mathematischen Seminar der Universität Hamburg, Springer.

Osher, S., & Sethian, J. A. (1988). Fronts propagating with curvature-dependent speed:

algorithms based on Hamilton-Jacobi formulations. Journal of computational physics, 79(1),

12-49.

Page 201: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

187

Peng, D., Merriman, B., Osher, S., Zhao, H., & Kang, M. (1999). A PDE-based fast local

level set method. Journal of computational physics, 155(2), 410-438.

Pozrikidis, C. (2011). Introduction to theoretical and computational fluid dynamics. Oxford

university press.

Sauerland, Henning, and Thomas-Peter Fries 2013 The stable XFEM for two-phase flows.

Computers & Fluids 87:41-49

Shakib, F., Hughes, T. J., & Johan, Z. (1991). A new finite element formulation for

computational fluid dynamics: X. The compressible Euler and Navier-Stokes equations.

Computer Methods in Applied Mechanics and Engineering, 89(1-3), 141-219.

Skrzypczak, T., & Węgrzyn-Skrzypczak, E. (2012). Mathematical and numerical model of

solidification process of pure metals. International Journal of Heat and Mass Transfer,

55(15), 4276-4284.

Smolanski 2011, numerical modelling of two fluide interfacial flow, Dissertation, University

of Jyvaskyla

Sussman, M., Smereka, P., & Osher, S. (1994). A level set approach for computing solutions

to incompressible two-phase flow. Journal of Computational physics, 114(1), 146-159.

Sussman, M., Almgren, A. S., Bell, J. B., Colella, P., Howell, L. H., & Welcome, M. L.

(1999). An adaptive level set approach for incompressible two-phase flows. Journal of

Computational Physics, 148(1), 81-124.

Sussman, M., Smith, K. M., Hussaini, M. Y., Ohta, M., & Zhi-Wei, R. (2007). A sharp

interface method for incompressible two-phase flows. Journal of computational physics,

221(2), 469-505.

Talley, J. D., Worosz, T., & Kim, S. (2015). Characterization of horizontal air–water two-

phase flow in a round pipe part II: Measurement of local two-phase parameters in bubbly

flow. International Journal of Multiphase Flow, 76, 223-236.

Tezduyar, T. E. (1991). Stabilized finite element formulations for incompressible flow

computations. Advances in applied mechanics, 28, 1-44.

Tezduyar, T. E., Mittal, S., Ray, S. E., & Shih, R. (1992). Incompressible flow computations

with stabilized bilinear and linear equal-order-interpolation velocity-pressure elements.

Computer Methods in Applied Mechanics and Engineering, 95(2), 221-242.

Uchibori, A., & Ohshima, H. (2013). Numerical methods for compressible multiphase flow

with sodium-water chemical reaction. Journal of Power and Energy Systems, 7(2), 106-121.

Wang, Q., & Chen, J. (2015). A new unfitted stabilized Nitsche’s finite element method for

Stokes interface problems. Computers & Mathematics with Applications, 70(5), 820-834.

Page 202: Modélisation XFEM, Nitsche, Level-set et simulation sous FEniCS …€¦ · was proved from Newton’s laws and jump conditions at the interface was proved and detailed analytically.

188

Yu, T. T., & Gong, Z. W. (2013). Numerical simulation of temperature field in

heterogeneous material with the XFEM. Archives of civil and mechanical engineering,

13(2), 199-208.

Yvonnet, J., He, Q. C., Zhu, Q. Z., & Shao, J. F. (2011). A general and efficient computational

procedure for modelling the Kapitza thermal resistance based on XFEM. Computational

Materials Science, 50(4), 1220-1224

Zabaras, Nicholas, Baskar Ganapathysubramanian, and Lijian Tan 2006 Modelling

dendritic solidification with melt convection using the extended finite element method.

Journal of Computational Physics 218(1):200-227.

Zamani, A., Gracie, R., & Eslami, M. R. (2010). Higher order tip enrichment of extended

finite element method in thermoelasticity. Computational Mechanics, 46(6), 851-866.

Zhou, J. M., & Qi, L. H. (2010). Treatment of discontinuous interface in liquid-solid forming

with extended finite element method. Transactions of Nonferrous Metals Society of China,

20, s911-s915.