4 * This source code is part of
8 * GROningen MAchine for Chemical Simulations
11 * Copyright (c) 1991-2001, University of Groningen, The Netherlands
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version.
17 * If you want to redistribute modifications, please consider that
18 * scientific software is very special. Version control is crucial -
19 * bugs must be traceable. We will be happy to consider code for
20 * inclusion in the official distribution, but derived work must not
21 * be called official GROMACS. Details are found in the README & COPYING
22 * files - if they are missing, get the official version at www.gromacs.org.
24 * To help us fund GROMACS development, we humbly ask that you cite
25 * the papers on the package - you can find them in the top README file.
27 * For more info, check our website at http://www.gromacs.org
30 * Green Red Orange Magenta Azure Cyan Skyblue
32 static char *SRCID_recomb_c
= "$Id$";
38 real
*read_gammaf(char *fn
,int nframes
)
47 for(i
=0; (i
<nframes
); i
++) {
52 fprintf(stderr
,"Succesfully read gamma\n");
56 void recombine(char *base
,char *gammaf
,int nskip
,
57 int nframes
,int nev
,int natoms
,
58 rvec
*ev
[],real
*evprj
[],
59 rvec yav
[],atom_id all_index
[])
62 "Recombined projection of Gamma trj (EV %d) in Cartesian Space\n";
71 gamma
=read_gammaf(gammaf
,nframes
);
73 for(n
=0; (n
<nev
); n
++) {
74 sprintf(buf
,"%s%d",base
,n
+1);
76 fprintf(out
,format
,n
+1);
77 fprintf(stderr
,format
,n
+1);
80 for(j
=0; (j
<nframes
); j
++) {
82 fprintf(stderr
,"\r frame %d",j
);
83 if ((nskip
== 0) || ((j
% nskip
) == 0)) {
86 for(i
=0; (i
<natoms
); i
++) {
87 xxx
[i
][XX
]=(yav
[i
][XX
]+prj
*evptr
[i
][XX
])*gt
;
88 xxx
[i
][YY
]=(yav
[i
][YY
]+prj
*evptr
[i
][YY
])*gt
;
89 xxx
[i
][ZZ
]=(yav
[i
][ZZ
]+prj
*evptr
[i
][ZZ
])*gt
;
91 write_gms_ndx(out
,natoms
,all_index
,xxx
,NULL
);