ug4
ug::ComPol_MatCreateOverlap< TMatrix > Class Template Reference

Highly specialized communication policy for matrix overlap creation. More...

#include <matrix_overlap_impl.h>

+ Inheritance diagram for ug::ComPol_MatCreateOverlap< TMatrix >:

Classes

struct  ExtCon
 

Public Types

typedef TMatrix::value_type block_t
 
- Public Types inherited from pcl::ICommunicationPolicy< IndexLayout >
typedef Layout::Interface Interface
 
typedef IndexLayout Layout
 

Public Member Functions

virtual bool collect (ug::BinaryBuffer &buff, const Interface &interface)
 writes the interface values into a buffer that will be sent More...
 
 ComPol_MatCreateOverlap (TMatrix &rMat, AlgebraIDVec &vGlobalID)
 Constructor setting the vector. More...
 
virtual bool extract (ug::BinaryBuffer &buff, const Interface &interface)
 writes values from a buffer into the interface More...
 
virtual void post_process ()
 After communication is done, this method should be called to create the overlap. More...
 
- Public Member Functions inherited from pcl::ICommunicationPolicy< IndexLayout >
virtual bool begin_layout_collection (const Layout *pLayout)
 signals the beginning of a layout collection. More...
 
virtual bool begin_layout_extraction (const Layout *pLayout)
 signals the beginning of a layout extraction. More...
 
virtual void begin_level_extraction (int level)
 signals that a new layout-level will now be processed. More...
 
virtual bool end_layout_collection (const Layout *pLayout)
 signals the end of a layout collection More...
 
virtual bool end_layout_extraction (const Layout *pLayout)
 signals the end of a layout extraction More...
 
virtual int get_required_buffer_size (const Interface &interface)
 returns the size of the buffer in bytes, that will be required for interface-communication. More...
 
virtual ~ICommunicationPolicy ()
 

Private Attributes

AlgebraIDHashList m_algIDHash
 map globalID->localID More...
 
AlgebraIDVecm_globalIDs
 map localID->globalID More...
 
TMatrix & m_mat
 
std::map< ExtCon, block_tm_recvNewCons
 New connections received from other processes. More...
 
std::set< AlgebraIDm_recvNewIDs
 Here we just collect the new IDs which are added to the local matrix. More...
 

Detailed Description

template<class TMatrix>
class ug::ComPol_MatCreateOverlap< TMatrix >

Highly specialized communication policy for matrix overlap creation.

Note
This policy is only intended to be used for slave->master communication.
This policy is only used for internal implementation for overlap creation, e.g. in CreateOverlap.

After communicating from slave->master, call post_process() to create the actual overlap. GlobalIDs will also be updated for new entries.

Warning
Please make sure that the matrix and the array of globalIDs passed to the constructor exist until the instance of this class is destroyed.
See also
CreateOverlap

Member Typedef Documentation

◆ block_t

template<class TMatrix >
typedef TMatrix::value_type ug::ComPol_MatCreateOverlap< TMatrix >::block_t

Constructor & Destructor Documentation

◆ ComPol_MatCreateOverlap()

template<class TMatrix >
ug::ComPol_MatCreateOverlap< TMatrix >::ComPol_MatCreateOverlap ( TMatrix &  rMat,
AlgebraIDVec vGlobalID 
)
inline

Member Function Documentation

◆ collect()

◆ extract()

◆ post_process()

Member Data Documentation

◆ m_algIDHash

◆ m_globalIDs

◆ m_mat

◆ m_recvNewCons

template<class TMatrix >
std::map<ExtCon, block_t> ug::ComPol_MatCreateOverlap< TMatrix >::m_recvNewCons
private

New connections received from other processes.

Referenced by ug::ComPol_MatCreateOverlap< TMatrix >::extract(), and ug::ComPol_MatCreateOverlap< TMatrix >::post_process().

◆ m_recvNewIDs

template<class TMatrix >
std::set<AlgebraID> ug::ComPol_MatCreateOverlap< TMatrix >::m_recvNewIDs
private

Here we just collect the new IDs which are added to the local matrix.

Referenced by ug::ComPol_MatCreateOverlap< TMatrix >::extract(), and ug::ComPol_MatCreateOverlap< TMatrix >::post_process().


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