| 123 | } |
| 124 | |
| 125 | void PostSends(CommData& send, int mpi_tag) { |
| 126 | const auto n_sends = send.data.size(); |
| 127 | AMREX_ASSERT(n_sends == send.size.size()); |
| 128 | AMREX_ASSERT(n_sends == send.rank.size()); |
| 129 | AMREX_ASSERT(n_sends == send.request.size()); |
| 130 | MPI_Comm comm = ParallelContext::CommunicatorSub(); |
| 131 | for (int j = 0; j < static_cast<int>(n_sends); ++j) { |
| 132 | if (send.size[j] > 0) { |
| 133 | const int rank = ParallelContext::global_to_local_rank(send.rank[j]); |
| 134 | AMREX_ASSERT(send.data[j] != nullptr); |
| 135 | send.request[j] = |
| 136 | ParallelDescriptor::Asend(send.data[j], send.size[j], rank, mpi_tag, comm).req(); |
| 137 | } |
| 138 | } |
| 139 | } |
| 140 | #endif |
| 141 | |
| 142 | template MultiBlockCommMetaData ParallelCopy(FabArray<FArrayBox>& dest, const Box& destbox, |
no test coverage detected