167 const Domaine_VDF& domaine_VDF = le_dom_VDF.valeur();
169 const IntTab& face_voisins = domaine_VDF.
face_voisins();
170 const IntVect& orientation = domaine_VDF.
orientation();
174 int ndeb,nfin,ncomp,num_face,elem1,elem2;
179 const DoubleVect& s = la_source->valeurs();
183 for (
int n_bord=0; n_bord<domaine_VDF.
nb_front_Cl(); n_bord++)
198 for (num_face=ndeb; num_face<nfin; num_face++)
200 vol = volumes_entrelaces(num_face);
202 ncomp = orientation(num_face);
203 secmem(num_face)+= s(ncomp)*vol;
213 for (num_face=ndeb; num_face<nfin; num_face++)
215 vol = volumes_entrelaces(num_face)*porosite_surf(num_face);
216 ncomp = orientation(num_face);
217 secmem(num_face)+= s(ncomp)*vol;
221 else if (sub_type(
Symetrie,la_cl.valeur()))
233 vol = volumes_entrelaces(num_face)*porosite_surf(num_face);
234 ncomp = orientation(num_face);
235 secmem(num_face) += s(ncomp)*vol;
241 const DoubleTab& s = la_source->valeurs();
245 for (
int n_bord=0; n_bord<domaine_VDF.
nb_front_Cl(); n_bord++)
262 for (num_face=ndeb; num_face<nfin; num_face++)
264 vol = volumes_entrelaces(num_face)*porosite_surf(num_face);
265 ncomp = orientation(num_face);
266 elem1 = face_voisins(num_face,0);
269 secmem(num_face)+= s(elem1,ncomp)*vol;
272 elem2 = face_voisins(num_face,1);
273 secmem(num_face)+= s(elem2,ncomp)*vol;
278 else if (sub_type(
Symetrie,la_cl.valeur()))
288 for (num_face=ndeb; num_face<nfin; num_face++)
290 vol = volumes_entrelaces(num_face)*porosite_surf(num_face);
291 ncomp = orientation(num_face);
292 s_face = 0.5*( s(face_voisins(num_face,0),ncomp) + s(face_voisins(num_face,1),ncomp) );
293 secmem(num_face) += s_face*vol;
307 vol = volumes_entrelaces(num_face)*porosite_surf(num_face);
308 ncomp = orientation(num_face);
309 s_face = 0.5*( s(face_voisins(num_face,0),ncomp) + s(face_voisins(num_face,1),ncomp) );
310 secmem(num_face) += s_face*vol;
324 int nb_elem_tot = le_dom_VDF->nb_elem_tot();
325 int nb_faces_tot = le_dom_VDF->nb_faces_tot();
326 const IntTab& face_vois = le_dom_VDF->face_voisins();
327 const DoubleVect& volumes = le_dom_VDF->volumes();
329 DoubleTab valeurs_source(nb_elem_tot,
dimension);
335 tenseur_reynolds_elements = 0;
340 tenseur_reynolds_faces = 0.;
342 for (
int fac=0; fac<nb_faces_tot; fac++)
344 int elem1 = face_vois(fac,0);
345 int elem2 = face_vois(fac,1);
352 tenseur_reynolds_faces(fac,i,j) += tenseur_reynolds_elements(elem1,i,j)*volumes(elem1);
354 vol += volumes(elem1);
361 tenseur_reynolds_faces(fac,i,j) += tenseur_reynolds_elements(elem2,i,j)*volumes(elem2);
363 vol += volumes(elem2);
368 tenseur_reynolds_faces(fac,i,j) /= vol;
372 const IntTab& elem_faces = le_dom_VDF->elem_faces();
373 const IntTab& face_voisins = le_dom_VDF->face_voisins();
374 const DoubleVect& inverse_vol = le_dom_VDF->inverse_volumes();
375 const int nb_faces_elem=elem_faces.
line_size();
381 for (
int elem=0; elem<nb_elem_tot; elem++)
387 for (
int facei_loc=0; facei_loc<nb_faces_elem; facei_loc++)
389 facei=elem_faces(elem,facei_loc);
390 signe=(face_voisins(facei,0)==elem)? 1.:-1.;
394 div+=signe*le_dom_VDF->face_normales(facei,j)*tenseur_reynolds_faces(facei,i,j);
397 div*= inverse_vol(elem);
398 valeurs_source(elem,i) += div;
404 la_source->valeurs( ) = valeurs_source;
416 const Domaine_VDF& domaine_VDF = le_dom_VDF.valeur();
425 DoubleTab lambda_1(nb_elem_tot);
426 DoubleTab lambda_2(nb_elem_tot);
427 DoubleTab lambda_3(nb_elem_tot);
428 DoubleTab lambda_4(nb_elem_tot);
429 DoubleTab lambda_5(nb_elem_tot);
431 const DoubleTab& K_eps = eqn_transport_K_Eps_->inconnue().valeurs();
462 for (
int elem=0; elem<
nelem_; elem++)
465 double k_sur_eps = K_eps(elem,0) / ( K_eps(elem,1) + 1.e-15 );
476 S_etoile(elem,i,j) = 0.5*( gij(elem,i,j,0) + gij(elem,j,i,0) ) * k_sur_eps;
477 R_etoile(elem,i,j) = 0.5*( gij(elem,i,j,0) - gij(elem,j,i,0) ) * k_sur_eps;
492 S2(elem,i,j) += S_etoile(elem,i,k)*S_etoile(elem,k,j) ;
493 R2(elem,i,j) += R_etoile(elem,i,k)*R_etoile(elem,k,j) ;
494 SR(elem,i,j) += S_etoile(elem,i,k)*R_etoile(elem,k,j) ;
495 RS(elem,i,j) += R_etoile(elem,i,k)*S_etoile(elem,k,j) ;
500 lambda_1(elem) += S2(elem,i,j);
501 lambda_2(elem) += R2(elem,i,j);
503 L1Id(elem,i,j) += lambda_1(elem)/3.;
504 L2Id(elem,i,j) += lambda_2(elem)/3.;
521 S3(elem,i,j) += S_etoile(elem,i,k)*S2(elem,k,j) ;
522 R2S(elem,i,j) += R2(elem,i,k)*S_etoile(elem,k,j) ;
523 RS2(elem,i,j) += R_etoile(elem,i,k)*S2(elem,k,j) ;
524 S2R(elem,i,j) += S2(elem,i,k)*R_etoile(elem,k,j) ;
525 SR2(elem,i,j) += S_etoile(elem,i,k)*R2(elem,k,j) ;
530 lambda_3(elem) += S3(elem,i,j);
531 lambda_4(elem) += R2S(elem,i,j);
533 L4Id(elem,i,j) += lambda_4(elem)*2./3.;
550 S2R2(elem,i,j) += S2(elem,i,k)*R2(elem,k,j) ;
551 R2S2(elem,i,j) += R2(elem,i,k)*S2(elem,k,j) ;
552 SRS2(elem,i,j) += SR(elem,i,k)*S2(elem,k,j) ;
553 R2SR(elem,i,j) += R2(elem,i,k)*SR(elem,k,j) ;
554 RSR2(elem,i,j) += RS(elem,i,k)*R2(elem,k,j) ;
555 S2RS(elem,i,j) += S2(elem,i,k)*RS(elem,k,j) ;
560 lambda_5(elem) += R2S2(elem,i,j);
562 L5Id(elem,i,j) += lambda_5(elem)*2./3.;
569 RS2R2(elem,i,j) = 0.;
570 R2S2R(elem,i,j) = 0.;
573 RS2R2(elem,i,j) += RS2(elem,i,k)*R2(elem,k,j) ;
574 R2S2R(elem,i,j) += R2(elem,i,k)*S2R(elem,k,j) ;
int face_voisins(int num_face, int i) const
renvoie l'element voisin de numface dans la direction i.