[gmx-developers] double precision, gmx-3.3.1 and 3.3.2 do not work for me

Michael Brunsteiner mbx0009 at yahoo.com
Fri Jan 18 01:10:40 CET 2008

Dear all,

Recently i tried to run a job with double precision gromacs. 
The same job (exactly the same top, gro, mdp anmd ndx files)
had finished previously successfully using the single precision
If I use grompp_d and mdrun_d instead of the single precision
versions the system blows up immediately (details below).

I found a number of cases involving issues with double precision 
in the mailing list, but in none of these cases a viable solution
seems to have been suggested or found (at least nothing like that
is reported in the mailing list)

Has anybody managed to get gromacs double precision working ?
if yes, which version/architecture ?? did you use any special
options when compiling ??? 
thanks in advance for any suggestions!


ps: I CC-ed this mail to the developers group, because
i am pretty sure that there is some issue with the code
here since even the (essentially unmodified) nmr2 and speptide
cases in the tutorial do not work for me with double precision,
and my hardware is not particularly exotic ...

============ details:

Running an energy minimization with mdrun_d i see INF force on 
some atom at step one, the run continues, energies look 
reasonable, but the final coordinates are EXACTLY the same
as the input coordinates. 
I then tried mdrun_d with different systems, and architectures
and settings, and ALWAYS end up with INF forces at step one, 
sometimes the system blows up immediately, other times the run 
continues as above, but gives meaningless output (final coords
are INF or the same as initial), depending on what system i use.

The same simulations/system run always perfectly well at
single precision.

more details ==================

gmx-3.3.1, on 32 bit PC, linux-2.6.9-42, or
gmx-3.3.2, on AMD64 PC, linux-2.6.23-12

on both architectures I compiled the double precision version
of gmx exactly as suggested in the INSTALL file (with libfftw-3.0.1
or libfftw-3.1.2, respectively)

solvated protein+ligand, ffamber99+GAFF, steep or md
solvated protein+ligand, oplsaa+GAFF, steep or md
protein+ligand, oplsaa+GAFF, steep or md
ligand alone, no pbc, GAFF, steep or md
protein alone, no pbc, oplsaa, steep or md
tutorial system in nmr2, steep or md
tutorial system in speptide, steep or md, ffoplsaa or GROMOS96-43a1

not a single combination of the above works with double
precision for me, all work with single precision.

I did not include any top, gro or mdp files since
everybody who wants to look at this issue will have
the files in $GMX/share/gromacs/tutor/speptide/
what i do (and see) there is:

1) pdb2gmx -f speptide.pdb

2) edit box size confg.gro to be 4,4,4 nm ... otherwise
   grompp complains about box too small for chosen cut-off

3) edit full.mdp, remove tc-grps since i don't have an
   index file, leave only one tc-group (System), also remove
   pressure coupling and energy groups, end up with a very 
   simple MD simulation protocol.

4) grompp   -f full.mdp -c conf.gro -p topol.top -o s.tpr
   grompp_d -f full.mdp -c conf.gro -p topol.top -o d.tpr

5) mdrun   -v -s s.tpr 

   ... simulation runs, finishes, gives expected output,
   i.e., reasonalbe energies, and final coordinates.

6) mdrun_d -v -s d.tpr
starting mdrun 'Protein'
5000 steps,     10.0 ps.

   Step 0, time 0 (ps)  LINCS WARNING
relative constraint deviation after LINCS:
max inf (between atoms 19 and 20) rms nan
bonds that rotated more than 30 degrees:
 atom 1 atom 2  angle  previous, current, constraint length
     19     20   90.0    0.1010
etc ...
then a Range checking error ...

7) if i use the em.mdp script instead of the full.mdp
   i see this:

========================= single prec.
mdrun -v -s s.tpr 
Step=    0, Dmax= 1.0e-02 nm, Epot=  1.60712e+02 Fmax= 6.05026e+03, atom= 97
Step=    1, Dmax= 1.0e-02 nm, Epot= -9.44050e+02 Fmax= 7.10858e+03, atom= 136
Step=    2, Dmax= 1.2e-02 nm, Epot= -1.16563e+03 Fmax= 1.04291e+04, atom= 136
Step=    3, Dmax= 1.4e-02 nm, Epot= -1.30809e+03 Fmax= 1.12525e+04, atom= 136
Step=    4, Dmax= 1.7e-02 nm, Epot= -1.33588e+03 Fmax= 1.50335e+04, atom= 136
Step=    5, Dmax= 2.1e-02 nm, Epot= -1.36092e+03 Fmax= 1.65502e+04, atom= 136
Step=    7, Dmax= 1.2e-02 nm, Epot= -1.67493e+03 Fmax= 2.39752e+03, atom= 136
Step=   10, Dmax= 3.7e-03 nm, Epot= -1.71020e+03 Fmax= 3.29757e+03, atom= 136
Step=   13, Dmax= 1.1e-03 nm, Epot= -1.72254e+03 Fmax= 1.62450e+03, atom= 136

writing lowest energy coordinates.

Steepest Descents converged to Fmax < 2000 in 14 steps
Potential Energy  = -1.7225410e+03
Maximum force     =  1.6245012e+03 on atom 136
Norm of force     =  4.9998721e+03

========================= double prec:
mdrun_d -v -s d.tpr

Steepest Descents:
   Tolerance (Fmax)   =  2.00000e+03
   Number of steps    =          100
Step=    0, Dmax= 1.0e-02 nm, Epot= -2.78108e+03 Fmax=         inf, atom= 6
Step=    1, Dmax= 1.0e-02 nm, Epot= -2.78108e+03 Fmax=         inf, atom= 6
Step=   35, Dmax= 1.4e-12 nm, Epot= -2.78108e+03 Fmax=         inf, atom= 6
Stepsize too small, or no change in energy.
Converged to machine precision,
but not to the requested precision Fmax < 2000

writing lowest energy coordinates.

Steepest Descents converged to machine precision in 36 steps,
but did not reach the requested Fmax < 2000.
Potential Energy  = -2.78108059141006e+03
Maximum force     =                   inf on atom 6
Norm of force     =                   inf

Looking for last minute shopping deals?  
Find them fast with Yahoo! Search.  http://tools.search.yahoo.com/newsearch/category.php?category=shopping

More information about the gromacs.org_gmx-developers mailing list