|
TrioCFD 1.9.8
TrioCFD documentation
|
: class Desc_Structure_FT More...
#include <Descripteur_FT.h>
Public Member Functions | |
| Desc_Structure_FT () | |
| void | reset () |
| void | echange_espace_virtuel (ArrOfDouble &tab) const |
| void | echange_espace_virtuel (ArrOfInt &tab) const |
| void | echange_espace_virtuel (ArrOfDouble &tab, MD_Vector_tools::Operations_echange op) const |
| void | echange_espace_virtuel (ArrOfInt &tab, MD_Vector_tools::Operations_echange op) const |
| void | collecter_espace_virtuel (ArrOfDouble &tab, MD_Vector_tools::Operations_echange op) const |
| void | collecter_espace_virtuel (ArrOfInt &tab, MD_Vector_tools::Operations_echange op) const |
| Descripteur_FT & | espace_distant () |
| Renvoie une reference non-const a l'espace distant. | |
| const Descripteur_FT & | espace_distant () const |
| Renvoie une reference const a l'espace distant. | |
| Descripteur_FT & | espace_virtuel () |
| Renvoie une reference non-const a l'espace virtuel. | |
| const Descripteur_FT & | espace_virtuel () const |
| Renvoie une reference const a l'espace virtuel. | |
| void | calcul_schema_comm (const int nb_items_tot) |
| void | echanger_elements (const ArrOfInt &nouveau_pe) |
| Correction des espaces distants et virtuels lors d'un changement de proprietaire (noeud ou facette). | |
| void | remplir_element_pe (ArrOfInt &element_pe) const |
| remplit le tableau qui donne pour chaque element le numero du pe proprietaire. | |
| int | check () const |
| Verification de la coherence de la structure (graphe des voisins et taille des espaces virtuels et distants). | |
| const Schema_Comm & | schema_comm () const |
| const Schema_Comm & | schema_comm_inverse () const |
| const MD_Vector & | get_md_vector () const |
| Public Member Functions inherited from Objet_U | |
| ~Objet_U () override | |
| Destructeur, supprime l'objet de la liste d'objets enregistres dans "memoire". | |
| int | numero () const |
| Renvoie l'indice de l'objet dans Memoire::data. | |
| virtual int | duplique () const =0 |
| virtual Sortie & | printOn (Sortie &) const |
| Ecriture de l'objet sur un flot de sortie Methode a surcharger. | |
| virtual Entree & | readOn (Entree &) |
| Lecture d'un Objet_U sur un flot d'entree Methode a surcharger. | |
| virtual unsigned | taille_memoire () const =0 |
| virtual int | est_egal_a (const Objet_U &) const |
| Renvoie 1 si l'objet x et *this sont une seule et meme instance (meme adresse en memoire). | |
| virtual const Nom & | le_nom () const |
| Donne le nom de l'Objet_U Methode a surcharger : renvoie "neant" dans cette implementation. | |
| virtual void | nommer (const Nom &) |
| Donne un nom a l'Objet_U Methode virtuelle a surcharger. | |
| virtual int | reprendre (Entree &) |
| Reprise d'un Objet_U sur un flot d'entree Methode a surcharger. | |
| virtual int | sauvegarder (Sortie &) const |
| Sauvegarde d'un Objet_U sur un flot de sortie Methode a surcharger. | |
| int | get_object_id () const |
| Renvoie l'identifiant unique de l'objet object_id_. | |
| virtual const Type_info * | get_info () const |
| Donne des informations sur le type de l'Objet_U. | |
| const Nom & | que_suis_je () const |
| renvoie la chaine identifiant la classe. | |
| const char * | le_type () const |
| Donne le nom du type de l'Objet_U. | |
| virtual int | change_num (const int *const) |
| Change le numero interne de l'Objet_U. | |
| virtual int | lire_motcle_non_standard (const Motcle &motlu, Entree &is) |
| Lecture des parametres de type non simple d'un objet_U a partir d'un flot d'entree. | |
| virtual int | associer_ (Objet_U &) |
| Associe l'Objet_U a un autre Objet_U Methode virtuelle a surcharger. | |
| const Interprete & | interprete () const |
| Interprete & | interprete () |
| Public Member Functions inherited from Process | |
| virtual | ~Process () |
Protected Types | |
| enum | Status { BAD , OK } |
Protected Member Functions | |
| VECT (ArrOfInt) blocs_to_recv_ | |
| Protected Member Functions inherited from Objet_U | |
| Objet_U () | |
| Constructeur par defaut : attribue un numero d'identifiant unique a l'objet (object_id_), et enregistre l'objet en "memoire". | |
| Objet_U (const Objet_U &) | |
| Constructeur par copie. | |
| const Objet_U & | operator= (const Objet_U &) |
| Operateur= : ne fait rien (on conserve le numero et l'identifiant). | |
| virtual void | set_param (Param &) const |
Protected Attributes | |
| Descripteur_FT | espace_distant_ |
| Descripteur_FT | espace_virtuel_ |
| enum Desc_Structure_FT::Status | status_md_ |
| ArrOfInt | pe_voisins_ |
| MD_Vector | md_vector_ |
| DoubleVect | tmp_doublevect_ |
| IntVect | tmp_intvect_ |
| Schema_Comm | schema_comm_ |
| Schema_Comm | schema_comm_inverse_ |
Additional Inherited Members | |
| Static Public Member Functions inherited from Objet_U | |
| static const Nom & | nom_du_cas () |
| Renvoie une reference constante vers le nom du cas. | |
| static Nom & | get_set_nom_du_cas () |
| Renvoie une reference non constante vers le nom du cas (pour pouvoir le modifier). | |
| static const Type_info * | info () |
| Donne des informations sur le type de l'Objet_U. | |
| static const Objet_U & | self_cast (const Objet_U &) |
| methode ajoutee pour caster en python | |
| static Objet_U & | self_cast (Objet_U &) |
| Static Public Member Functions inherited from Process | |
| static int | me () |
| renvoie mon rang dans le groupe de communication courant. | |
| static int | nproc () |
| renvoie le nombre de processeurs dans le groupe courant Voir Comm_Group::nproc() et PE_Groups::current_group() | |
| static bool | is_parallel () |
| static void | exit (int exit_code=-1) |
| Routine de sortie de TRUST dans une region Kokkos. | |
| static double | mp_sum (double) |
| Calcule la somme de x sur tous les processeurs du groupe courant. | |
| static float | mp_sum (float) |
| static trustIdType | mp_sum (trustIdType) |
| Calcule la somme de x sur tous les processeurs du groupe courant. | |
| static double | mp_max (double) |
| static double | mp_min (double) |
| static int | mp_max (int) |
| renvoie le plus grand int i sur l'ensemble des processeurs du groupe courant. | |
| static int | mp_min (int) |
| renvoie le plus petit int i sur l'ensemble des processeurs du groupe courant. | |
| static double | mp_sum_as_double (int v) |
| static trustIdType | mppartial_sum (trustIdType i) |
| Calul de la somme partielle de i sur les processeurs 0 a me()-1 (renvoie 0 sur le processeur 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) |
| Calcule le 'et' logique de b sur tous les processeurs du groupe courant. | |
| static bool | mp_or (bool) |
| static int | check_int_overflow (trustIdType) |
| static int | je_suis_maitre () |
| renvoie 1 si on est sur le processeur maitre du groupe courant (c'est a dire me() == 0), 0 sinon. | |
| static KOKKOS_INLINE_FUNCTION void | Kokkos_exit (const char *) |
| Routine de sortie de TRUST dans une region Kokkos. | |
| static int | node_master () |
| renvoie 1 si on est sur le processeur maitre du noeud numa, 0 sinon. | |
| static void | exit (const Nom &message, int exit_code=-1) |
| static bool | is_sequential () |
| static void | barrier () |
| Synchronise tous les processeurs du groupe courant (attend que tous les processeurs soient arrives a la barriere). | |
| static void | abort () |
| Routine de sortie de Trio-U sur une erreur abort(). | |
| static Sortie & | Journal (int message_level=0) |
| Renvoie un objet statique de type Sortie qui sert de journal d'evenements. | |
| 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 |
: class Desc_Structure_FT
Desc_Structure_FT est un descripteur adapte aux maillages lagrangiens des interfaces. Il contient un tableau d'elements et non une serie d'intervalles (le plus souvent, les elements distants et virtuels ne sont pas contigus dans les tableaux). De plus, l'allocation memoire est specialisee (les tableaux croissent geometriquement mais ne decroissent jamais, leur taille est generalement superieure au nombre d'elements qu'ils contiennent).
Definition de la correspondance: Pour deux processeurs numerotes A et B quelconques et un indice i, on considere les deux numeros suivants nA = (Sur processeur A, espace_distant.elements(B) [i]) nB = (Sur processeur B, espace_virtuel.elements(A) [i]) On dit que l'espace distant et l'espace virtuel sont en correspondance si l'element nA sur le processeur A et l'element nB sur le processeur B representent le meme element (sommet ou facette ...)
Definition at line 118 of file Descripteur_FT.h.
|
protected |
| Enumerator | |
|---|---|
| BAD | |
| OK | |
Definition at line 167 of file Descripteur_FT.h.
| Desc_Structure_FT::Desc_Structure_FT | ( | ) |
Definition at line 217 of file Descripteur_FT.cpp.
| void Desc_Structure_FT::calcul_schema_comm | ( | const int | nb_items_tot | ) |
Definition at line 719 of file Descripteur_FT.cpp.
| int Desc_Structure_FT::check | ( | ) | const |
Verification de la coherence de la structure (graphe des voisins et taille des espaces virtuels et distants).
On envoie tout au processeur 0.
Definition at line 305 of file Descripteur_FT.cpp.
| void Desc_Structure_FT::collecter_espace_virtuel | ( | ArrOfDouble & | tab, |
| MD_Vector_tools::Operations_echange | op ) const |
Definition at line 796 of file Descripteur_FT.cpp.
| void Desc_Structure_FT::collecter_espace_virtuel | ( | ArrOfInt & | tab, |
| MD_Vector_tools::Operations_echange | op ) const |
Definition at line 782 of file Descripteur_FT.cpp.
| void Desc_Structure_FT::echange_espace_virtuel | ( | ArrOfDouble & | tab | ) | const |
Definition at line 767 of file Descripteur_FT.cpp.
| void Desc_Structure_FT::echange_espace_virtuel | ( | ArrOfDouble & | tab, |
| MD_Vector_tools::Operations_echange | op ) const |
Definition at line 777 of file Descripteur_FT.cpp.
| void Desc_Structure_FT::echange_espace_virtuel | ( | ArrOfInt & | tab | ) | const |
Definition at line 762 of file Descripteur_FT.cpp.
| void Desc_Structure_FT::echange_espace_virtuel | ( | ArrOfInt & | tab, |
| MD_Vector_tools::Operations_echange | op ) const |
Definition at line 772 of file Descripteur_FT.cpp.
| void Desc_Structure_FT::echanger_elements | ( | const ArrOfInt & | nouveau_pe | ) |
Correction des espaces distants et virtuels lors d'un changement de proprietaire (noeud ou facette).
Les operations sont les suivantes :
| (nouveau_pe) | tableau de taille nb_sommets ou nb_facettes, qui contient le numero du nouveau pe proprietaire, ou -1 si l'element ne change pas de main. L'espace virtuel de ce tableau doit etre a jour (echange_espace_virtuel realise). |
Definition at line 519 of file Descripteur_FT.cpp.
| Descripteur_FT & Desc_Structure_FT::espace_distant | ( | ) |
Renvoie une reference non-const a l'espace distant.
Le statut du descripteur passe a BAD => il faudra recalculer le schema de com.
Definition at line 262 of file Descripteur_FT.cpp.
| const Descripteur_FT & Desc_Structure_FT::espace_distant | ( | ) | const |
Renvoie une reference const a l'espace distant.
Le statut reste OK.
Definition at line 273 of file Descripteur_FT.cpp.
| Descripteur_FT & Desc_Structure_FT::espace_virtuel | ( | ) |
Renvoie une reference non-const a l'espace virtuel.
Le statut du descripteur passe a BAD => il faudra recalculer le schema de com.
Definition at line 283 of file Descripteur_FT.cpp.
| const Descripteur_FT & Desc_Structure_FT::espace_virtuel | ( | ) | const |
Renvoie une reference const a l'espace virtuel.
Le statut reste OK.
Definition at line 294 of file Descripteur_FT.cpp.
| const MD_Vector & Desc_Structure_FT::get_md_vector | ( | ) | const |
Definition at line 810 of file Descripteur_FT.cpp.
| void Desc_Structure_FT::remplir_element_pe | ( | ArrOfInt & | element_pe | ) | const |
remplit le tableau qui donne pour chaque element le numero du pe proprietaire.
Le tableau fourni doit avoir la bonne taille (nombre d'elements = sommets ou facettes par ex.) Ce tableau est rempli en utilisant l'espace virtuel (tous les elements sont a moi, sauf ceux qui sont dans l'espace virtuel).
Definition at line 698 of file Descripteur_FT.cpp.
| void Desc_Structure_FT::reset | ( | ) |
Definition at line 250 of file Descripteur_FT.cpp.
| const Schema_Comm & Desc_Structure_FT::schema_comm | ( | ) | const |
Definition at line 750 of file Descripteur_FT.cpp.
| const Schema_Comm & Desc_Structure_FT::schema_comm_inverse | ( | ) | const |
Definition at line 756 of file Descripteur_FT.cpp.
|
protected |
|
protected |
Definition at line 161 of file Descripteur_FT.h.
|
protected |
Definition at line 162 of file Descripteur_FT.h.
|
protected |
Definition at line 171 of file Descripteur_FT.h.
|
protected |
Definition at line 169 of file Descripteur_FT.h.
|
protected |
Definition at line 175 of file Descripteur_FT.h.
|
protected |
Definition at line 176 of file Descripteur_FT.h.
|
protected |
|
mutableprotected |
Definition at line 172 of file Descripteur_FT.h.
|
mutableprotected |
Definition at line 173 of file Descripteur_FT.h.