1#ifndef __ITERATION_PAYLOAD_HPP__
2#define __ITERATION_PAYLOAD_HPP__
4#include <cma_utils/alias.hpp>
60 bool recv(
size_t source, MPI_Status* status)
noexcept;
74 [[nodiscard]]
bool sendAll(std::size_t n_rank)
noexcept;
98 [[nodiscard]]
bool send(
size_t rank)
noexcept;
Represents the payload of data on the host side for an iteration.
Definition iteration_payload.hpp:70
void wait() noexcept
Definition iteration_payload.cpp:46
bool send(size_t rank) noexcept
Sends this payload to a specified MPI rank.
Definition iteration_payload.cpp:59
std::array< MPI_Request, n_vector_send > requests
Definition iteration_payload.hpp:101
bool to_wait
Definition iteration_payload.hpp:85
void fill(const CmaUtils::IterationStatePtrType ¤t_reactor_state)
Definition iteration_payload.cpp:108
std::span< const std::size_t > liquid_neighbors_flat
Definition iteration_payload.hpp:81
std::span< const double > proba_leaving_flat
Definition iteration_payload.hpp:82
std::span< const double > liquid_out_flows
Definition iteration_payload.hpp:83
std::span< const double > liquid_volumes
Definition iteration_payload.hpp:80
bool sendAll(std::size_t n_rank) noexcept
Definition iteration_payload.cpp:24
static constexpr std::size_t n_vector_send
Definition iteration_payload.hpp:100
bool recv(size_t source, MPI_Status *status) noexcept
Receives data for this payload from a specified source.
Definition iteration_payload.cpp:80
std::vector< std::size_t > liquid_neighbors_flat
Definition iteration_payload.hpp:23
IterationPayload(size_t volumes)
Constructs an IterationPayload with specified sizes for flows and volumes.
Definition iteration_payload.cpp:18
std::vector< double > liquid_volumes
Definition iteration_payload.hpp:22
std::vector< double > liquid_out_flows
Definition iteration_payload.hpp:25
std::vector< double > proba_leaving_flat
Definition iteration_payload.hpp:24
::rust::Box< ::IterationStateWrapper > IterationStatePtrType
Opaque type for iteration state.
Definition alias.hpp:20
Namespace to correclty wrap MPI C API for modern C++.
Definition impl_async.hpp:14
@ volumes
Definition iteration_payload.cpp:12