Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::mesh::AsyncParticleExchanger
+ Graphe d'héritage de Arcane::mesh::AsyncParticleExchanger:
+ Graphe de collaboration de Arcane::mesh::AsyncParticleExchanger:

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.
 
IItemFamilyitemFamily () 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é
 
IAsyncParticleExchangerasyncParticleExchanger () 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 ISubDomainsubDomain ()
 
- Fonctions membres publiques hérités de Arcane::AbstractService
virtual ~AbstractService ()
 Destructeur.
 
virtual IServiceInfoserviceInfo () const
 Accès aux informations du service.
 
virtual IBaseserviceParent () const
 Accès à l'interface de base des principaux objets Arcane.
 
virtual IServiceserviceInterface ()
 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.
 
TraceAccessoroperator= (const TraceAccessor &rhs)
 Opérateur de recopie.
 
virtual ~TraceAccessor ()
 Libère les ressources.
 
ITraceMngtraceMng () 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.
 
VariableNodeReal3nodesCoordinates () 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.
 
IMeshmesh () const
 
const MeshHandlemeshHandle () 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::Requestm_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.
 

Description détaillée

Définition à la ligne 22 du fichier AsyncParticleExchanger.h.

Documentation des constructeurs et destructeur

◆ AsyncParticleExchanger()

Arcane::mesh::AsyncParticleExchanger::AsyncParticleExchanger ( const ServiceBuildInfo sbi)
explicit

Définition à la ligne 26 du fichier AsyncParticleExchanger.cc.

◆ ~AsyncParticleExchanger()

Arcane::mesh::AsyncParticleExchanger::~AsyncParticleExchanger ( )
override

Définition à la ligne 36 du fichier AsyncParticleExchanger.cc.

Documentation des fonctions membres

◆ _generateSendItemsAsync()

void Arcane::mesh::AsyncParticleExchanger::_generateSendItemsAsync ( Int32ConstArrayView  local_ids,
Int32ConstArrayView  sub_domains_to_send 
)
private

Définition à la ligne 265 du fichier AsyncParticleExchanger.cc.

◆ _waitSomeMessages()

bool Arcane::mesh::AsyncParticleExchanger::_waitSomeMessages ( ItemGroup  item_group,
Int32Array new_particle_local_ids 
)
private

Définition à la ligne 332 du fichier AsyncParticleExchanger.cc.

◆ addNewParticles()

void Arcane::mesh::AsyncParticleExchanger::addNewParticles ( Integer  nb_particle)
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.

◆ asyncParticleExchanger()

IAsyncParticleExchanger * Arcane::mesh::AsyncParticleExchanger::asyncParticleExchanger ( )
overridevirtual

Gestion de l'asynchronisme (retourne nullptr si fonctionnalité non disponible)

Implémente Arcane::IParticleExchanger.

Définition à la ligne 176 du fichier AsyncParticleExchanger.cc.

◆ beginNewExchange()

void Arcane::mesh::AsyncParticleExchanger::beginNewExchange ( Integer  nb_particle)
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.

◆ build()

void Arcane::mesh::AsyncParticleExchanger::build ( void  )
overridevirtual

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.

◆ exchangeItems() [1/2]

bool Arcane::mesh::AsyncParticleExchanger::exchangeItems ( Integer  nb_particle_finish_exchange,
Int32ConstArrayView  local_ids,
Int32ConstArrayView  ranks_to_send,
Int32Array new_particle_local_ids,
IFunctor wait_functor 
)
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.

Valeurs retournées

a true si toutes les phases d'échange sont terminés

Valeurs retournées

a false sinon

A faire:
améliorer la doc

Implémente Arcane::IParticleExchanger.

Définition à la ligne 104 du fichier AsyncParticleExchanger.cc.

◆ exchangeItems() [2/2]

bool Arcane::mesh::AsyncParticleExchanger::exchangeItems ( Integer  nb_particle_finish_exchange,
Int32ConstArrayView  local_ids,
Int32ConstArrayView  sub_domains_to_send,
ItemGroup  item_group,
IFunctor wait_functor 
)
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.

Valeurs retournées

a true si toutes les phases d'échange sont terminés

Valeurs retournées

a false sinon

A faire:
améliorer la doc

Implémente Arcane::IParticleExchanger.

Définition à la ligne 90 du fichier AsyncParticleExchanger.cc.

◆ exchangeItemsAsync()

bool Arcane::mesh::AsyncParticleExchanger::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 
)
overridevirtual

Implémente Arcane::IAsyncParticleExchanger.

Définition à la ligne 185 du fichier AsyncParticleExchanger.cc.

◆ initialize()

void Arcane::mesh::AsyncParticleExchanger::initialize ( IItemFamily item_family)
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().

◆ itemFamily()

IItemFamily * Arcane::mesh::AsyncParticleExchanger::itemFamily ( )
overridevirtual

Famille associée.

Implémente Arcane::IParticleExchanger.

Définition à la ligne 149 du fichier AsyncParticleExchanger.cc.

◆ sendItems()

void Arcane::mesh::AsyncParticleExchanger::sendItems ( Integer  nb_particle_finish_exchange,
Int32ConstArrayView  local_ids,
Int32ConstArrayView  sub_domains_to_send 
)
overridevirtual

Implémente Arcane::IParticleExchanger.

Définition à la ligne 118 du fichier AsyncParticleExchanger.cc.

◆ setVerboseLevel()

void Arcane::mesh::AsyncParticleExchanger::setVerboseLevel ( Integer  level)
overridevirtual

Positionne le niveau de verbosité (0 pour aucune message)

Implémente Arcane::IParticleExchanger.

Définition à la ligne 158 du fichier AsyncParticleExchanger.cc.

◆ verboseLevel()

Integer Arcane::mesh::AsyncParticleExchanger::verboseLevel ( ) const
overridevirtual

Niveau de verbosité

Implémente Arcane::IParticleExchanger.

Définition à la ligne 167 du fichier AsyncParticleExchanger.cc.

◆ waitMessages()

bool Arcane::mesh::AsyncParticleExchanger::waitMessages ( Integer  nb_pending_particle,
Int32Array new_particle_local_ids,
IFunctor functor 
)
overridevirtual

Implémente Arcane::IParticleExchanger.

Définition à la ligne 129 du fichier AsyncParticleExchanger.cc.

Documentation des données membres

◆ m_bpe

BasicParticleExchanger Arcane::mesh::AsyncParticleExchanger::m_bpe
private

Définition à la ligne 73 du fichier AsyncParticleExchanger.h.

◆ m_nb_particle_send_before_reduction

Integer Arcane::mesh::AsyncParticleExchanger::m_nb_particle_send_before_reduction = 0
private

Définition à la ligne 74 du fichier AsyncParticleExchanger.h.

◆ m_nb_particle_send_before_reduction_tmp

Integer Arcane::mesh::AsyncParticleExchanger::m_nb_particle_send_before_reduction_tmp = 0
private

Définition à la ligne 75 du fichier AsyncParticleExchanger.h.

◆ m_reduce_requests

UniqueArray<Parallel::Request> Arcane::mesh::AsyncParticleExchanger::m_reduce_requests
private

Définition à la ligne 77 du fichier AsyncParticleExchanger.h.

◆ m_sum_of_nb_particle_sent

Integer Arcane::mesh::AsyncParticleExchanger::m_sum_of_nb_particle_sent = 0
private

Définition à la ligne 76 du fichier AsyncParticleExchanger.h.


La documentation de cette classe a été générée à partir des fichiers suivants :