Re: Coarse-grained simulation with Polarizable Water crashing

From: Jeff Comer (
Date: Mon May 16 2016 - 12:04:43 CDT


It is not simple to correctly implement Martini polarizable water in
NAMD. I've put up some information on my webpage that might help:

The problem you are having is likely due to the fact that you are not
excluding nonbonded interactions between the WM and WP particles of
the polarizable water. Martini uses "exclude 1-2", but there are
supposed to be exclusions between these two particles (see the
official Gromacs input martini_v2.2P.itp), which are not directly
connected by a bond. An easy way to make this exclusion is to add a
bond between the WM and WP particles with a very small spring constant
(I use 1e-20). If you use 0.0, NAMD will ignore the bond and not
include the exclusion, so you have to use something small but nonzero.
Specific exclusions can also be specified in the psf, but the format
is really strange.

Another issue with implementing the Martini polarizable water in NAMD
is that the bonds are supposed to be rigid. This requires altering the
NAMD source code. You need to make NAMD think that the WM and WP
particles are hydrogen atoms so that rigid bonds will be enforced. To
do this, find the line in Molecule.C that says

} else if (atoms[atom_number-1].mass <=3.5) {

and change it to

} else if (atoms[atom_number-1].mass <=3.5 || strcmp(atom_type,"D")==0 ) {

Here I'm assuming that the type of the WM and WP particles is "D" as
in the official Martini Gromacs input.

You also have to comment out the "splitPatch" line (see below) in
SimParameters.C. With Martini, you should be using "exclude 1-2", for
which NAMD forces you to use "splitPatch position" regardless of
whether you put "splitPatch hydrogen" in the config file. Maybe
someone else can tell me why this is and whether I'm breaking
something by commenting this out.

 else if (!strcasecmp(s, "1-2"))
      exclude = ONETWO;
      //splitPatch = SPLIT_PATCH_POSITION;

Also you need to comment out the following line in SimParameters.C if
you want to use PME with Martini water, which is explored a little bit
in the original Yesylevskyy et al. paper. If you're using polarizable
Martini water, you probably have a highly charged system and care
about things like ion distributions. For this PME gives better

//NAMD_die("Do not use Particle Mesh Ewald with Martini. Set: PME off");

Other things required for correct implementation:

# Martini
martiniDielAllow on
cosAngles on
martiniSwitching on
dielectric 2.5


This archive was generated by hypermail 2.1.6 : Tue Dec 27 2016 - 23:22:08 CST