diff --git a/doc/src/Manual.txt b/doc/src/Manual.txt
index 5677d09a85..25319570a4 100644
--- a/doc/src/Manual.txt
+++ b/doc/src/Manual.txt
@@ -1,7 +1,7 @@
LAMMPS Users Manual
-
+
@@ -21,7 +21,7 @@
LAMMPS Documentation :c,h3
-20 Jan 2017 version :c,h4
+26 Jan 2017 version :c,h4
Version info: :h4
diff --git a/potentials/WL.meam b/potentials/WL.meam
new file mode 100644
index 0000000000..43eecb4223
--- /dev/null
+++ b/potentials/WL.meam
@@ -0,0 +1,13 @@
+# DATE: 2017-01-25 CONTRIBUTOR: Aidan Thompson, athomps@sandia.gov, CITATION: Lee, Baskes, Kim, Cho. Phys. Rev. B, 64, 184102 (2001)
+rc = 3.8
+delr = 0.1
+augt1 = 0
+erose_form = 2
+zbl(1,1) = 0
+nn2(1,1) = 1
+Ec(1,1) = 8.66
+re(1,1) = 2.74
+attrac(1,1) = 0
+repuls(1,1) = 0
+Cmin(1,1,1) = 0.49
+Cmax(1,1,1) = 2.8
diff --git a/src/angle_hybrid.cpp b/src/angle_hybrid.cpp
index a477d7f8f6..9b3af1856e 100644
--- a/src/angle_hybrid.cpp
+++ b/src/angle_hybrid.cpp
@@ -104,7 +104,7 @@ void AngleHybrid::compute(int eflag, int vflag)
// accumulate sub-style global/peratom energy/virial in hybrid
if (eflag || vflag) ev_setup(eflag,vflag);
- else evflag = 0;
+ else evflag = eflag_global = vflag_global = eflag_atom = vflag_atom = 0;
for (m = 0; m < nstyles; m++) {
neighbor->nanglelist = nanglelist[m];
diff --git a/src/bond_hybrid.cpp b/src/bond_hybrid.cpp
index 1244c2822b..9a16d0e1fd 100644
--- a/src/bond_hybrid.cpp
+++ b/src/bond_hybrid.cpp
@@ -103,7 +103,7 @@ void BondHybrid::compute(int eflag, int vflag)
// accumulate sub-style global/peratom energy/virial in hybrid
if (eflag || vflag) ev_setup(eflag,vflag);
- else evflag = 0;
+ else evflag = eflag_global = vflag_global = eflag_atom = vflag_atom = 0;
for (m = 0; m < nstyles; m++) {
neighbor->nbondlist = nbondlist[m];
diff --git a/src/dihedral_hybrid.cpp b/src/dihedral_hybrid.cpp
index 0ae396b887..372a858d02 100644
--- a/src/dihedral_hybrid.cpp
+++ b/src/dihedral_hybrid.cpp
@@ -105,7 +105,7 @@ void DihedralHybrid::compute(int eflag, int vflag)
// accumulate sub-style global/peratom energy/virial in hybrid
if (eflag || vflag) ev_setup(eflag,vflag);
- else evflag = 0;
+ else evflag = eflag_global = vflag_global = eflag_atom = vflag_atom = 0;
for (m = 0; m < nstyles; m++) {
neighbor->ndihedrallist = ndihedrallist[m];
diff --git a/src/improper_hybrid.cpp b/src/improper_hybrid.cpp
index 78ee69569e..abaaae02da 100644
--- a/src/improper_hybrid.cpp
+++ b/src/improper_hybrid.cpp
@@ -105,7 +105,7 @@ void ImproperHybrid::compute(int eflag, int vflag)
// accumulate sub-style global/peratom energy/virial in hybrid
if (eflag || vflag) ev_setup(eflag,vflag);
- else evflag = 0;
+ else evflag = eflag_global = vflag_global = eflag_atom = vflag_atom = 0;
for (m = 0; m < nstyles; m++) {
neighbor->nimproperlist = nimproperlist[m];
diff --git a/src/neigh_request.cpp b/src/neigh_request.cpp
index 6354af4d36..4007daadce 100644
--- a/src/neigh_request.cpp
+++ b/src/neigh_request.cpp
@@ -46,7 +46,7 @@ NeighRequest::NeighRequest(LAMMPS *lmp) : Pointers(lmp)
command_style = NULL;
// combination of settings, mutiple can be set to 1
- // default is every reneighboring
+ // default is every reneighboring, not occasional
// default is use newton_pair setting in force
// default is no size history (when gran = 1)
// default is no one-sided sphere/surface interactions (when gran = 1)
@@ -55,6 +55,7 @@ NeighRequest::NeighRequest(LAMMPS *lmp) : Pointers(lmp)
// default is no multi-threaded neighbor list build
// default is no Kokkos neighbor list build
// default is no Shardlow Splitting Algorithm (SSA) neighbor list build
+ // default is neighbors of atoms, not bonds
occasional = 0;
newton = 0;
@@ -65,6 +66,7 @@ NeighRequest::NeighRequest(LAMMPS *lmp) : Pointers(lmp)
intel = 0;
kokkos_host = kokkos_device = 0;
ssa = 0;
+ bond = 0;
// copy/skip/derive info, default is no copy or skip
// none or only one option is set
@@ -142,6 +144,7 @@ int NeighRequest::identical(NeighRequest *other)
if (kokkos_host != other->kokkos_host) same = 0;
if (kokkos_device != other->kokkos_device) same = 0;
if (ssa != other->ssa) same = 0;
+ if (bond != other->bond) same = 0;
if (copy != other->copy_original) same = 0;
if (same_skip(other) == 0) same = 0;
@@ -182,6 +185,7 @@ int NeighRequest::same_kind(NeighRequest *other)
if (kokkos_host != other->kokkos_host) same = 0;
if (kokkos_device != other->kokkos_device) same = 0;
if (ssa != other->ssa) same = 0;
+ if (bond != other->bond) same = 0;
// copy/skip/derive info does not need to be the same
@@ -237,4 +241,5 @@ void NeighRequest::copy_request(NeighRequest *other)
kokkos_host = other->kokkos_host;
kokkos_device = other->kokkos_device;
ssa = other->ssa;
+ bond = other->bond;
}
diff --git a/src/neigh_request.h b/src/neigh_request.h
index 0b561710e7..2738f4c036 100644
--- a/src/neigh_request.h
+++ b/src/neigh_request.h
@@ -95,6 +95,10 @@ class NeighRequest : protected Pointers {
int ssa;
+ // 1 if bond neighbors, not atom neighbors
+
+ int bond;
+
// -----------------
// end of optional settings
// -----------------
diff --git a/src/neighbor.cpp b/src/neighbor.cpp
index cbcd5d640d..79958a29f4 100644
--- a/src/neighbor.cpp
+++ b/src/neighbor.cpp
@@ -1411,11 +1411,11 @@ int Neighbor::choose_pair(NeighRequest *rq)
int copyflag,skipflag,halfflag,fullflag,halffullflag,sizeflag,respaflag,
ghostflag,off2onflag,onesideflag,ssaflag,ompflag,intelflag,
- kokkos_device_flag,kokkos_host_flag;
+ kokkos_device_flag,kokkos_host_flag,bondflag;
copyflag = skipflag = halfflag = fullflag = halffullflag = sizeflag =
ghostflag = respaflag = off2onflag = onesideflag = ssaflag =
- ompflag = intelflag = kokkos_device_flag = kokkos_host_flag = 0;
+ ompflag = intelflag = kokkos_device_flag = kokkos_host_flag = bondflag = 0;
if (rq->copy) copyflag = NP_COPY;
if (rq->skip) skipflag = NP_SKIP;
@@ -1447,6 +1447,7 @@ int Neighbor::choose_pair(NeighRequest *rq)
if (rq->intel) intelflag = NP_INTEL;
if (rq->kokkos_device) kokkos_device_flag = NP_KOKKOS_DEVICE;
if (rq->kokkos_host) kokkos_host_flag = NP_KOKKOS_HOST;
+ if (rq->bond) bondflag = NP_BOND;
int newtflag;
if (rq->newton == 0 && newton_pair) newtflag = 1;
@@ -1459,10 +1460,10 @@ int Neighbor::choose_pair(NeighRequest *rq)
int mask;
- //printf("FLAGS: %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n",
+ //printf("FLAGS: %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n",
// copyflag,skipflag,halfflag,fullflag,halffullflag,
// sizeflag,respaflag,ghostflag,off2onflag,onesideflag,ssaflag,
- // ompflag,intelflag,newtflag);
+ // ompflag,intelflag,newtflag,bondflag);
for (int i = 0; i < npclass; i++) {
mask = pairmasks[i];
@@ -1496,6 +1497,7 @@ int Neighbor::choose_pair(NeighRequest *rq)
if (off2onflag != (mask & NP_OFF2ON)) continue;
if (onesideflag != (mask & NP_ONESIDE)) continue;
if (ssaflag != (mask & NP_SSA)) continue;
+ if (bondflag != (mask & NP_BOND)) continue;
if (ompflag != (mask & NP_OMP)) continue;
if (intelflag != (mask & NP_INTEL)) continue;
diff --git a/src/neighbor.h b/src/neighbor.h
index eb603ad84f..d087af9ed5 100644
--- a/src/neighbor.h
+++ b/src/neighbor.h
@@ -267,6 +267,7 @@ namespace NeighConst {
static const int NP_TRI = 1<<19;
static const int NP_KOKKOS_DEVICE = 1<<20;
static const int NP_KOKKOS_HOST = 1<<21;
+ static const int NP_BOND = 1<<22;
}
}
diff --git a/src/version.h b/src/version.h
index 1b3ba22b49..6847e5ff82 100644
--- a/src/version.h
+++ b/src/version.h
@@ -1 +1 @@
-#define LAMMPS_VERSION "20 Jan 2017"
+#define LAMMPS_VERSION "26 Jan 2017"