Gromacs  2024.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Functions
#include <vector>
#include "gromacs/math/vectypes.h"
#include "gromacs/utility/basedefinitions.h"
+ Include dependency graph for domdec_specatomcomm.h:
+ This graph shows which files directly or indirectly include this file:


This file declares functions for domdec to use while managing communication of atoms required for special purposes.

Berk Hess


class  gmx::HashedMap< T >
 Unordered key to value mapping. More...
struct  gmx_specatsend_t
 The communication setup along a single dimension. More...
struct  gmx_domdec_specat_comm_t
 Struct with setup and buffers for special atom communication. More...


void dd_move_f_specat (const gmx_domdec_t *dd, gmx_domdec_specat_comm_t *spac, gmx::RVec *f, gmx::RVec *fshift)
 Communicates the force for special atoms, the shift forces are reduced with fshift != NULL.
void dd_move_x_specat (const gmx_domdec_t *dd, gmx_domdec_specat_comm_t *spac, const matrix box, gmx::RVec *x0, gmx::RVec *x1, bool bX1IsCoord)
 Communicates the coordinates for special atoms. More...
int setup_specat_communication (gmx_domdec_t *dd, std::vector< int > *ireq, gmx_domdec_specat_comm_t *spac, gmx::HashedMap< int > *ga2la_specat, int at_start, int vbuf_fac, const char *specat_type, const char *add_err)
 Sets up the communication for special atoms. More...

Function Documentation

void dd_move_x_specat ( const gmx_domdec_t *  dd,
gmx_domdec_specat_comm_t spac,
const matrix  box,
gmx::RVec x0,
gmx::RVec x1,
bool  bX1IsCoord 

Communicates the coordinates for special atoms.

[in]ddDomain decomposition struct
[in]spacSpecial atom communication struct
[in]boxBox, used for pbc
[in,out]x0Vector to communicate
[in,out]x1Vector to communicate, when != NULL
[in]bX1IsCoordTells is x1 is a coordinate vector (needs pbc)
int setup_specat_communication ( gmx_domdec_t *  dd,
std::vector< int > *  ireq,
gmx_domdec_specat_comm_t spac,
gmx::HashedMap< int > *  ga2la_specat,
int  at_start,
int  vbuf_fac,
const char *  specat_type,
const char *  add_err 

Sets up the communication for special atoms.

[in]ddDomain decomposition struct
[in,out]ireqList of requested atom indices, updated due to aggregation
[in,out]spacSpecial atom communication struct
[out]ga2la_specatGlobal to local special atom index
[in]at_startIndex in local state where to start storing communicated atoms
[in]vbuf_facBuffer factor, 1 or 2 for communicating 1 or 2 vectors
[in]specat_typeName of the special atom, used for error message
[in]add_errText to add at the end of error message when atoms can't be found