mdrun can exit with atom moved to far in DD or PME due to too small domains
Because of the large nstlist values that are used now, often by default with GPUs, atom displacements are far larger than they uses to be. This can lead to mdrun stopping with a fatal error due to particle moving too far in DD repartitioning or PME.
Possible solutions are limiting the minimum domain size and/or maximum nstlist appropriately for the system.
Split of parts, which will be reused, from calc_verlet_buffer_size().
This change is only code motion.
Ensure domains are large enough for atom motion
The introduction of the dual pair list has led to larger nstlist
values, which leads to larger atom displacements between domain
decomposition steps. This has made it much more likely that
"atom moved to far" errors appeared at DD and PME redistribution.
Now minimum DD cell size setting correctly takes into account atom
displacement (when there is a reference temperature).
Note that this can significantly increase the minimum DD cell size
for solvent systems and slighlty for systems with large molecules.
#4 Updated by Szilárd Páll about 2 years ago
Berk Hess wrote:
Note that for systems without T-coupling or T=0 will should think of a better solution than using the pairlist buffer size.
Should we have a separate issue for that given that the current fix is partial -- asking because of the "Fix uploaded" status?