ug4
ug::RowSendingScheme< matrix_type > Class Template Reference

#include <row_sending_scheme.h>

Public Member Functions

void add_rows_to_matrix (matrix_type &mat)
 
void issue_send (pcl::InterfaceCommunicator< IndexLayout > &communicator, const IndexLayout &sendLayout, const IndexLayout &receiveLayout)
 
void process (const IndexLayout &receiveLayout)
 
 RowSendingScheme (matrix_type &_mat, ParallelNodes &_PN)
 
void set_create_new_nodes (bool bCreateNewNodes)
 
void set_rows_in_matrix (matrix_type &mat)
 

Private Types

typedef std::map< int, BinaryBufferBufferMap
 
typedef matrix_type::connection connection
 

Private Member Functions

void issue_send (BinaryBuffer &buf, int pid, int localRowIndex)
 
void process (BinaryBuffer &buf, int pid, size_t localRowIndex)
 
void resize_mat (matrix_type &mat)
 

Private Attributes

size_t colMax
 
std::map< size_t, std::vector< connection > > connections
 
bool m_bCreateNewNodes
 
const matrix_typemat
 
ParallelNodesPN
 
size_t rowMax
 
BufferMap rowsBufferMap
 

Member Typedef Documentation

◆ BufferMap

template<typename matrix_type >
typedef std::map<int, BinaryBuffer> ug::RowSendingScheme< matrix_type >::BufferMap
private

◆ connection

template<typename matrix_type >
typedef matrix_type::connection ug::RowSendingScheme< matrix_type >::connection
private

Constructor & Destructor Documentation

◆ RowSendingScheme()

template<typename matrix_type >
ug::RowSendingScheme< matrix_type >::RowSendingScheme ( matrix_type _mat,
ParallelNodes _PN 
)
inline

Member Function Documentation

◆ add_rows_to_matrix()

◆ issue_send() [1/2]

template<typename matrix_type >
void ug::RowSendingScheme< matrix_type >::issue_send ( BinaryBuffer buf,
int  pid,
int  localRowIndex 
)
inlineprivate

Put row 'localRowIndex' into the binary buffer 'buf' PN keeps track about which indices exist on the recieving pid

Parameters
bufbuf to write it to
pidreceiving pid
localRowIndexlocal row index
Note
modifies PN by specifying which nodes we sent to pid

References ug::ParallelNodes::create_node(), ug::LIB_ALG_MATRIX, ug::ParallelNodes::local_to_global(), ug::RowSendingScheme< matrix_type >::m_bCreateNewNodes, ug::RowSendingScheme< matrix_type >::mat, num_connections(), ug::RowSendingScheme< matrix_type >::PN, ug::Serialize(), and UG_DLOG.

◆ issue_send() [2/2]

template<typename matrix_type >
void ug::RowSendingScheme< matrix_type >::issue_send ( pcl::InterfaceCommunicator< IndexLayout > &  communicator,
const IndexLayout sendLayout,
const IndexLayout receiveLayout 
)
inline

◆ process() [1/2]

◆ process() [2/2]

◆ resize_mat()

◆ set_create_new_nodes()

template<typename matrix_type >
void ug::RowSendingScheme< matrix_type >::set_create_new_nodes ( bool  bCreateNewNodes)
inline

◆ set_rows_in_matrix()

Member Data Documentation

◆ colMax

◆ connections

◆ m_bCreateNewNodes

◆ mat

◆ PN

◆ rowMax

◆ rowsBufferMap


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