plug memory leaks in USER-PACE

This commit is contained in:
Axel Kohlmeyer
2021-06-20 21:29:08 -04:00
parent 651772e6fa
commit a4c8650d2a
3 changed files with 4 additions and 6 deletions

View File

@ -50,6 +50,8 @@ Copyright 2021 Yury Lysogorskiy^1, Cas van der Oord^2, Anton Bochkarev^1,
namespace LAMMPS_NS { namespace LAMMPS_NS {
struct ACEImpl { struct ACEImpl {
ACEImpl() : basis_set(nullptr), ace(nullptr){}
~ACEImpl() {delete basis_set; delete ace;}
ACECTildeBasisSet *basis_set; ACECTildeBasisSet *basis_set;
ACERecursiveEvaluator *ace; ACERecursiveEvaluator *ace;
}; };
@ -93,8 +95,6 @@ PairPACE::PairPACE(LAMMPS *lmp) : Pair(lmp) {
manybody_flag = 1; manybody_flag = 1;
aceimpl = new ACEImpl; aceimpl = new ACEImpl;
aceimpl->ace = nullptr;
aceimpl->basis_set = nullptr;
recursive = false; recursive = false;
scale = nullptr; scale = nullptr;
@ -107,8 +107,6 @@ PairPACE::PairPACE(LAMMPS *lmp) : Pair(lmp) {
PairPACE::~PairPACE() { PairPACE::~PairPACE() {
if (copymode) return; if (copymode) return;
delete aceimpl->basis_set;
delete aceimpl->ace;
delete aceimpl; delete aceimpl;
if (allocated) { if (allocated) {
@ -297,6 +295,7 @@ void PairPACE::coeff(int narg, char **arg) {
char **elemtypes = &arg[3]; char **elemtypes = &arg[3];
//load potential file //load potential file
delete aceimpl->basis_set;
aceimpl->basis_set = new ACECTildeBasisSet(); aceimpl->basis_set = new ACECTildeBasisSet();
if (comm->me == 0) if (comm->me == 0)
utils::logmesg(lmp,"Loading {}\n", potential_file_name); utils::logmesg(lmp,"Loading {}\n", potential_file_name);
@ -316,6 +315,7 @@ void PairPACE::coeff(int narg, char **arg) {
// map[i] = which element the Ith atom type is, -1 if not mapped // map[i] = which element the Ith atom type is, -1 if not mapped
// map[0] is not used // map[0] is not used
delete aceimpl->ace;
aceimpl->ace = new ACERecursiveEvaluator(); aceimpl->ace = new ACERecursiveEvaluator();
aceimpl->ace->set_recursive(recursive); aceimpl->ace->set_recursive(recursive);
aceimpl->ace->element_type_mapping.init(atom->ntypes + 1); aceimpl->ace->element_type_mapping.init(atom->ntypes + 1);

View File

@ -2,7 +2,6 @@
lammps_version: 10 Mar 2021 lammps_version: 10 Mar 2021
date_generated: Wed Apr 7 19:29:52 2021 date_generated: Wed Apr 7 19:29:52 2021
epsilon: 5e-13 epsilon: 5e-13
skip_tests:
prerequisites: ! | prerequisites: ! |
pair pace pair pace
pre_commands: ! | pre_commands: ! |

View File

@ -2,7 +2,6 @@
lammps_version: 10 Mar 2021 lammps_version: 10 Mar 2021
date_generated: Wed Apr 7 19:30:07 2021 date_generated: Wed Apr 7 19:30:07 2021
epsilon: 5e-13 epsilon: 5e-13
skip_tests:
prerequisites: ! | prerequisites: ! |
pair pace pair pace
pre_commands: ! | pre_commands: ! |