93 const IntVect& orientation = domaine_VDF.
orientation();
95 const IntTab& elem_faces = domaine_VDF.
elem_faces();
96 const Equation_base& eqn_hydr = mon_modele_turb_hyd->equation();
100 const DoubleTab& tab_visco = ch_visco_cin.
valeurs();
109 const int typeswitch = mod_2couches.
get_switch();
110 if ( typeswitch == 0 )
118 visco = std::max(tab_visco(0,0),DMINFLOAT);
128 Cerr <<
"In Paroi_2couches_VDF::calculer_hyd : visco = " << tab_visco.
local_min_vect() <<
" <= 0 ? " << finl;
133 int ndeb,nfin,face_courante,elem_courant;
137 double u_plus_d_plus,d_visco,y_etoile, critere_switch;
138 double val,val1,val2;
142 for (
int n_bord=0; n_bord<domaine_VDF.
nb_front_Cl(); n_bord++)
149 const Cond_lim& la_cl = le_dom_Cl_dis_->les_conditions_limites(n_bord);
158 for (
int num_face=ndeb; num_face<nfin; num_face++)
160 ori = orientation(num_face);
161 if ( (elem =face_voisins(num_face,0)) != -1)
162 norm_v=norm_2D_vit(vit,elem,ori,domaine_VDF,val);
165 elem = face_voisins(num_face,1);
166 norm_v=norm_2D_vit(vit,elem,ori,domaine_VDF,val);
172 d_visco = tab_visco[elem];
173 u_plus_d_plus = norm_v*dist/d_visco;
176 face_courante = num_face;
180 for(
int icouche=0; (icouche<nbcouches) && (elem_courant != -1); icouche++)
183 double kSqRt = sqrt(tab_k_eps(elem_courant,0));
184 y_etoile = kSqRt*dist/d_visco;
186 critere_switch = y_etoile;
188 critere_switch = tab_nu_t(elem_courant)/d_visco;
189 if (critere_switch < valswitch)
191 double vvSqRt,Leps,Lmu;
192 loi2couches.
LepsLmu(tab_k_eps(elem_courant,0),d_visco,dist,y_etoile,Leps,Lmu,vvSqRt);
193 if ( (Leps != 0) && (Lmu!=0.) )
195 tab_k_eps(elem_courant,1) = tab_k_eps(elem_courant,0)*vvSqRt/Leps;
196 tab_nu_t(elem_courant) = vvSqRt*Lmu;
200 tab_k_eps(elem_courant,1) = 0;
201 tab_nu_t(elem_courant) = 0;
204 if ( elem_faces(elem_courant,0) == face_courante)
205 face_courante = elem_faces(elem_courant,2);
206 else if ( elem_faces(elem_courant,1) == face_courante)
207 face_courante = elem_faces(elem_courant,3);
208 else if ( elem_faces(elem_courant,2) == face_courante)
209 face_courante = elem_faces(elem_courant,0);
210 else if ( elem_faces(elem_courant,3) == face_courante)
211 face_courante = elem_faces(elem_courant,1);
214 if ( face_voisins(face_courante,0) != elem_courant)
215 elem_courant = face_voisins(face_courante,0);
217 elem_courant = face_voisins(face_courante,1);
227 if (u_plus_d_plus <= valmin)
229 else if ((u_plus_d_plus > valmin) && (u_plus_d_plus < valmax))
234 else if (u_plus_d_plus >= valmax)
247 for (
int num_face=ndeb; num_face<nfin; num_face++)
249 ori = orientation(num_face);
250 if ( (elem = face_voisins(num_face,0)) != -1)
251 norm_v=norm_3D_vit(vit,elem,ori,domaine_VDF,val1,val2);
254 elem = face_voisins(num_face,1);
255 norm_v=norm_3D_vit(vit,elem,ori,domaine_VDF,val1,val2);
261 d_visco = tab_visco[elem];
262 u_plus_d_plus = norm_v*dist/d_visco;
264 face_courante = num_face;
268 for(
int icouche=0; (icouche<nbcouches) && (elem_courant != -1); icouche++)
271 double kSqRt = sqrt(tab_k_eps(elem_courant,0));
272 y_etoile = kSqRt*dist/d_visco;
274 critere_switch = y_etoile;
276 critere_switch = tab_nu_t(elem_courant)/d_visco;
277 if (critere_switch < valswitch)
279 double vvSqRt,Leps,Lmu;
280 loi2couches.
LepsLmu(tab_k_eps(elem_courant,0),d_visco,dist,y_etoile,Leps,Lmu,vvSqRt);
281 if ( (Leps != 0) && (Lmu!=0.) )
283 tab_k_eps(elem_courant,1) = tab_k_eps(elem_courant,0)*vvSqRt/Leps;
284 tab_nu_t(elem_courant) = vvSqRt*Lmu;
288 tab_k_eps(elem_courant,1) = 0;
289 tab_nu_t(elem_courant) = 0;
295 if ( elem_faces(elem_courant,0) == face_courante)
296 face_courante = elem_faces(elem_courant,3);
297 else if ( elem_faces(elem_courant,1) == face_courante)
298 face_courante = elem_faces(elem_courant,4);
299 else if ( elem_faces(elem_courant,2) == face_courante)
300 face_courante = elem_faces(elem_courant,5);
301 else if ( elem_faces(elem_courant,3) == face_courante)
302 face_courante = elem_faces(elem_courant,0);
303 else if ( elem_faces(elem_courant,4) == face_courante)
304 face_courante = elem_faces(elem_courant,1);
305 else if ( elem_faces(elem_courant,5) == face_courante)
306 face_courante = elem_faces(elem_courant,2);
310 if ( face_voisins(face_courante,0) != elem_courant)
311 elem_courant = face_voisins(face_courante,0);
313 elem_courant = face_voisins(face_courante,1);
324 if (u_plus_d_plus <= valmin)
326 else if ((u_plus_d_plus > valmin) && (u_plus_d_plus < valmax))
331 else if (u_plus_d_plus >= valmax)
365 for (
int face=ndeb; face<nfin; face++)
367 vitesse_imposee_face_bord(face-ndeb,k) = cl_diri.
val_imp(face-ndeb,k);
376 for (
int num_face=ndeb; num_face<nfin; num_face++)
378 ori = orientation(num_face);
379 int rang = num_face-ndeb;
380 if ( (elem = face_voisins(num_face,0)) != -1)
381 norm_v=norm_2D_vit(vit,elem,ori,domaine_VDF,vitesse_imposee_face_bord(rang,0),
382 vitesse_imposee_face_bord(rang,1),val);
385 elem = face_voisins(num_face,1);
386 norm_v=norm_2D_vit(vit,elem,ori,domaine_VDF,vitesse_imposee_face_bord(rang,0),
387 vitesse_imposee_face_bord(rang,1),val);
394 d_visco = tab_visco[elem];
396 u_plus_d_plus = norm_v*dist/d_visco;
398 face_courante = num_face;
402 for(
int icouche=0; (icouche<nbcouches) && (elem_courant != -1); icouche++)
405 double kSqRt = sqrt(tab_k_eps(elem_courant,0));
406 y_etoile = kSqRt*dist/d_visco;
408 critere_switch = y_etoile;
410 critere_switch = tab_nu_t(elem_courant)/d_visco;
411 if (critere_switch < valswitch)
413 double vvSqRt,Leps,Lmu;
414 loi2couches.
LepsLmu(tab_k_eps(elem_courant,0),d_visco,dist,y_etoile,Leps,Lmu,vvSqRt);
415 if ( (Leps != 0) && (Lmu!=0.) )
417 tab_k_eps(elem_courant,1) = tab_k_eps(elem_courant,0)*vvSqRt/Leps;
418 tab_nu_t(elem_courant) = vvSqRt*Lmu;
422 tab_k_eps(elem_courant,1) = 0;
423 tab_nu_t(elem_courant) = 0;
428 if ( elem_faces(elem_courant,0) == face_courante)
429 face_courante = elem_faces(elem_courant,2);
430 else if ( elem_faces(elem_courant,1) == face_courante)
431 face_courante = elem_faces(elem_courant,3);
432 else if ( elem_faces(elem_courant,2) == face_courante)
433 face_courante = elem_faces(elem_courant,0);
434 else if ( elem_faces(elem_courant,3) == face_courante)
435 face_courante = elem_faces(elem_courant,1);
438 if ( face_voisins(face_courante,0) != elem_courant)
439 elem_courant = face_voisins(face_courante,0);
441 elem_courant = face_voisins(face_courante,1);
452 if (u_plus_d_plus <= valmin)
454 else if ((u_plus_d_plus > valmin) && (u_plus_d_plus < valmax))
459 else if (u_plus_d_plus >= valmax)
474 for (
int num_face=ndeb; num_face<nfin; num_face++)
476 ori = orientation(num_face);
477 int rang = num_face-ndeb;
478 if ( (elem = face_voisins(num_face,0)) != -1)
479 norm_v=norm_3D_vit(vit,elem,ori,domaine_VDF,vitesse_imposee_face_bord(rang,0),
480 vitesse_imposee_face_bord(rang,1),
481 vitesse_imposee_face_bord(rang,2),val1,val2);
484 elem = face_voisins(num_face,1);
485 norm_v=norm_3D_vit(vit,elem,ori,domaine_VDF,vitesse_imposee_face_bord(rang,0),
486 vitesse_imposee_face_bord(rang,1),
487 vitesse_imposee_face_bord(rang,2),val1,val2);
493 d_visco = tab_visco[elem];
495 u_plus_d_plus = norm_v*dist/d_visco;
497 face_courante = num_face;
501 for(
int icouche=0; (icouche<nbcouches) && (elem_courant != -1); icouche++)
504 double kSqRt = sqrt(tab_k_eps(elem_courant,0));
505 y_etoile = kSqRt*dist/d_visco;
507 critere_switch = y_etoile;
509 critere_switch = tab_nu_t(elem_courant)/d_visco;
510 if (critere_switch < valswitch)
512 double vvSqRt,Leps,Lmu;
513 loi2couches.
LepsLmu(tab_k_eps(elem_courant,0),d_visco,dist,y_etoile,Leps,Lmu,vvSqRt);
514 if ( (Leps != 0) && (Lmu!=0.) )
516 tab_k_eps(elem_courant,1) = tab_k_eps(elem_courant,0)*vvSqRt/Leps;
517 tab_nu_t(elem_courant) = vvSqRt*Lmu;
521 tab_k_eps(elem_courant,1) = 0;
522 tab_nu_t(elem_courant) = 0;
527 if ( elem_faces(elem_courant,0) == face_courante)
528 face_courante = elem_faces(elem_courant,3);
529 else if ( elem_faces(elem_courant,1) == face_courante)
530 face_courante = elem_faces(elem_courant,4);
531 else if ( elem_faces(elem_courant,2) == face_courante)
532 face_courante = elem_faces(elem_courant,5);
533 else if ( elem_faces(elem_courant,3) == face_courante)
534 face_courante = elem_faces(elem_courant,0);
535 else if ( elem_faces(elem_courant,4) == face_courante)
536 face_courante = elem_faces(elem_courant,1);
537 else if ( elem_faces(elem_courant,5) == face_courante)
538 face_courante = elem_faces(elem_courant,2);
542 if ( face_voisins(face_courante,0) != elem_courant)
543 elem_courant = face_voisins(face_courante,0);
545 elem_courant = face_voisins(face_courante,1);
556 if (u_plus_d_plus <= valmin)
558 else if ((u_plus_d_plus > valmin) && (u_plus_d_plus < valmax))
563 else if (u_plus_d_plus >= valmax)