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"