21#ifndef Descripteur_FT_included
22#define Descripteur_FT_included
25#include <Schema_Comm.h>
26#include <TRUSTArrays.h>
28#include <MD_Vector_tools.h>
29#include <TRUSTTabs_forward.h>
30#include <TRUSTTabFT.h>
59 inline const ArrOfInt&
elements(
int pe_voisin)
const;
61 inline const VECT(ArrOfInt)& all_elements()
const
87 ArrOfIntFT pe_voisins_;
91 VECT(ArrOfInt) elements_;
96 enum Status { BAD=1, OK=2 } status_;
184 assert(status_ == OK);
193 return elements_[pe_voisin];
: Cette classe decrit un groupe de processeurs sur lesquels
void collecter_espace_virtuel(ArrOfDouble &tab, MD_Vector_tools::Operations_echange op) const
int check() const
Verification de la coherence de la structure (graphe des voisins et taille des espaces virtuels et di...
void echange_espace_virtuel(ArrOfDouble &tab) const
Descripteur_FT & espace_virtuel()
Renvoie une reference non-const a l'espace virtuel.
void echanger_elements(const ArrOfInt &nouveau_pe)
Correction des espaces distants et virtuels lors d'un changement de proprietaire (noeud ou facette).
VECT(ArrOfInt) blocs_to_recv_
DoubleVect tmp_doublevect_
const MD_Vector & get_md_vector() const
Descripteur_FT espace_virtuel_
Descripteur_FT & espace_distant()
Renvoie une reference non-const a l'espace distant.
void calcul_schema_comm(const int nb_items_tot)
const Schema_Comm & schema_comm() const
const Schema_Comm & schema_comm_inverse() const
enum Desc_Structure_FT::Status status_md_
Schema_Comm schema_comm_inverse_
Descripteur_FT espace_distant_
void remplir_element_pe(ArrOfInt &element_pe) const
remplit le tableau qui donne pour chaque element le numero du pe proprietaire.
: class Descripteur_FT Descripteur_FT stocke pour chaque PE une liste de numeros d'elements.
int contient_element(int pe, int element) const
Renvoie "pas zero" si l'element est deja dans le descripteur pour le pe donne, 0 sinon.
Descripteur_FT & operator=(const Descripteur_FT &)
void set_elements(int PE_voisin, const ArrOfInt &elements)
Remplace la liste des elements par celle en parametre.
void retirer_elements(const ArrOfInt &nouveau_pe, Descripteur_FT &elements_retires)
Pour chaque PE du descripteur, et pour 0 <= i < elements_[pe].
int ajoute_element(int PE_voisin, int element)
Ajoute l'element au tableau du PE_voisin.
const VECT(ArrOfInt) &all_elements() const
Descripteur_FT(const Descripteur_FT &)=default
const ArrOfInt & elements(int pe_voisin) const
Renvoie la liste des elements distants/virtuels du pe en parametre.
const ArrOfInt & pe_voisins() const
Renvoie la liste des PE pour lesquels la liste d'elements est non vide, dans l'ordre croissant des nu...
void calcul_liste_pe_voisins()
Calcule la liste des PEs dont la liste d'elements est non vide, tries dans l'ordre croissant de numer...
int ajoute_elements(int PE_voisin, const ArrOfInt &elements)
Ajoute l'element au tableau du PE_voisin.
: Cette classe est un OWN_PTR mais l'objet pointe est partage entre plusieurs
Objet_U()
Constructeur par defaut : attribue un numero d'identifiant unique a l'objet (object_id_),...