1#ifndef __ITERATION_PAYLOAD_HPP__
2#define __ITERATION_PAYLOAD_HPP__
4#include <cma_read/flow_iterator.hpp>
5#include <cma_read/neighbors.hpp>
6#include <cma_read/reactorstate.hpp>
36 CmaRead::Neighbors::Neighbors_const_view_t
neighbors;
63 bool recv(
size_t source, MPI_Status* status)
noexcept;
82 CmaRead::Neighbors::Neighbors_const_view_t
neighbors;
84 void fill(
const CmaRead::ReactorState& current_reactor_state);
86 [[nodiscard]]
bool sendAll(std::size_t n_rank)
noexcept;
100 [[nodiscard]]
bool send(
size_t rank)
noexcept;
Represents the payload of data on the host side for an iteration.
Definition iteration_payload.hpp:73
std::span< const double > gas_volumes
View gas flow values to be sent for the current iteration.
Definition iteration_payload.hpp:80
bool send(size_t rank) noexcept
Sends this payload to a specified MPI rank.
Definition iteration_payload.cpp:47
std::array< MPI_Request, n_vector_send > requests
Definition iteration_payload.hpp:103
std::span< const double > liquid_flows
View liquid flow values to be sent for the current iteration.
Definition iteration_payload.hpp:76
CmaRead::Neighbors::Neighbors_const_view_t neighbors
View neighbors values to be sent for the current iteration.
Definition iteration_payload.hpp:82
void fill(const CmaRead::ReactorState ¤t_reactor_state)
Definition iteration_payload.cpp:86
std::span< const double > liquid_volumes
View liquid volmes values to be sent for the current iteration.
Definition iteration_payload.hpp:78
bool sendAll(std::size_t n_rank) noexcept
Definition iteration_payload.cpp:18
static constexpr std::size_t n_vector_send
Definition iteration_payload.hpp:102
bool recv(size_t source, MPI_Status *status) noexcept
Receives data for this payload from a specified source.
Definition iteration_payload.cpp:66
IterationPayload(size_t size_flows, size_t volumes)
Constructs an IterationPayload with specified sizes for flows and volumes.
Definition iteration_payload.cpp:10
std::vector< double > liquid_flows
Vector containing liquid flow values for the current iteration.
Definition iteration_payload.hpp:24
std::vector< double > gas_volumes
Vector containing gas volume values for the current iteration.
Definition iteration_payload.hpp:30
CmaRead::Neighbors::Neighbors_const_view_t neighbors
Constant view of neighbor data for the current iteration.
Definition iteration_payload.hpp:36
std::vector< size_t > raw_neighbors
Vector containing raw neighbor indices for the current iteration.
Definition iteration_payload.hpp:33
std::vector< double > liquid_volumes
Vector containing liquid volume values for the current iteration.
Definition iteration_payload.hpp:27
Namespace to correclty wrap MPI C API for modern C++.
Definition impl_async.hpp:18