Fixed essential dynamics / flooding group PBC serial
authorCarsten Kutzner <ckutzne@gwdg.de>
Tue, 7 Aug 2012 09:15:59 +0000 (11:15 +0200)
committerCarsten Kutzner <ckutzne@gwdg.de>
Tue, 7 Aug 2012 09:15:59 +0000 (11:15 +0200)
commit6d15ac40660656f7701f089d2bfaf4f049cfcbe0
treec68c7335ad60c059cca7b91b5a6fe1f226f5962d
parente8a1649b6a9c391fe320d963d1fd20703223fda6
Fixed essential dynamics / flooding group PBC serial

In former versions, the PBC representation of essential dynamics /
flooding group atoms could be incorrect in serial runs if the ED group
contained more than a single molecule. In multi-molecule cases, the required
steps to choose the correct PBC image in communicate_group_positions()
therefore need to be performed also in serial runs. Since the PBC representation
can only change in neigborsearching steps, we only need to check the
shifts then. In parallel, NS is signalled by the bUpdateShifts
variable, which is set in dd_make_local_ed_indices(). The latter
function is however not called in serial runs; but still we can pass
the bNS boolean to do_flood() to signal the NS status. For essential
dynamics, unfortunately, since do_edsam() is called from constrain(), there
is no information about the NS status at that point. Until someone
comes up with a better idea, we therefore do the PBC check in every step
in serial essential dynamics - the performance impact will be negligible
anyway.

Change-Id: I86336a5e34131bdeac7e28f35b1ccb633450e54e
include/edsam.h
src/mdlib/edsam.c
src/mdlib/groupcoord.c
src/mdlib/sim_util.c