dae21d1bc1f3c38e3a709acd47bdccd6aa98f039
[alexxy/gromacs.git] / include / types / edsams.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 #ifdef HAVE_CONFIG_H
31 #include <config.h>
32 #endif
33
34 typedef struct {
35   bool          bEdsam;         /* Do ED sampling?                      */
36   char          *edinam;        /* name of ED sampling input file       */
37   char          *edonam;        /*                     output           */
38 } t_edsamyn;
39
40 typedef struct {
41   int           neig;           /* nr of eigenvectors                   */
42   int           *ieig;          /* index nrs of eigenvectors            */
43   real          *stpsz;         /* stepsizes (per eigenvector)          */
44   rvec          **vec;          /* eigenvector components               */
45   real          *xproj;         /* instantaneous x projections          */
46   real          *vproj;         /* instantaneous v projections          */
47   real          *fproj;         /* instantaneous f projections          */
48   real          *refproj;       /* starting or target projecions        */
49   real          radius;         /* instantaneous radius                 */
50 } t_eigvec;
51
52 typedef struct {
53   t_eigvec      mon;            /* only monitored, no constraints       */
54   t_eigvec      linfix;         /* fixed linear constraints             */
55   t_eigvec      linacc;         /* acceptance linear constraints        */
56   t_eigvec      radfix;         /* fixed radial constraints (exp)       */
57   t_eigvec      radacc;         /* acceptance radial constraints (exp)  */  
58   t_eigvec      radcon;         /* acceptance rad. contraction constr.  */
59 } t_edvecs;
60
61 typedef struct {
62   int           nr;             /* Nr. of atoms                         */
63   int           *anrs;          /* Index numbers                        */
64   rvec          *x;             /* Positions                            */
65   matrix        box;            /* Box lenghts                          */
66 } t_edx;
67
68
69 typedef struct {
70   int           nini;           /* Total Nr of atoms                    */
71   int           npro;           /* Nr of protein atoms                  */
72   int           ned;            /* Nr of atoms in essdyn                */
73   bool          selmas;         /* true if trans fit with cm            */
74   int           outfrq;         /* freq (in steps) of writing output    */
75   int           logfrq;         /* freq (in steps) of writing to log    */
76   int           maxedsteps;     /* max nr of steps per cycle            */
77   t_edx         sref;           /* reference positions                  */
78   t_edx         sav;            /* average positions                    */
79   t_edvecs      vecs;           /* eigenvectors                         */
80   real          slope;          /* minimal slope in acceptance radexp   */
81   t_edx         star;           /* target positions                     */
82   t_edx         sori;           /* origin positions                     */
83   int           nmass;          /* Nr of masses                         */
84   int           *masnrs;        /* index nrs for atoms with masses      */
85   real          *mass;          /* atomic masses                        */
86   real          tmass;          /* total mass                           */
87   int           nfit;           /* Number of atoms to use for rot fit   */
88   int           *fitnrs;        /* index nrs of atoms to use for rot fit*/
89   FILE          *edo;           /* output file                          */
90 } t_edpar;
91