12#ifndef ARCANE_MESH_FACEUNIQUEIDBUILDER_H
13#define ARCANE_MESH_FACEUNIQUEIDBUILDER_H
17#include "arcane/utils/TraceAccessor.h"
19#include "arcane/mesh/DynamicMeshIncrementalBuilder.h"
53 void computeFacesUniqueIds();
Base class for 1D data vectors.
Enumerator for a HashTableMap.
Hash table for associative arrays.
Information exchange between processors.
TraceAccessor(ITraceMng *m)
Constructs an accessor via the trace manager m.
Implementation of a mesh.
void _computeFacesUniqueIdsParallelV2()
Calculates the unique IDs for each face in parallel V2.
void _v1CheckAndDump(Int64ConstArrayView faces_new_uid, Int64ConstArrayView faces_opposite_cell_uid)
Checks that every face has been numbered and, in verbose mode, writes one line per (cell,...
void _v1CellBlockSizes(Int64ConstArrayView faces_opposite_cell_uid, IntegerArray &my_cells_nb_back_face, Array< T_CellFaceInfo > &my_cells_faces_info)
Sizes every cell's block of face ids: its back faces plus its faces of the domain boundary.
void _computeFacesUniqueIdsSequential()
Calculates the unique IDs for each face sequentially.
void _v1AssignFaceUniqueIds(Int64ConstArrayView faces_opposite_cell_uid, IntegerConstArrayView faces_opposite_cell_index, IntegerConstArrayView faces_opposite_cell_owner, HashTableMapT< Int64, Int64 > &cells_first_face_uid, IntegerConstArrayView my_cells_nb_back_face)
Gives every face its uniqueId and its owner from the block starts.
void _v1Distributed()
Distributed computation of the face numbering of version 1.
FaceUniqueIdBuilder(DynamicMeshIncrementalBuilder *mesh_builder)
Constructs an instance for the mesh.
void _exchangeData(IParallelExchanger *exchanger, BoundaryInfosMap &boundary_infos_to_send)
void _v1ByAllGather(Int64ArrayView faces_opposite_cell_uid, IntegerArrayView faces_opposite_cell_index, IntegerArrayView faces_opposite_cell_owner, HashTableMapT< Int64, Int64 > &cells_first_face_uid, IntegerArray &my_cells_nb_back_face, Array< T_CellFaceInfo > &my_cells_faces_info)
The all-gather: every rank receives every boundary face, then every cell of the mesh,...
void _checkNoDuplicate()
Checks that there are no duplicate uniqueIds.
bool m_is_v1_distributed
Distribute the face numbering of version 1 (ARCANE_DISTRIBUTED_FACE_NUMBERING=1).
void _computeFacesUniqueIdsParallelV1()
Calculates the unique numbers for each face in parallel.
Helper class for parallel determination of face unique_ids.
ArrayView< Int64 > Int64ArrayView
C equivalent of a 1D array of 64-bit integers.
ArrayView< Integer > IntegerArrayView
C equivalent of a 1D array of integers.
Array< Integer > IntegerArray
Dynamic one-dimensional array of integers.
ConstArrayView< Int64 > Int64ConstArrayView
C equivalent of a 1D array of 64-bit integers.
ConstArrayView< Integer > IntegerConstArrayView
C equivalent of a 1D array of integers.