From d753c51c450064c5a4ac8a7157fac6ddadb4a0dc Mon Sep 17 00:00:00 2001 From: Aidan Thompson <athomps@sandia.gov> Date: Mon, 17 Sep 2018 19:44:32 -0600 Subject: [PATCH] The sna*/atom computes were not destroying SNA objects. Fixed. --- src/SNAP/compute_sna_atom.cpp | 5 ++++- src/SNAP/compute_sna_atom.h | 1 + src/SNAP/compute_snad_atom.cpp | 2 ++ src/SNAP/compute_snad_atom.h | 1 + src/SNAP/compute_snav_atom.cpp | 3 +++ src/SNAP/compute_snav_atom.h | 1 + 6 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/SNAP/compute_sna_atom.cpp b/src/SNAP/compute_sna_atom.cpp index a2c1f55788..5ca63a7e85 100644 --- a/src/SNAP/compute_sna_atom.cpp +++ b/src/SNAP/compute_sna_atom.cpp @@ -115,7 +115,8 @@ ComputeSNAAtom::ComputeSNAAtom(LAMMPS *lmp, int narg, char **arg) : } else error->all(FLERR,"Illegal compute sna/atom command"); } - snaptr = new SNA*[comm->nthreads]; + nthreads = comm->nthreads; + snaptr = new SNA*[nthreads]; #if defined(_OPENMP) #pragma omp parallel default(none) shared(lmp,rfac0,twojmax,rmin0,switchflag,bzeroflag) #endif @@ -146,6 +147,8 @@ ComputeSNAAtom::~ComputeSNAAtom() memory->destroy(radelem); memory->destroy(wjelem); memory->destroy(cutsq); + for (int tid = 0; tid<nthreads; tid++) + delete snaptr[tid]; delete [] snaptr; } diff --git a/src/SNAP/compute_sna_atom.h b/src/SNAP/compute_sna_atom.h index b22eea71b5..2f6fb18996 100644 --- a/src/SNAP/compute_sna_atom.h +++ b/src/SNAP/compute_sna_atom.h @@ -45,6 +45,7 @@ class ComputeSNAAtom : public Compute { class SNA** snaptr; double cutmax; int quadraticflag; + int nthreads; }; } diff --git a/src/SNAP/compute_snad_atom.cpp b/src/SNAP/compute_snad_atom.cpp index 800d1942e3..da56555055 100644 --- a/src/SNAP/compute_snad_atom.cpp +++ b/src/SNAP/compute_snad_atom.cpp @@ -148,6 +148,8 @@ ComputeSNADAtom::~ComputeSNADAtom() memory->destroy(radelem); memory->destroy(wjelem); memory->destroy(cutsq); + for (int tid = 0; tid<nthreads; tid++) + delete snaptr[tid]; delete [] snaptr; } diff --git a/src/SNAP/compute_snad_atom.h b/src/SNAP/compute_snad_atom.h index a33e6047c2..92003a9bc5 100644 --- a/src/SNAP/compute_snad_atom.h +++ b/src/SNAP/compute_snad_atom.h @@ -47,6 +47,7 @@ class ComputeSNADAtom : public Compute { class SNA** snaptr; double cutmax; int quadraticflag; + int nthreads; }; } diff --git a/src/SNAP/compute_snav_atom.cpp b/src/SNAP/compute_snav_atom.cpp index 2b823f7b8b..27bfc1bef0 100644 --- a/src/SNAP/compute_snav_atom.cpp +++ b/src/SNAP/compute_snav_atom.cpp @@ -142,6 +142,9 @@ ComputeSNAVAtom::~ComputeSNAVAtom() memory->destroy(radelem); memory->destroy(wjelem); memory->destroy(cutsq); + + for (int tid = 0; tid<nthreads; tid++) + delete snaptr[tid]; delete [] snaptr; } diff --git a/src/SNAP/compute_snav_atom.h b/src/SNAP/compute_snav_atom.h index 7d39786ef9..9be5e1d389 100644 --- a/src/SNAP/compute_snav_atom.h +++ b/src/SNAP/compute_snav_atom.h @@ -46,6 +46,7 @@ class ComputeSNAVAtom : public Compute { double *wjelem; class SNA** snaptr; int quadraticflag; + int nthreads; }; } -- GitLab