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
  • Both adaptive and non-adaptive tree structures
  • Multiple right-hand sides
  • Optional simultaneous evaluation of kernel values and gradients

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.


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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

ferreus_bbfmm-0.2.0-cp38-abi3-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.8+Windows x86-64

ferreus_bbfmm-0.2.0-cp38-abi3-manylinux_2_39_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.39+ x86-64

ferreus_bbfmm-0.2.0-cp38-abi3-macosx_11_0_arm64.whl (941.4 kB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

ferreus_bbfmm-0.2.0-cp38-abi3-macosx_10_12_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

Details for the file ferreus_bbfmm-0.2.0-cp38-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for ferreus_bbfmm-0.2.0-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 b7efe4d337d2d41635714a39e73b839088973685b3a5aee46883e949efd26ae5
MD5 22f16d28b9126fe1d436a39837a05c93
BLAKE2b-256 7ce335b2d41bb2b5a57d0bc0d3b77a1d932f57064871e3df874848560727d59c

See more details on using hashes here.

Provenance

The following attestation bundles were made for ferreus_bbfmm-0.2.0-cp38-abi3-win_amd64.whl:

Publisher: publish-py-ferreus-bbfmm.yml on graphic-goose/ferreus_rbf_rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ferreus_bbfmm-0.2.0-cp38-abi3-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for ferreus_bbfmm-0.2.0-cp38-abi3-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 560839ab064797c84e4d1508ae78e1d67313eb28ff5ec776add7ff312db1c199
MD5 df48a20cfdcdfe1e511ecffb8644a570
BLAKE2b-256 e340e19a3fb8abf00c3375f75828e7a9a3fbd2fb95c6f120f62cd7300dbd856c

See more details on using hashes here.

Provenance

The following attestation bundles were made for ferreus_bbfmm-0.2.0-cp38-abi3-manylinux_2_39_x86_64.whl:

Publisher: publish-py-ferreus-bbfmm.yml on graphic-goose/ferreus_rbf_rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ferreus_bbfmm-0.2.0-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ferreus_bbfmm-0.2.0-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 213a8f5968cee609d1a78342019bce2da25c5e9a2098da0b2479c1528f9bb50d
MD5 b831d25d49b8611874980c76d23beeea
BLAKE2b-256 61afcf9923d0ef98c77dc67826f0b844bd611eb22c63e375fa8ccc2127e3aae8

See more details on using hashes here.

Provenance

The following attestation bundles were made for ferreus_bbfmm-0.2.0-cp38-abi3-macosx_11_0_arm64.whl:

Publisher: publish-py-ferreus-bbfmm.yml on graphic-goose/ferreus_rbf_rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ferreus_bbfmm-0.2.0-cp38-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for ferreus_bbfmm-0.2.0-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5705805a9f6ef55908730d52cf62e69cd4c730fd1d5f22481268905de93d3be8
MD5 5dbbfe32c619cacd2eb3b8f2c7c11b5a
BLAKE2b-256 90bca92c8c4ef4847b2c28882df21b15f4080aa0d36568720a56d7e8adfb40be

See more details on using hashes here.

Provenance

The following attestation bundles were made for ferreus_bbfmm-0.2.0-cp38-abi3-macosx_10_12_x86_64.whl:

Publisher: publish-py-ferreus-bbfmm.yml on graphic-goose/ferreus_rbf_rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page