File: condli.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 (582 lines) | stat: -rw-r--r-- 29,444 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
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
%-------------------------------------------------------------------------------

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

\hypertarget{condli}{}

\vspace{1cm}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section*{Function}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Boundary conditions are required in at least three principal cases~:
\begin{itemize}
\item calculation of the convection terms (first order derivative in space) at
the boundary~: the calculation uses a flux at the boundary and requires the
value of the convected variable at the boundary when the latter is entering
the domain in the sens of the characteristic curves of the system (in the sens
of the velocity, in the case of the single equation of a simple scalar~:
 sufficient interpretation in the current framework of
\CS\footnote{except with the compressible module, see. \fort{cfxtcl}})~;
\item calculation of the diffusion terms (second order derivative
in space)~:
a method to determine the value of the first order spatial derivatives
at the boundary is then required
 (more exactly, the terms that depend upon it are required,
 such as the stresses of the thermal fluxes at the wall)~:
\item calculation of the cell  gradients~: the variable at the boundary faces
 are required (more generally, the discrete terms of the equations which depend
upon the gradient inside boundary cells are required, such as the transpose
gradient terms in the Navier-Stokes equations).
\end{itemize}
These considerations only concern the computational variables
(velocity, pressure, Reynolds tensor,
scalars solution of a convection-diffussion equation). For these variables
\footnote{
The other variables
(the physical properties for instance) have a different treatment which will
not be detailed here (for instance, for the density, the user defines
directly the values at the boundary. This information is then stored~; one
is referred to \fort{usphyv} or \fort{phyvar} for more information).
},
the user has to define the boundary conditions at every boundary face
(\fort{usclim}).


The subroutine \fort{condli} transforms the data provided by the user
(in \fort{usclim}) into an internal format of representation of the boundary
 conditions. Verifications of the completeness and coherence are also
performed (in \fort{vericl}). More particularly, the smooth-wall boundary conditions
 (\fort{clptur}), the rough-wall boundary conditions (\fort{clptrg})
and the symmetry boundary conditions for the velocities and
the Reynolds stress tensor (\fort{clsyvt}) are treated in dedicated subroutines.

The subroutine \fort{condli}
provides as an output pairs of coefficients
$A_b$ and $B_b$
for each variable~$f$ and for each boudary face.
These are used for the calculation of the discrete terms in the equations
to be solved. More specifically, these coefficients are used to calculate
a value at the boundary faces $f_{b,int}$ (localised at the centre of the
boundary face, barycentre of its vertices) by the relation
 $f_{b,int} = A_b+B_b\,f_{I'}$, where $f_{I'}$ is the value of the variable
at point $I'$. $I'$ is the projection onto the centre of the cell
adjoin to the boundary on the line normal to the boundary face and passing
by its centre
(see figure~\ref{Base_Condli_fig_flux_condli}).

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

\begin{figure}[h]
\centerline{\includegraphics[height=8cm]{fluxbord}}
\caption{\label{Base_Condli_fig_flux_condli}Boundary cell.}
\end{figure}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section*{Discretisation}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\etape{Notation}
%%%%%%%%%%%%%%%%
On d\'esignera dans la suite par {\it VarScalaire} toute variable
\begin{itemize}
\item [-] autre que la
vitesse, la pression, les grandeurs turbulentes $k$, $\varepsilon$,
$R_{ij}$, $\varphi$, $\bar{f}$ et $\omega$,
\item [-] solution d'une \'equation de convection-diffusion.
\end{itemize}
La d\'enomination {\it VarScalaire} pourra en particulier d\'esigner
la temp\'erature, un scalaire
passif, une fraction massique ou (sauf mention contraire explicite) la variance des fluctuations
d'une autre {\it VarScalaire}. Les variables d'\'etat d\'eduites (masse
volumique, viscosit\'e...) ne seront pas d\'esign\'ees par {\it VarScalaire}.


\etape{Repr\'esentation des conditions aux limites standard dans \fort{usclim} \vspace{0,3cm}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Des conditions aux limites standardis\'ees peuvent \^etre fournies par
l'utilisateur dans \fort{usclim}. Il est pour cela n\'ecessaire d'affecter un
type aux
faces de bord des cellules concern\'ees\footnote{L'affectation d'un type se fait
en renseignant le tableau
\var{ITYPFB}.}. Les conditions pr\'evues par d\'efaut sont les suivantes~:



\begin{itemize}
\item [$\bullet$] {\bf Entr\'ee}~: correspond \`a une condition de Dirichlet sur
toutes les variables transport\'ees (vitesse, variables turbulentes,
{\it VarScalaires}...), et \`a
une condition de Neumann homog\`ene (flux nul) sur la pression.
\item [$\bullet$] {\bf Sortie}~:
        \begin{itemize}
        \item [-] lorsque le flux de masse est effectivement dirig\'e vers
l'ext\'erieur du domaine, ce choix correspond \`a une condition de Neumann
homog\`ene sur toutes les variables transport\'ees et \`a
$\displaystyle\frac{\partial^2P}{\partial \vect{n}\partial\vect{\tau}_i}=0$, pris en compte sous forme
de Dirichlet pour la pression
($\vect{n}$ et $(\vect{\tau}_i)_{i \in \{1,2\}}$
d\'esignent respectivement le vecteur normal de la face de sortie consid\'er\'ee
et deux vecteurs norm\'es, orthogonaux entre eux et dans le plan de la face de
sortie). Cette condition est appliqu\'ee de
mani\`ere explicite en utilisant le champ de pression et son gradient
au pas de temps pr\'ec\'edent.
En outre, la pression \'etant d\'efinie \`a une
constante pr\`es, elle est recal\'ee en un point de
sortie pour y conserver la valeur \var{P0} (on \'evite ainsi toute d\'erive
vers des valeurs tr\`es grandes relativement \`a l'\'ecart maximal de
pression sur le domaine)\footnote{Lorsqu'il n'y a pas de sortie, le spectre des
valeurs propres de la matrice est d\'ecal\'e d'une valeur constante
afin de rendre le syst\`eme inversible~: voir \fort{matrix}.}.
        \item [-] lorsque le flux de masse est dirig\'e vers l'int\'erieur du
domaine, situation peu souhaitable {\it a priori}\footnote{Un message indique
\`a l'utilisateur combien de faces de sortie voient un flux de masse entrer dans
le domaine.
},
on impose une condition de
Dirichlet homog\`ene sur la vitesse (pas sur le flux de masse),
\`a d\'efaut de conna\^\i tre sa valeur en aval du domaine. La pression est
trait\'ee comme dans le cas pr\'ec\'edent o\`u le flux de masse est
dirig\'e vers l'ext\'erieur du domaine. Pour les variables autres que
la vitesse et la pression, deux cas se
pr\'esentent~:
        \begin{itemize}
        \item[-] on peut imposer une condition de Dirichlet
                 pour repr\'esenter la valeur du scalaire introduit dans le domaine par
                 les faces de bord concern\'ees.
        \item[-] on peut imposer, comme lorsque
                 le flux de masse est sortant, une condition de Neumann homog\`ene
                 (ceci n'est pas une situation souhaitable, puisque l'information
                 port\'ee sur les faces de bord provient alors de {\it l'aval} de
                 l'\'ecoulement local). C'est le cas par d\'efaut si l'on ne donne pas
                 de valeur pour le Dirichlet.
        \end{itemize}
\end{itemize}
\item [$\bullet$] {\bf Paroi}~: on se reportera \`a \fort{clptur} (ou \`a \fort{clptrg} pour les
parois rugueuses) pour une description du
traitement des conditions aux limites de paroi (suppos\'ees imperm\'eables au
fluide). Bri\`evement, on peut dire ici
qu'une approche par lois de paroi est utilis\'ee afin d'imposer la contrainte
tangentielle sur la vitesse. La paroi peut \^etre d\'efilante\footnote{On doit alors fournir
les composantes de la vitesse de la paroi.}. Les {\it VarScalaires} re\c coivent par
d\'efaut une condition de Neumann homog\`ene (flux nul). Si l'on souhaite
imposer une valeur en paroi pour ces variables (par exemple, dans le cas d'une
paroi \`a temp\'erature impos\'ee)  une loi de similitude est utilis\'ee
pour d\'eterminer le flux au bord en tenant compte de la couche limite.
Dans le cas des couplages avec \syrthes, \CS
re\c coit une temp\'erature de paroi et fournit un flux thermique. La condition
de pression standard est une condition de Neumann homog\`ene\footnote{On pourra
se reporter \`a \fort{gradrc} pour la condition conduisant \`a l'extrapolation de
la pression au bord, condition pilotable par l'utilisation de la variable \var{EXTRAP}.}.
\item [$\bullet$] {\bf Sym\'etrie}~: correspond \`a des conditions de Neumann homog\`enes pour les
grandeurs scalaires et \`a des conditions  de sym\'etrie classiques pour les vecteurs
(vitesse) et les tenseurs (tensions de Reynolds)~: voir \fort{clsyvt}.
\end{itemize}

\newpage

\etape{Repr\'esentation des conditions aux limites sp\'ecifiques dans \fort{usclim}\vspace{0,3cm}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
On a vu que l'affectation \`a une face de bord d'un type standard
(entr\'ee, sortie, paroi, sym\'etrie) permettait d'appliquer simplement
\`a l'ensemble des variables un assortiment de conditions aux limites
coh\'erentes entre elles pour les types usuels de fronti\`ere physique.

Une solution consiste \`a d\'efinir dans \fort{usclim},
pour chaque face de bord et chaque variable, des conditions aux limites
sp\'ecifiques\footnote{Les conditions
aux limites sp\'ecifiques sont cod\'ees en
renseignant directement les tableaux \var{ICODCL} et \var{RCODCL} pour chaque face de
bord et chaque variable~: des exemples sont fournis dans \fort{usclim}.}
(celles-ci, comme les conditions standards, se ram\`enent
finalement \`a des conditions de type mixte).

Les deux approches ne sont pas n\'ecessairement incompatibles et peuvent m\^eme
se r\'ev\'eler compl\'ementaires. En effet, les conditions aux limites standards
peuvent \^etre surcharg\'ees par l'utilisateur pour une ou plusieurs
variables donn\'ees. Il convient cependant de s'assurer que, d'une fa\c con ou
d'une autre, une condition \`a la limite a \'et\'e d\'efinie pour chaque face
de bord et chaque variable.

Des conditions de compatibilit\'e existent \'egalement entre les diff\'erentes
variables~(voir \fort{vericl}): \begin{itemize}
\item [-] en entr\'ee, paroi, sym\'etrie ou sortie libre, il est important que toutes les
composantes de la vitesse aient le m\^eme type de condition~;
\item [-] lorsque la vitesse re\c coit une condition de sortie, il est important
que la pression re\c coive une condition de type Dirichlet. Pour plus de
d\'etails, on se reportera au paragraphe relatif \`a la condition de sortie pour
la pression, page \pageref{Base_Condli_Sortie_Pression}~;
\item [-] lorsqu'une des variables de vitesse ou de turbulence
re\c coit une condition de paroi, il doit en \^etre de m\^eme pour toutes~;
\item [-] lorsqu'une des composantes $R_{ij}$ re\c coit une condition de sym\'etrie,
il doit en \^etre de m\^eme pour toutes~;
\item [-] lorsqu'une {\it VarScalaire} re\c coit une condition de paroi, la
vitesse doit avoir le m\^eme type de condition.
\end{itemize}

\newpage
\etape{Repr\'esentation interne des conditions aux limites}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

{\bf Objectif}

Les conditions fournies par l'utilisateur sont
retraduites sous forme de couples de coefficients $A_b$ et $B_b$
pour chaque variable~$f$ et chaque face de bord. Ces coefficients
sont utilis\'es pour le calcul des
termes discrets intervenant dans les \'equations \`a r\'esoudre et
permettent en particulier de d\'eterminer une valeur de face
de bord $f_{b,int}$. Il est important d'insister d\`es \`a pr\'esent sur le fait
que cette valeur est, de mani\`ere g\'en\'erale, une simple valeur num\'erique
qui ne refl\`ete pas n\'ecessairement une r\'ealit\'e physique (en particulier
 aux parois, pour les grandeurs affect\'ees par la couche limite turbulente).
On d\'etaille ci-dessous le calcul de $A_b$, $B_b$ et de $f_{b,int}$.

{\bf Notations}
\begin{itemize}

\item[-] On consid\`ere l'\'equation (\ref{Base_Condli_eq_conv_diff_condli})
portant sur le scalaire $f$, dans laquelle
$\rho$ repr\'esente la masse volumique, $\vect{u}$ la vitesse, $\alpha$ la
conductivit\'e et
$S$ les termes sources additionnels. $C$ est d\'efini plus bas.
\begin{equation}\label{Base_Condli_eq_conv_diff_condli}
\displaystyle\rho\frac{\partial f}{\partial t} + div(\rho \vect{u} f)=div\left(\displaystyle\frac{\alpha}{C}\, \grad f\right)+S
\end{equation}

\item[-] Le coefficient $\alpha$ repr\'esente la somme des
conductivit\'es mol\'eculaire et turbulente (selon les mod\`eles utilis\'es), soit
$\alpha=\alpha_m+\alpha_t$, avec, pour une mod\'elisation de type viscosit\'e
turbulente, $\displaystyle\alpha_t=C\,\frac{\mu_t}{\sigma_t}$, o\`u $\sigma_t$ est le nombre de
Prandtl turbulent\footnote{Le nombre de Prandtl turbulent est sans dimension et,
dans certains cas usuels, pris \'egal \`a $0,7$.}.

\item[-] Le coefficient  $C_p$ repr\'esente la chaleur sp\'ecifique, d'unit\'e
                      $m^{2}\,s^{-2}\,K^{-1}=J\,kg^{-1}\,K^{-1}$.

\item[-] On note $\lambda$  la conductivit\'e thermique, d'unit\'e
$kg\,m\,s^{-3}\,K^{-1}=W\,m^{-1}\,K^{-1}$.

\item[-] Il convient de pr\'eciser que $C=1$ pour toutes les variables hormis
pour la temp\'erature, cas dans lequel on a\footnote{Plus exactement, on a
$C=C_p$ pour toutes les {\it VarScalaires} $f$ que l'on souhaite traiter comme la
temp\'erature pour les conditions aux limites. Ces {\it VarScalaires} sont
rep\'erables par l'utilisateur au moyen de l'indicateur \var{ISCSTH=1}. Par
d\'efaut cet indicateur est positionn\'e \`a la valeur 0 pour toutes les
{\it VarScalaires} (qui sont alors trait\'ees comme des scalaires passifs
avec $C=1$) hormis pour la variable
thermique \'eventuelle (\var{ISCALT}$^\text{i\`eme}$ {\it VarScalaire}), pour laquelle on a
\var{ISCSTH=1}~: on suppose par d\'efaut que la variable thermique est la temp\'erature et non
l'enthalpie. Si l'on souhaite r\'esoudre en enthalpie, il faut positionner
\var{ISCSTH} \`a la valeur 2 pour la variable thermique. Pour le compressible,
la variable thermique est l'nergie, identifie par \var{ISCSTH=3}. On se
reportera  \fort{cfxtcl} pour le traitement des conditions aux limites.}
$C=C_p$. Dans le code, c'est la valeur de
$\displaystyle\frac{\alpha_m}{C}$ que l'utilisateur doit fournir (si la propri\'et\'e est
constante, les valeurs sont affect\'ees dans \fort{usini1} \`a \var{VISCL0} pour
la vitesse et \`a \var{VISLS0} pour les {\it VarScalaires}~; si la propri\'et\'e
est variable, ce sont des tableaux \'equivalents qui doivent \^etre renseign\'es
dans \fort{usphyv}).

\item[-] Pour la variance des fluctuations d'une {\it VarScalaire}, la
conductivit\'e $\alpha$ et le coefficient $C$ sont h\'erit\'es de la
{\it VarScalaire} associ\'ee.

\end{itemize}


{\bf Condition de type Dirichlet simple}~: lorsque la condition est une condition de Dirichlet simple, on
obtient naturellement (cas particulier de (\ref{Base_Condli_eq_fbord_condli}))~:
\begin{equation}
\underbrace{\ \ f_{b,int}\ \ }_{\text{valeur de bord utilis\'ee par le calcul}}
= \underbrace{\ \ f_{\text{\it r\'eel}}\ \ }_{\text{valeur r\'eelle impos\'ee au bord}}
\end{equation}
{\bf Autres cas}~: lorsque la condition \`a la limite porte
sur la donn\'ee d'un flux, il s'agit
d'un flux diffusif\footnote{En effet, le flux total sortant du domaine est
donn\'e par la
somme du flux convectif (si la variable est effectivement convect\'ee)
et du flux diffusif. N\'eanmoins, pour les parois
\'etanches et les sym\'etries, le flux de masse est nul et la condition se
r\'eduit \`a une contrainte sur le flux diffusif. De plus, pour les
sorties (flux de masse sortant), la condition \`a la limite ne porte que sur le
flux diffusif (souvent une condition de Neumann homog\`ene), le flux convectif
d\'ependant des conditions amont (il n'a donc pas besoin de
condition \`a la limite). Enfin, aux entr\'ees, c'est le plus souvent une
condition de Dirichlet simple qui est appliqu\'ee et le flux diffusif s'en d\'eduit.}.
On a alors~:
\begin{equation}
\underbrace{\ \ \phi_{int}\ \ }_{\text{flux diffusif transmis au domaine interne}}
= \underbrace{\ \ \phi_{\text{\it r\'eel}}\ \ }_{\text{flux diffusif r\'eel impos\'e au bord}}
\end{equation}

Le flux diffusif r\'eel impos\'e peut \^etre donn\'e
\begin{itemize}
\item [-] directement (condition de Neumann), soit
$\phi_{\text{\it r\'eel}}=\phi_{\text{\it imp,ext}}$ ou
\item [-] d\'eduit implicitement de deux informations impos\'ees~: une valeur
externe $f_{imp,ext}$ et un coefficient d'\'echange $h_{imp,ext}$
(condition de Dirichlet g\'en\'eralis\'ee).
\end{itemize}

\vspace{1cm}
Selon le type de condition (Dirichlet ou Neumann) et en prenant pour hypoth\`ese
la conservation du flux dans la direction normale au bord,
on peut alors \'ecrire (voir figure \ref{Base_Condli_fig_flux_condli})~:
\begin{equation}\label{Base_Condli_eq_flux_condli}
\begin{array}{l}
    \underbrace{h_{int}(f_{b,int}-f_{I'})}_{\phi_{int}}
  = \underbrace{h_{b}(f_{b,ext}-f_{I'})}_{\phi_{b}}
  = \left\{\begin{array}{ll}
    \underbrace{h_{imp,ext}(f_{imp,ext}-f_{b,ext})}_{\phi_{\text{\it r\'eel
impos\'e}}} &\text{(condition de Dirichlet)}\\
    \underbrace{\phi_{\text{\it imp,ext}}}_{\phi_{\text{\it r\'eel impos\'e}}}
            &\text{(condition de Neumann)}
           \end{array}\right.
\end{array}
\end{equation}

Le rapport entre le coefficient  $h_{b}$ et le coefficient $h_{int}$ rend compte
de l'importance de la travers\'ee de la zone proche du bord et
rev\^et une importance particuli\`ere dans le
cas des parois le long desquelles se d\'eveloppe une couche limite (dont les
propri\'et\'es sont alors prises en compte par $h_{b}$~: se reporter \`a
\fort{clptur}). Dans le cadre plus simple consid\'er\'e ici, on se limitera au
cas  $h_{b}=h_{int}$ et $f_{b,ext}=f_{b,int}=f_{b}$.
La relation (\ref{Base_Condli_eq_flux_condli}) s'\'ecrit alors~:

\begin{equation}
\underbrace{h_{int}(f_{b}-f_{I'})}_{\phi_{int}}
  = \left\{\begin{array}{ll}
    \underbrace{h_{imp,ext}(f_{imp,ext}-f_{b})}_{\phi_{\text{\it r\'eel
impos\'e}}} &\text{(condition de Dirichlet)}\\
    \underbrace{\phi_{\text{\it imp,ext}}}_{\phi_{\text{\it r\'eel impos\'e}}}
            &\text{(condition de Neumann)}
           \end{array}\right.
\end{equation}

En r\'earrangeant, on obtient la valeur de bord~:
\begin{equation}\label{Base_Condli_eq_fbord_condli}
f_{b}
  = \left\{\begin{array}{cccccl}
    \displaystyle\frac{h_{imp,ext}}{h_{int}+h_{imp,ext}}&f_{imp,ext}&+&
    \displaystyle\frac{h_{int}}{h_{int}+h_{imp,ext}}    &f_{I'}
                         &\text{(condition de Dirichlet)}\\
    \displaystyle\frac{1}{h_{int}}&\phi_{\text{\it imp,ext}}&+&
    \ &f_{I'}
            &\text{(condition de Neumann)}
           \end{array}\right.
\end{equation}


{\bf Conclusion}~: on notera donc les conditions aux limites
de mani\`ere g\'en\'erale sous la forme~:
\begin{equation}
f_{b}=A_b + B_b\,f_{I'}
\end{equation}
avec $A_b$ et $B_b$ d\'efinis selon le type des conditions~:
\begin{equation}
\begin{array}{c}
\text{Dirichlet}\left\{\begin{array}{ll}
    A_b = &\displaystyle\frac{h_{imp,ext}}{h_{int}+h_{imp,ext}}f_{imp,ext}\\
    B_b = &\displaystyle\frac{h_{int}}{h_{int}+h_{imp,ext}}
                  \end{array}\right.
\text{\ \  Neumann}\left\{\begin{array}{ll}
    A_b = &\displaystyle\frac{1}{h_{int}}\phi_{\text{\it imp,ext}}\\
    B_b = &1
                  \end{array}\right.
\end{array}
\end{equation}


\newpage

{\bf Remarques }
\begin{itemize}
\item [-] La valeur $f_{I'}$ est calcul\'ee en utilisant le gradient cellule de $f$,
soit~: $f_{I'}=f_{I}+\vect{II'}\grad{f}_I$.
\item [-] Il reste \`a pr\'eciser la valeur de $h_{int}$. Il s'agit d'une valeur {\it
num\'erique}, n'ayant {\it a priori} aucun rapport avec un coefficient d'\'echange
physique, et d\'ependante du mode de calcul du flux diffusif dans la premi\`ere
maille de bord. Ainsi~$\displaystyle h_{int}=\displaystyle\frac{\alpha}{\overline{I'F}}$
(l'unit\'e s'en d\'eduit naturellement).
\item [-] On rappelle que dans le code, c'est la valeur de
$\displaystyle\frac{\alpha_m}{C}$ que l'utilisateur doit fournir. Si la propri\'et\'e est
constante, les valeurs sont affect\'ees dans \fort{usini1} \`a \var{VISCL0} pour
la vitesse (viscosit\'e dynamique mol\'eculaire $\mu$ en $kg\,m^{-1}\,s^{-1}$)
et \`a \var{VISLS0} pour les {\it VarScalaires} (par exemple, pour la
temp\'erature et l'enthalpie, $\displaystyle\frac{\lambda}{C_p}$ en $kg\,m^{-1}\,s^{-1}$).
Si la propri\'et\'e est variable en espace ou en temps, ce sont des tableaux \'equivalents
qui doivent \^etre renseign\'es dans \fort{usphyv}.  En outre, la variance
des fluctuations d'une {\it VarScalaire} h\'erite automatiquement la valeur
de $\displaystyle\frac{\alpha_m}{C}$ de la {\it VarScalaire} associ\'ee
(\CS~1.1 et suivantes).
\item [-] On rappelle \'egalement, car ce peut \^etre source d'erreur, que dans
le code, on a~:
        \begin{itemize}
        \item [-] pour la temp\'erature $\alpha_m=\lambda$ et $C=C_p$
        \item [-] pour l'enthalpie      $\alpha_m=\displaystyle\frac{\lambda}{C_p}$ et $C=1$
        \end{itemize}
\end{itemize}


{\bf Exemples de cas particuliers}
\begin{itemize}
\item [-] Dans le cas d'une condition de Dirichlet,
l'utilisateur est donc conduit \`a
fournir deux donn\'ees :  $f_{imp,ext}$ et $h_{imp,ext}$.
Pour obtenir une condition de Dirichlet simple (sans coefficient d'\'echange)
il suffit d'imposer $h_{imp,ext}=+\infty$. C'est le cas d'utilisation le plus
courant (en pratique, $h_{imp,ext}=10^{30}$ ).
\item [-] Dans le cas d'une condition de Neumann, l'utilisateur fournit une seule valeur
$\phi_{\text{\it imp,ext}}$ (nulle pour les conditions de Neumann homog\`enes).
\end{itemize}

\newpage
\etape{Condition de sortie pour la pression\vspace{0,3cm}}\label{Base_Condli_Sortie_Pression}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
On pr\'ecise ici la condition de sortie appliqu\'ee
\`a la pression dans le cas des sorties standards.
Il est n\'ecessaire d'imposer une condition de type Dirichlet (accompagn\'ee d'une
condition
de type Neumann homog\`ene sur les composantes de la vitesse). On la
calcule \`a partir des valeurs de la variable au pas de temps pr\'ec\'edent.
\begin{itemize}
\item [-] En raisonnant sur une configuration simple (de type canal, avec une sortie
plane, perpendiculaire \`a l'\'ecoulement),
on peut faire l'hypoth\`ese que la forme des profils de pression pris
sur les surfaces parall\`eles \`a la sortie est inchang\'ee aux alentours de
celle-ci (hypoth\`ese d'un \'ecoulement \'etabli, loin de toute
perturbation). Dans cette situation, on peut \'ecrire
$\displaystyle\frac{\partial^2P}{\partial\vect{n}\partial\vect{\tau}_i}=0$
($\vect{n}$ est le vecteur normal \`a la sortie, $\vect{\tau}_i$ repr\'esente
une base du plan de sortie).

\item [-] Si, de plus,
on peut supposer que le gradient de pression pris dans la direction
perpendiculaire aux faces de sortie est uniforme au
voisinage de celle-ci, le profil \`a imposer en sortie (valeurs $p_b$)
se d\'eduit du profil
pris sur un plan amont (valeurs $p_{amont}$) en ajoutant simplement la constante
$R=d\,\grad{(p)}.\vect{n}$ (o\`u $d$ est la distance entre le plan amont
et la sortie), soit $p_b=p_{amont}+R$ (le fait que $R$ soit identique pour
toutes les faces de sortie est important afin de pouvoir l'\'eliminer dans
l'\'equation (\ref{Base_Condli_eq_psortie_condli}) ci-dessous).

\item [-] Avec l'hypoth\`ese
suppl\'ementaire que les points $I'$ relatifs aux faces de sortie sont
sur un plan parall\`ele \`a la sortie, on peut utiliser les
valeurs en ces points ($p_{I'}$) pour valeurs amont soit
$p_{amont}=p_{I'}=p_{I}+\vect{II'}.\grad{p}$.

\item [-] Par ailleurs, la
pression \'etant d\'efinie \`a une constante pr\`es (\'ecoulement
incompressible) on peut fixer sa valeur arbitrairement en un point $A$ (centre
d'une face de sortie choisie arbitrairement\footnote{premi\`ere face de
sortie rencontr\'ee en parcourant les faces de bord dans l'ordre naturel induit
par la num\'erotation interne au code}) \`a $p_0$ (valeur fix\'ee par
l'utilisateur, \'egale \`a \var{P0} et nulle par d\'efaut),
et donc d\'ecaler le profil impos\'e en sortie en ajoutant~:\\
$R_0=p_0-(p_{amont,A}+R)=p_0-(p_{I',A}+R)$.

\item [-] On obtient donc finalement~:
\begin{equation}\label{Base_Condli_eq_psortie_condli}
\begin{array}{lll}
p_b&=&p_{I'}+R+R_0\\
   &=&p_{I'}+R+p_0-(p_{I',A}+R)\\
   &=&p_{I'}+\underbrace{p_0-p_{I',A}}_{\text{valeur constante $R_1$}}\\
   &=&p_{I'}+R_1
\end{array}
\end{equation}
\end{itemize}
On constate donc que la condition de pression en sortie est une condition de
Dirichlet dont les valeurs sont \'egales aux valeurs de la pression (prises au
pas de temps pr\'ec\'edent) sur le plan amont des points $I'$ et recal\'ees pour obtenir \var{P0} en
un point de sortie arbitraire.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section*{Points \`a traiter}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\etape{Repr\'esentation des conditions par une valeur de face}
Bien que la m\'ethode utilis\'ee permette une simplicit\'e et une
homog\'en\'eit\'e de traitement de toutes les conditions aux limites,
elle est relativement
restrictive au sens o\`u une seule valeur ne suffit pas toujours pour
repr\'esenter les conditions \`a appliquer lors du calcul de termes
diff\'erents.

Ainsi, en $k-\varepsilon$ a-t-il \'et\'e n\'ecessaire, lors du
calcul des conditions aux limites de paroi, de disposer de deux couples
($A_b$, $B_b$) afin de prendre en compte les
conditions \`a appliquer pour le calcul de la contrainte tangentielle
 et celles \`a utiliser  lors du calcul du terme
de production (et un troisi\`eme jeu de coefficients serait n\'ecessaire pour
permettre le traitement des gradients intervenant dans les termes de gradient
transpos\'e, dans \fort{visecv}).

Peut-\^etre pourrait-il \^etre utile de mettre en place une m\'ethode
permettant d'utiliser (au moins en certains points strat\'egiques du code)
directement des forces, des contraintes ou des flux, sans  passer
n\'ecessairement par le calcul d'une valeur de face.

\etape{Condition de sortie en pression}
La condition de pression en sortie se traduit par
$p_f=p_{I'}+R1$ et le profil obtenu correspond au
profil amont pris aux points $I'$ et recal\'e pour obtenir $p_0$ en un point
$A$ arbitraire. Ce type de condition est appliqu\'e sans pr\'ecautions, mais
n'est pas toujours justifi\'e (une condition de Dirichlet bas\'ee sur la valeur calcul\'ee
directement aux faces de bord pourrait \^etre plus adapt\'ee).
Les hypoth\`eses sont en particulier mises en d\'efaut
dans les cas suivants~:
\begin{itemize}
\item [-] la sortie est proche d'une zone o\`u l'\'ecoulement n'est pas \'etabli
en espace (ou varie en temps)~;
\item [-] la sortie n'est pas une surface perpendiculaire \`a l'\'ecoulement~;
\item [-] le gradient de pression dans la direction normale \`a la sortie n'est
pas le m\^eme pour toutes les faces de sortie
(dans le cas de sortie multiples, par exemple, le gradient n'est
probablement pas le m\^eme au travers de toutes les sorties)~;
\item [-] les points $I'$ ne sont pas sur une surface parall\`ele \`a la sortie
(cas des maillage irr\'eguliers par exemple).
\end{itemize}

Par ailleurs, en l'absence de condition de sortie, il pourrait peut-\^etre se
r\'ev\'eler utile de fixer une valeur de r\'ef\'erence sur une cellule donn\'ee
ou de ramener la moyenne de la pression \`a une valeur de r\'ef\'erence (avec le
d\'ecalage du spectre, on assure l'inversibilit\'e de la matrice \`a chaque pas
de temps, mais il
faudrait v\'erifier si la pression n'est pas susceptible de d\'eriver au cours
du calcul).

\etape{Termes non pris en compte}
Les conditions aux limites actuelles
semblent causer des difficult\'es lors du traitement du terme
de gradient transpos\'e de la vitesse dans l'\'equation de Navier-Stokes (terme
trait\'e de mani\`ere explicite en temps). Il est possible de ``d\'ebrancher'' ce terme en positionnant le mot cl\'e \var{IVISSE} \`a $0$. Sa valeur par
d\'efaut est $1$ (les termes en gradient transpos\'e sont pris en compte).\\