[gmx-developers] IMD patch

Marc Baaden baaden at smplinux.de
Tue Sep 9 17:34:07 CEST 2008

Dear Martin Hoefling (and Gromacs developers),

We recently caught track of your email exchange on the Gromacs mailing 
list, where you contributed a patch for using IMD via Gromacs and 
raised some interesting IMD-related issues.

Recently, we have developped a very similar application aiming at
coupling calculation code (including Gromacs) to a visualisation tool
(including VMD) for a convenient and an optimal use of interactive molecular

Our program, called MDDriver, and using an already described patch
co-developped with the Gromacs team [1-3] should be available in a few
weeks at


There are currently two main papers related to this MDDriver library, 
one in VRST 2008 and one in VRIPHYS 2008, which we can provide upon request.

There is also a preliminary Demo Movie at


If you are interested in this work, we can send you a code
version and tutorial before the official release date.

Best regards,
Marc Baaden, Nicolas Ferey & Olivier Delalande.

NB: After the official release, we very much hope to convince the 
Gromacs developers to eventually include our IMD implementation in an 
upcoming future version.

[1] http://www.gromacs.org/pipermail/gmx-developers/2005-June/001130.html
[2] http://www.gromacs.org/pipermail/gmx-developers/2007-October/002267.html
[3] http://www.gromacs.org/pipermail/gmx-developers/2008-May/002567.html

martin.hoefling at gmx.de said:
>> Hello Gromacs Developers,
>> here's my first version of a patch, implementing the IMD =
>> Interactive  Molecular Dynamics Protocol into recent Gromacs CVS
>> versions.

>> Currently, the following works, at least here: -Connecting via VMD to
>> a running single or MPI simulation with md integrator. -Updating the
>> coordinate/energy to vmd and set update frequency from vmd.
>> -Detaching and reattaching from/to a running simulation. -Reading and
>> printing out new forces from VMD (pretty useless atm).

>> When you've compiled a mdrun binary, you can run it with -imd switch.
>> In VMD,  you need to load the corresponding structure and then
>> connect to gromacs via  Extensions->Simulation->IMD Connect (NAMD)

>> ToDo & Questions:

>> - My current implementation syncronizes IMD (e.g. output frequency)
>> only on  next IMD output, to reduce communication. Is this ok? My
>> idea would be to  implement the force synchronization from master to
>> other processes here as  well.

>> -Implement action of VMD forces. VMD sends new forces, applied via
>> mouse to  the master. The simplest idea would be to create a local
>> list with all added,  changed and deleted forces and communicate this
>> list to all processes as  mentined above. Then I need to find out how/
>> where to implement the force  update per process.

>> -PBC treatment, currently molecules look not so nice after crossing
>> the  boundaries.

>> -Allow only a certain group to be send to VMD, maybe write out a
>> matching  structure for IMD-client as well.

>> -Implement IMD into other integrators.

>> -MPI_Bcast crashes If only one MPI process... ... is (cr->nnodes > 1)
>> the proper condition?

>> -Energies displayed in VMD might be wrong, conversion should be OK
>> but I  didn't really think about if the contributions are correct.

>> OK, any comments, suggestions,...	 ;-)

>> ...I am sure there's a lot of stuff one can do better.

>> Cheers,
>> 	Martin 

  Marc Baaden

 Dr. Marc Baaden  - Institut de Biologie Physico-Chimique, Paris
 mailto:baaden at smplinux.de      -      http://www.baaden.ibpc.fr
 FAX: +33 15841 5026  -  Tel: +33 15841 5176  ou  +33 609 843217

More information about the gromacs.org_gmx-developers mailing list