33 static const double Csm1 =
CSM1;
36 double temps = mon_equation_->inconnue().temps();
37 DoubleTab& visco_turb = la_viscosite_turbulente_->valeurs();
38 const int nb_face = domaine_VEF.
nb_faces();
40 const int nb_elem = domaine_VEF.
nb_elem();
42 int elem1, elem2, fac = 0, i;
45 F2_.resize(nb_face_tot);
46 r_.resize(nb_face_tot);
50 if (visco_turb.
size() != nb_elem)
52 Cerr <<
"erreur dans la taille du DoubleTab valeurs de la viscosite" << finl;
61 for (i = 0; i < les_cl.size(); i++)
66 int nfin = ndeb + la_front_dis.
nb_faces();
69 for (fac = ndeb; fac < nfin; fac++)
71 elem1 = face_voisins(fac, 0);
72 elem2 = face_voisins(fac, 1);
73 temp = Csm1 *
r_(fac) * sqrt(
F2_(fac));
74 visco_turb(elem1) += 0.5 * temp;
75 visco_turb(elem2) += 0.5 * temp;
78 for (fac = ndeb; fac < nfin; fac++)
80 elem1 = face_voisins(fac, 0);
81 temp = Csm1 *
r_(fac) * sqrt(
F2_(fac));
82 visco_turb(elem1) += temp;
87 for (; fac < nb_face; fac++)
89 elem1 = face_voisins(fac, 0);
90 elem2 = face_voisins(fac, 1);
91 temp = Csm1 *
r_(fac) * sqrt(
F2_(fac));
92 visco_turb(elem1) += temp;
93 visco_turb(elem2) += temp;
96 visco_turb /= (domaine_VEF.
domaine().nb_faces_elem());
98 la_viscosite_turbulente_->changer_temps(temps);
99 return la_viscosite_turbulente_;
104 const DoubleTab& la_vitesse = mon_equation_->inconnue().valeurs();
108 const int nb_face = domaine_VEF.
nb_faces();
109 const IntTab& elem_faces = domaine_VEF.
elem_faces();
110 const IntTab& face_voisins = domaine_VEF.
face_voisins();
111 const DoubleTab& xv = domaine_VEF.
xv();
116 int fac = 0, i, j, z;
124 for (
int num_cl = 0; num_cl < les_cl.size(); num_cl++)
126 const Cond_lim& la_cl = les_cl[num_cl];
129 int nfin = ndeb + la_front_dis.
nb_faces();
131 int face_appartient_elem = 0;
137 for (fac = ndeb; fac < nfin; fac++)
141 double petit = 1.e30;
143 for (j = 0; j < 2; j++)
145 num(j) = face_voisins(fac, j);
147 face_appartient_elem = 0;
151 faces_elem_loc[i] = elem_faces(num(j), i);
152 if (faces_elem_loc[i] == fac)
153 face_appartient_elem = 1;
156 if (face_appartient_elem == 1)
164 m += carre(xv(faces_elem_loc[i], z) - xv(fac, z));
166 double temp = dd2(i, j) = sqrt(m);
168 petit = std::min(petit, temp);
181 m += carre(std::fabs(xv(faces_elem_loc[i], z) - xv(fac, z)) - la_cl_perio.
distance());
184 m += carre(xv(faces_elem_loc[i], z) - xv(fac, z));
186 double temp = dd2(i, j) = sqrt(m);
188 petit = std::min(petit, temp);
195 Cerr <<
"pb avec r(fac) negatif dans Modele_turbulence_hyd_LES_VEF" << finl;
206 for (i = 0; i < 2; i++)
208 num(i) = face_voisins(fac, i);
211 if (dd2(z, i) > 1e-24)
215 dv(j) = (la_vitesse(elem_faces(num(i), z), j) - la_vitesse(fac, j)) *
r_(fac) / dd2(z, i);
234 for (fac = ndeb; fac < nfin; fac++)
239 num1 = face_voisins(fac, 0);
245 m += carre(xv(elem_faces(num1, i), z) - xv(fac, z));
247 double temp = d2(i) = sqrt(m);
249 petit = std::min(petit, temp);
254 Cerr <<
"pb avec r(fac) negatif dans Modele_turbulence_hyd_LES_VEF" << finl;
267 dv(j) = (la_vitesse(elem_faces(num1, z), j) - la_vitesse(fac, j)) *
r_(fac) / d2(z);
289 for (; fac < nb_face; fac++)
296 double petit = 1.e30;
298 for (j = 0; j < 2; j++)
300 num(j) = face_voisins(fac, j);
306 m += carre(xv(elem_faces(num(j), i), z) - xv(fac, z));
308 double temp = dd2(i, j) = sqrt(m);
310 petit = std::min(petit, temp);
317 Cerr <<
"pb avec r(fac) negatif dans Modele_turbulence_hyd_LES_VEF" << finl;
328 for (i = 0; i < 2; i++)
330 num(i) = face_voisins(fac, i);
333 if (dd2(z, i) > 1e-24)
337 dv(j) = (la_vitesse(elem_faces(num(i), z), j) - la_vitesse(fac, j)) *
r_(fac) / dd2(z, i);
const Cond_lim & les_conditions_limites(int) const
Renvoie la i-ieme condition aux limites.
int nb_faces() const
renvoie le nombre global de faces.
int nb_faces_tot() const
renvoie le nombre total de faces.
double xv(int num_face, int k) 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