3 * This source code is part of
7 * GROningen MAchine for Chemical Simulations
10 * Written by David van der Spoel, Erik Lindahl, Berk Hess, and others.
11 * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
12 * Copyright (c) 2001-2004, The GROMACS development team,
13 * check out http://www.gromacs.org for more information.
15 * This program is free software; you can redistribute it and/or
16 * modify it under the terms of the GNU General Public License
17 * as published by the Free Software Foundation; either version 2
18 * of the License, or (at your option) any later version.
20 * If you want to redistribute modifications, please consider that
21 * scientific software is very special. Version control is crucial -
22 * bugs must be traceable. We will be happy to consider code for
23 * inclusion in the official distribution, but derived work must not
24 * be called official GROMACS. Details are found in the README & COPYING
25 * files - if they are missing, get the official version at www.gromacs.org.
27 * To help us fund GROMACS development, we humbly ask that you cite
28 * the papers on the package - you can find them in the top README file.
30 * For more info, check our website at http://www.gromacs.org
33 * Gromacs Runs On Most of All Computer Systems
50 bool bSet
; /* Has this combination been set */
51 real c
[4]; /* The non-bonded parameters */
53 /* The t_nbparam struct is used to temporary store the explicit
54 * non-bonded parameter combinations, which will be copied to t_params.
58 atom_id a
[MAXATOMLIST
]; /* The atom list (eg. bonds: particle */
59 /* i = a[0] (AI), j = a[1] (AJ)) */
60 real c
[MAXFORCEPARAM
]; /* Force parameters (eg. b0 = c[0]) */
61 char s
[MAXSLEN
]; /* A string (instead of parameters), *
62 * read from the .rtp file in pdb2gmx */
66 int nr
; /* The number of bonds in this record */
67 int maxnr
; /* The amount of elements in the array */
68 t_param
*param
; /* Array of parameters (dim: nr) */
70 /* CMAP tmp data, there are probably better places for this */
71 int grid_spacing
; /* Cmap grid spacing */
72 int nc
; /* Number of cmap angles */
74 real
*cmap
; /* Temporary storage of the raw cmap grid data */
75 int ncmap
; /* Number of allocated elements in cmap grid*/
77 int *cmap_types
; /* Store the five atomtypes followed by a number that identifies the type */
78 int nct
; /* Number of allocated elements in cmap_types */
83 int nr
; /* The number of exclusions */
84 atom_id
*e
; /* The excluded atoms */
89 int nrexcl
; /* Number of exclusions per atom */
90 bool excl_set
; /* Have exclusions been generated? */
91 bool bProcessed
; /* Has the mol been processed */
92 t_atoms atoms
; /* Atoms */
93 t_block cgs
; /* Charge groups */
94 t_block mols
; /* Molecules */
95 t_blocka excls
; /* Exclusions */
96 t_params plist
[F_NRE
]; /* Parameters in old style */
104 #include "gpp_atomtype.h"
106 extern void choose_ff(char *ff
,int maxlen
);
107 /* Strange place for this function... */
109 extern bool is_int(double x
);
110 /* Returns TRUE when x is integer */
112 extern void print_top_comment(FILE *out
,const char *filename
,const char *title
,bool bITP
);
114 extern void print_top_header(FILE *out
,const char *filename
,const char *title
,bool bITP
,
115 const char *ff
,real mHmult
);
117 extern void print_top_mols(FILE *out
, const char *title
, const char *water
,
118 int nincl
, char **incls
,
119 int nmol
, t_mols
*mols
);
121 extern void write_top(FILE *out
, char *pr
,char *molname
,
122 t_atoms
*at
,int bts
[],t_params plist
[],t_excls excls
[],
123 gpp_atomtype_t atype
,int *cgnr
, int nrexcl
);
124 /* NOTE: nrexcl is not the size of *excl! */
135 d_implicit_genborn_params
,
136 d_implicit_surface_params
,
153 d_water_polarization
,
154 d_thole_polarization
,
157 d_position_restraints
,
159 d_angle_restraints_z
,
160 d_distance_restraints
,
161 d_orientation_restraints
,
162 d_dihedral_restraints
,
169 static const char *ds
[d_maxdir
+1] = {
178 "implicit_genborn_params",
179 "implicit_surface_params",
181 /* All the directives above can not appear after moleculetype */
197 "water_polarization",
198 "thole_polarization",
201 "position_restraints",
203 "angle_restraints_z",
204 "distance_restraints",
205 "orientation_restraints",
206 "dihedral_restraints",
211 #endif /* _grompp_h */