From 0fc80eb6f94fd0acf7c5107397e02fc99275b6fb Mon Sep 17 00:00:00 2001 From: Han Wang Date: Sun, 31 Oct 2021 23:09:06 +0800 Subject: [PATCH 1/2] fix bug of loc_frame descriptor, due to the change of nei list convention introduced in v2 --- source/op/descrpt.cc | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/source/op/descrpt.cc b/source/op/descrpt.cc index 7fdf81d986..d5f3ae6271 100644 --- a/source/op/descrpt.cc +++ b/source/op/descrpt.cc @@ -213,24 +213,22 @@ class DescrptOp : public OpKernel { std::vector nlist_map; bool b_nlist_map = false; if (nei_mode == 3) { - int * pilist, *pjrange, *pjlist; + int *pilist, *pnumneigh, **pfirstneigh; memcpy (&pilist, &mesh(4), sizeof(int *)); - memcpy (&pjrange, &mesh(8), sizeof(int *)); - memcpy (&pjlist, &mesh(12), sizeof(int *)); + memcpy (&pnumneigh, &mesh(8), sizeof(int *)); + memcpy (&pfirstneigh, &mesh(12), sizeof(int **)); int inum = mesh(1); assert (inum == nloc); d_nlist_a.resize (inum); d_nlist_r.resize (inum); - for (unsigned ii = 0; ii < inum; ++ii){ - d_nlist_r.reserve (pjrange[inum] / inum + 10); - } for (unsigned ii = 0; ii < inum; ++ii){ int i_idx = pilist[ii]; - for (unsigned jj = pjrange[ii]; jj < pjrange[ii+1]; ++jj){ - int j_idx = pjlist[jj]; - d_nlist_r[i_idx].push_back (j_idx); + d_nlist_r[i_idx].reserve(pnumneigh[ii]); + for (unsigned jj = 0; jj < pnumneigh[ii]; ++jj){ + int j_idx = pfirstneigh[ii][jj]; + d_nlist_r[i_idx].push_back(j_idx); } - } + } } else if (nei_mode == 2) { std::vector nat_stt = {mesh(1-1), mesh(2-1), mesh(3-1)}; From 639fafabe81c33341ef2c61e8e197e538685f152 Mon Sep 17 00:00:00 2001 From: Han Wang Date: Sun, 31 Oct 2021 23:12:58 +0800 Subject: [PATCH 2/2] fix change of format --- source/op/descrpt.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/op/descrpt.cc b/source/op/descrpt.cc index d5f3ae6271..3731804fef 100644 --- a/source/op/descrpt.cc +++ b/source/op/descrpt.cc @@ -228,7 +228,7 @@ class DescrptOp : public OpKernel { int j_idx = pfirstneigh[ii][jj]; d_nlist_r[i_idx].push_back(j_idx); } - } + } } else if (nei_mode == 2) { std::vector nat_stt = {mesh(1-1), mesh(2-1), mesh(3-1)};