Echangeur de particules. Plus de détails...
#include <arcane/mesh/NonBlockingParticleExchanger.h>
Fonctions membres publiques | |
NonBlockingParticleExchanger (const ServiceBuildInfo &sbi) | |
void | build () override |
Construction de niveau build du service. | |
void | initialize (IItemFamily *item_family) override |
Initialize l'échangeur pour la familly item_family. | |
void | beginNewExchange (Integer nb_particule) override |
Commence un nouvel échange de particules. | |
IItemFamily * | itemFamily () override |
Famille associée. | |
bool | exchangeItems (Integer nb_particle_finish_exchange, Int32ConstArrayView local_ids, Int32ConstArrayView sub_domains_to_send, ItemGroup item_group, IFunctor *functor) override |
Échange des particules entre sous-domaines. | |
bool | exchangeItems (Integer nb_particle_finish_exchange, Int32ConstArrayView local_ids, Int32ConstArrayView sub_domains_to_send, Int32Array *new_particle_local_ids, IFunctor *functor) override |
Échange des particules entre sous-domaines. | |
void | sendItems (Integer nb_particle_finish_exchange, Int32ConstArrayView local_ids, Int32ConstArrayView sub_domains_to_send) override |
bool | waitMessages (Integer nb_pending_particle, Int32Array *new_particle_local_ids, IFunctor *functor) override |
void | addNewParticles (Integer nb_particle) override |
Ajoute nb_particle dans l'échange actuel. | |
void | setVerboseLevel (Integer level) override |
Positionne le niveau de verbosité (0 pour aucune message) | |
Integer | verboseLevel () const override |
Niveau de verbosité | |
IAsyncParticleExchanger * | asyncParticleExchanger () override |
Gestion de l'asynchronisme (retourne nullptr si fonctionnalité non disponible) | |
void | reset () |
Fonctions membres publiques hérités de Arcane::BasicService | |
~BasicService () override | |
Libère les ressources. | |
virtual ISubDomain * | subDomain () |
Fonctions membres publiques hérités de Arcane::AbstractService | |
virtual | ~AbstractService () |
Destructeur. | |
virtual IServiceInfo * | serviceInfo () const |
Accès aux informations du service. | |
virtual IBase * | serviceParent () const |
Accès à l'interface de base des principaux objets Arcane. | |
virtual IService * | serviceInterface () |
Retourne l'interface bas niveau IService du service. | |
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 publiques hérités de Arcane::IService | |
virtual | ~IService () |
Libère les ressources. | |
Fonctions membres publiques hérités de Arcane::MeshAccessor | |
MeshAccessor (ISubDomain *sd) | |
MeshAccessor (IMesh *mesh) | |
MeshAccessor (const MeshHandle &mesh_handle) | |
Integer | nbCell () const |
Retourne le nombre de mailles du maillage. | |
Integer | nbFace () const |
Retourne le nombre de faces du maillage. | |
Integer | nbEdge () const |
Retourne le nombre d'arêtes du maillage. | |
Integer | nbNode () const |
Retourne le nombre de noeuds du maillage. | |
VariableNodeReal3 & | nodesCoordinates () const |
Retourne les coordonnées des noeuds du maillage. | |
NodeGroup | allNodes () const |
Retourne le groupe contenant tous les noeuds. | |
EdgeGroup | allEdges () const |
Retourne le groupe contenant toutes les arêtes. | |
FaceGroup | allFaces () const |
Retourne le groupe contenant toutes les faces. | |
CellGroup | allCells () const |
Retourne le groupe contenant toutes les mailles. | |
FaceGroup | outerFaces () const |
Retourne le groupe contenant toutes les faces de le frontière. | |
NodeGroup | ownNodes () const |
Retourne le groupe contenant tous les noeuds propres à ce domaine. | |
CellGroup | ownCells () const |
Retourne le groupe contenant toutes les mailles propres à ce domaine. | |
FaceGroup | ownFaces () const |
Groupe contenant toutes les faces propres à ce domaine. | |
EdgeGroup | ownEdges () const |
Groupe contenant toutes les arêtes propres à ce domaine. | |
IMesh * | mesh () const |
const MeshHandle & | meshHandle () const |
Fonctions membres publiques hérités de Arcane::CommonVariables | |
CommonVariables (IModule *c) | |
Construit les références des variables communes pour le module c. | |
CommonVariables (IVariableMng *variable_mng) | |
Construit les références des variables communes pour le gestionnaire variable_mng. | |
CommonVariables (ISubDomain *sd) | |
Construit les références des variables communes pour le sous-domaine sd. | |
virtual | ~CommonVariables () |
Libère les ressources. | |
Int32 | globalIteration () const |
Numéro de l'itération courante. | |
Real | globalTime () const |
Temps courant. | |
Real | globalOldTime () const |
Temps courant précédent. | |
Real | globalFinalTime () const |
Temps final de la simulation. | |
Real | globalDeltaT () const |
Delta T courant. | |
Real | globalCPUTime () const |
Temps CPU utilisé (en seconde) | |
Real | globalOldCPUTime () const |
Temps CPU utilisé précédent (en seconde) | |
Real | globalElapsedTime () const |
Temps horloge (elapsed) utilisé (en seconde) | |
Real | globalOldElapsedTime () const |
Temps horloge (elapsed) utilisé précédent (en seconde) | |
Attributs privés statiques | |
static const Integer | MESSAGE_EXCHANGE = 1 |
static const Integer | MESSAGE_NB_FINISH_EXCHANGE = 2 |
static const Integer | MESSAGE_FINISH_EXCHANGE_STATUS = 3 |
static const Integer | MESSAGE_CHANGE_BLOCKING = 4 |
Membres hérités additionnels | |
Attributs publics hérités de Arcane::CommonVariables | |
VariableScalarInt32 | m_global_iteration |
Itération courante. | |
VariableScalarReal | m_global_time |
Temps actuel. | |
VariableScalarReal | m_global_deltat |
Delta T global. | |
VariableScalarReal | m_global_old_time |
Temps précédent le temps actuel. | |
VariableScalarReal | m_global_old_deltat |
Delta T au temps précédent le temps global. | |
VariableScalarReal | m_global_final_time |
Temps final du cas. | |
VariableScalarReal | m_global_old_cpu_time |
Temps précédent CPU utilisé (en seconde) | |
VariableScalarReal | m_global_cpu_time |
Temps CPU utilisé (en seconde) | |
VariableScalarReal | m_global_old_elapsed_time |
Temps précédent horloge utilisé (en seconde) | |
VariableScalarReal | m_global_elapsed_time |
Temps horloge utilisé (en seconde) | |
Fonctions membres protégées hérités de Arcane::BasicService | |
BasicService (const ServiceBuildInfo &) | |
Fonctions membres protégées hérités de Arcane::AbstractService | |
AbstractService (const ServiceBuildInfo &) | |
Constructeur à partir d'un ServiceBuildInfo. | |
Fonctions membres protégées hérités de Arccore::TraceAccessor | |
void | _setLocalVerboseLevel (Int32 v) |
Int32 | _localVerboseLevel () const |
Fonctions membres protégées hérités de Arcane::IService | |
IService () | |
Constructeur. | |
Echangeur de particules.
Définition à la ligne 46 du fichier NonBlockingParticleExchanger.h.
|
explicit |
Définition à la ligne 47 du fichier NonBlockingParticleExchanger.cc.
|
override |
Définition à la ligne 84 du fichier NonBlockingParticleExchanger.cc.
|
private |
Définition à la ligne 796 du fichier NonBlockingParticleExchanger.cc.
|
private |
Définition à la ligne 378 du fichier NonBlockingParticleExchanger.cc.
|
private |
Définition à la ligne 848 du fichier NonBlockingParticleExchanger.cc.
|
private |
Définition à la ligne 295 du fichier NonBlockingParticleExchanger.cc.
|
private |
Définition à la ligne 213 du fichier NonBlockingParticleExchanger.cc.
|
private |
Définition à la ligne 114 du fichier NonBlockingParticleExchanger.cc.
|
private |
Définition à la ligne 586 du fichier NonBlockingParticleExchanger.cc.
|
private |
Définition à la ligne 237 du fichier NonBlockingParticleExchanger.cc.
|
private |
Définition à la ligne 308 du fichier NonBlockingParticleExchanger.cc.
|
private |
Définition à la ligne 732 du fichier NonBlockingParticleExchanger.cc.
|
private |
Définition à la ligne 418 du fichier NonBlockingParticleExchanger.cc.
|
private |
Définition à la ligne 769 du fichier NonBlockingParticleExchanger.cc.
|
private |
Définition à la ligne 481 du fichier NonBlockingParticleExchanger.cc.
|
private |
Définition à la ligne 509 du fichier NonBlockingParticleExchanger.cc.
|
private |
Définition à la ligne 264 du fichier NonBlockingParticleExchanger.cc.
|
inlineoverridevirtual |
Ajoute nb_particle dans l'échange actuel.
Cette méthode permet d'indiquer que de nouvelles particules vont participer à l'échanger, par exemple suite à leur création.
Implémente Arcane::IParticleExchanger.
Définition à la ligne 84 du fichier NonBlockingParticleExchanger.h.
|
inlineoverridevirtual |
Gestion de l'asynchronisme (retourne nullptr si fonctionnalité non disponible)
Implémente Arcane::IParticleExchanger.
Définition à la ligne 91 du fichier NonBlockingParticleExchanger.h.
|
overridevirtual |
Commence un nouvel échange de particules.
nb_particule est le nombre de particules du sous-domaine qui vont prendre part à un éventuel échange.
Cette méthode est collective et doit être appelée par tout les sous-domaines.
Implémente Arcane::IParticleExchanger.
Définition à la ligne 127 du fichier NonBlockingParticleExchanger.cc.
Références Arcane::IParallelMng::reduce().
Construction de niveau build du service.
L'appel à build est effectué au moment de sa construction, usuellement au niveau de sa lecture dans les options en phase1.
Réimplémentée à partir de Arcane::AbstractService.
Définition à la ligne 62 du fichier NonBlockingParticleExchanger.h.
|
overridevirtual |
Échange des particules entre sous-domaines.
Cette opération envoie les particules de la famille item_family dont les indices locaux sont donnés par la liste local_ids aux sous-domaines specifiés par sub_domains_to_send, et réceptionne de ces mêmes sous-domaines celles dont ce sous-domaine est propriétaire. Les particules envoyées sont supprimées de la famille item_family et celles recues ajoutées.
Les variables reposant sur la famille item_family sont transférées en même temps que les particules.
Cette opération est collective et bloquante.
Si new_particle_local_ids n'est pas nul, il contiendra en retour le tableau des indices locaux des nouvelles entitées.
Si wait_functor n'est pas nul, le fonctor est appelé pendant l'envoie et la réception des messages. Il est alors possible de faire des opérations. Les opérations ne doivent pas utiliser de particules, ni des variables sur les particules de la famille échangée.
a true si toutes les phases d'échange sont terminés
a false sinon
Implémente Arcane::IParticleExchanger.
Définition à la ligne 176 du fichier NonBlockingParticleExchanger.cc.
|
overridevirtual |
Échange des particules entre sous-domaines.
Cette opération envoie les particules de la famille item_family dont les indices locaux sont donnés par la liste local_ids aux sous-domaines specifiés par sub_domains_to_send, et réceptionne de ces mêmes sous-domaines celles dont ce sous-domaine est propriétaire. Les particules envoyées sont supprimées de la famille item_family et celles recues ajoutées.
Les variables reposant sur la famille item_family sont transférées en même temps que les particules.
Cette opération est collective et bloquante.
Si item_group n'est pas nul, il contiendra en retour la liste des nouvelles entités.
Si wait_functor n'est pas nul, le fonctor est appelé pendant l'envoie et la réception des messages. Il est alors possible de faire des opérations. Les opérations ne doivent pas utiliser de particules, ni des variables sur les particules de la famille échangée.
a true si toutes les phases d'échange sont terminés
a false sinon
Implémente Arcane::IParticleExchanger.
Définition à la ligne 162 du fichier NonBlockingParticleExchanger.cc.
|
overridevirtual |
Initialize l'échangeur pour la familly item_family.
Implémente Arcane::IParticleExchanger.
Définition à la ligne 105 du fichier NonBlockingParticleExchanger.cc.
|
inlineoverridevirtual |
Famille associée.
Implémente Arcane::IParticleExchanger.
Définition à la ligne 68 du fichier NonBlockingParticleExchanger.h.
void Arcane::mesh::NonBlockingParticleExchanger::reset | ( | ) |
Définition à la ligne 721 du fichier NonBlockingParticleExchanger.cc.
|
overridevirtual |
Implémente Arcane::IParticleExchanger.
Définition à la ligne 191 du fichier NonBlockingParticleExchanger.cc.
|
inlineoverridevirtual |
Positionne le niveau de verbosité (0 pour aucune message)
Implémente Arcane::IParticleExchanger.
Définition à la ligne 89 du fichier NonBlockingParticleExchanger.h.
|
inlineoverridevirtual |
Niveau de verbosité
Implémente Arcane::IParticleExchanger.
Définition à la ligne 90 du fichier NonBlockingParticleExchanger.h.
|
overridevirtual |
Implémente Arcane::IParticleExchanger.
Définition à la ligne 204 du fichier NonBlockingParticleExchanger.cc.
|
private |
Définition à la ligne 99 du fichier NonBlockingParticleExchanger.h.
|
private |
Définition à la ligne 130 du fichier NonBlockingParticleExchanger.h.
|
private |
Définition à la ligne 131 du fichier NonBlockingParticleExchanger.h.
|
private |
Définition à la ligne 129 du fichier NonBlockingParticleExchanger.h.
|
private |
Définition à la ligne 126 du fichier NonBlockingParticleExchanger.h.
|
private |
Définition à la ligne 143 du fichier NonBlockingParticleExchanger.h.
|
private |
Définition à la ligne 97 du fichier NonBlockingParticleExchanger.h.
|
private |
Définition à la ligne 127 du fichier NonBlockingParticleExchanger.h.
|
private |
Définition à la ligne 117 du fichier NonBlockingParticleExchanger.h.
|
private |
Nombre de particules restantes avant de passer en mode bloquant.
Définition à la ligne 124 du fichier NonBlockingParticleExchanger.h.
|
private |
Définition à la ligne 122 du fichier NonBlockingParticleExchanger.h.
|
private |
Définition à la ligne 138 du fichier NonBlockingParticleExchanger.h.
|
private |
Définition à la ligne 136 du fichier NonBlockingParticleExchanger.h.
|
private |
Définition à la ligne 120 du fichier NonBlockingParticleExchanger.h.
|
private |
Définition à la ligne 119 du fichier NonBlockingParticleExchanger.h.
|
private |
Définition à la ligne 128 du fichier NonBlockingParticleExchanger.h.
|
private |
Définition à la ligne 98 du fichier NonBlockingParticleExchanger.h.
|
private |
Liste des message en attente d'envoie.
Définition à la ligne 112 du fichier NonBlockingParticleExchanger.h.
|
private |
Définition à la ligne 101 du fichier NonBlockingParticleExchanger.h.
|
private |
Définition à la ligne 104 du fichier NonBlockingParticleExchanger.h.
|
private |
Définition à la ligne 105 du fichier NonBlockingParticleExchanger.h.
|
private |
Définition à la ligne 106 du fichier NonBlockingParticleExchanger.h.
|
private |
Liste des variables à échanger.
Définition à la ligne 109 du fichier NonBlockingParticleExchanger.h.
|
private |
Définition à la ligne 142 du fichier NonBlockingParticleExchanger.h.
|
private |
Définition à la ligne 140 du fichier NonBlockingParticleExchanger.h.
|
private |
Liste des message envoyés mais en cours de traitement.
Définition à la ligne 115 du fichier NonBlockingParticleExchanger.h.
|
private |
Définition à la ligne 141 du fichier NonBlockingParticleExchanger.h.
|
private |
Définition à la ligne 134 du fichier NonBlockingParticleExchanger.h.
|
private |
Définition à la ligne 133 du fichier NonBlockingParticleExchanger.h.
|
staticprivate |
Définition à la ligne 54 du fichier NonBlockingParticleExchanger.h.
|
staticprivate |
Définition à la ligne 51 du fichier NonBlockingParticleExchanger.h.
|
staticprivate |
Définition à la ligne 53 du fichier NonBlockingParticleExchanger.h.
|
staticprivate |
Définition à la ligne 52 du fichier NonBlockingParticleExchanger.h.