Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::mesh::Parallel3EdgeUniqueIdBuilder Class Reference
Inheritance diagram for Arcane::mesh::Parallel3EdgeUniqueIdBuilder:
Collaboration diagram for Arcane::mesh::Parallel3EdgeUniqueIdBuilder:

Public Member Functions

 Parallel3EdgeUniqueIdBuilder (ITraceMng *tm, DynamicMeshIncrementalBuilder *mesh_builder, Int64 max_node_uid)
void compute ()
 Calculates the unique IDs for every edge in parallel.
Public Member Functions inherited from Arcane::TraceAccessor
 TraceAccessor (ITraceMng *m)
 Constructs an accessor via the trace manager m.
 TraceAccessor (const TraceAccessor &rhs)
 Copy constructor.
TraceAccessoroperator= (const TraceAccessor &rhs)
 Copy assignment operator.
virtual ~TraceAccessor ()
 Frees resources.
ITraceMngtraceMng () const
 Trace manager.
TraceMessage info () const
 Flow for an information message.
TraceMessage pinfo () const
 Flow for a parallel information message.
TraceMessage info (char category) const
 Flow for an information message of a given category.
TraceMessage pinfo (char category) const
 Flow for a parallel information message of a given category.
TraceMessage info (bool v) const
 Flow for an information message.
TraceMessage warning () const
 Flow for a warning message.
TraceMessage pwarning () const
TraceMessage error () const
 Flow for an error message.
TraceMessage perror () const
TraceMessage log () const
 Flow for a log message.
TraceMessage plog () const
 Flow for a log message.
TraceMessage logdate () const
 Flow for a log message preceded by the date.
TraceMessage fatal () const
 Flow for a fatal error message.
TraceMessage pfatal () const
 Flow for a parallel fatal error message.
TraceMessageDbg debug (Trace::eDebugLevel=Trace::Medium) const
 Flow for a debug message.
Trace::eDebugLevel configDbgLevel () const
 Debug level of the configuration file.
TraceMessage info (Int32 verbose_level) const
 Flow for an information message of a given level.
TraceMessage linfo () const
 Flow for an information message with the local information level of this instance.
TraceMessage linfo (Int32 relative_level) const
 Flow for an information message with the local information level of this instance.
void fatalMessage (const StandaloneTraceMessage &o) const

Private Types

using BoundaryInfosMap = std::unordered_map<Int32, SharedArray<Int64>>

Private Member Functions

void _exchangeData (IParallelExchanger *exchanger)
void _addEdgeBoundaryInfo (Edge edge)
void _computeEdgesUniqueId ()
void _sendInfosToOtherRanks ()

Private Attributes

DynamicMeshm_mesh = nullptr
DynamicMeshIncrementalBuilderm_mesh_builder = nullptr
IParallelMngm_parallel_mng = nullptr
const Int32 m_my_rank = A_NULL_RANK
const Int32 m_nb_rank = A_NULL_RANK
BoundaryInfosMap m_boundary_infos_to_send
NodeUidToSubDomain m_uid_to_subdomain_converter
std::unordered_map< Int64, SharedArray< Int64 > > m_nodes_info
UniqueArray< bool > m_is_boundary_nodes
bool m_is_verbose = false

Additional Inherited Members

Protected Member Functions inherited from Arcane::TraceAccessor
void _setLocalVerboseLevel (Int32 v)
Int32 _localVerboseLevel () const

Detailed Description

Definition at line 202 of file EdgeUniqueIdBuilder.cc.

Member Typedef Documentation

◆ BoundaryInfosMap

using Arcane::mesh::Parallel3EdgeUniqueIdBuilder::BoundaryInfosMap = std::unordered_map<Int32, SharedArray<Int64>>
private

Definition at line 205 of file EdgeUniqueIdBuilder.cc.

Constructor & Destructor Documentation

◆ Parallel3EdgeUniqueIdBuilder()

Arcane::mesh::Parallel3EdgeUniqueIdBuilder::Parallel3EdgeUniqueIdBuilder ( ITraceMng * tm,
DynamicMeshIncrementalBuilder * mesh_builder,
Int64 max_node_uid )

Definition at line 240 of file EdgeUniqueIdBuilder.cc.

Member Function Documentation

◆ _addEdgeBoundaryInfo()

void Arcane::mesh::Parallel3EdgeUniqueIdBuilder::_addEdgeBoundaryInfo ( Edge edge)
private

Definition at line 290 of file EdgeUniqueIdBuilder.cc.

◆ _computeEdgesUniqueId()

void Arcane::mesh::Parallel3EdgeUniqueIdBuilder::_computeEdgesUniqueId ( )
private

Definition at line 425 of file EdgeUniqueIdBuilder.cc.

◆ _exchangeData()

◆ _sendInfosToOtherRanks()

void Arcane::mesh::Parallel3EdgeUniqueIdBuilder::_sendInfosToOtherRanks ( )
private

Definition at line 549 of file EdgeUniqueIdBuilder.cc.

◆ compute()

void Arcane::mesh::Parallel3EdgeUniqueIdBuilder::compute ( )

Calculates the unique IDs for every edge in parallel.

NEW VERSION.

NOTE: June 22, 2022 It seems that this version does not always work when it is called when the mesh is already cut. This is due to the fact that the algorithm above is copied onto the one that calculates the uniqueId() of faces (in FaceUniqueIdBuilder). However, the face calculation algorithm assumes that a boundary face exists in only one part (one rank) which is not the case for edges. We then end up with sub-domains that do not have their edges renumbered.

Definition at line 333 of file EdgeUniqueIdBuilder.cc.

References Arcane::HashTableMapT< KeyType, ValueType, KeyTraitsType >::add(), Arcane::IParallelMng::barrier(), Arcane::mesh::ItemInternalMap::eachItem(), Arcane::HashTableMapT< KeyType, ValueType, KeyTraitsType >::eachValue(), Arcane::Array< T >::fill(), Arcane::ITraceMng::flush(), Arcane::TraceAccessor::info(), Arcane::IItemFamily::maxLocalId(), Arcane::Face::nbCell(), Arcane::ItemWithNodes::nodeIds(), Arcane::Array< T >::reserve(), Arcane::TraceAccessor::traceMng(), and Arcane::Item::uniqueId().

Here is the call graph for this function:

Member Data Documentation

◆ m_boundary_infos_to_send

BoundaryInfosMap Arcane::mesh::Parallel3EdgeUniqueIdBuilder::m_boundary_infos_to_send
private

Definition at line 223 of file EdgeUniqueIdBuilder.cc.

◆ m_is_boundary_nodes

UniqueArray<bool> Arcane::mesh::Parallel3EdgeUniqueIdBuilder::m_is_boundary_nodes
private

Definition at line 226 of file EdgeUniqueIdBuilder.cc.

◆ m_is_verbose

bool Arcane::mesh::Parallel3EdgeUniqueIdBuilder::m_is_verbose = false
private

Definition at line 227 of file EdgeUniqueIdBuilder.cc.

◆ m_mesh

DynamicMesh* Arcane::mesh::Parallel3EdgeUniqueIdBuilder::m_mesh = nullptr
private

Definition at line 218 of file EdgeUniqueIdBuilder.cc.

◆ m_mesh_builder

DynamicMeshIncrementalBuilder* Arcane::mesh::Parallel3EdgeUniqueIdBuilder::m_mesh_builder = nullptr
private

Definition at line 219 of file EdgeUniqueIdBuilder.cc.

◆ m_my_rank

const Int32 Arcane::mesh::Parallel3EdgeUniqueIdBuilder::m_my_rank = A_NULL_RANK
private

Definition at line 221 of file EdgeUniqueIdBuilder.cc.

◆ m_nb_rank

const Int32 Arcane::mesh::Parallel3EdgeUniqueIdBuilder::m_nb_rank = A_NULL_RANK
private

Definition at line 222 of file EdgeUniqueIdBuilder.cc.

◆ m_nodes_info

std::unordered_map<Int64, SharedArray<Int64> > Arcane::mesh::Parallel3EdgeUniqueIdBuilder::m_nodes_info
private

Definition at line 225 of file EdgeUniqueIdBuilder.cc.

◆ m_parallel_mng

IParallelMng* Arcane::mesh::Parallel3EdgeUniqueIdBuilder::m_parallel_mng = nullptr
private

Definition at line 220 of file EdgeUniqueIdBuilder.cc.

◆ m_uid_to_subdomain_converter

NodeUidToSubDomain Arcane::mesh::Parallel3EdgeUniqueIdBuilder::m_uid_to_subdomain_converter
private

Definition at line 224 of file EdgeUniqueIdBuilder.cc.


The documentation for this class was generated from the following file: