84
3 Interaction d’un fluide incompressible avec une membrane élastique
3.6.1 Membrane sans cisaillement
Membrane élastique oscillante en 2D : codes FreeFEM++ et
Matlab
Revenons sur ce cas déjà été évoqué pour étudier la stabilité des méthodes
de discrétisation en temps. Nous donnons ci-dessous un code utilisant la
bibliothèque d’élément finis FreeFEM++[85] qui met en évidence la simplicité
de la mise en oeuvre des méthodes Level Set dans ce contexte. Le but est ici
pédagogique, et les codes sont donnés dans leur version numérique la plus
simple : la discrétisation en temps est faite par une méthode d’Euler explicite,
le pas de temps est constant et l’équation de transport pour la fonction Level
Set est résolue par méthode des caractéristiques. Le cas test visé est celui déjà
utilisé dans [96] pour la validation des méthodes de frontières immergées.
La formulation variationnelle du problème s’écrit plus naturellement avec
la forme (3.16) de la force élastique :
F = div
E
(|∇ϕ|)|∇ϕ|
I −
∇ϕ ⊗ ∇ϕ
|∇ϕ| 2
1
ε
ζ
ϕ
ε
.
Le programme ci-dessous propose une implémentation en moins de cent lignes
de ce problème simple de couplage fluide-structure, en utilisant la méthode
des éléments finis et le logiciel FreeFEM++. Les équations de la mécanique
des fluides sont résolues par une discrétisation P 2 − P 1 et la fonction level-set
est discrétisée en éléments P 2 (lignes 20 à 22).
Le cas test consiste en une ellipse étirée qui relaxe vers un cercle. On
commence par calculer une fonction distance signée à cette ellipse à partir d’une
équation implicite, en résolvant une équation d’Hamilton-Jacobi (lignes 34 à
46). Cette étape peut être désormais effectuée directement sous FreeFEM++
qui permet de calculer la distance à une hypersurface décrite par une ligne de
niveau. La formulation variationnelle du problème fluide est décrite lignes 64 à
74, en version monolithique. La fonction convect du logiciel, qui implémente
la méthode des caractéristiques, est utilisée pour résoudre les équations de
transport de la fonction level-set et les termes convectifs des équations fluides.
1
load " iovtk "
2
3
// parametres
4
real xm =2;
// Taille de la boite
5
real ym =2;
6
int n =30 , m =30;
// nombre de points un cote
7
real A =0.75 , B =0.5;
// Dimensions de l ’ ellipse
8
real LARGINT =1.5;
// Largeur de l ’ interface
9
real lambda = 1;
// Coefficient de raideur
10
real Re =100;
// Nombre de Reynolds = 1/ viscosite
11
real ETIRINI = 1.26253110; // Etirement initial
3 Interaction d’un fluide incompressible avec une membrane élastique
3.6.1 Membrane sans cisaillement
Membrane élastique oscillante en 2D : codes FreeFEM++ et
Matlab
Revenons sur ce cas déjà été évoqué pour étudier la stabilité des méthodes
de discrétisation en temps. Nous donnons ci-dessous un code utilisant la
bibliothèque d’élément finis FreeFEM++[85] qui met en évidence la simplicité
de la mise en oeuvre des méthodes Level Set dans ce contexte. Le but est ici
pédagogique, et les codes sont donnés dans leur version numérique la plus
simple : la discrétisation en temps est faite par une méthode d’Euler explicite,
le pas de temps est constant et l’équation de transport pour la fonction Level
Set est résolue par méthode des caractéristiques. Le cas test visé est celui déjà
utilisé dans [96] pour la validation des méthodes de frontières immergées.
La formulation variationnelle du problème s’écrit plus naturellement avec
la forme (3.16) de la force élastique :
F = div
E
(|∇ϕ|)|∇ϕ|
I −
∇ϕ ⊗ ∇ϕ
|∇ϕ| 2
1
ε
ζ
ϕ
ε
.
Le programme ci-dessous propose une implémentation en moins de cent lignes
de ce problème simple de couplage fluide-structure, en utilisant la méthode
des éléments finis et le logiciel FreeFEM++. Les équations de la mécanique
des fluides sont résolues par une discrétisation P 2 − P 1 et la fonction level-set
est discrétisée en éléments P 2 (lignes 20 à 22).
Le cas test consiste en une ellipse étirée qui relaxe vers un cercle. On
commence par calculer une fonction distance signée à cette ellipse à partir d’une
équation implicite, en résolvant une équation d’Hamilton-Jacobi (lignes 34 à
46). Cette étape peut être désormais effectuée directement sous FreeFEM++
qui permet de calculer la distance à une hypersurface décrite par une ligne de
niveau. La formulation variationnelle du problème fluide est décrite lignes 64 à
74, en version monolithique. La fonction convect du logiciel, qui implémente
la méthode des caractéristiques, est utilisée pour résoudre les équations de
transport de la fonction level-set et les termes convectifs des équations fluides.
1
load " iovtk "
2
3
// parametres
4
real xm =2;
// Taille de la boite
5
real ym =2;
6
int n =30 , m =30;
// nombre de points un cote
7
real A =0.75 , B =0.5;
// Dimensions de l ’ ellipse
8
real LARGINT =1.5;
// Largeur de l ’ interface
9
real lambda = 1;
// Coefficient de raideur
10
real Re =100;
// Nombre de Reynolds = 1/ viscosite
11
real ETIRINI = 1.26253110; // Etirement initial
