Dune Core Modules (2.5.0)
A buffered communicator where the amount of data sent does not have to be known a priori. More...
#include <dune/common/parallel/variablesizecommunicator.hh>
Public Types | |
typedef std::map< int, std::pair< InterfaceInformation, InterfaceInformation >, std::less< int >, typename Allocator::template rebind< std::pair< const int, std::pair< InterfaceInformation, InterfaceInformation > > >::other > | InterfaceMap |
The type of the map form process number to InterfaceInformation for sending and receiving to and from it. | |
Public Member Functions | |
VariableSizeCommunicator (MPI_Comm comm, const InterfaceMap &inf) | |
Creates a communicator with the default maximum buffer size. More... | |
VariableSizeCommunicator (const Interface &inf) | |
Creates a communicator with the default maximum buffer size. More... | |
VariableSizeCommunicator (MPI_Comm comm, const InterfaceMap &inf, std::size_t max_buffer_size) | |
Creates a communicator with a specific maximum buffer size. More... | |
VariableSizeCommunicator (const Interface &inf, std::size_t max_buffer_size) | |
Creates a communicator with a specific maximum buffer size. More... | |
template<class DataHandle > | |
void | forward (DataHandle &handle) |
Communicate forward. More... | |
template<class DataHandle > | |
void | backward (DataHandle &handle) |
Communicate backwards. More... | |
Detailed Description
class Dune::VariableSizeCommunicator< Allocator >
A buffered communicator where the amount of data sent does not have to be known a priori.
In contrast to BufferedCommunicator the amount of data is determined by the container whose entries are sent and not known at the receiving side a priori.
Constructor & Destructor Documentation
◆ VariableSizeCommunicator() [1/4]
|
inline |
Creates a communicator with the default maximum buffer size.
The default size ist either what the macro DUNE_MAX_COMMUNICATION_BUFFER_SIZE is set to or 32768 if is not set.
◆ VariableSizeCommunicator() [2/4]
|
inline |
Creates a communicator with the default maximum buffer size.
- Parameters
-
inf The communication interface.
References Dune::Interface::communicator().
◆ VariableSizeCommunicator() [3/4]
|
inline |
Creates a communicator with a specific maximum buffer size.
- Parameters
-
comm The MPI communicator to use. inf The communication interface. max_buffer_size The maximum buffer size allowed.
◆ VariableSizeCommunicator() [4/4]
|
inline |
Creates a communicator with a specific maximum buffer size.
- Parameters
-
inf The communication interface. max_buffer_size The maximum buffer size allowed.
References Dune::Interface::communicator().
Member Function Documentation
◆ backward()
|
inline |
Communicate backwards.
- Template Parameters
-
DataHandle The type of the handle describing the data. This type has to adhere to the following interface: // returns whether the number of data items per entry is fixedbool fixedsize();// get the number of data items for an entry with index istd::size_t size(std::size_t i);// gather the data at index itemplate<class MessageBuffer>void gather(MessageBuffer& buf, std::size_t i);// scatter the n data items to index itemplate<class MessageBuffer>void scatter(MessageBuffer& buf, std::size_t i, std::size_t n);
- Parameters
-
handle A handle responsible for describing the data, gathering, and scattering it.
◆ forward()
|
inline |
Communicate forward.
- Template Parameters
-
DataHandle The type of the handle describing the data. This type has to adhere to the following interface: // returns whether the number of data items per entry is fixedbool fixedsize();// get the number of data items for an entry with index istd::size_t size(std::size_t i);// gather the data at index itemplate<class MessageBuffer>void gather(MessageBuffer& buf, std::size_t i);// scatter the n data items to index itemplate<class MessageBuffer>void scatter(MessageBuffer& buf, std::size_t i, std::size_t n);
- Parameters
-
handle A handle responsible for describing the data, gathering, and scattering it.
The documentation for this class was generated from the following file:
- dune/common/parallel/variablesizecommunicator.hh