Gromacs  2026.1
 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/nbnxm/boundingbox_simd.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 "gromacs/utility/vec.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

class  gmx::anonymous_namespace{domainpaircomm.cpp}::GridColumnInfo
 Collection of information for an NBNxM grid column. 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

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...
 
template<bool doChecksForBondeds>
int gmx::anonymous_namespace{domainpaircomm.cpp}::addClusterRangesForGridColumn (const Grid &grid, const int columnIndex, const ZoneCorners &zoneCorners, const DistanceCalculationInfo &dci, const std::vector< bool > &isClusterMissingLinks, FastVector< DomainCommBackward::GridClusterRange > *gridClusterRanges)
 Computes and adds the cluster ranges we will communicatie for grid column columnIndex. More...