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

Information for exchanging entities of a given family and their characteristics. 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
 Determines the list of entities to exchange.
void setExchangeItems (ConstArrayView< std::set< Int32 > > items_to_send) override
 Positionne la liste des entités à échanger.
bool computeExchangeInfos () override
 Determines the necessary information for the exchanges.
void prepareToSend () override
 Prepares the sending structures.
void releaseBuffer () override
void readAndAllocItems () override
 After receiving messages, reads and creates the transferred entities.
void readAndAllocSubMeshItems () override
void readAndAllocItemRelations () override
void readGroups () override
 After receiving messages, reads the groups.
void readVariables () override
 After receiving messages, reads the variable values.
void removeSentItems () override
 Deletes the sent entities.
void processExchange () override
 Sends the exchange messages.
void finalizeExchange () override
 Finalizes the exchange.
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 Arcane::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
 List of entities to send to each processor.
UniqueArray< ItemGroupsSerializer2 * > m_groups_serializers
 Serializer of groups.
UniqueArray< IItemFamily * > m_families_to_exchange
 List of families included in the exchange.
Ref< IParallelExchangerm_exchanger
UniqueArray< SharedArray< Int32 > > m_receive_local_ids
 List of local IDs of received entities.
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 Arcane::TraceAccessor
void _setLocalVerboseLevel (Int32 v)
Int32 _localVerboseLevel () const

Description détaillée

Information for exchanging entities of a given family and their characteristics.

An instance of this class contains all the information to exchange the mesh entities m_mesh linked to the family item_family.

The exchange of entities behaves differently depending on the kind (eItemKind) of the entity. For meshes, the complete description of the connectivity is sent to the receiving sub-domain. For nodes (Node), edges (Edge) and faces (Face), the connectivity is not sent because it is given by the meshes. It is therefore not possible to serialize these three types of entities independently of the meshes (which would not be consistent anyway). For particles, the mesh number to which each particle belongs is also sent.

When meshes or particles are sent, it is necessary to call the readAndAllocItems() method to create them, before calling readGroups() then readVariables().

In addition to the entities themselves, this class exchanges the values of variables as well as the group memberships.

Définition à la ligne 72 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 562 du fichier ItemsExchangeInfo2.cc.

◆ _applySerializeStep()

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

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

◆ addSerializeStep()

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

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

◆ computeExchangeInfos()

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

Determines the necessary information for the exchanges.

Valeurs retournées
trueif there is nothing to exchange
falseotherwise.

Implémente Arcane::IItemFamilyExchanger.

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

Références itemFamily(), m_families_to_exchange, m_groups_serializers, et m_receive_local_ids.

Référencé par Arcane::mesh::ParticleFamily::exchangeParticles().

Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ computeExchangeItems()

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

Determines the list of entities to exchange.

Avertissement
This method should only be used for particle families.

This operation uses the itemsOwner() variable and the owner() field of each entity to determine who each entity must be sent to. Therefore, this operation must be called before DynamicMesh::_setOwnerFromVariable() is called.

TODO: move this method elsewhere.

Implémente Arcane::IItemFamilyExchanger.

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

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

Référencé par Arcane::mesh::ParticleFamily::exchangeParticles().

Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ finalizeExchange()

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

Finalizes the exchange.

Performs the last updates following an exchange. This method is called when all entities and variables have been exchanged.

Implémente Arcane::IItemFamilyExchanger.

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

◆ itemFamily()

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

Famille associée.

Implémente Arcane::IItemFamilyExchanger.

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

Référencé par computeExchangeInfos(), computeExchangeItems(), prepareToSend(), readAndAllocItems(), readGroups(), et removeSentItems().

Voici le graphe des appelants de cette fonction :

◆ prepareToSend()

◆ processExchange()

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

Sends the exchange messages.

Implémente Arcane::IItemFamilyExchanger.

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

Référencé par Arcane::mesh::ParticleFamily::exchangeParticles().

Voici le graphe des appelants de cette fonction :

◆ readAndAllocItemRelations()

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

Implémente Arcane::IItemFamilyExchanger.

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

◆ readAndAllocItems()

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

After receiving messages, reads and creates the transferred entities.

This method does nothing for entities other than meshes and particles.

Avertissement
Before calling this method, it must be certain that the entities no longer belonging to this sub-domain have been destroyed

Implémente Arcane::IItemFamilyExchanger.

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

Références Arcane::MessagePassing::ISerializeMessage::destination(), Arcane::TraceAccessor::info(), itemFamily(), m_receive_local_ids, et Arcane::MessagePassing::ISerializeMessage::serializer().

Référencé par Arcane::mesh::ParticleFamily::exchangeParticles().

Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ readAndAllocSubMeshItems()

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

Implémente Arcane::IItemFamilyExchanger.

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

◆ readGroups()

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

After receiving messages, reads the groups.

Implémente Arcane::IItemFamilyExchanger.

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

Références ARCANE_FATAL, Arcane::MessagePassing::ISerializeMessage::destination(), Arcane::ISerializer::getInteger(), Arcane::TraceAccessor::info(), itemFamily(), m_groups_serializers, et Arcane::MessagePassing::ISerializeMessage::serializer().

Référencé par Arcane::mesh::ParticleFamily::exchangeParticles().

Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ readVariables()

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

After receiving messages, reads the variable values.

Implémente Arcane::IItemFamilyExchanger.

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

Références Arcane::TraceAccessor::info(), et m_families_to_exchange.

Référencé par Arcane::mesh::ParticleFamily::exchangeParticles().

Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ releaseBuffer()

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

Implémente Arcane::IItemFamilyExchanger.

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

◆ removeSentItems()

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

Deletes the sent entities.

This operation must only be performed for entities which do not depend on another entity. For example, it is impossible to directly delete nodes, because some meshes which are not sent may rely on them.

In practice, this operation is only useful for particles.

Implémente Arcane::IItemFamilyExchanger.

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

Références ARCANE_CHECK_POINTER, ARCANE_FATAL, Arcane::MessagePassing::ISerializeMessage::destination(), Arcane::IItemFamily::endUpdate(), Arcane::IParticleFamily::getEnableGhostItems(), Arcane::TraceAccessor::info(), itemFamily(), Arcane::ItemVectorView::localIds(), m_send_local_ids, Arcane::IItemFamily::name(), Arcane::IItemFamily::toParticleFamily(), Arcane::MeshToMeshTransposer::transpose(), Arcane::MessagePassing::MessageRank::value(), Arcane::IItemFamily::view(), et Arcane::ItemVector::view().

Référencé par Arcane::mesh::ParticleFamily::exchangeParticles().

Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ 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.

Références m_send_local_ids.

◆ 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 591 du fichier ItemsExchangeInfo2.cc.

Références Arcane::ParallelExchangerOptions::setVerbosityLevel(), et Arcane::ParallelExchangerOptions::verbosityLevel().

Voici le graphe d'appel pour cette fonction :

Documentation des données membres

◆ m_exchanger

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

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

◆ m_exchanger_option

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

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

◆ m_families_to_exchange

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

List of families included in the exchange.

It consists of m_item_family and these child families (at a single level).

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

Référencé par computeExchangeInfos(), et readVariables().

◆ m_family_serializer

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

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

◆ m_groups_serializers

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

Serializer of groups.

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

Référencé par computeExchangeInfos(), prepareToSend(), et readGroups().

◆ m_item_family

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

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

◆ m_receive_local_ids

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

List of local IDs of received entities.

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

Référencé par computeExchangeInfos(), et readAndAllocItems().

◆ m_send_local_ids

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

List of entities to send to each processor.

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

Référencé par computeExchangeItems(), prepareToSend(), removeSentItems(), et setExchangeItems().

◆ m_serialize_steps

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

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


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