Implement velocity terms for virtual sites
authorPascal Merz <pascal.merz@me.com>
Thu, 11 Feb 2021 00:27:01 +0000 (17:27 -0700)
committerPaul Bauer <paul.bauer.q@gmail.com>
Thu, 18 Feb 2021 15:47:44 +0000 (15:47 +0000)
commitb36dd96e4a8ef47460675ddcf9cc904d978b6d59
tree96046acf692fcba279c2f2ed8b8d26341bbb7e4c
parentb8fb87a0c5d65014d97e618241a0075875a81199
Implement velocity terms for virtual sites

This change
* introduces velocity terms for virtual site reporting replacing the
  displacement hack used prior,
* removes work-arounds used to keep virtual sites frozen during real
  atom propagation,
* allows users of the VirtualSiteHandler object to chose whether to
  calculate positions only (used for non-output steps), positions
  and velocities (used for output-steps except in md-vv), or
  velocities only (used for output-steps in md-vv), which mitigates
  the fact that calculating the velocities requires a few additional
  operations,
* adds tests of the virtual velocity,
* updates the documentation accordingly.

Fixes #3866
13 files changed:
docs/reference-manual/functions/interaction-methods.rst
src/gromacs/domdec/domdec.h
src/gromacs/domdec/domdec_vsite.cpp
src/gromacs/mdlib/update.cpp
src/gromacs/mdlib/vsite.cpp
src/gromacs/mdlib/vsite.h
src/gromacs/mdrun/md.cpp
src/gromacs/mdrun/mimic.cpp
src/gromacs/mdrun/minimize.cpp
src/gromacs/mdrun/rerun.cpp
src/gromacs/mdrun/shellfc.cpp
src/gromacs/modularsimulator/statepropagatordata.cpp
src/programs/mdrun/tests/virtualsites.cpp