From 859cbc90ef00616a59215eb5fbee608ee8bbc50e Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 2 Aug 2024 17:17:23 -0400 Subject: [PATCH] plug memory leaks --- src/KSPACE/pppm_dipole.cpp | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/KSPACE/pppm_dipole.cpp b/src/KSPACE/pppm_dipole.cpp index 99a0efd75e..a0676cc56e 100644 --- a/src/KSPACE/pppm_dipole.cpp +++ b/src/KSPACE/pppm_dipole.cpp @@ -613,8 +613,7 @@ void PPPMDipole::allocate() memory->create2d_offset(rho1d,3,-order/2,order/2,"pppm_dipole:rho1d"); memory->create2d_offset(drho1d,3,-order/2,order/2,"pppm_dipole:drho1d"); memory->create2d_offset(rho_coeff,order,(1-order)/2,order/2,"pppm_dipole:rho_coeff"); - memory->create2d_offset(drho_coeff,order,(1-order)/2,order/2, - "pppm_dipole:drho_coeff"); + memory->create2d_offset(drho_coeff,order,(1-order)/2,order/2,"pppm_dipole:drho_coeff"); // create 2 FFTs and a Remap // 1st FFT keeps data in FFT decomposition @@ -669,8 +668,23 @@ void PPPMDipole::deallocate() memory->destroy(densityy_fft_dipole); memory->destroy(densityz_fft_dipole); + memory->destroy(density_fft); + memory->destroy(greensfn); + memory->destroy(work1); + memory->destroy(work2); memory->destroy(work3); memory->destroy(work4); + memory->destroy(vg); + + memory->destroy1d_offset(fkx,nxlo_fft); + memory->destroy1d_offset(fky,nylo_fft); + memory->destroy1d_offset(fkz,nzlo_fft); + + memory->destroy(gf_b); + memory->destroy2d_offset(rho1d,-order_allocated/2); + memory->destroy2d_offset(drho1d,-order_allocated/2); + memory->destroy2d_offset(rho_coeff,(1-order_allocated)/2); + memory->destroy2d_offset(drho_coeff,(1-order_allocated)/2); delete fft1; delete fft2; @@ -678,6 +692,7 @@ void PPPMDipole::deallocate() fft1 = fft2 = nullptr; remap = nullptr; + gf_b = nullptr; } /* ----------------------------------------------------------------------