Enable AWH periodicity for pull-geometry=direction
Since "period" keyword is now removed from awh it is not clear for the user how to define the periodic awh coordinate. Intuitively one may try direction-periodic, but again, this geometry is now not supported. The grompp also reports nothing about detecting periodicity in awh coordinates, so it is absolutely obscure for the user what is going on under the hood.
I can't figure out myself how to enable peridicity and suspect that other users will encounter exactly the same problem.
Allow AWH geometry 'direction' to be periodic
When an AWH dimension with pull geometry 'direction' has an interval
length (nearly) matching the periodic unit cell dimension, it is now
Fix issues with AWH with periodic pulling
Removed fatal error with AWH with periodic pull-geometry 'direction'
when the distance was within 2% of half the box size.
Changed an assertion failure when the AWH interval was larger than
the box size to a fatal error.
Clarified the documentation for pull geometry 'direction-periodic'.
#1 Updated by Semen Yesylevskyy 11 months ago
Digging the source code shows that function get_pull_coord_period() deduces periodicity for direction-periodic geometry:
if (pcrd_params->eGeom == epullgDIRPBC)...
However, direction-periodic is now forbidden for awh, so this code is dead and will never be called.
#3 Updated by Semen Yesylevskyy 11 months ago
Ok, but what about the question itself - how can the user define the periodic awh coordinate, say, across the simulated membrane? When doing umbrella sampling this is done by -cycl flag to gmx wham, but it is completely obscure how to achieve the same with awh.
The only AWH dimensions that are periodic are dihedrals. Maybe this should be added to the documentation.
But I don't know what you mean exactly with periodic. I would argue that pull geometry "direction-periodic" is "less periodic" than "direction", since it unwraps the distance, "direction" is purely periodic. The distance for geometry "direction" is computed taking PBC into account, but AWH currently does not make such a coordinate periodic. I think AWH could actually do this. We should either have a check to disallow the AWH interval to be as large as the box or implement periodicity.
#5 Updated by Semen Yesylevskyy 11 months ago
Under peridicity I mean making start and end points of interval the same point in PMF computation (an equivalent of -cycl option of gmx wham).
Direction-periodic allowed doing this accross the box in awh. Now this possibility is lost and this is a big omission in functionality. For example awh is now useless for lipid membranes where both sides of the membrane are the same medium (and one uses -cycl in gmx wham).
Thus my suggestion is to keep this possibility. Ideally it should be an option awh1-dim1-cycl which works exactly the same as -cycl flag for wham.
- Tracker changed from Bug to Feature
- Subject changed from Not clear how to define periodic awh coordinate to Enable AWH periodicity for pull-geometry=direction
- Affected version deleted (
OK. But you are then asking for the same thing I suggested: make pull geometry "direction" periodic in AWH when needed.
I will try to implement that. For a proper set up case this just means setting the period in the AWH code, but some checks might be needed to catch malformed setups.
#8 Updated by Semen Yesylevskyy 11 months ago
Is there a possibility to allow periodicity for arbitrary pull vectors (not aligned with one of the axes?). I'm not aware of internals of course, but spanning the whole box and only along one of the axes seems to be unnecesarily strict limitation.
From the point of view of the user all methods of computing PMF (umbrella sampling+wham, awh) should be able to produce comparable results. In wham one can define any pull vector. It would be very nice to be able doing the same in awh.
#10 Updated by Semen Yesylevskyy 11 months ago
It doesn't work for me. See attached example. The box size on Z is 10.9827 and awh range is (-6:6). In log file there is still no periodicity:
coord-provider = pull
coord-index = 1
start = -6
end = 6
period = 0
I also tried exact value of 5.49135 - still no periodicity.
(tested with release-2019 branch from git)