GROMACS version: 5.1.4
GROMACS modification: No
Here post your question:
Dear Gromacs users,
I am trying to simulate removing the center of mass translational velocity each 10 steps, so that I set the mdp file as the following:
nstcomm = 10
comm-mode = Linear
comm-grps = System
Nevertheless, I noticed that the information present in the .log file was:
comm-mode = Linear
nstcomm = 100
Then, I make a test modifying the mdp file with nstcomm = 1000:
nstcomm = 1000
comm-mode = Linear
comm-grps = System
And then the log file respected the numer of steps:
comm-mode = Linear
nstcomm = 1000
Is there a limit of frequency for the removal of the center of mass translational velocity? Why the .log file does not respect when I ask for removing the center of mass translational velocity every 10 steps, but it does respect when I ask for removing every 1000 steps?
Hi,
nstcomm is linked to nstcalcenergy (default value 100).
gmx grompp give a note like
“nstcomm < nstcalcenergy defeats the purpose of nstcalcenergy, setting nstcomm to nstcalcenergy”.
That is what happen when you set nstcomm=10 and nstcalcenergy=100 (default value), then gmx grompp set nstcomm to nstcalcenergy
Sorry to revive an old post but this seemed to me the most logical place to ask this question.
I was following @jalemkul 's excellent tutorials, some of the mdps (for example) of which set nstcomm to 1, but I get the grompp error you @alevilla mention. Setting nstcalcenergy to 1 definitely slows the simulation down (I’m not sure exactly by how much but simulations that ended overnight were now ending after Close Of Business on the next day, so it is a de facto 2x slowdown). Here @anapaularp mentions attempting nstcomm = 10 and @pszilardsuggests one might not want to have (or should at least look out for) such a low value of nstcalcenergy. Given all that, I was wondering how one decides on a reasonable value for nstcomm? I suppose one can do it iteratively: pick a value, start the simulation watching the drift of the COM, extrapolating whether it might violate a reasonable bound for the planned duration of the simulation, and restarting at a new value, perhaps bisecting on an optimal value. But this is cumbersome and assumes one knows the duration a priori. Is there some recognized standard for this choice?
It should not be necessary to do COM motion removal more often than you do neighbor searching, for instance every 100 steps, depending on your system and setup. If you find that your system is experiencing drift, you can check to make sure that nstcomm is a factor of, or equal to, your coordinate writing frequency. Another thing you can try is separately removing COM from your solute and solvent.