ug4
ug::ComPol_MatAddRowsOverlap0< TMatrix > Class Template Reference

Communication Policy to copy slave couplings to master row. More...

#include <communication_policies.h>

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

Public Member Functions

virtual bool begin_layout_extraction (const Layout *pLayout)
 signals the beginning of a layout extraction. More...
 
virtual bool collect (ug::BinaryBuffer &buff, const Interface &interface)
 writes the interface values into a buffer that will be sent More...
 
 ComPol_MatAddRowsOverlap0 (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...
 
- 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 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
 
TMatrix & m_rMat
 
AlgebraIDVecm_vGlobalID
 

Additional Inherited Members

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

Detailed Description

template<class TMatrix>
class ug::ComPol_MatAddRowsOverlap0< TMatrix >

Communication Policy to copy slave couplings to master row.

This Communication policy assumes that the matrix is stored additively with no overlap. It then copies the row entries of the slaves indices to the corresponding master rows. Only those values are copied that have if the index the slave couples to has also a representation on the other process. This means that couplings to inner indices or to other slave/master, that have only connections to other processes, are not taken into account.

Template Parameters
TMatrixmatrix type

Constructor & Destructor Documentation

◆ ComPol_MatAddRowsOverlap0()

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

Constructor setting the vector.

vGlobalID must have size >= mat.num_rows()

References ug::ComPol_MatAddRowsOverlap0< TMatrix >::m_rMat, and UG_ASSERT.

Member Function Documentation

◆ begin_layout_extraction()

template<class TMatrix >
virtual bool ug::ComPol_MatAddRowsOverlap0< TMatrix >::begin_layout_extraction ( const Layout pLayout)
inlinevirtual

signals the beginning of a layout extraction.

the default implementation returns true and does nothing else. This method is only called on processes which extract data.

Reimplemented from pcl::ICommunicationPolicy< IndexLayout >.

References ug::GenerateAlgebraIDHashList(), ug::ComPol_MatAddRowsOverlap0< TMatrix >::m_algIDHash, and ug::ComPol_MatAddRowsOverlap0< TMatrix >::m_vGlobalID.

◆ collect()

◆ extract()

Member Data Documentation

◆ m_algIDHash

◆ m_rMat

◆ m_vGlobalID


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