Merge release-4-6 into release-5-0
[alexxy/gromacs.git] / src / gromacs / mdlib / update.c
index 3d6d040bd4c9dcdf68eb6e53deca46e1b7e1d61b..7f5d4c8594cd4a71d17517e6f4258698a8007a6c 100644 (file)
@@ -1063,7 +1063,12 @@ static void calc_ke_part_visc(matrix box, rvec x[], rvec v[],
         }
         if (md->nPerturbed && md->bPerturbed[n])
         {
-            dekindl += 0.5*(md->massB[n] - md->massA[n])*iprod(v_corrt, v_corrt);
+            /* The minus sign here might be confusing.
+             * The kinetic contribution from dH/dl doesn't come from
+             * d m(l)/2 v^2 / dl, but rather from d p^2/2m(l) / dl,
+             * where p are the momenta. The difference is only a minus sign.
+             */
+            dekindl -= 0.5*(md->massB[n] - md->massA[n])*iprod(v_corrt, v_corrt);
         }
     }
     ekind->dekindl = dekindl;