[gmx-developers] ensemble distance restraints confusion
David van der Spoel
spoel at xray.bmc.uu.se
Thu Jun 3 11:31:09 CEST 2010
I'm investigating http://bugzilla.gromacs.org/show_bug.cgi?id=408
where the problem is that when one has distance restraints and perfoms a
replica exchange simulation, ones restraints are treated as ensemble
restraints. The reason for this is the following code:
if (cr->ms)
{
ptr = getenv("GMX_DISRE_ENSEMBLE_SIZE");
#ifdef GMX_MPI
if (ptr == NULL)
{
dd->nsystems = cr->ms->nsim;
dd->mpi_comm_ensemble = cr->ms->mpi_comm_masters;
if (fplog)
{
fprintf(fplog,"Will apply ensemble averaging over %d
systems\n",
dd->nsystems);
}
}
That is, the decision whether or not to do ensemble restraints is
determined by an environment variable and the fact that we are using
replica exchange. Later, the dd->nsystems is used like:
#ifdef GMX_MPI
if (dd->nsystems > 1)
{
gmx_sum_comm(2*dd->nres,Rt_6,dd->mpi_comm_ensemble);
}
#endif
Now the strange thing is that there is an mdp option for this, but that
is not allowed (this code is from further up in disre.c):
if (ir->eDisre == edrEnsemble)
{
gmx_fatal(FARGS,"Sorry, distance restraints with ensemble
averaging over multiple molecules in one system are not functional in
this version of GROMACS");
}
So it seems there is hidden functionality for doing ensemble restraints,
but it can be turned on by accident. I propose we should either enable
it through the mdp file or not all.
--
David van der Spoel, Ph.D., Professor of Biology
Dept. of Cell & Molec. Biol., Uppsala University.
Box 596, 75124 Uppsala, Sweden. Phone: +46184714205. Fax: +4618511755.
spoel at xray.bmc.uu.se spoel at gromacs.org http://folding.bmc.uu.se
More information about the gromacs.org_gmx-developers
mailing list