46 const DoubleTab& tab_alpha = pb_->get_champ(
"alpha").passe();
51 Process::exit(
"Visocisty_turbulente_WIF is only coded for 2 phases");
53 Process::exit(
"Visocisty_turbulente_WIF is only coded for 3 dimensions");
55 const DoubleTab& tab_u = pb_->get_champ(
"vitesse").passe();
56 ConstDoubleTab_parts p_u(tab_u);
58 for (
int i = 0; i < p_u.
size(); i++)
59 if (p_u[i].get_md_vector() == R_ij.get_md_vector())
62 Process::exit(
"Viscosite_turbulente_WIF : inconsistency between velocity and Rij!");
64 const DoubleTab& u = p_u[i_part];
67 for (
int i = 0; i < R_ij.dimension(0); i++)
68 for (
int d = 0; d < D; d++)
70 u_r(i, d) = u(i, d, 1) - u(i, d, 0);
71 u_r_carre(i, 0) += u_r(i, d)*u_r(i, d);
74 for (
int i = 0; i < R_ij.dimension(0); i++)
75 for (
int d = 0; d < D; d++)
76 for (
int db = 0; db < D; db++)
78 R_ij(i, 1, d, db) = 0 ;
79 R_ij(i, 0, d, db) = tab_alpha(i, 1) * (3.0/20.0 * u_r_carre(i, 0) * (db==d ? 1 : 0) + (1.0/20.0 + 1.5*gamma_*gamma_*gamma_*0.25) * u_r(i, d)*u_r(i, db));