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

% This file is part of Code_Saturne, a general-purpose CFD tool.
%
% Copyright (C) 1998-2020 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{viscfa}
%

\hypertarget{viscfa}{}

\vspace{1cm}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section*{Fonction}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Dans ce sous-programme est calcul\'e le coefficient de diffusion isotrope aux
faces. Ce coefficient fait intervenir la valeur de la viscosité aux faces
multipliée par le rapport surface de la face sur la distance alg\'ebrique $\overline{I'J'}$ ou $\overline{I'F}$({\it cf.} figure \ref{Base_Viscfa_fig_geom}),
rapport résultant de l'intégration du terme de diffusion.
 Par analogie du terme calculé, ce sous-programme est aussi appelé par le
sous-programme \fort{resopv} pour calculer le coefficient ``diffusif'' de la pression faisant intervenir le pas de temps.\\
La valeur de la viscosité aux faces est déterminée soit par une moyenne
arithmétique, soit par une moyenne harmonique de la viscosité au centre des
cellules, suivant le choix de l'utilisateur. Par défaut, cette valeur est calculée par une moyenne arithmétique.

See the \doxygenanchor{cs__face__viscosity_8c.html\#viscfa}{programmers reference of the dedicated subroutine}
for further details.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section*{Discr\'etisation} \label{Base_Viscfa_paragraphe2}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
On rappelle dans la figure \ref{Base_Viscfa_fig_geom}, la définition des différents
points géométriques utilisés par la suite.

\begin{figure}[h]
\parbox{8cm}{%
\centerline{\includegraphics[height=4.5cm]{facette}}}
\parbox{8cm}{%
\centerline{\includegraphics[height=4.5cm]{facebord}}}
\caption{\label{Base_Viscfa_fig_geom}D\'efinition des diff\'erentes entit\'es
g\'eom\'etriques pour les faces internes (gauche) et de bord (droite).}
\end{figure}

L'intégration du terme de diffusion sur une cellule $\Omega_i$ est la suivante :
\begin{equation}
\int_{\Omega_i}\dive (\mu\,\grad(f))\,d\Omega= \sum\limits_{j \in
Vois(i)}\mu_{\,ij} \frac{f_{J'}-f_{I'}}{\overline{I'J'}}\,.\, S_{\,ij} + \sum\limits_{k \in
\gamma_b(i)}\mu_{\,b_{ik}} \frac{f_{\,b_{ik}}- f_{I'}}{\overline{I'F}}\,.\,S_{\,b_{ik}}
\end{equation}
Dans ce sous-programme, on calcule les termes de diffusion
$\displaystyle \mu_{\,ij}\frac{S_{\,ij}}{\overline{I'J'}}$ et $\displaystyle
\mu_{\,b_{ik}}\,.\,\frac{S_{\,b_{ik}}}{\overline{I'F}}$.\\

La valeur de la viscosité sur la face interne $ij$, $\mu_{\,ij}$, est calculée :\\
\hspace*{1.cm} {\tiny$\bigstar$}  soit par moyenne arithmétique :
\begin{equation}
\mu_{\,ij}=\alpha_{\,ij}\mu_{\,i}+(1-\alpha_{\,ij})\mu_{\,j}
\end{equation}
avec $\alpha_{\,ij} = 0.5$ car ce choix semble stabiliser, bien que cette
interpolation soit d'ordre 1 en espace en convergence.\\
\hspace*{1.cm} {\tiny$\bigstar$} soit par moyenne harmonique :
\begin{equation}\notag
\mu_{\,ij}=\frac{\mu_{\,i}\ \mu_{\,j}}{\alpha_{\,ij}\mu_{\,i}+(1-\alpha_{\,ij})\mu_{\,j}}
\end{equation}
avec $\alpha_{\,ij}=\displaystyle \frac{\overline{FJ'}}{\overline{I'J'}}$.\\

La valeur de la viscosité sur la face de bord $ik$, $\mu_{\,b_{ik}}$, est définie
ainsi :\\
\begin{equation}\notag
\mu_{\,b_{ik}}=\mu_I.
\end{equation}
\minititre{Remarque}
Lors de l'appel de \fort{viscfa} par le sous-programme \fort{resopv}, le terme
\`a consid\'erer est :
\begin{equation}\notag
\dive (\,\Delta t^n \ \grad(\delta p)\,)
\end{equation}
soit :
\begin{equation}\notag
\mu = \mu^n = \Delta t
\end{equation}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section*{Mise en \oe uvre}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
La valeur de la viscosité au centre des cellules est entrée en argument {\it
via} la variable \var{VISTOT}. On calcule sa valeur moyenne aux faces et on la
multiplie par le rapport surface \var{SURFN} sur la distance alg\'ebrique
\var{DIST} pour une face interne (\var{SURFBN} et \var{DISTBR} respectivement
pour une face de bord). La valeur du terme de diffusion résultant est mise dans le vecteur \var{VISCF} pour une face interne et \var{VISCB} pour une face de bord.\\
La variable \var{IMVISF} détermine quel type de moyenne est utilisé pour
calculer la viscosité aux faces.\\
Si \var{IMVISF}$=0$, la moyenne est arithmétique, sinon la moyenne est harmonique.\\

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section*{Points \`a traiter}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
L'obtention des interpolations utilisées dans le code \CS  du paragraphe \ref{Base_Viscfa_paragraphe2} est résumée dans le rapport de Davroux et
al\footnote{Davroux A., Archambeau F. et Hérard J.M., Tests numériques sur
quelques méthodes de résolution 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 irrégulier et avec une
viscosité non constante, la convergence mesurée est d'ordre 2 en espace avec
l'interpolation harmonique et d'ordre 1 en espace avec l'interpolation
linéaire (pour des solution régulières).\\
Par conséquent, il serait préférable d'utiliser l'interpolation harmonique pour
calculer la valeur de la viscosité aux faces. Des tests de stabilité seront nécessaires au préalable.
\\
De même, on envisage d'extrapoler la viscosité sur les faces de bord plutôt que
de prendre la valeur de la viscosité au centre 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.
