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:
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
performance. :l
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. 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
: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
before performing the minimization, or (b) make sure you are
monitoring the pressure without its kinetic component. The latter can
be done by outputting the pressure from the fix this command creates
(see below) or a pressure fix you define yourself.
be done by outputting the pressure from the pressure compute this
command creates (see below) or a pressure compute you define yourself.
NOTE: Because pressure is often a very sensitive function of volume,
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
compute"_compute_pressure.html defines its own temperature compute as
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
comes before the {press} keyword, then the new pressure compute
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
"output commands"_Section_howto.html#howto_15. The scalar is the
pressure-volume energy, plus the strain energy, if it exists.
This fix computes a global scalar which can be accessed by various
"output commands"_Section_howto.html#howto_15. The scalar is given
by the energy expression shown above. The energy values reported
at the end of a minimization run under "Minimization stats" include
this energy, and so differ from what LAMMPS normally reports as
potential energy. This fix does not support the
"fix_modify"_fix_modify.html {energy} option,
because that would result in double-counting of the fix energy in the
minimization energy. Instead, the fix energy can be explicitly
added to the potential energy using one of these two variants:
pressure-volume energy, plus the strain energy, if it exists,
as described above.
The energy values reported at the
end of a minimization run under "Minimization stats" include this
energy, and so differ from what LAMMPS normally reports as potential
energy. This fix does not support the "fix_modify"_fix_modify.html
{energy} option, because that would result in double-counting of the
fix energy in the 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

View File

@ -223,7 +223,9 @@ mpi-stubs:
@cd STUBS; $(MAKE) clean; $(MAKE)
# 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
install-python:
@$(PYTHON) ../python/install.py

View File

@ -1224,10 +1224,13 @@ void Neighbor::morph_copy()
if (jrq->copy && jrq->copylist == i) continue;
// parent list must be perpetual
// copied list can be perpetual or occasional
// other list (jrq) to copy from must be perpetual
// 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 (!irq->occasional && j > i) continue;
// both lists must be half, or both full