Information for exchanging entities of a given family and their characteristics. Plus de détails...
#include <arcane/mesh/ItemsExchangeInfo2.h>
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. | |
| IItemFamily * | itemFamily () 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. | |
| TraceAccessor & | operator= (const TraceAccessor &rhs) |
| Opérateur de recopie. | |
| virtual | ~TraceAccessor () |
| Libère les ressources. | |
| ITraceMng * | traceMng () 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 | |
| IItemFamily * | m_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< IParallelExchanger > | m_exchanger |
| UniqueArray< SharedArray< Int32 > > | m_receive_local_ids |
| List of local IDs of received entities. | |
| IItemFamilySerializer * | m_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 |
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.
| Arcane::mesh::ItemsExchangeInfo2::ItemsExchangeInfo2 | ( | IItemFamily * | item_family | ) |
Définition à la ligne 69 du fichier ItemsExchangeInfo2.cc.
| Arcane::mesh::ItemsExchangeInfo2::~ItemsExchangeInfo2 | ( | ) |
Définition à la ligne 89 du fichier ItemsExchangeInfo2.cc.
|
inlineprivate |
Définition à la ligne 102 du fichier ItemsExchangeInfo2.cc.
|
private |
Définition à la ligne 562 du fichier ItemsExchangeInfo2.cc.
|
private |
Définition à la ligne 550 du fichier ItemsExchangeInfo2.cc.
| void Arcane::mesh::ItemsExchangeInfo2::addSerializeStep | ( | IItemFamilySerializeStep * | step | ) |
Définition à la ligne 541 du fichier ItemsExchangeInfo2.cc.
|
overridevirtual |
Determines the necessary information for the exchanges.
| true | if there is nothing to exchange |
| false | otherwise. |
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().
|
overridevirtual |
Determines the list of entities to exchange.
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().
|
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.
|
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().
|
overridevirtual |
Prepares the sending structures.
Implémente Arcane::IItemFamilyExchanger.
Définition à la ligne 215 du fichier ItemsExchangeInfo2.cc.
Références Arcane::IItemFamilySerializeStep::AC_BeginPrepareSend, Arcane::IItemFamilySerializeStep::AC_EndPrepareSend, Arcane::Array< DataType >::add(), Arcane::ISerializer::allocateBuffer(), Arcane::MessagePassing::ISerializeMessage::destination(), ENUMERATE_ITEM, Arcane::TraceAccessor::info(), Arcane::Int64, itemFamily(), m_groups_serializers, m_send_local_ids, Arcane::ISerializer::ModePut, Arcane::ISerializer::put(), Arcane::ISerializer::putInt64(), Arcane::ISerializer::putSpan(), Arcane::Array< DataType >::reserve(), Arcane::ISerializer::reserveInt64(), Arcane::ISerializer::reserveSpan(), Arcane::MessagePassing::ISerializeMessage::serializer(), Arcane::ISerializer::setMode(), Arcane::AbstractArray< T >::size(), Arcane::ItemVector::size(), Arcane::MeshToMeshTransposer::transpose(), et Arcane::MessagePassing::MessageRank::value().
Référencé par Arcane::mesh::ParticleFamily::exchangeParticles().
|
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().
|
overridevirtual |
Implémente Arcane::IItemFamilyExchanger.
Définition à la ligne 411 du fichier ItemsExchangeInfo2.cc.
|
overridevirtual |
After receiving messages, reads and creates the transferred entities.
This method does nothing for entities other than meshes and particles.
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().
|
overridevirtual |
Implémente Arcane::IItemFamilyExchanger.
Définition à la ligne 382 du fichier ItemsExchangeInfo2.cc.
|
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().
|
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().
|
overridevirtual |
Implémente Arcane::IItemFamilyExchanger.
Définition à la ligne 345 du fichier ItemsExchangeInfo2.cc.
|
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().
|
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.
|
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().
|
private |
Définition à la ligne 168 du fichier ItemsExchangeInfo2.h.
|
private |
Définition à la ligne 179 du fichier ItemsExchangeInfo2.h.
|
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().
|
private |
Définition à la ligne 175 du fichier ItemsExchangeInfo2.h.
|
private |
Serializer of groups.
Définition à la ligne 158 du fichier ItemsExchangeInfo2.h.
Référencé par computeExchangeInfos(), prepareToSend(), et readGroups().
|
private |
Définition à la ligne 152 du fichier ItemsExchangeInfo2.h.
|
private |
List of local IDs of received entities.
Définition à la ligne 173 du fichier ItemsExchangeInfo2.h.
Référencé par computeExchangeInfos(), et readAndAllocItems().
|
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().
|
private |
Définition à la ligne 177 du fichier ItemsExchangeInfo2.h.