NAMD
ComputeAngles.h
Go to the documentation of this file.
1 
7 #ifndef COMPUTEANGLE_H
8 #define COMPUTEANGLE_H
9 
10 #include "ComputeHomeTuples.h"
11 #include "ComputeSelfTuples.h"
12 #include "ReductionMgr.h"
13 
14 class Molecule;
15 
16 class AngleElem {
17 public:
18  // ComputeHomeTuples interface
19  enum { size = 3 };
24  static void computeForce(AngleElem*, int, BigReal*, BigReal *);
25 
26  static void getMoleculePointers(Molecule*, int*, int32***, Angle**);
27  static void getParameterPointers(Parameters*, const AngleValue**);
28  static void getTupleInfo(AtomSignature* sig, int *count, TupleSignature** t) {
29  *count = sig->angleCnt;
30  *t = sig->angleSigs;
31  }
32 
33  // pressure profile parameters
38 
39  // Internal data
40  const AngleValue *value;
41 
42  int hash() const {
43  return 0x7FFFFFFF & ((atomID[0]<<22) + (atomID[1]<<11) + (atomID[2]));
44  }
45 
50 
51  inline AngleElem();
52  inline AngleElem(AtomID atom0, const TupleSignature *sig, const AngleValue *v);
53  inline AngleElem(const Angle *a, const AngleValue *v);
54  inline AngleElem(AtomID atom0, AtomID atom1, AtomID atom2);
55  ~AngleElem() { };
56 
57  inline int operator==(const AngleElem &a) const;
58  inline int operator<(const AngleElem &a) const;
59 };
60 
61 class ComputeAngles : public ComputeHomeTuples<AngleElem,Angle,AngleValue>
62 {
63 public:
64 
66 
67 };
68 
69 class ComputeSelfAngles : public ComputeSelfTuples<AngleElem,Angle,AngleValue>
70 {
71 public:
72 
74 
75 };
76 
77 #include "ComputeAngles.inl"
78 
79 #endif
80 
TuplePatchElem * p[size]
Definition: ComputeAngles.h:22
static BigReal pressureProfileThickness
Definition: ComputeAngles.h:36
short int32
Definition: dumpdcd.c:24
int ComputeID
Definition: NamdTypes.h:183
int AtomID
Definition: NamdTypes.h:29
static void computeForce(AngleElem *, int, BigReal *, BigReal *)
Definition: ComputeAngles.C:47
float Real
Definition: common.h:109
int operator<(const AngleElem &a) const
static BigReal pressureProfileMin
Definition: ComputeAngles.h:37
ComputeAngles(ComputeID c, PatchIDList &p)
Definition: ComputeAngles.h:65
static void getParameterPointers(Parameters *, const AngleValue **)
Definition: ComputeAngles.C:43
int hash() const
Definition: ComputeAngles.h:42
AtomID atomID[size]
Definition: ComputeAngles.h:20
static void getMoleculePointers(Molecule *, int *, int32 ***, Angle **)
Definition: ComputeAngles.C:32
int PatchID
Definition: NamdTypes.h:182
int operator==(const AngleElem &a) const
int localIndex[size]
Definition: ComputeAngles.h:21
static int pressureProfileSlabs
Definition: ComputeAngles.h:34
ComputeSelfAngles(ComputeID c, PatchID p)
Definition: ComputeAngles.h:73
static void submitReductionData(BigReal *, SubmitReduction *)
const AngleValue * value
Definition: ComputeAngles.h:40
static void getTupleInfo(AtomSignature *sig, int *count, TupleSignature **t)
Definition: ComputeAngles.h:28
static int pressureProfileAtomTypes
Definition: ComputeAngles.h:35
TupleSignature * angleSigs
Definition: structures.h:334
double BigReal
Definition: common.h:114