grompp should read floats (e.g charge) from data files to double, to avoid accumulating round-off error - Redmine #2192
On the 3.3M lignocellulose benchmark, gmx grompp warns that total charge is –0.000267. In double precision, it does not warn. Each moleculetype in the topology claims a qtot of zero, so probably this is an accumulation issue.
More generally, we should use double anywhere that we haven’t measured that performance is worth improving via running in single, just like every other HPC application.
(from redmine: issue id 2192, created on 2017-05-28 by mark.j.abraham)
- Revision 635eb138 by Berk Hess on 2017-06-07T16:44:51Z:
Avoid grompp charge warning with rounding Even though the grompp total charge check uses double for summation, there are rounding errors for each charge when charges are stored in single precision. Now the charge check rounds the net charge of molecules to integer when the difference is less than the maximum possible sum of charge rounding errors. Fixes #2192. Change-Id: I4e24620ed4ff0901b297db4689e75f0befd23944