FEAT 3
Finite Element Analysis Toolbox
Loading...
Searching...
No Matches
FEAT::Global::SynchMatrix< MT_, VMT_ > Class Template Reference

Ticket class for asynchronous global matrix conversion. More...

#include <synch_mat.hpp>

Public Types

typedef LAFEM::MatrixMirrorBuffer< typename MT_::DataType, typename MT_::IndexType > BufferMatrixType
 the buffer matrix type More...
 
typedef LAFEM::MatrixMirror< typename MT_::DataType, typename MT_::IndexType > MatrixMirrorType
 the matrix mirror type More...
 

Public Member Functions

 SynchMatrix (const Dist::Comm &comm, const std::vector< int > &ranks, const std::vector< VMT_ > &mirrors_row, const std::vector< VMT_ > &mirrors_col)
 Constructor. More...
 
 SynchMatrix (const SynchMatrix &)=delete
 deleted copy constructor
 
void exec (MT_ &matrix)
 Converts a type-0 matrix to a type-1 matrix. More...
 
void init (const MT_ &matrix)
 Initializes the internal buffers for synchronization. More...
 
SynchMatrixoperator= (const SynchMatrix &)=delete
 deleted copy assignment operator
 

Protected Attributes

const Dist::Comm_comm
 our communicator More...
 
bool _initialized
 
std::vector< MatrixMirrorType_mirrors
 the matrix mirrors More...
 
std::vector< int > _ranks
 the neighbor ranks More...
 
std::vector< BufferMatrixType_recv_bufs
 
Dist::RequestVector _recv_reqs
 
std::vector< BufferMatrixType_send_bufs
 send and receive buffers More...
 
Dist::RequestVector _send_reqs
 send and receive request vectors More...
 

Detailed Description

template<typename MT_, typename VMT_>
class FEAT::Global::SynchMatrix< MT_, VMT_ >

Ticket class for asynchronous global matrix conversion.

Todo:
statistics
Template Parameters
MT_The matrix type
VMT_The vector mirror type
Author
Peter Zajac

Definition at line 36 of file synch_mat.hpp.

Member Typedef Documentation

◆ BufferMatrixType

template<typename MT_ , typename VMT_ >
typedef LAFEM::MatrixMirrorBuffer<typename MT_::DataType, typename MT_::IndexType> FEAT::Global::SynchMatrix< MT_, VMT_ >::BufferMatrixType

the buffer matrix type

Definition at line 42 of file synch_mat.hpp.

◆ MatrixMirrorType

template<typename MT_ , typename VMT_ >
typedef LAFEM::MatrixMirror<typename MT_::DataType, typename MT_::IndexType> FEAT::Global::SynchMatrix< MT_, VMT_ >::MatrixMirrorType

the matrix mirror type

Definition at line 40 of file synch_mat.hpp.

Constructor & Destructor Documentation

◆ SynchMatrix()

template<typename MT_ , typename VMT_ >
FEAT::Global::SynchMatrix< MT_, VMT_ >::SynchMatrix ( const Dist::Comm comm,
const std::vector< int > &  ranks,
const std::vector< VMT_ > &  mirrors_row,
const std::vector< VMT_ > &  mirrors_col 
)
inline

Constructor.

Parameters
[in]commThe communicator
[in]ranksThe neighbor ranks within the communicator
[in]mirrors_rowThe row vector mirrors to be used for synchronization
[in]mirrors_colThe column vector mirrors to be used for synchronization

Definition at line 76 of file synch_mat.hpp.

References FEAT::Global::SynchMatrix< MT_, VMT_ >::_mirrors, and XASSERTM.

Member Function Documentation

◆ exec()

◆ init()

Member Data Documentation

◆ _comm

template<typename MT_ , typename VMT_ >
const Dist::Comm& FEAT::Global::SynchMatrix< MT_, VMT_ >::_comm
protected

◆ _initialized

template<typename MT_ , typename VMT_ >
bool FEAT::Global::SynchMatrix< MT_, VMT_ >::_initialized
protected

Definition at line 45 of file synch_mat.hpp.

◆ _mirrors

template<typename MT_ , typename VMT_ >
std::vector<MatrixMirrorType> FEAT::Global::SynchMatrix< MT_, VMT_ >::_mirrors
protected

◆ _ranks

template<typename MT_ , typename VMT_ >
std::vector<int> FEAT::Global::SynchMatrix< MT_, VMT_ >::_ranks
protected

the neighbor ranks

Definition at line 50 of file synch_mat.hpp.

Referenced by FEAT::Global::SynchMatrix< MT_, VMT_ >::exec(), and FEAT::Global::SynchMatrix< MT_, VMT_ >::init().

◆ _recv_bufs

template<typename MT_ , typename VMT_ >
std::vector<BufferMatrixType> FEAT::Global::SynchMatrix< MT_, VMT_ >::_recv_bufs
protected

Definition at line 56 of file synch_mat.hpp.

◆ _recv_reqs

template<typename MT_ , typename VMT_ >
Dist::RequestVector FEAT::Global::SynchMatrix< MT_, VMT_ >::_recv_reqs
protected

Definition at line 54 of file synch_mat.hpp.

◆ _send_bufs

template<typename MT_ , typename VMT_ >
std::vector<BufferMatrixType> FEAT::Global::SynchMatrix< MT_, VMT_ >::_send_bufs
protected

send and receive buffers

Definition at line 56 of file synch_mat.hpp.

Referenced by FEAT::Global::SynchMatrix< MT_, VMT_ >::exec(), and FEAT::Global::SynchMatrix< MT_, VMT_ >::init().

◆ _send_reqs

template<typename MT_ , typename VMT_ >
Dist::RequestVector FEAT::Global::SynchMatrix< MT_, VMT_ >::_send_reqs
protected

send and receive request vectors

Definition at line 54 of file synch_mat.hpp.

Referenced by FEAT::Global::SynchMatrix< MT_, VMT_ >::exec(), and FEAT::Global::SynchMatrix< MT_, VMT_ >::init().


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