python中高效、简便的快速傅立叶变换(fft)。
fluidfft的Python项目详细描述
Fluidfft提供C++类及其Python包装类 在不同库中执行快速傅立叶变换(FFT)时有用的cython, 尤其是
pfft和p3dfft专门用于高效计算fft 在大星系团的几个核心上。数据被分成铅笔,可以是 分布在几个进程上。
文档:https://fluidfft.readthedocs.io
开始
对于仅依赖于pyFFTW接口的基本安装;或 如果你有可选的fft库,你需要,安装和 可在路径中发现(请参见环境变量LIBRARY_PATH, LD_LIBRARY_PATH,CPATH)它应该足以运行:
pip install fluidfft [--user]
如果安装时未设置虚拟机,请添加--user标志 环境。
安装
要充分利用fluidft,请考虑安装以下组件 (可选)安装fluidft之前的依赖项和配置。点击 了解更多信息的链接:
- OpenMPI或等效软件
- fft库,如启用mpi的fftw(用于二维和三维解算器)和p3dfft, pfft(用于三维解算器)使用包管理器或from source
- python包fluiddyn mako cython pyfftw pythran mpi4py
- A C++11 compiler and BLAS libraries和 configure~/.pythranrc自定义pythran扩展的编译
- Configure~/.fluidfft-site.cfg以检测fft库并安装 fluidfft
注意:使用anaconda安装上述依赖项的详细说明 /miniconda或在特定操作系统(如ubuntu、macos等)中可以 找到here。
C++API 见working minimal example with Makefile其中
说明了如何使用C++ API。
见working minimal example with Makefile其中 说明了如何使用C++ API。
测试
从根目录:
make tests make tests_mpi
或者,从根目录或任何“test”目录:
pytest -s mpirun -np 2 pytest -s
它是如何工作的?
fluidft提供以透明方式使用的类所有这些库 一个统一的api。这些类不仅仅限于执行fourier 转变。它们也是高效执行操作的优雅解决方案 关于实空间和谱空间中的数据(梯度、散度、旋转、和 波数、谱计算等)并易于处理数据 分布(在一个进程上收集数据,将数据分散到多个 过程)而不必知道每个fft的内部组织 图书馆。
fluidft隐藏了(分布式)fft库和 允许用户查找(通过基准测试)并选择最有效的 特定情况下的解决方案。因此,fluidft是一个非常有用的工具 使用fft编写hpc应用程序,例如伪谱模拟 代码。特别是,fluidft被用于计算流体力学 (CFD)框架fluidsim。
许可证
fluidft是在CeCILL许可证下分发的,与gpl兼容 法国驾照。