Arcane  v3.14.10.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-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/* IGetVariablesValuesParallelOperation.h (C) 2000-2006 */
9/* */
10/* Opérations pour accéder aux valeurs de variables d'un autre sous-domaine. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_IGETVARIABLESVALUESPARALLELOPERATION_H
13#define ARCANE_IGETVARIABLESVALUESPARALLELOPERATION_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/ArcaneTypes.h"
18#include "arcane/VariableTypedef.h"
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23ARCANE_BEGIN_NAMESPACE
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28class IParallelMng;
29
30/*---------------------------------------------------------------------------*/
31/*---------------------------------------------------------------------------*/
32/*!
33 * \brief Opérations pour accéder aux valeurs de variables d'un autre sous-domaine.
34 * \todo utiliser la serialisation+templates pour supporter tout type de variable.
35 */
37{
38 public:
40 public:
41 virtual IParallelMng* parallelMng() =0;
42 public:
43 /*!
44 \brief Récupère les valeurs d'une variable sur des entités distantes
45
46 Cette opération permet de récupérer les valeurs de la variable
47 \a variable sur des entités qui ne se trouvent pas dans ce sous-domaine.
48 Le tableau \a unique_ids contient le numéro <b>unique</b> des entités
49 dont on souhaite récupérer la valeur. Ces valeurs seront stockées
50 dans \a values.
51
52 Cette méthode nécessaite en général beaucoup de communications
53 car il faut rechercher dans quel sous-domaine appartient les entités
54 à partir de leur uniqueId(). Si on connait le sous-domaime, il
55 vaut utiliser la méthode surchargé avec ce paramètre.
56
57 \a unique_ids et \a values doivent avoir le même nombre d'éléments.
58
59 Cette opération est collective et bloquante.
60 */
61 virtual void getVariableValues(VariableItemReal& variable,
62 Int64ConstArrayView unique_ids,
63 RealArrayView values) =0;
64 /*!
65 \brief Récupère les valeurs d'une variable sur des entités distantes
66
67 Cette opération permet de récupérer les valeurs de la variable
68 \a variable sur des entités qui ne se trouvent pas dans ce sous-domaine.
69 Le tableau \a unique_ids contient le numéro <b>unique</b> des entités
70 dont on souhaite récupérer la valeur et \a sub_domain_ids le sous-domaine
71 dans lequel se trouve les entités. Ces valeurs seront stockées dans \a values.
72
73 \a unique_ids, \a sub_domain_ids et \a values doivent avoir
74 le même nombre d'éléments.
75
76 Cette opération est collective et bloquante.
77 */
78 virtual void getVariableValues(VariableItemReal& variable,
79 Int64ConstArrayView unique_ids,
80 Int32ConstArrayView sub_domain_ids,
81 RealArrayView values) =0;
82};
83
84/*---------------------------------------------------------------------------*/
85/*---------------------------------------------------------------------------*/
86
87ARCANE_END_NAMESPACE
88
89/*---------------------------------------------------------------------------*/
90/*---------------------------------------------------------------------------*/
91
92#endif
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.
Vue modifiable d'un tableau d'un type T.
Vue constante d'un tableau de type T.