NAMD
LjPmeCompute.h
Go to the documentation of this file.
1 
7 #ifndef LJPMECOMPUTE_H
8 #define LJPMECOMPUTE_H
9 
10 #include "Node.h"
11 #include "Lattice.h"
12 #include "NamdTypes.h"
13 #include "LjPmeMgr.h"
14 #include <stdlib.h>
15 #include <stdio.h>
16 #include <errno.h>
17 
18 class LjPmeMgr;
19 
20 class LjPmeCompute {
21 public:
23  ljPmeCoord(NULL), ljParameter(NULL),
24  ljParameter14(NULL), atomType(NULL),
25  ljForceNonbond(NULL), ljForceSlow(NULL)
26  {
27  initialized = false;
28  //atomChanged = true;
29  numAtoms = 0;
30  }
31 
33  ljPmeCoord = NULL; ljParameter = NULL;
34  ljParameter14 = NULL; atomType = NULL;
35  ljForceNonbond = NULL; ljForceSlow = NULL;
36  numAtoms = 0;
37  initialized = false;
38  }
39 
41  void initialize(const double *pmeCoord, const double *parameter,
42  const double *parameter14, const int *type,
43  double *forceNonbond, double *forceSlow,
44  const int &ljTableDim, const int &nAtoms);
45 
46  void computeLJpotential(const double &alphaLJ,
47  const double &cutoff,
48  const Lattice &lattice,
49  double virialNonbonded[][3],
50  double virialSlow[][3],
51  double &energyNonbond,
52  double &energySlow,
53  bool doEnergy,
54  bool doSlow);
55 
56  template <bool doSlow, bool doEnergy>
57  void computeNonbonded(const double &alphaLJ,
58  const double &cutoff,
59  const Lattice &lattice,
60  double virialNonbonded[][3],
61  double virialSlow[][3],
62  double &energyNonbond,
63  double &energySlow);
64 
65 
66 private:
67  LjPmeMgr ljPmeMgr;
68  const int *atomType;
69  const double *ljPmeCoord;
70  const double *ljParameter;
71  const double *ljParameter14; // Eps & sigma for 1-4 LJ paramters. Size = 2*tableDim*tableDim */
72  double *ljForceSlow;
73  double *ljForceNonbond;
74  int numAtoms;
75  int tableDim;
76  //Bool atomChanged; /**< Flag to check if we need to recreate LjPmeMgr? */
77  Bool initialized;
78 };
79 
80 
81 #endif
82 
void computeLJpotential(const double &alphaLJ, const double &cutoff, const Lattice &lattice, double virialNonbonded[][3], double virialSlow[][3], double &energyNonbond, double &energySlow, bool doEnergy, bool doSlow)
Definition: LjPmeCompute.C:34
void computeNonbonded(const double &alphaLJ, const double &cutoff, const Lattice &lattice, double virialNonbonded[][3], double virialSlow[][3], double &energyNonbond, double &energySlow)
Definition: LjPmeCompute.C:77
int Bool
Definition: common.h:142
void initialize(const double *pmeCoord, const double *parameter, const double *parameter14, const int *type, double *forceNonbond, double *forceSlow, const int &ljTableDim, const int &nAtoms)
Definition: LjPmeCompute.C:13