Default value of verlet-buffer-tolerance may not be appropriate for some coarse-grained systems
Summary
The default value of verlet-buffer-tolerance (0.005 kJ/mol/ps) may not be appropriate for some C-alpha coarse-grained systems. My simulations of coarse-grained intrinsically disordered proteins will invariably crash due to atom separation errors when using the default value of verlet-buffer-tolerance. A sentence or two should be added to the manual to explain to users that if they are using a bespoke coarse-grained system, they might need to test different values of verlet-buffer-tolerance/rlist if their simulations are crashing.
All files can be found in this .zip file: reproduction_files.zip
GROMACS version
Versions of code tested: 2022.1 vanilla (cpu; MPI enabled), 2021.1 vanilla (cpu; MPI enabled; CUDA enabled), 2020.2 Modified (MPI enabled).
Steps to reproduce
I generated a 92-bead, C-alpha coarse grained protein molecule (see "./top/linker_segment.itp" and "./top/linker.top" for description) and excluded angle potential and dihedral potential terms from the molecule. I placed 50 copies of this molecule in a box and ran 200 ps of NVT equilibration to produce the "MDproduction_input.gro" file. The run file "MDproduction_input.tpr" was generated using "./mdp/md.mdp" and the provided .gro and .top files with command gmx grompp -f mdp/md.mdp -c MDproduction_input.gro -p top/linker.top -o MDproduction_input.tpr
.
Gromacs 2022.1 (vanilla) was used to reproduce the error for the current set up (the -nt 4 -pin on
flags were passed to mdrun). After 123360 ps of simulation (out of 300 ns), the simulation crashes.
What is the current bug behavior?
(What actually happens)
The simulation crashes -- here is the error message produced from gmx mdrun
:
`WARNING: Listed nonbonded interaction between particles 711 and 714
at distance 2.001 which is larger than the table limit 1.912 nm.
This is likely either a 1,4 interaction, or a listed interaction inside a smaller molecule you are decoupling during a free energy calculation. Since interactions at distances beyond the table cannot be computed, they are skipped until they are inside the table limit again. You will only see this message once, even if it occurs for several interactions.
IMPORTANT: This should not happen in a stable simulation, so there is probably something wrong with your system. Only change the table-extension distance in the mdp file if you are really sure that is the reason.`
What did you expect the correct behavior to be?
(What you should see instead) I expected a fully flexible (no angle/dihedral potential terms) coarse-grained molecule to run successfully without crashing. Please see the attached "MDproduction_output.log" file for additional information.
Once I change verlet-buffer-tolerance to a value like 1E-7, then the simulation no longer crashes.
Possible fixes
A sentence or two should be added to the manual to explain to users that if they are using a bespoke coarse-grained system, they might need to test different values of verlet-buffer-tolerance/rlist if their simulations are crashing. There is currently nothing in the documentation that would suggest that the default value might lead to simulation crashing of coarse-grained systems and adding a sentence might help future users more quickly troubleshoot issues.