MCPcopy Create free account
hub / github.com/AMReX-Codes/amrex / PostRecvs

Function PostRecvs

Src/Base/AMReX_NonLocalBC.cpp:109–123  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

107}
108
109void 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
125void PostSends(CommData& send, int mpi_tag) {
126 const auto n_sends = send.data.size();

Callers 1

Calls 5

CommunicatorSubFunction · 0.85
global_to_local_rankFunction · 0.85
ArecvFunction · 0.85
reqMethod · 0.80
sizeMethod · 0.45

Tested by

no test coverage detected