18#include <Domaine_EF.h>
19#include <Champ_P1_EF.h>
20#include <Equation_base.h>
21#include <Milieu_base.h>
46 const IntTab& Face_sommets,
47 const IntTab& Face_voisins,
48 const IntTab& elem_faces,
49 const Domaine& domaine_geom)
const
57 int n0 = Face_sommets(num_Face,0);
58 int n1 = Face_sommets(num_Face,1);
59 x1 = les_coords(n0,0)-les_coords(n1,0);
60 y1 = les_coords(n0,1)-les_coords(n1,1);
66 int elem1 = Face_voisins(num_Face,0);
67 if ( (f0 = elem_faces(elem1,0)) == num_Face )
68 f0 = elem_faces(elem1,1);
69 if ( (no3 = Face_sommets(f0,0)) != n0 && no3 != n1 )
72 no3 = Face_sommets(f0,1);
74 x1 = les_coords(no3,0) - les_coords(n0,0);
75 y1 = les_coords(no3,1) - les_coords(n0,1);
77 if ( (nx*x1+ny*y1) > 0 )
79 Face_normales(num_Face,0) = - nx;
80 Face_normales(num_Face,1) = - ny;
84 Face_normales(num_Face,0) = nx;
85 Face_normales(num_Face,1) = ny;
93 const ArrOfDouble& vs,
const DoubleTab& vsom,
109 vc[0]= vitesse.
valeurs()(Face[2],0)*porosite_face[Face[2]];
110 vc[1]= vitesse.
valeurs()(Face[2],1)*porosite_face[Face[2]];
118 vc[0]= vitesse.
valeurs()(Face[1],0)*porosite_face[Face[1]];
119 vc[1]= vitesse.
valeurs()(Face[1],1)*porosite_face[Face[1]];
127 vc[0]= vitesse.
valeurs()(Face[0],0)*porosite_face[Face[0]];
128 vc[1]= vitesse.
valeurs()(Face[0],1)*porosite_face[Face[0]];
165 const int type_elem_Cl,
int& idirichlet,
int& n1,
int& ,
int& )
const
174 for (j=0; j<dim; j++)
175 xg[j]=(x(0,j)+x(1,j)+x(2,j))/3;
185 for (j=0; j<dim; j++)
186 xg[j]=(x(0,j)+x(1,j))/2;
196 for (j=0; j<dim; j++)
197 xg[j]=(x(0,j)+x(2,j))/2;
207 for (j=0; j<dim; j++)
208 xg[j]=(x(1,j)+x(2,j))/2;
218 for (j=0; j<dim; j++)
231 for (j=0; j<dim; j++)
244 for (j=0; j<dim; j++)
DoubleTab & valeurs() override
Renvoie le tableau des valeurs du champ au temps courant.
const DoubleTab_t & coord_sommets() const
Class defining operators and methods for all reading operation in an input flow (file,...
virtual const Milieu_base & milieu() const =0
DoubleVect & porosite_face()
const Equation_base & equation() const
Renvoie la reference sur l'equation pointe par MorEqn::mon_equation.
const Nom & que_suis_je() const
renvoie la chaine identifiant la classe.
virtual Entree & readOn(Entree &)
Lecture d'un Objet_U sur un flot d'entree Methode a surcharger.
virtual Sortie & printOn(Sortie &) const
Ecriture de l'objet sur un flot de sortie Methode a surcharger.
Classe de base des flux de sortie.
void calcul_xg(DoubleVect &, const DoubleTab &, const int, int &, int &, int &, int &) const override
calcule les coord xg du centre d'un element non standard calcule aussi idirichlet=nb de faces de Diri...
void normale(int, DoubleTab &, const IntTab &, const IntTab &, const IntTab &, const Domaine &) const override
remplit le tableau face_normales dans le Domaine_EF
void calcul_vc(const ArrOfInt &, ArrOfDouble &, const ArrOfDouble &, const DoubleTab &, const Champ_Inc_base &, int) const override