Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
IParallelMngUtilsFactory.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 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/* IParallelMngUtilsFactory.h (C) 2000-2021 */
9/* */
10/* Interface d'une fabrique pour les fonctions utilitaires de IParallelMng. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_IPARALLELMNGUTILSFACTORY_H
13#define ARCANE_IPARALLELMNGUTILSFACTORY_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/Ref.h"
18
19#include "arcane/Parallel.h"
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24namespace Arcane
25{
26class IItemFamily;
27class ItemGroup;
28}
29
30namespace Arcane
31{
32/*---------------------------------------------------------------------------*/
33/*---------------------------------------------------------------------------*/
34/*!
35 * \internal
36 * \brief Interface d'une fabrique pour les fonctions utilitaires de IParallelMng.
37 */
38class ARCANE_CORE_EXPORT IParallelMngUtilsFactory
39{
40 public:
41 virtual ~IParallelMngUtilsFactory() = default;
42 public:
43
44 /*!
45 * \brief Retourne une opération pour récupérer les valeurs d'une variable
46 * sur les entités d'un autre sous-domaine.
47 */
48 virtual Ref<IGetVariablesValuesParallelOperation>
50
51 //! Retourne une opération pour transférer des valeurs entre rangs.
52 virtual Ref<ITransferValuesParallelOperation>
54
55 //! Retourne une interface pour transférer des messages entre rangs
56 virtual Ref<IParallelExchanger>
58
59 /*!
60 * \brief Retourne une interface pour synchroniser des
61 * variables sur le groupe de la famille \a family
62 */
63 virtual Ref<IVariableSynchronizer>
65
66 /*!
67 * \brief Retourne une interface pour synchroniser des
68 * variables sur le groupe \a group.
69 */
70 virtual Ref<IVariableSynchronizer>
72
73 /*!
74 * \brief Créé une instance contenant les infos sur la topologie des rangs de ce gestionnnaire.
75 *
76 * Cette opération est collective.
77 */
78 virtual Ref<IParallelTopology>
80};
81
82/*---------------------------------------------------------------------------*/
83/*---------------------------------------------------------------------------*/
84
85} // End namespace Arcane::impl
86
87/*---------------------------------------------------------------------------*/
88/*---------------------------------------------------------------------------*/
89
90#endif
Interface d'une famille d'entités.
virtual Ref< IVariableSynchronizer > createSynchronizer(IParallelMng *pm, IItemFamily *family)=0
Retourne une interface pour synchroniser des variables sur le groupe de la famille family.
virtual Ref< ITransferValuesParallelOperation > createTransferValuesOperation(IParallelMng *pm)=0
Retourne une opération pour transférer des valeurs entre rangs.
virtual Ref< IGetVariablesValuesParallelOperation > createGetVariablesValuesOperation(IParallelMng *pm)=0
Retourne une opération pour récupérer les valeurs d'une variable sur les entités d'un autre sous-doma...
virtual Ref< IVariableSynchronizer > createSynchronizer(IParallelMng *pm, const ItemGroup &group)=0
Retourne une interface pour synchroniser des variables sur le groupe group.
virtual Ref< IParallelExchanger > createExchanger(IParallelMng *pm)=0
Retourne une interface pour transférer des messages entre rangs.
virtual Ref< IParallelTopology > createTopology(IParallelMng *pm)=0
Créé une instance contenant les infos sur la topologie des rangs de ce gestionnnaire.
Interface du gestionnaire de parallélisme pour un sous-domaine.
Groupe d'entités de maillage.
Definition ItemGroup.h:49
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-