Partitionneur_base_32_64#

#include <Partitionneur_base.h>

Classe de base des partitionneurs de domaine (pour decouper un maillage avant un calcul parallele).

How to cite this class in this doc#

:ref:`Partitionneur\_base\_32\_64 <class-template-partitionneur-base-32-64>`
[Partitionneur\_base\_32\_64](#class-template-partitionneur-base-32-64)

Detailed description#

Cette classe decrit l’interface commune a tous les partitionneurs: Exemple : // Creation d’un instance de la classe: Partitionneur_xxx part; // Association du domaine de calcul a decouper part.associer_domaine(domaine); // Initialisation des parametres specifiques a la classe derivee! fichier_data>> part; // Lecture des parametres dans le jdd ou part.initialiser(nb_parties); // Initialisation directe (depend de la classe) // Si besoin : part.declarer_bords_periodiques(liste_noms_bords_perio); // Construction du tableau de decoupage: ArrOfInt elem_part; part.construire_partition(elem_part); ATTENTION: en principe, l’implementation de la methode construire_partition() doit assurer que le decoupage est valide (application des corrections pour les bords periodiques et autres…)

Inherits from#

Inherited by#

List of Public Methods#

List of Public Static Methods#

List of Protected Methods#

Complete Member Function Documentation#

associer_domaine
virtual void Partitionneur_base_32_64<_SIZE_>::associer_domaine(const Domaine_t &domaine)=0
How to cite in this doc:
:ref:`virtual void Partitionneur_base_32_64<_SIZE_>::associer_domaine(const Domaine_t &domaine)=0 <public-virtual-void-partitionneur-base-32-64-size-associer-domaine-const-domaine-t-ref-domaine-equal-0>`
[virtual void Partitionneur_base_32_64<_SIZE_>::associer_domaine(const Domaine_t &domaine)=0](#public-virtual-void-partitionneur-base-32-64-size-associer-domaine-const-domaine-t-ref-domaine-equal-0)
construire_partition
virtual void Partitionneur_base_32_64<_SIZE_>::construire_partition(BigIntVect_ &elem_part, int &nb_parts_tot) const =0
Referenced By
How to cite in this doc:
:ref:`virtual void Partitionneur_base_32_64<_SIZE_>::construire_partition(BigIntVect_ &elem_part, int &nb_parts_tot) const =0 <public-virtual-void-partitionneur-base-32-64-size-construire-partition-bigintvect-ref-elem-part-int-ref-nb-parts-tot-const-equal-0>`
[virtual void Partitionneur_base_32_64<_SIZE_>::construire_partition(BigIntVect_ &elem_part, int &nb_parts_tot) const =0](#public-virtual-void-partitionneur-base-32-64-size-construire-partition-bigintvect-ref-elem-part-int-ref-nb-parts-tot-const-equal-0)
declarer_bords_periodiques
virtual void Partitionneur_base_32_64<_SIZE_>::declarer_bords_periodiques(const Noms &noms_bords_periodiques)
References
Referenced By
How to cite in this doc:
:ref:`virtual void Partitionneur_base_32_64<_SIZE_>::declarer_bords_periodiques(const Noms &noms_bords_periodiques) <public-virtual-void-partitionneur-base-32-64-size-declarer-bords-periodiques-const-noms-ref-noms-bords-periodiques>`
[virtual void Partitionneur_base_32_64<_SIZE_>::declarer_bords_periodiques(const Noms &noms_bords_periodiques)](#public-virtual-void-partitionneur-base-32-64-size-declarer-bords-periodiques-const-noms-ref-noms-bords-periodiques)
get_info
const Type_info * Partitionneur_base_32_64<_T_>::get_info() const override

Donne des informations sur le type de l’ Objet_U .

Reimplements:

How to cite in this doc:
:ref:`const Type_info * Partitionneur_base_32_64<_T_>::get_info() const override <public-const-type-info-ptr-partitionneur-base-32-64-t-get-info-const-override>`
[const Type_info * Partitionneur_base_32_64<_T_>::get_info() const override](#public-const-type-info-ptr-partitionneur-base-32-64-t-get-info-const-override)
info_obj
const Type_info Partitionneur_base_32_64<trustIdType>::info_obj("Partitionneur_base" "_64", 1, Partitionneur_base_32_64bases< trustIdType >)
How to cite in this doc:
:ref:`const Type_info Partitionneur_base_32_64<trustIdType>::info_obj("Partitionneur_base" "_64", 1, Partitionneur_base_32_64bases< trustIdType >) <public-const-type-info-partitionneur-base-32-64-trustidtype-info-obj-"partitionneur-base"-"-64"-1-partitionneur-base-32-64bases-trustidtype>`
[const Type_info Partitionneur_base_32_64<trustIdType>::info_obj("Partitionneur_base" "_64", 1, Partitionneur_base_32_64bases< trustIdType >)](#public-const-type-info-partitionneur-base-32-64-trustidtype-info-obj-"partitionneur-base"-"-64"-1-partitionneur-base-32-64bases-trustidtype)
info_obj
const Type_info Partitionneur_base_32_64<int>::info_obj("Partitionneur_base", 1, Partitionneur_base_32_64bases< int >)
How to cite in this doc:
:ref:`const Type_info Partitionneur_base_32_64<int>::info_obj("Partitionneur_base", 1, Partitionneur_base_32_64bases< int >) <public-const-type-info-partitionneur-base-32-64-int-info-obj-"partitionneur-base"-1-partitionneur-base-32-64bases-int>`
[const Type_info Partitionneur_base_32_64<int>::info_obj("Partitionneur_base", 1, Partitionneur_base_32_64bases< int >)](#public-const-type-info-partitionneur-base-32-64-int-info-obj-"partitionneur-base"-1-partitionneur-base-32-64bases-int)
lire_motcle_non_standard
int Partitionneur_base_32_64<_SIZE_>::lire_motcle_non_standard(const Motcle &, Entree &) override

Lecture des parametres de type non simple d’un objet_U a partir d’un flot d’entree.

Reimplements:

Referenced By
How to cite in this doc:
:ref:`int Partitionneur_base_32_64<_SIZE_>::lire_motcle_non_standard(const Motcle &, Entree &) override <public-int-partitionneur-base-32-64-size-lire-motcle-non-standard-const-motcle-ref-entree-ref-override>`
[int Partitionneur_base_32_64<_SIZE_>::lire_motcle_non_standard(const Motcle &, Entree &) override](#public-int-partitionneur-base-32-64-size-lire-motcle-non-standard-const-motcle-ref-entree-ref-override)
Partitionneur_base_32_64
Partitionneur_base_32_64<_T_>::Partitionneur_base_32_64()
How to cite in this doc:
:ref:`Partitionneur_base_32_64<_T_>::Partitionneur_base_32_64() <public-partitionneur-base-32-64-t-partitionneur-base-32-64>`
[Partitionneur_base_32_64<_T_>::Partitionneur_base_32_64()](#public-partitionneur-base-32-64-t-partitionneur-base-32-64)
set_param
virtual void Partitionneur_base_32_64<_SIZE_>::set_param(Param &param)=0
How to cite in this doc:
:ref:`virtual void Partitionneur_base_32_64<_SIZE_>::set_param(Param &param)=0 <public-virtual-void-partitionneur-base-32-64-size-set-param-param-ref-param-equal-0>`
[virtual void Partitionneur_base_32_64<_SIZE_>::set_param(Param &param)=0](#public-virtual-void-partitionneur-base-32-64-size-set-param-param-ref-param-equal-0)
~Partitionneur_base_32_64
Partitionneur_base_32_64<_T_>::~Partitionneur_base_32_64() override
How to cite in this doc:
:ref:`Partitionneur_base_32_64<_T_>::~Partitionneur_base_32_64() override <public-partitionneur-base-32-64-t-dtor-partitionneur-base-32-64-override>`
[Partitionneur_base_32_64<_T_>::~Partitionneur_base_32_64() override](#public-partitionneur-base-32-64-t-dtor-partitionneur-base-32-64-override)
calculer_graphe_connexions_periodiques
Partitionneur_base_32_64<_SIZE_>::int_t Partitionneur_base_32_64<_SIZE_>::calculer_graphe_connexions_periodiques(const Domaine_t &domaine, const Noms &liste_bords_periodiques, const Static_Int_Lists_t &som_elem, const int_t my_offset, Static_Int_Lists_t &graph)

Calcul d’un graphe de connectivite entre les elements lies par des faces periodiques.

Si l’element i est voisin de l’element j par une face periodique, alors il existe k tel que graph(i,k) = = j et il existe k2 tel que graph(j,k2) = = i.

References
Referenced By
How to cite in this doc:
:ref:`Partitionneur_base_32_64<_SIZE_>::int_t Partitionneur_base_32_64<_SIZE_>::calculer_graphe_connexions_periodiques(const Domaine_t &domaine, const Noms &liste_bords_periodiques, const Static_Int_Lists_t &som_elem, const int_t my_offset, Static_Int_Lists_t &graph) <public-static-partitionneur-base-32-64-size-int-t-partitionneur-base-32-64-size-calculer-graphe-connexions-periodiques-const-domaine-t-ref-domaine-const-noms-ref-liste-bords-periodiques-const-static-int-lists-t-ref-som-elem-const-int-t-my-offset-static-int-lists-t-ref-graph>`
[Partitionneur_base_32_64<_SIZE_>::int_t Partitionneur_base_32_64<_SIZE_>::calculer_graphe_connexions_periodiques(const Domaine_t &domaine, const Noms &liste_bords_periodiques, const Static_Int_Lists_t &som_elem, const int_t my_offset, Static_Int_Lists_t &graph)](#public-static-partitionneur-base-32-64-size-int-t-partitionneur-base-32-64-size-calculer-graphe-connexions-periodiques-const-domaine-t-ref-domaine-const-noms-ref-liste-bords-periodiques-const-static-int-lists-t-ref-som-elem-const-int-t-my-offset-static-int-lists-t-ref-graph)
corriger_bords_avec_graphe
Partitionneur_base_32_64<_SIZE_>::int_t Partitionneur_base_32_64<_SIZE_>::corriger_bords_avec_graphe(const Static_Int_Lists_t &graph_elements_perio, const Static_Int_Lists_t &som_elem, const Domaine_t &domaine, const Noms &liste_bords_perio, BigIntVect_ &elem_part)

corrige la partition elem_part pour qu’un element i se trouve sur la meme partition elem_part[i] que tous les elements auxquels il est lie dans le graphe

(elements d’indices graph_elements_perio(i, j) pour tout j).

References
How to cite in this doc:
:ref:`Partitionneur_base_32_64<_SIZE_>::int_t Partitionneur_base_32_64<_SIZE_>::corriger_bords_avec_graphe(const Static_Int_Lists_t &graph_elements_perio, const Static_Int_Lists_t &som_elem, const Domaine_t &domaine, const Noms &liste_bords_perio, BigIntVect_ &elem_part) <public-static-partitionneur-base-32-64-size-int-t-partitionneur-base-32-64-size-corriger-bords-avec-graphe-const-static-int-lists-t-ref-graph-elements-perio-const-static-int-lists-t-ref-som-elem-const-domaine-t-ref-domaine-const-noms-ref-liste-bords-perio-bigintvect-ref-elem-part>`
[Partitionneur_base_32_64<_SIZE_>::int_t Partitionneur_base_32_64<_SIZE_>::corriger_bords_avec_graphe(const Static_Int_Lists_t &graph_elements_perio, const Static_Int_Lists_t &som_elem, const Domaine_t &domaine, const Noms &liste_bords_perio, BigIntVect_ &elem_part)](#public-static-partitionneur-base-32-64-size-int-t-partitionneur-base-32-64-size-corriger-bords-avec-graphe-const-static-int-lists-t-ref-graph-elements-perio-const-static-int-lists-t-ref-som-elem-const-domaine-t-ref-domaine-const-noms-ref-liste-bords-perio-bigintvect-ref-elem-part)
corriger_bords_avec_liste
void Partitionneur_base_32_64<_SIZE_>::corriger_bords_avec_liste(const Domaine_t &dom, const Noms &liste_bords_periodiques, const int_t my_offset, BigIntVect_ &elem_part)

Calcul des graphes de connectivite elements periodiques et appel a corriger_periodique_avec_graphe.

(Methode a utiliser quand on ne dispose pas encore du graphe de de connectivite, si on a le graphe sous la main, appeler directement corriger_periodique_avec_graphe)

References
Referenced By
How to cite in this doc:
:ref:`void Partitionneur_base_32_64<_SIZE_>::corriger_bords_avec_liste(const Domaine_t &dom, const Noms &liste_bords_periodiques, const int_t my_offset, BigIntVect_ &elem_part) <public-static-void-partitionneur-base-32-64-size-corriger-bords-avec-liste-const-domaine-t-ref-dom-const-noms-ref-liste-bords-periodiques-const-int-t-my-offset-bigintvect-ref-elem-part>`
[void Partitionneur_base_32_64<_SIZE_>::corriger_bords_avec_liste(const Domaine_t &dom, const Noms &liste_bords_periodiques, const int_t my_offset, BigIntVect_ &elem_part)](#public-static-void-partitionneur-base-32-64-size-corriger-bords-avec-liste-const-domaine-t-ref-dom-const-noms-ref-liste-bords-periodiques-const-int-t-my-offset-bigintvect-ref-elem-part)
corriger_elem0_sur_proc0
void Partitionneur_base_32_64<_SIZE_>::corriger_elem0_sur_proc0(BigIntVect_ &elem_part)

corrige la partition pour que l’element 0 du domaine initial se trouve sur le premier sous - domaine de la partition.

On echange le premier sous - domaine et celui qui contient l’element 0.

References
Referenced By
How to cite in this doc:
:ref:`void Partitionneur_base_32_64<_SIZE_>::corriger_elem0_sur_proc0(BigIntVect_ &elem_part) <public-static-void-partitionneur-base-32-64-size-corriger-elem0-sur-proc0-bigintvect-ref-elem-part>`
[void Partitionneur_base_32_64<_SIZE_>::corriger_elem0_sur_proc0(BigIntVect_ &elem_part)](#public-static-void-partitionneur-base-32-64-size-corriger-elem0-sur-proc0-bigintvect-ref-elem-part)
corriger_multiperiodique
Partitionneur_base_32_64<_SIZE_>::int_t Partitionneur_base_32_64<_SIZE_>::corriger_multiperiodique(const Domaine_t &domaine, const Noms &liste_bords_perio, const ArrOfInt_t &renum_som_perio, const Static_Int_Lists_t &som_elem, BigIntVect_ &elem_part)

applique des corrections a elem_part pour que le multi - periodique soit correct :

Si un sommet appartient a plusieurs frontieres periodiques, tous les elements adjacents sont rattaches au meme processeur.

References
How to cite in this doc:
:ref:`Partitionneur_base_32_64<_SIZE_>::int_t Partitionneur_base_32_64<_SIZE_>::corriger_multiperiodique(const Domaine_t &domaine, const Noms &liste_bords_perio, const ArrOfInt_t &renum_som_perio, const Static_Int_Lists_t &som_elem, BigIntVect_ &elem_part) <public-static-partitionneur-base-32-64-size-int-t-partitionneur-base-32-64-size-corriger-multiperiodique-const-domaine-t-ref-domaine-const-noms-ref-liste-bords-perio-const-arrofint-t-ref-renum-som-perio-const-static-int-lists-t-ref-som-elem-bigintvect-ref-elem-part>`
[Partitionneur_base_32_64<_SIZE_>::int_t Partitionneur_base_32_64<_SIZE_>::corriger_multiperiodique(const Domaine_t &domaine, const Noms &liste_bords_perio, const ArrOfInt_t &renum_som_perio, const Static_Int_Lists_t &som_elem, BigIntVect_ &elem_part)](#public-static-partitionneur-base-32-64-size-int-t-partitionneur-base-32-64-size-corriger-multiperiodique-const-domaine-t-ref-domaine-const-noms-ref-liste-bords-perio-const-arrofint-t-ref-renum-som-perio-const-static-int-lists-t-ref-som-elem-bigintvect-ref-elem-part)
corriger_sommets_bord
Partitionneur_base_32_64<_SIZE_>::int_t Partitionneur_base_32_64<_SIZE_>::corriger_sommets_bord(const Domaine_t &domaine, const Noms &liste_bords_perio, const ArrOfInt_t &renum_som_perio, const Static_Int_Lists_t &som_elem, BigIntVect_ &elem_part)

Modifie elem_part pour assurer les proprietes suivantes : 1) Les elements possedant un sommet de bord sont associes.

a un processeur possedant une face de bord adjacente a ce sommet. 2) Si un processeur possede un sommet periodique reel, il possede forcement le renum_som_perio associe (donc un element qui possede ce sommet et un face periodique). Cette propriete est indispensable pour le periodique (existence de renum_som_perio pour tous les sommets). Pour les autres bords, cette correction est peut - etre inutile, mais pas sur. Sans cette correction, il peut exister des sommets de bord isoles (un processeur possede un sommet de bord mais aucune face). Si on cherche les sommets de bord en parcourant les faces de bord, c’est faux. Avec cette correction, cet algorithme est correct.

References
How to cite in this doc:
:ref:`Partitionneur_base_32_64<_SIZE_>::int_t Partitionneur_base_32_64<_SIZE_>::corriger_sommets_bord(const Domaine_t &domaine, const Noms &liste_bords_perio, const ArrOfInt_t &renum_som_perio, const Static_Int_Lists_t &som_elem, BigIntVect_ &elem_part) <public-static-partitionneur-base-32-64-size-int-t-partitionneur-base-32-64-size-corriger-sommets-bord-const-domaine-t-ref-domaine-const-noms-ref-liste-bords-perio-const-arrofint-t-ref-renum-som-perio-const-static-int-lists-t-ref-som-elem-bigintvect-ref-elem-part>`
[Partitionneur_base_32_64<_SIZE_>::int_t Partitionneur_base_32_64<_SIZE_>::corriger_sommets_bord(const Domaine_t &domaine, const Noms &liste_bords_perio, const ArrOfInt_t &renum_som_perio, const Static_Int_Lists_t &som_elem, BigIntVect_ &elem_part)](#public-static-partitionneur-base-32-64-size-int-t-partitionneur-base-32-64-size-corriger-sommets-bord-const-domaine-t-ref-domaine-const-noms-ref-liste-bords-perio-const-arrofint-t-ref-renum-som-perio-const-static-int-lists-t-ref-som-elem-bigintvect-ref-elem-part)
info
const Type_info * Partitionneur_base_32_64<_T_>::info()
How to cite in this doc:
:ref:`const Type_info * Partitionneur_base_32_64<_T_>::info() <public-static-const-type-info-ptr-partitionneur-base-32-64-t-info>`
[const Type_info * Partitionneur_base_32_64<_T_>::info()](#public-static-const-type-info-ptr-partitionneur-base-32-64-t-info)
self_cast
const Partitionneur_base_32_64<_T_> & Partitionneur_base_32_64<_T_>::self_cast(const Objet_U &)
How to cite in this doc:
:ref:`const Partitionneur_base_32_64<_T_> & Partitionneur_base_32_64<_T_>::self_cast(const Objet_U &) <public-static-const-partitionneur-base-32-64-t-ref-partitionneur-base-32-64-t-self-cast-const-objet-u-ref>`
[const Partitionneur_base_32_64<_T_> & Partitionneur_base_32_64<_T_>::self_cast(const Objet_U &)](#public-static-const-partitionneur-base-32-64-t-ref-partitionneur-base-32-64-t-self-cast-const-objet-u-ref)
self_cast
Partitionneur_base_32_64<_T_> & Partitionneur_base_32_64<_T_>::self_cast(Objet_U &)
How to cite in this doc:
:ref:`Partitionneur_base_32_64<_T_> & Partitionneur_base_32_64<_T_>::self_cast(Objet_U &) <public-static-partitionneur-base-32-64-t-ref-partitionneur-base-32-64-t-self-cast-objet-u-ref>`
[Partitionneur_base_32_64<_T_> & Partitionneur_base_32_64<_T_>::self_cast(Objet_U &)](#public-static-partitionneur-base-32-64-t-ref-partitionneur-base-32-64-t-self-cast-objet-u-ref)
printOn
Sortie & Partitionneur_base_32_64<_SIZE_>::printOn(Sortie &x) const override

Ecriture de l’objet sur un flot de sortie Methode a surcharger.

Reimplements:

How to cite in this doc:
:ref:`Sortie & Partitionneur_base_32_64<_SIZE_>::printOn(Sortie &x) const override <protected-sortie-ref-partitionneur-base-32-64-size-printon-sortie-ref-x-const-override>`
[Sortie & Partitionneur_base_32_64<_SIZE_>::printOn(Sortie &x) const override](#protected-sortie-ref-partitionneur-base-32-64-size-printon-sortie-ref-x-const-override)
readOn
Entree & Partitionneur_base_32_64<_SIZE_>::readOn(Entree &) override

Lecture d’un Objet_U sur un flot d’entree Methode a surcharger.

Reimplements:

References
Referenced By
How to cite in this doc:
:ref:`Entree & Partitionneur_base_32_64<_SIZE_>::readOn(Entree &) override <protected-entree-ref-partitionneur-base-32-64-size-readon-entree-ref-override>`
[Entree & Partitionneur_base_32_64<_SIZE_>::readOn(Entree &) override](#protected-entree-ref-partitionneur-base-32-64-size-readon-entree-ref-override)

Attributes Documentation#

info_obj (public)
const Type_info Partitionneur_base_32_64<_SIZE_>::info_obj
liste_bords_periodiques_ (protected)
Noms Partitionneur_base_32_64<_SIZE_>::liste_bords_periodiques_