1490cc537f13640f458f0bb2aff589c5ac92a893
[alexxy/gromacs.git] / include / typedefs.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 2.0
11  * 
12  * Copyright (c) 1991-1999
13  * BIOSON Research Institute, Dept. of Biophysical Chemistry
14  * University of Groningen, The Netherlands
15  * 
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)
20  * 
21  * Also check out our WWW page:
22  * http://md.chem.rug.nl/~gmx
23  * or e-mail to:
24  * gromacs@chem.rug.nl
25  * 
26  * And Hey:
27  * Green Red Orange Magenta Azure Cyan Skyblue
28  */
29
30 #ifndef _typedefs_h
31 #define _typedefs_h
32
33 static char *SRCID_typedefs_h = "$Id$";
34
35 #ifdef HAVE_CONFIG_H
36 #include <config.h>
37 #endif
38
39 #ifdef CPLUSPLUS
40 extern "C" {
41 #endif
42
43 #define STRLEN 4096
44 #define NOTSET -12345
45
46 #include <sys/types.h>
47 #include "sysstuff.h"
48 #include "types/simple.h"
49 #include "types/enums.h"
50 #include "types/block.h"
51 #include "types/symtab.h"
52 #include "types/idef.h"
53 #include "types/atoms.h"
54 #include "types/trx.h"
55 #include "types/topology.h"
56 #include "types/energy.h"
57 #include "types/inputrec.h"
58 #include "types/nsborder.h"
59 #include "types/ishift.h"
60 #include "types/graph.h"
61 #include "types/nrnb.h"
62 #include "types/nblist.h"
63 #include "types/nsgrid.h"
64 #include "types/commrec.h"
65 #include "types/forcerec.h"
66 #include "types/mdatom.h"
67 #include "types/ifunc.h"
68 #include "types/filenm.h"
69 #include "types/group.h"
70 #include "types/drblock.h"
71 #include "types/parm.h"
72 #include "types/matrix.h"
73 #include "types/edsams.h"
74 #include "types/pulls.h"
75
76 /* Functions to initiate and delete structures *
77  * These functions are defined in gmxlib/typedefs.c 
78  */
79 extern void init_block(t_block *block);
80 extern void init_atom (t_atoms *at);
81 extern void init_top (t_topology *top);
82 extern void init_inputrec(t_inputrec *ir);
83 extern void done_block(t_block *block);
84 extern void done_atom (t_atoms *at);
85 extern void done_top(t_topology *top);
86 extern void done_inputrec(t_inputrec *ir);
87
88 extern void stupid_fill(t_block *grp, int natom,bool bOneIndexGroup);
89 /* Fill a block structure with numbers identical to the index
90  * (0, 1, 2, .. natom-1)
91  * If bOneIndexGroup, then all atoms are  lumped in one index group,
92  * otherwise there is one atom per index entry
93  */
94
95 extern void init_t_atoms(t_atoms *atoms, int natoms, bool bPdbinfo);
96 /* allocate memory for the arrays, set nr to natoms and nres to 0
97  * set pdbinfo to NULL or allocate memory for it */  
98
99 extern void free_t_atoms(t_atoms *atoms);
100 /* free all the arrays and set the nr and nres to 0 */
101
102 #ifdef CPLUSPLUS
103 }
104 #endif
105
106
107 #endif  /* _typedefs_h */