Skip to main content

FluidFFT

Efficient and easy Fast Fourier Transform for Python

Latest version Supported Python versions Documentation status Code coverage Heptapod CI Github Actions Linux Github Actions Pixi

Fluidfft provides C++ classes and their Python wrapper classes written in Cython useful to perform Fast Fourier Transform (FFT) with different libraries, in particular

pfft, p3dfft and mpi4py-fft are specialized in computing FFT efficiently on several cores of big clusters. The data can be split in pencils and can be distributed on several processes.

Documentation: https://fluidfft.readthedocs.io

Getting started

To try fluidfft without installation: Binder notebook

For a basic installation which relies only on a pyFFTW interface; or provided you have the optional FFT libaries, that you need, installed and discoverable in your path (see environment variables LIBRARY_PATH, LD_LIBRARY_PATH, CPATH) it should be sufficient to run:

pip install fluidfft [--user]

Add --user flag if you are installing without setting up a virtual environment.

Installation

To take full advantage of fluidfft, consider installing the following (optional) dependencies and configurations before installing fluidfft. Click on the links to know more:

  1. OpenMPI or equivalent
  2. FFT libraries such as MPI-enabled FFTW (for 2D and 3D solvers) and P3DFFT, PFFT (for 3D solvers) either using a package manager or from source
  3. Python packages fluiddyn cython pyfftw pythran mpi4py
  4. A C++11 compiler and BLAS libraries and configure ~/.pythranrc to customize compilation of Pythran extensions
  5. Configure ~/.fluidfft-site.cfg to detect the FFT libraries and install fluidfft

Note: Detailed instructions to install the above dependencies using Anaconda / Miniconda or in a specific operating system such as Ubuntu, macOS etc. can be found here.

C++ API

See a working minimal example with Makefile which illustrates how to use the C++ API.

Tests

From the root directory:

make tests
make tests_mpi

Or, from the root directory or any of the "test" directories:

pytest -s
mpirun -np 2 pytest -s

How does it work?

Fluidfft provides classes to use in a transparent way all these libraries with an unified API. These classes are not limited to just performing Fourier transforms. They are also an elegant solution to efficiently perform operations on data in real and spectral spaces (gradient, divergence, rotational, sum over wavenumbers, computation of spectra, etc.) and easily deal with the data distribution (gather the data on one process, scatter the data to many processes) without having to know the internal organization of every FFT library.

Fluidfft hides the internal complication of (distributed) FFT libraries and allows the user to find (by benchmarking) and to choose the most efficient solution for a particular case. Fluidfft is therefore a very useful tool to write HPC applications using FFT, as for example pseudo-spectral simulation codes. In particular, fluidfft is used in the Computational Fluid Dynamics (CFD) framework fluidsim.

License

Fluidfft is distributed under the CeCILL License, a GPL compatible french license.

Metapapers and citations

If you use FluidFFT to produce scientific articles, please cite our metapapers presenting the FluidDyn project and Fluidfft:

Release files for fluidfft 0.4.0.post1

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

Source distribution (sdist)

Source distribution for fluidfft 0.4.0.post1
File Size Uploaded
fluidfft-0.4.0.post1.tar.gz 426.6 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for fluidfft 0.4.0.post1
File
fluidfft-0.4.0.post1-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
fluidfft-0.4.0.post1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64 Details
fluidfft-0.4.0.post1-cp312-cp312-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.12+ x86-64, Linux glibc 2.17+ x86-64 Details
fluidfft-0.4.0.post1-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
fluidfft-0.4.0.post1-cp312-cp312-macosx_10_9_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.9+ x86-64 Details
fluidfft-0.4.0.post1-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
fluidfft-0.4.0.post1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64 Details
fluidfft-0.4.0.post1-cp311-cp311-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.12+ x86-64, Linux glibc 2.17+ x86-64 Details
fluidfft-0.4.0.post1-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
fluidfft-0.4.0.post1-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details
fluidfft-0.4.0.post1-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
fluidfft-0.4.0.post1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ ARM64 Details
fluidfft-0.4.0.post1-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.12+ x86-64, Linux glibc 2.17+ x86-64 Details
fluidfft-0.4.0.post1-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
fluidfft-0.4.0.post1-cp310-cp310-macosx_10_9_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.9+ x86-64 Details
fluidfft-0.4.0.post1-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
fluidfft-0.4.0.post1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ ARM64 Details
fluidfft-0.4.0.post1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.12+ x86-64, Linux glibc 2.17+ x86-64 Details
fluidfft-0.4.0.post1-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details
fluidfft-0.4.0.post1-cp39-cp39-macosx_10_9_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.9+ x86-64 Details

Total release size: 5.5 MB

Release files / fluidfft-0.4.0.post1.tar.gz

Download URL fluidfft-0.4.0.post1.tar.gz
Size 426.6 kB
Tags Source
SHA-256 checksum
How to use checksums
70791c92f43d7611c5db89d069e745875fca9be02948156a6c1b184fbc87cb4d
BLAKE2b-256 checksum
How to use checksums
88d9a6495c684a64e2e0c88d64e2e9551b23ba415e6d69539b4e01edb2efbba8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.0.0 CPython/3.12.2

Release files / fluidfft-0.4.0.post1-cp312-cp312-win_amd64.whl

Download URL fluidfft-0.4.0.post1-cp312-cp312-win_amd64.whl
Size 235.1 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
2dd87c79091fa939f66cc18215a855f9ef20033a57d06196d69d29e6347840c1
BLAKE2b-256 checksum
How to use checksums
ecf1e56ba3c71c47bca603552150bb1e2e7e60ec691fac5db299cc15976f0c5f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.0.0 CPython/3.12.2

Release files / fluidfft-0.4.0.post1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL fluidfft-0.4.0.post1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 212.8 kB
Tags CPython 3.12 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
cdab2ae0e091adb00999d0d382ce8e30fa4e77291142de910fbdcdadec1990f0
BLAKE2b-256 checksum
How to use checksums
814aad0a47473063a8450c10855c1fa5dd0b2e73273d10e178d90c468aaf814c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.0.0 CPython/3.12.2

Release files / fluidfft-0.4.0.post1-cp312-cp312-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL fluidfft-0.4.0.post1-cp312-cp312-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 231.9 kB
Tags CPython 3.12 Linux glibc 2.12+ x86-64 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
b57041a38cf4d43bbd91ad3f591652332e9930033a012cd6490bcc91f3f8fe32
BLAKE2b-256 checksum
How to use checksums
7e9fa15e667f9b1e472be2555b5aea2e99fbcf405b998d83feb7380f68d485b1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.0.0 CPython/3.12.2

Release files / fluidfft-0.4.0.post1-cp312-cp312-macosx_11_0_arm64.whl

Download URL fluidfft-0.4.0.post1-cp312-cp312-macosx_11_0_arm64.whl
Size 284.1 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
226cdeb99e559cb40d00c7fda8ae42a3ea3fc678413f182888bf52aa2ba451db
BLAKE2b-256 checksum
How to use checksums
aa853d80aa2bd2e5b298179bea9801815100d46a4301bfee68ae173bd197a273
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.0.0 CPython/3.12.2

Release files / fluidfft-0.4.0.post1-cp312-cp312-macosx_10_9_x86_64.whl

Download URL fluidfft-0.4.0.post1-cp312-cp312-macosx_10_9_x86_64.whl
Size 311.9 kB
Tags CPython 3.12 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
bff1b2a683ad8ca3571fc4e6adc53ba27db7f19f99ccfa6cc366d9182af71f52
BLAKE2b-256 checksum
How to use checksums
be9aaaec456cb5f5b5cfdd7faa18912a8372c26e2b9dbc2a689eb1158528ae4c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.0.0 CPython/3.12.2

Release files / fluidfft-0.4.0.post1-cp311-cp311-win_amd64.whl

Download URL fluidfft-0.4.0.post1-cp311-cp311-win_amd64.whl
Size 234.9 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
2e314ba8df1572d5ee83bb8bafff8d59ae7c51c928fdb597b4e0af92098c57a3
BLAKE2b-256 checksum
How to use checksums
ea38c2ce72d4ea9bf39173ad62fd012c8aefad9bbce10df41081e1e7be32be4f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.0.0 CPython/3.12.2

Release files / fluidfft-0.4.0.post1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL fluidfft-0.4.0.post1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 209.6 kB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
c3d604530b6292002131971d5ac19ee1c38a77fdd778fd51fa6c9a415f2c3a25
BLAKE2b-256 checksum
How to use checksums
f4270373f88891cc4aee41f7b50c44fe8cb2b972c5a35fff6c0e33bebd4f7e23
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.0.0 CPython/3.12.2

Release files / fluidfft-0.4.0.post1-cp311-cp311-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL fluidfft-0.4.0.post1-cp311-cp311-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 232.9 kB
Tags CPython 3.11 Linux glibc 2.12+ x86-64 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
e83650ec76a74ef5c272f5b29501d92614bb755aaa1c3dc102a48db1b4938112
BLAKE2b-256 checksum
How to use checksums
4131fcef9bcf82fb38559f6f00f47931eada40a3f53353d03d60bab300586051
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.0.0 CPython/3.12.2

Release files / fluidfft-0.4.0.post1-cp311-cp311-macosx_11_0_arm64.whl

Download URL fluidfft-0.4.0.post1-cp311-cp311-macosx_11_0_arm64.whl
Size 281.5 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7689c293f3467986a992dbe778f0a5e7cea315ef53c3b25a9c4578a06c8b5abc
BLAKE2b-256 checksum
How to use checksums
f4bb034162236f2b368115a28c562185a0bc7be0d2d33d8bf77c62e13a63392e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.0.0 CPython/3.12.2

Release files / fluidfft-0.4.0.post1-cp311-cp311-macosx_10_9_x86_64.whl

Download URL fluidfft-0.4.0.post1-cp311-cp311-macosx_10_9_x86_64.whl
Size 308.8 kB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
1c7e1ee37b141b38f19b1da9a0f849cbccf414a847cb91b2ec418a3117a7d76c
BLAKE2b-256 checksum
How to use checksums
f396ff92f4e24a21e88b28ab543458fb48695465540b9b07cd4dfd4230d2c43f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.0.0 CPython/3.12.2

Release files / fluidfft-0.4.0.post1-cp310-cp310-win_amd64.whl

Download URL fluidfft-0.4.0.post1-cp310-cp310-win_amd64.whl
Size 234.9 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
447421cf80a649bc1cf97787b48912a0eece494136279d7d62b36641c8f74d3c
BLAKE2b-256 checksum
How to use checksums
a3167aeb8d31677024ef1c855ad38098d7c5cdae4e90dfdc0899902ed2c9abbb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.0.0 CPython/3.12.2

Release files / fluidfft-0.4.0.post1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL fluidfft-0.4.0.post1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 209.5 kB
Tags CPython 3.10 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
37ce4caeccf1a465568835152bf94dc81716e0a241134b9481c25e72fd92e2b4
BLAKE2b-256 checksum
How to use checksums
693610eb79f592636681786864b617a89e614f274c73cdc9ba4d8ab044103438
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.0.0 CPython/3.12.2

Release files / fluidfft-0.4.0.post1-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL fluidfft-0.4.0.post1-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 231.6 kB
Tags CPython 3.10 Linux glibc 2.12+ x86-64 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
6fd396b113f9400e48bd6c708e3a4d7da10dc7d0bce65bcbeaa9bc4aa275fc78
BLAKE2b-256 checksum
How to use checksums
511737b218b990ee3425160267841a1282f70d056f889bd370b21bc758077995
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.0.0 CPython/3.12.2

Release files / fluidfft-0.4.0.post1-cp310-cp310-macosx_11_0_arm64.whl

Download URL fluidfft-0.4.0.post1-cp310-cp310-macosx_11_0_arm64.whl
Size 281.5 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
8db109ee850682b68aec147834d93db37d1de7f80a40b98a42f269b96cae900c
BLAKE2b-256 checksum
How to use checksums
69a6c83c1b868583b9b161920f543463068d99d71fac5ef6900afd46c6010fcf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.0.0 CPython/3.12.2

Release files / fluidfft-0.4.0.post1-cp310-cp310-macosx_10_9_x86_64.whl

Download URL fluidfft-0.4.0.post1-cp310-cp310-macosx_10_9_x86_64.whl
Size 308.8 kB
Tags CPython 3.10 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
7dd227edc7dc598efdb0969ef4b106f3d065908cded7c8bbce50c56ae6c16742
BLAKE2b-256 checksum
How to use checksums
5afde4c0809ec45c4cbf1922d5267120811dae7338cb7d2690ee912a54b044d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.0.0 CPython/3.12.2

Release files / fluidfft-0.4.0.post1-cp39-cp39-win_amd64.whl

Download URL fluidfft-0.4.0.post1-cp39-cp39-win_amd64.whl
Size 234.8 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
7dd0d013933dc8b6d4b187fc1693d87217f6e314a368d1838c06933d66473ebf
BLAKE2b-256 checksum
How to use checksums
0b9855386d40fd25e0b251c2b4042a4fde981a4d200912d87dd29a4424ca0265
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.0.0 CPython/3.12.2

Release files / fluidfft-0.4.0.post1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL fluidfft-0.4.0.post1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 209.3 kB
Tags CPython 3.9 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
50252bf2b17cfe9be49d41119d6528ab50608217bcf0cdd450b0849091b0b8da
BLAKE2b-256 checksum
How to use checksums
0185097d7396c83bae81c76b730e61a08ba74382b86b1283c3041bebf39f4351
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.0.0 CPython/3.12.2

Release files / fluidfft-0.4.0.post1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL fluidfft-0.4.0.post1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 233.7 kB
Tags CPython 3.9 Linux glibc 2.12+ x86-64 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
683c466ce430e88d684852280e540ae1718540dc93f182f3c63e86e01c6b7be2
BLAKE2b-256 checksum
How to use checksums
04f06f299f70a8d14e72927969d216acf5bbf06c8c2055a13b1842818b61b510
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.0.0 CPython/3.12.2

Release files / fluidfft-0.4.0.post1-cp39-cp39-macosx_11_0_arm64.whl

Download URL fluidfft-0.4.0.post1-cp39-cp39-macosx_11_0_arm64.whl
Size 281.5 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ce9cc3a5f5758a80de121c8399289345508f14ddba99a3f8b556aa6484d3356e
BLAKE2b-256 checksum
How to use checksums
a2f8c151aed3c1de6af40d6c617eec120ff3d51eb2762aec739a4918bce5920f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.0.0 CPython/3.12.2

Release files / fluidfft-0.4.0.post1-cp39-cp39-macosx_10_9_x86_64.whl

Download URL fluidfft-0.4.0.post1-cp39-cp39-macosx_10_9_x86_64.whl
Size 308.8 kB
Tags CPython 3.9 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
c5d9c1ab848d1793f652731209f6ef246ce7ff1e6c3aaa25f554e1222e39eecf
BLAKE2b-256 checksum
How to use checksums
ea53d408848628b9b9a78123b0588b9229c2d8be9bf5c13fca82c98953efe958
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.0.0 CPython/3.12.2

Release history Release notifications | RSS feed

0.4.5

26 release files

0.4.4

21 release files

0.4.2

21 release files

0.4.1

21 release files

This release

0.4.0.post1 This release

21 release files

0.4.0

21 release files

0.3.5

1 release file

0.3.4

1 release file

0.3.3

1 release file

0.3.2

1 release file

0.3.1

1 release file

0.3.0

1 release file

0.2.9

1 release file

0.2.8

1 release file

0.2.7

1 release file

0.2.6

1 release file

0.2.5

1 release file

0.2.4

1 release file

0.2.3

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.2.0

1 release file

0.1.0

1 release file

0.0.1

1 release file

0.0.0

1 release file

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