3 * This source code is part of
7 * GROningen MAchine for Chemical Simulations
10 * Written by David van der Spoel, Erik Lindahl, Berk Hess, and others.
11 * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
12 * Copyright (c) 2001-2004, The GROMACS development team,
13 * check out http://www.gromacs.org for more information.
15 * This program is free software; you can redistribute it and/or
16 * modify it under the terms of the GNU General Public License
17 * as published by the Free Software Foundation; either version 2
18 * of the License, or (at your option) any later version.
20 * If you want to redistribute modifications, please consider that
21 * scientific software is very special. Version control is crucial -
22 * bugs must be traceable. We will be happy to consider code for
23 * inclusion in the official distribution, but derived work must not
24 * be called official GROMACS. Details are found in the README & COPYING
25 * files - if they are missing, get the official version at www.gromacs.org.
27 * To help us fund GROMACS development, we humbly ask that you cite
28 * the papers on the package - you can find them in the top README file.
30 * For more info, check our website at http://www.gromacs.org
33 * Green Red Orange Magenta Azure Cyan Skyblue
44 real
*read_gammaf(char *fn
,int nframes
)
53 for(i
=0; (i
<nframes
); i
++) {
58 fprintf(stderr
,"Succesfully read gamma\n");
62 void recombine(char *base
,char *gammaf
,int nskip
,
63 int nframes
,int nev
,int natoms
,
64 rvec
*ev
[],real
*evprj
[],
65 rvec yav
[],atom_id all_index
[])
68 "Recombined projection of Gamma trj (EV %d) in Cartesian Space\n";
77 gamma
=read_gammaf(gammaf
,nframes
);
79 for(n
=0; (n
<nev
); n
++) {
80 sprintf(buf
,"%s%d",base
,n
+1);
82 fprintf(out
,format
,n
+1);
83 fprintf(stderr
,format
,n
+1);
86 for(j
=0; (j
<nframes
); j
++) {
88 fprintf(stderr
,"\r frame %d",j
);
89 if ((nskip
== 0) || ((j
% nskip
) == 0)) {
92 for(i
=0; (i
<natoms
); i
++) {
93 xxx
[i
][XX
]=(yav
[i
][XX
]+prj
*evptr
[i
][XX
])*gt
;
94 xxx
[i
][YY
]=(yav
[i
][YY
]+prj
*evptr
[i
][YY
])*gt
;
95 xxx
[i
][ZZ
]=(yav
[i
][ZZ
]+prj
*evptr
[i
][ZZ
])*gt
;
97 write_gms_ndx(out
,natoms
,all_index
,xxx
,NULL
);
101 fprintf(stderr
,"\r");
103 fprintf(stderr
,"\n");