Skip to content

Commit

Permalink
FabArray: Make some functions static (#3958)
Browse files Browse the repository at this point in the history
These communication help functions can now be used outside FabArray.
  • Loading branch information
WeiqunZhang committed May 24, 2024
1 parent 345cb88 commit 74ab071
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 14 deletions.
18 changes: 10 additions & 8 deletions Src/Base/AMReX_FabArray.H
Original file line number Diff line number Diff line change
Expand Up @@ -1349,42 +1349,44 @@ public:

//! Prepost nonblocking receives
template <typename BUF=value_type>
void PostRcvs (const MapOfCopyComTagContainers& RcvTags,
static void PostRcvs (const MapOfCopyComTagContainers& RcvTags,
char*& the_recv_data,
Vector<char*>& recv_data,
Vector<std::size_t>& recv_size,
Vector<int>& recv_from,
Vector<MPI_Request>& recv_reqs,
int ncomp,
int SeqNum) const;
int SeqNum);

template <typename BUF=value_type>
AMREX_NODISCARD TheFaArenaPointer PostRcvs (const MapOfCopyComTagContainers& RcvTags,
AMREX_NODISCARD
static TheFaArenaPointer PostRcvs (const MapOfCopyComTagContainers& RcvTags,
Vector<char*>& recv_data,
Vector<std::size_t>& recv_size,
Vector<int>& recv_from,
Vector<MPI_Request>& recv_reqs,
int ncomp,
int SeqNum) const;
int SeqNum);

template <typename BUF=value_type>
void PrepareSendBuffers (const MapOfCopyComTagContainers& SndTags,
static void PrepareSendBuffers (const MapOfCopyComTagContainers& SndTags,
char*& the_send_data,
Vector<char*>& send_data,
Vector<std::size_t>& send_size,
Vector<int>& send_rank,
Vector<MPI_Request>& send_reqs,
Vector<const CopyComTagsContainer*>& send_cctc,
int ncomp) const;
int ncomp);

template <typename BUF=value_type>
AMREX_NODISCARD TheFaArenaPointer PrepareSendBuffers (const MapOfCopyComTagContainers& SndTags,
AMREX_NODISCARD
static TheFaArenaPointer PrepareSendBuffers (const MapOfCopyComTagContainers& SndTags,
Vector<char*>& send_data,
Vector<std::size_t>& send_size,
Vector<int>& send_rank,
Vector<MPI_Request>& send_reqs,
Vector<const CopyComTagsContainer*>& send_cctc,
int ncomp) const;
int ncomp);

static void PostSnds (Vector<char*> const& send_data,
Vector<std::size_t> const& send_size,
Expand Down
8 changes: 4 additions & 4 deletions Src/Base/AMReX_FabArrayCommI.H
Original file line number Diff line number Diff line change
Expand Up @@ -622,7 +622,7 @@ FabArray<FAB>::PrepareSendBuffers (const MapOfCopyComTagContainers& SndTags,
Vector<int>& send_rank,
Vector<MPI_Request>& send_reqs,
Vector<const CopyComTagsContainer*>& send_cctc,
int ncomp) const
int ncomp)
{
char* pointer = nullptr;
PrepareSendBuffers<BUF>(SndTags, pointer, send_data, send_size, send_rank, send_reqs, send_cctc, ncomp);
Expand All @@ -639,7 +639,7 @@ FabArray<FAB>::PrepareSendBuffers (const MapOfCopyComTagContainers& SndTags,
Vector<int>& send_rank,
Vector<MPI_Request>& send_reqs,
Vector<const CopyComTagsContainer*>& send_cctc,
int ncomp) const
int ncomp)
{
send_data.clear();
send_size.clear();
Expand Down Expand Up @@ -723,7 +723,7 @@ TheFaArenaPointer FabArray<FAB>::PostRcvs (const MapOfCopyComTagContainers&
Vector<int>& recv_from,
Vector<MPI_Request>& recv_reqs,
int ncomp,
int SeqNum) const
int SeqNum)
{
char* pointer = nullptr;
PostRcvs(RcvTags, pointer, recv_data, recv_size, recv_from, recv_reqs, ncomp, SeqNum);
Expand All @@ -740,7 +740,7 @@ FabArray<FAB>::PostRcvs (const MapOfCopyComTagContainers& RcvTags,
Vector<int>& recv_from,
Vector<MPI_Request>& recv_reqs,
int ncomp,
int SeqNum) const
int SeqNum)
{
recv_data.clear();
recv_size.clear();
Expand Down
4 changes: 2 additions & 2 deletions Src/Base/AMReX_NonLocalBCImpl.H
Original file line number Diff line number Diff line change
Expand Up @@ -439,13 +439,13 @@ Comm_nowait (FabArray<FAB>& mf, int scomp, int ncomp, FabArrayBase::CommMetaData
handler.mpi_tag = SeqNum;

if (N_rcvs > 0) {
handler.recv.the_data = mf.PostRcvs(*cmd.m_RcvTags, handler.recv.data, handler.recv.size,
handler.recv.the_data = FabArray<FAB>::PostRcvs(*cmd.m_RcvTags, handler.recv.data, handler.recv.size,
handler.recv.rank, handler.recv.request, ncomp, SeqNum);
}

if (N_snds > 0) {
handler.send.the_data =
mf.PrepareSendBuffers(*cmd.m_SndTags, handler.send.data, handler.send.size,
FabArray<FAB>::PrepareSendBuffers(*cmd.m_SndTags, handler.send.data, handler.send.size,
handler.send.rank, handler.send.request, handler.send.cctc, ncomp);

#ifdef AMREX_USE_GPU
Expand Down

0 comments on commit 74ab071

Please sign in to comment.