Hello,
pair_meamc.cpp uses this code in its compute():
if (neighbor->ago == 0) {
neigh_strip(inum_half,ilist_half,numneigh_half,firstneigh_half);
neigh_strip(inum_half,ilist_half,numneigh_full,firstneigh_full);
}
with the neigh_strip as:
void PairMEAMC::neigh_strip(int inum, int *ilist,
int *numneigh, int **firstneigh)
{
int i,j,ii,jnum;
int *jlist;
for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
jlist = firstneigh[i];
jnum = numneigh[i];
for (j = 0; j < jnum; j++) jlist[j] &= NEIGHMASK;
}
}
Is this a best practice approach for dealing with stripping the bond flags from the neighbor list?
Alternatively, in pair_kim.cpp the stripping process is only done if
atom->molecular > 0
and the stripped neighbor list is stored in separate storage (instead of overwriting the original list).
For the update of pair_kim that I am working on, which alternative should I implement? Or should I combine the two in some way?
Many thanks,
Ryan