Optimisation D'une Buse Convergente Ou Divergente en Écoulement À Bas Reynolds
Optimisation D'une Buse Convergente Ou Divergente en Écoulement À Bas Reynolds
Adrien Rouviere
Master 1 Mécanique & Énergétique
Encadrant
M. David Fabre
2
Table des matières
Introduction 4
1 Configuration du problème 4
1.1 Géométrie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Équations générales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 Modélisation numérique 5
2.1 Résolution numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.1 Méthode du point fixe de Newton . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.2 Formulation variationnelle . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2 Validation du maillage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.1 Influence de la densité de maillage . . . . . . . . . . . . . . . . . . . . . . 7
2.2.2 Influence de la longueur de sortie après le convergent . . . . . . . . . . . . 8
3 Optimisation du convergent 9
3.1 Influence de la longueur du convergent . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2 Influence du rapport de contraction κ = D/d . . . . . . . . . . . . . . . . . . . . 10
3.3 Influence du profil d’entrée à travers la section d’entrée Sin . . . . . . . . . . . . . 10
Conclusion 13
Références 14
3
Introduction
L’essor de l’industrie aéronautique et la volonté de toujours réduire les coûts énergétiques
et financiers lors de l’élaboration d’un nouvel appareil ont mené les ingénieurs et chercheurs à
concevoir des souffleries afin de pouvoir tester des formats réduits à travers des écoulements d’air
les plus uniformes possibles. Les règles établies depuis le début des recherches dans ce domaine
ont montrées que faire passer un écoulement à travers une buse convergente réduisant la section
d’un facteur 10, et accélérant donc l’écoulement, était alors la solution optimale. Ces solutions
ont également pu être utilisées avec la même réussite dans le cas de la génération d’un jet avec
un profil de vitesse le plus plat possible.
Cependant ces règles ont toutes été établies pour des applications aérodynamiques, et donc
pour des nombres de Reynolds très grand, de l’ordre de Re ∼ 105 . Il n’est pas du tout évident
que ces mêmes règles s’appliquent à des gammes de nombres de Reynolds beaucoup plus faibles,
de l’ordre de 100 à 1000, et ce pour d’autres applications, médicales par exemple.
Dans cette étude, nous nous intéressons donc à savoir quelles règles du même type pour-
raient être établies lors d’écoulements à faibles nombres de Reynolds, à travers une simulation
numérique par éléments finis réalisée à l’aide du logiciel FreeFem++ ; le but étant d’arriver à
obtenir des modèles d’écoulements laminaires, stationnaires, sans décollements, et dont le profil
de vitesse serait le plus plat possible.
1 Configuration du problème
1.1 Géométrie
Nous considérons un fluide incompressible avançant de gauche à droite entre deux plans
parallèles de longueur Ldroit et débouchant dans une section réduite de longueur xout à travers
un convergent de longueur Lconv . Les sections d’entrée et de sortie sont nommées respectivement
Sin et Sout , alors que nous nommerons les bords supérieurs et inférieurs de notre buse Slim . Le
fluide, de masse volumique ρ et de viscosité cinématique ν est caractérisé par son nombre de
Reynolds Re = Umax d
ν , où Umax est la vitesse maximale du fluide au travers de Sin et où d est la
largeur du canal de sortie. La géométrie du problème est représentée sur la figure 1.
Par la suite, la taille de la section de sortie Sout sera fixée à d=2 et restera inchangée.
4
y
Ldroit Lconv
S
lim
Sin
D = κd
Sout
d x
xstartC 0
xout
xstart
Figure 1 – Domaine d’étude
Nous posons comme conditions limites un profil de type Poiseuille en entrée et une condition
d’adhérence sur les parois :
y2
max 1 − 2
U ex sur Sin ,
u= h (3)
0 sur Slim .
2 Modélisation numérique
2.1 Résolution numérique
Le logiciel utilisé dans cette étude est FreeFem++, basé sur la méthode des éléments finis
et écrit en C++ [3, 4]. Le domaine de calcul étant discrétisé en triangles grâce à un algorithme
de Delaunay–Voronoi, nous choisissons d’interpoler les champs de vitesse et de pression respec-
tivement par des éléments quadratiques P2 (6 degrés de libertés par triangle) et linéaires P1 (3
degrés de libertés par triangle) [2].
5
va donc nécessiter une méthode spéciale pour traiter la non-linéarité [1]. Nous utilisons alors la
méthode de Newton qui consiste à déterminer un point fixe des équations (2) de façon itérative
[6]. Pour cela, nous écrivons que le champs de vitesse et de pression à une itération n + 1 est égal
au même champ à l’itération n, auquel s’ajoute une correction δ :
n+1 n
u u δu
= + . (4)
pn+1 pn δp
∇·(δu) + ∇·(un ) = 0,
(5a)
1 1
(un ∇)δu + (δu ∇)un + ∇ δp − ∆δu + (un ∇)un + ∇ pn − ∆un = 0. (5b)
Re Re
¨
1
= [(un ∇)δu] v + [(δu ∇)un ] v − δp ∇ v + ∇ δu : ∇ v dS
Ω Re
¨
n n n 1 n
+ [(u ∇)u ] v − p ∇· v + ∇ u : ∇ v dS. (9)
Ω Re
Les termes de bord, dûs à l’utilisation de la formule de Green lors de l’intégration par parties
des termes comportant un gradient ou un laplacien, s’annulent en tant que condition limite de
vitesse nulle aux parois.
Le problème variationnel (6) finalement permet d’obtenir la correction (δu, δp). En introdui-
sant un critère d’arrêt σ et un paramètre de convergence (ici nous prendrons = 2 × 10−12 ),
la démarche utilisée pour résoudre les équations de Navier-Stokes est donc la suivante :
1. Choix d’un u0 ∈ Rn ,
2. Pour i allant de 0 à 14 :
6
(a) Résolution de la formulation variationnelle (6) et obtention de (δu, δp),
(b) (un+1 , pn+1 ) = (un + δu, pn + δp),
(c) Si σ > , alors i = i + 1. Sinon la convergence est obtenue et le calcul s’arrête.
7
Maillage Nombre de triangles Temps pour Re = 250
1 9362 14,68 s
2 38312 97,14 s
3 2908 5,66 s
Pour chacun de ces maillages, l’écoulement dans la buse a été calculé et étudié, et le profil
de vitesse après le convergent a été tracé. Par exemple, la figure 2 nous montre les profils de
vitesse à différentes distances de la sortie du convergent et pour une valeur de Re = 250. Nous
remarquons que pour les maillages 1 et 2, aucune différence significative n’est perceptible entre
les différents profils de vitesse, malgré un nombre d’éléments 4 fois plus élevés pour le maillage
1. En revanche, le temps de calcul est lui multiplié par 7, passant de 15 s à 97 s.
De plus, nous observons sur la première courbe de la figure 2, représentant un zoom sur le
profil de vitesse, que ce dernier en x = 1 présente des différences selon que le maillage 3 ou les
maillages 1 et 2 sont utilisés. Les résultats étant moins précis et comportant des irrégularités pour
le maillage le plus grossier, nous choisissons donc de poursuivre nos simulations avec le maillage
1, offrant un bon compromis entre un temps de calcul peu couteux et une précision suffisante.
0.5 1 1 1
Maillage 2 Maillage 2
Maillage 3 Maillage 3 Maillage 3 Maillage 3
-0.1 -0.2 -0.2 -0.2
-0.5 -1 -1 -1
0.8 0.82 0.84 0 0.5 1 0 0.5 1 0 0.5 1
u(1, y) u(1, y) u(8, y) u(14, y)
Figure 2 – Profil de vitesse pour Re = 250 en x = 1 (avec et sans zoom) , x = 8 et 14 pour les
différents maillages répertoriés dans le tableau 1.
8
1 1 1
y
xout = 150 xout = 150 xout = 150
-0.2 -0.2 -0.2
-1 -1 -1
0 0.5 1 0 0.5 1 0 0.5 1
u(1, y) u(8, y) u(14, y)
3 Optimisation du convergent
Afin de caractériser l’aspect plat ou non d’un profil, nous nous proposons de calculer le
rapport entre la médiane de la vitesse et le maximum de la vitesse. En effet, plus la médiane
de la vitesse est proche du maximum, plus le nombre de points ayant une vitesse proche du
maximum est élevé. Notons que cette méthode ne donne aucune indication sur la norme de la
vitesse, ou sur la présence ou non d’irrégularités ou d’instabilités pouvant éventuellement être
observées pour certains Re.
1.15 1
Re=10
Re=100 0.8
1.1
Re=300
Re=500 0.6
1.05 Re=700
Re=900 0.4 Lconv =0
1 Lconv =2
Umediane /Umax
Ordonnée Y
0.2
Lconv =4
0.95
0 Lconv =6
Lconv =8
0.9 -0.2 Lconv =12
Lconv =20
0.85 -0.4
-0.6
0.8
-0.8
0.75
-1
0 2 4 6 8 10 12 14 16 18 20 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
L conv Vitesse U
(a) (b)
Figure 4 – Influence de la longueur du convergent sur le profil de vitesse en sortie de buse. (a)
Vitesse médiane sur vitesse maximale en sortie de convergent pour différents Re et différents
Lconv . (b) Profil de vitesse pour Re = 500 selon différents Lconv .
9
Nous observons sur la figure 4(a), représentant Umediane /Umax en fonction de Lconv et pour
différents Re, que pour un nombre de Reynolds inférieur à 100, un profil de vitesse le plus plat
possible est obtenu pour un convergent brusque. En revanche, pour des Re compris entre 300 et
1000, nous obtenons un profil le plus plat possible pour une longueur de convergent de 6. Nous
notons que à partir de Re = 300, toutes les courbes de la figure 4(a) suivent la même tendance.
Dans la mesure où la taille de la section de sortie a été établie à d = 2, nous pouvons introduire
le rapport Υ = Lconv /d, et déduire de ces résultats que le profil de vitesse optimal est obtenu
pour un rapport de l’ordre de Υ ∼ 3.
Le profil de vitesse pour Re = 500 est tracé sur la figure 4(b) en fonction de différentes
longueurs de convergent. Nous observons ici que le profil présente des irrégularités pour un
convergent brusque (Lconv = 0 ou 2), alors qu’à partir de Lconv = 4, la vitesse tend à revenir
vers un profil de type Poiseuille.
Enfin, loin après le convergent, la longueur de celui-ci n’a plus aucune influence puisque
quelque soit le nombre de Reynolds testé entre 1 et 1000, toutes les vitesses retrouvent un profil
de type Poiseuille du fait de la relative importance des forces de viscosité pour des nombres de
Reynolds de ces ordres de grandeurs.
10
1.15 1
Re=10
Re=100
0.8
1.1 Re=300
Re=500
Re=700 0.6
1.05
Re=900
0.4 k=2
1 k=3
Umediane /Umax
Ordonnée Y
0.2 k=4
k=5
0.95
0 k=6
k=7
0.9 -0.2 k=8
k=10
0.85 -0.4 k=12
-0.6
0.8
-0.8
0.75
-1
2 3 4 5 6 7 8 9 10 11 12 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
κ = D/d Vitesse U
(a) (b)
Figure 5 – Influence du rapport κ = D/d sur le profil de vitesse en sortie de buse. (a) Vitesse
médiane sur vitesse maximale en sortie de convergent pour différents Re et différents κ. (b) Profil
de vitesse pour Re = 500 selon différents κ.
1 1 1 1 Poiseuile
Poiseuile Poiseuile Poiseuile
Constant Constant Constant Constant
0.8 0.8 0.8 0.8
Ordonnée Y
Ordonnée Y
Ordonnée Y
0.2 0.2 0.2 0.2
0 0 0 0
-1 -1 -1 -1
0 0.5 1 1.5 0 0.5 1 1.5 0 0.5 1 1.5 0 0.5 1 1.5
Vitesse U Vitesse U Vitesse U Vitesse U
Figure 6 – Influence du profil en entrée de buse sur le profil de vitesse en sortie de convergent
11
Re = 300, Vitesse longitudinale u Re = 300, Vitesse longitudinale u Re = 300, Vitesse longitudinale u
également avec le Re, et ce quelque soit la longueur du divergent [5]. Nous notons également
l’apparition d’instabilités dans l’écoulement à partir d’un certain Re, le rendant asymétrique.
Nous avons voulu approfondir ce phénomène.
4.2 Instabilités
Pour caractériser l’ampleur de l’instabilité, nous nous fixons un critère A représentant une
somme de vitesses transversales v de deux points d’une même abscisse et d’ordonnée opposée,
ces deux vitesses étant opposées lorsque aucune dissymétrie n’est présente dans l’écoulement :
12
0.3 x=2
x=5
x=10
0.2 x=25
x=40
A = v(.,3)+v(.,-3)
0.1
(a)
0
-0.1
-0.2
-0.3
Conclusion
Au cours de cette étude, nous avons utilisé la méthode des éléments finis en utilisant le lo-
giciel FreeFem++ afin de simuler l’écoulement à faibles nombres de Reynolds dans une buse
convergente, puis divergente.
La première partie de notre travail a consisté à valider le maillage généré par le logiciel et à
l’améliorer, en gardant à l’esprit qu’un compromis entre la précision des résultats et l’optimisa-
tion des temps de calculs devait être obtenu. Nous en sommes arrivés à la conclusion que si un
maillage trop fin n’entrainait pas un surplus de précision et des résultats différents par rapport à
un maillage légèrement moins dense mais bien moins coûteux en temps de calculs, la génération
d’un maillage trop grossier nuisait à la simulation en introduisant des perturbations dans le profil
de vitesses. De plus, nous avons montré que la taille du domaine simulé n’avait pas d’influence
sur nos calculs dans la mesure où les bonnes conditions limites été imposées.
En analysant l’écoulement à travers une buse convergente dont nous avons fait varier suc-
cessivement divers paramètres géométriques (longueur du convergent, rapport de contraction
avant/après convergent), nous avons montré que des résultats différents été obtenus selon que
le nombre de Reynolds soit supérieur ou inférieur à un ordre de grandeur de 100. Les résultats
nous ont indiqués qu’une buse convergente avec un rapport de contraction κ de l’ordre de 5 à 6
et d’un rapport Υ d’environ 3 semblait être optimale dans l’optique de l’obtention d’un profil de
vitesse le plus plat possible.
Enfin, en s’intéressant à une buse divergente, nous nous sommes aperçus que des zones de
recirculations apparaissaient juste en sortie du divergent, et que l’apparition d’instabilités ve-
naient perturber l’écoulement à partir d’un certain nombre de Reynolds critique propre à chaque
géométrie. Ces instabilités mériteraient par la suite d’être étudiées plus en détail afin de se ren-
seigner sur leurs origines, et ceci en mettant en place une étude de stabilité et en ne considérant
plus par la suite un écoulement stationnaire.
13
Références
[1] Sylvain Auliac : Développement d’outils d’optimisation pour FreeFem++. Thèse de doctorat,
Université Pierre et Marie Curie, mars 2014.
[2] Aboubakr Diop : Étude de stabilité d’un jet impactant confiné. Mémoire de D.E.A., Uni-
versité Paul Sabatier, 2015.
[3] Frédéric Hecht : FreeFem++. Laboratoire Jacques-Louis Lions, Université Pierre et Marie
Curie, Paris, third edition, version 3.51 édition.
[4] Frédéric Hecht : New development in freefem++. Journal of Numerical Mathematics,
20(3–4):251–265, 2012.
[5] Mamta Jotkar, José Miguel Pérez, Vassilis Theofilis et Rama Govindarajan : Insta-
bility mechanisms in straight-diverging-straight channels. Procedia IUTAM, 14:236 – 245,
2015.
[6] Guillaume Legendre : Méthodes numériques. introduction à l’analyse numérique et au
calcul scientifique. Université Paris Dauphine, juillet 2016.
14
A Code de maillage d’une buse convergente
Un exemple du code pour créer la géométrie et le maillage d’une buse convergente, écrit en
C++ avec le logiciel d’éléments finis FreeFem++, est donné ci-dessous (code 2) :
15
49 −−−−−−−−−−−−−−−− */
50
51 /* Axe de symetrie */
52 border axis(t=xstart,xout){x=t ;y=0; label=6;};
53
54 /* Limite droite */
55 border outlet(t=−yorifice,yorifice){x=xout; y=t; label=5;};
56 border outletdemi(t=0,yorifice){x=xout; y=t; label=5;};
57
58 /* Sup apres cvg */
59 border droitapresconvh(t=xout,xorifice){x=t; y=yorifice; label=2;};
60 border droitapresconvb(t=xorifice,xout){x=t; y=−yorifice; label=3;};
61
62 /* Convergent */
63 border convergenth(t=Lconv,0){x=(xstartC+t); y=(pp0+pp1*t+pp2*t^2+pp3*t^3+pp4*t^4
+pp5*t^5+pp6*t^6); label=2;};
64 border convergentb(t=0,Lconv){x=(xstartC+t); y=−(pp0+pp1*t+pp2*t^2+pp3*t^3+pp4*t^
4+pp5*t^5+pp6*t^6); label=3;};
65
66 /* Sup avant cvg */
67 border droith(t=Ldroit,0){x=xstart+t;y=R0;label=2;};
68 border droitb(t=xstart,−Lconv){x=t;y=−R0;label=3;};
69
70 /* Limite gauche */
71 border inlet(t=ydroit,−ydroit){x=xstart; y=t; label=1;};
72 border inletdemi(t=ydroit,0){x=xstart; y=t; label=1;};
73
74 /* −−−−−−−−−−−−−−−−−−−−
75 PLOT Domaine
76 −−−−−−−−−−−−−−−−−−−− */
77
78 int Nin = 10*ydroit; //50;
79 int Nout = 10*yorifice; //50;
80 int Ndroit = 5*Ldroit;
81 int Ntuy = 6*(xout); //200;
82 int Nconv = 7*(sqrt((xstartC)^2+(yorifice−ydroit)^2)); //50;
83 int Naxis = 5*axe;
84 int Nzoom = 2;
85
86 /* Geometrie entiere */
87 plot(droitb(Nin)
88 + convergentb(Nconv)
89 + droitapresconvb(Ntuy)
90 + outlet(Nout)
91 + droitapresconvh(Ntuy)
92 + convergenth(Nconv)
93 + droith(Nin)
94 + inlet(Nin)
95 + Obj1(−Nzoom)
96 , wait=1, ps="FIGURE/GeometrieConv.eps");
97
98 /* −−−−−−−−−−−−−−−−−
99 MAILLAGE
100 −−−−−−−−−−−−−−−−− */
101
102 /* Geometrie entiere */
16
103 mesh th = buildmesh(droitb(Ndroit)
104 + convergentb(Nconv)
105 + droitapresconvb(Ntuy)
106 + outlet(Nout)
107 + droitapresconvh(Ntuy)
108 + convergenth(Nconv)
109 + droith(Ndroit)
110 + inlet(Nin));
111
112 plot(th,ps="FIGURE/MeshConvergent.eps");
113
114 savemesh(th,"mesh_guess.msh");
115
116 fespace V1h(th,[P2,P2,P1]);
117 V1h [v,u,p];
118 u[]= 0;
119
120 /* −−−−−−−−−−−−−−−−
121 EXPORT
122 −−−−−−−−−−−−−−−− */
123
124 {
125 ofstream U("chbase_guess.txt");
126 U << v[];
127 U << endl << 1;
128 }
129
130 {
131 ofstream file("Parametres_maillage.txt");
132 file << Ldroit << " " << Lconv << " " << L << " " << xstart << " " << xout << " "
<< xstartC << " " << xorifice << " " << ydroit << " " << yorifice;
133 };
17
B Code de résolution des équations de Navier-Stokes incompres-
sibles
Un exemple du code pour résoudre les équations de Navier-Stokes incompressibles dans la
buse à l’aide de la méthode itérative de Newton est donné ci-dessous(code 3) :
18
47 {
48 ifstream file("Reynolds.txt");
49 file >> Re;
50 }
51 else
52 {
53 Re = lecture;
54 };
55
56 cout << "Reynolds = " << Re << endl;
57
58 /* −−−−−−−−−−−−−−−−−−−−−−−−
59 Nombres physiques
60 −−−−−−−−−−−−−−−−−−−−−−−− */
61
62 real d = 2*yorifice; // largeur buse = 2*yorifice
63 real dstart = 2*ydroit; // = 2*ystart
64 real ddroit = ydroit; // largeur avant convergent
65
66 real Umean = 1; // Vitesse moyenne au bec
67 real Umeaninlet = Umean*d/dstart;
68 real nu = Umean*d/Re; // Viscosite cinematique
69
70 macro Uinlet(y) Umeaninlet*(1/ydroit^2)*(ydroit^2−y^2) // Poiseuille
71
72 /* −−−−−−−−−−−−−−−−−−−−−
73 Navier−Stokes
74 −−−−−−−−−−−−−−−−−−−−− */
75
76 femp2xfemp2xfemp1 [ub1,ub2,pb];
77 femp2xfemp2xfemp1 [du1,du2,dp];
78 femp2xfemp2xfemp1 [v1,v2,q];
79
80 /* Fichier demarage */
81 {
82 ifstream file("chbase_guess.txt");
83 file >> ub1[];
84 file >> Reans;
85 cout << "Reynolds chbase guess = " << Reans << endl;
86 };
87
88 /* Resolution */
89 real ener1 = 1;
90 real ener2,reslinf,resl2;
91 real limite = 2.e−12;
92
93 int i=0;
94 while((ener1>limite)&(i<=14))
95 {
96 {
97 solve NS([du1,du2,dp],[v1,v2,q])=
98 int2d(th)(nu*(dx(du1)*dx(v1)+dy(du1)*dy(v1)+dx(du2)*dx(v2
)+dy(du2)*dy(v2))
99 + v1*(du1*dx(ub1)+du2*dy(ub1)+ub1*dx(du1)+ub2*dy(
du1))
100 + v2*(du1*dx(ub2)+du2*dy(ub2)+ub1*dx(du2)+ub2*dy(
19
du2))
101 − dp*(dx(v1)+dy(v2))
102 + q*(dx(du1)+dy(du2)))
103 − int2d(th)(− nu*(dx(ub1)*dx(v1)+dy(ub1)*dy(v1)+dx(ub2)*
dx(v2)+dy(ub2)*dy(v2))
104 − v1*(ub1*dx(ub1)+ub2*dy(ub1))
105 − v2*(ub1*dx(ub2)+ub2*dy(ub2))
106 + pb*(dx(v1)+dy(v2))
107 − q*(dx(ub1)+dy(ub2)))
108 + on(1,du1=Uinlet(y)−ub1,du2=−ub2)
109 + on(2,3,du1=−ub1,du2=−ub2);
110
111 ener1=sqrt(int2d(th)(du1^2+du2^2)/th.area);
112 ener2=sqrt(int2d(th)((ub1−1)^2+ub2^2)/th.area);
113
114 cout << " res = " << ener1 << endl;
115
116 ub1[]+=du1[];
117 };
118 i++;
119 {
120 ofstream file("WORK/NSnewton"+int(Re)+".txt",append);
121 file << i << " " << ener1 << " " << ener2 << " " << ener1/
ener2 << " " << reslinf << " " << resl2 << endl;
122 };
123 };
124
125 /* −−−−−−−−−−−−−−−−−−−−−−−−−−−
126 Fonction de courant
127 −−−−−−−−−−−−−−−−−−−−−−−−−−− */
128
129 femp1 rot;
130 femp2 psi, psis;
131
132 rot = dx(ub2)−dy(ub1);
133
134 solve Courant(psi,psis) =
135 int2d(th)(dx(psi)*dx(psis)+dy(psi)*dy(psis))
136 + on(2,psi=Umean*d/2)
137 + on(3,psi=−Umean*d/2);
138
139 plot(psi,nbiso=20,wait=1);
140
141 /* −−−−−−−−−−−−−−−−−
142 Affichage
143 −−−−−−−−−−−−−−−−− */
144
145 /* Temps */
146
147 cout << " CPU time = " << clock()−cpu << endl;
148
149 /* Reynolds */
150
151 cout << " Reynolds = " << Re << endl;
152
153 /* Geometrie */
20
154
155 cout << " D/d = " << dstart/d << endl;
156 cout << " Lconv = " << Lconv << endl;
157
158 /* Vitesses min et max */
159 femp2 ux = ub1;
160
161 cout << " Vitesse d’entree = " << Umeaninlet << endl;
162 cout << " Min(ux) = " << ux[].min << endl;
163 cout << " Max(ux) = " << ux[].max << endl;
164
165 /* −−−−−−−−−−−−−−−−−−−−
166 Finalisation
167 −−−−−−−−−−−−−−−−−−−− */
168
169 /* Si non convergence */
170 if(ener1>limite)
171 {
172 cout << " Attention : newton non converge " << endl;
173 femp1 residual = du1^2+du2^2;
174 plot(residual,wait=1);
175 {
176 ofstream file("CHBASE/cbn_Re"+int(Re)+"_nc.txt");
177 file << ub1[];
178 file << Re; // remis
179 };
180 }
181 /* Si convergence */
182 else
183 {
184 {
185 ofstream file("CHBASE/cbn_Re"+int(Re)+".txt");
186 file << ub1[];
187 file << Re; // remis
188 };
189 {
190 ofstream file("chbase.txt");
191 file << ub1[];
192 file << endl << endl << Re; // remis
193 };
194
195 exec("cp chbase.txt chbase_guess.txt");
196 cout << "Fin du calcul CB par methode de Newton ; Re = " << Re << endl;
197
198
199 plot(ub1,wait=1,value=true,nbiso=50,fill=1,ps="Ux.eps");
200
201 plot(ub2,wait=1,value=true,nbiso=50,fill=1,ps="Uy.eps");
202
203 plot(pb,wait=1,value=true,nbiso=50,fill=1,ps="P.eps");
204
205 /* Profils de vitesse */
206 {
207 ofstream fileU("Uprofile_Re"+int(Re)+"entree.txt");
208 for(real yy=−ydroit; yy<ydroit; yy=yy+0.01*1)
209 {
21
210 fileU << yy << " " << ub1(xstart,yy) << endl;
211 };
212 }
213 {
214 ofstream fileU("Uprofile_Re"+int(Re)+"_avantConv.txt");
215 for(real yy=−ydroit; yy<ydroit; yy=yy+0.01*1)
216 {
217 fileU << yy << " " << ub1(−Lconv,yy) << endl;
218 };
219 }
220 {
221 ofstream fileU("Uprofile_Re"+int(Re)+"_Conv.txt");
222 for(real yy=−yorifice; yy<yorifice; yy=yy+0.01*1)
223 {
224 fileU << yy << " " << ub1(0,yy) << endl;
225 };
226 }
227 {
228 ofstream fileU("Uprofile_Re"+int(Re)+"_apresConv.txt");
229 for(real yy=−yorifice; yy<yorifice; yy=yy+0.01*1)
230 {
231 fileU << yy << " " << ub1(xout,yy) << endl;
232 };
233 }
234 };
22
C Maillages générés par FreeFem++
Les maillages générés avec FreeFem++ pour les calculs des écoulements dans les buses
convergentes et divergentes sont tracés respectivement sur les figures 10 et 11. Pour des raisons
de qualité visuelle, la densité de mailles visible sur les figures ci-dessous est trois fois plus faible
que la densité réelle utilisée pour nos calculs.
23
Résumé
Les règles usuelles de conception de buses convergentes dans le but d’obtenir un écoulement le
plus uniforme possible et utilisées pour de grands nombres de Reynolds ne sont pas directement
applicables dans le cas d’écoulements à nombre de Reynolds plus faible, de l’ordre de 100 à
1000. Notre étude basée sur la méthode des éléments finis montre que dans ce cas, l’utilisation
d’une buse réduisant la section d’un facteur d’environ 5 à 6 semblait être optimale dans l’optique
d’obtenir un profil de vitesse en sortie de convergent le plus plat possible.
Une étude menée sur le cas de buses divergentes nous a également montré qu’au delà d’un
certain nombre de Reynolds critique Rec , des dissymétries et des instabilités apparaissaient dans
l’écoulement en sortie de divergent et se propageaient ensuite dans la buse, et ce dans le cas de
la recherche d’un écoulement stationnaire.
Mots-clés : FreeFem++, Écoulement dans un divergent, Écoulement dans un convergent, Écou-
lement laminaire, Bas Reynolds, Méthode des éléments finis.
Abstract
In order to obtain the most possible uniform flow for high Reynolds numbers, the usual
convergent nozzle design rules are not directly applicable in the case of flows with a low Reynods
number, from 100 to 1000. Our analysis based on the finite element method shows that in this
case, the use of a nozzle reducing the section by a factor 5 to 6 seemed to be optimal to get a
speed profile as flat as possible at the convergent output.
An analysis of differents divergents nozzles has also shown that beyond a critical Reynolds
number Rec , dissymmetries and instabilities appeared in the divergent outflow before propagating
into the nozzle , and this in the case of the research for a stationary flow.
Keywords : FreeFem++, Sudden expansion flow, Sudden contraction flow, Laminar flow, Low
Reynolds, Finite element method.