Interface for all distributed solver to solver communication classes.
virtual void requestConnection(const std::string &acceptorName, const std::string &requesterName)=0
Connects to another participant, which has to call acceptConnection().
virtual void scatterAllCommunicationMap(CommunicationMap &localCommunicationMap)=0
Scatters a communication map over connected ranks on remote participant.
virtual void broadcastSendMesh()=0
Broadcasts a mesh to connected ranks on remote participant.
virtual bool isConnected() const =0
Returns true, if a connection to a remote participant has been setup.
virtual void broadcastSend(int itemToSend)=0
Broadcasts an int to connected ranks on remote participant.
virtual void broadcastReceiveAllMesh()=0
Receive mesh partitions per connected rank on remote participant.
virtual void completeSecondaryRanksConnection()=0
mesh::PtrMesh _mesh
mesh that dictates the distribution of this mapping
virtual void closeConnection()=0
Disconnects from communication space, i.e. participant.
virtual void broadcastReceiveAll(std::vector< int > &itemToReceive)=0
Receives an int per connected rank on remote participant @para[out] itemToReceive received ints from ...
virtual void acceptConnection(const std::string &acceptorName, const std::string &requesterName)=0
Connects to another participant, which has to call requestConnection().
virtual void receive(precice::span< double > itemsToReceive, int valueDimension)=0
All ranks receive an array of doubles (different for each rank).
virtual ~DistributedCommunication()
Destructor, empty.
virtual void requestPreConnection(std::string const &acceptorName, std::string const &requesterName)=0
Connects to another participant, which has to call acceptPreConnection(). Exchanged vertex list is no...
DistributedCommunication(mesh::PtrMesh mesh)
virtual void acceptPreConnection(std::string const &acceptorName, std::string const &requesterName)=0
Connects to another participant, which has to call requestPreConnection(). Exchanged vertex list is n...
virtual void send(precice::span< double const > itemsToSend, int valueDimension)=0
Sends an array of double values from all ranks (different for each rank).
virtual void gatherAllCommunicationMap(CommunicationMap &localCommunicationMap)=0
Gathers a communication maps from connected ranks on remote participant.
A C++ 11 implementation of the non-owning C++20 std::span type.
Main namespace of the precice library.