skelfmm

A kernel-independent FMM without interaction lists.

https://github.com/annayesy/skelfmm

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.5%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

A kernel-independent FMM without interaction lists.

Basic Info
  • Host: GitHub
  • Owner: annayesy
  • License: mit
  • Language: Python
  • Default Branch: main
  • Size: 144 KB
Statistics
  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 1
Created over 1 year ago · Last pushed over 1 year ago
Metadata Files
Readme License Citation

README.md

skelFMM: A Simplified Kernel-Independent Fast Multipole Method (FMM)

DOI License Top language Code size Latest commit

Overview

skelFMM is a research implementation of a novel kernel-independent fast multipole method (FMM) designed for efficiently evaluating discrete convolution kernels with given source distributions. This method introduces a simplified approach that eliminates the need for explicit interaction lists by leveraging near-neighbor computations at each level of an adaptive tree structure. The algorithm is well-suited for parallelization on modern hardware and supports a wide range of kernels.

Unlike traditional FMM implementations, skelFMM simplifies data structures by operating exclusively on the near-neighbor list (limited to a maximum size of 27 in 3D) rather than the interaction list (which can reach up to 189 in 3D). This makes the implementation lightweight and efficient while retaining full compatibility with adaptive quad-tree and octree structures. The method also introduces novel translation operators to handle adaptive point distributions effectively.


Key Features

  • Simplified Data Structures: Avoids the need for complex interaction lists, reducing implementation complexity.
  • Kernel Independence: Requires only kernel evaluations, making it applicable to a wide variety of convolution kernels.
  • Parallel Efficiency: Designed for modern hardware with GPU-accelerated batched linear algebra operations.
  • Adaptive Tree Compatibility: Supports both uniform and non-uniform point distributions in 2D and 3D environments.
  • Precomputation Optimization: Constructs tailored skeleton representations during a precomputation stage for efficient runtime performance.
Interaction List Square
Interaction List Curvy Annulus

The figures show the interaction list of size at most 27 in 2D, as well as additional lists, which are typically part of traditional FMM implementations. The work reorganizes the computations involved in the kernel-independent FMM to traverse the near-neighbor list at every level of the tree, which retaining full compatatibility with adaptive tree structures.


Citation

If you use skelFMM in your research, please cite the accompanying paper:

@article{yesypenko2024simplified, title={A simplified fast multipole method based on strong recursive skeletonization}, author={Yesypenko, Anna and Chen, Chao and Martinsson, Per-Gunnar}, journal={Journal of Computational Physics}, pages={113707}, year={2024}, publisher={Elsevier} }

Owner

  • Name: Anna Yesypenko
  • Login: annayesy
  • Kind: user
  • Location: United States

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Yesypenko"
  given-names: "Anna"
  orcid: "https://orcid.org/0009-0008-1409-4075"
title: "SkelFMM: A Simplified Kernel-Independent Fast Multipole Method in Python"
version: 1.0.0
doi: 10.5281/zenodo.14613533
date-released: 2025-01-07
url: "https://github.com/annayesy/skelFMM"

GitHub Events

Total
  • Release event: 1
  • Watch event: 3
  • Public event: 1
  • Push event: 4
  • Create event: 1
Last Year
  • Release event: 1
  • Watch event: 3
  • Public event: 1
  • Push event: 4
  • Create event: 1