NAMD
ComputeNonbondedCUDAExcl.h
Go to the documentation of this file.
1 
7 #ifndef COMPUTENONBONDEDCUDAEXCL_H
8 #define COMPUTENONBONDEDCUDAEXCL_H
9 
10 #include "common.h"
11 #include "NamdTypes.h"
12 #include "Molecule.h"
13 #include "ReductionMgr.h"
14 #include "ComputeHomeTuples.h"
15 #include "ComputeSelfTuples.h"
16 #include "ComputeNonbondedUtil.h"
17 
18 
19 class TuplePatchElem;
20 
22 public:
23  // ComputeHomeTuples interface
24  enum { size = 2 };
29  static void computeForce(ExclElem*, int, BigReal*, BigReal *);
30 
31  static void getMoleculePointers(Molecule*, int*, int32***, Exclusion**);
32  static void getParameterPointers(Parameters*, const int**);
33  static void getTupleInfo(ExclusionSignature* sig, int *count, TupleSignature** t) {
34 #if defined(NAMD_CUDA) || defined(NAMD_HIP)
35  *count = sig->allExclCnt;
36  *t = sig->allTuples;
37 #endif
38  }
39 
40  // pressure profile parameters
45 
46  int hash() const { return 0x7FFFFFFF & ( (atomID[0]<<16) + (atomID[1])); }
47 
48  // Internal data
49  int modified;
50 
52  TENSOR(slowVirialIndex), reductionDataSize };
55 
56  inline ExclElem();
57  inline ExclElem(AtomID atom0, const TupleSignature *sig, const int *v);
58  inline ExclElem(const Exclusion *a, const int *v);
59  inline ExclElem(AtomID atom0, AtomID atom1);
60  ~ExclElem() {};
61 
62  inline int operator==(const ExclElem &a) const;
63  inline int operator<(const ExclElem &a) const;
64 };
65 
66 class ComputeExcls : public ComputeHomeTuples<ExclElem,Exclusion,int>
67 {
68 public:
69 
71 
72 };
73 
74 class ComputeSelfExcls : public ComputeSelfTuples<ExclElem,Exclusion,int>
75 {
76 public:
77 
79 
80 };
81 
83 
84 #endif
85 
static int pressureProfileAtomTypes
short int32
Definition: dumpdcd.c:24
int ComputeID
Definition: NamdTypes.h:183
int AtomID
Definition: NamdTypes.h:29
ComputeExcls(ComputeID c, PatchIDList &p)
static void submitReductionData(BigReal *, SubmitReduction *)
int operator==(const ExclElem &a) const
static void computeForce(ExclElem *, int, BigReal *, BigReal *)
float Real
Definition: common.h:109
int hash() const
static void getParameterPointers(Parameters *, const int **)
TupleSignature * allTuples
Definition: structures.h:522
int operator<(const ExclElem &a) const
int PatchID
Definition: NamdTypes.h:182
TuplePatchElem * p[size]
ComputeSelfExcls(ComputeID c, PatchID p)
static int pressureProfileSlabs
AtomID atomID[size]
static BigReal pressureProfileThickness
static void getTupleInfo(ExclusionSignature *sig, int *count, TupleSignature **t)
static BigReal pressureProfileMin
static void getMoleculePointers(Molecule *, int *, int32 ***, Exclusion **)
double BigReal
Definition: common.h:114