Fonctions membres publiques | |
AsyncParticleExchanger (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. | |
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_particles, Int32Array *new_particle_local_ids, IFunctor *functor) override |
void | addNewParticles (Integer nb_particle) override |
Ajoute nb_particle dans l'échange actuel. | |
IItemFamily * | itemFamily () override |
Famille associée. | |
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) | |
bool | exchangeItemsAsync (Integer nb_particle_finish_exchange, Int32ConstArrayView local_ids, Int32ConstArrayView sub_domains_to_send, Int32Array *new_particle_local_ids, IFunctor *functor, bool has_local_flying_particles) override |
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) | |
Fonctions membres privées | |
void | _generateSendItemsAsync (Int32ConstArrayView local_ids, Int32ConstArrayView sub_domains_to_send) |
bool | _waitSomeMessages (ItemGroup item_group, Int32Array *new_particle_local_ids) |
Attributs privés | |
BasicParticleExchanger | m_bpe |
Integer | m_nb_particle_send_before_reduction = 0 |
Integer | m_nb_particle_send_before_reduction_tmp = 0 |
Integer | m_sum_of_nb_particle_sent = 0 |
UniqueArray< Parallel::Request > | m_reduce_requests |
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. | |
Définition à la ligne 22 du fichier AsyncParticleExchanger.h.
|
explicit |
Définition à la ligne 26 du fichier AsyncParticleExchanger.cc.
|
override |
Définition à la ligne 36 du fichier AsyncParticleExchanger.cc.
|
private |
Définition à la ligne 265 du fichier AsyncParticleExchanger.cc.
|
private |
Définition à la ligne 332 du fichier AsyncParticleExchanger.cc.
|
overridevirtual |
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 140 du fichier AsyncParticleExchanger.cc.
|
overridevirtual |
Gestion de l'asynchronisme (retourne nullptr si fonctionnalité non disponible)
Implémente Arcane::IParticleExchanger.
Définition à la ligne 176 du fichier AsyncParticleExchanger.cc.
|
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 76 du fichier AsyncParticleExchanger.cc.
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 47 du fichier AsyncParticleExchanger.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 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 104 du fichier AsyncParticleExchanger.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 90 du fichier AsyncParticleExchanger.cc.
|
overridevirtual |
Implémente Arcane::IAsyncParticleExchanger.
Définition à la ligne 185 du fichier AsyncParticleExchanger.cc.
|
overridevirtual |
Initialize l'échangeur pour la familly item_family.
Implémente Arcane::IParticleExchanger.
Définition à la ligne 59 du fichier AsyncParticleExchanger.cc.
Références ARCANE_THROW, Arcane::IParallelMng::isParallel(), et Arcane::IParallelMng::nonBlockingCollective().
|
overridevirtual |
Famille associée.
Implémente Arcane::IParticleExchanger.
Définition à la ligne 149 du fichier AsyncParticleExchanger.cc.
|
overridevirtual |
Implémente Arcane::IParticleExchanger.
Définition à la ligne 118 du fichier AsyncParticleExchanger.cc.
|
overridevirtual |
Positionne le niveau de verbosité (0 pour aucune message)
Implémente Arcane::IParticleExchanger.
Définition à la ligne 158 du fichier AsyncParticleExchanger.cc.
|
overridevirtual |
Niveau de verbosité
Implémente Arcane::IParticleExchanger.
Définition à la ligne 167 du fichier AsyncParticleExchanger.cc.
|
overridevirtual |
Implémente Arcane::IParticleExchanger.
Définition à la ligne 129 du fichier AsyncParticleExchanger.cc.
|
private |
Définition à la ligne 73 du fichier AsyncParticleExchanger.h.
|
private |
Définition à la ligne 74 du fichier AsyncParticleExchanger.h.
|
private |
Définition à la ligne 75 du fichier AsyncParticleExchanger.h.
|
private |
Définition à la ligne 77 du fichier AsyncParticleExchanger.h.
|
private |
Définition à la ligne 76 du fichier AsyncParticleExchanger.h.