OpenMM: added combination rule check, disabled restraint check for now as it's buggy
[gromacs/qmmm-gamess-us.git] / src / kernel / toppush.h
blob5d57e9d9aa67539db2ca09ac3d27237869a5245b
1 /*
2 *
3 * This source code is part of
4 *
5 * G R O M A C S
6 *
7 * GROningen MAchine for Chemical Simulations
8 *
9 * VERSION 3.2.0
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
32 * And Hey:
33 * Gallium Rubidium Oxygen Manganese Argon Carbon Silicon
36 #ifndef _toppush_h
37 #define _toppush_h
39 #include "typedefs.h"
40 #include "toputil.h"
41 #include "gpp_atomtype.h"
42 #include "gpp_bond_atomtype.h"
43 #include "warninp.h"
45 typedef struct {
46 int nr; /* The number of entries in the list */
47 int nra2; /* The total number of entries in a */
48 atom_id *nra; /* The number of entries in each a array (dim nr) */
49 atom_id **a; /* The atom numbers (dim nr) the length of each element */
50 /* i is nra[i] */
51 } t_block2;
53 extern void generate_nbparams(int comb,int funct,t_params plist[],
54 gpp_atomtype_t atype,
55 warninp_t wi);
57 extern void push_at (t_symtab *symtab,gpp_atomtype_t at,
58 t_bond_atomtype bat,char *line,int nb_funct,
59 t_nbparam ***nbparam,t_nbparam ***pair,
60 warninp_t wi);
62 extern void push_bt(directive d,t_params bt[], int nral,
63 gpp_atomtype_t at,t_bond_atomtype bat,char *line,
64 warninp_t wi);
66 extern void push_dihedraltype(directive d,t_params bt[],
67 t_bond_atomtype bat,char *line,
68 warninp_t wi);
70 extern void push_cmaptype(directive d,t_params bt[], int nral, gpp_atomtype_t at,
71 t_bond_atomtype bat,char *line,
72 warninp_t wi);
74 extern void push_nbt(directive d,t_nbparam **nbt,gpp_atomtype_t atype,
75 char *plines,int nb_funct,
76 warninp_t wi);
78 void
79 push_gb_params(gpp_atomtype_t atype,
80 char *line,
81 warninp_t wi);
83 extern void push_atom(t_symtab *symtab,
84 t_block *cgs,
85 t_atoms *at,
86 gpp_atomtype_t atype,
87 char *line,
88 int *lastcg,
89 warninp_t wi);
91 extern void push_bond(directive d,t_params bondtype[],t_params bond[],
92 t_atoms *at,gpp_atomtype_t atype,char *line,
93 bool bBonded,bool bGenPairs,real fudgeQQ,
94 bool bZero,bool *bWarn_copy_A_B,
95 warninp_t wi);
97 extern void push_cmap(directive d, t_params bondtype[], t_params bond[],
98 t_atoms *at, gpp_atomtype_t atype, char *line,
99 bool *bWarn_copy_A_B,
100 warninp_t wi);
102 extern void push_vsitesn(directive d,t_params bondtype[],t_params bond[],
103 t_atoms *at,gpp_atomtype_t atype,char *line,
104 warninp_t wi);
106 extern void push_mol(int nrmols,t_molinfo mols[],char *pline,
107 int *whichmol,int *nrcopies,
108 warninp_t wi);
110 extern void push_molt(t_symtab *symtab,int *nmol,t_molinfo **mol,char *line,
111 warninp_t wi);
113 extern void init_block2(t_block2 *b2, int natom);
115 extern void done_block2(t_block2 *b2);
117 extern void push_excl(char *line, t_block2 *b2);
119 extern void merge_excl(t_blocka *excl, t_block2 *b2);
121 extern void b_to_b2(t_blocka *b, t_block2 *b2);
123 extern void b2_to_b(t_block2 *b2, t_blocka *b);
125 extern int add_atomtype_decoupled(t_symtab *symtab,gpp_atomtype_t at,
126 t_nbparam ***nbparam,t_nbparam ***pair);
127 /* Add an atom type with all parameters set to zero (no interactions).
128 * Returns the atom type number.
131 extern void convert_moltype_couple(t_molinfo *mol,int atomtype_decouple,
132 real fudgeQQ,
133 int couple_lam0,int couple_lam1,
134 bool bCoupleIntra,
135 int nb_funct,t_params *nbp);
136 /* Setup mol such that the B-state has no interaction with the rest
137 * of the system, but full interaction with itself.
140 #endif /* _toppush_h */