File: visort.tex

package info (click to toggle)
code-saturne 7.0.2%2Brepack-1~exp1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 62,868 kB
  • sloc: ansic: 395,271; f90: 100,755; python: 86,746; cpp: 6,227; makefile: 4,247; xml: 2,389; sh: 1,091; javascript: 69
file content (193 lines) | stat: -rw-r--r-- 9,081 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-2021 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{visort}
%

\hypertarget{visort}{}

\vspace{1cm}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section*{Fonction}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Dans ce sous-programme est calcul\'e le coefficient de diffusion ``orthotrope'' aux faces. Ce type de coefficient se rencontre pour la diffusion de $R_{\,ij}$ et
$\varepsilon$ en $R_{\,ij}-\varepsilon$ ( {\it cf.} \fort{turrij}), ainsi que pour la
correction de pression dans le cadre de l'algorithme avec couplage
vitesse-pression renforc (\fort{resopv}).\\
Ce coefficient fait intervenir la valeur de la viscosit aux faces multiplie par
le rapport surface de la face sur la distance alg\'ebrique $\overline{I'J'}$,
rapport rsultant de l'intgration du terme de diffusion.
La valeur de la viscosit aux faces est base soit sur une moyenne
arithmtique, soit sur une moyenne harmonique de la viscosit au centre des
cellules.

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

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section*{Discr\'etisation} \label{Base_Visort_paragraphe2}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
La figure \ref{Base_Visort_fig_geom} rappelle les diverses d\'efinitions g\'eom\'etriques
pour les faces internes et les faces de bord.

\begin{figure}[h]
\parbox{8cm}{%
\centerline{\includegraphics[height=4.5cm]{facette}}}
\parbox{8cm}{%
\centerline{\includegraphics[height=4.5cm]{facebord}}}
\caption{\label{Base_Visort_fig_geom}D\'efinition des diff\'erentes entit\'es
g\'eom\'etriques pour les faces internes (gauche) et de bord (droite).}
\end{figure}
L'intgration du terme de diffusion ``orthotrope'' sur une cellule est la
suivante :
\begin{equation}
\int_{\Omega_i}\dive \,(\tens{\mu}\ \grad f)\,d\Omega =\sum\limits_{j \in
Vois(i)}( \tens{\mu}\ \grad f)_{\,ij}\,.\,\underline{S}_{\,ij} + \sum\limits_{k \in
\gamma_b(i)}( \tens{\mu}\ \grad f)_{\,b_{ik}}\,.\,\underline{S}_{\,b_{ik}}
\end{equation}
avec :
\begin{equation}
\tens{\mu}=\begin{bmatrix}\mu_x & 0 & 0 \\ 0 & \mu_y & 0 \\ 0 & 0 & \mu_z \end{bmatrix}
\end{equation}
et :
\begin{equation}
\begin{array}{ll}
&\underline{S}_{\,ij} = S_{\,ij} \underline{n}_{\,ij} \\
&\underline{S}_{\,b_{ik}} = S_{\,b_{ik}} \underline{n}_{\,b_{ik}}
\end{array}
\end{equation}
Le terme $(\tens{\mu}\ \grad(f))_{\,ij}\underline{n}_{\,ij}$ est calcul 
l'aide de la dcomposition suivante :
\begin{equation}
(\tens{\mu}\ \grad f)_{\,ij} = (\grad f \,.\,\underline{n}_{\,ij})\ \tens{\mu}\
\underline{n}_{\,ij}+
(\grad f .\underline{\tau}_{ij})\ \tens{\mu}\ \underline{\tau}_{\,ij}
\end{equation}
o\`u $\underline{\tau}_{ij}$ reprsente un vecteur tangent (unitaire) 
la face. Une dcomposition similaire est utilise aux faces de bord.\\
Dans la matrice, seul le terme
$(\grad f \,.\,\underline{n}_{\,ij})\ \tens{\mu}\ \underline{n}_{\,ij}$ est
int\'egrable facilement en implicite. Par cons\'equent, la partie projet\'ee sur $\underline{\tau}_{\,ij}$
est :
\begin{itemize}
\item n\'eglig\'ee dans le cas du calcul des chelles de temps relatives au
couplage vitesse-pression renforc,
\item trait\'ee en explicite dans les termes de diffusion de
$R_{\,ij}-\varepsilon$ (\emph{cf.} \fort{turrij}).\\
\end{itemize}
L'intgration implicite du terme de diffusion s'\'ecrit :
\begin{equation}
\int_{\Omega_i}\dive\,(\tens{\mu}\ \grad f )\,d\Omega = \sum\limits_{j \in
Vois(i)}(\tens{\mu}\ \underline{n}_{\,ij})\,.\,\underline{S}_{\,ij}\,
\frac{f_{J'}-f_{I'}}{\overline{I'J'}} + \sum\limits_{k \in
\gamma_b(i)}(\tens{\mu}\ \underline{n}_{\,b_{ik}})\,.\,\underline{S}_{\,b_{ik}}
\,\frac{f_{\,b_{ik}}-f_{I'}}{\overline{I'F}}
\end{equation}
Dans ce sous-programme, on calcule le terme
$\displaystyle \frac{(\tens{\mu}\
\underline{n}_{\,ij})\,.\,\underline{S}_{\,ij}}{\overline{I'J'}}$ \`a l'aide la
formule :
\begin{equation}\notag
(\tens{\mu}\ \underline{n}_{\,ij})\,.\,\underline{n}_{\,ij} =
\mu_{\,ij}^{\,moy}=\mu_{\,ij}^{\,x} ( n_{\,ij}^{\,x})^2 + \mu_{\,ij}^{\,y} (n_{\,ij}^{\,y})^2 + \mu_{\,ij}^{\,z}(n_{\,ij}^{\,z})^2
\end{equation}
soit encore :
\begin{equation}\notag
\mu_{\,ij}^{\,moy}=\frac{\mu_{\,ij}^{\,x}
(S_{\,ij}^{\,x})^2 + \mu_{\,ij}^{\,y} (S_{\,ij}^{\,y})^2 +
\mu_{\,ij}^{\,z} (S_{\,ij}^{\,z})^2}{S_{\,ij}^2}
\end{equation}
Au bord, on calcule de mme :
\begin{equation}\notag
\displaystyle \frac{(\tens{\mu}\
\underline{n}_{\,b_{ik}})\,.\,\underline{S}_{\,b_{ik}}}{\overline{I'F}}
\end{equation}

 avec :
\begin{equation}\notag
(\tens{\mu}\ \underline{n}_{\,b_{ik}})\,.\,\underline{n}_{\,b_{ik}} =
\mu_{\,b_{ik}}^{\,moy} = \displaystyle \frac{\mu_{I}^{\,x}
(S_{\,b_{ik}}^{\,x})^2 + \mu_{I}^{\,y} (S_{\,b_{ik}}^{\,y})^2 +
\mu_{I}^{\,z} (S_{\,b_{ik}}^{\,z})^2}{S_{\,b_{ik}}^2}
\end{equation}

La valeur de la viscosit dans une direction $l$ sur la face, $\mu_{\,ij}^{\,l}$,
est calcule :
\begin{itemize}
\item soit par interpolation lin\'eaire :
\begin{equation}
\mu_{\,ij}^{\,l}=\alpha_{\,ij}\mu_{i}^{\,l}+(1-\alpha_{\,ij})\mu_{j}^{\,l}
\end{equation}
avec $\alpha_{\,ij}= 0.5$ car ce choix semble stabiliser bien que cette
interpolation soit d'ordre 1 en espace en convergence,
\item soit par interpolation harmonique :
\begin{equation}\notag
\mu_{\,ij}^{\,l}=\displaystyle
\frac{\mu_{i}^{\,l}\ \mu_{j}^{\,l}}{\alpha_{\,ij}\mu_{i}^{\,l}+(1-\alpha_{\,ij}) \mu_{j}^{\,l}}
\end{equation}
o :
\begin{equation}\notag
\displaystyle \alpha_{\,ij}=\frac{\overline{FJ'}}{\overline{I'J'}}
\end{equation}
\end{itemize}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section*{Mise en \oe uvre}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
La viscosit orthotrope au centre des cellules est entre en argument {\it via}
les variables $\var{W}_1$, $\var{W}_2$ et $\var{W}_3$. On calcule la valeur
moyenne de chaque viscosit aux faces de faon arithmtique ou
harmonique. Ensuite, on calcule la viscosit quivalente correspondant 
$\displaystyle (\tens{\mu}\ \underline{n}_{\,ij})\,.\,\frac{\underline{S}_{\,ij}}{\overline{I'J'}}$ pour les
faces internes et  $\displaystyle (\tens{\mu}\ \underline{n}_{\,b_{ik}})\,.\,
\frac{\underline{S}_{\,b_{ik}}}{\overline{I'F}}$ pour les faces de bord.\\

Cette \'ecriture fait intervenir les vecteurs surface stock\'es dans le tableau
\var{SURFAC}, la norme de la surface \var{SURFN}
 et la distance alg\'ebrique \var{DIST} pour une face interne (\var{SURFBO},
\var{SURFBN} et \var{DISTBR} respectivement pour une face de bord). La valeur du
terme de diffusion rsultant est mise dans le vecteur \var{VISCF} (\var{VISCB} aux faces de bord).\\
La variable \var{IMVISF} dtermine quel type de moyenne est utilis pour
calculer la viscosit dans une direction \`a la face. Si \var{IMVISF}$=0$, alors
la moyenne est arithmtique, sinon la moyenne est harmonique).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section*{Points \`a traiter}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
L'obtention des interpolations utilises dans le code \CS \ du paragraphe
\ref{Base_Visort_paragraphe2} est rsume dans le rapport de Davroux et al\footnote{Davroux A., Archambeau F. et Hrard J.M., Tests numriques sur
quelques mthodes de rsolution d'une quation de diffusion en volumes finis,
HI-83/00/027/A.}.
Les auteurs de ce rapport ont montr que, pour un maillage monodimensionnel irrgulier et avec une
viscosit non constante, la convergence mesure est d'ordre 2 en espace avec
l'interpolation harmonique et d'ordre 1 en espace avec l'interpolation
linaire (pour des solutions rgulires). Par consquent, il serait prfrable d'utiliser l'interpolation
harmonique pour calculer la valeur de la viscosit aux faces. Des tests de stabilit seront ncessaires au pralable.\\
De mme, on envisage d'extrapoler la viscosit sur les faces de bord plutt que
de prendre la valeur de la viscosit de la cellule jouxtant cette face.\\
Dans le cas de la moyenne arithm\'etique, l'utilisation de la valeur $0.5$ pour les coefficients $\alpha_{\,ij}$ serait \`a revoir.