104 const Domaine_VEF& domaine_VEF = le_dom_vef.valeur();
105 const IntTab& elem_faces = domaine_VEF.
elem_faces();
106 const IntTab& face_voisins = domaine_VEF.
face_voisins();
109 int nb_dim = resu.
nb_dim();
119 for (
int n_bord=0; n_bord<domaine_VEF.
nb_front_Cl(); n_bord++)
125 int num2 = num1 + le_bord.
nb_faces();
131 for (num_face=num1; num_face<num2; num_face++)
133 elem1 = face_voisins(num_face,0);
135 for (i=0; i<nb_faces_elem; i++)
137 if ( ( (j= elem_faces(elem1,i)) > num_face ) && (j != fac_asso ) )
139 val = visc_Q1(domaine_VEF,domaine_Cl_VEF,num_face,j,elem1,
dimension,
nu_);
141 for (
int nc=0; nc<nb_comp; nc++)
143 resu(num_face,nc)+=val*inconnue(j,nc);
144 resu(num_face,nc)-=val*inconnue(num_face,nc);
145 resu(j,nc)+=0.5*val*inconnue(num_face,nc);
146 resu(j,nc)-=0.5*val*inconnue(j,nc);
150 elem2 = face_voisins(num_face,1);
151 for (i=0; i<nb_faces_elem; i++)
153 if ( ( (j= elem_faces(elem2,i)) > num_face ) && (j != fac_asso ) )
155 val = visc_Q1(domaine_VEF,domaine_Cl_VEF,num_face,j,elem2,
dimension,
nu_);
156 for (
int nc=0; nc<nb_comp; nc++)
158 resu(num_face,nc)+=val*inconnue(j,nc);
159 resu(num_face,nc)-=val*inconnue(num_face,nc);
160 resu(j,nc)+=0.5*val*inconnue(num_face,nc);
161 resu(j,nc)-=0.5*val*inconnue(j,nc);
169 for (num_face=num1; num_face<num2; num_face++)
171 elem1 = face_voisins(num_face,0);
172 for (i=0; i<nb_faces_elem; i++)
174 if ( (j= elem_faces(elem1,i)) > num_face )
176 val = visc_Q1(domaine_VEF,domaine_Cl_VEF,num_face,j,elem1,
dimension,
nu_);
177 for (
int nc=0; nc<nb_comp; nc++)
179 resu(num_face,nc)+=val*inconnue(j,nc);
180 resu(num_face,nc)-=val*inconnue(num_face,nc);
181 resu(j,nc)+=val*inconnue(num_face,nc);
182 resu(j,nc)-=val*inconnue(j,nc);
193 elem1 = face_voisins(num_face,0);
194 elem2 = face_voisins(num_face,1);
196 for (i=0; i<nb_faces_elem; i++)
198 if ( (j=elem_faces(elem1,i)) > num_face )
200 val = visc_Q1(domaine_VEF,domaine_Cl_VEF,num_face,j,elem1,
dimension,
nu_);
201 for (
int nc=0; nc<nb_comp; nc++)
203 resu(num_face,nc)+=val*inconnue(j,nc);
204 resu(num_face,nc)-=val*inconnue(num_face,nc);
205 resu(j,nc)+=val*inconnue(num_face,nc);
206 resu(j,nc)-=val*inconnue(j,nc);
210 if ( (j=elem_faces(elem2,i)) > num_face )
212 val = visc_Q1(domaine_VEF,domaine_Cl_VEF,num_face,j,elem2,
dimension,
nu_);
213 for (
int nc=0; nc<nb_comp; nc++)
215 resu(num_face,nc)+=val*inconnue(j,nc);
216 resu(num_face,nc)-=val*inconnue(num_face,nc);
217 resu(j,nc)+=val*inconnue(num_face,nc);
218 resu(j,nc)-=val*inconnue(j,nc);
226 for (
int n_bord=0; n_bord<domaine_VEF.
nb_front_Cl(); n_bord++)
235 int nfin = ndeb + le_bord.
nb_faces();
236 for (
int face=ndeb; face<nfin; face++)
237 for (
int comp=0; comp<nbcomp; comp++)
245 int nfin = ndeb + le_bord.
nb_faces();
246 for (
int face=ndeb; face<nfin; face++)
247 for (
int comp=0; comp<nbcomp; comp++)
248 resu(face,comp) += la_cl_paroi.
h_imp(face-ndeb,comp)*(la_cl_paroi.
T_ext(face-ndeb)-inconnue(face,comp))*domaine_VEF.
surface(face);
272 const Domaine_VEF& domaine_VEF = le_dom_vef.valeur();
273 const IntTab& elem_faces = domaine_VEF.
elem_faces();
274 const IntTab& face_voisins = domaine_VEF.
face_voisins();
276 const int nb_comp = transporte.
line_size();
278 int i,j,num_face,elem1,elem2;
287 for (
int n_bord=0; n_bord<domaine_VEF.
nb_front_Cl(); n_bord++)
293 int num2 = num1 + le_bord.
nb_faces();
299 for (num_face=num1; num_face<num2; num_face++)
301 elem1 = face_voisins(num_face,0);
303 for (i=0; i<nb_faces_elem; i++)
305 if ( ( (j= elem_faces(elem1,i)) > num_face ) && (j != fac_asso ) )
307 val = visc_Q1(domaine_VEF,domaine_Cl_VEF,num_face,j,elem1,
dimension,
nu_);
308 for (
int nc=0; nc<nb_comp; nc++)
310 for (
auto k=tab1[num_face*nb_comp+nc]-1; k<tab1[num_face*nb_comp+nc+1]-1; k++)
312 if (tab2[k]-1==num_face*nb_comp+nc)
314 if (tab2[k]-1==j*nb_comp+nc)
317 for (
auto k=tab1[j*nb_comp+nc]-1; k<tab1[j*nb_comp+nc+1]-1; k++)
319 if (tab2[k]-1==num_face*nb_comp+nc)
321 if (tab2[k]-1==j*nb_comp+nc)
327 elem2 = face_voisins(num_face,1);
328 for (i=0; i<nb_faces_elem; i++)
330 if ( ( (j= elem_faces(elem2,i)) > num_face ) && (j != fac_asso ) )
332 val = visc_Q1(domaine_VEF,domaine_Cl_VEF,num_face,j,elem2,
dimension,
nu_);
333 for (
int nc=0; nc<nb_comp; nc++)
335 for (
auto k=tab1[num_face*nb_comp+nc]-1; k<tab1[num_face*nb_comp+nc+1]-1; k++)
337 if (tab2[k]-1==num_face*nb_comp+nc)
339 if (tab2[k]-1==j*nb_comp+nc)
342 for (
auto k=tab1[j*nb_comp+nc]-1; k<tab1[j*nb_comp+nc+1]-1; k++)
344 if (tab2[k]-1==num_face*nb_comp+nc)
346 if (tab2[k]-1==j*nb_comp+nc)
356 for (num_face=num1; num_face<num2; num_face++)
358 elem1 = face_voisins(num_face,0);
359 for (i=0; i<nb_faces_elem; i++)
361 if ( (j= elem_faces(elem1,i)) > num_face )
363 val = visc_Q1(domaine_VEF,domaine_Cl_VEF,num_face,j,elem1,
dimension,
nu_);
364 for (
int nc=0; nc<nb_comp; nc++)
366 for (
auto k=tab1[num_face*nb_comp+nc]-1; k<tab1[num_face*nb_comp+nc+1]-1; k++)
368 if (tab2[k]-1==num_face*nb_comp+nc)
370 if (tab2[k]-1==j*nb_comp+nc)
373 for (
auto k=tab1[j*nb_comp+nc]-1; k<tab1[j*nb_comp+nc+1]-1; k++)
375 if (tab2[k]-1==num_face*nb_comp+nc)
377 if (tab2[k]-1==j*nb_comp+nc)
391 elem1 = face_voisins(num_face,0);
392 elem2 = face_voisins(num_face,1);
394 for (i=0; i<nb_faces_elem; i++)
396 if ( (j=elem_faces(elem1,i)) > num_face )
398 val = visc_Q1(domaine_VEF,domaine_Cl_VEF,num_face,j,elem1,
dimension,
nu_);
399 for (
int nc=0; nc<nb_comp; nc++)
401 for (
auto k=tab1[num_face*nb_comp+nc]-1; k<tab1[num_face*nb_comp+nc+1]-1; k++)
403 if (tab2[k]-1==num_face*nb_comp+nc)
405 if (tab2[k]-1==j*nb_comp+nc)
408 for (
auto k=tab1[j*nb_comp+nc]-1; k<tab1[j*nb_comp+nc+1]-1; k++)
410 if (tab2[k]-1==num_face*nb_comp+nc)
412 if (tab2[k]-1==j*nb_comp+nc)
417 if ( (j=elem_faces(elem2,i)) > num_face )
422 for (
int nc=0; nc<nb_comp; nc++)
424 val = visc_Q1(domaine_VEF,domaine_Cl_VEF,num_face,j,elem2,
dimension,
nu_);
425 for (
auto k=tab1[num_face*nb_comp+nc]-1; k<tab1[num_face*nb_comp+nc+1]-1; k++)
427 if (tab2[k]-1==num_face*nb_comp+nc)
429 if (tab2[k]-1==j*nb_comp+nc)
432 for (
auto k=tab1[j]-1; k<tab1[j+1]-1; k++)
434 if (tab2[k]-1==num_face*nb_comp+nc)
436 if (tab2[k]-1==j*nb_comp+nc)
443 val= visc_Q1(domaine_VEF,domaine_Cl_VEF,num_face,j,elem1,
dimension,
nu_);
444 for (
int nc=0; nc<nb_comp; nc++)
446 for (
auto k=tab1[num_face*nb_comp+nc]-1; k<tab1[num_face*nb_comp+nc+1]-1; k++)
448 if (tab2[k]-1==num_face*nb_comp+nc)
450 if (tab2[k]-1==j*nb_comp+nc)
453 for (
auto k=tab1[j*nb_comp+nc]-1; k<tab1[j*nb_comp+nc+1]-1; k++)
455 if (tab2[k]-1==num_face*nb_comp+nc)
457 if (tab2[k]-1==j*nb_comp+nc)
int nb_faces_elem(int=0) const
Renvoie le nombre de face de type i des elements geometriques constituants le domaine.
int elem_faces(int i, int j) const
renvoie le numero de le ieme face de la maille num_elem la facon dont ces faces sont numerotees est
int premiere_face_int() const
une face est interne ssi elle separe deux elements.
int face_voisins(int num_face, int i) const
renvoie l'element voisin de numface dans la direction i.