Possible bugs that may occur during the execution of multiple time stepping in Gromacs.
Summary
I noticed that when using MTS(multiple time stepping), additional updates are introduced as shown in the following figure: At the same time, the underlying implementation of update_for_constraint_virial is achieved through updateMDLeapfrogSimple (or updateMDLeapfrogSimpleSimd) in updat.cpp. However, this implementation corresponds only to the integrator=md. When the integrator = sd, I found that the program can still run, but it uses the underlying implementation of doSDUpdateGeneral for sd. Could this potentially lead to inconsistencies?
In addition, I have identified another potential bug. During the additional update steps, the constrain_coordinates function updates the atomic velocities, which should not happen in reality. I have submitted a merge request (MR) to fix this issue. !4227 (closed)
GROMACS version 2023.5-dev-20240202-e77bb55c-unknown