Matlab implementation of the Dual-space Multilevel Kernel-splitting (DMK) method for Stokes and Laplace potentials.
Companion code to the preprint Fast summation of Stokes potentials using a new kernel-splitting in the DMK framework by Ludvig af Klinteberg, Leslie Greengard, Shidong Jiang, and Anna-Karin Tornberg.
This is a prototype implementation of the DMK algorithm, designed to aid in understanding the algorithm and in the design of new kernels or other modifications. It is not a fast HPC code. For that, please refer to the official implementation hosted by the Flatiron Institute at https://github.com/flatironinstitute/dmk
To initialize submodules, run
git submodule update --init --recursive
- Start Matlab in root directory
initinitializes pathsruntestsruns the test suitedemo_dmkruns DMK and compares it to a direct summation. Showcases use for all kernels and free space / periodic.demo_scalingshows linear scaling- Scripts in
experiments/reproduce results from paper.
dev_scripts/: bits and pieces of code used when developing functionalityexternal/: third-party packages in the form of Git submodulessrc/: all routines needed for DMKsrc/+kernels/: kernel splittingssrc/+approx/is a package with the routines for approximation using Chebyshev functions and tensor product grids. Holds its own tests intests.mtest/: unit tests