| 107 | } |
| 108 | |
| 109 | void PostRecvs(CommData& recv, int mpi_tag) { |
| 110 | AMREX_ASSERT(recv.data.size() == recv.offset.size()); |
| 111 | AMREX_ASSERT(recv.data.size() == recv.size.size()); |
| 112 | AMREX_ASSERT(recv.data.size() == recv.rank.size()); |
| 113 | AMREX_ASSERT(recv.data.size() == recv.request.size()); |
| 114 | MPI_Comm comm = ParallelContext::CommunicatorSub(); |
| 115 | for (int i = 0; i < recv.data.size(); ++i) { |
| 116 | if (recv.size[i] > 0) { |
| 117 | const int rank = ParallelContext::global_to_local_rank(recv.rank[i]); |
| 118 | AMREX_ASSERT(recv.data[i] != nullptr); |
| 119 | recv.request[i] = |
| 120 | ParallelDescriptor::Arecv(recv.data[i], recv.size[i], rank, mpi_tag, comm).req(); |
| 121 | } |
| 122 | } |
| 123 | } |
| 124 | |
| 125 | void PostSends(CommData& send, int mpi_tag) { |
| 126 | const auto n_sends = send.data.size(); |
no test coverage detected