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

Informations pour un échange de maillage entre sous-domaines. Plus de détails...

#include <arcane/mesh/MeshExchanger.h>

+ Graphe d'héritage de Arcane::mesh::MeshExchanger:
+ Graphe de collaboration de Arcane::mesh::MeshExchanger:

Fonctions membres publiques

 MeshExchanger (DynamicMesh *mesh, ITimeStats *stats)
 
bool computeExchangeInfos () override
 Calcule les infos à envoyer/recevoir des autres sous-domaines.
 
void processExchange () override
 Procède à l'échange des informations entre les sous-domaines.
 
void removeNeededItems () override
 Supprime de ce sous-domaine les entités qui ne doivent plus s'y trouver suite à l'échange.
 
void allocateReceivedItems () override
 Alloue les entités réceptionnées depuis les autre sous-domaines.
 
void updateItemGroups () override
 Mise à jour des groupes d'entités.
 
void updateVariables () override
 Mise à jour des variables.
 
void finalizeExchange () override
 Finalise les échanges.
 
IPrimaryMeshmesh () const override
 Maillage associé à cet échangeur.
 
void build ()
 
IItemFamilyExchangerfindExchanger (IItemFamily *family) override
 Échangeur associé à la famille family. Lance une exception si non trouvé
 
ePhase phase () const override
 Phase de l'échange dans laquelle on se trouve.
 
- Fonctions membres publiques hérités de Arccore::TraceAccessor
 TraceAccessor (ITraceMng *m)
 Construit un accesseur via le gestionnaire de trace m.
 
 TraceAccessor (const TraceAccessor &rhs)
 Constructeur par recopie.
 
TraceAccessoroperator= (const TraceAccessor &rhs)
 Opérateur de recopie.
 
virtual ~TraceAccessor ()
 Libère les ressources.
 
ITraceMngtraceMng () const
 Gestionnaire de trace.
 
TraceMessage info () const
 Flot pour un message d'information.
 
TraceMessage pinfo () const
 Flot pour un message d'information en parallèle.
 
TraceMessage info (char category) const
 Flot pour un message d'information d'une catégorie donnée.
 
TraceMessage pinfo (char category) const
 Flot pour un message d'information parallèle d'une catégorie donnée.
 
TraceMessage info (bool v) const
 Flot pour un message d'information.
 
TraceMessage warning () const
 Flot pour un message d'avertissement.
 
TraceMessage pwarning () const
 
TraceMessage error () const
 Flot pour un message d'erreur.
 
TraceMessage perror () const
 
TraceMessage log () const
 Flot pour un message de log.
 
TraceMessage plog () const
 Flot pour un message de log.
 
TraceMessage logdate () const
 Flot pour un message de log précédé de la date.
 
TraceMessage fatal () const
 Flot pour un message d'erreur fatale.
 
TraceMessage pfatal () const
 Flot pour un message d'erreur fatale en parallèle.
 
TraceMessageDbg debug (Trace::eDebugLevel=Trace::Medium) const
 Flot pour un message de debug.
 
Trace::eDebugLevel configDbgLevel () const
 Niveau debug du fichier de configuration.
 
TraceMessage info (Int32 verbose_level) const
 Flot pour un message d'information d'un niveau donné
 
TraceMessage linfo () const
 Flot pour un message d'information avec le niveau d'information local à cette instance.
 
TraceMessage linfo (Int32 relative_level) const
 Flot pour un message d'information avec le niveau d'information local à cette instance.
 
void fatalMessage (const StandaloneTraceMessage &o) const
 

Fonctions membres protégées

void _setNextPhase (ePhase next_phase)
 
- Fonctions membres protégées hérités de Arccore::TraceAccessor
void _setLocalVerboseLevel (Int32 v)
 
Int32 _localVerboseLevel () const
 

Types privés

typedef std::map< IItemFamily *, IItemFamilyExchanger * > ItemFamilyExchangerMap
 

Fonctions membres privées

void _checkPhase (ePhase wanted_phase)
 
void _buildWithItemFamilyNetwork ()
 
void _addItemFamilyExchanger (IItemFamily *family)
 

Attributs privés

DynamicMeshm_mesh
 
List< IItemFamilyExchanger * > m_family_exchangers
 
ItemFamilyExchangerMap m_family_exchanger_map
 
ITimeStatsm_time_stats
 
ePhase m_phase
 
ParallelExchangerOptions m_exchanger_option
 

Membres hérités additionnels

- Types publics hérités de Arcane::IMeshExchanger
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...
 

Description détaillée

Informations pour un échange de maillage entre sous-domaines.

Définition à la ligne 46 du fichier MeshExchanger.h.

Documentation des définitions de type membres

◆ ItemFamilyExchangerMap

typedef std::map<IItemFamily*,IItemFamilyExchanger*> Arcane::mesh::MeshExchanger::ItemFamilyExchangerMap
private

Définition à la ligne 52 du fichier MeshExchanger.h.

Documentation des constructeurs et destructeur

◆ MeshExchanger()

Arcane::mesh::MeshExchanger::MeshExchanger ( DynamicMesh mesh,
ITimeStats stats 
)

Définition à la ligne 39 du fichier MeshExchanger.cc.

◆ ~MeshExchanger()

Arcane::mesh::MeshExchanger::~MeshExchanger ( )

Définition à la ligne 65 du fichier MeshExchanger.cc.

Documentation des fonctions membres

◆ _addItemFamilyExchanger()

void Arcane::mesh::MeshExchanger::_addItemFamilyExchanger ( IItemFamily family)
private

Définition à la ligne 184 du fichier MeshExchanger.cc.

◆ _buildWithItemFamilyNetwork()

void Arcane::mesh::MeshExchanger::_buildWithItemFamilyNetwork ( )
private

Définition à la ligne 167 du fichier MeshExchanger.cc.

◆ _checkPhase()

void Arcane::mesh::MeshExchanger::_checkPhase ( ePhase  wanted_phase)
private

Définition à la ligne 196 du fichier MeshExchanger.cc.

◆ _setNextPhase()

void Arcane::mesh::MeshExchanger::_setNextPhase ( ePhase  next_phase)
protected

Définition à la ligne 459 du fichier MeshExchanger.cc.

◆ allocateReceivedItems()

void Arcane::mesh::MeshExchanger::allocateReceivedItems ( )
overridevirtual

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émente Arcane::IMeshExchanger.

Définition à la ligne 341 du fichier MeshExchanger.cc.

◆ build()

void Arcane::mesh::MeshExchanger::build ( )

Définition à la ligne 78 du fichier MeshExchanger.cc.

◆ computeExchangeInfos()

bool Arcane::mesh::MeshExchanger::computeExchangeInfos ( )
overridevirtual

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émente Arcane::IMeshExchanger.

Définition à la ligne 207 du fichier MeshExchanger.cc.

Références Arcane::IItemFamily::allItems(), ENUMERATE_ITEM, Arcane::IItemFamily::itemsNewOwner(), Arcane::Item::mutableItemBase(), Arcane::IItemFamily::name(), Arcane::IItemFamily::notifyItemsOwnerChanged(), Arcane::MutableItemBase::setOwner(), et Arcane::IItemFamily::toParticleFamily().

◆ finalizeExchange()

void Arcane::mesh::MeshExchanger::finalizeExchange ( )
overridevirtual

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émente Arcane::IMeshExchanger.

Définition à la ligne 417 du fichier MeshExchanger.cc.

◆ findExchanger()

IItemFamilyExchanger * Arcane::mesh::MeshExchanger::findExchanger ( IItemFamily family)
overridevirtual

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

Implémente Arcane::IMeshExchanger.

Définition à la ligne 438 du fichier MeshExchanger.cc.

Références ARCANE_FATAL, et Arcane::IItemFamily::name().

◆ mesh()

IPrimaryMesh * Arcane::mesh::MeshExchanger::mesh ( ) const
overridevirtual

Maillage associé à cet échangeur.

Implémente Arcane::IMeshExchanger.

Définition à la ligne 450 du fichier MeshExchanger.cc.

◆ phase()

ePhase Arcane::mesh::MeshExchanger::phase ( ) const
inlineoverridevirtual

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

Implémente Arcane::IMeshExchanger.

Définition à la ligne 71 du fichier MeshExchanger.h.

◆ processExchange()

void Arcane::mesh::MeshExchanger::processExchange ( )
overridevirtual

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émente Arcane::IMeshExchanger.

Définition à la ligne 286 du fichier MeshExchanger.cc.

◆ removeNeededItems()

void Arcane::mesh::MeshExchanger::removeNeededItems ( )
overridevirtual

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émente Arcane::IMeshExchanger.

Définition à la ligne 308 du fichier MeshExchanger.cc.

◆ updateItemGroups()

void Arcane::mesh::MeshExchanger::updateItemGroups ( )
overridevirtual

Mise à jour des groupes d'entités.

Cette opération est collective.

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

Implémente Arcane::IMeshExchanger.

Définition à la ligne 383 du fichier MeshExchanger.cc.

◆ updateVariables()

void Arcane::mesh::MeshExchanger::updateVariables ( )
overridevirtual

Mise à jour des variables.

Cette opération est collective.

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

Implémente Arcane::IMeshExchanger.

Définition à la ligne 399 du fichier MeshExchanger.cc.

Documentation des données membres

◆ m_exchanger_option

ParallelExchangerOptions Arcane::mesh::MeshExchanger::m_exchanger_option
private

Définition à la ligne 84 du fichier MeshExchanger.h.

◆ m_family_exchanger_map

ItemFamilyExchangerMap Arcane::mesh::MeshExchanger::m_family_exchanger_map
private

Définition à la ligne 81 du fichier MeshExchanger.h.

◆ m_family_exchangers

List<IItemFamilyExchanger*> Arcane::mesh::MeshExchanger::m_family_exchangers
private

Définition à la ligne 80 du fichier MeshExchanger.h.

◆ m_mesh

DynamicMesh* Arcane::mesh::MeshExchanger::m_mesh
private

Définition à la ligne 79 du fichier MeshExchanger.h.

◆ m_phase

ePhase Arcane::mesh::MeshExchanger::m_phase
private

Définition à la ligne 83 du fichier MeshExchanger.h.

◆ m_time_stats

ITimeStats* Arcane::mesh::MeshExchanger::m_time_stats
private

Définition à la ligne 82 du fichier MeshExchanger.h.


La documentation de cette classe a été générée à partir des fichiers suivants :