Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
NullVariableSynchronizer.cc
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2023 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/* NullVariableSynchronizer.cc (C) 2000-2024 */
9/* */
10/* Synchronisation des variables en séquentiel. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13
14#include "arcane/utils/Event.h"
15
16#include "arcane/IVariableSynchronizer.h"
17#include "arcane/VariableSynchronizerEventArgs.h"
18#include "arcane/ItemGroup.h"
19#include "arcane/VariableCollection.h"
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24namespace Arcane
25{
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
38{
39 public:
40
42 : m_parallel_mng(pm)
43 , m_item_group(group)
44 {
45 }
46
47 public:
48
50 {
51 return m_parallel_mng;
52 }
53
54 const ItemGroup& itemGroup() override { return m_item_group; }
55 void compute() override {}
57 {
58 ARCANE_UNUSED(old_to_new_ids);
59 }
60 void synchronize(IVariable* var) override
61 {
62 ARCANE_UNUSED(var);
63 if (m_on_synchronized.hasObservers()) {
64 VariableSynchronizerEventArgs args(var, this, 0.0);
65 m_on_synchronized.notify(args);
66 }
67 }
69 {
70 ARCANE_UNUSED(local_ids);
72 }
74 {
75 ARCANE_UNUSED(vars);
76 if (m_on_synchronized.hasObservers()) {
77 VariableSynchronizerEventArgs args(vars, this, 0.0);
78 m_on_synchronized.notify(args);
79 }
80 }
82 {
83 ARCANE_UNUSED(local_ids);
85 }
90
91 Int32ConstArrayView sharedItems(Int32 index) override
92 {
93 ARCANE_UNUSED(index);
94 return Int32ConstArrayView();
95 }
96
97 Int32ConstArrayView ghostItems(Int32 index) override
98 {
99 ARCANE_UNUSED(index);
100 return Int32ConstArrayView();
101 }
102 void synchronizeData(IData* data) override
103 {
104 ARCANE_UNUSED(data);
105 }
106
108 {
109 return m_on_synchronized;
110 }
111
112 private:
113
114 IParallelMng* m_parallel_mng;
115 ItemGroup m_item_group;
117};
118
119/*---------------------------------------------------------------------------*/
120/*---------------------------------------------------------------------------*/
121
122extern "C++" IVariableSynchronizer*
123createNullVariableSynchronizer(IParallelMng* pm, const ItemGroup& group)
124{
125 return new NullVariableSynchronizer(pm, group);
126}
127
128/*---------------------------------------------------------------------------*/
129/*---------------------------------------------------------------------------*/
130
131} // namespace Arcane
132
133/*---------------------------------------------------------------------------*/
134/*---------------------------------------------------------------------------*/
Fichier contenant les mécanismes de gestion des évènements.
Interface d'une donnée.
Definition IData.h:33
Interface du gestionnaire de parallélisme pour un sous-domaine.
Interface d'un service de synchronisation de variable.
Interface d'une variable.
Definition IVariable.h:54
Groupe d'entités de maillage.
Definition ItemGroup.h:49
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Synchronisation des variables en séquentiel.
void synchronize(IVariable *var) override
Synchronise la variable var en mode bloquant.
void synchronize(IVariable *var, Int32ConstArrayView local_ids) override
Synchronise la variable var sur les entités local_ids en mode bloquant.
Int32ConstArrayView sharedItems(Int32 index) override
Liste des ids locaux des entités partagées avec un sous-domaine.
void synchronize(VariableCollection vars) override
Synchronise les variables vars en mode bloquant.
IParallelMng * parallelMng() override
Gestionnaire parallèle associé
const ItemGroup & itemGroup() override
Groupe d'entité servant à la synchronisation.
void synchronize(VariableCollection vars, Int32ConstArrayView local_ids) override
Synchronise les variables vars en mode bloquant.
EventObservable< const VariableSynchronizerEventArgs & > & onSynchronized() override
Evènement envoyé en début et fin de synchronisation.
void compute() override
Recalcule les infos de synchronisation.
void synchronizeData(IData *data) override
Synchronise la donnée data.
void changeLocalIds(Int32ConstArrayView old_to_new_ids) override
Appelé lorsque les numéros locaux des entités sont modifiés.
Int32ConstArrayView ghostItems(Int32 index) override
Liste des ids locaux des entités fantômes avec un sous-domaine.
Int32ConstArrayView communicatingRanks() override
Rangs des sous-domaines avec lesquels on communique.
Collection de variables.
Arguments de l'évènement notifiant une synchronisation de variables.
Vue constante d'un tableau de type T.
-*- 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:640