Informations pour échanger des entités d'une famille donnée et leur caractéristiques. Plus de détails...
#include <arcane/mesh/ItemsExchangeInfo2.h>
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. | |
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 Arccore::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 |
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< IParallelExchanger > | m_exchanger |
UniqueArray< SharedArray< Int32 > > | m_receive_local_ids |
Liste des numéros locaux des entités reçues. | |
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 Arccore::TraceAccessor | |
void | _setLocalVerboseLevel (Int32 v) |
Int32 | _localVerboseLevel () const |
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.
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 567 du fichier ItemsExchangeInfo2.cc.
|
private |
Définition à la ligne 555 du fichier ItemsExchangeInfo2.cc.
void Arcane::mesh::ItemsExchangeInfo2::addSerializeStep | ( | IItemFamilySerializeStep * | step | ) |
Définition à la ligne 546 du fichier ItemsExchangeInfo2.cc.
|
overridevirtual |
Détermine les informations nécessaires pour les échanges.
true | s'il n'y a rien à échanger |
false | sinon. |
Implémente Arcane::IItemFamilyExchanger.
Définition à la ligne 115 du fichier ItemsExchangeInfo2.cc.
|
overridevirtual |
Détermine la liste des entités à échanger.
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().
|
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.
|
inlineoverridevirtual |
Famille associée.
Implémente Arcane::IItemFamilyExchanger.
Définition à la ligne 144 du fichier ItemsExchangeInfo2.h.
|
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.
|
overridevirtual |
Envoie les messages d'échange.
Implémente Arcane::IItemFamilyExchanger.
Définition à la ligne 526 du fichier ItemsExchangeInfo2.cc.
|
overridevirtual |
Implémente Arcane::IItemFamilyExchanger.
Définition à la ligne 414 du fichier ItemsExchangeInfo2.cc.
|
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.
Implémente Arcane::IItemFamilyExchanger.
Définition à la ligne 363 du fichier ItemsExchangeInfo2.cc.
|
overridevirtual |
Implémente Arcane::IItemFamilyExchanger.
Définition à la ligne 384 du fichier ItemsExchangeInfo2.cc.
|
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.
|
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.
|
overridevirtual |
Implémente Arcane::IItemFamilyExchanger.
Définition à la ligne 346 du fichier ItemsExchangeInfo2.cc.
|
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().
|
overridevirtual |
Positionne la liste des entités à échanger.
Implémente Arcane::IItemFamilyExchanger.
Définition à la ligne 148 du fichier ItemsExchangeInfo2.cc.
|
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.
|
private |
Définition à la ligne 170 du fichier ItemsExchangeInfo2.h.
|
private |
Définition à la ligne 181 du fichier ItemsExchangeInfo2.h.
|
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.
|
private |
Définition à la ligne 177 du fichier ItemsExchangeInfo2.h.
|
private |
Sérialiseur des groupes.
Définition à la ligne 160 du fichier ItemsExchangeInfo2.h.
|
private |
Définition à la ligne 154 du fichier ItemsExchangeInfo2.h.
|
private |
Liste des numéros locaux des entités reçues.
Définition à la ligne 175 du fichier ItemsExchangeInfo2.h.
|
private |
Liste des entités à envoyer à chaque processeur.
Définition à la ligne 157 du fichier ItemsExchangeInfo2.h.
|
private |
Définition à la ligne 179 du fichier ItemsExchangeInfo2.h.