Class CBC_AsynchronousCommunicator

Nested Relationships

Nested Types

Inheritance Relationships

Base Type

Class Documentation

class CBC_AsynchronousCommunicator : public opensn::AsynchronousCommunicator

Public Functions

inline explicit CBC_AsynchronousCommunicator(size_t angle_set_id, FLUDS &fluds, const MPICommunicatorSet &comm_set)
virtual std::vector<double> &InitGetDownwindMessageData(int location_id, uint64_t cell_global_id, unsigned int face_id, size_t angle_set_id, size_t data_size) override
bool SendData()
std::vector<uint64_t> ReceiveData()
inline void Reset()

Protected Types

using MessageKey = std::tuple<int, uint64_t, unsigned int>
using CellFaceKey = std::pair<uint64_t, unsigned int>

Protected Functions

void MergeDeplocsOutgoingMessages(std::map<CellFaceKey, std::vector<double>> &received_messages)

Protected Attributes

const size_t angle_set_id_
std::map<MessageKey, std::vector<double>> outgoing_message_queue_
std::vector<BufferItem> send_buffer_
struct BufferItem

Public Members

int destination = 0
mpi::Request mpi_request
bool send_initiated = false
bool completed = false
ByteArray data_array