Charge Rounding-Off Error

GROMACS version: 2023.2
GROMACS modification: No

Hi everyone,

I’m posting because I noticed a strange message in my log file during a simulation. In my topol.top, the right‐most column shows that qtot is exactly 0 throughout the system, and it takes only integer or 0.5 values per residue. However, when I run gmx mdrun, the log reports a total system charge of 0.001 e. In my experience, GROMACS usually issues a warning and stops if the system has any net charge when I run gmx grompp. Here, though, there’s no warning in grompp—it simply starts the simulation when I run mdrun and notes the 0.001 e total charge, without mentioning any “background charge correction.”

I suspect this 0.001 e arises from rounding errors. If you have any ideas about these questions, please let me know!

  • Can I safely ignore this small residual charge?
  • If not, how should I correct or compensate for it?

[topol.top]
; residue 8732 CA rtp CA q +1.5
21836 C0 8732 CA CA 8732 1.5 40.08 ; qtot -6
; residue 8733 CA rtp CA q +1.5
21837 C0 8733 CA CA 8733 1.5 40.08 ; qtot -4.5
; residue 8734 CA rtp CA q +1.5
21838 C0 8734 CA CA 8734 1.5 40.08 ; qtot -3
; residue 8735 CA rtp CA q +1.5
21839 C0 8735 CA CA 8735 1.5 40.08 ; qtot -1.5
; residue 8736 CA rtp CA q +1.5
21840 C0 8736 CA CA 8736 1.5 40.08 ; qtot 0

[simulation.log]
1 GPU selected for this run.

Mapping of GPU IDs to the 1 GPU task in the 1 rank on this node:

PP:0

PP tasks will do (non-perturbed) short-ranged interactions on the GPU

PP task will update and constrain coordinates on the CPU

Using 1 MPI process

Using 16 OpenMP threads

System total charge: 0.001

Will do PME sum in reciprocal space for electrostatic interactions.