Gromacs  2022.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:

Description

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

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

Classes

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...
 

Functions

void dd_move_f_specat (const gmx_domdec_t *dd, gmx_domdec_specat_comm_t *spac, rvec *f, 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, rvec *x0, rvec *x1, gmx_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,
rvec *  x0,
rvec *  x1,
gmx_bool  bX1IsCoord 
)

Communicates the coordinates for special atoms.

Parameters
[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.

Parameters
[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