12#ifndef ARCANE_MESH_PARALLELAMRCONSISTENCY_H
13#define ARCANE_MESH_PARALLELAMRCONSISTENCY_H
17#include "arcane/utils/String.h"
18#include "arcane/utils/HashTableMap.h"
19#include "arcane/utils/Real3.h"
21#include "arcane/IMesh.h"
22#include "arcane/ItemGroup.h"
23#include "arcane/Item.h"
24#include "arcane/VariableTypes.h"
26#include "arcane/mesh/DynamicMeshKindInfos.h"
28#include "arcane/utils/PerfCounterMng.h"
30#include <unordered_set>
31#include <unordered_map>
48 return m_nodes_unique_id.size();
91 Real3 getCoord()
const
125 m_unique_id(NULL_ITEM_ID), m_owner(A_NULL_RANK), m_nb_node(0), m_data_index(-1), m_mng(0)
136 m_data_index(data_index), m_mng(
mng)
146 return m_cell_unique_id;
148 Integer nbNode()
const
154 return m_mng->m_nodes_unique_id[m_data_index + i];
156 void setNodeUniqueId(Integer i,
const ItemUniqueId& uid)
158 m_mng->m_nodes_unique_id[m_data_index + i] = uid;
160 Integer owner()
const
164 void setCenter(
Real3 center)
172 Integer getDataIndex()
183 Integer m_data_index;
199 : m_unique_id(NULL_ITEM_ID), m_owner(A_NULL_RANK) { }
207 Integer owner()
const
211 void setCenter(
Real3 center)
241 typedef std::unordered_set<Int64> ItemUidSet;
242 typedef std::unordered_map<Int64,Item> ItemMap;
243 typedef std::pair<Int64,Item> ItemMapValue;
246#ifdef ACTIVATE_PERF_COUNTER
268 bool isUpdated()
const {
269 return m_is_updated ;
272 if(!m_is_updated) init() ;
277 void changeOwnersOld();
279#ifdef ACTIVATE_PERF_COUNTER
281 return m_perf_counter ;
293 String m_active_face_name;
300#ifdef ACTIVATE_PERF_COUNTER
324 void _gatherAllNodesInfo();
332 bool _hasSharedNodes(
Face face);
Identifiant unique d'une entité.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Classe gérant un vecteur de réel de dimension 3.
Infos sur une Face active.
Infos sur une Face active.
structure de recherche d'un noeud à partir de ses coords La clef de hashage est la position geometriq...
Integer m_owner
propriétaire du noeud
ItemUniqueId m_unique_id
Numéro de ce noeud.
Real3 m_coord
Coordonnées de ce noeud.
SharedArray< ItemUniqueId > m_connected_active_faces
Liste des uniqueId() des faces actives auquel ce noeud peut être connecté
void makeNewItemsConsistent2(MapCoordToUid &node_finder, MapCoordToUid &face_finder)
Détermine les faces à envoyer aux voisins.
void makeNewItemsConsistent(NodeMapCoordToUid &node_finder, FaceMapCoordToUid &face_finder)
Détermine les faces à envoyer aux voisins.
void _gatherFaces(ConstArrayView< ItemUniqueId > faces_to_send, ConstArrayView< ItemUniqueId > nodes_to_send, FaceInfoMap &face_map, MapCoordToUid &node_finder, MapCoordToUid &face_finder, ItemUidSet &updated_face_uids, ItemUidSet &updated_node_uids)
void _gatherItems(ConstArrayView< ItemUniqueId > nodes_to_send, ConstArrayView< ItemUniqueId > faces_to_send, NodeInfoList &node_map, FaceInfoMap2 &face_map, MapCoordToUid &node_finder, MapCoordToUid &face_finder)
Chaîne de caractères unicode.
Classe d'accès aux traces.
Vecteur 1D de données avec sémantique par valeur (style STL).