Interactive Molecular Dynamics (IMD)
authorMartin Hoefling <martin.hoefling@gmx.de>
Thu, 7 Jun 2012 11:07:21 +0000 (13:07 +0200)
committerGerrit Code Review <gerrit@gerrit.gromacs.org>
Wed, 26 Mar 2014 16:25:30 +0000 (17:25 +0100)
commit8289f698485e73b10b4dfeec69a45f960eade014
tree4900ff32dd31c92eaf8bbf9a7444ed72c98fb496
parent13350954cdd1daa2f1b9034d12a7aabc6920508d
Interactive Molecular Dynamics (IMD)

IMD allows to interact with and to monitor a running molecular dynamics
simulation. The protocol goes back to 2001 ("A system for interactive
molecular dynamics simulation", JE Stone, J Gullingsrud, K Schulten,
P Grayson, in: ACM symposium on interactive 3D graphics, Ed. JF Hughes
and CH Sequin, pp. 191--194, ACM SIGGRAPH). The user can watch the
running simulation (e.g. using VMD) and optionally interact with
it by pulling atoms or residues with a mouse or a force-feedback
device.
Communitcation between GROMACS and VMD is achieved via TCP sockets
and thus enables controlling an mdrun locally or one running on a
remote cluster. Every N steps, mdrun receives the applied forces from
the VMD client and sends the new positions to VMD.
Other features:
- correct PBC treatment, molecules of a (parallel) simulation are made
  whole (with respect to the configuration found in the .tpr file)
- in the .mdp file, one can define an IMD group (including the protein
  but not the water for example is useful). Only the coordinates of
  atoms belonging to this group are then transferred between mdrun and
  VMD. This can be used to reduce the performance impact to an almost
  negligible level.
- adds only two single-line function calls in the main MD loop
- and mdrun test fixture checks whether grompp and mdrun understand
  the IMD options

Change-Id: I235e07e204f2fb77f05c2f06a14b37efca5e70ea
28 files changed:
CMakeLists.txt
manual/special.tex
src/gromacs/CMakeLists.txt
src/gromacs/fileio/mdoutf.h
src/gromacs/fileio/tpxio.c
src/gromacs/gmxlib/mvdata.c
src/gromacs/gmxlib/txtdump.c
src/gromacs/gmxpreprocess/grompp.c
src/gromacs/gmxpreprocess/readir.c
src/gromacs/imd/CMakeLists.txt [new file with mode: 0644]
src/gromacs/imd/imd.c [new file with mode: 0644]
src/gromacs/imd/imd.h [new file with mode: 0644]
src/gromacs/imd/imdsocket.c [new file with mode: 0644]
src/gromacs/imd/imdsocket.h [new file with mode: 0644]
src/gromacs/legacyheaders/mdrun.h
src/gromacs/legacyheaders/types/inputrec.h
src/gromacs/mdlib/domdec.c
src/gromacs/mdlib/minimize.c
src/gromacs/mdlib/sim_util.c
src/gromacs/mdlib/tpi.c
src/gromacs/timing/wallcycle.c
src/gromacs/timing/wallcycle.h
src/programs/mdrun/md.c
src/programs/mdrun/mdrun.cpp
src/programs/mdrun/runner.c
src/programs/mdrun/tests/CMakeLists.txt
src/programs/mdrun/tests/interactiveMD.cpp [new file with mode: 0644]
src/programs/mdrun/tests/spc2-IMD.mdp [new file with mode: 0644]