changed reading hint
[gromacs/adressmacs.git] / src / kernel / sorting.h
blob539e0269d428dc1e34bb30a091153f71ca6cf3f7
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
12 * Copyright (c) 1991-1999
13 * BIOSON Research Institute, Dept. of Biophysical Chemistry
14 * University of Groningen, The Netherlands
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)
21 * Also check out our WWW page:
22 * http://md.chem.rug.nl/~gmx
23 * or e-mail to:
24 * gromacs@chem.rug.nl
26 * And Hey:
27 * GRowing Old MAkes el Chrono Sweat
30 #ifndef _sorting_h
31 #define _sorting_h
33 static char *SRCID_sorting_h = "$Id$";
35 #ifdef HAVE_IDENT
36 #ident "@(#) sorting.h 1.21 9/30/97"
37 #endif /* HAVE_IDENT */
39 #include "typedefs.h"
40 typedef atom_id t_bond[2];
42 extern void sort_bonds(t_topology *top);
44 * Sort_bonds sorts all bonded force parameters in order of ascending
45 * atom id of the maximum atom id specified in a bond per type bond.
47 * If, for example, for a specific bond type the following bonds are specified:
48 * bond1 between atoms 15, 16, 12, 18 and 20
49 * bond2 between atoms 14, 13, 12, 18 and 19
50 * bond3 between atoms 17, 11, 19, 21 and 15
51 * then the maximum atom id for each bond would be:
52 * bond1: 20
53 * bond2: 19
54 * bond3: 21
55 * so order in which the bonds will be sorted is bond2, bond1, bond3
57 * This routine is used to determine to which processor a bonds should be
58 * allocated. For the distribution of bonds it is necessary to keep all
59 * the needed atoms when calculating a bonded force on one processor. In
60 * this way we prevent communication overhead in bonded force calculations.
64 extern void sort_xblock(t_block *block,rvec x[],int renum[]);
66 * Sort_xblock returns a renumber table which can be used to sort the
67 * blocks specified in block in an order dependent of the coordinates.
70 extern void sort_bond_list(t_bond bonds[],int nr);
72 * Sort_bond_list sort the list of bonds, specified by bonds in order
73 * of ascending atom id. The bonds are specified as pairs of atom ids.
74 * Where nr specifies the number of bonds (the length of the array).
77 #endif /* _sorting_h */