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