73 const Equation_base& eqn_hydr = mon_modele_turb_hyd->equation();
83 const double delta_nu = tab_visco_ph1(0,0) - tab_visco_ph0(0,0);
91 const Domaine& domaine = domaine_VEF.
domaine();
99 visco_ph0 = std::max(tab_visco_ph0(0,0),DMINFLOAT);
106 Cerr <<
"Negative viscosity !!!" << finl;
110 double dist=-1,d_visco=-1;
111 double u_plus_d_plus,u_plus,d_plus,u_star;
118 double coef_vit=nfac;
130 for (
int n_bord=0; n_bord<nb_bords; n_bord++)
132 const Cond_lim& la_cl = le_dom_Cl_dis_->les_conditions_limites(n_bord);
143 const IntTab& elem_faces = domaine_VEF.
elem_faces();
149 for (
int ind_face=ndeb; ind_face<nfin; ind_face++)
151 int num_face=le_bord.
num_face(ind_face);
152 int elem = face_voisins(num_face,0);
155 for (
int i=0; i<nfac; i++)
157 int face=elem_faces(elem,i);
159 vit[j]+=(vitesse(face,j)-vitesse(num_face,j));
162 dist = distance_face_elem(num_face,elem,domaine_VEF);
165 double norm_v = norm_vit_lp(vit,num_face,domaine_VEF,val);
168 d_visco = visco_ph0 + indic(elem) * delta_nu;
170 d_visco = (tab_visco_ph0.
nb_dim()==1 ? (tab_visco_ph0(elem) + indic(elem) * delta_nu) : (tab_visco_ph0(elem,0) + indic(elem) * delta_nu));
172 u_plus_d_plus = norm_v*dist/d_visco;
180 u_star = norm_v/u_plus ;
181 d_plus = u_plus_d_plus/u_plus ;
204 if((!LM) && (!COMB)) tab_nu_t(elem) =
Cmu_*k*k/(eps+DMINFLOAT);
206 uplus_(num_face) = u_plus;
216 tab_nu_t(elem) *= dist_corr;
237 for (
int ind_face=ndeb; ind_face<nfin; ind_face++)
239 int num_face = le_bord.
num_face(ind_face);
240 int elem = face_voisins(num_face,0);
242 double psc=0, norm=0;
247 psc += vitesse(num_face,comp)*normales(num_face,comp);
248 norm += normales(num_face,comp)*normales(num_face,comp);
251 if (std::fabs(norm)>=DMINFLOAT) psc/=norm;
255 val[comp]=vitesse(num_face,comp)-psc*normales(num_face,comp);
256 norm_v += val[comp]*val[comp];
259 norm_v = sqrt(norm_v);
266 d_visco = visco_ph0 + indic(elem) * delta_nu;
268 d_visco = (tab_visco_ph0.
nb_dim()==1 ? (tab_visco_ph0(elem) + indic(elem) * delta_nu) : (tab_visco_ph0(elem,0) + indic(elem) * delta_nu));
270 u_plus_d_plus = norm_v*dist/d_visco;
278 u_star = norm_v/u_plus ;
279 d_plus = u_plus_d_plus/u_plus ;
302 if((!LM) && (!COMB)) tab_nu_t(elem) =
Cmu_*k*k/(eps+DMINFLOAT);
304 uplus_(num_face) = u_plus;
314 tab_nu_t(elem) *= dist_corr;
int nb_faces_elem(int=0) const
Renvoie le nombre de face de type i des elements geometriques constituants le domaine.
classe Domaine_Cl_dis_base Les objets Domaine_Cl_dis_base representent les conditions aux limites
virtual double face_normales(int face, int comp) const
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 face_voisins(int num_face, int i) const
renvoie l'element voisin de numface dans la direction i.