/*============================================================================
*
*                    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
*
*============================================================================*/

#ifndef __CS_ALE_H__
#define __CS_ALE_H__

/*============================================================================
 *  Gestion de la methode ALE
 *============================================================================*/

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */


/*----------------------------------------------------------------------------
 *  Fichiers `include' librairie standard C
 *----------------------------------------------------------------------------*/


/*----------------------------------------------------------------------------
 *  Fichiers `include' locaux
 *----------------------------------------------------------------------------*/

#include "cs_base.h"


/*============================================================================
 *  Prototype de fonctions publiques pour API Fortran
 *============================================================================*/

/*----------------------------------------------------------------------------
 * Calcul des centres de gravité des faces et cellules, et des volumes
 *
 * Interface Fortran :
 *
 * SUBROUTINE ALGRMA
 * *****************
 *
 *----------------------------------------------------------------------------*/

void CS_PROCF (algrma, ALGRMA) (void) ;


/*----------------------------------------------------------------------------
 * Projection aux noeuds du maillage du deplacement calcule au centre des
 *  cellules
 *
 * Interface Fortran :
 *
 * SUBROUTINE ALDEPL
 * *****************
 *
 * INTEGER          IFACEL(2,NFAC)  : --> : Connectivite faces internes/cellules
 * INTEGER          IFABOR(NFABOR)  : --> : Connectivite faces de bord/cellules
 * INTEGER          IPNFAC(NFAC+1)  : --> : Position du premier noeud de chaque face interne
 * INTEGER          NODFAC(LNDFAC)  : --> : Connectivite faces internes/noeuds
 * INTEGER          IPNFBR(NFABOR+1): --> : Position du premier noeud de chaque face de bord
 * INTEGER          NODFBR(LNDFBR)  : --> : Connectivite faces de bord/noeuds
 * DOUBLE PRECISION UMA(NCELET)     : --> : Vitesse de maillage selon X
 * DOUBLE PRECISION VMA(NCELET)     : --> : Vitesse de maillage selon X
 * DOUBLE PRECISION WMA(NCELET)     : --> : Vitesse de maillage selon X
 * DOUBLE PRECISION COEFAU(NCELET)  : --> : Condition aux limites A pour UMA
 * DOUBLE PRECISION COEFAV(NCELET)  : --> : Condition aux limites A pour VMA
 * DOUBLE PRECISION COEFAW(NCELET)  : --> : Condition aux limites A pour WMA
 * DOUBLE PRECISION COEFBU(NCELET)  : --> : Condition aux limites B pour UMA
 * DOUBLE PRECISION COEFBV(NCELET)  : --> : Condition aux limites B pour VMA
 * DOUBLE PRECISION COEFBW(NCELET)  : --> : Condition aux limites B pour WMA
 * DOUBLE PRECISION DT(NCELET)      : --> : Pas de temps
 * DOUBLE PRECISION DEPROJ(NNOD,3)) : <-- : Deplacement projete aux noeuds

 *----------------------------------------------------------------------------*/

void CS_PROCF (aldepl, ALDEPL)
(
 const cs_int_t ifacel[],
 const cs_int_t ifabor[],
 const cs_int_t ipnfac[],
 const cs_int_t nodfac[],
 const cs_int_t ipnfbr[],
 const cs_int_t nodfbr[],
 cs_real_t *uma,
 cs_real_t *vma,
 cs_real_t *wma,
 cs_real_t *coefau,
 cs_real_t *coefav,
 cs_real_t *coefaw,
 cs_real_t *coefbu,
 cs_real_t *coefbv,
 cs_real_t *coefbw,
 cs_real_t *dt,
 cs_real_t *deproj
) ;


#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif /* __CS_ALE_H__ */

