You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A crucial detail I've run into while getting this ready; [OpenMM's VerletIntegrator](http://docs.openmm.org/7.2.0/api-python/generated/simtk.openmm.openmm.VerletIntegrator.html#simtk.openmm.openmm.VerletIntegrator) (and in general, any leapfrog algorithm integrator in OpenMM) **will report non-zero kinetic energies when evaluating State, _even_ if all velocities are zero**. Taken [straight from the horse's mouth](http://docs.openmm.org/7.2.0/api-python/generated/simtk.openmm.openmm.State.html#simtk.openmm.openmm.State.getKineticEnergy):``
"Note that [KE] may be different from simply mv/2 summed over all particles. For example, a leapfrog integrator will store velocities offset by half a step, so they must be adjusted before computing the kinetic energy."
``
Some quick testing shows that for static structures exported from Interchange to OpenMM, VerletIntegrator and LangevinIntegrator both yield nonzero KEs, while LangevinMiddleIntegrator and BrownianIntegrator DO yield the expected 0 KE. I haven't yet checked the full list of supported Integrators exhaustively.
This becomes relevant to Interchange when noting that the drivers.openmm layer does use VerletIntegrator in its evaluation, and does not check 0 KE as far as I can tell. This has been introducing errors into my current data, and is likely doing the same for yours @mattwthompson
"Note that [KE] may be different from simply mv/2 summed over all particles. For example, a leapfrog integrator will store velocities offset by half a step, so they must be adjusted before computing the kinetic energy."
``
Some quick testing shows that for static structures exported from Interchange to OpenMM, VerletIntegrator and LangevinIntegrator both yield nonzero KEs, while LangevinMiddleIntegrator and BrownianIntegrator DO yield the expected 0 KE. I haven't yet checked the full list of supported Integrators exhaustively.
This becomes relevant to Interchange when noting that the drivers.openmm layer does use VerletIntegrator in its evaluation, and does not check 0 KE as far as I can tell. This has been introducing errors into my current data, and is likely doing the same for yours @mattwthompson
Originally posted by @timbernat in #1086 (comment)
The text was updated successfully, but these errors were encountered: