python中高效、简便的快速傅立叶变换(fft)。

fluidfft的Python项目详细描述


Fluidfft提供C++类及其Python包装类 在不同库中执行快速傅立叶变换(FFT)时有用的cython, 尤其是

pfftp3dfft专门用于高效计算fft 在大星系团的几个核心上。数据被分成铅笔,可以是 分布在几个进程上。

文档https://fluidfft.readthedocs.io

开始

尝试不安装fluidft:Binder notebook

对于仅依赖于pyFFTW接口的基本安装;或 如果你有可选的fft库,你需要,安装和 可在路径中发现(请参见环境变量LIBRARY_PATHLD_LIBRARY_PATHCPATH)它应该足以运行:

pip install fluidfft [--user]

如果安装时未设置虚拟机,请添加--user标志 环境。

安装

要充分利用fluidft,请考虑安装以下组件 (可选)安装fluidft之前的依赖项和配置。点击 了解更多信息的链接:

  1. OpenMPI或等效软件
  2. fft库,如启用mpi的fftw(用于二维和三维解算器)和p3dfft, pfft(用于三维解算器)使用包管理器或from source
  3. python包fluiddyn mako cython pyfftw pythran mpi4py
  4. A C++11 compiler and BLAS librariesconfigure~/.pythranrc自定义pythran扩展的编译
  5. Configure~/.fluidfft-site.cfg以检测fft库并安装 fluidfft

注意:使用anaconda安装上述依赖项的详细说明 /miniconda或在特定操作系统(如ubuntu、macos等)中可以 找到here

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兼容 法国驾照。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java类。getResource和ClassLoader。getSystemResource:有没有理由选择其中一个而不是另一个?   在Java中以编程方式粘贴后恢复剪贴板   Java字符串到日期没有时间   JavaSpring注释:@Component起作用,@Repository不起作用   java“addScript”在HSQL中是否有最大记录计数?   java如何将值从JDialog框返回到父JFrame?   java我的模块库的用户有没有办法访问尚未导出的类?   java javac:未找到命令   java如何解决jsoup错误:无法找到请求目标的有效证书路径   类中的java作用域变量   Java中集合实现中的arraylist add()方法不起作用   java如何使用while循环和从用户接收输入来近似Pi?   java Spring安全CSRF培训模式   在安卓系统中,如何通过在警报框外单击来限制用户?