TRUST 1.9.8
HPC thermohydraulic platform
Loading...
Searching...
No Matches
Scatter Class Reference

#include <Scatter.h>

Inheritance diagram for Scatter:
[legend]
Collaboration diagram for Scatter:
[legend]

Public Member Functions

Entreeinterpreter (Entree &) override
 Lit et complete un domaine parallele selon les motcles lus dans le jeu de donnees.
virtual void lire_domaine (Nom &fil)
 Lit le domaine dans le fichier de nom "nomentree", de type LecFicDistribueBin ou LecFicDistribue.
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 SortieprintOn (Sortie &) const
 Ecriture de l'objet sur un flot de sortie Methode a surcharger.
virtual EntreereadOn (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 Nomle_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_infoget_info () const
 Donne des informations sur le type de l'Objet_U.
const Nomque_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 Interpreteinterprete () const
Interpreteinterprete ()
Public Member Functions inherited from Process
virtual ~Process ()

Static Public Member Functions

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_Uobjet (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 Nomnom_du_cas ()
 Renvoie une reference constante vers le nom du cas.
static Nomget_set_nom_du_cas ()
 Renvoie une reference non constante vers le nom du cas (pour pouvoir le modifier).
static const Type_infoinfo ()
 Donne des informations sur le type de l'Objet_U.
static const Objet_Uself_cast (const Objet_U &)
 methode ajoutee pour caster en python
static Objet_Uself_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 SortieJournal (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)

Protected Member Functions

 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_Uoperator= (const Objet_U &)
 Operateur= : ne fait rien (on conserve le numero et l'identifiant).
virtual void set_param (Param &) const

Additional Inherited Members

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

Detailed Description

Definition at line 27 of file Scatter.h.

Member Function Documentation

◆ ajouter_joints()

void Scatter::ajouter_joints ( Domaine & domaine,
ArrOfInt & pe_voisins )
static

Ajoute des joints avec tous les pe de pe_voisins.

Pour que l'ensemble des joints soit symetrique, on en cree aussi un joint sur le processeur destination: Si A ajoute un joint avec B, alors B ajoute un joint avec A. On trie les joints par ordre croissant du numero de PE. ATTENTION: les joints sont donc reordonnes ! On met dans pe_voisins la liste des joints effectivement crees.

Definition at line 1028 of file Scatter.cpp.

◆ calculer_espace_distant()

void Scatter::calculer_espace_distant ( Domaine & domaine,
const int nb_items_reels,
const ArrsOfInt & items_to_send,
const JOINT_ITEM type_item )
static

Determination des items distants en fonction d'une liste d'items a envoyer et de listes d'items communs.

exemple: calculer_espace_distant_sommets calculer_espace_distant_faces Pour les sommets: les "items_to_send" sont les sommets des elements distants, Si le processeur A veut que le processeur B connaisse le sommet i, il faut que le processeur qui possede le sommet l'envoie a B. Le processeur qui "possede" le sommet est le plus petit parmi les PEs qui partagent ce sommet (item commun) (requis pour pouvoir faire echange_item_commun et echange_espace_virtuel en une seule passe). De plus, si plusieurs processeurs demandent a envoyer le meme sommet au meme processeur, il ne faut l'inserer qu'une seule fois dans l'espace distant.

Parameters
(joints)les joints dans lesquels on veut calculer un espace distant
(nb_items_reels)le nombre d'items reels (sommets, faces, ...)
(items_to_send)un vecteur de "nproc()" tableaux, pour chaque processeur, la liste des items qu'on veut lui envoyer (exemple:tous les sommets des elements distants, ou toutes les faces)
(type_item)les items dont on veut calculer l'espace distant

Definition at line 819 of file Scatter.cpp.

◆ calculer_espace_distant_aretes()

void Scatter::calculer_espace_distant_aretes ( Domaine & domaine,
const int nb_aretes_reelles,
const IntTab & elem_aretes )
static

Idem que Scatter::calculer_espace_distant_sommets pour les aretes.

Definition at line 1201 of file Scatter.cpp.

◆ calculer_espace_distant_elements()

void Scatter::calculer_espace_distant_elements ( Domaine & dom)
static

Remplissage du tableau "espace_distant()" des elements dans les joints.

C'est ici qu'on determine les elements de joint en fonction de l'epaisseur de joint. Le tableau espace_distant contient les indices locaux des elements distants (a envoyer aux processeurs voisins) Pour un joint d'epaisseur 1, ce sont tous les elements voisins d'un sommet de joint (sommet sur un face de joint ou sommet isole). Pour un joint d'epaisseur n>1, ce sont tous les elements voisins d'un sommet d'un element du joint d'epaisseur n-1. Le voisinage s'entend sur le domaine global (toutes domaines confondues) Historique: premiere version B.Mathieu le 16/01/2007. Il existe une methode qui determine les elements distants au moment du decoupage (DomaineCutter::construire_elements_distants_ssdom). La methode ci-dessous a ete validee par comparaison avec la methode du decoupeur. Les sorties ont ete verifiees pour des epaisseurs jusqu'a 5 sur des maillages tetra. La difficulte de l'algorithme est d'obtenir les elements virtuels d'epaisseur > 1 qui se trouvent sur des sous-domaines qui ne sont pas en contact direct avec le sous-domaine local. Difficulte resolue par l'algorithme ci-dessous.

Definition at line 2061 of file Scatter.cpp.

◆ calculer_espace_distant_faces()

void Scatter::calculer_espace_distant_faces ( Domaine & domaine,
const int nb_faces_reelles,
const IntTab & elem_faces )
static

Idem que Scatter::calculer_espace_distant_sommets pour les faces.

Definition at line 1182 of file Scatter.cpp.

◆ calculer_espace_distant_sommets()

void Scatter::calculer_espace_distant_sommets ( Domaine & dom)
static

En fonction de l'espace distant des elements, calcule l'espace distant des sommets.

Pour chaque joint, on envoie au processeur voisin l'ensemble des sommets de tous les elements du joint. C'est le processeur proprietaire du sommet (plus petit pe qui le possede) qui le met dans son espace distant. Attention, on cree de nouveaux joints. On remplit les tableaux dom.faces_joint(i).joint_item(JOINT_ITEM::SOMMET).items_distants();

Definition at line 1157 of file Scatter.cpp.

◆ calculer_nb_items_virtuels()

void Scatter::calculer_nb_items_virtuels ( Joints & joints,
const JOINT_ITEM type_item )
static

Pour un item geometrique "type_item", remplit le champ nb_items_virtuels_ des joints en fonction du nombre d'items distants :

Le nombre d'items virtuels sur un joint i du processeur j est le nombre d'items distants du joint j sur le processeur i.

Definition at line 2698 of file Scatter.cpp.

◆ calculer_renum_items_communs()

void Scatter::calculer_renum_items_communs ( Joints & joints,
const JOINT_ITEM type_item )
static

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.

Definition at line 1222 of file Scatter.cpp.

◆ check_consistancy_remote_items()

void Scatter::check_consistancy_remote_items ( Domaine & dom,
const ArrOfInt & mergedDomaines )
static

Merged domains receive joint information from their neighbours to ensure that their common items (vertices) appear in the same order.

If it's not the case, the merged domain reorders its common items so that it matches the neighbour's order When 2 neighbouring domains have each been merged, only the processor with the lowest rank proceeds to reordering

Definition at line 270 of file Scatter.cpp.

◆ Chercher_Correspondance()

int Scatter::Chercher_Correspondance ( const DoubleTab & sommets1,
const DoubleTab & sommets2,
ArrOfInt & correspondance,
const double epsilon )
static

Construit le tableau "correspondance" tel que Pour 0 <= i < sommets2.

size_array(), Si sommet2(i) existe dans le tableau sommet1, alors sommets2(i, ...) == sommets1(correspondance[i], ...) Sinon correspondance[i] = -1 L'egalite est verifiee a epsilon pres en absolu (soit abs(x1-x2)<epsilon) L'algorithme est generalement en n1*log(n1) + n2*log(n1) (recherche basee sur un quicksort). En cas d'echec du tri, on utilise un algorithme en n1*n2. Les tableaux sommets1 et sommets2 doivent etre de dimension 2 Le tableau correspondance doit etre de taille sommets2.size_array(). Valeur de retour: nombre de sommets de sommets2 non trouves dans le tableau sommets1.

Definition at line 2370 of file Scatter.cpp.

◆ construire_correspondance_aretes_par_coordonnees()

void Scatter::construire_correspondance_aretes_par_coordonnees ( Domaine_VF & zvf)
static

Construction des tableaux joint_item(JOINT_ITEM::ARETE).items_communs de tous les joints du domaine.

Definition at line 2686 of file Scatter.cpp.

◆ construire_correspondance_items_par_coordonnees()

void Scatter::construire_correspondance_items_par_coordonnees ( Joints & joints,
const JOINT_ITEM type_item,
const DoubleTab & coord_items,
bool allow_resize = false )
static

Generic method to build geometrical item correspondance between the local and the remote processor around a joint.

See also construire_correspondance_sommets_par_coordonnees() for the very specific usage of allow_resize.

Definition at line 2486 of file Scatter.cpp.

◆ construire_correspondance_sommets_par_coordonnees()

void Scatter::construire_correspondance_sommets_par_coordonnees ( Domaine & dom,
bool allow_resize = false )
static

Construction des tableaux joint_item(JOINT_ITEM::SOMMET).items_communs de tous les joints du domaine(0) du domaine dom.

Parameters
allow_resizemay be set to True in some rare case (see Raffiner_isotrope_parallele) when we know that the current size of 'items_communs' is wrong because part of the domain was reszed / changed.

Definition at line 2678 of file Scatter.cpp.

◆ construire_espace_virtuel_traduction()

void Scatter::construire_espace_virtuel_traduction ( const MD_Vector & md_indice,
const MD_Vector & md_valeur,
IntTab & tableau,
const int error_is_fatal = 1 )
static

Construit la structure items_communs + espaces virtuels d'un tableau contenant des indices d'items geometriques, indexe par un autre type d'item geometrique.

Exemple: tableau indexe par md_indice, contenant des indices md_valeur: type_indice type_valeur exemple de tableau: element sommet domaine.les_elems() face sommet faces_sommets element face elem_faces face element faces_voisins element element ? element arete elem_aretes Nb_valeurs_max est le nombre d'items reels de type "type_valeur".

Definition at line 1624 of file Scatter.cpp.

◆ construire_md_vector()

void Scatter::construire_md_vector ( const Domaine & dom,
int nb_items_reels,
const JOINT_ITEM type_item,
MD_Vector & md_vector )
static

construction d'un MD_Vector_std a partir des informations de joint du domaine pour le type d'item demande.

Definition at line 1279 of file Scatter.cpp.

◆ construire_structures_paralleles()

void Scatter::construire_structures_paralleles ( Domaine & dom)
static

Construction des structures paralleles du domaine et du domaine (determination des elements distants en fonction de l'epaisseur de joint,.

determination des sommets distants, creation des sommets et des elements virtuels)

Definition at line 672 of file Scatter.cpp.

◆ corriger_espace_distant_elements_perio()

void Scatter::corriger_espace_distant_elements_perio ( Domaine & dom)
static

Les algorithmes actuels pour le periodique (assembleur P1B, OpDivElem P1B) ont besoin que pour chaque face virtuelle periodique, la face opposee soit.

aussi virtuelle. Ceci n'est pas assure a la sortie de la methode calculer_elements_distants. Cette methode ajoute aux elements distants les elements manquants pour assurer cette condition: Si un element est distant pour un PE donne est voisin d'une face periodique, on ajoute a l'espace distant l'element adjacent a la face opposee.

Definition at line 1911 of file Scatter.cpp.

◆ domaine()

Domaine & Scatter::domaine ( )

Renvoi le domaine associe.

Definition at line 73 of file Scatter.cpp.

◆ init_sequential_domain()

template<typename _SIZE_>
template void Scatter::init_sequential_domain ( Domaine_32_64< _SIZE_ > & dom)
static

Create parallel descriptors for the vertex and element arrays of the domain (necessary because Scatter is never invoked in sequential).

In 64bit the corresponding number of items might be big. This is here the main justification for the need of the class MD_Vector_seq which unique useful argument is the total number of items (with type trustIdType). Alternative would have been to make all members of MD_Vector_std compatible with trustIdType ...

Definition at line 2742 of file Scatter.cpp.

◆ interpreter()

Entree & Scatter::interpreter ( Entree & is)
overridevirtual

Lit et complete un domaine parallele selon les motcles lus dans le jeu de donnees.

Format: Scatter [debug] file_name domain_name On lit les sommets, les elements et les sommets et faces de joint, On construit les espaces distants et virtuels en fonction de l'epaisseur de joint.

Implements Interprete.

Definition at line 128 of file Scatter.cpp.

◆ lire_domaine()

void Scatter::lire_domaine ( Nom & nomentree)
virtual

Lit le domaine dans le fichier de nom "nomentree", de type LecFicDistribueBin ou LecFicDistribue.

Format attendu : Domaine::ReadOn

Reimplemented in ScatterMED.

Definition at line 468 of file Scatter.cpp.

◆ OBS_PTR()

Scatter::OBS_PTR ( Domaine )
protected

◆ read_domain_no_comm()

void Scatter::read_domain_no_comm ( Entree & fic,
bool & read_perio )
protected

Does the exact same thing as the readOn of the class Domaine but without collective communication.

Necessary when the processors don't have the same numbers of file to read

Definition at line 394 of file Scatter.cpp.

◆ reordonner_faces_de_joint()

void Scatter::reordonner_faces_de_joint ( Domaine & dom)
static

Reordonne les faces de joint de sorte qu'elles apparaissent dans le meme ordre sur chaque couple de processeur voisin.

En pratique, pour un couple pe1 < pe2, pe1 envoie ses faces de joint a pe2 et pe2 les traduit en indices de sommets locaux. Les faces de joint du PE2 ne sont donc pas utilisees.

Definition at line 1678 of file Scatter.cpp.

◆ trier_les_joints()

void Scatter::trier_les_joints ( Joints & joints)
static

Sort joints by increasing neighbor proc number.

Definition at line 712 of file Scatter.cpp.

◆ uninit_sequential_domain()

template<typename _SIZE_>
template void Scatter::uninit_sequential_domain ( Domaine_32_64< _SIZE_ > & dom)
static

methode utilisee par les interpretes qui modifient le domaine (sequentiel), detruit les descripteurs des sommets et elements pour permettre la modification de ces tableaux.

Definition at line 2757 of file Scatter.cpp.


The documentation for this class was generated from the following files:
  • /home/docs/checkouts/readthedocs.org/user_builds/cea-trust-platform/checkouts/v1.9.8/src/Kernel/Geometrie/Scatter.h
  • /home/docs/checkouts/readthedocs.org/user_builds/cea-trust-platform/checkouts/v1.9.8/src/Kernel/Geometrie/Scatter.cpp