Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::IMeshExchangerabstract

Gestion d'un échange de maillage entre sous-domaines. Plus de détails...

#include <arcane/core/IMeshExchanger.h>

+ Graphe de collaboration de Arcane::IMeshExchanger:

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 IPrimaryMeshmesh () const =0
 Maillage associé à cet échangeur.
 
virtual IItemFamilyExchangerfindExchanger (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.
 

Description détaillée

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.

Documentation des énumérations membres

◆ ePhase

enum class Arcane::IMeshExchanger::ePhase
strong

Indique les différentes phases de l'échange.

Définition à la ligne 45 du fichier IMeshExchanger.h.

Documentation des constructeurs et destructeur

◆ ~IMeshExchanger()

virtual Arcane::IMeshExchanger::~IMeshExchanger ( )
inlinevirtual

Définition à la ligne 59 du fichier IMeshExchanger.h.

Documentation des fonctions membres

◆ allocateReceivedItems()

virtual void Arcane::IMeshExchanger::allocateReceivedItems ( )
pure virtual

Alloue les entités réceptionnées depuis les autre sous-domaines.

Cette opération est collective.

Précondition
phase()==ePhase::AllocateItems
Postcondition
phase()==ePhase::UpdateItemGroups

◆ computeExchangeInfos()

virtual bool Arcane::IMeshExchanger::computeExchangeInfos ( )
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:

  • le champ Item::owner() indique le nouveau propriétaire.
  • les entités qui seront supprimées après l'échange sont marquées par le flag ItemFlags::II_NeedRemove (sauf pour l'instant pour les particules sans notion de fantôme mais c'est temporaire).

Retourne true s'il n'y a aucun échange à effectuer.

Précondition
phase()==ePhase::ComputeInfos
Postcondition
phase()==ePhase::ProcessExchange

◆ finalizeExchange()

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

Finalise les échanges.

Cette opération est collective.

Cette méthode effectue les dernières opérations nécessaires lors de l'échange.

Précondition
phase()==ePhase::Finalize
Postcondition
phase()==ePhase::Ended

◆ processExchange()

virtual void Arcane::IMeshExchanger::processExchange ( )
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.

Précondition
phase()==ePhase::ProcessExchange
Postcondition
phase()==ePhase::RemoveItems

◆ removeNeededItems()

virtual void Arcane::IMeshExchanger::removeNeededItems ( )
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.

Précondition
phase()==ePhase::RemoveItems
Postcondition
phase()==ePhase::AllocateItems

◆ updateItemGroups()

virtual void Arcane::IMeshExchanger::updateItemGroups ( )
pure virtual

Mise à jour des groupes d'entités.

Cette opération est collective.

Précondition
phase()==ePhase::UpdateItemGroups
Postcondition
phase()==ePhase::UpdateVariables

◆ updateVariables()

virtual void Arcane::IMeshExchanger::updateVariables ( )
pure virtual

Mise à jour des variables.

Cette opération est collective.

Précondition
phase()==ePhase::UpdateVariables
Postcondition
phase()==ePhase::Finalize

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