charge groups

Andrew Dalke dalke at
Fri Jan 12 11:28:03 EST 1996

  We are writing a MD program (ObPlug: called NAMD; see  We are trying to improve its
performance, as suggested by Jan Hermans and his group at UNC, by using group
information to improve some of the calculation times.  We have not used group
terms before, so I was wondering if anyone here could answer some questions for

  There are several advantages to using charge groups.  The most obvious is that
the number of distance calculations needed to contruct the pairlists is reduced
by a fector of 10 (assuming about 3 atoms per group).  Another advantage is due
to the spatial decomposition we use.  Also, if we keep all the atoms of a group
on the same processor, we reduce the amount of communications/doubled
calculations we need to worry about.

  The major disadvantage is that the search for pairlist generation must go over
a larger space.  For a strict cutoff, we have to search around an atom a sphere
of radius equal to the cutoff distance + maximum distance an atom is likely to
travel between pairlist recalculations + radius of the group.  Since the volume
goes as R^3, the factor of 10 can quickly be reduced.

So the questions I have are:

  1) Are there any other advantages/ disadvantages to using groups?  BTW. we
will not be calculating the charge-charge interactions of the groups; we still
do the full pairwise electrostatics calculations.

  2) How large are they?  From looking through x-plor's top* files, the protein
and nucleic acids groups usually have 1-4 atoms, and only one has 5 (none have
more).  However, some files have more, such as toph3.cho {pyranose sugar toplogy
for refinement} which has many groups with around 25 atoms in them.  
    We are optimizing our program for proteins and nucleic acids, but would also
like to deal with membranes.  How many atoms are in the typical lipid group?

  3) If the groups are too large, we could come up with an algorithm to break
them up into smaller groups.  Has this been done, and are there reasons against

  4) Additionally, if an algorithm can be made to generate new groups on the
fly, why should the group definition in the top* files be used?

  5) Do all other MD programs use charge groups?  I know X-plor, CHARMm, and

  6) We are working on implementing SHAKE for hydrogens.  Because of the
distributed nature of our code, we cannot implement it exactly without taking a
large hit in communications, but we can do it approximately (again, as suggested
by Jan Herman's group).  The biggest problem occurs when a hydrogen is on one
processor and the atom to which it is bonded is on another.  For each iteraction
of SHAKE, extra coordinate information will have to be sent across the network
to the other machine.
  Since all the atoms in a group will be on the same processor, we can eliminate
this communications if we know that both the hydrogen and the atom it is bonded
to are in the same group.  From what I've seen, this seems to be true.  Is it?


						dalke at

More information about the Molmodel mailing list