Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::IItemFamilyExchangerabstract

Échange des entités et leurs caractéristiques pour une famille donnée. Plus de détails...

#include <arcane/core/IItemFamilyExchanger.h>

+ Graphe d'héritage de Arcane::IItemFamilyExchanger:
+ Graphe de collaboration de Arcane::IItemFamilyExchanger:

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 IItemFamilyitemFamily ()=0
 Famille associée.
 
virtual void setParallelExchangerOption (const ParallelExchangerOptions &options)=0
 Positionne les options utilisées lors de l'échange des entités.
 

Description détaillée

É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.

Documentation des constructeurs et destructeur

◆ ~IItemFamilyExchanger()

virtual Arcane::IItemFamilyExchanger::~IItemFamilyExchanger ( )
inlinevirtual

Définition à la ligne 68 du fichier IItemFamilyExchanger.h.

Documentation des fonctions membres

◆ computeExchangeInfos()

virtual bool Arcane::IItemFamilyExchanger::computeExchangeInfos ( )
pure virtual

Détermine les informations nécessaires pour les échanges.

Valeurs retournées
trues'il n'y a rien à échanger
falsesinon.

Implémenté dans Arcane::mesh::ItemsExchangeInfo2.

◆ computeExchangeItems()

virtual void Arcane::IItemFamilyExchanger::computeExchangeItems ( )
pure virtual

Détermine la liste des entités à échanger.

Avertissement
Cette méthode ne doit être utilisée que pour les familles de particules.

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é.

A faire:
A supprimer

Implémenté dans Arcane::mesh::ItemsExchangeInfo2.

◆ finalizeExchange()

virtual void Arcane::IItemFamilyExchanger::finalizeExchange ( )
pure virtual

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.

◆ itemFamily()

virtual IItemFamily * Arcane::IItemFamilyExchanger::itemFamily ( )
pure virtual

Famille associée.

Implémenté dans Arcane::mesh::ItemsExchangeInfo2.

◆ prepareToSend()

virtual void Arcane::IItemFamilyExchanger::prepareToSend ( )
pure virtual

Prépare les structures d'envoie.

Implémenté dans Arcane::mesh::ItemsExchangeInfo2.

◆ processExchange()

virtual void Arcane::IItemFamilyExchanger::processExchange ( )
pure virtual

Envoie les messages d'échange.

Implémenté dans Arcane::mesh::ItemsExchangeInfo2.

◆ readAndAllocItems()

virtual void Arcane::IItemFamilyExchanger::readAndAllocItems ( )
pure virtual

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.

Avertissement
Avant d'appeler cette méthode, il faut être certain que les entités n'appartenant plus à ce sous-domaine ont été détruites

Implémenté dans Arcane::mesh::ItemsExchangeInfo2.

◆ readGroups()

virtual void Arcane::IItemFamilyExchanger::readGroups ( )
pure virtual

Après réception des messages, lit les groupes.

Implémenté dans Arcane::mesh::ItemsExchangeInfo2.

◆ readVariables()

virtual void Arcane::IItemFamilyExchanger::readVariables ( )
pure virtual

Après réception des messages, lit les valeurs des variables.

Implémenté dans Arcane::mesh::ItemsExchangeInfo2.

◆ removeSentItems()

virtual void Arcane::IItemFamilyExchanger::removeSentItems ( )
pure virtual

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.

Avertissement
Cette opération n'est valide que pour les particules sans notion de particule fantôme.
A faire:
A supprimer

Implémenté dans Arcane::mesh::ItemsExchangeInfo2.

◆ setExchangeItems()

virtual void Arcane::IItemFamilyExchanger::setExchangeItems ( ConstArrayView< std::set< Int32 > >  items_to_send)
pure virtual

Positionne la liste des entités à échanger.

Implémenté dans Arcane::mesh::ItemsExchangeInfo2.

◆ setParallelExchangerOption()

virtual void Arcane::IItemFamilyExchanger::setParallelExchangerOption ( const ParallelExchangerOptions options)
pure virtual

Positionne les options utilisées lors de l'échange des entités.

Implémenté dans Arcane::mesh::ItemsExchangeInfo2.


La documentation de cette classe a été générée à partir du fichier suivant :