From: Berk Hess Date: Mon, 2 Dec 2013 16:20:01 +0000 (+0100) Subject: Made cutoff-scheme=Verlet the default X-Git-Url: http://biod.pnpi.spb.ru/gitweb/?a=commitdiff_plain;h=f9cd4ae7dee7e23ca5a2063eea77dbfcd2172b99;p=alexxy%2Fgromacs.git Made cutoff-scheme=Verlet the default Since the most common options are now supported by the Verlet cut-off scheme and is it more accurate by default, supports GPUs and is faster for any non-water system, this is now the default. Not supported yet are pbc!=xyz and generalized-Born. Change-Id: Iba292d22c6f3a4dce18d0911b062f2beb70365cb --- diff --git a/share/html/online/mdp_opt.html b/share/html/online/mdp_opt.html index 857af68013..97c9e67fc4 100644 --- a/share/html/online/mdp_opt.html +++ b/share/html/online/mdp_opt.html @@ -370,15 +370,6 @@ energy averages and fluctuations also when nstenergy>1
cutoff-scheme:
-
group
-
Generate a pair list for groups of atoms. These groups correspond to the -charge groups in the topology. This was the only cut-off treatment scheme -before version 4.6. -There is no explicit buffering of the pair list. This enables efficient force -calculations, but energy is only conserved when a buffer is explicitly added. -For energy conservation, the Verlet option provides a more convenient -and efficient algorithm.
-
Verlet
Generate a pair list with buffering. The buffer size is automatically set based on verlet-buffer-tolerance, unless this is set to -1, in which case @@ -386,13 +377,21 @@ based on verlet-buffer-tolerance, unless this is set to -1, in which case rvdw=rcoulomb. Currently only cut-off, reaction-field, PME electrostatics and plain LJ are supported. Some mdrun functionality is not yet supported with the Verlet scheme, but grompp checks for this. -Native GPU acceleration is only supported with Verlet. With GPU-accelerated PME, +Native GPU acceleration is only supported with Verlet. +With GPU-accelerated PME or with separate PME ranks, mdrun will automatically tune the CPU/GPU load balance by scaling rcoulomb and the grid spacing. This can be turned off with -notunepme. -Verlet is somewhat faster than group when there is no water, or if group would use a pair-list buffer to conserve energy. +Verlet is faster than group when there is no water, or if group would use a pair-list buffer to conserve energy.
+
group
+
Generate a pair list for groups of atoms. These groups correspond to the +charge groups in the topology. This was the only cut-off treatment scheme +before version 4.6. +There is no explicit buffering of the pair list. This enables efficient force +calculations for water, but energy is only conserved when a buffer is explicitly added.
+
nstlist: (10) [steps]
@@ -479,7 +478,7 @@ cells when constructing a new neighbor list every nstlist steps. In large systems grid search is much faster than simple search.
simple
Check every atom in the box when constructing a new neighbor list -every nstlist steps.
+every nstlist steps (only with cutoff-scheme=group).
pbc:
diff --git a/src/gromacs/fileio/tpxio.c b/src/gromacs/fileio/tpxio.c index 27935896c4..67d7ba117b 100644 --- a/src/gromacs/fileio/tpxio.c +++ b/src/gromacs/fileio/tpxio.c @@ -70,7 +70,7 @@ static const char *tpx_tag = TPX_TAG_RELEASE; /* This number should be increased whenever the file format changes! */ -static const int tpx_version = 93; +static const int tpx_version = 94; /* This number should only be increased when you edit the TOPOLOGY section * or the HEADER of the tpx format. @@ -728,6 +728,10 @@ static void do_inputrec(t_fileio *fio, t_inputrec *ir, gmx_bool bRead, if (file_version >= 81) { gmx_fio_do_int(fio, ir->cutoff_scheme); + if (file_version < 94) + { + ir->cutoff_scheme = 1 - ir->cutoff_scheme; + } } else { diff --git a/src/gromacs/gmxlib/names.c b/src/gromacs/gmxlib/names.c index 3fda945390..9b7e6b6cea 100644 --- a/src/gromacs/gmxlib/names.c +++ b/src/gromacs/gmxlib/names.c @@ -73,7 +73,7 @@ const char *ptype_str[eptNR+1] = { }; const char *ecutscheme_names[ecutsNR+1] = { - "Group", "Verlet", NULL + "Verlet", "Group", NULL }; const char *eel_names[eelNR+1] = { diff --git a/src/gromacs/gmxpreprocess/readir.c b/src/gromacs/gmxpreprocess/readir.c index b62e571625..3903173308 100644 --- a/src/gromacs/gmxpreprocess/readir.c +++ b/src/gromacs/gmxpreprocess/readir.c @@ -1782,7 +1782,7 @@ void get_ir(const char *mdparin, const char *mdparout, /* Neighbor searching */ CCTYPE ("NEIGHBORSEARCHING PARAMETERS"); - CTYPE ("cut-off scheme (group: using charge groups, Verlet: particle based cut-offs)"); + CTYPE ("cut-off scheme (Verlet: particle based cut-offs, group: using charge groups)"); EETYPE("cutoff-scheme", ir->cutoff_scheme, ecutscheme_names); CTYPE ("nblist update frequency"); ITYPE ("nstlist", ir->nstlist, 10); diff --git a/src/gromacs/legacyheaders/types/enums.h b/src/gromacs/legacyheaders/types/enums.h index 2f95f339cc..3b3dc7e5f8 100644 --- a/src/gromacs/legacyheaders/types/enums.h +++ b/src/gromacs/legacyheaders/types/enums.h @@ -82,7 +82,7 @@ enum { }; enum { - ecutsGROUP, ecutsVERLET, ecutsNR + ecutsVERLET, ecutsGROUP, ecutsNR }; /* Coulomb / VdW interaction modifiers. diff --git a/src/programs/mdrun/tests/moduletest.cpp b/src/programs/mdrun/tests/moduletest.cpp index 7acd47705b..aae01affc6 100644 --- a/src/programs/mdrun/tests/moduletest.cpp +++ b/src/programs/mdrun/tests/moduletest.cpp @@ -108,10 +108,14 @@ MdrunTestFixture::~MdrunTestFixture() { } +// TODO The combination of defaulting to Verlet cut-off scheme, NVE, +// and verlet-buffer-tolerance = -1 gives a grompp error. If we keep +// things that way, this function should be renamed. For now, +// force the use of the group scheme. void MdrunTestFixture::useEmptyMdpFile() { - useStringAsMdpFile(""); + useStringAsMdpFile("cutoff-scheme = Group\n"); } void