%                      Code_Saturne version 1.3
%                      ------------------------
%
%     This file is part of the Code_Saturne Kernel, element of the
%     Code_Saturne CFD tool.
% 
%     Copyright (C) 1998-2007 EDF S.A., France
%
%     contact: saturne-support@edf.fr
% 
%     The Code_Saturne Kernel 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.
% 
%     The Code_Saturne Kernel 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 the Code_Saturne Kernel; if not, write to the
%     Free Software Foundation, Inc.,
%     51 Franklin St, Fifth Floor,
%     Boston, MA  02110-1301  USA
%
%-----------------------------------------------------------------------
%

\programme{recvmc}

\vspace{1cm}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Fonction}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Le but de ce sous-programme est de calculer la vitesse au centre des cellules
\`a partir du flux de masse aux faces, par moindres carr\'es. Utilis\'ee apr\`es 
l'\'etape de correction de pression ({\it cf.}~\fort{navsto}) cette m\'ethode est une 
alternative \`a la technique de reconstruction \`a partir du gradient de
l'incr\'ement de pression (technique standard). 
Elle est activ\'ee quand l'indicateur \var{IREVMC} vaut~1 ou 2.

On rappelle que, à la fin de l'étape de correction de pression, le flux de masse aux faces vaut :
\begin{equation}  
(\rho \vect{u})^{n+1}_{\,ij}\text{.}\vect{S}_{\,ij} =  
(\rho
\vect{\widetilde{u}})^{n+1}_{\,ij}.\,\vect{S}_{\,ij}
-\vect{D}_{\,ij}(\Delta t^n,\delta P^{n+\theta}) 
+\text{RC}_{\,ij}
\end{equation}  
où $\vect{\widetilde{u}}$ est la vitesse issue de l'étape de prédiction, $D_{\,ij}$ un opérateur de gradient aux faces
et $\text{RC}_{\,ij}$ le terme d'Arakawa (cf. \fort{navsto} pour une définition précise des notations).
Une première méthode, activée par \var{IREVMC} = 2, consiste à partir directement de
$(\rho \vect{u})^{n+1}_{\,ij}\text{.}\vect{S}_{\,ij}$ pour calculer $\vect{u}^{n+1}$ par moindres carrés. Son utilisation a
montr\'e qu'elle semblait plus diffusive que la m\'ethode standard (par exemple, dans le cas de la cavit\'e entra\^\i n\'ee)
et pouvait conduire à des résultats erronés sur des maillages ne comportant pas uniquement des tétraèdres
(ou des prismes à base triangulaire en ``2D'') et des pavés (hexaèdres orthogonaux).\\
On note que, dans la méthode ci-dessus, on est parti d'une vitesse $\vect{\widetilde{u}}$ au centre des cellules, qu'on a projetée aux faces pour obtenir le flux de masse, et qu'on ramène au centre des cellules par moindres carrés. Fort de cette constatation, une méthode alternative est disponible, activée par \var{IREVMC} = 1. Elle consiste à n'appliquer la méthode des moindres carrés qu'à la partie $-\vect{D}_{\,ij}(\Delta t^n,\delta P^{n+\theta}) +\text{RC}_{\,ij}$ du flux de masse et à rajouter directement 
$\vect{\widetilde{u}}$ (connu au centre des cellules) au résultat obtenu\footnote{cette dernière étape est faite dans
\fort{navsto}.}. Cette méthode donne des résultats sensiblement meilleurs.


