| FEAT 3
    Finite Element Analysis Toolbox | 
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... | |
| SynchMatrix & | operator= (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... | |
Ticket class for asynchronous global matrix conversion.
| MT_ | The matrix type | 
| VMT_ | The vector mirror type | 
Definition at line 36 of file synch_mat.hpp.
| 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.
| 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.
| 
 | inline | 
Constructor.
| [in] | comm | The communicator | 
| [in] | ranks | The neighbor ranks within the communicator | 
| [in] | mirrors_row | The row vector mirrors to be used for synchronization | 
| [in] | mirrors_col | The 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.
| 
 | inline | 
Converts a type-0 matrix to a type-1 matrix.
| [in,out] | matrix | The type-0 matrix that is to be converted to type-1. | 
Definition at line 226 of file synch_mat.hpp.
References FEAT::Global::SynchMatrix< MT_, VMT_ >::_comm, FEAT::Global::SynchMatrix< MT_, VMT_ >::_mirrors, FEAT::Global::SynchMatrix< MT_, VMT_ >::_ranks, FEAT::Global::SynchMatrix< MT_, VMT_ >::_send_bufs, FEAT::Global::SynchMatrix< MT_, VMT_ >::_send_reqs, FEAT::Dist::RequestVector::get_request(), FEAT::Dist::Comm::irecv(), FEAT::Dist::Comm::isend(), FEAT::LAFEM::MatrixMirrorBuffer< DT_, IT_ >::val(), FEAT::LAFEM::MatrixMirrorBuffer< DT_, IT_ >::val_size(), FEAT::Dist::RequestVector::wait_all(), FEAT::Dist::RequestVector::wait_any(), and XASSERTM.
Referenced by FEAT::Global::Matrix< LocalMatrix_, RowMirror_, ColMirror_ >::convert_to_1(), and FEAT::Global::synch_matrix().
| 
 | inline | 
Initializes the internal buffers for synchronization.
| [in] | matrix | The matrix to be used as a template for the buffers. The structure must be initialized, but the numerical content of the matrix is ignored. | 
Definition at line 124 of file synch_mat.hpp.
References FEAT::Global::SynchMatrix< MT_, VMT_ >::_comm, FEAT::Global::SynchMatrix< MT_, VMT_ >::_mirrors, FEAT::Global::SynchMatrix< MT_, VMT_ >::_ranks, FEAT::Global::SynchMatrix< MT_, VMT_ >::_send_bufs, FEAT::Global::SynchMatrix< MT_, VMT_ >::_send_reqs, FEAT::LAFEM::MatrixMirrorBuffer< DT_, IT_ >::columns(), FEAT::LAFEM::MatrixMirrorBuffer< DT_, IT_ >::entries_per_nonzero(), FEAT::Dist::Comm::irecv(), FEAT::Dist::Comm::isend(), FEAT::LAFEM::MatrixMirrorBuffer< DT_, IT_ >::rows(), FEAT::LAFEM::MatrixMirrorBuffer< DT_, IT_ >::used_elements(), FEAT::Dist::RequestVector::wait_all(), and XASSERTM.
Referenced by FEAT::Global::Matrix< LocalMatrix_, RowMirror_, ColMirror_ >::convert_to_1(), and FEAT::Global::synch_matrix().
| 
 | protected | 
our communicator
Definition at line 48 of file synch_mat.hpp.
Referenced by FEAT::Global::SynchMatrix< MT_, VMT_ >::exec(), and FEAT::Global::SynchMatrix< MT_, VMT_ >::init().
| 
 | protected | 
Definition at line 45 of file synch_mat.hpp.
| 
 | protected | 
the matrix mirrors
Definition at line 52 of file synch_mat.hpp.
Referenced by FEAT::Global::SynchMatrix< MT_, VMT_ >::SynchMatrix(), FEAT::Global::SynchMatrix< MT_, VMT_ >::exec(), and FEAT::Global::SynchMatrix< MT_, VMT_ >::init().
| 
 | 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().
| 
 | protected | 
Definition at line 56 of file synch_mat.hpp.
| 
 | protected | 
Definition at line 54 of file synch_mat.hpp.
| 
 | 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().
| 
 | 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().