neighbor list bugfix to prevent cycle in copy lists

This commit is contained in:
Steve Plimpton
2017-05-09 08:55:18 -06:00
parent c4f90b3841
commit 08ec55743e
4 changed files with 24 additions and 20 deletions

View File

@ -69,8 +69,9 @@ not {hardware thread}.
For Intel Xeon CPUs: For Intel Xeon CPUs:
Edit src/MAKE/OPTIONS/Makefile.intel_cpu_intelmpi as necessary. :ulb,l Edit src/MAKE/OPTIONS/Makefile.intel_cpu_intelmpi as necessary. :ulb,l
If using {kspace_style pppm} in the input script, add "neigh_modify binsize 3" and "kspace_modify diff ad" to the input script for better If using {kspace_style pppm} in the input script, add "neigh_modify binsize cutoff" and "kspace_modify diff ad" to the input script for better
performance. :l performance. Cutoff should be roughly the neighbor list cutoff. By
default the binsize is half the neighbor list cutoff. :l
"-pk intel 0 omp 2 -sf intel" added to LAMMPS command-line :l "-pk intel 0 omp 2 -sf intel" added to LAMMPS command-line :l
:ule :ule

View File

@ -245,8 +245,8 @@ appear the system is converging to your specified pressure. The
solution for this is to either (a) zero the velocities of all atoms solution for this is to either (a) zero the velocities of all atoms
before performing the minimization, or (b) make sure you are before performing the minimization, or (b) make sure you are
monitoring the pressure without its kinetic component. The latter can monitoring the pressure without its kinetic component. The latter can
be done by outputting the pressure from the fix this command creates be done by outputting the pressure from the pressure compute this
(see below) or a pressure fix you define yourself. command creates (see below) or a pressure compute you define yourself.
NOTE: Because pressure is often a very sensitive function of volume, NOTE: Because pressure is often a very sensitive function of volume,
it can be difficult for the minimizer to equilibrate the system the it can be difficult for the minimizer to equilibrate the system the
@ -308,7 +308,7 @@ thermo_modify command (or in two separate commands), then the order in
which the keywords are specified is important. Note that a "pressure which the keywords are specified is important. Note that a "pressure
compute"_compute_pressure.html defines its own temperature compute as compute"_compute_pressure.html defines its own temperature compute as
an argument when it is specified. The {temp} keyword will override an argument when it is specified. The {temp} keyword will override
this (for the pressure compute being used by fix npt), but only if the this (for the pressure compute being used by fix box/relax), but only if the
{temp} keyword comes after the {press} keyword. If the {temp} keyword {temp} keyword comes after the {press} keyword. If the {temp} keyword
comes before the {press} keyword, then the new pressure compute comes before the {press} keyword, then the new pressure compute
specified by the {press} keyword will be unaffected by the {temp} specified by the {press} keyword will be unaffected by the {temp}
@ -316,18 +316,16 @@ setting.
This fix computes a global scalar which can be accessed by various This fix computes a global scalar which can be accessed by various
"output commands"_Section_howto.html#howto_15. The scalar is the "output commands"_Section_howto.html#howto_15. The scalar is the
pressure-volume energy, plus the strain energy, if it exists. pressure-volume energy, plus the strain energy, if it exists,
as described above.
This fix computes a global scalar which can be accessed by various The energy values reported at the
"output commands"_Section_howto.html#howto_15. The scalar is given end of a minimization run under "Minimization stats" include this
by the energy expression shown above. The energy values reported energy, and so differ from what LAMMPS normally reports as potential
at the end of a minimization run under "Minimization stats" include energy. This fix does not support the "fix_modify"_fix_modify.html
this energy, and so differ from what LAMMPS normally reports as {energy} option, because that would result in double-counting of the
potential energy. This fix does not support the fix energy in the minimization energy. Instead, the fix energy can be
"fix_modify"_fix_modify.html {energy} option, explicitly added to the potential energy using one of these two
because that would result in double-counting of the fix energy in the variants:
minimization energy. Instead, the fix energy can be explicitly
added to the potential energy using one of these two variants:
variable emin equal pe+f_1 :pre variable emin equal pe+f_1 :pre

View File

@ -223,7 +223,9 @@ mpi-stubs:
@cd STUBS; $(MAKE) clean; $(MAKE) @cd STUBS; $(MAKE) clean; $(MAKE)
# install LAMMPS shared lib and Python wrapper for Python usage # install LAMMPS shared lib and Python wrapper for Python usage
# include python package settings to automatically adapt name of python interpreter # include python package settings to
# automatically adapt name of python interpreter
sinclude ../lib/python/Makefile.lammps sinclude ../lib/python/Makefile.lammps
install-python: install-python:
@$(PYTHON) ../python/install.py @$(PYTHON) ../python/install.py

View File

@ -1224,10 +1224,13 @@ void Neighbor::morph_copy()
if (jrq->copy && jrq->copylist == i) continue; if (jrq->copy && jrq->copylist == i) continue;
// parent list must be perpetual // other list (jrq) to copy from must be perpetual
// copied list can be perpetual or occasional // list that becomes a copy list (irq) can be perpetual or occasional
// if both lists are perpetual, require j < i
// to prevent circular dependence with 3 or more copies of a list
if (jrq->occasional) continue; if (jrq->occasional) continue;
if (!irq->occasional && j > i) continue;
// both lists must be half, or both full // both lists must be half, or both full