[gmx-developers] Suggestions about neighbor search(plz delete the previous one)

Tianwu Zang tz4 at rice.edu
Sat Jul 27 00:16:19 CEST 2013


Dear all,
I have gone through the neighbor search part of GROMACS and found that the
basic logic of function "put_in_list_t" is as below:

if charge group i is water
{
  neighbor_list vdwc = VDWQQ_WATER

  if charge group j is water
    add j to neighbor_list vdwc_ww
  else
    add j to neighbor_list vdwc
}
else
{
  neighborlist vdwc = VDWQQ
  add j to neighborlist vdwc
}

However,  there are many cases that charge group i is not water but charge
group j is water, and these cases are not considered into this algorithm
currently. In practice, it can be found that many water molecules will be
split when added into the neighbor lists of a charge group: atom "OW" will
be filled into neighbor_list VDWQQ (NBlist 0) and two atoms "HW" will be
filled into neighbor_list QQ (NBlist 2) separately. Therefore, when
calculating non-bonded interactions, the NB kernel will be called three
times.

If we modify the algorithm such that even if charge group i is not water,
charge group j will still be put into neighbor_list VDWQQ_WATER (NBlist 6)
if it is water, then for every pair of solvent-nonsolvent charge group
non-bonded interaction, NB kernel will be called only once, and considering
the water optimization, the computing time for calling kernel VDWQQ_WATER
once should be smaller than calling kernel VDWQQ once plus kernel QQ twice.
Also, considering the current VDWQQ_WATER kernel is dealing with the cases
that i is water but j is not, we need to add a similar kernel which will
compute the cases that j is water but i is not.

I am not quite sure if there are other considerations, but as far as I can
see this approach might further reduce the non-bonded interaction computing
time.

Thanks!
-Mark
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://maillist.sys.kth.se/pipermail/gromacs.org_gmx-developers/attachments/20130726/6b6195b3/attachment.html>


More information about the gromacs.org_gmx-developers mailing list