Gestion d'un échange de maillage entre sous-domaines. Plus de détails...
#include <arcane/core/IMeshExchanger.h>
Types publics | |
enum class | ePhase { Init = 0 , ComputeInfos , ProcessExchange , RemoveItems , AllocateItems , UpdateItemGroups , UpdateVariables , Finalize , Ended } |
Indique les différentes phases de l'échange. Plus de détails... | |
Fonctions membres publiques | |
virtual bool | computeExchangeInfos ()=0 |
Calcule les infos à envoyer/recevoir des autres sous-domaines. | |
virtual void | processExchange ()=0 |
Procède à l'échange des informations entre les sous-domaines. | |
virtual void | removeNeededItems ()=0 |
Supprime de ce sous-domaine les entités qui ne doivent plus s'y trouver suite à l'échange. | |
virtual void | allocateReceivedItems ()=0 |
Alloue les entités réceptionnées depuis les autre sous-domaines. | |
virtual void | updateItemGroups ()=0 |
Mise à jour des groupes d'entités. | |
virtual void | updateVariables ()=0 |
Mise à jour des variables. | |
virtual void | finalizeExchange ()=0 |
Finalise les échanges. | |
virtual IPrimaryMesh * | mesh () const =0 |
Maillage associé à cet échangeur. | |
virtual IItemFamilyExchanger * | findExchanger (IItemFamily *family)=0 |
Échangeur associé à la famille family. Lance une exception si non trouvé | |
virtual ePhase | phase () const =0 |
Phase de l'échange dans laquelle on se trouve. | |
Gestion d'un échange de maillage entre sous-domaines.
Un échange se fait en plusieurs phases, qui doivent être effectuées dans l'ordre dicté par l'énumération ePhase.
Définition à la ligne 41 du fichier IMeshExchanger.h.
|
strong |
Indique les différentes phases de l'échange.
Définition à la ligne 45 du fichier IMeshExchanger.h.
|
inlinevirtual |
Définition à la ligne 59 du fichier IMeshExchanger.h.
|
pure virtual |
|
pure virtual |
Calcule les infos à envoyer/recevoir des autres sous-domaines.
Cette opération est collective.
Le calcul des informations à envoyer se fait en connaissant le nouveau propriétaire de chaque entité. Cette information est conservée dans la variable IItemFamily::itemsNewOwner(). Par exemple, une maille sera migrée si le nouveau propriétaire est différent du propriétaire actuel (qui est donné par Item::owner()).
Après appel à cette méthode chaque entité du maillage est modifiée comme suit:
Retourne true s'il n'y a aucun échange à effectuer.
|
pure virtual |
|
pure virtual |
Procède à l'échange des informations entre les sous-domaines.
Cette opération est collective.
Cette opération ne fait aucune modification sur le maillage. Elle se contente juste d'envoyer et de recevoir les informations nécesaire pour la mise à jour du maillage.
|
pure virtual |
Supprime de ce sous-domaine les entités qui ne doivent plus s'y trouver suite à l'échange.
Toutes les entités marquées avec le flag ItemFlags::II_NeedRemove sont supprimées.
|
pure virtual |
|
pure virtual |