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
26
namespace
Arcane
27
{
28
29
/*---------------------------------------------------------------------------*/
30
/*---------------------------------------------------------------------------*/
31
32
class
IItemConnectivityGhostPolicy;
33
34
/*---------------------------------------------------------------------------*/
35
/*---------------------------------------------------------------------------*/
36
37
class
ARCANE_MESH_EXPORT
ItemConnectivitySynchronizer
38
:
public
IItemConnectivitySynchronizer
39
,
public
IExtraGhostItemsBuilder
40
,
public
mesh::IExtraGhostItemsAdder
41
{
42
public
:
43
45
ItemConnectivitySynchronizer
(
IItemConnectivity
* connectivity,
46
IItemConnectivityGhostPolicy
*
ghost_policy
);
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
,
87
IntegerSharedArray
&
owners
);
88
void
_getItemToSend(
Int32SharedArray
&
shared_items
,
89
Int32SharedArray
&
shared_items_connected_items
,
90
const
Integer rank);
91
};
92
93
/*---------------------------------------------------------------------------*/
94
/*---------------------------------------------------------------------------*/
95
96
}
// End namespace Arcane
97
98
/*---------------------------------------------------------------------------*/
99
/*---------------------------------------------------------------------------*/
100
101
#endif
/* CONNECTIVITYSYNCHRONIZER_H */
Arcane::IExtraGhostItemsBuilder
Interface d'un constructeur d'item fantômes "extraordinaires".
Definition
IExtraGhostItemsBuilder.h:44
Arcane::IItemConnectivityGhostPolicy
Definition
IItemConnectivityGhostPolicy.h:28
Arcane::IItemConnectivitySynchronizer
Definition
IItemConnectivitySynchronizer.h:33
Arcane::IItemConnectivity
Interface pour gérer une connectivité.
Definition
IItemConnectivity.h:57
Arcane::IItemFamily
Interface d'une famille d'entités.
Definition
IItemFamily.h:111
Arcane::IParallelMng
Interface du gestionnaire de parallélisme pour un sous-domaine.
Definition
IParallelMng.h:52
Arcane::ISubDomain
Interface du gestionnaire d'un sous-domaine.
Definition
ISubDomain.h:74
Arcane::ItemConnectivitySynchronizer
Definition
ItemConnectivitySynchronizer.h:41
Arcane::LimaWrapper
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition
Lima.cc:120
Arccore::ConstArrayView
Vue constante d'un tableau de type T.
Definition
arccore/src/base/arccore/base/ArrayView.h:533
Arccore::ISerializer
Interface d'un sérialiseur.
Definition
arccore/src/serialize/arccore/serialize/ISerializer.h:57
Arccore::SharedArray
Vecteur 1D de données avec sémantique par référence.
Definition
arccore/src/collections/arccore/collections/Array.h:1484
Arcane
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Definition
AcceleratorGlobal.h:36
arcane
mesh
ItemConnectivitySynchronizer.h
Généré le Lundi 18 Novembre 2024 03:01:38 pour Arcane par
1.9.8