ddsolvation / ddX

Fast continuum solvation based on domain decomposition
https://ddsolvation.github.io/ddX/
GNU Lesser General Public License v3.0
20 stars 3 forks source link

Invalid memory access if FMM used and forces computed #18

Closed mfherbst closed 3 years ago

mfherbst commented 3 years ago

Reproducer Input.txt:

0           ! Printing flag. The larger, the more verbose the output
1           ! Number of OpenMP cores to be used
2           ! Model. 1 for COSMO, 2 for PCM and 3 for LPB
7          ! Maximal degree of modeling spherical harmonics
302         ! Approximate number of Lebedev grid points
78.3553     ! Dielectric permittivity constant
0.0         ! Shift of the regularized characteristic function
0.1         ! Regularization parameter
0.0         ! Debye H\"{u}ckel parameter
1           ! Jacobi/DIIS iterative solver
1d-14       ! Relative threshold for the iterative solver
200         ! Maximum number of iterations
25          ! Number of DIIS extrapolation points
1           ! Whether to compute (1) or not (0) forces
1           ! Whether to use (1) or not (0) the FMM
20          ! Max degree of multipole spherical harmonics for the FMM
20          ! Max degree of local spherical harmonics for the FMM
1           ! Whether to precompute (1) or not (0) the FMM translations
12          ! number of spheres
-0.04192   0.00000   2.29035   1.32281   4.00253
-0.04192   0.00000   2.29035  -1.32281   4.00253
-0.04198   0.00000   0.00000  -2.64562   4.00253
-0.04192   0.00000  -2.29035  -1.32281   4.00253
-0.04192   0.00000  -2.29035   1.32281   4.00253
-0.04198   0.00000   0.00000   2.64562   4.00253
 0.04193   0.00103   4.05914   2.34326   2.99956
 0.04193   0.00103   4.05914  -2.34326   2.99956
 0.04197   0.00000   0.00000  -4.68652   2.99956
 0.04193  -0.00103  -4.05914  -2.34326   2.99956
 0.04193  -0.00103  -4.05914   2.34326   2.99956
 0.04197   0.00000   0.00000   4.68652   2.99956

Then run

valgrind ddx_driver  Input.txt

yields

==1201962== Memcheck, a memory error detector
==1201962== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==1201962== Using Valgrind-3.16.1 and LibVEX; rerun with -h for copyright info
==1201962== Command: ./build_ft/src/ddx_driver tests/Input.txt
==1201962== 
 Using provided file tests/Input.txt as a config file
mkrhs time: 1.0646E+00 seconds
==1201962== Invalid write of size 8
==1201962==    at 0x4909270: __ddx_core_MOD_fmm_m2p_work (ddx_core.f90:3964)
==1201962==    by 0x49473F1: __ddx_operators_MOD_gradr_fmm (ddx_operators.f90:1343)
==1201962==    by 0x4951480: __ddx_operators_MOD_gradr (ddx_operators.f90:800)
==1201962==    by 0x4979509: __ddx_MOD_ddpcm (ddx.f90:346)
==1201962==    by 0x4987230: __ddx_MOD_ddsolve (ddx.f90:44)
==1201962==    by 0x109FF7: MAIN__ (ddx_driver.f90:51)
==1201962==    by 0x10A687: main (ddx_driver.f90:13)
==1201962==  Address 0x7c19dc0 is 0 bytes after a block of size 64 alloc'd
==1201962==    at 0x483877F: malloc (vg_replace_malloc.c:307)
==1201962==    by 0x493EB81: __ddx_operators_MOD_gradr_fmm (ddx_operators.f90:1136)
==1201962==    by 0x4951480: __ddx_operators_MOD_gradr (ddx_operators.f90:800)
==1201962==    by 0x4979509: __ddx_MOD_ddpcm (ddx.f90:346)
==1201962==    by 0x4987230: __ddx_MOD_ddsolve (ddx.f90:44)
==1201962==    by 0x109FF7: MAIN__ (ddx_driver.f90:51)
==1201962==    by 0x10A687: main (ddx_driver.f90:13)
==1201962== 
==1201962== Invalid read of size 8
==1201962==    at 0x4909676: __ddx_core_MOD_fmm_m2p_work (ddx_core.f90:3981)
==1201962==    by 0x49473F1: __ddx_operators_MOD_gradr_fmm (ddx_operators.f90:1343)
==1201962==    by 0x4951480: __ddx_operators_MOD_gradr (ddx_operators.f90:800)
==1201962==    by 0x4979509: __ddx_MOD_ddpcm (ddx.f90:346)
==1201962==    by 0x4987230: __ddx_MOD_ddsolve (ddx.f90:44)
==1201962==    by 0x109FF7: MAIN__ (ddx_driver.f90:51)
==1201962==    by 0x10A687: main (ddx_driver.f90:13)
==1201962==  Address 0x7c19dc0 is 0 bytes after a block of size 64 alloc'd
==1201962==    at 0x483877F: malloc (vg_replace_malloc.c:307)
==1201962==    by 0x493EB81: __ddx_operators_MOD_gradr_fmm (ddx_operators.f90:1136)
==1201962==    by 0x4951480: __ddx_operators_MOD_gradr (ddx_operators.f90:800)
==1201962==    by 0x4979509: __ddx_MOD_ddpcm (ddx.f90:346)
==1201962==    by 0x4987230: __ddx_MOD_ddsolve (ddx.f90:44)
==1201962==    by 0x109FF7: MAIN__ (ddx_driver.f90:51)
==1201962==    by 0x10A687: main (ddx_driver.f90:13)
==1201962== 
==1201962== Invalid read of size 8
==1201962==    at 0x4909E66: __ddx_core_MOD_fmm_m2p_work (ddx_core.f90:4011)
==1201962==    by 0x49473F1: __ddx_operators_MOD_gradr_fmm (ddx_operators.f90:1343)
==1201962==    by 0x4951480: __ddx_operators_MOD_gradr (ddx_operators.f90:800)
==1201962==    by 0x4979509: __ddx_MOD_ddpcm (ddx.f90:346)
==1201962==    by 0x4987230: __ddx_MOD_ddsolve (ddx.f90:44)
==1201962==    by 0x109FF7: MAIN__ (ddx_driver.f90:51)
==1201962==    by 0x10A687: main (ddx_driver.f90:13)
==1201962==  Address 0x7c19dc0 is 0 bytes after a block of size 64 alloc'd
==1201962==    at 0x483877F: malloc (vg_replace_malloc.c:307)
==1201962==    by 0x493EB81: __ddx_operators_MOD_gradr_fmm (ddx_operators.f90:1136)
==1201962==    by 0x4951480: __ddx_operators_MOD_gradr (ddx_operators.f90:800)
==1201962==    by 0x4979509: __ddx_MOD_ddpcm (ddx.f90:346)
==1201962==    by 0x4987230: __ddx_MOD_ddsolve (ddx.f90:44)
==1201962==    by 0x109FF7: MAIN__ (ddx_driver.f90:51)
==1201962==    by 0x10A687: main (ddx_driver.f90:13)
==1201962== 
==1201962== Invalid read of size 8
==1201962==    at 0x4909B98: __ddx_core_MOD_fmm_m2p_work (ddx_core.f90:4004)
==1201962==    by 0x49473F1: __ddx_operators_MOD_gradr_fmm (ddx_operators.f90:1343)
==1201962==    by 0x4951480: __ddx_operators_MOD_gradr (ddx_operators.f90:800)
==1201962==    by 0x4979509: __ddx_MOD_ddpcm (ddx.f90:346)
==1201962==    by 0x4987230: __ddx_MOD_ddsolve (ddx.f90:44)
==1201962==    by 0x109FF7: MAIN__ (ddx_driver.f90:51)
==1201962==    by 0x10A687: main (ddx_driver.f90:13)
==1201962==  Address 0x7c19dc0 is 0 bytes after a block of size 64 alloc'd
==1201962==    at 0x483877F: malloc (vg_replace_malloc.c:307)
==1201962==    by 0x493EB81: __ddx_operators_MOD_gradr_fmm (ddx_operators.f90:1136)
==1201962==    by 0x4951480: __ddx_operators_MOD_gradr (ddx_operators.f90:800)
==1201962==    by 0x4979509: __ddx_MOD_ddpcm (ddx.f90:346)
==1201962==    by 0x4987230: __ddx_MOD_ddsolve (ddx.f90:44)
==1201962==    by 0x109FF7: MAIN__ (ddx_driver.f90:51)
==1201962==    by 0x10A687: main (ddx_driver.f90:13)
==1201962== 
==1201962== Invalid read of size 8
==1201962==    at 0x490A148: __ddx_core_MOD_fmm_m2p_work (ddx_core.f90:4024)
==1201962==    by 0x49473F1: __ddx_operators_MOD_gradr_fmm (ddx_operators.f90:1343)
==1201962==    by 0x4951480: __ddx_operators_MOD_gradr (ddx_operators.f90:800)
==1201962==    by 0x4979509: __ddx_MOD_ddpcm (ddx.f90:346)
==1201962==    by 0x4987230: __ddx_MOD_ddsolve (ddx.f90:44)
==1201962==    by 0x109FF7: MAIN__ (ddx_driver.f90:51)
==1201962==    by 0x10A687: main (ddx_driver.f90:13)
==1201962==  Address 0x7c19dc0 is 0 bytes after a block of size 64 alloc'd
==1201962==    at 0x483877F: malloc (vg_replace_malloc.c:307)
==1201962==    by 0x493EB81: __ddx_operators_MOD_gradr_fmm (ddx_operators.f90:1136)
==1201962==    by 0x4951480: __ddx_operators_MOD_gradr (ddx_operators.f90:800)
==1201962==    by 0x4979509: __ddx_MOD_ddpcm (ddx.f90:346)
==1201962==    by 0x4987230: __ddx_MOD_ddsolve (ddx.f90:44)
==1201962==    by 0x109FF7: MAIN__ (ddx_driver.f90:51)
==1201962==    by 0x10A687: main (ddx_driver.f90:13)
==1201962== 
==1201962== Invalid write of size 8
==1201962==    at 0x4909270: __ddx_core_MOD_fmm_m2p_work (ddx_core.f90:3964)
==1201962==    by 0x4947B73: __ddx_operators_MOD_gradr_fmm (ddx_operators.f90:1349)
==1201962==    by 0x4951480: __ddx_operators_MOD_gradr (ddx_operators.f90:800)
==1201962==    by 0x4979509: __ddx_MOD_ddpcm (ddx.f90:346)
==1201962==    by 0x4987230: __ddx_MOD_ddsolve (ddx.f90:44)
==1201962==    by 0x109FF7: MAIN__ (ddx_driver.f90:51)
==1201962==    by 0x10A687: main (ddx_driver.f90:13)
==1201962==  Address 0x7c19dc0 is 0 bytes after a block of size 64 alloc'd
==1201962==    at 0x483877F: malloc (vg_replace_malloc.c:307)
==1201962==    by 0x493EB81: __ddx_operators_MOD_gradr_fmm (ddx_operators.f90:1136)
==1201962==    by 0x4951480: __ddx_operators_MOD_gradr (ddx_operators.f90:800)
==1201962==    by 0x4979509: __ddx_MOD_ddpcm (ddx.f90:346)
==1201962==    by 0x4987230: __ddx_MOD_ddsolve (ddx.f90:44)
==1201962==    by 0x109FF7: MAIN__ (ddx_driver.f90:51)
==1201962==    by 0x10A687: main (ddx_driver.f90:13)
==1201962== 
==1201962== Invalid read of size 8
==1201962==    at 0x4909676: __ddx_core_MOD_fmm_m2p_work (ddx_core.f90:3981)
==1201962==    by 0x4947B73: __ddx_operators_MOD_gradr_fmm (ddx_operators.f90:1349)
==1201962==    by 0x4951480: __ddx_operators_MOD_gradr (ddx_operators.f90:800)
==1201962==    by 0x4979509: __ddx_MOD_ddpcm (ddx.f90:346)
==1201962==    by 0x4987230: __ddx_MOD_ddsolve (ddx.f90:44)
==1201962==    by 0x109FF7: MAIN__ (ddx_driver.f90:51)
==1201962==    by 0x10A687: main (ddx_driver.f90:13)
==1201962==  Address 0x7c19dc0 is 0 bytes after a block of size 64 alloc'd
==1201962==    at 0x483877F: malloc (vg_replace_malloc.c:307)
==1201962==    by 0x493EB81: __ddx_operators_MOD_gradr_fmm (ddx_operators.f90:1136)
==1201962==    by 0x4951480: __ddx_operators_MOD_gradr (ddx_operators.f90:800)
==1201962==    by 0x4979509: __ddx_MOD_ddpcm (ddx.f90:346)
==1201962==    by 0x4987230: __ddx_MOD_ddsolve (ddx.f90:44)
==1201962==    by 0x109FF7: MAIN__ (ddx_driver.f90:51)
==1201962==    by 0x10A687: main (ddx_driver.f90:13)
==1201962== 
==1201962== Invalid read of size 8
==1201962==    at 0x4909E66: __ddx_core_MOD_fmm_m2p_work (ddx_core.f90:4011)
==1201962==    by 0x4947B73: __ddx_operators_MOD_gradr_fmm (ddx_operators.f90:1349)
==1201962==    by 0x4951480: __ddx_operators_MOD_gradr (ddx_operators.f90:800)
==1201962==    by 0x4979509: __ddx_MOD_ddpcm (ddx.f90:346)
==1201962==    by 0x4987230: __ddx_MOD_ddsolve (ddx.f90:44)
==1201962==    by 0x109FF7: MAIN__ (ddx_driver.f90:51)
==1201962==    by 0x10A687: main (ddx_driver.f90:13)
==1201962==  Address 0x7c19dc0 is 0 bytes after a block of size 64 alloc'd
==1201962==    at 0x483877F: malloc (vg_replace_malloc.c:307)
==1201962==    by 0x493EB81: __ddx_operators_MOD_gradr_fmm (ddx_operators.f90:1136)
==1201962==    by 0x4951480: __ddx_operators_MOD_gradr (ddx_operators.f90:800)
==1201962==    by 0x4979509: __ddx_MOD_ddpcm (ddx.f90:346)
==1201962==    by 0x4987230: __ddx_MOD_ddsolve (ddx.f90:44)
==1201962==    by 0x109FF7: MAIN__ (ddx_driver.f90:51)
==1201962==    by 0x10A687: main (ddx_driver.f90:13)
==1201962== 
==1201962== Invalid read of size 8
==1201962==    at 0x4909B98: __ddx_core_MOD_fmm_m2p_work (ddx_core.f90:4004)
==1201962==    by 0x4947B73: __ddx_operators_MOD_gradr_fmm (ddx_operators.f90:1349)
==1201962==    by 0x4951480: __ddx_operators_MOD_gradr (ddx_operators.f90:800)
==1201962==    by 0x4979509: __ddx_MOD_ddpcm (ddx.f90:346)
==1201962==    by 0x4987230: __ddx_MOD_ddsolve (ddx.f90:44)
==1201962==    by 0x109FF7: MAIN__ (ddx_driver.f90:51)
==1201962==    by 0x10A687: main (ddx_driver.f90:13)
==1201962==  Address 0x7c19dc0 is 0 bytes after a block of size 64 alloc'd
==1201962==    at 0x483877F: malloc (vg_replace_malloc.c:307)
==1201962==    by 0x493EB81: __ddx_operators_MOD_gradr_fmm (ddx_operators.f90:1136)
==1201962==    by 0x4951480: __ddx_operators_MOD_gradr (ddx_operators.f90:800)
==1201962==    by 0x4979509: __ddx_MOD_ddpcm (ddx.f90:346)
==1201962==    by 0x4987230: __ddx_MOD_ddsolve (ddx.f90:44)
==1201962==    by 0x109FF7: MAIN__ (ddx_driver.f90:51)
==1201962==    by 0x10A687: main (ddx_driver.f90:13)
==1201962== 
==1201962== Invalid read of size 8
==1201962==    at 0x490A148: __ddx_core_MOD_fmm_m2p_work (ddx_core.f90:4024)
==1201962==    by 0x4947B73: __ddx_operators_MOD_gradr_fmm (ddx_operators.f90:1349)
==1201962==    by 0x4951480: __ddx_operators_MOD_gradr (ddx_operators.f90:800)
==1201962==    by 0x4979509: __ddx_MOD_ddpcm (ddx.f90:346)
==1201962==    by 0x4987230: __ddx_MOD_ddsolve (ddx.f90:44)
==1201962==    by 0x109FF7: MAIN__ (ddx_driver.f90:51)
==1201962==    by 0x10A687: main (ddx_driver.f90:13)
==1201962==  Address 0x7c19dc0 is 0 bytes after a block of size 64 alloc'd
==1201962==    at 0x483877F: malloc (vg_replace_malloc.c:307)
==1201962==    by 0x493EB81: __ddx_operators_MOD_gradr_fmm (ddx_operators.f90:1136)
==1201962==    by 0x4951480: __ddx_operators_MOD_gradr (ddx_operators.f90:800)
==1201962==    by 0x4979509: __ddx_MOD_ddpcm (ddx.f90:346)
==1201962==    by 0x4987230: __ddx_MOD_ddsolve (ddx.f90:44)
==1201962==    by 0x109FF7: MAIN__ (ddx_driver.f90:51)
==1201962==    by 0x10A687: main (ddx_driver.f90:13)
==1201962== 
==1201962== Invalid write of size 8
==1201962==    at 0x4909270: __ddx_core_MOD_fmm_m2p_work (ddx_core.f90:3964)
==1201962==    by 0x49482F5: __ddx_operators_MOD_gradr_fmm (ddx_operators.f90:1355)
==1201962==    by 0x4951480: __ddx_operators_MOD_gradr (ddx_operators.f90:800)
==1201962==    by 0x4979509: __ddx_MOD_ddpcm (ddx.f90:346)
==1201962==    by 0x4987230: __ddx_MOD_ddsolve (ddx.f90:44)
==1201962==    by 0x109FF7: MAIN__ (ddx_driver.f90:51)
==1201962==    by 0x10A687: main (ddx_driver.f90:13)
==1201962==  Address 0x7c19dc0 is 0 bytes after a block of size 64 alloc'd
==1201962==    at 0x483877F: malloc (vg_replace_malloc.c:307)
==1201962==    by 0x493EB81: __ddx_operators_MOD_gradr_fmm (ddx_operators.f90:1136)
==1201962==    by 0x4951480: __ddx_operators_MOD_gradr (ddx_operators.f90:800)
==1201962==    by 0x4979509: __ddx_MOD_ddpcm (ddx.f90:346)
==1201962==    by 0x4987230: __ddx_MOD_ddsolve (ddx.f90:44)
==1201962==    by 0x109FF7: MAIN__ (ddx_driver.f90:51)
==1201962==    by 0x10A687: main (ddx_driver.f90:13)
==1201962== 
==1201962== Invalid read of size 8
==1201962==    at 0x4909676: __ddx_core_MOD_fmm_m2p_work (ddx_core.f90:3981)
==1201962==    by 0x49482F5: __ddx_operators_MOD_gradr_fmm (ddx_operators.f90:1355)
==1201962==    by 0x4951480: __ddx_operators_MOD_gradr (ddx_operators.f90:800)
==1201962==    by 0x4979509: __ddx_MOD_ddpcm (ddx.f90:346)
==1201962==    by 0x4987230: __ddx_MOD_ddsolve (ddx.f90:44)
==1201962==    by 0x109FF7: MAIN__ (ddx_driver.f90:51)
==1201962==    by 0x10A687: main (ddx_driver.f90:13)
==1201962==  Address 0x7c19dc0 is 0 bytes after a block of size 64 alloc'd
==1201962==    at 0x483877F: malloc (vg_replace_malloc.c:307)
==1201962==    by 0x493EB81: __ddx_operators_MOD_gradr_fmm (ddx_operators.f90:1136)
==1201962==    by 0x4951480: __ddx_operators_MOD_gradr (ddx_operators.f90:800)
==1201962==    by 0x4979509: __ddx_MOD_ddpcm (ddx.f90:346)
==1201962==    by 0x4987230: __ddx_MOD_ddsolve (ddx.f90:44)
==1201962==    by 0x109FF7: MAIN__ (ddx_driver.f90:51)
==1201962==    by 0x10A687: main (ddx_driver.f90:13)
==1201962== 
==1201962== Invalid read of size 8
==1201962==    at 0x4909E66: __ddx_core_MOD_fmm_m2p_work (ddx_core.f90:4011)
==1201962==    by 0x49482F5: __ddx_operators_MOD_gradr_fmm (ddx_operators.f90:1355)
==1201962==    by 0x4951480: __ddx_operators_MOD_gradr (ddx_operators.f90:800)
==1201962==    by 0x4979509: __ddx_MOD_ddpcm (ddx.f90:346)
==1201962==    by 0x4987230: __ddx_MOD_ddsolve (ddx.f90:44)
==1201962==    by 0x109FF7: MAIN__ (ddx_driver.f90:51)
==1201962==    by 0x10A687: main (ddx_driver.f90:13)
==1201962==  Address 0x7c19dc0 is 0 bytes after a block of size 64 alloc'd
==1201962==    at 0x483877F: malloc (vg_replace_malloc.c:307)
==1201962==    by 0x493EB81: __ddx_operators_MOD_gradr_fmm (ddx_operators.f90:1136)
==1201962==    by 0x4951480: __ddx_operators_MOD_gradr (ddx_operators.f90:800)
==1201962==    by 0x4979509: __ddx_MOD_ddpcm (ddx.f90:346)
==1201962==    by 0x4987230: __ddx_MOD_ddsolve (ddx.f90:44)
==1201962==    by 0x109FF7: MAIN__ (ddx_driver.f90:51)
==1201962==    by 0x10A687: main (ddx_driver.f90:13)
==1201962== 
==1201962== Invalid read of size 8
==1201962==    at 0x4909B98: __ddx_core_MOD_fmm_m2p_work (ddx_core.f90:4004)
==1201962==    by 0x49482F5: __ddx_operators_MOD_gradr_fmm (ddx_operators.f90:1355)
==1201962==    by 0x4951480: __ddx_operators_MOD_gradr (ddx_operators.f90:800)
==1201962==    by 0x4979509: __ddx_MOD_ddpcm (ddx.f90:346)
==1201962==    by 0x4987230: __ddx_MOD_ddsolve (ddx.f90:44)
==1201962==    by 0x109FF7: MAIN__ (ddx_driver.f90:51)
==1201962==    by 0x10A687: main (ddx_driver.f90:13)
==1201962==  Address 0x7c19dc0 is 0 bytes after a block of size 64 alloc'd
==1201962==    at 0x483877F: malloc (vg_replace_malloc.c:307)
==1201962==    by 0x493EB81: __ddx_operators_MOD_gradr_fmm (ddx_operators.f90:1136)
==1201962==    by 0x4951480: __ddx_operators_MOD_gradr (ddx_operators.f90:800)
==1201962==    by 0x4979509: __ddx_MOD_ddpcm (ddx.f90:346)
==1201962==    by 0x4987230: __ddx_MOD_ddsolve (ddx.f90:44)
==1201962==    by 0x109FF7: MAIN__ (ddx_driver.f90:51)
==1201962==    by 0x10A687: main (ddx_driver.f90:13)
==1201962== 
==1201962== Invalid read of size 8
==1201962==    at 0x490A148: __ddx_core_MOD_fmm_m2p_work (ddx_core.f90:4024)
==1201962==    by 0x49482F5: __ddx_operators_MOD_gradr_fmm (ddx_operators.f90:1355)
==1201962==    by 0x4951480: __ddx_operators_MOD_gradr (ddx_operators.f90:800)
==1201962==    by 0x4979509: __ddx_MOD_ddpcm (ddx.f90:346)
==1201962==    by 0x4987230: __ddx_MOD_ddsolve (ddx.f90:44)
==1201962==    by 0x109FF7: MAIN__ (ddx_driver.f90:51)
==1201962==    by 0x10A687: main (ddx_driver.f90:13)
==1201962==  Address 0x7c19dc0 is 0 bytes after a block of size 64 alloc'd
==1201962==    at 0x483877F: malloc (vg_replace_malloc.c:307)
==1201962==    by 0x493EB81: __ddx_operators_MOD_gradr_fmm (ddx_operators.f90:1136)
==1201962==    by 0x4951480: __ddx_operators_MOD_gradr (ddx_operators.f90:800)
==1201962==    by 0x4979509: __ddx_MOD_ddpcm (ddx.f90:346)
==1201962==    by 0x4987230: __ddx_MOD_ddsolve (ddx.f90:44)
==1201962==    by 0x109FF7: MAIN__ (ddx_driver.f90:51)
==1201962==    by 0x10A687: main (ddx_driver.f90:13)
==1201962== 
ddsolve time: 2.4962E+01 seconds
ddsolve esolv: -1.7861285869171987E-004
 Full forces
     1  3.2906186297682656E-009  9.5502800047007764E-006  6.1217047594818095E-006
     2  3.2906186297585851E-009  9.5502800047007425E-006 -6.1217047594818196E-006
     3  5.1892285284094413E-021 -1.4879783274861509E-020 -1.0195000641966923E-005
     4 -3.2906186297712302E-009 -9.5502800047007611E-006 -6.1217047594818154E-006
     5 -3.2906186297706132E-009 -9.5502800047007425E-006  6.1217047594818137E-006
     6  1.9650147936763062E-021 -1.5678561796324327E-020  1.0195000641966904E-005
     7 -4.6797905570807783E-009 -1.2381388746162382E-005 -7.0373919752233541E-006
     8 -4.6797905570794466E-009 -1.2381388746162399E-005  7.0373919752233634E-006
     9  1.6292908243822265E-021  1.7468908735399471E-020  1.4326653348623163E-005
    10  4.6797905570832036E-009  1.2381388746162404E-005  7.0373919752233609E-006
    11  4.6797905570836205E-009  1.2381388746162382E-005 -7.0373919752233541E-006
    12  1.2158273012126621E-021  1.5250097462042740E-020 -1.4326653348623175E-005
==1201962== 
==1201962== HEAP SUMMARY:
==1201962==     in use at exit: 307,752 bytes in 12 blocks
==1201962==   total heap usage: 70,688 allocs, 70,676 frees, 81,746,439 bytes allocated
==1201962== 
==1201962== LEAK SUMMARY:
==1201962==    definitely lost: 0 bytes in 0 blocks
==1201962==    indirectly lost: 0 bytes in 0 blocks
==1201962==      possibly lost: 0 bytes in 0 blocks
==1201962==    still reachable: 307,752 bytes in 12 blocks
==1201962==         suppressed: 0 bytes in 0 blocks
==1201962== Rerun with --leak-check=full to see details of leaked memory
==1201962== 
==1201962== For lists of detected and suppressed errors, rerun with: -s
==1201962== ERROR SUMMARY: 402000 errors from 15 contexts (suppressed: 0 from 0)
mfherbst commented 3 years ago

Looks like an off by one on a loop bound for me. (1 double)

mfherbst commented 3 years ago

Sorry I should have said, this is on commit https://github.com/ACoM-Computational-Mathematics/ddX/commit/f79f5c16c9452aaeb0dc16aaef9e94f0778beaac.