[gmx-users] zero temperature II, found feature

Berk Hess gmx3 at hotmail.com
Mon Apr 5 16:24:00 CEST 2004

>found it ... strange though, what happens is:
>if I have two groups of atoms, one frozen and one not frozen ("gra" and 
>"HOH" in my case, frozen graphite and a water slab) and if I put the 
>directive "comm_grps HOH"
>in my md.mdp then the temperature output is ZERO.
>If I use: "comm_grps HOH gra" the temperature output is also ZERO.
>If I use: "comm_grps System" the temperature output is back to normal.
>If I replace one of the water molecules by a single Argon atom
>and combine this with "comm_grps HOH", then the temperature output is also 
>back to normal.

There is a bug in calculating the number of degrees of freedom
for temperature coupling groups, when a comm group has 3 (or less)
degress of freedom.
To fix it replace in src/kernel/readir.c.
      for(j=0; j<atoms->grps[egcVCM].nr; j++)
	opts->nrdf[i] += nrdf_uc*((double)na_vcm[j]/(double)na_tot)*
	  (nrdf_vcm[j] - n_sub)/nrdf_vcm[j];
     for(j=0; j<atoms->grps[egcVCM].nr; j++)
	if (nrdf_vcm[j] > n_sub) {
	  opts->nrdf[i] += nrdf_uc*((double)na_vcm[j]/(double)na_tot)*
	    (nrdf_vcm[j] - n_sub)/nrdf_vcm[j];

Thanks for reporting this bug!

>a related issue: I seem to recall that at some point it was announced
>(can't remember by whom) that in 3.2 there'd be the possibility
>to thermostate only a part of the system (i.e.: SUM(tc_grps) != System)
>... doesn't seem to work for me, though.

I think this has always been possible, but via setting tau_t and/or ref_t to
zero for the group that you do not want to couple.


MSN Search, for accurate results! http://search.msn.nl

More information about the gromacs.org_gmx-users mailing list