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 |
![]() | |
~BasicService () override | |
Libère les ressources. | |
virtual ISubDomain * | subDomain () |
![]() | |
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. | |
![]() | |
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 |
![]() | |
virtual | ~IService () |
Libère les ressources. | |
![]() | |
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 |
![]() | |
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 | |
![]() | |
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) | |
![]() | |
BasicService (const ServiceBuildInfo &) | |
![]() | |
AbstractService (const ServiceBuildInfo &) | |
Constructeur à partir d'un ServiceBuildInfo. | |
![]() | |
void | _setLocalVerboseLevel (Int32 v) |
Int32 | _localVerboseLevel () const |
![]() | |
IService () | |
Constructeur. | |
Définition à la ligne 22 du fichier AsyncParticleExchanger.h.
|
explicit |
Définition à la ligne 29 du fichier AsyncParticleExchanger.cc.
|
override |
Définition à la ligne 39 du fichier AsyncParticleExchanger.cc.
|
private |
Définition à la ligne 268 du fichier AsyncParticleExchanger.cc.
|
private |
Définition à la ligne 335 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 143 du fichier AsyncParticleExchanger.cc.
|
overridevirtual |
Gestion de l'asynchronisme (retourne nullptr si fonctionnalité non disponible)
Implémente Arcane::IParticleExchanger.
Définition à la ligne 179 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 79 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 50 du fichier AsyncParticleExchanger.cc.
Références Arcane::AbstractService::build().
|
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 107 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 93 du fichier AsyncParticleExchanger.cc.
|
overridevirtual |
Implémente Arcane::IAsyncParticleExchanger.
Définition à la ligne 188 du fichier AsyncParticleExchanger.cc.
|
overridevirtual |
Initialize l'échangeur pour la familly item_family.
Implémente Arcane::IParticleExchanger.
Définition à la ligne 62 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 152 du fichier AsyncParticleExchanger.cc.
|
overridevirtual |
Implémente Arcane::IParticleExchanger.
Définition à la ligne 121 du fichier AsyncParticleExchanger.cc.
|
overridevirtual |
Positionne le niveau de verbosité (0 pour aucune message)
Implémente Arcane::IParticleExchanger.
Définition à la ligne 161 du fichier AsyncParticleExchanger.cc.
|
overridevirtual |
Niveau de verbosité
Implémente Arcane::IParticleExchanger.
Définition à la ligne 170 du fichier AsyncParticleExchanger.cc.
|
overridevirtual |
Implémente Arcane::IParticleExchanger.
Définition à la ligne 132 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.