fluidsim
使用 Python 进行计算流体力学(CFD)仿真的框架。在运行流体动力学仿真(包括纳维-斯托克斯方程(二维/三维)、浅水方程、分层流)或分析湍流、涡动力学或地球物理流动时使用。提供基于 FFT 的准谱方法、支持高性能计算(HPC),并具备全面的输出分析功能。
FluidSim - 高性能 Python 计算流体力学框架
技能概述
FluidSim 是一个面向对象的 Python 高性能计算流体力学(CFD)框架,提供基于伪谱方法和 FFT 的周期域方程求解器,在保持 Python 易用性的同时实现接近 Fortran/C++ 的计算性能。
适用场景
1. 湍流与涡旋动力学研究
当需要研究 2D 或 3D 湍流、涡旋演化、能量级联等现象时,FluidSim 提供完整的 Navier-Stokes 求解器,支持从低分辨率验证到高分辨率生产运行的完整工作流。内置的能谱分析和空间统计工具可直接用于湍流特征分析。
2. 海洋与大气流动模拟
对于分层流动、浅水方程模拟、地球物理流动等场景,FluidSim 提供专门的求解器(如 ns2d.strat、sw1l),支持 Brunt-Väisälä 频率、科氏力等关键参数配置,适用于海洋学和大气科学研究。
3. 高性能计算与并行仿真
需要在超算集群或工作站上运行大规模流体仿真时,FluidSim 支持 MPI 并行计算,通过 Pythran/Transonic 编译加速,配合参数化研究功能可高效完成多组参数的批量仿真任务。
核心功能
1. 多方程求解器系统
提供 2D/3D Navier-Stokes、分层流、浅水方程等多种求解器,统一的工作流程和参数配置接口。每个求解器针对特定物理问题优化,支持噪声场、偶极子、涡旋等多种初始条件类型,并可通过 in_script 模式自定义初始场。
2. 高性能数值计算
基于伪谱方法和 FFT 实现高精度空间离散,通过 Pythran/Transonic JIT 编译将 Python 代码编译为机器码,在关键计算路径实现接近编译语言的性能。支持 MPI 并行,可运行数百个进程的大规模仿真。
3. 完整仿真与分析工作流
从参数配置、仿真执行到结果分析的完整链条。参数对象支持层级化访问和类型检查,防止配置错误。仿真过程中自动保存物理场、空间统计、能谱等多种输出。支持加载历史数据进行后处理分析,并提供 Python 绘图接口和 ParaView/VisIt 高级可视化支持。
常见问题
FluidSim 是免费的吗?需要许可证吗?
FluidSim 采用 CeCILL 免费软件许可证,完全开源免费,不需要任何许可证费用。相比商业 CFD 软件(如 ANSYS Fluent、COMSOL),FluidSim 没有许可证管理开销,可自由在个人电脑、工作站和超算集群上部署使用。
Python 写的 CFD 工具性能会不会太慢?
FluidSim 通过多项技术保证高性能:核心计算使用伪谱方法和 FFT 实现;关键路径通过 Pythran/Transonic 编译为优化机器码;支持 MPI 并行计算。实测性能接近传统 Fortran/C++ 实现,同时保留 Python 的易用性和灵活性。对于典型 2D 湍流模拟,512×512 网格可在合理时间内完成长时间积分。
如何在超算集群上运行 FluidSim 并行计算?
安装时需启用 MPI 支持:uv pip install "fluidsim[fft,mpi]"。准备仿真脚本后,通过 mpirun -np N 启动并行任务。FluidSim 自动处理域分解和通信,参数配置与单进程完全相同。建议根据求解器维度和总网格点数选择进程数(3D 模拟可使用更多进程),并通过 params.output 系列参数控制输出频率以平衡 I/O 开销。