Skip to main content

Black Box Fast Multipole Method (BBFMM)

This crate is a parallel implementation of the Black Box Fast Multipole Method in Rust.

BBFMM is a kernel-independent, hierarchical algorithm for rapidly evaluating all pairwise interactions in a collection of particles.

While originally developed for radial basis function (RBF) interpolation problems, ferreus_bbfmm has been generalised to support a broad range of FMM use cases where the kernel is smooth (i.e. non-oscillatory).


Features

  • 1D (binary tree), 2D (quadtree) and 3D (octree)
  • Optimised low-rank M2L interactions that leverage symmetries and compression
  • Adaptive tree structure
  • Multiple right-hand sides
  • Optional simultaneous evaluation of kernel values and gradients
  • Regular target grids stored as axis metadata, with target-aware tree refinement

Install

pip install ferreus_bbfmm

Then in Python:

import ferreus_bbfmm

See the docs and examples/ directories in this package for more detailed usage and API documentation.

A regular grid can be reused to guide tree refinement and evaluate values or gradients:

from ferreus_bbfmm import TargetGrid

grid = TargetGrid.from_spacing(
    [-1.0, -1.0, -1.0, 1.0, 1.0, 1.0],
    [0.1, 0.1, 0.1],
)
# When constructing FmmTree, pass target_grid=grid and sparse=False.
# After tree.set_weights(weights):
# values, gradients = tree.evaluate_grid_with_gradients(weights, grid)

See examples/grid_evaluator.py for a complete example.


Attribution and licensing

This package was developed while the author was working at Maptek and has been approved for open‑source distribution under the terms of the MIT license.

Unless otherwise stated, the following copyright applies:

Copyright (c) 2025 Maptek Pty Ltd.
All rights reserved.

This copyright applies to all files in this repository, whether or not an individual file contains an explicit notice.

The code is released under the MIT License – see the top‑level LICENSE file for details.


References

  1. Fong, W., & Darve, E. (2009). The black-box fast multipole method. Journal of Computational Physics, 228(23), 8712–8725.
  2. Messner, M., Bramas, B., Coulaud, O., & Darve, E. (2012). Optimized M2L kernels for the Chebyshev interpolation-based fast multipole method.
  3. Pouransari, H., & Darve, E. (2015). Optimizing the adaptive fast multipole method for fractal sets. SIAM Journal on Scientific Computing, 37, A1040–A1066.

Metadata

Release files for ferreus-bbfmm 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for ferreus-bbfmm 0.3.0
File Actions
ferreus_bbfmm-0.3.0-cp38-abi3-win_amd64.whl CPython 3.8 abi3 Windows x86-64 Details for ferreus_bbfmm-0.3.0-cp38-abi3-win_amd64.whl
ferreus_bbfmm-0.3.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.8 abi3 Linux glibc 2.17+ x86-64 Details for ferreus_bbfmm-0.3.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
ferreus_bbfmm-0.3.0-cp38-abi3-macosx_11_0_arm64.whl CPython 3.8 abi3 macOS 11.0+ ARM64 Details for ferreus_bbfmm-0.3.0-cp38-abi3-macosx_11_0_arm64.whl
ferreus_bbfmm-0.3.0-cp38-abi3-macosx_10_12_x86_64.whl CPython 3.8 abi3 macOS 10.12+ x86-64 Details for ferreus_bbfmm-0.3.0-cp38-abi3-macosx_10_12_x86_64.whl

Total release size: 8.1 MB

Release files / ferreus_bbfmm-0.3.0-cp38-abi3-win_amd64.whl

Download URL ferreus_bbfmm-0.3.0-cp38-abi3-win_amd64.whl
Size 2.2 MB
Tags CPython 3.8 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
c2ca84cd716e42f6771fc136fa563d102b12a26419cf1938e903a9921f396abd
BLAKE2b-256 checksum
How to use checksums
f4546b5faa9fde4228a85e1bb94be63d800fc7966bc9ab62f550cbd5478e3bc6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

Release files / ferreus_bbfmm-0.3.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL ferreus_bbfmm-0.3.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.3 MB
Tags CPython 3.8 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
800677170152f2a29b24991b2181926fc97b34ebf36f3e52d6441c3d297b8f00
BLAKE2b-256 checksum
How to use checksums
33ea4a042f0195a8e8909456b3b3a055d205500c57c75883d6315582014ec611
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

Release files / ferreus_bbfmm-0.3.0-cp38-abi3-macosx_11_0_arm64.whl

Download URL ferreus_bbfmm-0.3.0-cp38-abi3-macosx_11_0_arm64.whl
Size 1.6 MB
Tags CPython 3.8 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
37ac10786d365655d93a655895718f7c4102076f9cfe4c56299acb8c0a66ebea
BLAKE2b-256 checksum
How to use checksums
6a69cf2c8761dff1d33fda183b2df0bcf679b6d634379264e0283682bd317c19
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

Release files / ferreus_bbfmm-0.3.0-cp38-abi3-macosx_10_12_x86_64.whl

Download URL ferreus_bbfmm-0.3.0-cp38-abi3-macosx_10_12_x86_64.whl
Size 2.1 MB
Tags CPython 3.8 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
c129b31307a22d6a4b564ff4739262d889e44525994c7f46236fc20ae65d93a8
BLAKE2b-256 checksum
How to use checksums
ac07fc6379e83279f2a8362a408593c6656adef3363d6dda1c7f63a80d89f38f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

Security for ferreus-bbfmm 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 4 files in this release have been uploaded with provenance metadata.

Select from 4 files

Attestation for ferreus_bbfmm-0.3.0-cp38-abi3-win_amd64.whl

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.3.0 This release

4 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page