22class AsyncParticleExchanger
32 ~AsyncParticleExchanger()
override;
37 void build()
override;
65 bool exchangeItemsAsync(
Integer nb_particle_finish_exchange,
70 bool has_local_flying_particles)
override;
76 Integer m_nb_particle_send_before_reduction = 0;
77 Integer m_nb_particle_send_before_reduction_tmp = 0;
78 Integer m_sum_of_nb_particle_sent = 0;
Interface of an asynchronous particle exchanger.
Interface of a particle exchanger.
bool waitMessages(Integer nb_pending_particles, Int32Array *new_particle_local_ids, IFunctor *functor) override
void setVerboseLevel(Integer level) override
Sets the verbosity level (0 for no messages).
void sendItems(Integer nb_particle_finish_exchange, Int32ConstArrayView local_ids, Int32ConstArrayView sub_domains_to_send) override
void initialize(IItemFamily *item_family) override
Initializes the exchanger for the item_family item_family.
IAsyncParticleExchanger * asyncParticleExchanger() override
Asynchronism management (returns nullptr if functionality is not available).
void build() override
Build-level construction of the service.
void beginNewExchange(Integer nb_particule) override
Starts a new particle exchange.
void addNewParticles(Integer nb_particle) override
Adds nb_particle to the current exchange.
bool exchangeItems(Integer nb_particle_finish_exchange, Int32ConstArrayView local_ids, Int32ConstArrayView sub_domains_to_send, ItemGroup item_group, IFunctor *functor) override
Exchanges particles between sub-domains.
Integer verboseLevel() const override
Verbosity level.
IItemFamily * itemFamily() override
Associated family.
Basic particle exchanger (uses blocking reduction).