27static int faces_sommets_triangle[3][2] =
34template <
typename _SIZE_>
40template <
typename _SIZE_>
51template <
typename _SIZE_>
54 static Nom nom=
"PRISM6";
69template <
typename _SIZE_>
73 const Domaine_t& dom=this->mon_dom.valeur();
106 p0 = (pos[0]-dom.
coord(som0,0))*(pos[1]-dom.
coord(som1,1))
107 - (pos[1]-dom.
coord(som0,1))*(pos[0]-dom.
coord(som1,0));
110 p1 = (pos[0]-dom.
coord(som1,0))*(pos[1]-dom.
coord(som2,1))
111 - (pos[1]-dom.
coord(som1,1))*(pos[0]-dom.
coord(som2,0));
114 p2 = (pos[0]-dom.
coord(som2,0))*(pos[1]-dom.
coord(som0,1))
115 - (pos[1]-dom.
coord(som2,1))*(pos[0]-dom.
coord(som0,0));
118 if ((p0>-epsilon) && (p1>-epsilon) && (p2>-epsilon))
133template <
typename _SIZE_>
136 const Domaine_t& domaine=this->mon_dom.valeur();
137 if((domaine.sommet_elem(element,0)==som[0])&&
138 (domaine.sommet_elem(element,1)==som[1])&&
139 (domaine.sommet_elem(element,2)==som[2]))
149template <
typename _SIZE_>
152 const Domaine_t& domaine=this->mon_dom.valeur();
153 const DoubleTab_t& coord = domaine.coord_sommets();
155 int_t size_tot = domaine.nb_elem_tot();
157 for (
int_t num_poly=0; num_poly<size_tot; num_poly++)
159 for (
int i=0; i<3; i++)
161 int_t Si = domaine.sommet_elem(num_poly,i);
163 pos(i,j) = coord(Si,j);
165 volumes[num_poly] = aire_triangle(pos);
174template <
typename _SIZE_>
177 const Domaine_t& domaine_geom = this->mon_dom.valeur();
182 for (
int_t numface=0; numface<nbfaces; numface++)
184 n0 = Face_sommets(numface,0);
185 n1 = Face_sommets(numface,1);
186 x1 = les_coords(n0,0)-les_coords(n1,0);
187 y1 = les_coords(n0,1)-les_coords(n1,1);
188 face_normales(numface,0) = -y1;
189 face_normales(numface,1) = x1;
196template <
typename _SIZE_>
199 faces_som_local.
resize(3,2);
200 for (
int i=0; i<3; i++)
201 for (
int j=0; j<2; j++)
202 faces_som_local(i,j) = faces_sommets_triangle[i][j];
int_t nb_elem_tot() const
const DoubleTab_t & coord_sommets() const
int_t nb_som_tot() const
Renvoie le nombre total de sommets du domaine i.e. le nombre de sommets reels et virtuels sur le proc...
double coord(int_t i, int j) const
int_t sommet_elem(int_t i, int j) const
Renvoie le numero (global) du j-ieme sommet du i-ieme element.
Classe Elem_geom_base Cette classe est la classe de base pour la definition d'elements.
Class defining operators and methods for all reading operation in an input flow (file,...
class Nom Une chaine de caractere pour nommer les objets de TRUST
virtual Entree & readOn(Entree &)
Lecture d'un Objet_U sur un flot d'entree Methode a surcharger.
static double precision_geom
virtual Sortie & printOn(Sortie &) const
Ecriture de l'objet sur un flot de sortie Methode a surcharger.
Classe de base des flux de sortie.
_SIZE_ size_array() const
void resize(_SIZE_ n, RESIZE_OPTIONS opt=RESIZE_OPTIONS::COPY_INIT)
_SIZE_ dimension(int d) const
_SIZE_ size_totale() const
Classe Triangle Cette classe represente l'element geometrique Triangle.
Domaine_32_64< _SIZE_ > Domaine_t
SmallArrOfTID_T< _SIZE_ > SmallArrOfTID_t
IntTab_T< _SIZE_ > IntTab_t
int get_tab_faces_sommets_locaux(IntTab &faces_som_local) const override
voir ElemGeomBase::get_tab_faces_sommets_locaux
DoubleVect_T< _SIZE_ > DoubleVect_t
DoubleTab_T< _SIZE_ > DoubleTab_t
void calculer_normales(const IntTab_t &faces_sommets, DoubleTab_t &face_normales) const override
Calcule les normales aux faces des elements du domaine associe.
void calculer_volumes(DoubleVect_t &vols) const override
Calcule les volumes des elements du domaine associe.
int contient(const ArrOfDouble &pos, int_t elem) const override
Renvoie 1 si l'element ielem du domaine associe a l'element geometrique contient le point.
const Nom & nom_lml() const override
Renvoie le nom LML d'un triangle = "PRISM6".