Gromacs  2026.0-dev-20250217-60d5e5b
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Functions
#include "gmxpre.h"
#include "domainpaircomm.h"
#include "config.h"
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
#include "gromacs/domdec/domdec.h"
#include "gromacs/domdec/domdec_network.h"
#include "gromacs/domdec/domdec_struct.h"
#include "gromacs/math/vec.h"
#include "gromacs/nbnxm/grid.h"
#include "gromacs/nbnxm/nbnxm.h"
#include "gromacs/pbcutil/ishift.h"
#include "gromacs/pbcutil/pbc.h"
#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/fixedcapacityvector.h"
#include "gromacs/utility/gmxassert.h"
#include "gromacs/utility/range.h"
#include "domdec_internal.h"
#include "utility.h"
+ Include dependency graph for domainpaircomm.cpp:

Description

Implements the DomainPairComm, DomainCommBackward and DomainCommForward classes.

Author
Berk Hess hess@.nosp@m.kth..nosp@m.se

Classes

struct  gmx::anonymous_namespace{domainpaircomm.cpp}::ZoneCorners
 The upper corners of a zone, used for computing which halo cell need to be sent. More...
 
struct  gmx::anonymous_namespace{domainpaircomm.cpp}::DistanceCalculationInfo
 Information for distance calculations between domains. More...
 
struct  gmx::anonymous_namespace{domainpaircomm.cpp}::DistancesSquared
 Struct for returning results from distance calculation of corners to bounding boxes. More...
 

Functions

GridColumnInfo gmx::anonymous_namespace{domainpaircomm.cpp}::nbnxmGetLocalGridColumn (const Grid &grid, const int columnIndex)
 Returns information on a column of the local grid.
 
template<typename T >
void gmx::anonymous_namespace{domainpaircomm.cpp}::ddSendReceive (const DomainCommBackward &domainCommBackward, const DomainCommForward &domainCommForward, const int direction, const T *sendBuffer, const int numElementsToSend, T *receiveBuffer, const int numElementsToReceive, const HaloMpiTag tag)
 Move data of type T forward or backward between zones. More...
 
DistancesSquared gmx::anonymous_namespace{domainpaircomm.cpp}::cornerToBoundingBoxDistanceRectangular (const DistanceCalculationInfo &dci, const RVec &cornerTwoBody, const RVec &cornerMultiBody, const BoundingBox &bb)
 Returns the squared distances for non-bonded and bonded interactions of a bounding box to zone corners.
 
DistancesSquared gmx::anonymous_namespace{domainpaircomm.cpp}::cornerToBoundingBoxDistanceTrilinic (const DistanceCalculationInfo &dci, const RVec &cornerTwoBody, const RVec &cornerMultiBody, const BoundingBox &bb)
 Returns the squared distances for non-bonded and bonded interactions of a bounding box to zone corners.
 
DistancesSquared gmx::anonymous_namespace{domainpaircomm.cpp}::cornerToBoundingBoxDistance (const DistanceCalculationInfo &dci, const RVec &cornerTwoBody, const RVec &cornerMultiBody, const BoundingBox &bb)
 Wrapper function for corner - bounding-box distance calculation. More...
 
ZoneCorners gmx::anonymous_namespace{domainpaircomm.cpp}::getZoneCorners (const gmx_domdec_t &dd, const matrix box, const int zone, const real maxAtomGroupRadius)
 Determines the corner for 2-body, corner_2b, and multi-body, corner_mb, communication distances.
 
template<bool doChecksForBondeds>
Range< int > gmx::anonymous_namespace{domainpaircomm.cpp}::getCellRangeForGridColumn (const Grid &grid, const int columnIndex, const ZoneCorners &zoneCorners, const DistanceCalculationInfo &dci, const std::vector< bool > &isCellMissingLinks)
 Computes and sets the cell range we will communicatie for grid column columnIndex.