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

Exchanger between sub-domains of linked interfaces. More...

#include <arcane/mesh/TiedInterfaceExchanger.h>

Inheritance diagram for Arcane::mesh::TiedInterfaceExchanger:
Collaboration diagram for Arcane::mesh::TiedInterfaceExchanger:

Classes

class  OneSubDomainInfo
class  DeserializedInfo

Public Member Functions

 TiedInterfaceExchanger (DynamicMesh *mesh)
void initialize () override
 Initializes the instance before the start of exchanges.
void notifyAction (const NotifyActionArgs &) override
 Notifies the instance that we are entering a certain phase of the exchange.
void serialize (const ItemFamilySerializeArgs &args) override
 Serializes the faces into the buffer buf.
void finalize () override
 Performs end-of-exchange processing.
IItemFamilyfamily () const override
 Associated family.
ePhase phase () const override
 Serialization phase where this instance is involved.
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

typedef std::map< Int32, OneSubDomainInfo * > SubDomainInfoMap

Private Member Functions

OneSubDomainInfo_getInfo (Int32 rank)

Private Attributes

DynamicMeshm_mesh
ISubDomainm_sub_domain
DeserializedInfom_deserialized_info
Int32 m_my_rank
SubDomainInfoMap m_infos

Additional Inherited Members

Public Types inherited from Arcane::IItemFamilySerializeStep
enum  ePhase { PH_Item , PH_Group , PH_Variable }
 Serialization phase. More...
enum class  eAction { AC_BeginPrepareSend , AC_EndPrepareSend , AC_BeginReceive , AC_EndReceive }
 Action during serialization. More...
Protected Member Functions inherited from Arcane::TraceAccessor
void _setLocalVerboseLevel (Int32 v)
Int32 _localVerboseLevel () const

Detailed Description

Exchanger between sub-domains of linked interfaces.

An instance of this class manages the exchange of information about linked interfaces (ITiedInterface) during an exchange of entities between sub-domains.

This class is used via ItemsExchangeInfo2.

An instance is only valid for one exchange and is then destroyed.

The order of calls is as follows:

  1. computeExchangeInfos() which calculates the info to be serialized.
  2. serialize() in writing mode for each rank to be sent
  3. serialize() in reading mode for each rank received
  4. rebuildTiedInterfaces() to reconstruct the interfaces.

Definition at line 66 of file TiedInterfaceExchanger.h.

Member Typedef Documentation

◆ SubDomainInfoMap

typedef std::map<Int32, OneSubDomainInfo*> Arcane::mesh::TiedInterfaceExchanger::SubDomainInfoMap
private

Definition at line 93 of file TiedInterfaceExchanger.h.

Constructor & Destructor Documentation

◆ TiedInterfaceExchanger()

Arcane::mesh::TiedInterfaceExchanger::TiedInterfaceExchanger ( DynamicMesh * mesh)

Definition at line 249 of file TiedInterfaceExchanger.cc.

◆ ~TiedInterfaceExchanger()

Arcane::mesh::TiedInterfaceExchanger::~TiedInterfaceExchanger ( )

Definition at line 262 of file TiedInterfaceExchanger.cc.

Member Function Documentation

◆ _getInfo()

TiedInterfaceExchanger::OneSubDomainInfo * Arcane::mesh::TiedInterfaceExchanger::_getInfo ( Int32 rank)
inlineprivate

Definition at line 273 of file TiedInterfaceExchanger.cc.

◆ family()

IItemFamily * Arcane::mesh::TiedInterfaceExchanger::family ( ) const
overridevirtual

Associated family.

Implements Arcane::IItemFamilySerializeStep.

Definition at line 414 of file TiedInterfaceExchanger.cc.

◆ finalize()

void Arcane::mesh::TiedInterfaceExchanger::finalize ( )
overridevirtual

Performs end-of-exchange processing.

Implements Arcane::IItemFamilySerializeStep.

Definition at line 363 of file TiedInterfaceExchanger.cc.

References Arcane::mesh::FaceFamily::applyTiedInterface(), ENUMERATE_FACE, Arcane::mesh::TiedInterface::masterInterface(), Arcane::Array< T >::resize(), Arcane::ConstArrayView< T >::size(), Arcane::ItemGroup::size(), and Arcane::Item::uniqueId().

Here is the call graph for this function:

◆ initialize()

void Arcane::mesh::TiedInterfaceExchanger::initialize ( )
overridevirtual

Initializes the instance before the start of exchanges.

Implements Arcane::IItemFamilySerializeStep.

Definition at line 287 of file TiedInterfaceExchanger.cc.

References ENUMERATE_FACE, Arcane::mesh::ItemFamily::itemsNewOwner(), Arcane::mesh::TiedInterface::masterInterface(), Arcane::mesh::FaceFamily::removeTiedInterface(), Arcane::ConstArrayView< T >::size(), Arcane::mesh::TiedInterface::tiedFaces(), and Arcane::mesh::TiedInterface::tiedNodes().

Here is the call graph for this function:

◆ notifyAction()

void Arcane::mesh::TiedInterfaceExchanger::notifyAction ( const NotifyActionArgs & args)
inlineoverridevirtual

Notifies the instance that we are entering a certain phase of the exchange.

Implements Arcane::IItemFamilySerializeStep.

Definition at line 81 of file TiedInterfaceExchanger.h.

◆ phase()

ePhase Arcane::mesh::TiedInterfaceExchanger::phase ( ) const
inlineoverridevirtual

Serialization phase where this instance is involved.

Implements Arcane::IItemFamilySerializeStep.

Definition at line 85 of file TiedInterfaceExchanger.h.

◆ serialize()

void Arcane::mesh::TiedInterfaceExchanger::serialize ( const ItemFamilySerializeArgs & args)
overridevirtual

Serializes the faces into the buffer buf.

The faces are created at the same time as the cells. This serialization therefore does not need to create them. We only manage the data concerning the tied interfaces. It is important to be careful to only send the faces that will belong to the destination sub-domain and not the ghost faces.

Implements Arcane::IItemFamilySerializeStep.

Definition at line 340 of file TiedInterfaceExchanger.cc.

References Arcane::ISerializer::mode(), Arcane::ISerializer::ModeGet, Arcane::ISerializer::ModePut, Arcane::ItemFamilySerializeArgs::rank(), and Arcane::ItemFamilySerializeArgs::serializer().

Here is the call graph for this function:

Member Data Documentation

◆ m_deserialized_info

DeserializedInfo* Arcane::mesh::TiedInterfaceExchanger::m_deserialized_info
private

Definition at line 91 of file TiedInterfaceExchanger.h.

◆ m_infos

SubDomainInfoMap Arcane::mesh::TiedInterfaceExchanger::m_infos
private

Definition at line 94 of file TiedInterfaceExchanger.h.

◆ m_mesh

DynamicMesh* Arcane::mesh::TiedInterfaceExchanger::m_mesh
private

Definition at line 89 of file TiedInterfaceExchanger.h.

◆ m_my_rank

Int32 Arcane::mesh::TiedInterfaceExchanger::m_my_rank
private

Definition at line 92 of file TiedInterfaceExchanger.h.

◆ m_sub_domain

ISubDomain* Arcane::mesh::TiedInterfaceExchanger::m_sub_domain
private

Definition at line 90 of file TiedInterfaceExchanger.h.


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