Block-Structured AMR Software Framework
Loading...
Searching...
No Matches
AMReX_NonLocalBC.cpp File Reference
#include "AMReX_NonLocalBC.H"
#include <limits>

Namespaces

namespace  amrex
namespace  amrex::NonLocalBC

Functions

void amrex::NonLocalBC::PrepareCommBuffers (CommData &comm, const FabArrayBase::MapOfCopyComTagContainers &cctc, int n_components, std::size_t object_size, std::size_t align)
 Fill all class member variables of comm but the request and the stats vector.
void amrex::NonLocalBC::PostRecvs (CommData &recv, int mpi_tag)
 Initiate all recvieves with MPI_Irecv calls associated with tag mpi_tag.
void amrex::NonLocalBC::PostSends (CommData &send, int mpi_tag)
 Initiate all sends with MPI_Isend calls associated with tag mpi_tag.
void amrex::NonLocalBC::TranslateRanks (CommData &comm, MPI_Comm c)
 Fill comm.comm_rank with the ranks of comm.rank (global ranks) in communicator c.
void amrex::NonLocalBC::PrepareAlltoallvCounts (CommData &comm, MPI_Comm c)
 Fill comm.counts and comm.displs for MPI_Alltoallv on communicator c.
void amrex::NonLocalBC::PrepareCommBuffersUniform (CommData &comm, const FabArrayBase::MapOfCopyComTagContainers &cctc, int n_components, std::size_t object_size, std::size_t block_size, MPI_Comm c)
 Like PrepareCommBuffers, but every process in communicator c gets a block of block_size bytes in the buffer, in rank order, as MPI_Alltoall requires. Also fills comm.comm_rank.
void amrex::NonLocalBC::ReleaseCommBuffer (CommData &comm)
 Free the_data of a prepared CommData, keeping the rest of the meta-data.
void amrex::NonLocalBC::AcquireCommBuffer (CommData &comm)
 Allocate the_data of a prepared CommData again after ReleaseCommBuffer.
void amrex::NonLocalBC::Alltoall (CommData const &send, CommData &recv, std::size_t block_size, MPI_Comm c)
 Exchange uniform blocks of block_size bytes with one MPI_Alltoall.
void amrex::NonLocalBC::Alltoallv (CommData const &send, CommData &recv, MPI_Comm c)
 Exchange all send buffers for all recv buffers with one MPI_Alltoallv.
template MultiBlockCommMetaData amrex::NonLocalBC::ParallelCopy (FabArray< FArrayBox > &dest, const Box &destbox, const FabArray< FArrayBox > &src, int destcomp, int srccomp, int numcomp, const IntVect &ngrow, MultiBlockIndexMapping const &, Identity const &)