Feature #1335

Improved interaction of free energies with pull code to better support Hamiltonian replica exchange with umbrella sampling

Added by Michael Shirts over 7 years ago. Updated over 6 years ago.

Target version:


Redo mdp options plus add additional lambda dependence for the pull code so that the distance as well as the spring constant can be interpolated.

Currently only pull-k1 has a state B option. I would propose to add a B state option to pull-init1 as well.

I would also suggest redoing the way the mdp options are written, so that instead of having two different mdp options pull-k1 and pull-kB1, and
have just pull-k1, but have an array of values that can be input.

i.e. old version:

pull-k1 0.0
pull-kB1 100.0

Becomes new version:

pull-k1 0.0 100.0

Also, do the same thing for pull-init1.

I THINK the only option for pull-init1 would make sense is distance, but perhaps other options could have B states as well. Basically.
this is any options which give meaningful restraints when pull-rate1=0


#1 Updated by Michael Shirts over 7 years ago

Note that the main reason for adding this is to use Hamiltonian replica exchange/expanded ensemble simulations along the pull direction, which requires the potential energy differences to be computed during the simulation.

#2 Updated by Michael Shirts over 7 years ago

Another possibility is supporting flat bottom potential with the potentials in the umbrella sampling in the pull code.

One argument is that this could just be done using the new intermolecular bonded interactions, which already have flat-bottomed potentials. However, these do not support center of mass restraints.

One way of allowing this with intermolecular bonded interactions is to create COM virtual particle as a new type of virtual particle, which are essentially just centers of mass attachment points.

But maybe it would be better to just create new functional forms for the pull code restraint potentials after all.

#3 Updated by Chris Neale over 7 years ago

Here are diffs showing how I modified 4.0.7 to do flat-bottom potentials for pull-code umbrellas, taking input from the user on the size of the flat-bottom region. Note that this code only works for pull=umbrella and pull_geometry=distance (other analogous changes are required in pull.c to work with other pull_geometries, etc).

[nealec@terra exe]$ diff gromacs-4.0.7/include/types/inputrec.h gromacs-4.0.7_flatbottom/include/types/inputrec.h
>   real       flat;     /* Extension of the flat bottom potential around init (only for distance pulling) */

[nealec@terra exe]$ diff gromacs-4.0.7/src/gmxlib/tpxio.c gromacs-4.0.7_flatbottom/src/gmxlib/tpxio.c
>   do_real(pgrp->flat);

[nealec@terra exe]$ diff gromacs-4.0.7/src/gmxlib/txtdump.c gromacs-4.0.7_flatbottom/src/gmxlib/txtdump.c 
>   PR("flat",pg->flat);

[nealec@terra exe]$ diff gromacs-4.0.7/src/kernel/readpull.c gromacs-4.0.7_flatbottom/src/kernel/readpull.c 
>       sprintf(buf,"pull_flat%d",i);
>       RTYPE(buf,              pgrp->flat, 0.0);

[nealec@terra exe]$ diff gromacs-4.0.7/src/mdlib/pull.c gromacs-4.0.7_flatbottom/src/mdlib/pull.c
>   double    dvb;
>         if(dev[0]>pgrp->flat){
>           dev[0]-=pgrp->flat;
>         }else if(dev[0]<-pgrp->flat){
>           dev[0]+=pgrp->flat;
>         }else{
>           dev[0]=0.0;
>         }

#4 Updated by Mark Abraham over 6 years ago

  • Target version changed from 5.0 to future

Also available in: Atom PDF