File: vortex.tex

package info (click to toggle)
code-saturne 5.3.2%2Brepack-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 76,868 kB
  • sloc: ansic: 338,582; f90: 118,487; python: 65,227; makefile: 4,429; cpp: 3,826; xml: 3,078; sh: 1,205; lex: 170; yacc: 100
file content (444 lines) | stat: -rw-r--r-- 19,142 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
%-------------------------------------------------------------------------------

% This file is part of Code_Saturne, a general-purpose CFD tool.
%
% Copyright (C) 1998-2018 EDF S.A.
%
% This program is free software; you can redistribute it and/or modify it under
% the terms of the GNU General Public License as published by the Free Software
% Foundation; either version 2 of the License, or (at your option) any later
% version.
%
% This program is distributed in the hope that it will be useful, but WITHOUT
% ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
% FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
% details.
%
% You should have received a copy of the GNU General Public License along with
% this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
% Street, Fifth Floor, Boston, MA 02110-1301, USA.

%-------------------------------------------------------------------------------

\programme{vortex}

\hypertarget{vortex}{}

\vspace{1cm}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section*{Fonction}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Ce sous-programme est ddi  la gnration des conditions d'entre
turbulente utilises en LES.


La mthode des vortex est base sur une approche de tourbillons
ponctuels. L'ide de la mthode consiste  injecter des tourbillons 2D dans le
plan d'entre du calcul, puis  calculer le champ de vitesse induit par ces
tourbillons au centre des faces d'entre.

See the \doxygenfile{vortex_8f90.html}{programmers reference of the dedicated subroutine} for further details.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section*{Discr\'etisation}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Pour utiliser la mthode, on se place tout d'abord dans un repre local dfini
de manire  ce que le plan $(0yz)$, o sont injects les vortex, soit confondu
avec le plan d'entre du calcul (voir figure \ref{Base_Vortex_entree}).

\begin{figure}[h]
\centerline{\includegraphics[height=6cm]{entree}}
\caption{\label{Base_Vortex_entree} Dfiniton des diffrentes grandeurs dans le repre local
correspondant  l'entre d'une conduite de section carre.}
\end{figure}

$u$, $v$ et $w$  sont les composantes de la vitesse fluctuante (principale et
transverse) dans ce plan, et
$\displaystyle \omega(y,z) = \frac{\partial w}{\partial y}-\frac{\partial v}{\partial z}$
la vorticit dans la direction
normale au plan d'entre. $\overline{U}(y,z)$ reprsente ici la vitesse
principale moyenne impose par l'utilisateur dans le plan d'entre.

Chaque vortex $p$ va tre caractris par sa fonction de forme $\xi$ (identique
pour tous les vortex), sa
circulation $\Gamma_p$, son rayon $\sigma_p$ et les coordonnes $(y_p,z_p)$ du
point $P$ o est situ le vortex dans le plan $(0yz)$.

Pour cela, on suppose que la vorticit gnre par un vortex $p$ au point $M$ de
coordonne $(y,z)$ s'crit :
\begin{equation}\notag
\omega_p(y,z)= \Gamma_p \, \xi_{\sigma_p}(r)
\end{equation}
o $r = \sqrt{(y-y_p)^2+(z-z_p)^2}$ est la distance sparant le point $M$ du point $P$.

Dans la mthode implante, la fonction de forme est de type gaussienne modifie :
\begin{equation}\notag
\displaystyle
\xi_\sigma (r) = \frac{1}{2\pi \sigma^2}
\left(2 e^{-\frac{r^2}{2\sigma^2}}-1\right) e^{-\frac{r^2}{2\sigma^2}}
\end{equation}

Le champ de vitesse induit par cette distribution de vorticit s'obtient par
inversion des deux quations de poisson suivantes qui sont dduites de la
condition d'incompressibilit dans la plan\footnote{\textit{i.e}
$\displaystyle \frac{\partial v}{\partial y}+\frac{\partial w}{\partial w} = 0$} :
\begin{equation}\notag
\begin{array}{lcr}
\displaystyle
\frac{\partial \omega}{\partial y} = \Delta w
&
\text{    et    }
&
\displaystyle
\frac{\partial \omega}{\partial y} = -\Delta v
\\
\end{array}
\end{equation}

Dans le cas gnral, ce systme peut tre intgr  l'aide de la formule de Biot et Savart.

Dans le cas d'une distribution de vorticit de type gaussienne modifie, les
composantes de vitesse vrifient :
\begin{equation}\notag
\left\{
\begin{array}{c}
\displaystyle
v_p(y,x) = - \frac{1}{2\pi} \frac{(z-z_p)}{r^2}\left(1 -
e^{-\frac{r^2}{2\sigma^2}}\right)\,e^{-\frac{r^2}{2\sigma^2}}
\\
\displaystyle
w_p(y,z) = \frac{1}{2\pi} \frac{(y-y_p)}{r^2}\left(1 -e^{-\frac{r^2}{2\sigma^2}}
\right)\,e^{-\frac{r^2}{2\sigma^2}}
\end{array}
\right.
\end{equation}

Ces relations s'tendent de faon immdiate au cas de $N$ vortex distincts.
Le champ de vitesse induit par la distribution de vorticit
\begin{equation}
\omega(y,z) = \sum_{p=1}^N \Gamma_p \, \xi_{\sigma_p}(r)
\end{equation}
vaut au point $M$ :
\begin{equation}\notag
\begin{array}{lcr}
v(x,y) = \sum_{p=1}^N \Gamma_p\, v_p(y,z)
&
\text{    et    }
&
w(y,z) = \sum_{p=1}^N \Gamma_p\, w_p(y,z)
\\
\label{Base_Vortex_compvit}
\end{array}
\end{equation}
%================================
\subsection*{Paramtres physiques}
%================================

%-------------------------------
\subsubsection*{Marche en temps}
%-------------------------------
La position initiale de chaque vortex est tire de manire alatoire. On calcul
les dplacements successifs de chacun des vortex dans le plan d'entre par
intgration explicite du champ de vitesse lagrangien :
\begin{equation}\notag
\begin{array}{lcr}
\displaystyle
\frac{dy_p}{dt} = V(y,z)
&
\text{    et    }
&
\displaystyle
\frac{dz_p}{dt} = W(y,z)
\\
\end{array}
\end{equation}
Les vortex sont alors assimils  des particules ponctuelles qui sont convectes
par le champ $(V,W)$. Ce champ peut tre impos par des tirages alatoires ou
bien dduit de la vitesse induite par les vortex dans le plan d'entre. Dans ce
cas $V(x,y) = \overline{V}(y,z) + v (y,z)$ et $W(y,z)= \overline{W}(y,z) +
w(y,z)$ o $\overline{V}$ et $\overline{W}$ sont les composantes de la vitesse
transverse moyenne qu'impose l'utilisateur  l'aide des fichiers de donnes.

%---------------------------------------------------
\subsubsection*{Intensit et dure de vie des vortex}
%---------------------------------------------------
Il serait possible,  partir de l'quation de transport de la vorticit,
d'obtenir un modle d'volution pour l'intensit du vecteur tourbillon
$\omega_p$ associ  chacun des vortex. En pratique, on prfre utiliser un
modle simplifi dans lequel la circulation des tourbillons ne dpend que de la
postion de ces derniers  l'instant considr. La circulation initiale de chaque
vortex est alors obtenue  partir de la relation :
\begin{equation}\notag
|\Gamma_p| = 4 \sqrt{\frac{\pi\,S\,k}{3N\,[2ln(3)-3ln(2)]}}
\end{equation}
o $S$ est la surface du plan d'entre, $N$ le nombre de vortex, et $k$
l'nergie cintique turbulente au point o se trouve le vortex  l'instant
considr. Le signe de $\Gamma_p$ correspond au sens de rotation du vortex et
est tir alatoirement.

Ce paramtre est celui qui contrle l'intensit des fluctuations. Sa dpendance
en $k$ exprime que, plus l'coulement est turbulent, plus les vortex sont
intenses. La valeur de $k$ est spcifie par
l'utilisateur. Elle peut tre constante ou impose  partir de profils d'nergie
cintique turbulente en entre.

Pour viter que des structures trop allonges ne se dveloppent au niveau de
l'entre, l'utilisateur doit galement spcifier un temps limites $\tau_p$ au
bout duquel le vortex $p$ va tre dtruit. Ce temps $\tau_p$ peut tre pris
constant ou estim au moyen de la relation :
\begin{equation}\notag
\tau_p = \frac{5 C_{\mu}k^{\frac{3}{2}}}{\varepsilon\,\overline{U}}
\end{equation}

$\overline{U}$ et $\varepsilon$ reprsentent respectivement la vitesse moyenne
principale et la dissipation turbulente au point o est initialement gnr le
vortex ($C_{\mu}=0,09$).
\\
Lorsque le temps coul depuis la cration du vortex $p$ est suprieur 
$\tau_p$, le vortex est dtruit et un nouveau vortex gnr (sa position et le
signe de $\Gamma_p$ sont tirs de faon alatoire).

%--------------------------------
\subsubsection*{Taille des vortex}
%--------------------------------
La taille des vortex peut tre prise constante, ou calcule  partir des
relations :
\begin{equation}\notag
\begin{array}{ccc}
\displaystyle
\sigma = \frac{C_{\mu}^{\frac{3}{4}}k^{\frac{3}{2}}}{\varepsilon}
& \text{    ou    } &
\sigma = max[L_t,L_k]
\\
\end{array}
\end{equation}
avec:
\begin{equation}\notag
\begin{array}{ccc}
\displaystyle
L_t = \sqrt{\left( \frac{5 \nu k}{\varepsilon} \right)}
& \text{    et    } &
\displaystyle
L_k = 200\, \left(\frac{\nu^3}{\varepsilon}\right)^{\frac{1}{4}}
\end{array}
\end{equation}
o $\nu$, $k$ et $\varepsilon$ sont la viscosit dynamique, l'nergie cintique
turbulente et la dissipation turbulente au point o se trouve le vortex.

Dans tous les cas, la taille du vortex doit tre suprieure  la taille des
mailles en entre afin que le vortex soit effectivement simul.

%==================================
\subsection*{Conditions aux limites}
%==================================
Le champ de vitesse gnr  l'aide de la relation \ref{Base_Vortex_compvit} ne tient pas
compte {\em a priori} des conditions aux limites appliques sur les bords du plan
d'entre. Pour obtenir des valeurs de la vitesse qui soient cohrentes sur les
frontires du domaine d'entre, des ``vortex images'', pseudo-vortex situs en
dehors du domaine d'entre, sont gnrs  des positions particulires et leur
champ de vitesse associ est superpos au champ prcdemment calcul.\\
Seuls les cas d'une conduite rectangulaire et d'une conduite circulaire
permettent la gnration de ces pseudo-vortex.
On distingue pour cela trois types de conditions aux limites.

\begin{figure}[h]
\centerline{\includegraphics[height=6cm]{condlimite}}
\caption{\label{Base_Vortex_condli} Principe de gnration des ``vortex images'' suivant le
type de conditions aux limites dans une conduite carre.}
\end{figure}

%----------------------------------
\subsubsection*{Condition de paroi}
%----------------------------------
On cre, pour chaque vortex $P$ contenu dans le plan d'entre, un vortex image
$P'$ identique  $P$ (\textit{i.e} de mme caractristiques) et symtrique de $P$
par rapport au
point $J$ ($J$ tant la projection orthogonalement  la paroi du point $M$
correspondant au centre de la face o l'on cherche  calculer la vitesse). La
figure \ref{Base_Vortex_condli} illustre la technique dans le cas d'une conduite
carre. Dans ce cas les coordonnes du vortex situ en $P'$ vrifient
$(y_{p'}+y_{p})/2 = y_{J}$ et $(z_{p'}+ z_{p})/2 = z_{J}$. Le champ de vitesse
peru depuis le point $M$ au niveau du point $J$ est nul, ce qui est bien
l'effet recherch.

%------------------------------------
\subsubsection*{Condition de symtrie}
%-------------------------------------
La technique est identique  celle utilise pour les conditions de paroi, mais
seule la composante pour la vitesse normale au bord est modifie dans ce cas.

%---------------------------------------
\subsubsection*{Condition de priodicit}
%---------------------------------------
On cre pour chaque vortex, un vortex images $P'$ identique  $P$ mais translat
d'une quantit $L$ correspondant  la longueur qui spare les deux plans de la
section d'entre o sont appliques les conditions de priodicit. Dans le cas
o il y a deux directions de priodicit, on cre deux vortex image.

%=============================================
\subsection*{Composante de vitesse principale}
%=============================================
La mthode des vortex ne gnrant pas de fluctuation $u$ de la vitesse dans la
direction principale, la dernire composante est calcule  partir d'une
quation de Langevin. Les coefficients de cette quation sont dtermins par
identification des expressions obtenues pour les contraintes de Reynolds en
$R_{ij}-\varepsilon$. Dans le cas d'un coulement en canal plan, cette technique
conduit  l'quation :
\begin{equation}\notag
\displaystyle
\frac{du}{dt} = - \frac{C_1}{2T} u + \left(\frac{2}{3}C_2-1\right)\frac{\partial
U}{\partial y} v + \sqrt{C_0\varepsilon} dW_i
\end{equation}

avec $\displaystyle T=\frac{k}{\varepsilon}$, $C_1 = 1,8$, $C_2 = 0,6$,
$C_0=\frac{14}{15}$, et $dW_i$ une variable altoire Gaussienne de variance
$\sqrt{dt}$.

En pratique, l'quation de Langevin n'amliore pas vraiment les rsultats. Elle
n'est utilise que dans le cas de conduites circulaires.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section*{Mise en \oe uvre}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\begin{itemize}
\item[$\star$] Aprs une tape de prparation de la mmoire (\fort{memvor}), on
repre dans \fort{usvort} les faces d'entre pour lesquelles la mthode va tre
utilise.
\item[$\star$] Vrification des dimensions rentres (\fort{vervor}).
\\
\item[$\star$] Le sous-programme \fort{vorpre} se charge ensuite de prparer le
calcul (transmission de la gomtrie des entres  tous les processeurs en cas
de paralllisme, et construction d'un tableau de connectivit). Le
sous-programme procde ainsi :
\\
\begin{itemize}

\item[$\bullet$] On compte, pour chaque entre \var{IENT}, le nombre de faces o
est applique la mthode. Celui-ci est stock dans le tableau
\var{ICVOR(IENT)}. Un passage dans la sous-routine \fort{memvor} (avec
\var{IAPPEL = 2}) permet d'allouer la mmoire ncessaire  cette phase de
prparation.

\item[$\bullet$] Pour chaque processeur, on stocke les coordonnes des faces
d'entre repres prcdemment dans les tableaux de travail
\var{RA(IW1X),RA(IW1Y),RA(IW1Z),...}

\item[$\bullet$]  On regarde ensuite pour chaque processeur (boucle
\var{IPROC=1, NRANGP-1}), si le processeur \var{IPROC} a des donnes  envoyer
aux autres processeurs (afin que tous disposent des coordonnes).
\begin{itemize}
\item Si c'est le cas : \var{ICVOR(IENT)>0}, et on place les donnes  envoyer
dans les tableaux de travail \var{RA(IW2X),RA(IW2Y),RA(IW2Z),...}. La valeur
\var{NCOMV = ICVOR(IENT)} correspond alors  la longueur des tableaux  envoyer.
\item Sinon, on ne fait rien et \var{NCOM=0}.
\end{itemize}
\item[$\bullet$] Le processeur numro \var{IPROC} distribue  tous les autres
processeurs la valeur \var{NCOM}. Si \var{NCOM > 0}, il envoie galement les
donnes contenues dans les tableaux de travails \var{RA(IW2X),...}. Ces donnes
sont ensuite stockes par tous les processeurs dans les tableaux
\var{RA(IXYZV+III),...} afin de librer les tableaux de travail pour la
communication suivante, et l'indice \var{III = III + NCOM} est incrment de
manire  ranger les valeurs de faon chronologique.
\\\\
$\rightarrow$ Au final de la boucle sur \var{IPROC}, chaque processeur dispose
des coordonnes des faces d'entre pour lesquelles la mthode va tre utilise,
et il est donc simple de construire la connectivit.
\\
\item[$\bullet$] Construction de la connectivit. Au final, la vitesse au centre
de la \var{II} me face d'entre utilisant la mthode est contenue  la
\var{IA(IIFAGL+II)} me ligne du tableau \var{RA(IUVORT)}.

\item[$\bullet$] La routine se termine par un appel au sous-programme
\fort{memvor} ( avec \var{IAPPEL = 3}) afin de rserver la mmoire utile  la
mthode des vortex.
\end{itemize}
\end{itemize}
\bigskip

Cette phase d'initialisation est ralise une seule fois au dbut du
calcul. C'est aprs cette phase seulement que commence la mthode des vortex
proprement dite.
\\
\begin{itemize}
\item[$\star$] Initialisation des variables avant intervention utilisateur (\fort{inivor}).
\item[$\star$] Appel au sous-programme utilisateur \fort{usvort} (\var{IAPPEL = 2}).
\item[$\star$] Vrification des paramtres rentrs (\fort{vervor}).
\item[$\star$] Calcul de la vitesse par la mthode des vortex (\fort{vortex})
\begin{itemize}
\item[$\bullet$] Initialisation du calcul gnration du champ initial par appel
au sous-programme \fort{vorini} :

\begin{itemize}
\item Construction du repre local (et calcul de l'quation du plan d'entre
suivant les cas), localisation du centre de l'entre, et transformation des
coordonnes de l'entre dans le repre local. Les tableaux \var{YZCEL(II,1)} et
\var{YZCEL(II,2)} contiennent les coordonnes des faces du plan d'entre une
fois ramenes dans le repre $(0yz)$ (\var{II} est compris entre 1 et
\var{NCEVOR} o \var{NCEVOR}=\var{ICVOR} reprsente le nombre de faces pour
lesquelles la mthode va tre utilise a cette entre).
\item Lecture du fichier de donnes, et initialisation des tableaux \var{XDAT},
\var{YDAT}, \var{UDAT}, \var{VDAT}, \var{WDAT}, \var{DUYDAT}, \var{KDAT},
\var{EPSDAT}, ...
\item Si on ne fait pas de suite (\var{ISUIVO=0}) ou que l'on rinitialise le
calcul (\var{INITVO=1}), tirage alatoire de la position des vortex et de leur
sens de rotation, ainsi que calcul de leur dure de vie. Les positions sont
stockes dans les tableaux \var{YZVOR(IVOR,1)} et \var{YZVOR(IVOR,2)}
(\var{IVOR} dsignant le numro du vortex).
\item Stockage de la vitesse principale moyenne au centre de la cellule dans le
tableau \var{XU}, et recherche pour chaque vortex, de la face d'entre qui lui
est la plus proche.
\end{itemize}

\item[$\bullet$] Dplacement des vortex par appel au sous-programme \fort{vordep} :
\begin{itemize}
\item Convection des vortex.
\item Traitement des conditions aux limites. Les vortex qui sortent du domaine
de calcul sont replacs  leur position d'origine.
\item Rgnration des vortex ``morts''. Si le temps de vie cumul
\var{TEMPS(II)} du vortex \var{II} est suprieur  sont temps de vie limite
\var{TPSLIM(II)}, alors le vortex est dtruit, et un nouveau vortex est gnr.
\item Recherche pour chaque vortex de la face d'entre qui lui est la plus
proche aprs dplacement (mise  jour du tableau \var{IVORCE}).
\end{itemize}

\item[$\bullet$] Calcul du champ de vitesse induit par appel au sous-programme \fort{vorvit} :
\begin{itemize}
\item Calcul de l'intensit du vortex.
\item Calcul de la taille du vortex.
\item Calcul du champ de vitesse induit par l'ensemble des vortex au centre des
faces d'entre.
\item Traitement suivant les cas, des conditions de priodicit de symtrie et
des conditions de paroi par gnration de vortex images.
\item Ajout de la vitesse moyenne dans les directions transverse aux tableaux
\var{XV} et \var{XW}.
\end{itemize}

\item[$\bullet$] Gnration des fluctuations de vitesse dans la direction
principale par appel au sous-programme \fort{vorlgv}.
\end{itemize}

\item[$\star$] appel au sous-programme \fort{vor2cl} :
\item[$\bullet$] Communication en cas de paralllisme de la vitesse calcule en
entre par le processeur 0 aux autres processeurs.
\item[$\bullet$] Application des conditions aux limites aprs utilisation d'un
changement de repre ventuel.
\end{itemize}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section*{Points \`a traiter}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Il serait possible de gagner de la mmoire en liberant l'espace alou aux
tableaux \var{IW1X},...,\var{IW2V} aprs le passage dans \fort{vorpre}.