File: visecv.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 (193 lines) | stat: -rw-r--r-- 10,378 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
%-------------------------------------------------------------------------------

% 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{visecv}
%

\hypertarget{visecv}{}

\vspace{1cm}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section*{Fonction}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Dans ce sous-programme sont calcul\'es les termes de gradient transpos et de viscosit
secondaire (fluide newtonien). Ils seront traits en explicite
pur. En effet, si on traitait ces termes en implicite, cela reviendrait
 coupler les quations des diffrentes composantes de la vitesse, ce qui n'est
pas compatible avec le sch\'ema de r\'esolution actuel ({\it cf. } sous-programme \fort{navstv}).

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

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section*{Discr\'etisation}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
L'intgration des termes de gradient transpos
 $\dive\,(\mu_{\,tot}\,^t\,\ggrad(\underline{v}))$ et de viscosit
secondaire \\
$-\displaystyle \frac{2}{3}\,\grad (\mu_{\,tot}\,\dive(\underline{v}))$ est la suivante\footnote{la viscosit de volume
$\kappa$ est suppose nulle, cf. \fort{navstv}} :
\begin{equation}\notag
\begin{array}{llll}
&\displaystyle \int_{\Omega_i}\dive (\mu_{\,tot}
\,^t\,\ggrad(\underline{v})\,)\,d\Omega \\
&= \sum\limits_{l=x,y,z}\left[ \sum\limits_{j \in
Vois(i)} \mu_{\,tot,ij} ((\displaystyle \frac {\partial v_x}{\partial
l})_{\,moy,ij}\,n_{\,ij}^{\,x} +(\frac {\partial v_y}
 {\partial l})_{\,moy,ij}\,n_{\,ij}^{\,y}+ \displaystyle(\frac {\partial v_z}
{\partial l})_{\,moy,ij}\,n_{\,ij}^{\,z}) S_{\,ij}\right.\\
&+\left.\displaystyle \sum\limits_{k \in \gamma_b(i)} \mu_{\,tot,\,b_{ik}}
((\frac {\partial v_x}{\partial l})_{\,moy,\,b_{ik}}\,n_{\,b_{ik}}^{\,x} +(\frac
{\partial v_y}{\partial l})_{\,moy,\,b_{ik}}\,n_{\,b_{ik}}^{\,y}+
\displaystyle(\frac {\partial v_z}{\partial
l})_{\,moy,\,b_{ik}}\,n_{\,b_{ik}}^{\,z}) S_{\,b_{ik}}\right] \underline
{e}_{\,l} \\\\
&-\displaystyle \frac{2}{3}\,\int_{\Omega_i}\grad (\mu_{\,tot} \dive\,(\underline{v}))
\,d\Omega \\
&= -\displaystyle \frac{2}{3}\,\sum\limits_{l=x,y,z}\left[\sum\limits_{j \in Vois(i)}(\mu_{\,tot}\,\dive(\underline{v}))_{\,ij} S_{\,ij}^{\,l} + \displaystyle \sum_{k \in \gamma_b(i)}(\mu_{\,tot}\,\dive(\underline{v}))_{\,b_{ik}} S_{\,b_{ik}}^{\,l}\right]\,\underline {e}_{\,l}
\end{array}
\end{equation}
Le terme de viscosit $\mu_{\,tot}$ est calcul en fonction du modle de turbulence utilis :
\begin{equation}\notag
\mu_{\,tot}=
\begin{cases}
\mu + \mu_t & \text{pour les modles  viscosit turbulente ou en LES}, \\
\mu& \text{pour les modles au second ordre ou en laminaire}.
\end{cases}
\end{equation}
o $\mu$ et $\mu_t$ repr\'esentent respectivement la viscosit\'e dynamique molculaire et la viscosit dynamique turbulente.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section*{Mise en \oe uvre}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection*{Terme de gradient transpos}
Avant de calculer l'intgration des deux termes, on calcule dans un premier
temps la viscosit totale en fonction du modle de turbulence considr.\\
Les termes calculs dans ce sous-programme, appel par \fort{predvv}, interviennent dans le second membre
de l'quation de quantit de mouvement, et sont donc directement stocks dans le
tableau correspondant  \var{TRAV}.\\
Le terme $\dive\,(\mu_{\,tot}\,^t\ggrad(\underline{v}))$ est calcul en
oprant comme suit.\\
On effectue une boucle sur les composantes $v_\alpha$ o $\alpha=x,y,z$ de la
vitesse ($\alpha$ correspond  \var{ISOU} dans le code) :
\begin{itemize}
\item on calcule le gradient cellule de $v_{\,\alpha}$ par un appel au
sous-programme \fort{grdcel}.
\item on initialise un tableau nomm $\var{W}_6$  la valeur $1$ pour les cellules
internes, et  la valeur $0$ pour les cellules de bord. Ce tableau sert par la suite  ne
pas considrer la contribution du terme de gradient transpos sur les cellules
de bord. En effet, on ne sait pas \'ecrire de conditions aux limites correctes
pour le gradient transpos\'e. On pr\'ef\`ere donc tout simplement annuler son
effet sur les cellules de bord (\emph{cf.} paragraphe \ref{Base_Visecv_paragraphe4}).
\item pour chaque direction $l$ ($l=x,y,z$), $l$ correspondant  \var{IDIM}
dans le code, on calcule pour chaque cellule $\Omega_i$ dont le centre
correspond  la variable \var{II} ou
\var{JJ} (pour les centres voisins) dans le code :\\
\begin{equation}\notag
\begin{array}{ll}
&\var{TRAV}(i,l)=\var{TRAV}(i,l)\\
&+\var{W}_6(i)\ \left[\displaystyle \sum\limits_{j \in
Vois(i)} \mu_{\,tot,\,ij}\,(\frac {\partial v_{\,\alpha}}{\partial l}
)_{\,moy,ij}\,S_{\,ij}^{\,\alpha}\  +  \displaystyle \sum_{k \in
\gamma_b(i)} \mu_{\,tot,\, {b_{\,ik}}}\,(\frac {\partial v_{\,\alpha}}{\partial
l})_{\,moy,{b_{\,ik}}}\,S_{\,{b_{\,ik}}}^{\,\alpha}\ \right]\\
&\displaystyle\text{avec }
(\frac{\partial v_{\,\alpha}}{\partial l})_{\,moy,ij}=\frac{1}{2}\left[
(\frac{\partial v_{\,\alpha}}{\partial l})_i
+(\frac{\partial v_{\,\alpha}}{\partial l})_j\right]
\end{array}
\end{equation}
\end{itemize}
Fin de la boucle sur les composantes de la vitesse.\\
\\
\subsection*{Terme de viscosit secondaire}
Le terme de seconde viscosit
 $-\displaystyle \frac{2}{3}\grad (\mu_{\,tot} \dive\,(\underline{v}))$
 est calcul de la faon suivante :
\begin{itemize}
\item on calcule la valeur de la vitesse sur la face $ij$ en divisant le flux
masse connu  la face par la densit moyenne $\rho_{\,moy,\,ij}$ de la face
($\rho_{\,moy,\,ij}=\displaystyle \frac{\rho_{\,i}+\rho_{\,j}}{2}$).
\item on calcule ensuite l'intgrale volumique de la divergence de la vitesse sur chaque cellule en appelant le sous-programme
\fort{divmas}.
\item on calcule alors pour chaque cellule $\Omega_i$ le terme $-\displaystyle
\frac{2}{3}(\mu_{\,tot}\,\dive(\underline{v}))_{\,i}$ que l'on met dans le
tableau de travail $\var{W}_4$. La valeur de ce terme sur la face interne $ij$
 est obtenue en prenant la moyenne arithmtique des valeurs des deux cellules
avoisinantes (tableau \var{VISCF}) et celle sur la face de bord est prise gale
la valeur de la cellule avoisinante (tableau \var{VISCB}).
\item on calcule alors pour chaque direction $l$ le terme final,
\emph{i.e.} :\\
\begin{equation}\notag
\var{TRAV}(i,l)= \var{TRAV}(i,l)-\displaystyle \frac{2}{3}\left[\sum\limits_{j \in Vois(i)} (\mu_{\,tot}\,\dive(\underline{v}))_{\,moy,\,ij}\ S_{\,ij}^{\,l}
+\sum\limits_{k \in \gamma_b(i)} (\mu_{\,tot}
\dive\,(\underline{v}))_{\,moy,{b_{\,ik}}}\  S_{\,b_{ik}}^{\,l}\right]
\end{equation}
\end{itemize}

\vspace{0.5cm}
Le traitement est similaire pour le terme de viscosit de volume dans le module compressible.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section*{Points \`a traiter} \label{Base_Visecv_paragraphe4}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
L'intgration du terme de gradient transpos pose un problme de compatibilit.
En effet, le gradient transpos provient de l'criture de la divergence
du tenseur des contraintes (\emph{cf.} \fort{predvv}), soit :
\begin{equation}\notag
\dive\,(\tens{\sigma}) = \dive\,(- p \tens{Id} + \tens{\tau })
\end{equation}
o :
\begin{equation}\notag
\tens{\tau} = 2 \mu\ [\underbrace{\displaystyle \frac{1}{2}\,(\ggrad \underline
{v}\ +\ ^t\ggrad \underline {v})}_{\text{partie 1}} -\underbrace{\displaystyle \frac{2}{3}\,tr(\,\frac{1}{2}\,(\ggrad \underline
{v}\ +\ ^t\ggrad \underline {v}))\ \tens {Id}\ }_{\text{partie 2}}]
\end{equation}
Or, lorsque l'on intgre la premire partie de la divergence de
$\tens{\tau}$, on implicite le terme $\dive\,(\mu\,\ggrad \underline{v})$ et on
explicite le gradient transpos $\dive\,(\mu ^t\ggrad \underline{v})$.
 Ce traitement fait intervenir la vitesse au centre des cellules. Elle ne
vrifie pas exactement la condition $\dive\,(\rho \underline{v})\,=\,0$. En
effet, au cours de l'tape de correction, on utilise un filtre Rhie et Chow
(\emph{cf.} \fort{resopv}) et la vitesse n'est mise  jour qu' la fin de
l'tape. Par contre, lorsque l'on intgre la deuxime partie de
la divergence de $\tens{\tau}$ de faon explicite, on utilise
la vitesse issue du flux masse aux faces qui vrifie la condition $\dive\,(\rho
\underline{v})\,=\,0$ (du moins  $\rho$ constant, l'interpolation de $\rho$ 
la face tant galement un point  considrer). Ainsi, la discrtisation de ces
deux parties n'est pas totalement cohrente. Il serait utile de baser la
discrtisation de ces termes sur une vitesse vrifiant la contrainte
$\dive\,(\rho \underline{v})\,=\,0$.\\
Pour la mme raison, il est difficile de connatre les conditions aux limites du
terme en gradient transpos. Sur les cellules de bord, on sait uniquement que la
contrainte totale normale doit quilibrer le frottement et toutes les autres
forces. Or, le tenseur des contraintes est scind en une partie explicite et une partie implicite, donc c'est un peu difficile d'utiliser cette condition physique.\\
Actuellement, la contribution aux cellules de bord du terme de gradient transpos est
annule, ce qui limine l'influence des conditions aux limites mais n'est naturellement pas satisfaisant. Quelques essais d'intgration des conditions aux limites pour ce terme n'ont pas t concluants jusqu' prsent. Cependant, des essais supplmentaires
sont envisageables.