exafmm / pyexafmm

Kernel Independent Fast Multipole Method in Python
https://exafmm.github.io/pyexafmm
BSD 3-Clause "New" or "Revised" License
13 stars 2 forks source link

ENH: Safer M2L computation #28

Closed skailasa closed 4 years ago

skailasa commented 4 years ago

This PR adds a safer M2L computation, as well as improved full fmm tests. This entails a change in the way the M2L operators are looked up during the main loop. A significant bug was found in the computation of hilbert keys, this has been fixed but a rigorous unit test is still missing. Furthermore, the regularisation in the computation of the inverse of the Check 2 Equivalent Kernel matrix was found to have a significant impact on the L2L operator, this needs further investigation.

Further questions remain, specifically whether there is a mistake in translating from a point to a hilbert key and back to a point. And vice versa. This will be the subject of a future PR though, and for now I am satisfied that the major bugs in the downward pass have been addressed.