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 |