boundary bug?


When using a domain with a single set of fixed boundaries, restart and
write_restart both appear to fail, with the error

Atom count is inconsistent, cannot write restart file (write_restart.cpp:135)

I may have modified the code line reference; it refers to the condition
if(natoms != atom->natoms && output->thermo->lostflag == ERROR)

If run with the script below, both error conditions are true.

The simulation can run without complaining for any number of timesteps,
and only fails when attempting to write a restart file. Moreover, the difference
between natoms and atom->natoms that trips this error message increases
with increasing timestep.

If the boundary command is removed, the run completes successfully,
athough the lostflag condition in line 135 is still true.

I am using a very recent pull from the git repository. Any advice would
be appreciated.


Reference script:

units metal
atom_style atomic
boundary p p f # if this line is removed, the code completes without error
variable runtemp equal 60.0
variable lattconst equal 3.52
lattice fcc \{lattconst\} region whole block 0 10 0 10 0 10 units lattice create\_box 1 whole create\_atoms 1 box mass 1 26\.98154 timestep 0\.002 pair\_style eam pair\_coeff \* \* Ni\_u3\.eam velocity all create {runtemp} 88 dist gaussian mom yes rot yes
fix firstmotionless all momentum 1 linear 1 1 1 angular
fix firstnpt all npt temp \{runtemp\} {runtemp} 0.035 x 0.0 0.0 1.2 y 0.0 0.0 1.2
run 50
write_restart restart.trial

I think this is because you have lost atoms. Lost atoms
are normally only detected when you ouput thermo info,
which your script doesn't appear to be doing. Put in
a "thermo 1" command and you will see when you lose
them. If you don;'t care if you lose them then
you need to set thermo_modify lost ignore.


Yes, thank you.