Arcane  v3.16.6.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
IParticleExchanger.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2025 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* IParticleExchanger.h (C) 2000-2025 */
9/* */
10/* Interface d'un échangeur de particules. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_IPARTICLEEXCHANGER_H
13#define ARCANE_CORE_IPARTICLEEXCHANGER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23namespace Arcane
24{
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
56class ARCANE_CORE_EXPORT IParticleExchanger
57{
58 public:
59
60 virtual ~IParticleExchanger() = default;
61
62 public:
63
64 virtual void build() = 0;
65
67 virtual void initialize(IItemFamily* item_family) = 0;
68
69 public:
70
79 virtual void beginNewExchange(Integer nb_particle) = 0;
80
108 virtual ARCANE_DEPRECATED bool exchangeItems(Integer nb_particle_finish_exchange,
109 Int32ConstArrayView local_ids,
110 Int32ConstArrayView sub_domains_to_send,
111 ItemGroup item_group,
112 IFunctor* wait_functor) = 0;
113
141 virtual bool exchangeItems(Integer nb_particle_finish_exchange,
142 Int32ConstArrayView local_ids,
143 Int32ConstArrayView ranks_to_send,
144 Int32Array* new_particle_local_ids,
145 IFunctor* wait_functor) = 0;
146
148 virtual void sendItems(Integer nb_particle_finish_exchange,
149 Int32ConstArrayView local_ids,
150 Int32ConstArrayView sub_domains_to_send) = 0;
151
153 virtual bool waitMessages(Integer nb_pending_particle,
154 Int32Array* new_particle_local_ids,
155 IFunctor* functor) = 0;
156
163 virtual void addNewParticles(Integer nb_particle) = 0;
164
166 virtual IItemFamily* itemFamily() = 0;
167
169 virtual void setVerboseLevel(Integer level) = 0;
170
172 virtual Integer verboseLevel() const = 0;
173
176};
177
178/*---------------------------------------------------------------------------*/
179/*---------------------------------------------------------------------------*/
180
181} // namespace Arcane
182
183/*---------------------------------------------------------------------------*/
184/*---------------------------------------------------------------------------*/
185
186#endif
Déclarations des types généraux de Arcane.
Déclarations de types sur les entités.
Interface d'un échangeur de particules asynchrone.
Interface d'une famille d'entités.
Definition IItemFamily.h:84
Interface d'un échangeur de particules.
virtual void addNewParticles(Integer nb_particle)=0
Ajoute nb_particle dans l'échange actuel.
virtual void setVerboseLevel(Integer level)=0
Positionne le niveau de verbosité (0 pour aucune message)
virtual bool waitMessages(Integer nb_pending_particle, Int32Array *new_particle_local_ids, IFunctor *functor)=0
virtual Integer verboseLevel() const =0
Niveau de verbosité
virtual IAsyncParticleExchanger * asyncParticleExchanger()=0
Gestion de l'asynchronisme (retourne nullptr si fonctionnalité non disponible)
virtual IItemFamily * itemFamily()=0
Famille associée.
virtual void initialize(IItemFamily *item_family)=0
Initialize l'échangeur pour la famille item_family.
virtual void beginNewExchange(Integer nb_particle)=0
Commence un nouvel échange de particules.
virtual void sendItems(Integer nb_particle_finish_exchange, Int32ConstArrayView local_ids, Int32ConstArrayView sub_domains_to_send)=0
virtual ~IParticleExchanger()=default
Libère les ressources.
virtual ARCANE_DEPRECATED bool exchangeItems(Integer nb_particle_finish_exchange, Int32ConstArrayView local_ids, Int32ConstArrayView sub_domains_to_send, ItemGroup item_group, IFunctor *wait_functor)=0
Échange des particules entre sous-domaines.
virtual bool exchangeItems(Integer nb_particle_finish_exchange, Int32ConstArrayView local_ids, Int32ConstArrayView ranks_to_send, Int32Array *new_particle_local_ids, IFunctor *wait_functor)=0
Échange des particules entre sous-domaines.
Groupe d'entités de maillage.
Definition ItemGroup.h:49
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Int32 Integer
Type représentant un entier.
ConstArrayView< Int32 > Int32ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:569
Array< Int32 > Int32Array
Tableau dynamique à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:214