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  static int pswitchTable[3*3];
46 
47  int hash() const { return 0x7FFFFFFF & ( (atomID[0]<<16) + (atomID[1])); }
48 
49  // Internal data
50  int modified;
51 
57  TENSOR(virialIndex), TENSOR(slowVirialIndex), reductionDataSize };
60 
61  inline ExclElem();
62  inline ExclElem(AtomID atom0, const TupleSignature *sig, const int *v);
63  inline ExclElem(const Exclusion *a, const int *v);
64  inline ExclElem(AtomID atom0, AtomID atom1);
65  ~ExclElem() {};
66 
67  inline int operator==(const ExclElem &a) const;
68  inline int operator<(const ExclElem &a) const;
69 };
70 
71 class ComputeExcls : public ComputeHomeTuples<ExclElem,Exclusion,int>
72 {
73 public:
74 
76 
77 };
78 
79 class ComputeSelfExcls : public ComputeSelfTuples<ExclElem,Exclusion,int>
80 {
81 public:
82 
84 
85 };
86 
88 
89 #endif
90 
int operator<(const ExclElem &a) const
static int pressureProfileAtomTypes
int32 ComputeID
Definition: NamdTypes.h:278
ComputeExcls(ComputeID c, PatchIDList &p)
static void submitReductionData(BigReal *, SubmitReduction *)
static void computeForce(ExclElem *, int, BigReal *, BigReal *)
float Real
Definition: common.h:118
int32_t int32
Definition: common.h:38
static void getParameterPointers(Parameters *, const int **)
Molecule stores the structural information for the system.
Definition: Molecule.h:175
TupleSignature * allTuples
Definition: structures.h:527
static int pswitchTable[3 *3]
int operator==(const ExclElem &a) const
TuplePatchElem * p[size]
ComputeSelfExcls(ComputeID c, PatchID p)
static int pressureProfileSlabs
AtomID atomID[size]
int32 AtomID
Definition: NamdTypes.h:35
static BigReal pressureProfileThickness
int32 PatchID
Definition: NamdTypes.h:277
static void getTupleInfo(ExclusionSignature *sig, int *count, TupleSignature **t)
static BigReal pressureProfileMin
static void getMoleculePointers(Molecule *, int *, int32 ***, Exclusion **)
double BigReal
Definition: common.h:123