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

Informations pour échanger des entités d'une famille donnée et leur caractéristiques. Plus de détails...

#include <arcane/mesh/ItemsExchangeInfo2.h>

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

Fonctions membres publiques

 ItemsExchangeInfo2 (IItemFamily *item_family)
 
void computeExchangeItems () override
 Détermine la liste des entités à échanger.
 
void setExchangeItems (ConstArrayView< std::set< Int32 > > items_to_send) override
 Positionne la liste des entités à échanger.
 
bool computeExchangeInfos () override
 Détermine les informations nécessaires pour les échanges.
 
void prepareToSend () override
 Prépare les structures d'envoie.
 
void releaseBuffer () override
 
void readAndAllocItems () override
 Après réception des messages, lit et créé les entités transférées.
 
void readAndAllocSubMeshItems () override
 
void readAndAllocItemRelations () override
 
void readGroups () override
 Après réception des messages, lit les groupes.
 
void readVariables () override
 Après réception des messages, lit les valeurs des variables.
 
void removeSentItems () override
 Supprime les entités envoyées.
 
void processExchange () override
 Envoie les messages d'échange.
 
void finalizeExchange () override
 Termine l'échange.
 
IItemFamilyitemFamily () override
 Famille associée.
 
void setParallelExchangerOption (const ParallelExchangerOptions &options) override
 Positionne les options utilisées lors de l'échange des entités.
 
void addSerializeStep (IItemFamilySerializeStep *step)
 
- 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 privées

void _addItemToSend (Int32 sub_domain_id, Item item)
 
bool _computeExchangeInfos ()
 
void _applySerializeStep (IItemFamilySerializeStep::ePhase phase, const ItemFamilySerializeArgs &args)
 
void _applyDeserializePhase (IItemFamilySerializeStep::ePhase phase)
 

Attributs privés

IItemFamilym_item_family
 
UniqueArray< SharedArray< Int32 > > m_send_local_ids
 Liste des entités à envoyer à chaque processeur.
 
UniqueArray< ItemGroupsSerializer2 * > m_groups_serializers
 Sérialiseur des groupes.
 
UniqueArray< IItemFamily * > m_families_to_exchange
 Liste des familles intégrées à l'échange.
 
Ref< IParallelExchangerm_exchanger
 
UniqueArray< SharedArray< Int32 > > m_receive_local_ids
 Liste des numéros locaux des entités reçues.
 
IItemFamilySerializerm_family_serializer
 
UniqueArray< IItemFamilySerializeStep * > m_serialize_steps
 
ParallelExchangerOptions m_exchanger_option
 

Membres hérités additionnels

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

Description détaillée

Informations pour échanger des entités d'une famille donnée et leur caractéristiques.

Une instance de cette classe contient toutes les informations pour échanger les entités du maillage m_mesh liées à la famille item_family.

L'échange des entités se comporte différemment suivant le genre (eItemKind) de l'entité. Pour les mailles, la description complète de la connectivité est envoyé au sous-domaine récepteur. Pour les noeuds (Node), arêtes (Edge) et faces (Face), la connectivité n'est pas envoyée car elle est donnée par les mailles. Il n'est donc pas possible de sérialiser ces trois types d'entités indépendamment des mailles (ce qui serait de toutes facons pas cohérents). Pour les particules, est envoyé en plus le numéro de la maille à laquelle chaque particule appartient.

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().

En plus des entités elles même, cette classe échange les valeurs des variables ainsi que les appartenances aux groupes.

Définition à la ligne 74 du fichier ItemsExchangeInfo2.h.

Documentation des constructeurs et destructeur

◆ ItemsExchangeInfo2()

Arcane::mesh::ItemsExchangeInfo2::ItemsExchangeInfo2 ( IItemFamily item_family)

Définition à la ligne 69 du fichier ItemsExchangeInfo2.cc.

◆ ~ItemsExchangeInfo2()

Arcane::mesh::ItemsExchangeInfo2::~ItemsExchangeInfo2 ( )

Définition à la ligne 89 du fichier ItemsExchangeInfo2.cc.

Documentation des fonctions membres

◆ _addItemToSend()

void Arcane::mesh::ItemsExchangeInfo2::_addItemToSend ( Int32  sub_domain_id,
Item  item 
)
inlineprivate

Définition à la ligne 102 du fichier ItemsExchangeInfo2.cc.

◆ _applyDeserializePhase()

void Arcane::mesh::ItemsExchangeInfo2::_applyDeserializePhase ( IItemFamilySerializeStep::ePhase  phase)
private

Définition à la ligne 567 du fichier ItemsExchangeInfo2.cc.

◆ _applySerializeStep()

void Arcane::mesh::ItemsExchangeInfo2::_applySerializeStep ( IItemFamilySerializeStep::ePhase  phase,
const ItemFamilySerializeArgs args 
)
private

Définition à la ligne 555 du fichier ItemsExchangeInfo2.cc.

◆ addSerializeStep()

void Arcane::mesh::ItemsExchangeInfo2::addSerializeStep ( IItemFamilySerializeStep step)

Définition à la ligne 546 du fichier ItemsExchangeInfo2.cc.

◆ computeExchangeInfos()

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

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

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

Implémente Arcane::IItemFamilyExchanger.

Définition à la ligne 115 du fichier ItemsExchangeInfo2.cc.

◆ computeExchangeItems()

void Arcane::mesh::ItemsExchangeInfo2::computeExchangeItems ( )
overridevirtual

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

TODO: mettre cette méthode ailleurs.

Implémente Arcane::IItemFamilyExchanger.

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

Références ARCANE_FATAL, ENUMERATE_ITEM, Arcane::IK_Particle, Arcane::Item::isOwn(), et Arcane::Item::owner().

◆ finalizeExchange()

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

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

Définition à la ligne 535 du fichier ItemsExchangeInfo2.cc.

◆ itemFamily()

IItemFamily * Arcane::mesh::ItemsExchangeInfo2::itemFamily ( )
inlineoverridevirtual

Famille associée.

Implémente Arcane::IItemFamilyExchanger.

Définition à la ligne 144 du fichier ItemsExchangeInfo2.h.

◆ prepareToSend()

void Arcane::mesh::ItemsExchangeInfo2::prepareToSend ( )
overridevirtual

Prépare les structures d'envoie.

Implémente Arcane::IItemFamilyExchanger.

Définition à la ligne 216 du fichier ItemsExchangeInfo2.cc.

Références Arcane::DT_Int64, et ENUMERATE_ITEM.

◆ processExchange()

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

Envoie les messages d'échange.

Implémente Arcane::IItemFamilyExchanger.

Définition à la ligne 526 du fichier ItemsExchangeInfo2.cc.

◆ readAndAllocItemRelations()

void Arcane::mesh::ItemsExchangeInfo2::readAndAllocItemRelations ( )
overridevirtual

Implémente Arcane::IItemFamilyExchanger.

Définition à la ligne 414 du fichier ItemsExchangeInfo2.cc.

◆ readAndAllocItems()

void Arcane::mesh::ItemsExchangeInfo2::readAndAllocItems ( )
overridevirtual

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.

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

Définition à la ligne 363 du fichier ItemsExchangeInfo2.cc.

◆ readAndAllocSubMeshItems()

void Arcane::mesh::ItemsExchangeInfo2::readAndAllocSubMeshItems ( )
overridevirtual

Implémente Arcane::IItemFamilyExchanger.

Définition à la ligne 384 du fichier ItemsExchangeInfo2.cc.

◆ readGroups()

void Arcane::mesh::ItemsExchangeInfo2::readGroups ( )
overridevirtual

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

Implémente Arcane::IItemFamilyExchanger.

Définition à la ligne 435 du fichier ItemsExchangeInfo2.cc.

Références ARCANE_FATAL.

◆ readVariables()

void Arcane::mesh::ItemsExchangeInfo2::readVariables ( )
overridevirtual

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

Implémente Arcane::IItemFamilyExchanger.

Définition à la ligne 468 du fichier ItemsExchangeInfo2.cc.

◆ releaseBuffer()

void Arcane::mesh::ItemsExchangeInfo2::releaseBuffer ( )
overridevirtual

Implémente Arcane::IItemFamilyExchanger.

Définition à la ligne 346 du fichier ItemsExchangeInfo2.cc.

◆ removeSentItems()

void Arcane::mesh::ItemsExchangeInfo2::removeSentItems ( )
overridevirtual

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.

En pratique, cette opération n'est utile que pour les particules.

Implémente Arcane::IItemFamilyExchanger.

Définition à la ligne 486 du fichier ItemsExchangeInfo2.cc.

Références ARCANE_CHECK_POINTER, ARCANE_FATAL, Arcane::IItemFamily::endUpdate(), Arcane::IItemFamily::name(), Arcane::IItemFamily::toParticleFamily(), et Arcane::IItemFamily::view().

◆ setExchangeItems()

void Arcane::mesh::ItemsExchangeInfo2::setExchangeItems ( ConstArrayView< std::set< Int32 > >  items_to_send)
overridevirtual

Positionne la liste des entités à échanger.

Implémente Arcane::IItemFamilyExchanger.

Définition à la ligne 148 du fichier ItemsExchangeInfo2.cc.

◆ setParallelExchangerOption()

void Arcane::mesh::ItemsExchangeInfo2::setParallelExchangerOption ( const ParallelExchangerOptions options)
overridevirtual

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

Implémente Arcane::IItemFamilyExchanger.

Définition à la ligne 596 du fichier ItemsExchangeInfo2.cc.

Documentation des données membres

◆ m_exchanger

Ref<IParallelExchanger> Arcane::mesh::ItemsExchangeInfo2::m_exchanger
private

Définition à la ligne 170 du fichier ItemsExchangeInfo2.h.

◆ m_exchanger_option

ParallelExchangerOptions Arcane::mesh::ItemsExchangeInfo2::m_exchanger_option
private

Définition à la ligne 181 du fichier ItemsExchangeInfo2.h.

◆ m_families_to_exchange

UniqueArray<IItemFamily*> Arcane::mesh::ItemsExchangeInfo2::m_families_to_exchange
private

Liste des familles intégrées à l'échange.

Il s'agit de m_item_family et des ces familles filles (à un seul niveau).

Définition à la ligne 168 du fichier ItemsExchangeInfo2.h.

◆ m_family_serializer

IItemFamilySerializer* Arcane::mesh::ItemsExchangeInfo2::m_family_serializer
private

Définition à la ligne 177 du fichier ItemsExchangeInfo2.h.

◆ m_groups_serializers

UniqueArray<ItemGroupsSerializer2*> Arcane::mesh::ItemsExchangeInfo2::m_groups_serializers
private

Sérialiseur des groupes.

Définition à la ligne 160 du fichier ItemsExchangeInfo2.h.

◆ m_item_family

IItemFamily* Arcane::mesh::ItemsExchangeInfo2::m_item_family
private

Définition à la ligne 154 du fichier ItemsExchangeInfo2.h.

◆ m_receive_local_ids

UniqueArray< SharedArray<Int32> > Arcane::mesh::ItemsExchangeInfo2::m_receive_local_ids
private

Liste des numéros locaux des entités reçues.

Définition à la ligne 175 du fichier ItemsExchangeInfo2.h.

◆ m_send_local_ids

UniqueArray< SharedArray<Int32> > Arcane::mesh::ItemsExchangeInfo2::m_send_local_ids
private

Liste des entités à envoyer à chaque processeur.

Définition à la ligne 157 du fichier ItemsExchangeInfo2.h.

◆ m_serialize_steps

UniqueArray<IItemFamilySerializeStep*> Arcane::mesh::ItemsExchangeInfo2::m_serialize_steps
private

Définition à la ligne 179 du fichier ItemsExchangeInfo2.h.


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