[gmx-developers] double precision minimization accuracy limits.

Berk Hess hessb at mpip-mainz.mpg.de
Wed Jan 23 09:59:52 CET 2008

David.Osguthorpe at UCHSC.edu wrote:

> Hi,
> Im attempting to minimize a protein-solvent system (>10,000 waters) 
> using the double precision program
> to minimize structures dumped from a single precision dynamics run.
> Ive switched off all constraints, including switching to flexible SPC 
> waters, added switching functions to the
> LJ and coulombic potentials to make a smooth cutoff.
> However, all minimizations (conjugate gradients, l-bfgs)  all seem 
> termate to terminate at what I consider
> to be large derivatives for a double precision program.
> e.g.
> Polak-Ribiere Conjugate Gradients converged to machine precision in 
> 123 steps,
> but did not reach the requested Fmax < 0.01.
> Potential Energy  = -1.64197713818716e+06
> Maximum force     =  2.32094495259875e+02 on atom 31761
> Norm of force     =  6.19775726238427e+00
> Low-Memory BFGS Minimizer did not converge to Fmax < 0.01 in 1501 steps.
> Potential Energy  = -1.65198292382305e+06
> Maximum force     =  2.70928575898524e+02 on atom 25485
> Norm of force     =  6.58974288803592e+00
> Is there some step size variable I should be making smaller to allow 
> the minimizers to make even smaller
> changes to the coordinates (Im assuming from the message its at 10-12 
> changes or less).
> Am I expecting too much of the potentials, forces etc. to deliver 
> lower forces?
> In particular Id like to have the Maximum force under 10
> By the way I made some modifications to the tpbconv program to allow 
> me to pass full double precision coordinates
> to the program as otherwise writing out to a .gro file jumps the max 
> force and norm significantly and I dont
> see a way to continue from steepest descent with conjugate gradients 
> or l-bfgs without performing a new mdrun run.
> - and lbfgs seemed to take forever to work on its own and get nowhere 
> - cg was way below it in force/energy after
> far fewer iterations.
> Thanks
> David
Water is a very difficult case, since the energy landscape is extremely 
I can get to a force of 0.01 though with lbfgs, cg can also get there, 
but takes much longer.
For cg I had to make the initial step size bigger (!), em_step=0.1, 
otherwise is stopped at the first step.

You did not report you cut-off settings, but for such accuracy, you need 
to make sure that the buffer
of your switch potentials (or better still, shift) is large enough to 
accomodate twice the charge group
radii, for water a 0.15 nm buffer is large enough.


More information about the gromacs.org_gmx-developers mailing list