Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::mesh::MeshExchange Class Reference

Exchange of mesh entities between subdomains. More...

#include <arcane/mesh/MeshExchange.h>

Inheritance diagram for Arcane::mesh::MeshExchange:
Collaboration diagram for Arcane::mesh::MeshExchange:

Classes

class  IncrementalUnorderedMultiArray
class  DynamicMultiArray

Public Member Functions

 MeshExchange (IMesh *mesh)
void computeInfos ()
 Compute the info.
ISubDomainsubDomain () const
IMeshmesh () const
ConstArrayView< std::set< Int32 > > getItemsToSend (IItemFamily *family) const
 List of entities to send by subdomain for the family family.
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

Public Attributes

std::map< IItemFamily *, UniqueArray< std::set< Int32 > > * > m_items_to_send

Private Types

using ItemDestRankArray = DynamicMultiArray<Int32>
using ItemDestRankMap = std::map<IItemFamily*, ItemDestRankArray*>
using ItemDestRankMapArray = UniqueArray<ItemDestRankMap>

Private Member Functions

void _computeMeshConnectivityInfos2 (Int32ConstArrayView cells_new_owner)
 AMR.
void _addTreeCellToSend (ArrayView< std::set< Int32 > > items_to_send, Int32 local_id, Int32 cell_local_id, CellInfoListView cells)
void _addTreeItemToSend (Int32 cell_local_id, CellInfoListView cells)
void _addItemToSend2 (ArrayView< std::set< Int32 > > items_to_send, Int32 item_local_id, Int32 cell_local_id)
void _familyTree (Int32Array &family, Cell item, const bool reset=true) const
void _computeItemsToSend2 ()
void _computeMeshConnectivityInfos (Int32ConstArrayView cells_new_owner)
void _computeGraphConnectivityInfos ()
void _exchangeCellDataInfos (Int32ConstArrayView cells_new_owner, bool use_active_cells)
void _computeItemsToSend (bool send_dof=false)
void _addItemToSend (ArrayView< std::set< Int32 > > items_to_send, Int32 item_local_id, Int32 cell_local_id, bool use_itemfamily_network=false)
void _computeMeshConnectivityInfos3 ()
 AMR OFF.
void _exchangeCellDataInfos3 ()
void _computeItemsToSend3 ()
void _propagatesToChildConnectivities (IItemFamily *family)
void _propagatesToChildDependencies (IItemFamily *family)
void _addDestRank (const Item &item, IItemFamily *item_family, const Integer new_owner)
void _addDestRank (const Item &item, IItemFamily *item_family, const Item &followed_item, IItemFamily *followed_item_family)
void _allocData (IItemFamily *family)
void _addGraphConnectivityToNewConnectivityInfo ()
ArrayView< std::set< Int32 > > _getItemsToSend (IItemFamily *family)
 List of entities to send by subdomain for the family family.
void _setItemsToSend (IItemFamily *family)
void _printItemToSend (IItemFamily *family)
 Using ItemFamilyNetwork.
void _printItemToRemove (IItemFamily *family)
void _markRemovableItems (bool with_cell_family=true)
void _markRemovableDoFs ()
void _markRemovableParticles ()
void _markRemovableCells (Int32ConstArrayView cells_new_owner, bool use_active_cells)
void _debugPrint ()
void _checkSubItemsDestRanks ()
void _exchangeGhostItemDataInfos ()
Integer _getSubdomainIndexInCommunicatingRanks (Integer rank, Int32ConstArrayView communicating_ranks)

Private Attributes

IMeshm_mesh
 Mesh.
IParallelMngm_parallel_mng
Int32 m_nb_rank
Int32 m_rank
IItemFamilym_cell_family
IncrementalUnorderedMultiArray< Int32 > * m_neighbour_cells_owner
IncrementalUnorderedMultiArray< Int32 > * m_neighbour_cells_new_owner
DynamicMultiArray< Int32 > * m_neighbour_extra_cells_owner
DynamicMultiArray< Int32 > * m_neighbour_extra_cells_new_owner
ItemDestRankMap m_item_dest_ranks_map
ItemDestRankMapArray m_ghost_item_dest_ranks_map

Additional Inherited Members

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

Detailed Description

Exchange of mesh entities between subdomains.

Definition at line 47 of file MeshExchange.h.

Member Typedef Documentation

◆ ItemDestRankArray

using Arcane::mesh::MeshExchange::ItemDestRankArray = DynamicMultiArray<Int32>
private

Definition at line 141 of file MeshExchange.h.

◆ ItemDestRankMap

using Arcane::mesh::MeshExchange::ItemDestRankMap = std::map<IItemFamily*, ItemDestRankArray*>
private

Definition at line 142 of file MeshExchange.h.

◆ ItemDestRankMapArray

using Arcane::mesh::MeshExchange::ItemDestRankMapArray = UniqueArray<ItemDestRankMap>
private

Definition at line 143 of file MeshExchange.h.

Constructor & Destructor Documentation

◆ MeshExchange()

Arcane::mesh::MeshExchange::MeshExchange ( IMesh * mesh)

Definition at line 181 of file MeshExchange.cc.

◆ ~MeshExchange()

Arcane::mesh::MeshExchange::~MeshExchange ( )

Definition at line 199 of file MeshExchange.cc.

Member Function Documentation

◆ _addDestRank() [1/2]

void Arcane::mesh::MeshExchange::_addDestRank ( const Item & item,
IItemFamily * item_family,
const Integer new_owner )
private

Definition at line 1005 of file MeshExchange.cc.

◆ _addDestRank() [2/2]

void Arcane::mesh::MeshExchange::_addDestRank ( const Item & item,
IItemFamily * item_family,
const Item & followed_item,
IItemFamily * followed_item_family )
private

Definition at line 1024 of file MeshExchange.cc.

◆ _addGraphConnectivityToNewConnectivityInfo()

void Arcane::mesh::MeshExchange::_addGraphConnectivityToNewConnectivityInfo ( )
private

Definition at line 329 of file MeshExchange.cc.

◆ _addItemToSend()

void Arcane::mesh::MeshExchange::_addItemToSend ( ArrayView< std::set< Int32 > > items_to_send,
Int32 item_local_id,
Int32 cell_local_id,
bool use_itemfamily_network = false )
private

Definition at line 537 of file MeshExchange.cc.

◆ _addTreeCellToSend()

void Arcane::mesh::MeshExchange::_addTreeCellToSend ( ArrayView< std::set< Int32 > > items_to_send,
Int32 local_id,
Int32 cell_local_id,
CellInfoListView cells )
private

Definition at line 696 of file MeshExchange.cc.

◆ _addTreeItemToSend()

void Arcane::mesh::MeshExchange::_addTreeItemToSend ( Int32 cell_local_id,
CellInfoListView cells )
private

Definition at line 726 of file MeshExchange.cc.

◆ _allocData()

void Arcane::mesh::MeshExchange::_allocData ( IItemFamily * family)
private

Definition at line 1055 of file MeshExchange.cc.

◆ _checkSubItemsDestRanks()

void Arcane::mesh::MeshExchange::_checkSubItemsDestRanks ( )
private

Definition at line 1434 of file MeshExchange.cc.

◆ _computeGraphConnectivityInfos()

void Arcane::mesh::MeshExchange::_computeGraphConnectivityInfos ( )
private

Definition at line 301 of file MeshExchange.cc.

◆ _computeItemsToSend()

void Arcane::mesh::MeshExchange::_computeItemsToSend ( bool send_dof = false)
private

Definition at line 561 of file MeshExchange.cc.

◆ _computeItemsToSend2()

void Arcane::mesh::MeshExchange::_computeItemsToSend2 ( )
private

Definition at line 787 of file MeshExchange.cc.

◆ _computeItemsToSend3()

void Arcane::mesh::MeshExchange::_computeItemsToSend3 ( )
private

Definition at line 1206 of file MeshExchange.cc.

◆ _computeMeshConnectivityInfos()

void Arcane::mesh::MeshExchange::_computeMeshConnectivityInfos ( Int32ConstArrayView cells_new_owner)
private

Definition at line 350 of file MeshExchange.cc.

◆ _computeMeshConnectivityInfos2()

void Arcane::mesh::MeshExchange::_computeMeshConnectivityInfos2 ( Int32ConstArrayView cells_new_owner)
private

AMR.

Definition at line 648 of file MeshExchange.cc.

References Arcane::Array< T >::clear(), ENUMERATE_CELL, Arcane::Array< T >::fill(), Arcane::Item::localId(), and Arcane::ItemWithNodes::nodes().

Referenced by computeInfos().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _computeMeshConnectivityInfos3()

void Arcane::mesh::MeshExchange::_computeMeshConnectivityInfos3 ( )
private

AMR OFF.

ITEM_FAMILY_NETWORK ON

Definition at line 880 of file MeshExchange.cc.

References Arcane::TraceAccessor::info(), and m_mesh.

Referenced by computeInfos().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _debugPrint()

void Arcane::mesh::MeshExchange::_debugPrint ( )
private

Definition at line 1066 of file MeshExchange.cc.

◆ _exchangeCellDataInfos()

void Arcane::mesh::MeshExchange::_exchangeCellDataInfos ( Int32ConstArrayView cells_new_owner,
bool use_active_cells )
private

Definition at line 397 of file MeshExchange.cc.

◆ _exchangeCellDataInfos3()

void Arcane::mesh::MeshExchange::_exchangeCellDataInfos3 ( )
private

Definition at line 1085 of file MeshExchange.cc.

◆ _exchangeGhostItemDataInfos()

void Arcane::mesh::MeshExchange::_exchangeGhostItemDataInfos ( )
private

Definition at line 1466 of file MeshExchange.cc.

◆ _familyTree()

void Arcane::mesh::MeshExchange::_familyTree ( Int32Array & family,
Cell item,
const bool reset = true ) const
private

Definition at line 765 of file MeshExchange.cc.

◆ _getItemsToSend()

ArrayView< std::set< Int32 > > Arcane::mesh::MeshExchange::_getItemsToSend ( IItemFamily * family)
private

List of entities to send by subdomain for the family family.

List of entities to send by sub-domain for family family.

Definition at line 232 of file MeshExchange.cc.

References ARCANE_FATAL, and Arcane::IItemFamily::name().

Here is the call graph for this function:

◆ _getSubdomainIndexInCommunicatingRanks()

Integer Arcane::mesh::MeshExchange::_getSubdomainIndexInCommunicatingRanks ( Integer rank,
Int32ConstArrayView communicating_ranks )
private

Definition at line 1592 of file MeshExchange.cc.

◆ _markRemovableCells()

void Arcane::mesh::MeshExchange::_markRemovableCells ( Int32ConstArrayView cells_new_owner,
bool use_active_cells )
private

Definition at line 1355 of file MeshExchange.cc.

◆ _markRemovableDoFs()

void Arcane::mesh::MeshExchange::_markRemovableDoFs ( )
private

Definition at line 1305 of file MeshExchange.cc.

◆ _markRemovableItems()

void Arcane::mesh::MeshExchange::_markRemovableItems ( bool with_cell_family = true)
private

Definition at line 1330 of file MeshExchange.cc.

◆ _markRemovableParticles()

void Arcane::mesh::MeshExchange::_markRemovableParticles ( )
private

Definition at line 1414 of file MeshExchange.cc.

◆ _printItemToRemove()

void Arcane::mesh::MeshExchange::_printItemToRemove ( IItemFamily * family)
private

Definition at line 1292 of file MeshExchange.cc.

◆ _printItemToSend()

void Arcane::mesh::MeshExchange::_printItemToSend ( IItemFamily * family)
private

Using ItemFamilyNetwork.

Definition at line 1271 of file MeshExchange.cc.

References ARCANE_FATAL, Arcane::TraceAccessor::debug(), and Arcane::IItemFamily::name().

Here is the call graph for this function:

◆ _propagatesToChildConnectivities()

void Arcane::mesh::MeshExchange::_propagatesToChildConnectivities ( IItemFamily * family)
private

Definition at line 919 of file MeshExchange.cc.

◆ _propagatesToChildDependencies()

void Arcane::mesh::MeshExchange::_propagatesToChildDependencies ( IItemFamily * family)
private

Definition at line 979 of file MeshExchange.cc.

◆ _setItemsToSend()

void Arcane::mesh::MeshExchange::_setItemsToSend ( IItemFamily * family)
private

Definition at line 1252 of file MeshExchange.cc.

◆ computeInfos()

void Arcane::mesh::MeshExchange::computeInfos ( )

Compute the info.

AMR

AMR END

Definition at line 244 of file MeshExchange.cc.

References _computeMeshConnectivityInfos2(), _computeMeshConnectivityInfos3(), and m_mesh.

Referenced by Arcane::mesh::MeshExchanger::computeExchangeInfos().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getItemsToSend()

ConstArrayView< std::set< Int32 > > Arcane::mesh::MeshExchange::getItemsToSend ( IItemFamily * family) const

List of entities to send by subdomain for the family family.

List of entities to send by sub-domain for family family.

Definition at line 219 of file MeshExchange.cc.

References ARCANE_FATAL, and Arcane::IItemFamily::name().

Referenced by Arcane::mesh::MeshExchanger::computeExchangeInfos().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mesh()

IMesh * Arcane::mesh::MeshExchange::mesh ( ) const
inline

Definition at line 73 of file MeshExchange.h.

◆ subDomain()

ISubDomain * Arcane::mesh::MeshExchange::subDomain ( ) const

Definition at line 1605 of file MeshExchange.cc.

Member Data Documentation

◆ m_cell_family

IItemFamily* Arcane::mesh::MeshExchange::m_cell_family
private

Definition at line 84 of file MeshExchange.h.

◆ m_ghost_item_dest_ranks_map

ItemDestRankMapArray Arcane::mesh::MeshExchange::m_ghost_item_dest_ranks_map
private

Definition at line 145 of file MeshExchange.h.

◆ m_item_dest_ranks_map

ItemDestRankMap Arcane::mesh::MeshExchange::m_item_dest_ranks_map
private

Definition at line 144 of file MeshExchange.h.

◆ m_items_to_send

std::map<IItemFamily*, UniqueArray<std::set<Int32> >*> Arcane::mesh::MeshExchange::m_items_to_send

Definition at line 120 of file MeshExchange.h.

◆ m_mesh

IMesh* Arcane::mesh::MeshExchange::m_mesh
private

Mesh.

Definition at line 80 of file MeshExchange.h.

Referenced by _computeMeshConnectivityInfos3(), and computeInfos().

◆ m_nb_rank

Int32 Arcane::mesh::MeshExchange::m_nb_rank
private

Definition at line 82 of file MeshExchange.h.

◆ m_neighbour_cells_new_owner

IncrementalUnorderedMultiArray<Int32>* Arcane::mesh::MeshExchange::m_neighbour_cells_new_owner
private

Definition at line 125 of file MeshExchange.h.

◆ m_neighbour_cells_owner

IncrementalUnorderedMultiArray<Int32>* Arcane::mesh::MeshExchange::m_neighbour_cells_owner
private

Definition at line 124 of file MeshExchange.h.

◆ m_neighbour_extra_cells_new_owner

DynamicMultiArray<Int32>* Arcane::mesh::MeshExchange::m_neighbour_extra_cells_new_owner
private

Definition at line 127 of file MeshExchange.h.

◆ m_neighbour_extra_cells_owner

DynamicMultiArray<Int32>* Arcane::mesh::MeshExchange::m_neighbour_extra_cells_owner
private

Definition at line 126 of file MeshExchange.h.

◆ m_parallel_mng

IParallelMng* Arcane::mesh::MeshExchange::m_parallel_mng
private

Definition at line 81 of file MeshExchange.h.

◆ m_rank

Int32 Arcane::mesh::MeshExchange::m_rank
private

Definition at line 83 of file MeshExchange.h.


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