Gromacs
2018.8
|
#include "gromacs/math/vectypes.h"
This file declares functions for (mostly) the domdec module to use MPI functionality.
Enumerations | |
enum | { dddirForward, dddirBackward } |
Functions | |
void | dd_sendrecv_int (const struct gmx_domdec_t *dd, int ddimind, int direction, int *buf_s, int n_s, int *buf_r, int n_r) |
Move integers in the communication region one cell along the domain decomposition. More... | |
void | dd_sendrecv_real (const struct gmx_domdec_t *dd, int ddimind, int direction, real *buf_s, int n_s, real *buf_r, int n_r) |
Move reals in the comm. region one cell along the domain decomposition. More... | |
void | dd_sendrecv_rvec (const struct gmx_domdec_t *dd, int ddimind, int direction, rvec *buf_s, int n_s, rvec *buf_r, int n_r) |
Move revc's in the comm. region one cell along the domain decomposition. More... | |
void | dd_sendrecv2_rvec (const struct gmx_domdec_t *dd, int ddimind, rvec *buf_s_fw, int n_s_fw, rvec *buf_r_fw, int n_r_fw, rvec *buf_s_bw, int n_s_bw, rvec *buf_r_bw, int n_r_bw) |
Move revc's in the comm. region one cell along the domain decomposition. More... | |
void | dd_bcast (struct gmx_domdec_t *dd, int nbytes, void *data) |
Broadcasts nbytes from data on DDMASTERRANK to all PP ranks. | |
void | dd_bcastc (struct gmx_domdec_t *dd, int nbytes, void *src, void *dest) |
Copies nbytes from src to dest on DDMASTERRANK and then broadcasts to dest on all PP ranks. | |
void | dd_scatter (struct gmx_domdec_t *dd, int nbytes, const void *src, void *dest) |
Scatters nbytes from src on DDMASTERRANK to all PP ranks, received in dest . | |
void | dd_gather (struct gmx_domdec_t *dd, int nbytes, const void *src, void *dest) |
Gathers nbytes from src on all PP ranks, received in dest on DDMASTERRANK . | |
void | dd_scatterv (struct gmx_domdec_t *dd, int *scounts, int *disps, const void *sbuf, int rcount, void *rbuf) |
Scatters scounts bytes from src on DDMASTERRANK to all PP ranks, receiving rcount bytes in dest . More... | |
void | dd_gatherv (struct gmx_domdec_t *dd, int scount, const void *sbuf, int *rcounts, int *disps, void *rbuf) |
Gathers rcount bytes from src on all PP ranks, received in scounts bytes in dest on DDMASTERRANK . More... | |
void dd_gatherv | ( | struct gmx_domdec_t * | dd, |
int | scount, | ||
const void * | sbuf, | ||
int * | rcounts, | ||
int * | disps, | ||
void * | rbuf | ||
) |
Gathers rcount
bytes from src
on all PP ranks, received in scounts
bytes in dest
on DDMASTERRANK
.
See man MPI_Gatherv for details of how to construct scounts and disps.
If scount==0, sbuf is allowed to be NULL
void dd_scatterv | ( | struct gmx_domdec_t * | dd, |
int * | scounts, | ||
int * | disps, | ||
const void * | sbuf, | ||
int | rcount, | ||
void * | rbuf | ||
) |
Scatters scounts
bytes from src
on DDMASTERRANK
to all PP ranks, receiving rcount
bytes in dest
.
See man MPI_Scatterv for details of how to construct scounts and disps. If rcount==0, rbuf is allowed to be NULL
void dd_sendrecv2_rvec | ( | const struct gmx_domdec_t * | dd, |
int | ddimind, | ||
rvec * | buf_s_fw, | ||
int | n_s_fw, | ||
rvec * | buf_r_fw, | ||
int | n_r_fw, | ||
rvec * | buf_s_bw, | ||
int | n_s_bw, | ||
rvec * | buf_r_bw, | ||
int | n_r_bw | ||
) |
Move revc's in the comm. region one cell along the domain decomposition.
Moves in dimension indexed by ddimind, simultaneously in the forward and backward directions.
void dd_sendrecv_int | ( | const struct gmx_domdec_t * | dd, |
int | ddimind, | ||
int | direction, | ||
int * | buf_s, | ||
int | n_s, | ||
int * | buf_r, | ||
int | n_r | ||
) |
Move integers in the communication region one cell along the domain decomposition.
Moves in the dimension indexed by ddimind, either forward (direction=dddirFoward) or backward (direction=dddirBackward).
void dd_sendrecv_real | ( | const struct gmx_domdec_t * | dd, |
int | ddimind, | ||
int | direction, | ||
real * | buf_s, | ||
int | n_s, | ||
real * | buf_r, | ||
int | n_r | ||
) |
Move reals in the comm. region one cell along the domain decomposition.
Moves in the dimension indexed by ddimind, either forward (direction=dddirFoward) or backward (direction=dddirBackward).
void dd_sendrecv_rvec | ( | const struct gmx_domdec_t * | dd, |
int | ddimind, | ||
int | direction, | ||
rvec * | buf_s, | ||
int | n_s, | ||
rvec * | buf_r, | ||
int | n_r | ||
) |
Move revc's in the comm. region one cell along the domain decomposition.
Moves in dimension indexed by ddimind, either forward (direction=dddirFoward) or backward (direction=dddirBackward).