Arcane  v3.14.10.0
Documentation développeur
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 d'héritage de Arcane::IMeshExchanger:
+ 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

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

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

◆ 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

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

◆ 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

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

◆ findExchanger()

virtual IItemFamilyExchanger * Arcane::IMeshExchanger::findExchanger ( IItemFamily family)
pure virtual

Échangeur associé à la famille family. Lance une exception si non trouvé

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

◆ mesh()

virtual IPrimaryMesh * Arcane::IMeshExchanger::mesh ( ) const
pure virtual

Maillage associé à cet échangeur.

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

◆ phase()

virtual ePhase Arcane::IMeshExchanger::phase ( ) const
pure virtual

Phase de l'échange dans laquelle on se trouve.

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

◆ 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

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

◆ 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

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

◆ 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

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

◆ 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

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


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