diff --git a/src/compute_property_grid.cpp b/src/compute_property_grid.cpp index b9cc2cbb6a..2b8df955ef 100644 --- a/src/compute_property_grid.cpp +++ b/src/compute_property_grid.cpp @@ -273,7 +273,7 @@ void ComputePropertyGrid::deallocate_grid() delete grid2d; delete grid3d; memory->destroy2d_offset(vec2d, nylo_out, nxlo_out); - memory->destroy2d_offset(array2d, nylo_out, nxlo_out); + memory->destroy3d_offset_last(array2d, nylo_out, nxlo_out); memory->destroy3d_offset(vec3d, nzlo_out, nylo_out, nxlo_out); memory->destroy4d_offset_last(array3d, nzlo_out, nylo_out, nxlo_out); } diff --git a/src/dump_image.cpp b/src/dump_image.cpp index e26ea7fa20..a42a412ca7 100644 --- a/src/dump_image.cpp +++ b/src/dump_image.cpp @@ -466,6 +466,9 @@ DumpImage::~DumpImage() memory->destroy(chooseghost); memory->destroy(bufcopy); memory->destroy(gbuf); + + delete [] id_grid_compute; + delete [] id_grid_fix; } /* ---------------------------------------------------------------------- */ diff --git a/src/fix_ave_grid.cpp b/src/fix_ave_grid.cpp index 6e0e16b360..3087688b21 100644 --- a/src/fix_ave_grid.cpp +++ b/src/fix_ave_grid.cpp @@ -330,7 +330,7 @@ FixAveGrid::FixAveGrid(LAMMPS *lmp, int narg, char **arg) : grid_sample = allocate_one_grid(); grid_nfreq = allocate_one_grid(); - if (aveflag == RUNNING || aveflag == WINDOW) grid_nfreq = allocate_one_grid(); + if (aveflag == RUNNING || aveflag == WINDOW) grid_running = allocate_one_grid(); if (aveflag == WINDOW) { grid_window = new GridData*[nwindow]; for (int i = 0; i < nwindow; i++) @@ -2045,13 +2045,21 @@ void FixAveGrid::reset_grid() grid_window_previous[i] = clone_one_grid(grid_window[i]); } + delete grid_sample; + delete grid_nfreq; + if (aveflag == RUNNING || aveflag == WINDOW) delete grid_running; + if (aveflag == WINDOW) { + for (int i = 0; i < nwindow; i++) + delete grid_window; + } + // allocate grid instance and grid data for new decomposition allocate_grid(); grid_sample = allocate_one_grid(); grid_nfreq = allocate_one_grid(); - if (aveflag == RUNNING || aveflag == WINDOW) grid_nfreq = allocate_one_grid(); + if (aveflag == RUNNING || aveflag == WINDOW) grid_running = allocate_one_grid(); if (aveflag == WINDOW) { grid_window = new GridData*[nwindow]; for (int i = 0; i < nwindow; i++) @@ -2091,7 +2099,7 @@ void FixAveGrid::reset_grid() if (dimension == 2) delete grid2d_previous; else delete grid3d_previous; - + deallocate_one_grid(grid_sample_previous,nxlo_out_previous,nylo_out_previous,nzlo_out_previous); deallocate_one_grid(grid_nfreq_previous,nxlo_out_previous,nylo_out_previous,nzlo_out_previous); if (aveflag == RUNNING || aveflag == WINDOW)