Échange des entités et leurs caractéristiques pour une famille donnée. Plus de détails...
#include <arcane/core/IItemFamilyExchanger.h>
Fonctions membres publiques | |
virtual void | computeExchangeItems ()=0 |
Détermine la liste des entités à échanger. | |
virtual void | setExchangeItems (ConstArrayView< std::set< Int32 > > items_to_send)=0 |
Positionne la liste des entités à échanger. | |
virtual bool | computeExchangeInfos ()=0 |
Détermine les informations nécessaires pour les échanges. | |
virtual void | prepareToSend ()=0 |
Prépare les structures d'envoie. | |
virtual void | releaseBuffer ()=0 |
virtual void | readAndAllocItems ()=0 |
Après réception des messages, lit et créé les entités transférées. | |
virtual void | readAndAllocSubMeshItems ()=0 |
virtual void | readAndAllocItemRelations ()=0 |
virtual void | readGroups ()=0 |
Après réception des messages, lit les groupes. | |
virtual void | readVariables ()=0 |
Après réception des messages, lit les valeurs des variables. | |
virtual void | removeSentItems ()=0 |
Supprime les entités envoyées. | |
virtual void | processExchange ()=0 |
Envoie les messages d'échange. | |
virtual void | finalizeExchange ()=0 |
Termine l'échange. | |
virtual IItemFamily * | itemFamily ()=0 |
Famille associée. | |
virtual void | setParallelExchangerOption (const ParallelExchangerOptions &options)=0 |
Positionne les options utilisées lors de l'échange des entités. | |
Échange des entités et leurs caractéristiques pour une famille donnée.
Cette classe gère l'échange d'entités entre les sous-domaines. Elle est utilisée par exemple lors d'un repartitionnement. En général cette classe n'est pas utilisée directement (sauf pour spécifier les entités à échanger) mais via l'interface IMeshExchanger.
L'utilisateur de cette classe doit commencer par spécifier la liste des entités à envoyer à chaque sous-domaine via la méthode setExchangeItems().
L'échange d'entités se fait en plusieurs étapes comme indiquée dans IMeshExchanger.
La sérialisation proprement dite des entités se fait en trois phases successives: les entités, les groupes et les variables. La désérialisation se fait dans le même ordre. En effet, il est nécessaire pour désérialiser les variables de connaitre les groupes et pour désérialiser les groupes de connaître les entités.
Lorsque des mailles ou des particules sont envoyées, il faut appeler la méthode readAndAllocItems() pour les créér, avant d'appeler readGroups() puis readVariables().
Définition à la ligne 64 du fichier IItemFamilyExchanger.h.
|
inlinevirtual |
Définition à la ligne 68 du fichier IItemFamilyExchanger.h.
Détermine les informations nécessaires pour les échanges.
true | s'il n'y a rien à échanger |
false | sinon. |
Implémenté dans Arcane::mesh::ItemsExchangeInfo2.
Détermine la liste des entités à échanger.
Cette opération se sert de la variable itemsOwner() et du champ owner() de chaque entité pour déterminer à qui chaque entité doit être envoyée. Par conséquent, il faut appeler cette opération avant que DynamicMesh::_setOwnerFromVariable() ne soit appelé.
Implémenté dans Arcane::mesh::ItemsExchangeInfo2.
Termine l'échange.
Effectue les dernières mises à jour suite à un échange. Cette méthode est appelée lorsque toutes les entités et les variables ont été échangées.
Implémenté dans Arcane::mesh::ItemsExchangeInfo2.
|
pure virtual |
Famille associée.
Implémenté dans Arcane::mesh::ItemsExchangeInfo2.
Prépare les structures d'envoie.
Implémenté dans Arcane::mesh::ItemsExchangeInfo2.
Envoie les messages d'échange.
Implémenté dans Arcane::mesh::ItemsExchangeInfo2.
Après réception des messages, lit et créé les entités transférées.
Cette méthode ne fait rien pour les entités autre que pour les mailles et les particules, pour la gestion legacy. Avec le graphe des familles ItemFamilyNetwork, cette méthode crée les items et leur dépendances (ie connectivités descendantes). Cela implique de séparer le traitement des sous-items (sous-maillages) et des relations (connectivités ascendantes ou dof), qui ne peuvent être traités tant que tous les items ne sont pas créés.
Implémenté dans Arcane::mesh::ItemsExchangeInfo2.
Après réception des messages, lit les groupes.
Implémenté dans Arcane::mesh::ItemsExchangeInfo2.
Après réception des messages, lit les valeurs des variables.
Implémenté dans Arcane::mesh::ItemsExchangeInfo2.
Supprime les entités envoyées.
Cette opération ne doit se faire que pour les entités qui ne dépendent pas d'une autre entité. Par exemple, il est impossible de supprimer directement les noeuds, car certaines mailles qui ne sont pas envoyées peuvent reposer dessus.
Implémenté dans Arcane::mesh::ItemsExchangeInfo2.
|
pure virtual |
Positionne la liste des entités à échanger.
Implémenté dans Arcane::mesh::ItemsExchangeInfo2.
|
pure virtual |
Positionne les options utilisées lors de l'échange des entités.
Implémenté dans Arcane::mesh::ItemsExchangeInfo2.