Reference documentation for deal.II version 9.3.3
|
#include <deal.II/base/mpi_consensus_algorithms.h>
Public Member Functions | |
virtual | ~Process ()=default |
virtual std::vector< unsigned int > | compute_targets ()=0 |
virtual void | create_request (const unsigned int other_rank, std::vector< T1 > &send_buffer) |
virtual void | prepare_buffer_for_answer (const unsigned int other_rank, std::vector< T2 > &recv_buffer) |
virtual void | answer_request (const unsigned int other_rank, const std::vector< T1 > &buffer_recv, std::vector< T2 > &request_buffer) |
virtual void | read_answer (const unsigned int other_rank, const std::vector< T2 > &recv_buffer) |
An interface to be able to use the Interface classes. The main functionality of the implementations is to return a list of process ranks this process wants data from and to deal with the optional payload of the messages sent/received by the ConsensusAlgorithm classes.
There are two kinds of messages:
T1 | the type of the elements of the vector to sent |
T2 | the type of the elements of the vector to received |
Definition at line 62 of file mpi_consensus_algorithms.h.
|
virtualdefault |
Destructor.
|
pure virtual |
Implemented in Utilities::MPI::internal::ComputeIndexOwner::DictionaryPayLoad, Utilities::MPI::internal::ComputeIndexOwner::ConsensusAlgorithmsPayload, Utilities::MPI::ConsensusAlgorithms::AnonymousProcess< T1, T2 >, and Utilities::MPI::ConsensusAlgorithmsProcessTargets.
|
virtual |
Add to the request to the process with the specified rank a payload.
[in] | other_rank | rank of the process |
[out] | send_buffer | data to be sent part of the request (optional) |
Reimplemented in Utilities::MPI::internal::ComputeIndexOwner::DictionaryPayLoad, Utilities::MPI::internal::ComputeIndexOwner::ConsensusAlgorithmsPayload, and Utilities::MPI::ConsensusAlgorithms::AnonymousProcess< T1, T2 >.
|
virtual |
Prepare the buffer where the payload of the answer of the request to the process with the specified rank is saved in. The most obvious task is to resize the buffer, since it is empty when the function is called.
[in] | other_rank | rank of the process |
[out] | recv_buffer | data to be sent part of the request (optional) |
Reimplemented in Utilities::MPI::ConsensusAlgorithms::AnonymousProcess< T1, T2 >, and Utilities::MPI::internal::ComputeIndexOwner::ConsensusAlgorithmsPayload.
|
virtual |
Prepare the buffer where the payload of the answer of the request to the process with the specified rank is saved in.
[in] | other_rank | rank of the process |
[in] | buffer_recv | received payload (optional) |
[out] | request_buffer | payload to be sent as part of the request (optional) |
Reimplemented in Utilities::MPI::internal::ComputeIndexOwner::DictionaryPayLoad, Utilities::MPI::internal::ComputeIndexOwner::ConsensusAlgorithmsPayload, Utilities::MPI::ConsensusAlgorithmsProcessTargets, and Utilities::MPI::ConsensusAlgorithms::AnonymousProcess< T1, T2 >.
|
virtual |
Process the payload of the answer of the request to the process with the specified rank.
[in] | other_rank | rank of the process |
[in] | recv_buffer | data to be sent part of the request (optional) |
Reimplemented in Utilities::MPI::ConsensusAlgorithms::AnonymousProcess< T1, T2 >, and Utilities::MPI::internal::ComputeIndexOwner::ConsensusAlgorithmsPayload.