Gromacs  2024.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Enumerations
pme_pp_communication.h File Reference
#include "gromacs/math/vectypes.h"
#include "gromacs/mdlib/sighandler.h"
#include "gromacs/utility/real.h"
+ Include dependency graph for pme_pp_communication.h:
+ This graph shows which files directly or indirectly include this file:

Description

This file contains declarations and constants necessary for coordinating the communication for the offload of long-ranged PME work to separate MPI rank, for computing energies and forces (Coulomb and LJ).

Author
Berk Hess hess@.nosp@m.kth..nosp@m.se
Mark Abraham mark..nosp@m.j.ab.nosp@m.raham.nosp@m.@gma.nosp@m.il.co.nosp@m.m

Classes

struct  gmx_pme_comm_n_box_t
 Helper struct for PP-PME communication of parameters. More...
 
struct  gmx_pme_comm_vir_ene_t
 Helper struct for PP-PME communication of virial and energy. More...
 

Macros

#define PP_PME_CHARGE   (1 << 0)
 Flags used to coordinate PP-PME communication and computation phases. More...
 
#define PP_PME_CHARGEB   (1 << 1)
 
#define PP_PME_SQRTC6   (1 << 2)
 
#define PP_PME_SQRTC6B   (1 << 3)
 
#define PP_PME_SIGMA   (1 << 4)
 
#define PP_PME_SIGMAB   (1 << 5)
 
#define PP_PME_COORD   (1 << 6)
 
#define PP_PME_ENER_VIR   (1 << 9)
 
#define PP_PME_FINISH   (1 << 10)
 
#define PP_PME_SWITCHGRID   (1 << 11)
 
#define PP_PME_RESETCOUNTERS   (1 << 12)
 
#define PP_PME_GPUCOMMS   (1 << 13)
 
#define PP_PME_RECVFTOGPU   (1 << 14)
 
#define PP_PME_MDGPUGRAPH   (1 << 15)
 

Enumerations

enum  {
  eCommType_ChargeA, eCommType_ChargeB, eCommType_SQRTC6A, eCommType_SQRTC6B,
  eCommType_SigmaA, eCommType_SigmaB, eCommType_NR, eCommType_COORD,
  eCommType_COORD_GPU, eCommType_CNB
}
 MPI Tags used to separate communication of different types of quantities.
 
enum  { pmerecvqxX, pmerecvqxFINISH, pmerecvqxSWITCHGRID, pmerecvqxRESETCOUNTERS }
 Return values for gmx_pme_recv_q_x.
 

Macro Definition Documentation

#define PP_PME_CHARGE   (1 << 0)

Flags used to coordinate PP-PME communication and computation phases.

Some parts of the code(gmx_pme_send_q, gmx_pme_recv_q_x) assume that the six first flags are exactly in this order.