changed reading hint
[gromacs/adressmacs.git] / include / force.h
blob8b3284c78e6b804e379273027fe18ec3bbc05bad
1 /*
2 * $Id$
3 *
4 * This source code is part of
5 *
6 * G R O M A C S
7 *
8 * GROningen MAchine for Chemical Simulations
9 *
10 * VERSION 2.0
12 * Copyright (c) 1991-1999
13 * BIOSON Research Institute, Dept. of Biophysical Chemistry
14 * University of Groningen, The Netherlands
16 * Please refer to:
17 * GROMACS: A message-passing parallel molecular dynamics implementation
18 * H.J.C. Berendsen, D. van der Spoel and R. van Drunen
19 * Comp. Phys. Comm. 91, 43-56 (1995)
21 * Also check out our WWW page:
22 * http://md.chem.rug.nl/~gmx
23 * or e-mail to:
24 * gromacs@chem.rug.nl
26 * And Hey:
27 * Good ROcking Metal Altar for Chronical Sinners
30 #ifndef _force_h
31 #define _force_h
33 static char *SRCID_force_h = "$Id$";
35 #ifdef HAVE_IDENT
36 #ident "@(#) force.h 1.53 5/15/97"
37 #endif /* HAVE_IDENT */
38 #include "typedefs.h"
39 #include "pbc.h"
40 #include "nsb.h"
41 #include "network.h"
42 #include "tgroup.h"
44 extern void calc_vir(FILE *log,int nxf,rvec x[],rvec f[],tensor vir,
45 t_commrec *cr);
46 /* Calculate virial for nxf atoms, and add it to vir */
48 extern void f_calc_vir(FILE *log,int i0,int i1,rvec x[],rvec f[],tensor vir,
49 t_commrec *cr,t_graph *g,rvec shift_vec[]);
50 /* Calculate virial taking periodicity into account */
52 extern t_forcerec *mk_forcerec(void);
54 extern void make_tables(t_forcerec *fr,bool bVerbose);
55 /* Make tables for inner loops. When bVerbose the tables are printed
56 * to .xvg files
59 extern void pr_forcerec(FILE *log,t_forcerec *fr,t_commrec *cr);
61 extern void init_forcerec(FILE *log,
62 t_forcerec *fr,
63 t_inputrec *ir,
64 t_block *mols,
65 t_commrec *cr,
66 t_block *cgs,
67 t_idef *idef,
68 t_mdatoms *mdatoms,
69 t_nsborder *nsb,
70 matrix box,
71 bool bMolEpot);
72 /* The Force rec struct must be created with mk_forcerec
73 * The booleans have the following meaning:
74 * bSetQ: Copy the charges [ only necessary when they change ]
75 * bMolEpot: Use the free energy stuff per molecule
78 extern void update_forcerec(FILE *log,t_forcerec *fr,matrix box);
79 /* Updates parameters in the forcerec that are time dependent */
81 extern void set_avcsix(FILE *log,t_forcerec *fr,t_mdatoms *mdatoms);
82 /* Compute the average C6 param for LJ corrections */
84 extern void ns(FILE *log,
85 t_forcerec *fr,
86 rvec x[],
87 rvec f[],
88 matrix box,
89 t_groups *grps,
90 t_grpopts *opts,
91 t_topology *top,
92 t_mdatoms *md,
93 t_commrec *cr,
94 t_nrnb *nrnb,
95 t_nsborder *nsb,
96 int step,
97 real lambda,
98 real *dvdlambda);
99 /* Call the neighborsearcher */
101 extern void force(FILE *log,
102 int step,
103 t_forcerec *fr,
104 t_inputrec *ir,
105 t_idef *idef,
106 t_nsborder *nsb,
107 t_commrec *cr,
108 t_nrnb *nrnb,
109 t_groups *grps,
110 t_mdatoms *md,
111 int ngener,
112 t_grpopts *opts,
113 rvec x[],
114 rvec f[],
115 real epot[], bool bVerbose,
116 matrix box,
117 real lambda,
118 t_graph *graph,
119 t_block *excl,
120 bool bNBonly,
121 matrix lr_vir);
122 /* Call all the force routines */
124 /* Routine from fnbf.m4 */
125 extern void do_fnbf(FILE *log,t_forcerec *fr,
126 rvec x[],rvec f[],t_mdatoms *md,
127 real egnb[],real egcoul[],rvec box_size,
128 t_nrnb *nrnb,real lambda,real *dvdlambda,
129 bool bLR,int eNL);
131 #endif /* _force_h */