NAMD
msm.h
Go to the documentation of this file.
1 /* msm.h */
2 
3 #ifndef NL_MSM_H
4 #define NL_MSM_H
5 
6 #ifdef __cplusplus
7 extern "C" {
8 #endif
9 
10 
12  struct NL_Msm_t;
13  typedef struct NL_Msm_t NL_Msm;
14 
16  NL_Msm *NL_msm_create(void);
17 
19  void NL_msm_destroy(NL_Msm *);
20 
32  int NL_msm_setup(
33  NL_Msm *msm,
34  double cutoff,
35  double cellvec1[3],
36  double cellvec2[3],
37  double cellvec3[3],
38  double cellcenter[3],
39  int msmflags
40  );
41 
43  enum {
51  = 0x008,
53  = 0x010,
59  = 0x080,
65  = 0x200,
68  = 0x400,
70  = 0x800,
74  };
75 
77  enum {
85  };
86 
103  int NL_msm_configure(
104  NL_Msm *msm,
105  double gridspacing,
106  int approx,
107  int split,
108  int nlevels
109  );
110 
116  NL_Msm *msm,
117  double *felec,
118  double *uelec,
119  const double *atom,
120  int natoms
121  );
122 
126  NL_Msm *msm,
127  float *felec,
128  float *uelec,
129  const float *atom,
130  int natoms
131  );
132 
133 #if 0
134 
139  int NL_msm_compute_epotmap(
140  NL_Msm *msm,
141  double *epotmap,
142  int mx,
143  int my,
144  int mz,
145  double maplen[3],
146  double mapcenter[3],
147  const double *atom,
148  int natoms
149  );
150 #endif
151 
153  enum {
163  };
164 
187  enum {
222  };
223 
225  int NL_msm_approx(const char *name);
226 
228  int NL_msm_split(const char *name);
229 
231  const char *NL_msm_approx_name(int approx);
232 
234  const char *NL_msm_split_name(int split);
235 
236 
237 #ifdef __cplusplus
238 }
239 #endif
240 
241 #endif /* MSM_H */
int msmflags
Definition: msm_defn.h:590
double * felec
Definition: msm_defn.h:568
double cellvec2[3]
Definition: msm_defn.h:575
const char * NL_msm_split_name(int split)
Definition: msm.c:220
int approx
Definition: msm_defn.h:642
NL_Msm * NL_msm_create(void)
Definition: msm.c:6
int NL_msm_configure(NL_Msm *pm, double gridspacing, int approx, int split, int nlevels)
Definition: msm.c:36
double cellvec1[3]
Definition: msm_defn.h:574
int NL_msm_approx(const char *name)
Definition: msm.c:160
double uelec
Definition: msm_defn.h:566
double cellvec3[3]
Definition: msm_defn.h:576
double cellcenter[3]
Definition: msm_defn.h:577
int NL_msm_compute_force(NL_Msm *pm, double *felec, double *uelec, const double *atom, int natoms)
Definition: msm.c:56
int NL_msm_split(const char *name)
Definition: msm.c:210
const double * atom
Definition: msm_defn.h:569
std::vector< std::string > split(const std::string &text, std::string delimiter)
Definition: MoleculeQM.C:73
double gridspacing
Definition: msm_defn.h:633
const char * NL_msm_approx_name(int approx)
Definition: msm.c:170
int NL_msm_compute_force_sprec(NL_Msm *pm, float *felec_f, float *uelec_f, const float *atom_f, int natoms)
Definition: msm.c:102
void NL_msm_destroy(NL_Msm *pm)
Definition: msm.c:28
int nlevels
Definition: msm_defn.h:645
int NL_msm_setup(NL_Msm *msm, double cutoff, double cellvec1[3], double cellvec2[3], double cellvec3[3], double cellcenter[3], int msmflags)
Definition: msm_setup.c:62