Arcane  v3.16.4.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
IGetVariablesValuesParallelOperation.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/* IGetVariablesValuesParallelOperation.h (C) 2000-2025 */
9/* */
10/* Opérations pour accéder aux valeurs de variables d'un autre sous-domaine. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_IGETVARIABLESVALUESPARALLELOPERATION_H
13#define ARCANE_CORE_IGETVARIABLESVALUESPARALLELOPERATION_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23namespace Arcane
24{
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28/*!
29 * \brief Opérations pour accéder aux valeurs de variables d'un autre sous-domaine.
30 * \todo utiliser la serialisation+templates pour supporter tout type de variable.
31 */
33{
34 public:
35
36 virtual ~IGetVariablesValuesParallelOperation() = default;
37
38 public:
39
40 virtual IParallelMng* parallelMng() =0;
41
42 public:
43
44 /*!
45 * \brief Récupère les valeurs d'une variable sur des entités distantes
46 *
47 * Cette opération permet de récupérer les valeurs de la variable
48 * \a variable sur des entités qui ne se trouvent pas dans ce sous-domaine.
49 * Le tableau \a unique_ids contient le numéro <b>unique</b> des entités
50 * dont on souhaite récupérer la valeur. Ces valeurs seront stockées
51 * dans \a values.
52 *
53 * Cette méthode nécessite en général beaucoup de communications
54 * car il faut rechercher dans quel sous-domaine appartient les entités
55 * à partir de leur uniqueId(). Si on connait le sous-domaine, il
56 * vaut utiliser la méthode surchargé avec ce paramètre.
57 *
58 * \a unique_ids et \a values doivent avoir le même nombre d'éléments.
59 *
60 * Cette opération est collective et bloquante.
61 */
62 virtual void getVariableValues(VariableItemReal& variable,
63 Int64ConstArrayView unique_ids,
64 RealArrayView values) =0;
65 /*!
66 * \brief Récupère les valeurs d'une variable sur des entités distantes
67 *
68 * Cette opération permet de récupérer les valeurs de la variable
69 * \a variable sur des entités qui ne se trouvent pas dans ce sous-domaine.
70 * Le tableau \a unique_ids contient le numéro <b>unique</b> des entités
71 * dont on souhaite récupérer la valeur et \a sub_domain_ids le sous-domaine
72 * dans lequel se trouve les entités. Ces valeurs seront stockées dans \a values.
73 *
74 * \a unique_ids, \a sub_domain_ids et \a values doivent avoir
75 * le même nombre d'éléments.
76 *
77 * Cette opération est collective et bloquante.
78 */
79 virtual void getVariableValues(VariableItemReal& variable,
80 Int64ConstArrayView unique_ids,
81 Int32ConstArrayView sub_domain_ids,
82 RealArrayView values) =0;
83};
84
85/*---------------------------------------------------------------------------*/
86/*---------------------------------------------------------------------------*/
87
88} // namespace Arcane
89
90/*---------------------------------------------------------------------------*/
91/*---------------------------------------------------------------------------*/
92
93#endif
Déclarations des types généraux de Arcane.
Opérations pour accéder aux valeurs de variables d'un autre sous-domaine.
virtual void getVariableValues(VariableItemReal &variable, Int64ConstArrayView unique_ids, Int32ConstArrayView sub_domain_ids, RealArrayView values)=0
Récupère les valeurs d'une variable sur des entités distantes.
virtual void getVariableValues(VariableItemReal &variable, Int64ConstArrayView unique_ids, RealArrayView values)=0
Récupère les valeurs d'une variable sur des entités distantes.
Interface du gestionnaire de parallélisme pour un sous-domaine.
ItemVariableScalarRefT< Real > VariableItemReal
Grandeur de type réel.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
ConstArrayView< Int32 > Int32ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:569
ConstArrayView< Int64 > Int64ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 64 bits.
Definition UtilsTypes.h:567
ArrayView< Real > RealArrayView
Equivalent C d'un tableau à une dimension de réels.
Definition UtilsTypes.h:546