45 const DoubleTab& k = pb_->get_champ(
"k").passe(), &tau = pb_->get_champ(
"tau").passe(),
46 &nu = pb_->get_champ(
"viscosite_cinematique").passe();
47 const int cnu = nu.dimension(0) == 1;
51 for (
int i = 0; i < nu_t.
dimension(0); i++)
52 for (
int n = 0; n < nu_t.
dimension(1); n++)
53 nu_t(i, n) = (n < k.
dimension(1)) ? sigma_ * std::max(k(i, n) * tau(i, n), limiter_ * nu(!cnu * i, n)) : 0;
58 const DoubleTab& k = pb_->get_champ(
"k").passe(), &tau = pb_->get_champ(
"tau").passe(),
59 &nu = pb_->get_champ(
"viscosite_cinematique").passe(), &grad_u = pb_->get_champ(
"gradient_vitesse").passe();
60 ConstDoubleTab_parts p_gu(grad_u);
62 for (i = 0; i < p_gu.
size(); i++)
63 if (p_gu[i].get_md_vector() == R_ij.get_md_vector()) i_part = i;
64 if (i_part < 0)
Process::exit(
"Viscosite_turbulente_k_tau : inconsistency between velocity gradient and k!");
65 const DoubleTab& gu = p_gu[i_part];
66 for (i = 0; i < R_ij.dimension(0); i++)
67 for (n = 0; n < N; n++)
70 double nut_loc = n < Nk ? std::max(k(i, n) * tau(i, n), limiter_ * nu(i, n)) : 0 ;
71 for (d = 0; d < D; d++) sum_diag += gu(i, d, D * n + d) ;
72 for (d = 0; d < D; d++)
73 for (db = 0; db < D; db++)
74 R_ij(i, n, d, db) = n < Nk ? sigma_ * (2. / 3. * (k(i, n) + nut_loc * sum_diag) * (d ==db) - nut_loc * (gu(i, d, D * n + db) + gu(i, db, D * n + d))) : 0;
90 const DoubleTab& tau = pb_->get_champ(
"tau").passe(),
91 &k = pb_->get_champ(
"k").passe(),
92 &nu = pb_->get_champ(
"viscosite_cinematique").passe();
94 assert(nl == tau.
dimension(0) && Nt <= N);
96 for (i = 0; i < nl; i++)
97 for (n = 0; n < N; n++) eps_(i, n) = beta_k_ * ( ((n < Nt) && (k(i, n)>1.e-8) ) ? k(i, n)*k(i, n)/ std::max(k(i, n) * tau(i, n), limiter_ * nu(i, n)) : 0 );