1
!-------------------------------------------------------------------------------
3
! This file is part of Code_Saturne, a general-purpose CFD tool.
5
! Copyright (C) 1998-2011 EDF S.A.
7
! This program is free software; you can redistribute it and/or modify it under
8
! the terms of the GNU General Public License as published by the Free Software
9
! Foundation; either version 2 of the License, or (at your option) any later
12
! This program is distributed in the hope that it will be useful, but WITHOUT
13
! ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
14
! FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
17
! You should have received a copy of the GNU General Public License along with
18
! this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
19
! Street, Fifth Floor, Boston, MA 02110-1301, USA.
21
!-------------------------------------------------------------------------------
26
( vectx , vecty , vectz , &
29
!===============================================================================
33
! CALCUL A LA FACE DE (VECT)ij . S
34
! A PARTIR DU VECTEUR VECTX, VECTY, VECTZ
35
! UTILISE POUR LE CALCUL DU TERME DE DIFFUSION DE Rij ET Epsilon
38
!-------------------------------------------------------------------------------
40
!__________________.____._____.________________________________________________.
41
! name !type!mode ! role !
42
!__________________!____!_____!________________________________________________!
43
! vectx (ncelet ! tr ! <-- ! composante x du vecteur entre !
44
! vecty (ncelet ! tr ! <-- ! composante y du vecteur entre !
45
! vectz (ncelet ! tr ! <-- ! composante z du vecteur entre !
46
! valf (nfac) ! tr ! --> ! vect*surface aux faces internes !
47
! valb (nfabor ! tr ! --> ! vect*surface aux faces de bord !
48
!__________________!____!_____!________________________________________________!
50
! TYPE : E (ENTIER), R (REEL), A (ALPHANUMERIQUE), T (TABLEAU)
51
! L (LOGIQUE) .. ET TYPES COMPOSES (EX : TR TABLEAU REEL)
52
! MODE : <-- donnee, --> resultat, <-> Donnee modifiee
53
! --- tableau de travail
54
!===============================================================================
56
!===============================================================================
58
!===============================================================================
66
!===============================================================================
72
double precision vectx(ncelet), vecty(ncelet), vectz(ncelet)
73
double precision valf(nfac), valb(nfabor)
77
integer ifac, iel1, iel2
78
double precision valfx, valfy, valfz
80
!===============================================================================
82
! ---> TRAITEMENT DU PARALLELISME ET DE LA PERIODICITE
84
if (irangp.ge.0.or.iperio.eq.1) then
85
call synvec(vectx, vecty, vectz)
95
valfx = pond(ifac) * vectx(iel1) + &
96
(1.d0-pond(ifac)) * vectx(iel2)
97
valfy = pond(ifac) * vecty(iel1) + &
98
(1.d0-pond(ifac)) * vecty(iel2)
99
valfz = pond(ifac) * vectz(iel1) + &
100
(1.d0-pond(ifac)) * vectz(iel2)
102
valf(ifac) = valfx*surfac(1,ifac) + &
103
valfy*surfac(2,ifac) + &
109
! On met VALB a zero, ce qui revient a negliger la partie
110
! extradiagonale du tenseur de diffusion au bord.
111
!MO IEL1 = IFABOR(IFAC)
113
!MO VALB(IFAC) = VECTX(IEL1)*SURFBO(1,IFAC) +
114
!MO & VECTY(IEL1)*SURFBO(2,IFAC) +
115
!MO & VECTZ(IEL1)*SURFBO(3,IFAC)