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

Interface d'un service de synchronisation de variable. Plus de détails...

#include <arcane/core/IVariableSynchronizer.h>

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

Fonctions membres publiques

virtual IParallelMngparallelMng ()=0
 Gestionnaire parallèle associé
 
virtual const ItemGroupitemGroup ()=0
 Groupe d'entité servant à la synchronisation.
 
virtual void compute ()=0
 Recalcule les infos de synchronisation.
 
virtual void changeLocalIds (Int32ConstArrayView old_to_new_ids)=0
 Appelé lorsque les numéros locaux des entités sont modifiés.
 
virtual void synchronize (IVariable *var)=0
 Synchronise la variable var en mode bloquant.
 
virtual void synchronize (IVariable *var, Int32ConstArrayView local_ids)
 Synchronise la variable var sur les entités local_ids en mode bloquant.
 
virtual void synchronize (VariableCollection vars)=0
 Synchronise les variables vars en mode bloquant.
 
virtual void synchronize (VariableCollection vars, Int32ConstArrayView local_ids)
 Synchronise les variables vars en mode bloquant.
 
virtual Int32ConstArrayView communicatingRanks ()=0
 Rangs des sous-domaines avec lesquels on communique.
 
virtual Int32ConstArrayView sharedItems (Int32 index)=0
 Liste des ids locaux des entités partagées avec un sous-domaine.
 
virtual Int32ConstArrayView ghostItems (Int32 index)=0
 Liste des ids locaux des entités fantômes avec un sous-domaine.
 
virtual void synchronizeData (IData *data)=0
 Synchronise la donnée data.
 
virtual EventObservable< const VariableSynchronizerEventArgs & > & onSynchronized ()=0
 Evènement envoyé en début et fin de synchronisation.
 

Description détaillée

Interface d'un service de synchronisation de variable.

Cette classe est gérée par Arcane et il n'est en générale par nécessaire de l'utiliser directement. Si on souhaite syncrhoniser une variable, il suffit d'appeler la méthode VariableRef::synchronize().

Une instance de cette classe est créée via IParallelMng::createVariableSynchronizer(). Une instance est associée à un groupe d'entité. Il faut appeller la fonction compute() pour calculer les infos de synchronisation. Si les entités sont compactées, il faut appeler changeLocalIds().

Définition à la ligne 41 du fichier IVariableSynchronizer.h.

Documentation des constructeurs et destructeur

◆ ~IVariableSynchronizer()

virtual Arcane::IVariableSynchronizer::~IVariableSynchronizer ( )
inlinevirtual

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

Documentation des fonctions membres

◆ changeLocalIds()

virtual void Arcane::IVariableSynchronizer::changeLocalIds ( Int32ConstArrayView  old_to_new_ids)
pure virtual

Appelé lorsque les numéros locaux des entités sont modifiés.

Implémenté dans Arcane::VariableSynchronizer, et Arcane::NullVariableSynchronizer.

Référencé par Arcane::mesh::ItemFamily::compactVariablesAndGroups().

◆ communicatingRanks()

virtual Int32ConstArrayView Arcane::IVariableSynchronizer::communicatingRanks ( )
pure virtual

Rangs des sous-domaines avec lesquels on communique.

Implémenté dans Arcane::VariableSynchronizer, et Arcane::NullVariableSynchronizer.

◆ compute()

virtual void Arcane::IVariableSynchronizer::compute ( )
pure virtual

Recalcule les infos de synchronisation.

Cette opération est collective.

Cette fonction doit être rappelée si les entités de itemGroup() changent de propriétaire ou si le groupe lui-même évolue. TODO: appeler cette fonction automatiquement si besoin.

Implémenté dans Arcane::VariableSynchronizer, Arcane::NullVariableSynchronizer, et Arcane::MpiVariableSynchronizer.

◆ ghostItems()

virtual Int32ConstArrayView Arcane::IVariableSynchronizer::ghostItems ( Int32  index)
pure virtual

Liste des ids locaux des entités fantômes avec un sous-domaine.

Le rang du sous-domaine est celui de communicatingRanks()[index].

Implémenté dans Arcane::VariableSynchronizer, et Arcane::NullVariableSynchronizer.

◆ itemGroup()

virtual const ItemGroup & Arcane::IVariableSynchronizer::itemGroup ( )
pure virtual

Groupe d'entité servant à la synchronisation.

L'implémentation actuelle supporte uniquement le groupe de toutes les entités d'une famille.

Implémenté dans Arcane::VariableSynchronizer, et Arcane::NullVariableSynchronizer.

◆ onSynchronized()

virtual EventObservable< const VariableSynchronizerEventArgs & > & Arcane::IVariableSynchronizer::onSynchronized ( )
pure virtual

Evènement envoyé en début et fin de synchronisation.

Cet évènement est envoyé lors des appels aux méthodes de synchronisation synchronize(IVariable* var) et synchronize(VariableCollection vars). Si on souhaite être notifié des synchronisations pour toutes les instances de IVariableSynchronizer, il faut utiliser IVariableMng::synchronizerMng().

Implémenté dans Arcane::VariableSynchronizer, et Arcane::NullVariableSynchronizer.

◆ parallelMng()

virtual IParallelMng * Arcane::IVariableSynchronizer::parallelMng ( )
pure virtual

Gestionnaire parallèle associé

Implémenté dans Arcane::VariableSynchronizer, et Arcane::NullVariableSynchronizer.

◆ sharedItems()

virtual Int32ConstArrayView Arcane::IVariableSynchronizer::sharedItems ( Int32  index)
pure virtual

Liste des ids locaux des entités partagées avec un sous-domaine.

Le rang du sous-domaine est celui de communicatingRanks()[index].

Implémenté dans Arcane::VariableSynchronizer, et Arcane::NullVariableSynchronizer.

◆ synchronize() [1/4]

virtual void Arcane::IVariableSynchronizer::synchronize ( IVariable var)
pure virtual

Synchronise la variable var en mode bloquant.

Implémenté dans Arcane::VariableSynchronizer, et Arcane::NullVariableSynchronizer.

◆ synchronize() [2/4]

void Arcane::IVariableSynchronizer::synchronize ( IVariable var,
Int32ConstArrayView  local_ids 
)
virtual

Synchronise la variable var sur les entités local_ids en mode bloquant.

Seules les entités listées dans local_ids seront synchronisées. Attention : une entité présente dans cette liste sur un sous-domaine doit être présente dans cette liste pour tout autre sous-domaine qui possède cette entité.

Réimplémentée dans Arcane::VariableSynchronizer, et Arcane::NullVariableSynchronizer.

Définition à la ligne 296 du fichier InterfaceImpl.cc.

Références ARCANE_THROW.

◆ synchronize() [3/4]

virtual void Arcane::IVariableSynchronizer::synchronize ( VariableCollection  vars)
pure virtual

Synchronise les variables vars en mode bloquant.

Toutes les variables doivent être issues de la même famille et de ce groupe d'entité.

Implémenté dans Arcane::VariableSynchronizer, et Arcane::NullVariableSynchronizer.

◆ synchronize() [4/4]

void Arcane::IVariableSynchronizer::synchronize ( VariableCollection  vars,
Int32ConstArrayView  local_ids 
)
virtual

Synchronise les variables vars en mode bloquant.

Toutes les variables doivent être issues de la même famille et de ce groupe d'entité.

Seules les entités listées dans local_ids seront synchronisées. Attention : une entité présente dans cette liste sur un sous-domaine doit être présente dans cette liste pour tout autre sous-domaine qui possède cette entité.

Réimplémentée dans Arcane::VariableSynchronizer, et Arcane::NullVariableSynchronizer.

Définition à la ligne 302 du fichier InterfaceImpl.cc.

Références ARCANE_THROW.

◆ synchronizeData()

virtual void Arcane::IVariableSynchronizer::synchronizeData ( IData data)
pure virtual

Synchronise la donnée data.

La donnée data doit être associée à une variable pour laquelle il est valide d'appeler synchronize(). Cette méthode est interne à Arcane.

Implémenté dans Arcane::VariableSynchronizer, et Arcane::NullVariableSynchronizer.


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