Informations pour un échange de maillage entre sous-domaines. Plus de détails...
#include <arcane/mesh/MeshExchanger.h>
Graphe d'héritage de Arcane::mesh::MeshExchanger:
Graphe de collaboration de Arcane::mesh::MeshExchanger:Fonctions membres publiques | |
| MeshExchanger (IMesh *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 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 protégées | |
| void | _setNextPhase (ePhase next_phase) |
Fonctions membres protégées hérités de Arcane::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 | |
| IMesh * | 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 41 du fichier MeshExchanger.h.
|
private |
Définition à la ligne 47 du fichier MeshExchanger.h.
| Arcane::mesh::MeshExchanger::MeshExchanger | ( | IMesh * | mesh, |
| ITimeStats * | stats ) |
Définition à la ligne 41 du fichier MeshExchanger.cc.
| Arcane::mesh::MeshExchanger::~MeshExchanger | ( | ) |
Définition à la ligne 67 du fichier MeshExchanger.cc.
|
private |
Définition à la ligne 186 du fichier MeshExchanger.cc.
|
private |
Définition à la ligne 169 du fichier MeshExchanger.cc.
|
private |
Définition à la ligne 198 du fichier MeshExchanger.cc.
|
protected |
Définition à la ligne 465 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 343 du fichier MeshExchanger.cc.
Références Arcane::platform::getCurrentDateTime(), et Arcane::TraceAccessor::info().
Voici le graphe d'appel pour cette fonction :| void Arcane::mesh::MeshExchanger::build | ( | ) |
Définition à la ligne 80 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 209 du fichier MeshExchanger.cc.
Références Arcane::IItemFamily::allItems(), Arcane::IItemFamilyExchanger::computeExchangeInfos(), Arcane::mesh::MeshExchange::computeInfos(), ENUMERATE_ITEM, findExchanger(), Arcane::platform::getCurrentDateTime(), Arcane::IParticleFamily::getEnableGhostItems(), Arcane::mesh::MeshExchange::getItemsToSend(), Arcane::TraceAccessor::info(), Arcane::IItemFamily::itemsNewOwner(), Arcane::Item::mutableItemBase(), Arcane::IItemFamily::name(), Arcane::IItemFamily::notifyItemsOwnerChanged(), Arcane::TraceAccessor::pwarning(), Arcane::IItemFamilyExchanger::setExchangeItems(), Arcane::MutableItemBase::setOwner(), et Arcane::IItemFamily::toParticleFamily().
Voici le graphe d'appel pour cette fonction :
|
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 423 du fichier MeshExchanger.cc.
|
overridevirtual |
Échangeur associé à la famille family. Lance une exception si non trouvé
Implémente Arcane::IMeshExchanger.
Définition à la ligne 444 du fichier MeshExchanger.cc.
Références ARCANE_FATAL, et Arcane::IItemFamily::name().
Référencé par computeExchangeInfos().
Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :
|
overridevirtual |
Maillage associé à cet échangeur.
Implémente Arcane::IMeshExchanger.
Définition à la ligne 456 du fichier MeshExchanger.cc.
Références Arcane::IMesh::toPrimaryMesh().
Voici le graphe d'appel pour cette fonction :
|
inlineoverridevirtual |
Phase de l'échange dans laquelle on se trouve.
Implémente Arcane::IMeshExchanger.
Définition à la ligne 66 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 288 du fichier MeshExchanger.cc.
Références Arcane::platform::getCurrentDateTime(), Arcane::platform::getMemoryUsed(), et Arcane::TraceAccessor::info().
Voici le graphe d'appel pour cette fonction :
|
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 310 du fichier MeshExchanger.cc.
Références Arcane::platform::getCurrentDateTime(), Arcane::IParticleFamily::getEnableGhostItems(), Arcane::TraceAccessor::info(), Arcane::IParticleFamily::itemFamily(), et Arcane::IItemFamily::toParticleFamily().
Voici le graphe d'appel pour cette fonction :
|
overridevirtual |
Mise à jour des groupes d'entités.
Cette opération est collective.
Implémente Arcane::IMeshExchanger.
Définition à la ligne 389 du fichier MeshExchanger.cc.
Références Arcane::platform::getCurrentDateTime(), et Arcane::TraceAccessor::info().
Voici le graphe d'appel pour cette fonction :
|
overridevirtual |
Mise à jour des variables.
Cette opération est collective.
Implémente Arcane::IMeshExchanger.
Définition à la ligne 405 du fichier MeshExchanger.cc.
Références Arcane::platform::getCurrentDateTime(), et Arcane::TraceAccessor::info().
Voici le graphe d'appel pour cette fonction :
|
private |
Définition à la ligne 79 du fichier MeshExchanger.h.
|
private |
Définition à la ligne 76 du fichier MeshExchanger.h.
|
private |
Définition à la ligne 75 du fichier MeshExchanger.h.
|
private |
Définition à la ligne 74 du fichier MeshExchanger.h.
|
private |
Définition à la ligne 78 du fichier MeshExchanger.h.
|
private |
Définition à la ligne 77 du fichier MeshExchanger.h.