smarter box-size checking with the pull code
src/gromacs/pulling/pull.c on line 520 in gromacs v5.1.2 has a check that the distance between pull groups not get larger than 0.49 times the box size. It would be nice if this check were a little smarter given the mdp options. For example, if pulling is only along z, then a system with large z but relatively small x and y might fail this test when there is no good reason for the run to be stopped. The change would be in the max_pull_distance2() function also in pull.c
Relax pull PBC check
The check in the pull code for COM distances close to half the box
was to strict for directional pulling. Now dimensions orthogonal
to the pull vector are no longer checked. The check was actually
not strict enough for directional pulling along x or y in triclinic
units cells, but that is a corner case.
Furthermore, the direction-periodic hint is now only printed with
Added tests for the maximum pull distance calcuation.
#2 Updated by Chris Neale over 3 years ago
my solution was to simply comment out the entire if statement near line 520 in pull.c so that this error never arises. Obviously not safe for general usage, but I convinced myself that for this particular run it would behave properly. It's an OK workaround until smarter checking is developed.
#4 Updated by Chris Neale over 3 years ago
Let me take some more time to diagnose this. Looking again at max_pull_distance2(), it does seem to do what one would want (i.e., it excludes dimensions that are turned off from the test for distances that are too long). Furthermore, I made a test system with box dimensions 3x3x90 nm and two atoms separated by 30 nm along z with a pull only in z and the simulation did not complain. Unfortunately, I have deleted my system that gave the error message upon exit. It seems likely that I actually just did something wrong. Semen, what is your usage for the pull code .mdp parameters that gives this issue and how quickly do you get the message? I recall that I got it in less than a minute, but I'm having trouble reproducing it now.
#5 Updated by Chris Neale over 3 years ago
After further review, I withdraw the request. I must have made some other error. I think that the checking is actually pretty smart. It doesn't work when pull-coord1-vec = 0 0 1 and pull-coord1-dim = Y Y Y, but it does work when pull-coord1-dim = N N Y, so the user already has a workaround. Thank you, Chris.
#7 Updated by Semen Yesylevskyy over 3 years ago
Chris Neale wrote:
Semen, what is your usage for the pull code .mdp parameters that gives this issue and how quickly do you get the message? I recall that I got it in less than a minute, but I'm having trouble reproducing it now.
I can't reproduce it as well but for me it was complaining immediately.