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
|
%-------------------------------------------------------------------------------
% 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{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.
\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).\\
|