53 const double temps = mon_equation_->inconnue().temps();
54 DoubleTab& visco_turb = la_viscosite_turbulente_->valeurs();
56 if (est_egal(
cw_, 0., 1.e-15))
62 OP1_.resize(nb_elem_tot);
63 OP2_.resize(nb_elem_tot);
67 if (visco_turb.
size() != nb_elem)
69 Cerr <<
"Size error for the array containing the values of the turbulent viscosity." << finl;
73 for (
int elem = 0; elem < nb_elem; elem++)
82 la_viscosite_turbulente_->changer_temps(temps);
84 return la_viscosite_turbulente_;
90 const DoubleTab& vitesse = mon_equation_->inconnue().valeurs();
99 double gkk2, sd2, Sij, Sij2;
106 for (
int elem = 0; elem < nb_elem; elem++)
115 gij2(i, j) += duidxj(elem, i, k, 0) * duidxj(elem, k, j, 0);
127 sd(i, j) = 0.5 * (gij2(i, j) + gij2(j, i));
129 sd(i, j) -= gkk2 / 3.;
136 int face1 = 0, face2 = 0;
142 sd2 += sd(i, j) * sd(i, j);
144 Sij = 0.5 * (duidxj(elem, i, j, 0) + duidxj(elem, j, i, 0));
159 face1 = elem_faces(elem, i);
162 elem1 = face_voisins(face1, 0);
163 elem2 = face_voisins(face2, 1);
171 if (elem1 >= 0 && elem2 >= 0)
172 Sij = ((duidxj(elem1, i, i, 0) + duidxj(elem, i, i, 0) + duidxj(elem2, i, i, 0))) / 3.;
179 OP1_(elem) = pow(sd2, 1.5);
180 OP2_(elem) = pow(Sij2, 2.5) + pow(sd2, 1.25);
int_t nb_elem_tot() 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.
const Domaine & domaine() const
void ajouter_condition(const char *condition, const char *message, const char *name=0)
Declare a post-read logical condition that must hold on the parameter values.
void ajouter(const char *keyword, const int *value, Param::Nature nat=Param::OPTIONAL)
Register an integer parameter.