|
TRUST 1.9.8
HPC thermohydraulic platform
|
#include <ScatterMED.h>
Public Member Functions | |
| void | lire_domaine (Nom &) override |
| Lit le domaine dans le fichier de nom "nomentree", de type LecFicDistribueBin ou LecFicDistribue. | |
| Public Member Functions inherited from Scatter | |
| Entree & | interpreter (Entree &) override |
| Lit et complete un domaine parallele selon les motcles lus dans le jeu de donnees. | |
| Domaine & | domaine () |
| Renvoi le domaine associe. | |
| 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 () |
Additional Inherited Members | |
| Static Public Member Functions inherited from Scatter | |
| static int | Chercher_Correspondance (const DoubleTab &sommets1, const DoubleTab &sommets2, ArrOfInt &correspondance, const double epsilon) |
| Construit le tableau "correspondance" tel que Pour 0 <= i < sommets2. | |
| static void | construire_correspondance_sommets_par_coordonnees (Domaine &dom, bool allow_resize=false) |
| Construction des tableaux joint_item(JOINT_ITEM::SOMMET).items_communs de tous les joints du domaine(0) du domaine dom. | |
| static void | construire_correspondance_aretes_par_coordonnees (Domaine_VF &zvf) |
| Construction des tableaux joint_item(JOINT_ITEM::ARETE).items_communs de tous les joints du domaine. | |
| static void | construire_correspondance_items_par_coordonnees (Joints &joints, const JOINT_ITEM type_item, const DoubleTab &coord_items, bool allow_resize=false) |
| Generic method to build geometrical item correspondance between the local and the remote processor around a joint. | |
| static void | construire_structures_paralleles (Domaine &dom) |
| Construction des structures paralleles du domaine et du domaine (determination des elements distants en fonction de l'epaisseur de joint,. | |
| static void | calculer_espace_distant (Domaine &domaine, const int nb_items_reels, const ArrsOfInt &items_to_send, const JOINT_ITEM type_item) |
| Determination des items distants en fonction d'une liste d'items a envoyer et de listes d'items communs. | |
| static void | calculer_nb_items_virtuels (Joints &joints, const JOINT_ITEM type_item) |
| Pour un item geometrique "type_item", remplit le champ nb_items_virtuels_ des joints en fonction du nombre d'items distants : | |
| static void | calculer_renum_items_communs (Joints &joints, const JOINT_ITEM type_item) |
| On suppose que chaque joint[i].joint_item(type_item).items_communs() contient les indices locaux des items de joint communs dans le meme ordre sur les deux processeurs (local et voisin) On remplit renum_items_communs : colonne 0=contenu du tableau items_communs sur le PE voisin colonne 1=contenu du tableau items_communs sur le PE local. | |
| static void | calculer_espace_distant_faces (Domaine &domaine, const int nb_faces_reelles, const IntTab &elem_faces) |
| Idem que Scatter::calculer_espace_distant_sommets pour les faces. | |
| static void | calculer_espace_distant_aretes (Domaine &domaine, const int nb_aretes_reelles, const IntTab &elem_aretes) |
| Idem que Scatter::calculer_espace_distant_sommets pour les aretes. | |
| static void | calculer_espace_distant_elements (Domaine &dom) |
| Remplissage du tableau "espace_distant()" des elements dans les joints. | |
| static void | corriger_espace_distant_elements_perio (Domaine &dom) |
| Les algorithmes actuels pour le periodique (assembleur P1B, OpDivElem P1B) ont besoin que pour chaque face virtuelle periodique, la face opposee soit. | |
| static void | calculer_espace_distant_sommets (Domaine &dom) |
| En fonction de l'espace distant des elements, calcule l'espace distant des sommets. | |
| static void | construire_espace_virtuel_traduction (const MD_Vector &md_indice, const MD_Vector &md_valeur, IntTab &tableau, const int error_is_fatal=1) |
| Construit la structure items_communs + espaces virtuels d'un tableau contenant des indices d'items geometriques, indexe par un autre type d'item geometrique. | |
| static void | reordonner_faces_de_joint (Domaine &dom) |
| Reordonne les faces de joint de sorte qu'elles apparaissent dans le meme ordre sur chaque couple de processeur voisin. | |
| static void | ajouter_joints (Domaine &domaine, ArrOfInt &pe_voisins) |
| Ajoute des joints avec tous les pe de pe_voisins. | |
| static void | trier_les_joints (Joints &joints) |
| Sort joints by increasing neighbor proc number. | |
| static void | construire_md_vector (const Domaine &, int nb_items_reels, const JOINT_ITEM, MD_Vector &) |
| construction d'un MD_Vector_std a partir des informations de joint du domaine pour le type d'item demande. | |
| static void | check_consistancy_remote_items (Domaine &dom, const ArrOfInt &mergedDomaines) |
| Merged domains receive joint information from their neighbours to ensure that their common items (vertices) appear in the same order. | |
| template<typename _SIZE_> | |
| static void | init_sequential_domain (Domaine_32_64< _SIZE_ > &dom) |
| Create parallel descriptors for the vertex and element arrays of the domain (necessary because Scatter is never invoked in sequential). | |
| template<typename _SIZE_> | |
| static void | uninit_sequential_domain (Domaine_32_64< _SIZE_ > &dom) |
| methode utilisee par les interpretes qui modifient le domaine (sequentiel), detruit les descripteurs des sommets et elements pour permettre la modification de ces tableaux. | |
| Static Public Member Functions inherited from Interprete | |
| static Objet_U & | objet (const Nom &) |
| Voir Interprete_bloc::objet_global() BM: la classe Interprete n'est pas le meilleur endroit pour cette. | |
| static int | objet_existant (const Nom &) |
| Renvoie 1 si l'objet existe, 0 sinon voir Interprete_bloc::objet_global_existant(). | |
| 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 |
| Protected Member Functions inherited from Scatter | |
| OBS_PTR (Domaine) le_domaine | |
| void | read_domain_no_comm (Entree &fic, bool &read_perio) |
| Does the exact same thing as the readOn of the class Domaine but without collective communication. | |
| 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 |
Definition at line 22 of file ScatterMED.h.
|
overridevirtual |
Lit le domaine dans le fichier de nom "nomentree", de type LecFicDistribueBin ou LecFicDistribue.
(selon fichier_domaine_format_binaire_) Le format historique n'est plus supporte. Format attendu : Domaine::ReadOn le Domaine est renomme comme le domaine (pour lance_test_seq_par)
Reimplemented from Scatter.
Definition at line 50 of file ScatterMED.cpp.