Tagged files with gromacs 3.0 header and added some license info
[alexxy/gromacs.git] / include / types / nblist.h
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 3.0
11  * 
12  * Copyright (c) 1991-2001
13  * BIOSON Research Institute, Dept. of Biophysical Chemistry
14  * University of Groningen, The Netherlands
15  * 
16  * This program is free software; you can redistribute it and/or
17  * modify it under the terms of the GNU General Public License
18  * as published by the Free Software Foundation; either version 2
19  * of the License, or (at your option) any later version.
20  * 
21  * If you want to redistribute modifications, please consider that
22  * scientific software is very special. Version control is crucial -
23  * bugs must be traceable. We will be happy to consider code for
24  * inclusion in the official distribution, but derived work must not
25  * be called official GROMACS. Details are found in the README & COPYING
26  * files - if they are missing, get the official version at www.gromacs.org.
27  * 
28  * To help us fund GROMACS development, we humbly ask that you cite
29  * the papers on the package - you can find them in the top README file.
30  * 
31  * Do check out http://www.gromacs.org , or mail us at gromacs@gromacs.org .
32  * 
33  * And Hey:
34  * Good ROcking Metal Altar for Chronical Sinners
35  */
36 #ifdef HAVE_CONFIG_H
37 #include <config.h>
38 #endif
39
40 typedef struct {
41   int     il_code;             /* Code that determines the innerloop    */
42                                /* corresponding to codes in nrnb.h      */
43   int     nri,maxnri;          /* Current/max number of i particles     */
44   int     nrj,maxnrj;          /* Current/max number of j particles     */
45   int     maxlen;              /* maxnr of j atoms for a single i atom  */
46   int     solvent;             /* type of solvent optimization          */
47   atom_id *iinr;               /* The i-elements                        */
48   int     *gid;                /* Index in energy arrays                */
49   int     *shift;              /* Shift vector index                    */
50   int     *jindex;             /* Index in jjnr                         */
51   atom_id *jjnr;               /* The j-atom list                       */
52   int     *nsatoms;            /* list with number of atoms for general */
53                                /* solvents. There are two entries for   */
54                                /* each molecule - first is total natoms */
55                                /* and second how many at the beginning  */
56                                /* have LJ interactions.                 */
57                                /* This is NOT used for water!           */
58 #ifdef USE_THREADS
59   int      count;              /* counter to multithread the innerloops */
60   pthread_mutex_t *mtx;        /* mutex to lock the counter             */
61 #else
62   int      pad1,*pad2;         /* padding to make size constant         */
63 #endif
64 } t_nblist;
65
66 /* For atom I =  nblist->iinr[N] (0 <= N < nblist->nri) there can be
67  * several neighborlists (N's), for different energy groups (gid) and
68  * different shifts (shift).
69  * For corresponding J atoms for each list are are:
70  * nblist->jjnr[JI]
71  * with nblist->jindex[N] <= JI < nblist->jindex[N+1]
72  *
73  * Clear?
74  */
75
76
77
78
79
80
81
82
83
84