46 const DoubleVect& ve = domaine.volumes();
48 const std::string Type_diss = find_dissipation_type(pb);
51 const int nb_elem = domaine.nb_elem();
56 const double limiter_ = visc_turb.
limiteur();
72 DoubleTrav nut(0, Nph);
76 for (
int e = 0; e < nb_elem; e++)
77 for (n = 0; n < N; n++)
79 double secmem_en = 0.;
80 for (
int d_U = 0; d_U < D; d_U++)
81 for (
int d_X = 0; d_X < D; d_X++)
82 secmem_en += (tab_grad(e, N * (D*d_U + d_X) + n)
83 + tab_grad(e, N * (D*d_X + d_U) + n)) * tab_grad(e, N * (D*d_U + d_X) + n);
84 secmem_en *= pe(e) * ve(e) * palp(e, n) * tab_rho(e, n) * nut(e, n);
86 secmem(e, n) += std::max(secmem_en, 0.);
91 for(
int e = 0 ; e < nb_elem ; e++)
92 for(n = 0; n < N; n++)
94 double grad_grad = 0.;
95 for (
int d_U = 0; d_U < D; d_U++)
96 for (
int d_X = 0; d_X < D; d_X++)
97 grad_grad += (tab_grad( e, N * (D*d_U + d_X) + n)
98 + tab_grad( e, N * (D*d_X + d_U) + n))
99 * tab_grad( e, N * ( D*d_U+d_X ) + n) ;
101 const double fac = std::max(grad_grad, 0.) * pe(e) * ve(e) ;
103 if (Type_diss ==
"tau")
104 nut_l = k(e, n) * (*diss)(e, n) + limiter_ * nu(e, n);
105 else if (Type_diss ==
"omega")
106 nut_l = ((*pdiss)(e,n) > 0.) ? std::max(k(e, n) / (*pdiss)(e, n)*(2 - (*diss)(e, n)/(*pdiss)(e, n)), limiter_ * nu(e, n)) : limiter_ * nu(e, n);
108 secmem(e, n) += fac * nut_l * alp(e,n);
109 for (
auto &&i_m : matrices)
112 if (i_m.first ==
"alpha")
113 mat(N * e + n, Na * e + n) -= fac * nut_l ;
116 if (Type_diss ==
"tau")
117 for (
auto &&i_m : matrices)
120 if (i_m.first ==
"k")
121 mat(N * e + n, N * e + n) -= fac * alp(e, n) *(*diss)(e, n);
122 if (i_m.first ==
"tau")
123 mat(N * e + n, N * e + n) -= fac * alp(e, n) * k(e,n);
125 if ((Type_diss ==
"omega")
126 && ((*pdiss)(e, n) > 0.)
127 && ((k(e, n)/(*pdiss)(e, n)*(2 - (*diss)(e, n)/(*pdiss)(e, n)) > (limiter_*nu(e, n))) ) )
128 for (
auto &&i_m : matrices)
131 if (i_m.first ==
"k")
132 mat(N * e + n, N * e + n) -= fac * alp(e,n) * 1./(*pdiss)(e, n)*(2 - (*diss)(e, n)/(*pdiss)(e, n));
133 if (i_m.first ==
"omega")
134 mat(N * e + n, N * e + n) -= fac * alp(e,n) * -k(e,n)/((*pdiss)(e, n)*(*pdiss)(e, n));