Informations pour un échange de maillage entre sous-domaines. Plus de détails...
#include <arcane/mesh/MeshExchanger.h>
Fonctions membres publiques | |
MeshExchanger (DynamicMesh *mesh, ITimeStats *stats) | |
bool | computeExchangeInfos () override |
Calcule les infos à envoyer/recevoir des autres sous-domaines. | |
void | processExchange () override |
Procède à l'échange des informations entre les sous-domaines. | |
void | removeNeededItems () override |
Supprime de ce sous-domaine les entités qui ne doivent plus s'y trouver suite à l'échange. | |
void | allocateReceivedItems () override |
Alloue les entités réceptionnées depuis les autre sous-domaines. | |
void | updateItemGroups () override |
Mise à jour des groupes d'entités. | |
void | updateVariables () override |
Mise à jour des variables. | |
void | finalizeExchange () override |
Finalise les échanges. | |
IPrimaryMesh * | mesh () const override |
Maillage associé à cet échangeur. | |
void | build () |
IItemFamilyExchanger * | findExchanger (IItemFamily *family) override |
Échangeur associé à la famille family. Lance une exception si non trouvé | |
ePhase | phase () const override |
Phase de l'échange dans laquelle on se trouve. | |
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 protégées | |
void | _setNextPhase (ePhase next_phase) |
Fonctions membres protégées hérités de Arccore::TraceAccessor | |
void | _setLocalVerboseLevel (Int32 v) |
Int32 | _localVerboseLevel () const |
Types privés | |
typedef std::map< IItemFamily *, IItemFamilyExchanger * > | ItemFamilyExchangerMap |
Fonctions membres privées | |
void | _checkPhase (ePhase wanted_phase) |
void | _buildWithItemFamilyNetwork () |
void | _addItemFamilyExchanger (IItemFamily *family) |
Attributs privés | |
DynamicMesh * | m_mesh |
List< IItemFamilyExchanger * > | m_family_exchangers |
ItemFamilyExchangerMap | m_family_exchanger_map |
ITimeStats * | m_time_stats |
ePhase | m_phase |
ParallelExchangerOptions | m_exchanger_option |
Membres hérités additionnels | |
Types publics hérités de Arcane::IMeshExchanger | |
enum class | ePhase { Init = 0 , ComputeInfos , ProcessExchange , RemoveItems , AllocateItems , UpdateItemGroups , UpdateVariables , Finalize , Ended } |
Indique les différentes phases de l'échange. Plus de détails... | |
Informations pour un échange de maillage entre sous-domaines.
Définition à la ligne 46 du fichier MeshExchanger.h.
|
private |
Définition à la ligne 52 du fichier MeshExchanger.h.
Arcane::mesh::MeshExchanger::MeshExchanger | ( | DynamicMesh * | mesh, |
ITimeStats * | stats | ||
) |
Définition à la ligne 39 du fichier MeshExchanger.cc.
Arcane::mesh::MeshExchanger::~MeshExchanger | ( | ) |
Définition à la ligne 65 du fichier MeshExchanger.cc.
|
private |
Définition à la ligne 184 du fichier MeshExchanger.cc.
|
private |
Définition à la ligne 167 du fichier MeshExchanger.cc.
Définition à la ligne 196 du fichier MeshExchanger.cc.
Définition à la ligne 459 du fichier MeshExchanger.cc.
|
overridevirtual |
Alloue les entités réceptionnées depuis les autre sous-domaines.
Cette opération est collective.
Implémente Arcane::IMeshExchanger.
Définition à la ligne 341 du fichier MeshExchanger.cc.
void Arcane::mesh::MeshExchanger::build | ( | ) |
Définition à la ligne 78 du fichier MeshExchanger.cc.
|
overridevirtual |
Calcule les infos à envoyer/recevoir des autres sous-domaines.
Cette opération est collective.
Le calcul des informations à envoyer se fait en connaissant le nouveau propriétaire de chaque entité. Cette information est conservée dans la variable IItemFamily::itemsNewOwner(). Par exemple, une maille sera migrée si le nouveau propriétaire est différent du propriétaire actuel (qui est donné par Item::owner()).
Après appel à cette méthode chaque entité du maillage est modifiée comme suit:
Retourne true s'il n'y a aucun échange à effectuer.
Implémente Arcane::IMeshExchanger.
Définition à la ligne 207 du fichier MeshExchanger.cc.
Références Arcane::IItemFamily::allItems(), ENUMERATE_ITEM, Arcane::IItemFamily::itemsNewOwner(), Arcane::Item::mutableItemBase(), Arcane::IItemFamily::name(), Arcane::IItemFamily::notifyItemsOwnerChanged(), Arcane::MutableItemBase::setOwner(), et Arcane::IItemFamily::toParticleFamily().
|
overridevirtual |
Finalise les échanges.
Cette opération est collective.
Cette méthode effectue les dernières opérations nécessaires lors de l'échange.
Implémente Arcane::IMeshExchanger.
Définition à la ligne 417 du fichier MeshExchanger.cc.
|
overridevirtual |
Échangeur associé à la famille family. Lance une exception si non trouvé
Implémente Arcane::IMeshExchanger.
Définition à la ligne 438 du fichier MeshExchanger.cc.
Références ARCANE_FATAL, et Arcane::IItemFamily::name().
|
overridevirtual |
Maillage associé à cet échangeur.
Implémente Arcane::IMeshExchanger.
Définition à la ligne 450 du fichier MeshExchanger.cc.
|
inlineoverridevirtual |
Phase de l'échange dans laquelle on se trouve.
Implémente Arcane::IMeshExchanger.
Définition à la ligne 71 du fichier MeshExchanger.h.
|
overridevirtual |
Procède à l'échange des informations entre les sous-domaines.
Cette opération est collective.
Cette opération ne fait aucune modification sur le maillage. Elle se contente juste d'envoyer et de recevoir les informations nécesaire pour la mise à jour du maillage.
Implémente Arcane::IMeshExchanger.
Définition à la ligne 286 du fichier MeshExchanger.cc.
|
overridevirtual |
Supprime de ce sous-domaine les entités qui ne doivent plus s'y trouver suite à l'échange.
Toutes les entités marquées avec le flag ItemFlags::II_NeedRemove sont supprimées.
Implémente Arcane::IMeshExchanger.
Définition à la ligne 308 du fichier MeshExchanger.cc.
|
overridevirtual |
Mise à jour des groupes d'entités.
Cette opération est collective.
Implémente Arcane::IMeshExchanger.
Définition à la ligne 383 du fichier MeshExchanger.cc.
|
overridevirtual |
Mise à jour des variables.
Cette opération est collective.
Implémente Arcane::IMeshExchanger.
Définition à la ligne 399 du fichier MeshExchanger.cc.
|
private |
Définition à la ligne 84 du fichier MeshExchanger.h.
|
private |
Définition à la ligne 81 du fichier MeshExchanger.h.
|
private |
Définition à la ligne 80 du fichier MeshExchanger.h.
|
private |
Définition à la ligne 79 du fichier MeshExchanger.h.
|
private |
Définition à la ligne 83 du fichier MeshExchanger.h.
|
private |
Définition à la ligne 82 du fichier MeshExchanger.h.