60 const DoubleTab& la_vitesse = mon_equation_->inconnue().valeurs();
62 const int nb_elem = domaine_VEF.
nb_elem();
63 const IntTab& elem_faces = domaine_VEF.
elem_faces();
64 const DoubleTab& xv = domaine_VEF.
xv();
65 const DoubleTab& xp = domaine_VEF.
xp();
66 const Domaine& domaine = domaine_VEF.
domaine();
69 int num_elem, num_face, i;
70 double vit_x_elem, vit_y_elem, vit_z_elem;
71 double dist, F2_int1, F2_int2, delta_c_val, dist1;
72 static double un_tiers = 1. / 3.;
75 for (num_elem = 0; num_elem < nb_elem; num_elem++)
77 delta_c_val =
l_[num_elem];
84 for (i = 0; i < nfac; i++)
86 num_face = elem_faces(num_elem, i);
87 vit_x_elem += la_vitesse(num_face, 0);
88 vit_y_elem += la_vitesse(num_face, 1);
89 vit_z_elem += la_vitesse(num_face, 2);
90 dist1 = (xp(num_elem, 0) - xv(num_face, 0)) * (xp(num_elem, 0) - xv(num_face, 0));
91 dist1 += (xp(num_elem, 1) - xv(num_face, 1)) * (xp(num_elem, 1) - xv(num_face, 1));
92 dist1 += (xp(num_elem, 2) - xv(num_face, 2)) * (xp(num_elem, 2) - xv(num_face, 2));
93 delta_c_calc = std::min(delta_c_calc, dist1);
95 vit_x_elem /= (nfac * 1.);
96 vit_y_elem /= (nfac * 1.);
97 vit_z_elem /= (nfac * 1.);
101 for (i = 0; i < nfac; i++)
103 num_face = elem_faces(num_elem, i);
105 dist = (xp(num_elem, 0) - xv(num_face, 0)) * (xp(num_elem, 0) - xv(num_face, 0));
106 dist += (xp(num_elem, 1) - xv(num_face, 1)) * (xp(num_elem, 1) - xv(num_face, 1));
107 dist += (xp(num_elem, 2) - xv(num_face, 2)) * (xp(num_elem, 2) - xv(num_face, 2));
110 dist *= (delta_c_val * delta_c_val);
111 dist = exp(un_tiers * log(dist));
113 F2_int1 = (vit_x_elem - la_vitesse(num_face, 0)) * (vit_x_elem - la_vitesse(num_face, 0));
114 F2_int1 += (vit_y_elem - la_vitesse(num_face, 1)) * (vit_y_elem - la_vitesse(num_face, 1));
115 F2_int1 += (vit_z_elem - la_vitesse(num_face, 2)) * (vit_z_elem - la_vitesse(num_face, 2));
116 F2_int2 += F2_int1 * dist;
118 F2_(num_elem) = F2_int2 / nfac;
int nb_faces_elem(int=0) const
Renvoie le nombre de face de type i des elements geometriques constituants le domaine.
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
double xp(int num_elem, int k) const
const Domaine & domaine() const