4 * This source code is part of
8 * GROningen MAchine for Chemical Simulations
12 * Copyright (c) 1991-2001
13 * BIOSON Research Institute, Dept. of Biophysical Chemistry
14 * University of Groningen, The Netherlands
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.
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.
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.
31 * Do check out http://www.gromacs.org , or mail us at gromacs@gromacs.org .
34 * Giving Russians Opium May Alter Current Situation
40 static char *SRCID_princ_h = "$Id$";
47 extern void rotate_atoms(int gnx,atom_id index[],rvec x[],matrix trans);
48 /* Rotate all atoms in index using matrix trans */
50 extern void principal_comp(int n,atom_id index[],t_atom atom[],rvec x[],
52 /* Calculate the principal components of atoms in index. Atoms are
53 * mass weighted. It is assumed that the center of mass is in the origin!
56 extern void orient_princ(t_atoms *atoms, int isize, atom_id *index,
57 int natoms, rvec x[], rvec *v, rvec *d);
58 /* rotates molecule to align principal axes with coordinate axes */
60 extern real calc_xcm(rvec x[],int gnx,atom_id *index,t_atom *atom,rvec xcm,
62 /* Calculate the center of mass of the atoms in index. if bQ then the atoms
63 * will be charge weighted rather than mass weighted.
64 * Returns the total mass/charge.
67 extern real sub_xcm(rvec x[],int gnx,atom_id *index,t_atom atom[],rvec xcm,
69 /* Calc. the center of mass and subtract it from all coordinates.
70 * Returns the original center of mass in xcm
71 * Returns the total mass
74 extern void add_xcm(rvec x[],int gnx,atom_id *index,rvec xcm);
75 /* Increment all atoms in index with xcm */