95 const DoubleTab& u_tau = corr_loi_paroi.
get_tab(
"u_tau");
96 const DoubleTab& nu_visc = ref_cast(
Fluide_base,
domaine_Cl_dis().equation().probleme().milieu()).viscosite_cinematique().valeurs();
97 const DoubleTab& mu_visc = ref_cast(
Fluide_base,
domaine_Cl_dis().equation().probleme().milieu()).viscosite_dynamique().valeurs();
102 const int cnu = nu_visc.
dimension(0) == 1;
103 const int cmu = mu_visc.
dimension(0) == 1;
108 const DoubleTab *mu_vdf = domaine.que_suis_je().debute_par(
"Domaine_VDF") ? &ref_cast(
Op_Dift_Multiphase_VDF_Face,
domaine_Cl_dis().equation().operateur(0).l_op_base()).get_diffusivite_turbulente() :
nullptr;
109 assert((mu_poly) || (mu_vdf));
111 const int nf = la_frontiere_dis->frontiere().nb_faces();
112 const int nf_tot = domaine.nb_faces_tot();
113 const int f1 = la_frontiere_dis->frontiere().num_premiere_face();
117 const DoubleTab& n_f = domaine.face_normales();
118 const DoubleVect& fs = domaine.face_surfaces();
119 const IntTab& f_e = domaine.face_voisins();
125 domaine.domaine().creer_tableau_elements(pvit_elem);
130 for (
int f = 0; f < nf; f++)
132 const int f_domaine = f + f1;
133 const int e = f_e(f_domaine,0) >= 0 ? f_e(f_domaine, 0) : f_e(f_domaine, 1);
136 DoubleTrav u_parallel(D);
139 for (
int d = 0; d <D ; d++)
140 u_orth -= pvit_elem(e, N*d + n)*n_f(f_domaine,d)/fs(f_domaine);
141 for (
int d = 0 ; d < D ; d++)
142 u_parallel(d) = pvit_elem(e, N*d+n) - u_orth*(-n_f(f_domaine,d))/fs(f_domaine) ;
146 for (
int d = 0; d < D ; d++)
147 u_orth -= vit(nf_tot + e * D+d, n)*n_f(f_domaine,d)/fs(f_domaine);
148 for (
int d = 0 ; d < D ; d++)
149 u_parallel(d) = vit(nf_tot + e * D + d, n) - u_orth*(-n_f(f_domaine, d))/fs(f_domaine) ;
151 const double norm_u_parallel = std::sqrt(domaine.dot(&u_parallel(0), &u_parallel(0)));
153 const double y_loc = f_e(f_domaine,0) >=0 ? domaine.dist_face_elem0(f_domaine, e) : domaine.dist_face_elem1(f_domaine, e);
154 const double y_plus_loc = y_loc * u_tau(f_domaine, n)/ nu_visc(!cnu * e, n) ;
156 const double mu_tot_loc = (mu_poly) ? ((alp ? 1.0 : rho(!cr * e, n)) * (*mu_poly)(e, n)) : (mu_vdf) ? (*mu_vdf)(e, n) + mu_visc(!cmu * e, n) : -1;
158 const double rho_loc = rho(!cr * e, n);
161 const double u_tau_loc = u_tau(f_domaine, n);
164 valeurs_coeff_(f, n) = (alp ? (*alp)(e, n) * rho_loc : 1) * u_tau_loc*u_tau_loc/norm_u_parallel;
165 valeurs_coeff_grad_(f, n) = fac_coeff_grad_*(alp ? (*alp)(e, n) : 1) * std::min(1./y_loc, 1/mu_tot_loc * rho_loc * u_tau_loc*u_tau_loc/norm_u_parallel);
170 valeurs_coeff_(f, n) = (alp ? (*alp)(e, n) * rho_loc : 1) * nu_visc(!cnu * e, n)/y_loc;
177 for (n = 1; n < N; n++)
178 for (
int f = 0; f < nf; f++)