Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
ItemConnectivitySynchronizer.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/* ItemConnectivitySynchronizer.h (C) 2000-2021 */
9/* */
10/* Synchronization des connectivités. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_DOF_CONNECTIVITYSYNCHRONIZER_H
13#define ARCANE_DOF_CONNECTIVITYSYNCHRONIZER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/IItemConnectivity.h"
18#include "arcane/IItemConnectivitySynchronizer.h"
19
20#include "arcane/mesh/ItemConnectivity.h"
21#include "arcane/mesh/ExtraGhostItemsManager.h"
22
23/*---------------------------------------------------------------------------*/
24/*---------------------------------------------------------------------------*/
25
26namespace Arcane
27{
28
29/*---------------------------------------------------------------------------*/
30/*---------------------------------------------------------------------------*/
31
32class IItemConnectivityGhostPolicy;
33
34/*---------------------------------------------------------------------------*/
35/*---------------------------------------------------------------------------*/
36
37class ARCANE_MESH_EXPORT ItemConnectivitySynchronizer
40, public mesh::IExtraGhostItemsAdder
41{
42 public:
43
47
48 public:
49
50 /*---------------------------------------------------------------------------*/
52
59 void synchronize();
60 IItemConnectivity* getConnectivity() {return m_connectivity;}
61
62 /*---------------------------------------------------------------------------*/
64
65 void computeExtraItemsToSend();
66 IntegerConstArrayView extraItemsToSend(Integer sid) const { return m_data_to_send[sid];}
67
68 /*---------------------------------------------------------------------------*/
70
71 void serializeGhostItems(ISerializer* buffer,Int32ConstArrayView ghost_item_lids);
72 void addExtraGhostItems (ISerializer* buffer);
73 void updateSynchronizationInfo(){ m_connectivity->targetFamily()->computeSynchronizeInfos(); }
74 [[deprecated("Y2021: Do not use this method. Try to get 'ISubDomain' from another way")]]
75 ISubDomain* subDomain();
76 IItemFamily* itemFamily() { return m_connectivity->targetFamily(); }
77
78 private:
79
80 IItemConnectivity* m_connectivity;
81 IItemConnectivityGhostPolicy* m_ghost_policy;
82 IParallelMng* m_parallel_mng;
83 SharedArray<Int32SharedArray> m_data_to_send;
84 SharedArray<std::set<Int64> > m_added_ghost;
85
86 void _removeDuplicatedValues(Int64SharedArray& shared_item_uids,
88 void _getItemToSend(Int32SharedArray& shared_items,
90 const Integer rank);
91};
92
93/*---------------------------------------------------------------------------*/
94/*---------------------------------------------------------------------------*/
95
96} // End namespace Arcane
97
98/*---------------------------------------------------------------------------*/
99/*---------------------------------------------------------------------------*/
100
101#endif /* CONNECTIVITYSYNCHRONIZER_H */
Interface d'un constructeur d'item fantômes "extraordinaires".
Interface pour gérer une connectivité.
Interface d'une famille d'entités.
Interface du gestionnaire de parallélisme pour un sous-domaine.
Interface du gestionnaire d'un sous-domaine.
Definition ISubDomain.h:74
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Vue constante d'un tableau de type T.
Vecteur 1D de données avec sémantique par référence.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-