Avoid PME tuning decreasing rcoulomb
authorBerk Hess <hess@kth.se>
Fri, 26 Sep 2014 18:47:47 +0000 (20:47 +0200)
committerGerrit Code Review <gerrit@gerrit.gromacs.org>
Mon, 29 Sep 2014 15:03:06 +0000 (17:03 +0200)
With mdrun input with the grid much finer than fourier-spacing,
PME tuning could reduce rcoulomb below the starting value.
Fixes #1606.

Change-Id: I3ae7fe38a4240251aadb96336199b306fc7dce40

src/programs/mdrun/pme_loadbal.c

index 1c12f86435700bd813a606e8f15c9f66f0d3305f..d6fd68f37269d10692d625172706519c053c2cf3 100644 (file)
@@ -261,6 +261,15 @@ static gmx_bool pme_loadbal_increase_cutoff(pme_load_balancing_t  pme_lb,
     while (sp <= 1.001*pme_lb->setup[pme_lb->cur].spacing || !grid_ok);
 
     set->rcut_coulomb = pme_lb->cut_spacing*sp;
+    if (set->rcut_coulomb < pme_lb->rcut_coulomb_start)
+    {
+        /* This is unlikely, but can happen when e.g. continuing from
+         * a checkpoint after equilibration where the box shrank a lot.
+         * We want to avoid rcoulomb getting smaller than rvdw
+         * and there might be more issues with decreasing rcoulomb.
+         */
+        set->rcut_coulomb = pme_lb->rcut_coulomb_start;
+    }
 
     if (pme_lb->cutoff_scheme == ecutsVERLET)
     {