Opm::VariableSizeCommunicator< Allocator > Class Template Reference A buffered communicator where the amount of data sent does not have to be known a priori. More...
Detailed Descriptiontemplate<class Allocator = std::allocator<std::pair<InterfaceInformation,InterfaceInformation> >> class Opm::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. Note that there is no global index-space, only local index-spaces on each rank. Note also that each rank has two index-spaces, one used for gathering/sending, and one used for scattering/receiving. These may be the identical, but they do not have to be. For data send from rank A to rank B, the order that rank A inserts its indices into its send-interface for rank B has to be the same order that rank B inserts its matching indices into its receive interface for rank A. (This is because the It is permissible for a rank to communicate with itself, i.e. it can define send- and receive-interfaces to itself. These interfaces do not need to contain the same indices, as the local send index-space can be different from the local receive index-space. This is useful for repartitioning or for aggregating in AMG. Do not assume that gathering to an index happens before scattering to the same index in the same communication, as Member Typedef Documentation◆ InterfaceMap
template<class Allocator = std::allocator<std::pair<InterfaceInformation,InterfaceInformation> >>
The type of the map from process number to InterfaceInformation for sending and receiving to and from it. Constructor & Destructor Documentation◆ VariableSizeCommunicator() [1/4]
template<class Allocator = std::allocator<std::pair<InterfaceInformation,InterfaceInformation> >>
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]
template<class Allocator = std::allocator<std::pair<InterfaceInformation,InterfaceInformation> >>
Creates a communicator with the default maximum buffer size.
◆ VariableSizeCommunicator() [3/4]
template<class Allocator = std::allocator<std::pair<InterfaceInformation,InterfaceInformation> >>
Creates a communicator with a specific maximum buffer size.
◆ VariableSizeCommunicator() [4/4]
template<class Allocator = std::allocator<std::pair<InterfaceInformation,InterfaceInformation> >>
Creates a communicator with a specific maximum buffer size.
◆ ~VariableSizeCommunicator()
template<class Allocator = std::allocator<std::pair<InterfaceInformation,InterfaceInformation> >>
Member Function Documentation◆ backward()
template<class Allocator = std::allocator<std::pair<InterfaceInformation,InterfaceInformation> >>
template<class DataHandle >
Communicate backwards.
◆ forward()
template<class Allocator = std::allocator<std::pair<InterfaceInformation,InterfaceInformation> >>
template<class DataHandle >
Communicate forward.
The documentation for this class was generated from the following file: |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||