4 * This source code is part of
8 * GROningen MAchine for Chemical Simulations
12 * Copyright (c) 1991-1999
13 * BIOSON Research Institute, Dept. of Biophysical Chemistry
14 * University of Groningen, The Netherlands
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)
21 * Also check out our WWW page:
22 * http://md.chem.rug.nl/~gmx
27 * Good ROcking Metal Altar for Chronical Sinners
33 static char *SRCID_mshift_h
= "$Id$";
36 #ident "@(#) mshift.h 1.11 2/2/97"
37 #endif /* HAVE_IDENT */
41 extern t_graph
*mk_graph(t_idef
*idef
,int natoms
,bool bShakeOnly
);
42 /* Build a graph from an idef description. The graph can be used
43 * to generate mol-shift indices.
44 * If bShakeOnly, only the connections in the shake list are used.
46 extern void done_graph(t_graph
*g
);
47 /* Free the memory in g */
49 extern void p_graph(FILE *log
,char *title
,t_graph
*g
);
50 /* Print a graph to log */
52 extern void mk_mshift(FILE *log
,t_graph
*g
,matrix box
,rvec x
[]);
53 /* Calculate the mshift codes, based on the connection graph in g. */
55 extern void shift_atom(t_graph
*g
,rvec sv
[],rvec x
[],rvec x_s
[],atom_id ai
);
56 /* Shift single atom ai */
58 extern void shift_x(t_graph
*g
,rvec sv
[],rvec x
[],rvec x_s
[]);
59 /* Add the shift vector to x, and store in x_s (may be same array as x) */
61 extern void shift_self(t_graph
*g
,rvec sv
[],rvec x
[]);
62 /* Id. but in place */
64 extern void unshift_atom(t_graph
*g
,rvec sv
[],rvec x
[],rvec x_s
[],atom_id ai
);
65 /* Unshift single atom ai */
67 extern void unshift_x(t_graph
*g
,rvec sv
[],rvec x
[],rvec x_s
[]);
68 /* Subtract the shift vector from x_s, and store in x (may be same array) */
70 extern void unshift_self(t_graph
*g
,rvec sv
[],rvec x
[]);
71 /* Id, but in place */
73 #endif /* _mshift_h */