[lammps-users] ewald/pppm restart inaccuracy during volume changes

Dear LAMMPS users,

I noticed disturbing inconsistencies between the final thermo output and the initial thermo output sharing a binary restart file during volume changes, both minimizing with fix box/relax and MD with fix npt.

The thermo outputs should agree when I minimize, output thermo, write a restart, read the restart and output thermo. When I use fix box/relax, however, PotEng, E_coul, E_long are all different. See log.is (minimize with volume changes), log.check. The same thing happens with ewald as pppm. My system is a protein in water. This probably only appears to happen when fix box/relax is on.

For MD, I ran NVT for 10 steps, wrote a restart file, then run the restart file for 0 steps. The final thermo of the first run precisely matched the initial thermo, as it should. Then I did the same procedure for NPT, where E_coul and E_long were off by the same additive constant (yielding the same PotEng, which is good). But why would E_coul and E_long have different values?


Harold Hatch

log.check (2.69 KB)

log.is (7.09 KB)

I'll let Aidan look at this.


I was not able to reproduce your problem. All of my tests show one of two

A. The PPPM grid stays the same and the energy and pressure match
B. The PPM grid changes due to the volume change, and the energy and
pressure change a little.

Bahavior B is not a bug; it just reflects the way LAMMPS adjusts the grid to
achieve the specfied accuracy.

However, the behavior in your log files appears to be:

C. The PPPM grid stays the same, but the energy and pressure do not match.

Can you send us a simple and small (in time and space) example that exhibits
behavior C?


This was a bug with fix box/relax and long-range Coulombics. Just
posted a patch.