Gromacs  2026.0-dev-20251106-2ba968f
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Enumerations | Functions
gmx::anonymous_namespace{haloexchange.cpp} Namespace Reference

Enumerations

enum  NumAtomsPerCluster : int { Four, Eight, Count }
 Enum used for templating the buffer operations on cluster size. More...
 

Functions

constexpr NumAtomsPerCluster numAtomsPerClusterFromInt (const int numAtomsPerCluster)
 Return the enum value given the number of atoms per cluster.
 
constexpr int numAtomsPerClusterToInt (const NumAtomsPerCluster numAtomsPerCluster)
 Return the int value given the enum value of the number of atoms per cluster.
 
template<typename DomainPairComm , typename T >
void ddIsendDomain (const DomainPairComm &send, ArrayRef< T > sendBuffer, const HaloMpiTag tag, std::vector< MPI_Request > *mpiRequests)
 Initiates a non-blocking send to another domain. More...
 
template<typename DomainPairComm , typename T >
void ddIreceiveDomain (const DomainPairComm &receive, ArrayRef< T > receiveBuffer, const HaloMpiTag tag, std::vector< MPI_Request > *mpiRequests)
 Initiates a non-blocking receive from another domain. More...
 
template<bool commOverPbc, bool usesScrewPbc, NumAtomsPerCluster numAtomsPerCluster>
void packCoordinatesTemplated (const DomainCommBackward &domainComm, const matrix box, const RVec &shiftVec, ArrayRef< const RVec > x, ArrayRef< RVec > sendBuffer)
 Templated version of packCoordinateSendBuffer()
 
void mpiWaitall (ArrayRef< MPI_Request > mpiRequests, ArrayRef< MPI_Status > mpiStatuses)
 Wrapper for MPI_Waitall that takes ArrayRefs.
 
template<bool usesScrewPbc, bool haveShiftForces, NumAtomsPerCluster numAtomsPerCluster>
void accumulateReceivedForcesTemplated (const DomainCommBackward &domainComm, ArrayRef< RVec > forces, RVec gmx_unused *shiftForce)
 Templated version of packCoordinateSendBuffer()
 

Enumeration Type Documentation

enum gmx::anonymous_namespace{haloexchange.cpp}::NumAtomsPerCluster : int
strong

Enum used for templating the buffer operations on cluster size.

Note
: Don't use static_cast<int> to convert to integer!

Function Documentation

template<typename DomainPairComm , typename T >
void gmx::anonymous_namespace{haloexchange.cpp}::ddIreceiveDomain ( const DomainPairComm &  receive,
ArrayRef< T >  receiveBuffer,
const HaloMpiTag  tag,
std::vector< MPI_Request > *  mpiRequests 
)

Initiates a non-blocking receive from another domain.

Parameters
[in]receiveThe domain pair communication setup
[in]receiveBufferBuffer to receive the data in
[in]tagThe MPI tag
[in]mpiRequestsList of requests where the send will be appended to
template<typename DomainPairComm , typename T >
void gmx::anonymous_namespace{haloexchange.cpp}::ddIsendDomain ( const DomainPairComm &  send,
ArrayRef< T >  sendBuffer,
const HaloMpiTag  tag,
std::vector< MPI_Request > *  mpiRequests 
)

Initiates a non-blocking send to another domain.

Parameters
[in]sendThe domain pair communication setup
[in]sendBufferThe data to send
[in]tagThe MPI tag
[in]mpiRequestsList of requests where the send will be appended to