NAMD
Parameters.h
Go to the documentation of this file.
1 
7 /*
8  The Parameters class is used to read in and store all of the parameters
9  from the parameter files. These parameters are stored and used to assign
10  constants to bonds and atoms as they are read in from the psf file
11 */
12 
13 #ifndef PARAM_H
14 
15 #define PARAM_H
16 
17 #include "parm.h"
18 
19 #include "ReadAmberParm.h"
20 
21 #include "common.h"
22 #include "structures.h"
23 #include "strlib.h"
24 #include "MStream.h"
25 //****** BEGIN CHARMM/XPLOR type changes
26 #include "SimParameters.h"
27 //****** END CHARMM/XPLOR type changes
28 
29 #include "GromacsTopFile.h"
30 
31 #ifndef cbrt
32  // cbrt() not in math.h on goneril
33  #define cbrt(x) pow((double)x,(double)(1.0/3.0))
34 #endif
35 
36 class Communicate;
37 class StringList;
38 
39 // The class Parameters is used to store and query the parameters for
40 // bonds and atoms. If the Parameter object resides on the master
41 // process, it is responsible for reading in all the parameters and
42 // then communicating them to the other processors. To do this, first
43 // the routine read_paramter_file is called to read in each parameter
44 // file. The information that is read in is stored in binary trees
45 // for vdw, bond, and angle information and in linked lists for
46 // dihedrals and impropers. Once all of the files have been read
47 // in, the routine done_reading_files is called. At this point, all
48 // of the data that has been read in is copied to arrays. This is
49 // so that each bond and atom can be assigned an index into these
50 // arrays to retreive the parameters in constant time.
51 //
52 // Then the psf file is read in. Each bond and atom is assigned an
53 // index into the parameter lists using the functions assign_*_index.
54 // Once the psf file has been read in, then the routine
55 // done_reading_structre is called to tell the object that it no
56 // longer needs to store the binary trees and linked lists that were
57 // used to query the parameters based on atom type. From this point
58 // on, only the indexes will be used.
59 //
60 // The master node then uses send_parameters to send all of these
61 // parameters to the other nodes and the objects on all of the other
62 // nodes use receive_parameters to accept these parameters.
63 //
64 // From this point on, all of the parameter data is static and the
65 // functions get_*_params are used to retrieve the parameter data
66 // that is desired.
67 
68 // Define the number of Multiples that a Dihedral or Improper
69 // bond can have with the Charm22 parameter set
70 #define MAX_MULTIPLICITY 6
71 
72 // Number of characters maximum allowed for storing atom type names
73 #define MAX_ATOMTYPE_CHARS 6
74 
75 //****** BEGIN CHARMM/XPLOR type changes
76 // Define the numbers associated with each possible parameter-file
77 // type (format) NAMD can handle.
78 #define paraXplor 0
79 #define paraCharmm 1
80 //****** END CHARMM/XPLOR type changes
81 
82 
83 class BondValue {
84 public:
85  BondValue() : k(0), x0(0), x1(0) { }
86  Real k; // Force constant for the bond
87  Real x0; // Rest distance for the bond
88  Real x1; // Upper wall for harmonic wall potential (with x0 lower wall)
89 };
90 
91 class AngleValue {
92 public:
93  Real k; // Force constant for angle
94  Real theta0; // Rest angle for angle
95  Real k_ub; // Urey-Bradley force constant
96  Real r_ub; // Urey-Bradley distance
97  int normal; // Whether we use harmonic (1) or cos-based (0) angle terms
98 };
99 
100 typedef struct four_body_consts
101 {
102  Real k; // Force constant
103  int n; // Periodicity
104  Real delta; // Phase shift
106 
108 public:
111 };
112 
114 public:
117 };
118 
120 
122 public:
123  enum {dim=25};
124  CrosstermData c[dim][dim]; // bicubic interpolation coefficients
125 };
126 
127 // JLai
129 public:
132 /* BigReal A;
133  BigReal B;
134  BigReal A14;
135  BigReal B14;
136  BigReal sqrt26;
137  BigReal expo;*/
138 };
139 // End of JLai
140 
141 
143 public:
144  // need to put parameters here...
145  // for now, copy bond
146  Real k; // Force constant for the bond
147  Real x0; // Rest distance for the bond
148 };
149 
150 typedef struct vdw_val
151 {
152  Real sigma; // Sigma value
153  Real epsilon; // Epsilon value
154  Real sigma14; // Sigma value for 1-4 interactions
155  Real epsilon14; // Epsilon value for 1-4 interactions
156 } VdwValue;
157 
158 // IndexedVdwPair is used to form a binary search tree that is
159 // indexed by vwd_type index. This is the tree that will be
160 // used to search during the actual simulation
161 
162 typedef struct indexed_vdw_pair
163 {
164  Index ind1; // Index for first atom type
165  Index ind2; // Index for second atom type
166  Real A; // Parameter A for this pair
167  Real A14; // Parameter A for 1-4 interactions
168  Real B; // Parameter B for this pair
169  Real B14; // Parameter B for 1-4 interactions
170  struct indexed_vdw_pair *right; // Right child
171  struct indexed_vdw_pair *left; // Left child
173 
174 typedef struct indexed_nbthole_pair
175 {
176  Index ind1; // Index for first atom type
177  Index ind2; // Index for second atom type
178  Real alphai; // Parameter alpha for this pair
179  Real alphaj; // Parameter alpha for this pair
180  Real tholeij; // Parameter thole for this pair
181  struct indexed_nbthole_pair *right; // Right child
182  struct indexed_nbthole_pair *left; // Left child
184 
185 typedef struct nbthole_pair_value
186 {
187  Index ind1; // Index for first atom type
188  Index ind2; // Index for second atom type
189  Real alphai; // Parameter alpha for this pair
190  Real alphaj; // Parameter alpha for this pair
191  Real tholeij; // Parameter thole for this pair
193 
194 // IndexedTablePair is used to form a binary search tree that is
195 // indexed by table_type index. This is the tree that will be
196 // used to search during the actual simulation
197 
198 typedef struct indexed_table_pair
199 {
200  Index ind1; // Index for first atom type
201  Index ind2; // Index for second atom type
202  int K; // number of the table type for this pair
203  struct indexed_table_pair *right; // Right child
204  struct indexed_table_pair *left; // Left child
206 
207 // Structures that are defined in Parameters.C
208 struct bond_params;
209 struct angle_params;
210 struct improper_params;
211 struct dihedral_params;
212 struct crossterm_params;
213 struct vdw_params;
214 struct vdw_pair_params;
215 struct nbthole_pair_params;
216 struct table_pair_params;
217 
219 {
220 private:
221  void initialize(); // zeros out pointers
222 
223  char *atomTypeNames; // Names of atom types
224  Bool AllFilesRead; // Flag TRUE imples that all
225  // of the parameter files
226  // have been read in and
227  // the arrays have been
228  // created.
229 //****** BEGIN CHARMM/XPLOR type changes
230  int paramType; // Type (format) of parameter-file
231 //****** END CHARMM/XPLOR type changes
232  bool cosAngles; // True if some angles may be cos-based
233  struct bond_params *bondp; // Binary tree of bond params
234  struct angle_params *anglep; // Binary tree of angle params
235  struct improper_params *improperp; // Linked list of improper par.
236  struct dihedral_params *dihedralp; // Linked list of dihedral par.
237  struct crossterm_params *crosstermp; // Linked list of cross-term par.
238  struct vdw_params *vdwp; // Binary tree of vdw params
239  struct vdw_pair_params *vdw_pairp; // Binary tree of vdw pairs
240  struct nbthole_pair_params *nbthole_pairp; // Binary tree of nbthole pairs
241  struct table_pair_params *table_pairp; // Binary tree of table pairs
242 public:
243  BondValue *bond_array; // Array of bond params
244  AngleValue *angle_array; // Array of angle params
245  DihedralValue *dihedral_array; // Array of dihedral params
246  ImproperValue *improper_array; // Array of improper params
247  CrosstermValue *crossterm_array; // Array of crossterm params
248  // JLai
249  GromacsPairValue *gromacsPair_array; // Array of gromacsPair params
250  // End of JLai
251  VdwValue *vdw_array; // Array of vdw params
252  NbtholePairValue *nbthole_array; // Array of nbthole params
253  int numenerentries; // Number of entries for enertable
254  int rowsize;
256  BigReal* table_ener; // Table for tabulated energies
257  IndexedVdwPair *vdw_pair_tree; // Tree of vdw pair params
258  IndexedNbtholePair *nbthole_pair_tree; // Tree of nbthole pair params
259  IndexedTablePair *tab_pair_tree; // Tree of vdw pair params
261  int NumBondParams; // Number of bond parameters
262  int NumAngleParams; // Number of angle parameters
263  int NumCosAngles; // Number of cosine-based angles
264  int NumDihedralParams; // Number of dihedral params
265  int NumImproperParams; // Number of improper params
266  int NumCrosstermParams; // Number of cross-term params
267  // JLai
268  int NumGromacsPairParams; // Number of gromacsPair params
269  // End of JLai
270  int NumVdwParams; // Number of vdw parameters
271  int NumTableParams; // Number of table parameters
272  int NumVdwParamsAssigned; // Number actually assigned
273  int NumVdwPairParams; // Number of vdw_pair params
274  int NumNbtholePairParams; // Number of nbthole_pair params
275  int NumTablePairParams; // Number of vdw_pair params
276 private:
277  ResizeArray<char *> error_msgs; // Avoids repeating warnings
278 
279  int *maxDihedralMults; // Max multiplicity for
280  // dihedral bonds
281  int *maxImproperMults; // Max multiplicity for
282  // improper bonds
283 
284  void skip_stream_read(char *, FILE *); // skip part of stream file
285 
286  void add_bond_param(const char *, Bool);// Add a bond parameter
287  struct bond_params *add_to_bond_tree(struct bond_params * ,
288  struct bond_params *, Bool overwrite);
289 
290  void add_angle_param(char *); // Add an angle parameter
291  struct angle_params *add_to_angle_tree(struct angle_params * ,
292  struct angle_params *);
293 
294  void add_dihedral_param(char *, FILE *); // Add a dihedral parameter
295  void add_to_dihedral_list(struct dihedral_params *);
296  void add_to_charmm_dihedral_list(struct dihedral_params *);
297 
298  void add_improper_param(char *, FILE *); // Add an improper parameter
299  void add_to_improper_list(struct improper_params *);
300 
301  void add_crossterm_param(char *, FILE *); // Add an cross-term parameter
302  void add_to_crossterm_list(struct crossterm_params *);
303 
304  void add_vdw_param(char *); // Add a vdw parameter
305  struct vdw_params *add_to_vdw_tree(struct vdw_params *,
306  struct vdw_params *);
307 
308  void add_vdw_pair_param(char *); // Add a vdw pair parameter
309  void add_nbthole_pair_param(char *); // Add a nbthole pair parameter
310  void add_table_pair_param(char *); // Add a table pair parameter
311  void add_to_vdw_pair_list(struct vdw_pair_params *);
312  void add_to_nbthole_pair_list(struct nbthole_pair_params *);
313  void add_to_table_pair_list(struct table_pair_params *);
314 
315  void add_hb_pair_param(char *); // Add a hydrogen bond pair parameter
316 
317  // All of the traverse routines are used for debugging purposes
318  // to print out the appropriate list of parameters
319  void traverse_vdw_pair_params(struct vdw_pair_params *);
320  void traverse_nbthole_pair_params(struct nbthole_pair_params *);
321  void traverse_vdw_params(struct vdw_params *);
322  void traverse_dihedral_params(struct dihedral_params *);
323  void traverse_improper_params(struct improper_params *);
324  void traverse_crossterm_params(struct crossterm_params *);
325  void traverse_angle_params(struct angle_params *);
326  void traverse_bond_params(struct bond_params *);
327 
328  // The index_* routines are used to index each of
329  // the parameters and build the arrays that will be used
330  // for constant time access
331  Index index_bonds(struct bond_params *, Index);
332  Index index_angles(struct angle_params *, Index);
333  Index index_vdw(struct vdw_params *, Index);
334  void index_dihedrals();
335  void index_impropers();
336  void index_crossterms();
337 
338  void convert_vdw_pairs();
339  void convert_nbthole_pairs();
340  void convert_table_pairs();
341  IndexedVdwPair *add_to_indexed_vdw_pairs(IndexedVdwPair *, IndexedVdwPair *);
342  IndexedNbtholePair *add_to_indexed_nbthole_pairs(IndexedNbtholePair *, IndexedNbtholePair *);
343  IndexedTablePair *add_to_indexed_table_pairs(IndexedTablePair *, IndexedTablePair *);
344 
345  int vdw_pair_to_arrays(int *, int *, Real *, Real *, Real *, Real *,
346  int, IndexedVdwPair *);
347 
348  int nbthole_pair_to_arrays(int *, int *, Real *, Real *, Real *, int, IndexedNbtholePair *);
349 
350  int table_pair_to_arrays(int *, int *, int *, int, IndexedTablePair *);
351 
352  // The free_* routines are used by the destructor to deallocate
353  // memory
354  void free_bond_tree(struct bond_params *);
355  void free_angle_tree(struct angle_params *);
356  void free_dihedral_list(struct dihedral_params *);
357  void free_improper_list(struct improper_params *);
358  void free_crossterm_list(struct crossterm_params *);
359  void free_vdw_tree(struct vdw_params *);
360  void free_vdw_pair_tree(IndexedVdwPair *);
361  void free_nbthole_pair_tree(IndexedNbtholePair *);
362  void free_table_pair_tree(IndexedTablePair *);
363  void free_vdw_pair_list();
364  void free_nbthole_pair_list();
365 
366  BigReal interp_lin(BigReal, BigReal, BigReal, BigReal, BigReal); // Perform a linear interpolation for energy table
367 
368  /* does the actual initialization, once the variables have all
369  been given default values. See Parameters() below */
370  void read_parm(const GromacsTopFile *, Bool min);
371 public:
372  //****** BEGIN CHARMM/XPLOR type changes
374  Parameters();
376  //****** END CHARMM/XPLOR type changes
377 
379  void read_parm(Ambertoppar *, BigReal);
380 
382  void read_parm(AmberParm7Reader::Ambertoppar *, BigReal);
383  /* initializes this to hold the set of parameters in the
384  GROMACS topology file <gf>. If the parameter <min> is on,
385  this assumes that we are going to do minimization and
386  therefore can't have atoms with zero VDW - it will add a
387  small repulsive term to these. */
388  Parameters(const GromacsTopFile *gf, Bool min);
389 
390  ~Parameters(); // Destructor
391 
392  // return a string for the Nth atom type. This can only be
393  // called after all the param files have been read and the type
394  // names have been indexed. The Nth atom type refers to the same
395  // index of the Nth vdw parameter (i.e. there are NumVdwParams names).
397  return (atomTypeNames + (a * (MAX_ATOMTYPE_CHARS + 1)));
398  }
399 
400  // Read a parameter file
401  void read_parameter_file(char *);
402 
403  //****** BEGIN CHARMM/XPLOR type changes
404  void read_charmm_parameter_file(char *);
405  //****** END CHARMM/XPLOR type changes
406 
407  // Signal the parameter object that all of
408  // the parameter files have been read in
409  void done_reading_files(Bool);
410 
411  // Signal the parameter object that the
412  // structure file has been read in
413  void done_reading_structure();
414 
415  // The assign_*_index routines are used to assign
416  // an index to atoms or bonds. If an specific atom
417  // or bond type can't be found, then the program
418  // terminates
419  #ifdef MEM_OPT_VERSION
420  void assign_vdw_index(const char *, AtomCstInfo *);
421  #else
422  void assign_vdw_index(const char *, Atom *); // Assign a vdw index to
423  #endif
424  // an atom
425  void assign_bond_index(const char *, const char *, Bond *);
426  // Assign a bond index
427  // to a bond
428  void assign_angle_index(const char *, const char *, const char *, Angle *, int);
429  // Assign an angle index
430  // to an angle
431  void assign_dihedral_index(const char *, const char*, const char*, const char *, Dihedral *, int, int);
432  // Assign a dihedral index
433  // to a dihedral
434  void assign_improper_index(const char *, const char*, const char*, const char *, Improper *, int);
435  // Assign an improper index
436  // to an improper
437  void assign_crossterm_index(const char *, const char*, const char*, const char *, const char *, const char*, const char*, const char *, Crossterm *);
438 
439  // send_parameters is used by the master process to
440  // communicate the paramters to all the other processors
441  void send_Parameters(MOStream *);
442 
443  // receive_parameters is used by all the child processes
444  // to receive the parameters from the master process
446 
447  // The get_*_params routines are the routines that really
448  // do all the work for this object. Given an index, they
449  // access the parameters and return the relevant information
451  {
452  *k = bond_array[index].k;
453  *x0 = bond_array[index].x0;
454  }
455 
456  void get_angle_params(Real *k, Real *theta0, Real *k_ub, Real *r_ub,
457  Index index)
458  {
459  *k = angle_array[index].k;
460  *theta0 = angle_array[index].theta0;
461  *k_ub = angle_array[index].k_ub;
462  *r_ub = angle_array[index].r_ub;
463  }
464 
466  {
467  return(improper_array[index].multiplicity);
468  }
469 
471  {
472  return(dihedral_array[index].multiplicity);
473  }
474 
475  void get_improper_params(Real *k, int *n, Real *delta,
476  Index index, int mult)
477  {
478  if ( (mult<0) || (mult>MAX_MULTIPLICITY) )
479  {
480  NAMD_die("Bad mult index in Parameters::get_improper_params");
481  }
482 
483  *k = improper_array[index].values[mult].k;
484  *n = improper_array[index].values[mult].n;
485  *delta = improper_array[index].values[mult].delta;
486  }
487 
488  void get_dihedral_params(Real *k, int *n, Real *delta,
489  Index index, int mult)
490  {
491  if ( (mult<0) || (mult>MAX_MULTIPLICITY) )
492  {
493  NAMD_die("Bad mult index in Parameters::get_dihedral_params");
494  }
495 
496  *k = dihedral_array[index].values[mult].k;
497  *n = dihedral_array[index].values[mult].n;
498  *delta = dihedral_array[index].values[mult].delta;
499  }
500 
503  {
504  if ( vdw_array ) {
505  *sigma = vdw_array[index].sigma;
506  *epsilon = vdw_array[index].epsilon;
507  *sigma14 = vdw_array[index].sigma14;
508  *epsilon14 = vdw_array[index].epsilon14;
509  } else {
510  // sigma and epsilon from A and B for each vdw type's interaction with itself
511  Real A; Real B; Real A14; Real B14;
512  if (get_vdw_pair_params(index, index, &A, &B, &A14, &B14) ) {
513  if (A && B) {
514  *sigma = sqrt(cbrt(A)) / sqrt(cbrt(B));
515  *epsilon = B*B / (4*A);
516  }
517  else {
518  *sigma = 0; *epsilon = 0;
519  }
520  if (A14 && B14) {
521  *sigma14 = sqrt(cbrt(A14)) / sqrt(cbrt(B14));
522  *epsilon14 = B14*B14 / (4*A14);
523  }
524  else {
525  *sigma14 = 0; *epsilon14 = 0;
526  }
527  }
528  else {NAMD_die ("Function get_vdw_params failed to derive Lennard-Jones sigma and epsilon from A and B values\n");}
529  }
530  }
531 
532  int get_vdw_pair_params(Index ind1, Index ind2, Real *, Real *, Real *, Real *);
533  // Find a vwd_pair parameter
534 
536 
537  int get_table_pair_params(Index, Index, int*);
538 
539  // The print_*_params are provided for debugging purposes
540  void print_bond_params(); // Print bonds params
541  void print_angle_params(); // Print angle params
542  void print_dihedral_params(); // Print dihedral params
543  void print_improper_params(); // Print improper params
544  void print_crossterm_params(); // Print cross-term params
545  void print_vdw_params(); // Print vdw params
546  void print_vdw_pair_params(); // Print vdw_pair params
547  void print_nbthole_pair_params(); // Print nbthole_pair params
548  void print_param_summary(); // Print a summary of params
549  void read_ener_table(SimParameters*); // Read an energy table file
550  int get_int_table_type(char*); // Return the integer type for a named table interaction
551 
552  int read_energy_type(FILE*, const int, BigReal*, const float, const float);
553  int read_energy_type_cubspline(FILE*, const int, BigReal*, const float, const float);
554  int read_energy_type_bothcubspline(FILE*, const int, BigReal*, const float, const float);
555 };
556 
557 #endif
558 
int numenerentries
Definition: Parameters.h:253
int NumTablePairParams
Definition: Parameters.h:275
GromacsPairValue * gromacsPair_array
Definition: Parameters.h:249
void assign_improper_index(const char *, const char *, const char *, const char *, Improper *, int)
Definition: Parameters.C:4065
int NumBondParams
Definition: Parameters.h:261
CrosstermData c[dim][dim]
Definition: Parameters.h:124
Real epsilon
Definition: Parameters.h:153
int NumTableParams
Definition: Parameters.h:271
int columnsize
Definition: Parameters.h:255
void assign_vdw_index(const char *, Atom *)
Definition: Parameters.C:3470
void print_crossterm_params()
void print_bond_params()
Definition: Parameters.C:4847
void read_charmm_parameter_file(char *)
Definition: Parameters.C:539
struct indexed_vdw_pair * right
Definition: Parameters.h:170
void assign_bond_index(const char *, const char *, Bond *)
Definition: Parameters.C:3758
struct indexed_table_pair * right
Definition: Parameters.h:203
int NumVdwParams
Definition: Parameters.h:270
const BigReal A
struct indexed_table_pair IndexedTablePair
Real r_ub
Definition: Parameters.h:96
int get_improper_multiplicity(Index index)
Definition: Parameters.h:465
float Real
Definition: common.h:109
int NumVdwPairParams
Definition: Parameters.h:273
Real sigma14
Definition: Parameters.h:154
void get_dihedral_params(Real *k, int *n, Real *delta, Index index, int mult)
Definition: Parameters.h:488
int read_energy_type_cubspline(FILE *, const int, BigReal *, const float, const float)
Definition: Parameters.C:7367
Real sigma14
Definition: Parameters.C:146
DihedralValue * dihedral_array
Definition: Parameters.h:245
Real x1
Definition: Parameters.h:88
int NumAngleParams
Definition: Parameters.h:262
CrosstermValue * crossterm_array
Definition: Parameters.h:247
IndexedVdwPair * vdw_pair_tree
Definition: Parameters.h:257
int read_energy_type(FILE *, const int, BigReal *, const float, const float)
Definition: Parameters.C:7606
Real epsilon14
Definition: Parameters.C:147
int NumDihedralParams
Definition: Parameters.h:264
void print_param_summary()
Definition: Parameters.C:4966
IndexedNbtholePair * nbthole_pair_tree
Definition: Parameters.h:258
BigReal d11
Definition: Parameters.h:119
void read_parameter_file(char *)
Definition: Parameters.C:404
FourBodyConsts values[MAX_MULTIPLICITY]
Definition: Parameters.h:110
AngleValue * angle_array
Definition: Parameters.h:244
int Index
Definition: structures.h:26
struct indexed_vdw_pair * left
Definition: Parameters.h:171
int get_int_table_type(char *)
Definition: Parameters.C:7724
void get_angle_params(Real *k, Real *theta0, Real *k_ub, Real *r_ub, Index index)
Definition: Parameters.h:456
int NumNbtholePairParams
Definition: Parameters.h:274
#define MAX_MULTIPLICITY
Definition: Parameters.h:70
void get_improper_params(Real *k, int *n, Real *delta, Index index, int mult)
Definition: Parameters.h:475
void assign_crossterm_index(const char *, const char *, const char *, const char *, const char *, const char *, const char *, const char *, Crossterm *)
Definition: Parameters.C:4164
int normal
Definition: Parameters.h:97
Real sigma
Definition: Parameters.h:152
void print_vdw_pair_params()
Definition: Parameters.C:4932
int NumImproperParams
Definition: Parameters.h:265
struct indexed_table_pair * left
Definition: Parameters.h:204
int Bool
Definition: common.h:133
void print_dihedral_params()
Definition: Parameters.C:4881
struct four_body_consts FourBodyConsts
struct vdw_val VdwValue
BigReal d00
Definition: Parameters.h:119
struct indexed_vdw_pair IndexedVdwPair
int NumCosAngles
Definition: Parameters.h:263
int NumCrosstermParams
Definition: Parameters.h:266
Definition: parm.h:15
ImproperValue * improper_array
Definition: Parameters.h:246
int get_vdw_pair_params(Index ind1, Index ind2, Real *, Real *, Real *, Real *)
Definition: Parameters.C:3680
void NAMD_die(const char *err_msg)
Definition: common.C:85
int NumVdwParamsAssigned
Definition: Parameters.h:272
NbtholePairValue * nbthole_array
Definition: Parameters.h:252
char * atom_type_name(Index a)
Definition: Parameters.h:396
int get_num_vdw_params(void)
Definition: Parameters.h:535
FourBodyConsts values[MAX_MULTIPLICITY]
Definition: Parameters.h:116
struct indexed_nbthole_pair * right
Definition: Parameters.h:181
int get_table_pair_params(Index, Index, int *)
Definition: Parameters.C:3605
void send_Parameters(MOStream *)
Definition: Parameters.C:5048
void done_reading_files(Bool)
Definition: Parameters.C:2959
void print_nbthole_pair_params()
Definition: Parameters.C:4949
VdwValue * vdw_array
Definition: Parameters.h:251
void print_vdw_params()
Definition: Parameters.C:4915
Index index
Definition: Parameters.C:148
BigReal d01
Definition: Parameters.h:119
BigReal * table_ener
Definition: Parameters.h:256
Real x0
Definition: Parameters.h:87
BondValue * bond_array
Definition: Parameters.h:243
void read_ener_table(SimParameters *)
Definition: Parameters.C:6888
void print_improper_params()
Definition: Parameters.C:4898
const BigReal B
int read_energy_type_bothcubspline(FILE *, const int, BigReal *, const float, const float)
Definition: Parameters.C:7131
void assign_dihedral_index(const char *, const char *, const char *, const char *, Dihedral *, int, int)
Definition: Parameters.C:3956
int NumGromacsPairParams
Definition: Parameters.h:268
void done_reading_structure()
Definition: Parameters.C:4999
Real epsilon14
Definition: Parameters.h:155
void assign_angle_index(const char *, const char *, const char *, Angle *, int)
Definition: Parameters.C:3854
Real theta0
Definition: Parameters.h:94
struct indexed_nbthole_pair * left
Definition: Parameters.h:182
int tablenumtypes
Definition: Parameters.h:260
void print_angle_params()
Definition: Parameters.C:4865
Real epsilon
Definition: Parameters.C:145
Real sigma
Definition: Parameters.C:144
void get_bond_params(Real *k, Real *x0, Index index)
Definition: Parameters.h:450
struct nbthole_pair_value NbtholePairValue
void get_vdw_params(Real *sigma, Real *epsilon, Real *sigma14, Real *epsilon14, Index index)
Definition: Parameters.h:501
int get_dihedral_multiplicity(Index index)
Definition: Parameters.h:470
IndexedTablePair * tab_pair_tree
Definition: Parameters.h:259
#define cbrt(x)
Definition: Parameters.h:33
Real k_ub
Definition: Parameters.h:95
Real k
Definition: Parameters.h:86
#define MAX_ATOMTYPE_CHARS
Definition: Parameters.h:73
BigReal d10
Definition: Parameters.h:119
struct indexed_nbthole_pair IndexedNbtholePair
void receive_Parameters(MIStream *)
Definition: Parameters.C:5424
double BigReal
Definition: common.h:114