TrioCFD 1.9.9_beta
TrioCFD documentation
Loading...
Searching...
No Matches
Polygone_32_64< _SIZE_ > Class Template Reference

Class Polygone represents the geometric element Polygone. More...

#include <Polygone.h>

Inheritance diagram for Polygone_32_64< _SIZE_ >:
[legend]
Collaboration diagram for Polygone_32_64< _SIZE_ >:
[legend]

Public Types

using int_t = _SIZE_
using ArrOfInt_t = ArrOfInt_T<_SIZE_>
using IntTab_t = IntTab_T<_SIZE_>
using SmallArrOfTID_t = SmallArrOfTID_T<_SIZE_>
using DoubleVect_t = DoubleVect_T<_SIZE_>
using DoubleTab_t = DoubleTab_T<_SIZE_>
using Domaine_t = Domaine_32_64<_SIZE_>
Public Types inherited from Poly_geom_base_32_64< _SIZE_ >
using int_t = _SIZE_
using ArrOfInt_t = ArrOfInt_T<_SIZE_>
Public Types inherited from Elem_geom_base_32_64< _SIZE_ >
using int_t = _SIZE_
using ArrOfInt_t = ArrOfInt_T<_SIZE_>
using IntVect_t = IntVect_T<_SIZE_>
using IntTab_t = IntTab_T<_SIZE_>
using SmallArrOfTID_t = SmallArrOfTID_T<_SIZE_>
using ArrOfDouble_t = ArrOfDouble_T<_SIZE_>
using DoubleVect_t = DoubleVect_T<_SIZE_>
using DoubleTab_t = DoubleTab_T<_SIZE_>
using Domaine_t = Domaine_32_64<_SIZE_>
using Faces_t = Faces_32_64<_SIZE_>

Public Member Functions

int face_sommet (int i, int j) const override
 Returns the index of the j-th vertex of the i-th face of the element.
int nb_som () const override
 Returns the number of vertices of a Polygone element.
int nb_faces (int=0) const override
 Returns the number of faces of the specified type that the geometric element has.
int nb_som_face (int=0) const override
 Returns the maximum number of vertices of the faces of the specified type.
const Nomnom_lml () const override
 Returns the LML name of a polygon = "POLYEDRE_" + 2*nb_som_max (or "POLYGONE_" + nb_som_max in 3D).
int contient (const ArrOfDouble &pos, int_t elem) const override
 Returns 1 if element "num_poly" of the domain associated with this geometric element contains the point with coordinates "pos_r".
int contient (const SmallArrOfTID_t &soms, int_t elem) const override
 Not yet implemented — always returns 0. Returns 1 if the vertices specified by "pos" are those of element "element" in the associated domain.
Type_Face type_face (int=0) const override
 Returns the i-th face type.
void calculer_volumes (DoubleVect_t &vols) const override
 Computes the volumes (areas) of the elements of the associated domain.
void calculer_centres_gravite (DoubleTab_t &xp) const override
 Compute all centers of mass of all elements in the domain.
void calculer_un_centre_gravite (const int_t elem, DoubleVect &xp) const override
int get_tab_faces_sommets_locaux (IntTab &faces_som_local) const override
 Fills faces_som_local(i,j) giving for 0 <= i < nb_faces() and 0 <= j < nb_som_face(i) the local vertex index on the element.
int get_tab_faces_sommets_locaux (IntTab &faces_som_local, int_t elem) const override
void affecte_connectivite_numero_global (const ArrOfInt_t &FacesIndex, const ArrOfInt_t &PolygonIndex, IntTab_t &les_elems)
int get_nb_som_elem_max () const
int get_nb_face_elem_max () const
_SIZE_ get_somme_nb_faces_elem () const override
const ArrOfInt_tgetPolygonIndex () const
const ArrOfInt_tgetElemIndex () const override
void rebuild_index ()
void build_reduced (OWN_PTR(Elem_geom_base_32_64< int >)&type_elem, const ArrOfInt_t &elems_sous_part) const override
void compute_virtual_index () override
template<typename _SIZE_>
 Polygone_32_64 ()
Public Member Functions inherited from Poly_geom_base_32_64< _SIZE_ >
virtual ~Poly_geom_base_32_64 ()
const ArrOfInt_tgetFacesIndex () const
ArrOfInt_tgetsetFacesIndex ()
int get_nb_face_elem_max () const
int get_nb_som_elem_max () const
bool est_structure () const override
int nb_type_face () const override
 Nb of face types of the elemnt (for example 2 for a prism).
Public Member Functions inherited from Elem_geom_base_32_64< _SIZE_ >
virtual void creer_faces_elem (Faces_t &, int_t, Type_Face) const
 Creates the faces of the specified geometric element of the domain using the given face type.
void creer_faces_elem (Faces_t &, int_t) const
 Create the faces of the element of the specified domain.
void associer_domaine (const Domaine_32_64< int_t > &dom)
virtual int num_face (int face, Type_Face &type) const
 Returns the face parameter if the specified face type matches that of the geometric element.
virtual void reordonner ()
virtual void calculer_normales (const IntTab_t &faces_sommets, DoubleTab_t &face_normales) const
 Exits with an error. This method is not pure virtual for convenience.
virtual void get_tab_aretes_sommets_locaux (IntTab &aretes_som_local) const
 Same as Elem_geom_base::get_tab_faces_sommets_locaux but for edges: aretes_som_local.
Public Member Functions inherited from Objet_U
 ~Objet_U () override
 Destructor. Removes the object from the list of objects registered in "memory".
int numero () const
 Returns the index of the object in Memoire::data.
virtual int duplique () const =0
virtual SortieprintOn (Sortie &) const
 Writes the object to an output stream. Virtual method to override.
virtual EntreereadOn (Entree &)
 Reads an Objet_U from an input stream. Virtual method to override.
virtual unsigned taille_memoire () const =0
virtual int est_egal_a (const Objet_U &) const
 Returns 1 if x and *this are the same instance (same memory address).
virtual const Nomle_nom () const
 Returns the name of the Objet_U. Virtual method to override: returns "neant" in this implementation.
virtual void nommer (const Nom &)
 Assigns a name to the Objet_U. Virtual method to override.
virtual int reprendre (Entree &)
 Restores an Objet_U from an input stream. Virtual method to override.
virtual int sauvegarder (Sortie &) const
 Saves an Objet_U to an output stream. Virtual method to override.
int get_object_id () const
 Returns the unique identifier of the object (object_id_).
virtual const Type_infoget_info () const
 Returns type information for the Objet_U.
const Nomque_suis_je () const
 Returns the string identifying the class.
const char * le_type () const
 Returns the type name of the Objet_U.
virtual int change_num (const int *const)
 Changes the internal number of the Objet_U.
virtual int lire_motcle_non_standard (const Motcle &motlu, Entree &is)
 Reads non-simple-type parameters of an Objet_U from an input stream.
virtual int associer_ (Objet_U &)
 Associates the Objet_U with another Objet_U. Virtual method to override.
const Interpreteinterprete () const
Interpreteinterprete ()
Public Member Functions inherited from Process
virtual ~Process ()

Protected Attributes

ArrOfInt_t PolygonIndex_
Protected Attributes inherited from Poly_geom_base_32_64< _SIZE_ >
ArrOfInt_t FacesIndex_
int nb_som_elem_max_ = -123
int nb_face_elem_max_ = -123

Static Protected Attributes

static int dimension

Friends

template<class T>
class Polygone_32_64

Additional Inherited Members

Static Public Member Functions inherited from Objet_U
static const Nomnom_du_cas ()
 Returns a constant reference to the case name. This method is static.
static Nomget_set_nom_du_cas ()
 Returns a non-constant reference to the case name (to allow modification). This method is static.
static const Type_infoinfo ()
 Returns type information for the Objet_U (static version).
static const Objet_Uself_cast (const Objet_U &)
 Method added for casting in Python.
static Objet_Uself_cast (Objet_U &)
Static Public Member Functions inherited from Process
static int me ()
 Returns the rank of the local processor in the current communication group. See Comm_Group::rank() and PE_Groups::current_group().
static int nproc ()
 Returns the number of processors in the current group. See Comm_Group::nproc() and PE_Groups::current_group().
static bool is_parallel ()
static void exit (int exit_code=-1)
 Exit routine for TRUST within a Kokkos region.
static double mp_sum (double)
 Computes the sum of x over all processors in the current group.
static float mp_sum (float)
static trustIdType mp_sum (trustIdType)
 Computes the sum of x over all processors in the current group.
static double mp_max (double)
static double mp_min (double)
static int mp_max (int)
 Returns the maximum value of x across all processors in the current group.
static int mp_min (int)
 Returns the minimum value of x across all processors in the current group.
static double mp_sum_as_double (int v)
static trustIdType mppartial_sum (trustIdType i)
 Computes the partial sum of x over processors 0 to me()-1 (returns 0 on processor 0).
template<typename T>
static void mp_sum_for_each (T &arg1, T &arg2)
 C++14 compatible mp_sum_for_each: combine multiple mp_sum calls into one collective operation Usage: mp_sum_for_each(a, b); mp_sum_for_each(a, b, c); mp_sum_for_each(a, b, c, d); mp_sum_for_each(a, b, c, d, e); All arguments must be of the same type (double or int) and are modified in place. Supports 2-5 parameters.
template<typename T>
static void mp_sum_for_each (T &arg1, T &arg2, T &arg3)
template<typename T>
static void mp_sum_for_each (T &arg1, T &arg2, T &arg3, T &arg4)
template<typename T>
static void mp_sum_for_each (T &arg1, T &arg2, T &arg3, T &arg4, T &arg5)
template<typename T>
static void mp_max_for_each (T &arg1, T &arg2)
 C++14 compatible mp_max_for_each: combine multiple mp_max calls into one collective operation.
template<typename T>
static void mp_max_for_each (T &arg1, T &arg2, T &arg3)
template<typename T>
static void mp_max_for_each (T &arg1, T &arg2, T &arg3, T &arg4)
template<typename T>
static void mp_max_for_each (T &arg1, T &arg2, T &arg3, T &arg4, T &arg5)
template<typename T>
static void mp_min_for_each (T &arg1, T &arg2)
 C++14 compatible mp_min_for_each: combine multiple mp_min calls into one collective operation.
template<typename T>
static void mp_min_for_each (T &arg1, T &arg2, T &arg3)
template<typename T>
static void mp_min_for_each (T &arg1, T &arg2, T &arg3, T &arg4)
template<typename T>
static void mp_min_for_each (T &arg1, T &arg2, T &arg3, T &arg4, T &arg5)
template<typename _TYPE_>
static void mp_sum_for_each_item (TRUSTArray< _TYPE_ > &x, int n=-1)
template<typename _TYPE_>
static void mp_max_for_each_item (TRUSTArray< _TYPE_ > &x, int n=-1)
template<typename _TYPE_>
static void mp_min_for_each_item (TRUSTArray< _TYPE_ > &x, int n=-1)
static bool mp_and (bool)
 Computes the logical AND of b across all processors in the current group.
static bool mp_or (bool)
static int check_int_overflow (trustIdType)
static int je_suis_maitre ()
 Returns 1 if on the master processor of the current group (i.e. me() == 0), 0 otherwise.
static KOKKOS_INLINE_FUNCTION void Kokkos_exit (const char *)
 Exit routine for TRUST within a Kokkos region.
static int node_master ()
 Returns 1 if on the NUMA node master processor, 0 otherwise.
static void exit (const Nom &message, int exit_code=-1)
static bool is_sequential ()
static void barrier ()
 Synchronizes all processors in the current group (waits until all processors have reached the barrier).
static void abort ()
 Abort routine for TRUST on a fatal error.
static SortieJournal (int message_level=0)
 Returns a static Sortie object used as an event journal.
static double ram_processeur ()
static void imprimer_ram_totale (int all_process=0)
static bool force_single_file (const int ranks, const Nom &filename)
Static Public Attributes inherited from Objet_U
static double precision_geom = 1e-10
static constexpr bool HAS_POINTER = false
static int dimension =0
static int format_precision_geom =11
static int axi =0
static int bidim_axi =0
static int DEACTIVATE_SIGINT_CATCH =0
static Type_info info_obj
static bool disable_TU =false
 Flag to disable or not the writing of the .TU files.
static bool stat_per_proc_perf_log =false
 Flag to enable the writing of the statistics detailed per processor in _csv.TU file.
Static Public Attributes inherited from Process
static int exception_sur_exit =0
static int multiple_files =5120
Protected Member Functions inherited from Elem_geom_base_32_64< _SIZE_ >
 OBS_PTR (Domaine_t) mon_dom
Protected Member Functions inherited from Objet_U
 Objet_U ()
 Default constructor: assigns a unique identifier to the object (object_id_) and registers the object in "memory" by giving it a num_obj number.
 Objet_U (const Objet_U &)
 Copy constructor.
const Objet_Uoperator= (const Objet_U &)
 Assignment operator: does nothing (the number and identifier are preserved).
virtual void set_param (Param &) const

Detailed Description

template<typename _SIZE_>
class Polygone_32_64< _SIZE_ >

Class Polygone represents the geometric element Polygone.

A polyhedron is an element defined by its faces of type Type_Face::polygone_3D

See also
Poly_geom_base Elem_geom

Definition at line 28 of file Polygone.h.

Member Typedef Documentation

◆ ArrOfInt_t

template<typename _SIZE_>
using Polygone_32_64< _SIZE_ >::ArrOfInt_t = ArrOfInt_T<_SIZE_>

Definition at line 38 of file Polygone.h.

◆ Domaine_t

template<typename _SIZE_>
using Polygone_32_64< _SIZE_ >::Domaine_t = Domaine_32_64<_SIZE_>

Definition at line 43 of file Polygone.h.

◆ DoubleTab_t

template<typename _SIZE_>
using Polygone_32_64< _SIZE_ >::DoubleTab_t = DoubleTab_T<_SIZE_>

Definition at line 42 of file Polygone.h.

◆ DoubleVect_t

template<typename _SIZE_>
using Polygone_32_64< _SIZE_ >::DoubleVect_t = DoubleVect_T<_SIZE_>

Definition at line 41 of file Polygone.h.

◆ int_t

template<typename _SIZE_>
using Polygone_32_64< _SIZE_ >::int_t = _SIZE_

Definition at line 37 of file Polygone.h.

◆ IntTab_t

template<typename _SIZE_>
using Polygone_32_64< _SIZE_ >::IntTab_t = IntTab_T<_SIZE_>

Definition at line 39 of file Polygone.h.

◆ SmallArrOfTID_t

template<typename _SIZE_>
using Polygone_32_64< _SIZE_ >::SmallArrOfTID_t = SmallArrOfTID_T<_SIZE_>

Definition at line 40 of file Polygone.h.

Constructor & Destructor Documentation

◆ Polygone_32_64()

template<typename _SIZE_>
template<typename _SIZE_>
Polygone_32_64< _SIZE_ >::Polygone_32_64 ( )

Definition at line 26 of file Polygone.cpp.

Member Function Documentation

◆ affecte_connectivite_numero_global()

template<typename _SIZE_>
void Polygone_32_64< _SIZE_ >::affecte_connectivite_numero_global ( const ArrOfInt_t & FacesIndex,
const ArrOfInt_t & PolygonIndex,
IntTab_t & les_elems )

Definition at line 317 of file Polygone.cpp.

◆ build_reduced()

template<typename _SIZE_>
void Polygone_32_64< _SIZE_ >::build_reduced ( OWN_PTR(Elem_geom_base_32_64< int >)& type_elem,
const ArrOfInt_t & elems_sous_part ) const
overridevirtual

Implements Poly_geom_base_32_64< _SIZE_ >.

Definition at line 87 of file Polygone.cpp.

◆ calculer_centres_gravite()

template<typename _SIZE_>
void Polygone_32_64< _SIZE_ >::calculer_centres_gravite ( DoubleTab_t & tab_xp) const
overridevirtual

Compute all centers of mass of all elements in the domain.

Computes the centers of mass of all elements in the domain associated with this geometric element.

Parameters
tab_xpArray to fill with the coordinates of the centers of mass.

Reimplemented from Elem_geom_base_32_64< _SIZE_ >.

Definition at line 356 of file Polygone.cpp.

◆ calculer_un_centre_gravite()

template<typename _SIZE_>
void Polygone_32_64< _SIZE_ >::calculer_un_centre_gravite ( const int_t elem,
DoubleVect & xp ) const
overridevirtual

Implements Poly_geom_base_32_64< _SIZE_ >.

Definition at line 403 of file Polygone.cpp.

◆ calculer_volumes()

template<typename _SIZE_>
void Polygone_32_64< _SIZE_ >::calculer_volumes ( DoubleVect_t & volumes) const
overridevirtual

Computes the volumes (areas) of the elements of the associated domain.

Parameters
volumesVector to fill with the volumes of domain elements.

Implements Elem_geom_base_32_64< _SIZE_ >.

Definition at line 240 of file Polygone.cpp.

◆ compute_virtual_index()

template<typename _SIZE_>
void Polygone_32_64< _SIZE_ >::compute_virtual_index ( )
overridevirtual

Implements Poly_geom_base_32_64< _SIZE_ >.

Definition at line 114 of file Polygone.cpp.

◆ contient() [1/2]

template<typename _SIZE_>
int Polygone_32_64< _SIZE_ >::contient ( const ArrOfDouble & pos_r,
int_t num_poly ) const
overridevirtual

Returns 1 if element "num_poly" of the domain associated with this geometric element contains the point with coordinates "pos_r".

Returns 0 otherwise. Implemented by decomposing the polygon into triangles.

Parameters
pos_rCoordinates of the point to locate.
num_polyIndex of the domain element in which to search for the point.
Returns
1 if the point belongs to element "num_poly", 0 otherwise.

Implements Elem_geom_base_32_64< _SIZE_ >.

Definition at line 197 of file Polygone.cpp.

◆ contient() [2/2]

template<typename _SIZE_>
int Polygone_32_64< _SIZE_ >::contient ( const SmallArrOfTID_t & pos,
int_t element ) const
overridevirtual

Not yet implemented — always returns 0. Returns 1 if the vertices specified by "pos" are those of element "element" in the associated domain.

Parameters
posVertex indices to compare.
elementIndex of the domain element whose vertices are to be compared.
Returns
1 if the vertices match, 0 otherwise.

Implements Elem_geom_base_32_64< _SIZE_ >.

Definition at line 228 of file Polygone.cpp.

◆ face_sommet()

template<typename _SIZE_>
int Polygone_32_64< _SIZE_ >::face_sommet ( int face,
int sommet ) const
inlineoverridevirtual

Returns the index of the j-th vertex of the i-th face of the element.

Parameters
(inti) a face index
(intj) a vertex index
Returns
(int) the index of the j-th vertex of the i-th face

Implements Elem_geom_base_32_64< _SIZE_ >.

Definition at line 98 of file Polygone.h.

◆ get_nb_face_elem_max()

template<typename _SIZE_>
int Polygone_32_64< _SIZE_ >::get_nb_face_elem_max ( ) const
inline

Definition at line 65 of file Polygone.h.

◆ get_nb_som_elem_max()

template<typename _SIZE_>
int Polygone_32_64< _SIZE_ >::get_nb_som_elem_max ( ) const

Definition at line 127 of file Polygone.cpp.

◆ get_somme_nb_faces_elem()

template<typename _SIZE_>
_SIZE_ Polygone_32_64< _SIZE_ >::get_somme_nb_faces_elem ( ) const
overridevirtual

Implements Poly_geom_base_32_64< _SIZE_ >.

Definition at line 121 of file Polygone.cpp.

◆ get_tab_faces_sommets_locaux() [1/2]

template<typename _SIZE_>
int Polygone_32_64< _SIZE_ >::get_tab_faces_sommets_locaux ( IntTab & faces_som_local) const
overridevirtual

Fills faces_som_local(i,j) giving for 0 <= i < nb_faces() and 0 <= j < nb_som_face(i) the local vertex index on the element.

We have 0 <= faces_sommets_locaux(i,j) < nb_som(). If faces do not all have the same number of vertices, the number of columns equals the maximum, and unused entries are set to -1. Returns 1 if all faces have the same vertex count, 0 otherwise.

Parameters
faces_som_localTable to fill with local face-vertex indices.
Returns
1 if all faces have the same vertex count, 0 otherwise.

Implements Poly_geom_base_32_64< _SIZE_ >.

Definition at line 285 of file Polygone.cpp.

◆ get_tab_faces_sommets_locaux() [2/2]

template<typename _SIZE_>
int Polygone_32_64< _SIZE_ >::get_tab_faces_sommets_locaux ( IntTab & faces_som_local,
int_t elem ) const
overridevirtual

Implements Poly_geom_base_32_64< _SIZE_ >.

Definition at line 291 of file Polygone.cpp.

◆ getElemIndex()

template<typename _SIZE_>
const ArrOfInt_t & Polygone_32_64< _SIZE_ >::getElemIndex ( ) const
inlineoverridevirtual

Implements Poly_geom_base_32_64< _SIZE_ >.

Definition at line 70 of file Polygone.h.

◆ getPolygonIndex()

template<typename _SIZE_>
const ArrOfInt_t & Polygone_32_64< _SIZE_ >::getPolygonIndex ( ) const
inline

Definition at line 69 of file Polygone.h.

◆ nb_faces()

template<typename _SIZE_>
int Polygone_32_64< _SIZE_ >::nb_faces ( int i = 0) const
inlineoverridevirtual

Returns the number of faces of the specified type that the geometric element has.

A Polygone has 1 type of face: polygon_3D

Parameters
(inti) the face type

Implements Elem_geom_base_32_64< _SIZE_ >.

Definition at line 123 of file Polygone.h.

◆ nb_som()

template<typename _SIZE_>
int Polygone_32_64< _SIZE_ >::nb_som ( ) const
inlineoverridevirtual

Returns the number of vertices of a Polygone element.

Returns
(int) the maximum number of vertices of a polyhedron

Implements Elem_geom_base_32_64< _SIZE_ >.

Definition at line 110 of file Polygone.h.

◆ nb_som_face()

template<typename _SIZE_>
int Polygone_32_64< _SIZE_ >::nb_som_face ( int i = 0) const
inlineoverridevirtual

Returns the maximum number of vertices of the faces of the specified type.

Parameters
(inti) the face type
Returns
(int) the number of vertices of faces of type i

Implements Elem_geom_base_32_64< _SIZE_ >.

Definition at line 144 of file Polygone.h.

◆ nom_lml()

template<typename _SIZE_>
const Nom & Polygone_32_64< _SIZE_ >::nom_lml ( ) const
overridevirtual

Returns the LML name of a polygon = "POLYEDRE_" + 2*nb_som_max (or "POLYGONE_" + nb_som_max in 3D).

Returns
LML name string for this polygon type.

Implements Elem_geom_base_32_64< _SIZE_ >.

Definition at line 140 of file Polygone.cpp.

◆ rebuild_index()

template<typename _SIZE_>
void Polygone_32_64< _SIZE_ >::rebuild_index ( )

Definition at line 58 of file Polygone.cpp.

◆ type_face()

template<typename _SIZE_>
Type_Face Polygone_32_64< _SIZE_ >::type_face ( int i = 0) const
inlineoverridevirtual

Returns the i-th face type.

A polyhedron has 2 face types: quadrangle and triangle

Parameters
(inti) the rank of the face type to return
Returns
(Type_Face) the type of face i

Implements Elem_geom_base_32_64< _SIZE_ >.

Definition at line 158 of file Polygone.h.

◆ Polygone_32_64

template<typename _SIZE_>
template<class T>
friend class Polygone_32_64
friend

Definition at line 35 of file Polygone.h.

Member Data Documentation

◆ dimension

template<typename _SIZE_>
int Objet_U::dimension
staticprotected

Definition at line 94 of file Objet_U.h.

◆ PolygonIndex_

template<typename _SIZE_>
ArrOfInt_t Polygone_32_64< _SIZE_ >::PolygonIndex_
protected

PolygonIndex_[ele] gives the index of the first face of element 'ele' See FaceIndex_ in base class.

Definition at line 87 of file Polygone.h.


The documentation for this class was generated from the following files:
  • /home/docs/trust-code/src/Kernel/Geometrie/Elem/Polygone.h
  • /home/docs/trust-code/src/Kernel/Geometrie/Elem/Polygone.cpp