51 void send(
double itemToSend,
Rank rankReceiver)
override;
61 void send(
int itemToSend,
Rank rankReceiver)
override;
71 void send(
bool itemToSend,
Rank rankReceiver)
override;
97 void receive(
double &itemToReceive,
Rank rankSender)
override;
107 void receive(
int &itemToReceive,
Rank rankSender)
override;
117 void receive(
bool &itemToReceive,
Rank rankSender)
override;
Interface for all interprocess communication classes.
void receive(std::string &itemToReceive, Rank rankSender) override
Receives a std::string from process with given rank.
PtrRequest aReceive(precice::span< double > itemsToReceive, int rankSender) override
Asynchronously receives an array of double values.
virtual MPI_Comm & communicator(Rank rank)=0
Returns the communicator.
PtrRequest aSend(precice::span< const int > itemsToSend, Rank rankReceiver) override
Asynchronously sends an array of integer values.
void send(std::string const &itemToSend, Rank rankReceiver) override
Sends a std::string to process with given rank.
~MPICommunication() override=default
Destructor, empty.
virtual Rank rank(int rank)=0
This class provides a lightweight logger.
A C++ 11 implementation of the non-owning C++20 std::span type.
contains the data communication abstraction layer.
std::shared_ptr< Request > PtrRequest