diff --git a/src/MANYBODY/pair_polymorphic.cpp b/src/MANYBODY/pair_polymorphic.cpp index a3f6d08522..502580719a 100644 --- a/src/MANYBODY/pair_polymorphic.cpp +++ b/src/MANYBODY/pair_polymorphic.cpp @@ -47,26 +47,26 @@ PairPolymorphic::PairPolymorphic(LAMMPS *lmp) : Pair(lmp) one_coeff = 1; nelements = 0; - elements = NULL; - match = NULL; - pairParameters = NULL; - tripletParameters = NULL; - elem2param = NULL; - elem3param = NULL; - map = NULL; + elements = nullptr; + match = nullptr; + pairParameters = nullptr; + tripletParameters = nullptr; + elem2param = nullptr; + elem3param = nullptr; + map = nullptr; epsilon = 0.0; neighsize = 0; - firstneighV = NULL; - firstneighW = NULL; - firstneighW1 = NULL; - delxV = NULL; - delyV = NULL; - delzV = NULL; - drV = NULL; - delxW = NULL; - delyW = NULL; - delzW = NULL; - drW = NULL; + firstneighV = nullptr; + firstneighW = nullptr; + firstneighW1 = nullptr; + delxV = nullptr; + delyV = nullptr; + delzV = nullptr; + drV = nullptr; + delxW = nullptr; + delyW = nullptr; + delzW = nullptr; + drW = nullptr; } /* ---------------------------------------------------------------------- @@ -79,8 +79,10 @@ PairPolymorphic::~PairPolymorphic() for (int i = 0; i < nelements; i++) delete [] elements[i]; delete [] elements; delete [] match; - memory->destroy(pairParameters); - memory->destroy(tripletParameters); + + delete [] pairParameters; + delete [] tripletParameters; + memory->destroy(elem2param); memory->destroy(elem3param); if (allocated) { @@ -487,7 +489,7 @@ void PairPolymorphic::coeff(int narg, char **arg) delete [] elements; } elements = new char*[atom->ntypes]; - for (i = 0; i < atom->ntypes; i++) elements[i] = NULL; + for (i = 0; i < atom->ntypes; i++) elements[i] = nullptr; nelements = 0; for (i = 3; i < narg; i++) { @@ -581,6 +583,7 @@ void PairPolymorphic::read_file(char *file) eta = values.next_int(); // map the elements in the potential file to LAMMPS atom types + delete [] match; match = new int[nelements]; for (int i = 0; i < nelements; i++) { @@ -617,8 +620,10 @@ void PairPolymorphic::read_file(char *file) // cutoffs npair = nelements*(nelements+1)/2; ntriple = nelements*nelements*nelements; - pairParameters = (PairParameters*) memory->srealloc(pairParameters,npair*sizeof(PairParameters), "pair:pairParameters"); - tripletParameters = (TripletParameters*) memory->srealloc(tripletParameters,ntriple*sizeof(TripletParameters), "pair:tripletParameters"); + delete [] pairParameters; + delete [] tripletParameters; + pairParameters = new PairParameters[npair]; + tripletParameters = new TripletParameters[ntriple]; for (int i = 0; i < npair; i++) { PairParameters & p = pairParameters[i]; @@ -641,9 +646,12 @@ void PairPolymorphic::read_file(char *file) MPI_Bcast(&ntriple, 1, MPI_INT, 0, world); if(comm->me != 0) { + delete [] match; match = new int[nelements]; - pairParameters = (PairParameters*) memory->srealloc(pairParameters,npair*sizeof(PairParameters), "pair:pairParameters"); - tripletParameters = (TripletParameters*) memory->srealloc(tripletParameters,ntriple*sizeof(TripletParameters), "pair:tripletParameters"); + delete [] pairParameters; + delete [] tripletParameters; + pairParameters = new PairParameters[npair]; + tripletParameters = new TripletParameters[ntriple]; } MPI_Bcast(match, nelements, MPI_INT, 0, world); diff --git a/src/MANYBODY/pair_polymorphic.h b/src/MANYBODY/pair_polymorphic.h index b4ff169b76..18956699d7 100644 --- a/src/MANYBODY/pair_polymorphic.h +++ b/src/MANYBODY/pair_polymorphic.h @@ -50,14 +50,14 @@ class PairPolymorphic : public Pair { xmax = 0.0; xmaxsq = xmax*xmax; vmax = 0.0; - xs = NULL; - ys = NULL; - ys1 = NULL; - ys2 = NULL; - ys3 = NULL; - ys4 = NULL; - ys5 = NULL; - ys6 = NULL; + xs = nullptr; + ys = nullptr; + ys1 = nullptr; + ys2 = nullptr; + ys3 = nullptr; + ys4 = nullptr; + ys5 = nullptr; + ys6 = nullptr; } tabularFunction(int n) { size = n; @@ -88,14 +88,14 @@ class PairPolymorphic : public Pair { ys6 = new double[n]; } virtual ~tabularFunction() { - if (xs) delete [] xs; - if (ys) delete [] ys; - if (ys1) delete [] ys1; - if (ys2) delete [] ys2; - if (ys3) delete [] ys3; - if (ys4) delete [] ys4; - if (ys5) delete [] ys5; - if (ys6) delete [] ys6; + delete [] xs; + delete [] ys; + delete [] ys1; + delete [] ys2; + delete [] ys3; + delete [] ys4; + delete [] ys5; + delete [] ys6; } void set_xrange(double x1, double x2) { xmin = x1; @@ -198,21 +198,21 @@ class PairPolymorphic : public Pair { void resize(int n) { if (n != size) { size = n; - if (xs) delete [] xs; + delete [] xs; xs = new double[n]; - if (ys) delete [] ys; + delete [] ys; ys = new double[n]; - if (ys1) delete [] ys1; + delete [] ys1; ys1 = new double[n]; - if (ys2) delete [] ys2; + delete [] ys2; ys2 = new double[n]; - if (ys3) delete [] ys3; + delete [] ys3; ys3 = new double[n]; - if (ys4) delete [] ys4; + delete [] ys4; ys4 = new double[n]; - if (ys5) delete [] ys5; + delete [] ys5; ys5 = new double[n]; - if (ys6) delete [] ys6; + delete [] ys6; ys6 = new double[n]; } } @@ -248,35 +248,45 @@ class PairPolymorphic : public Pair { } int size; double xmin,xmax,xmaxsq,rdx,vmax; - double * ys, * ys1, * ys2, * ys3, * ys4, * ys5, * ys6; - double * xs; + double *ys, *ys1, *ys2, *ys3, *ys4, *ys5, *ys6; + double *xs; }; struct PairParameters { double cut; double cutsq; double xi; - class tabularFunction * U; - class tabularFunction * V; - class tabularFunction * W; - class tabularFunction * F; + class tabularFunction *U; + class tabularFunction *V; + class tabularFunction *W; + class tabularFunction *F; PairParameters() { cut = 0.0; cutsq = 0.0; xi = 1.0; - U = NULL; - V = NULL; - W = NULL; - F = NULL; + U = nullptr; + V = nullptr; + W = nullptr; + F = nullptr; }; + ~PairParameters() { + delete U; + delete V; + delete W; + delete F; + } }; struct TripletParameters { - class tabularFunction * P; - class tabularFunction * G; + class tabularFunction *P; + class tabularFunction *G; TripletParameters() { - P = NULL; - G = NULL; + P = nullptr; + G = nullptr; }; + ~TripletParameters() { + delete P; + delete G; + } }; double epsilon;