From d71b0884578855238e8ab97e23c44cccb8cb710e Mon Sep 17 00:00:00 2001 From: sjplimp <sjplimp@f3b2605a-c512-4ea7-a41b-209d697bcdaa> Date: Mon, 28 Jun 2010 22:06:53 +0000 Subject: [PATCH] git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@4355 f3b2605a-c512-4ea7-a41b-209d697bcdaa --- src/MANYBODY/pair_eam.cpp | 9 +++++++-- src/MANYBODY/pair_eam_alloy.cpp | 9 +++++++-- src/MANYBODY/pair_eam_fs.cpp | 9 +++++++-- src/finish.cpp | 15 ++++++++++----- src/neigh_list.cpp | 1 + 5 files changed, 32 insertions(+), 11 deletions(-) diff --git a/src/MANYBODY/pair_eam.cpp b/src/MANYBODY/pair_eam.cpp index de2c10501e..2b29a38c25 100644 --- a/src/MANYBODY/pair_eam.cpp +++ b/src/MANYBODY/pair_eam.cpp @@ -667,14 +667,19 @@ void PairEAM::file2array() // set of z2r arrays only fill lower triangular Nelement matrix // value = n = sum over rows of lower-triangular matrix until reach irow,icol // swap indices when irow < icol to stay lower triangular - // OK if map = -1 (non-EAM atom in pair hybrid) b/c type2z2r not used + // if map = -1 (non-EAM atom in pair hybrid): + // type2z2r is not used by non-opt + // but set type2z2r to 0 since accessed by opt int irow,icol; for (i = 1; i <= ntypes; i++) { for (j = 1; j <= ntypes; j++) { irow = map[i]; icol = map[j]; - if (irow == -1 || icol == -1) continue; + if (irow == -1 || icol == -1) { + type2z2r[i][j] = 0; + continue; + } if (irow < icol) { irow = map[j]; icol = map[i]; diff --git a/src/MANYBODY/pair_eam_alloy.cpp b/src/MANYBODY/pair_eam_alloy.cpp index a13468acff..202758091e 100644 --- a/src/MANYBODY/pair_eam_alloy.cpp +++ b/src/MANYBODY/pair_eam_alloy.cpp @@ -298,14 +298,19 @@ void PairEAMAlloy::file2array() // set of z2r arrays only fill lower triangular Nelement matrix // value = n = sum over rows of lower-triangular matrix until reach irow,icol // swap indices when irow < icol to stay lower triangular - // OK if map = -1 (non-EAM atom in pair hybrid) b/c type2z2r not used + // if map = -1 (non-EAM atom in pair hybrid): + // type2z2r is not used by non-opt + // but set type2z2r to 0 since accessed by opt int irow,icol; for (i = 1; i <= ntypes; i++) { for (j = 1; j <= ntypes; j++) { irow = map[i]; icol = map[j]; - if (irow == -1 || icol == -1) continue; + if (irow == -1 || icol == -1) { + type2z2r[i][j] = 0; + continue; + } if (irow < icol) { irow = map[j]; icol = map[i]; diff --git a/src/MANYBODY/pair_eam_fs.cpp b/src/MANYBODY/pair_eam_fs.cpp index d42bdce4c4..74cdd61f60 100644 --- a/src/MANYBODY/pair_eam_fs.cpp +++ b/src/MANYBODY/pair_eam_fs.cpp @@ -305,14 +305,19 @@ void PairEAMFS::file2array() // set of z2r arrays only fill lower triangular Nelement matrix // value = n = sum over rows of lower-triangular matrix until reach irow,icol // swap indices when irow < icol to stay lower triangular - // OK if map = -1 (non-EAM atom in pair hybrid) b/c type2z2r not used + // if map = -1 (non-EAM atom in pair hybrid): + // type2z2r is not used by non-opt + // but set type2z2r to 0 since accessed by opt int irow,icol; for (i = 1; i <= ntypes; i++) { for (j = 1; j <= ntypes; j++) { irow = map[i]; icol = map[j]; - if (irow == -1 || icol == -1) continue; + if (irow == -1 || icol == -1) { + type2z2r[i][j] = 0; + continue; + } if (irow < icol) { irow = map[j]; icol = map[i]; diff --git a/src/finish.cpp b/src/finish.cpp index 72acf8497c..05ecd4ec84 100644 --- a/src/finish.cpp +++ b/src/finish.cpp @@ -414,8 +414,9 @@ void Finish::end(int flag) int inum = neighbor->lists[m]->inum; int *ilist = neighbor->lists[m]->ilist; int *numneigh = neighbor->lists[m]->numneigh; - for (int ii = 0; ii < inum; ii++) - nneigh += numneigh[ilist[ii]]; + if (numneigh) + for (i = 0; i < inum; i++) + nneigh += numneigh[ilist[i]]; } tmp = nneigh; @@ -443,9 +444,13 @@ void Finish::end(int flag) if (m < neighbor->old_nrequest) { nneigh = 0; - for (i = 0; i < atom->nlocal; i++) - nneigh += neighbor->lists[m]->numneigh[i]; - + int inum = neighbor->lists[m]->inum; + int *ilist = neighbor->lists[m]->ilist; + int *numneigh = neighbor->lists[m]->numneigh; + if (numneigh) + for (i = 0; i < inum; i++) + nneigh += numneigh[ilist[i]]; + tmp = nneigh; stats(1,&tmp,&ave,&max,&min,10,histo); if (me == 0) { diff --git a/src/neigh_list.cpp b/src/neigh_list.cpp index 0aca03a382..9426c3df68 100644 --- a/src/neigh_list.cpp +++ b/src/neigh_list.cpp @@ -32,6 +32,7 @@ NeighList::NeighList(LAMMPS *lmp, int size) : Pointers(lmp) maxlocal = 0; pgsize = size; + inum = 0; ilist = NULL; numneigh = NULL; firstneigh = NULL; -- GitLab