47 const IntTab& Face_sommets,
48 const IntTab& Face_voisins,
49 const IntTab& elem_faces,
50 const Domaine& domaine_geom)
const
57 double x1,y1,z1,x2,y2,z2;
61 int n0 = Face_sommets(num_Face,0);
62 int n1 = Face_sommets(num_Face,1);
63 int n2 = Face_sommets(num_Face,2);
66 x1 = les_coords(n0,0) - les_coords(n1,0);
67 y1 = les_coords(n0,1) - les_coords(n1,1);
68 z1 = les_coords(n0,2) - les_coords(n1,2);
70 x2 = les_coords(n2,0) - les_coords(n1,0);
71 y2 = les_coords(n2,1) - les_coords(n1,1);
72 z2 = les_coords(n2,2) - les_coords(n1,2);
74 nx = (y1*z2 - y2*z1)/2;
75 ny = (-x1*z2 + x2*z1)/2;
76 nz = (x1*y2 - x2*y1)/2;
81 int elem1 = Face_voisins(num_Face,0);
82 if ( (f0 = elem_faces(elem1,0)) == num_Face )
83 f0 = elem_faces(elem1,1);
85 if ( (no4 = Face_sommets(f0,0)) != n0 && no4 != n1
88 else if ( (no4 = Face_sommets(f0,1)) != n0 && no4 != n1
92 no4 = Face_sommets(f0,2);
94 x1 = les_coords(no4,0) - les_coords(n0,0);
95 y1 = les_coords(no4,1) - les_coords(n0,1);
96 z1 = les_coords(no4,2) - les_coords(n0,2);
98 if ( (nx*x1+ny*y1+nz*z1) > 0 )
100 Face_normales(num_Face,0) = - nx;
101 Face_normales(num_Face,1) = - ny;
102 Face_normales(num_Face,2) = - nz;
106 Face_normales(num_Face,0) = nx;
107 Face_normales(num_Face,1) = ny;
108 Face_normales(num_Face,2) = nz;
116 const ArrOfDouble& vs,
const DoubleTab& vsom,
126 for (comp=0; comp<3; comp++)
127 vc[comp] = 0.25*vs[comp];
133 for (comp=0; comp<3; comp++)
134 vc[comp] = vitesse.
valeurs()(Face[3],comp)*porosite_face[Face[3]];
140 for (comp=0; comp<3; comp++)
141 vc[comp] = vitesse.
valeurs()(Face[2],comp)*porosite_face[Face[2]];
147 for (comp=0; comp<3; comp++)
148 vc[comp] = vitesse.
valeurs()(Face[1],comp)*porosite_face[Face[1]];
154 for (comp=0; comp<3; comp++)
155 vc[comp] = vitesse.
valeurs()(Face[0],comp)*porosite_face[Face[0]];
161 for (comp=0; comp<3; comp++)
162 vc[comp] = 0.5* (vsom(0,comp) + vsom(1,comp));
168 for (comp=0; comp<3; comp++)
169 vc[comp] = 0.5* (vsom(0,comp) + vsom(2,comp));
175 for (comp=0; comp<3; comp++)
176 vc[comp] = 0.5* (vsom(0,comp) + vsom(3,comp));
182 for (comp=0; comp<3; comp++)
183 vc[comp] = 0.5* (vsom(1,comp) + vsom(2,comp));
189 for (comp=0; comp<3; comp++)
190 vc[comp] = 0.5* (vsom(1,comp) + vsom(3,comp));
196 for (comp=0; comp<3; comp++)
197 vc[comp] = 0.5*(vsom(2,comp) + vsom(3,comp));
203 for (comp=0; comp<3; comp++)
204 vc[comp] = vsom(0,comp);
210 for (comp=0; comp<3; comp++)
211 vc[comp] = vsom(1,comp);
217 for (comp=0; comp<3; comp++)
218 vc[comp] = vsom(2,comp);
224 for (comp=0; comp<3; comp++)
225 vc[comp] = vsom(3,comp);
236 int& idirichlet,
int& n1,
int& n2,
int& n3)
const
245 for (j=0; j<dim; j++)
246 xg[j]=0.25*(x(0,j)+x(1,j)+x(2,j)+x(3,j));
261 for (j=0; j<dim; j++)
262 xg[j]=(x(0,j)+x(1,j)+x(2,j))/3.;
277 for (j=0; j<dim; j++)
278 xg[j]=(x(0,j)+x(1,j)+x(3,j))/3.;
292 for (j=0; j<dim; j++)
293 xg[j]=(x(0,j)+x(2,j)+x(3,j))/3.;
307 for (j=0; j<dim; j++)
308 xg[j]=(x(1,j)+x(2,j)+x(3,j))/3.;
319 for (j=0; j<dim; j++)
320 xg[j]= 0.5*(x(0,j)+x(1,j));
333 for (j=0; j<dim; j++)
334 xg[j]= 0.5*(x(0,j)+x(2,j));
346 for (j=0; j<dim; j++)
347 xg[j]= 0.5*(x(0,j)+x(3,j));
359 for (j=0; j<dim; j++)
360 xg[j]= 0.5*(x(1,j)+x(2,j));
372 for (j=0; j<dim; j++)
373 xg[j]= 0.5*(x(1,j)+x(3,j));
386 for (j=0; j<dim; j++)
387 xg[j]= 0.5*(x(2,j)+x(3,j));
398 for (j=0; j<dim; j++)
413 for (j=0; j<dim; j++)
428 for (j=0; j<dim; j++)
442 for (j=0; j<dim; j++)
const DoubleTab_t & coord_sommets() const
void calcul_xg(DoubleVect &, const DoubleTab &, const int, int &, int &, int &, int &) const
calcule les coord xg du centre d'un element non standard calcule aussi idirichlet=nb de faces de Diri...