16#ifndef Scatter_included
17#define Scatter_included
19#include <TRUSTTabs_forward.h>
20#include <Interprete.h>
23#include <Domaine_forward.h>
35 static int Chercher_Correspondance(
const DoubleTab& sommets1,
const DoubleTab& sommets2, ArrOfInt& correspondance,
const double epsilon);
45 const int nb_items_reels,
46 const ArrsOfInt& items_to_send,
47 const JOINT_ITEM type_item);
50 const JOINT_ITEM type_item);
71 template <
typename _SIZE_>
73 template <
typename _SIZE_>
classe Domaine_32_64 un Domaine est un maillage compose d'un ensemble d'elements geometriques de meme...
Classe de base des objets "interprete".
: Cette classe est un OWN_PTR mais l'objet pointe est partage entre plusieurs
class Nom Une chaine de caractere pour nommer les objets de TRUST
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 p...
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 ajouter_joints(Domaine &domaine, ArrOfInt &pe_voisins)
Ajoute des joints avec tous les pe de pe_voisins.
static void init_sequential_domain(Domaine_32_64< _SIZE_ > &dom)
Create parallel descriptors for the vertex and element arrays of the domain (necessary because Scatte...
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 ge...
static void calculer_espace_distant_sommets(Domaine &dom)
En fonction de l'espace distant des elements, calcule l'espace distant des sommets.
Entree & interpreter(Entree &) override
Lit et complete un domaine parallele selon les motcles lus dans le jeu de donnees.
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 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 commu...
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 ar...
static void construire_structures_paralleles(Domaine &dom)
Construction des structures paralleles du domaine et du domaine (determination des elements distants ...
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 n...
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.
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 ...
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(...
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 dem...
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 (ver...
static void corriger_espace_distant_elements_perio(Domaine &dom)
Les algorithmes actuels pour le periodique (assembleur P1B, OpDivElem P1B) ont besoin que pour chaque...
Domaine & domaine()
Renvoi le domaine associe.
static void trier_les_joints(Joints &joints)
Sort joints by increasing neighbor proc number.
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.
virtual void lire_domaine(Nom &fil)
Lit le domaine dans le fichier de nom "nomentree", de type LecFicDistribueBin ou LecFicDistribue.
static void uninit_sequential_domain(Domaine_32_64< _SIZE_ > &dom)
methode utilisee par les interpretes qui modifient le domaine (sequentiel), detruit les descripteurs ...
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.