16#include <Elem_geom_base.h>
50template <
typename _SIZE_>
63template <
typename _SIZE_>
72 const IntTab_t& les_Polys = mon_dom->les_elems();
78 for(face=0; face<
nb_faces(type_id); face++)
92template <
typename _SIZE_>
98 nb_elem = mon_dom->nb_elem_tot();
104 int nb_som_elem =
nb_som();
107 ConstView<_SIZE_,2> les_Polys = mon_dom->les_elems().view_ro();
109 CDoubleTabView coord = mon_dom->coord_sommets().view_ro();
110 DoubleTabView xp = tab_xp.
view_wo();
111 Kokkos::parallel_for(start_gpu_timer(__KERNEL_NAME__), nb_elem, KOKKOS_LAMBDA(
const int_t num_elem)
113 for (
int i = 0; i < dim; i++)
115 int nb_som_reel = nb_som_elem;
116 while (les_Polys(num_elem, nb_som_reel - 1) == -1) nb_som_reel--;
117 for (
int s = 0; s < nb_som_reel; s++)
119 int_t num_som = les_Polys(num_elem, s);
120 for (
int i = 0; i < dim; i++)
121 xp(num_elem, i) += coord(num_som, i) / nb_som_reel;
124 end_gpu_timer(__KERNEL_NAME__);
133template <
typename _SIZE_>
136 Cerr <<
"calculer_normales method is not coded for an element " << finl;
137 Cerr <<
"of type que_suis_je() " << finl;
148template <
typename _SIZE_>
163template <
typename _SIZE_>
166 Cerr <<
"Elem_geom_base::faces_sommets_locaux : error.\n"
167 <<
" Method not implemented for the object "
180template <
typename _SIZE_>
183 Cerr <<
"Elem_geom_base::aretes_sommets_locaux : error.\n"
184 <<
" Method not implemented for the object "
Classe Elem_geom_base Cette classe est la classe de base pour la definition d'elements.
virtual int face_sommet(int i, int j) const =0
Renvoie le numero du j-ieme sommet de la i-ieme face de l'element.
virtual void calculer_normales(const IntTab_t &faces_sommets, DoubleTab_t &face_normales) const
Sort en erreur.
Faces_32_64< _SIZE_ > Faces_t
virtual int num_face(int face, Type_Face &type) const
Renvoie le parametre face si le type de face specifie est le meme que celui de l'element geometrique.
virtual void calculer_centres_gravite(DoubleTab_t &) const
Compute all centers of mass of all elements in the domain.
DoubleTab_T< _SIZE_ > DoubleTab_t
virtual Type_Face type_face(int face_typ=0) const =0
Type of the face of the element - face_typ < nb_type_face().
virtual void creer_faces_elem(Faces_t &, int_t, Type_Face) const
Cree les faces de l'element geometrique specifie du domaine en precisant le type de face a creer.
virtual int nb_type_face() const
Nb of face types of the elemnt (for example 2 for a prism).
virtual int nb_som_face(int=0) const =0
Nb of vertices for one face of the element.
virtual int nb_faces(int=0) const =0
Nb of faces for the element.
virtual int nb_som() const =0
Nb of vertices for the element.
IntTab_T< _SIZE_ > IntTab_t
virtual void get_tab_aretes_sommets_locaux(IntTab &aretes_som_local) const
idem que Elem_geom_base::get_tab_faces_sommets_locaux mais pour les aretes: aretes_som_local.
virtual int get_tab_faces_sommets_locaux(IntTab &faces_som_local) const
remplit le tableau faces_som_local(i,j) qui donne pour 0 <= i < nb_faces() et 0 <= j < nb_som_face(i)...
Class defining operators and methods for all reading operation in an input flow (file,...
void associer_domaine(const Domaine_t &z)
void completer(int_t face, int_t num_elem)
Complete la face specifie: met a jour ses voisins.
int_t dimensionner(int_t)
(Re-)dimensionne les faces On redimensionne les voisins en consequence.
int_t sommet(int_t, int) const
Renvoie le numero du j-ieme sommet de la i-ieme face.
classe Objet_U Cette classe est la classe de base des Objets de TRUST
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.
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
Classe de base des flux de sortie.
std::enable_if_t< is_default_exec_space< EXEC_SPACE >, View< _TYPE_, _SHAPE_ > > view_wo()
void resize(_SIZE_ n, RESIZE_OPTIONS opt=RESIZE_OPTIONS::COPY_INIT)
_SIZE_ dimension_tot(int) const override
_SIZE_ dimension(int d) const