|
TrioCFD 1.9.9_beta
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 | |
| 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 Sortie & | printOn (Sortie &) const |
| Writes the object to an output stream. Virtual method to override. | |
| virtual Entree & | readOn (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 Nom & | le_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_info * | get_info () const |
| Returns type information for the Objet_U. | |
| const Nom & | que_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 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 () | |
| 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_U & | operator= (const Objet_U &) |
| Assignment operator: does nothing (the number and identifier are preserved). | |
| 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 () |
| Returns a constant reference to the case name. This method is static. | |
| static Nom & | get_set_nom_du_cas () |
| Returns a non-constant reference to the case name (to allow modification). This method is static. | |
| static const Type_info * | info () |
| Returns type information for the Objet_U (static version). | |
| static const Objet_U & | self_cast (const Objet_U &) |
| Method added for casting in Python. | |
| static Objet_U & | self_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 Sortie & | Journal (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 |
: 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.