文章目录
基于FVM有限体积法, 用Python实现的CFD开源项目
以下是一些基于有限体积法(FVM)并用Python实现的CFD开源项目推荐,适合学习、二次开发或直接应用:
1. PyFOAM
- 简介:基于OpenFOAM的Python接口工具,可调用OpenFOAM的有限体积求解器,同时支持自定义Python脚本进行预处理和后处理。
- 特点:
- 直接利用OpenFOAM的高性能求解器。
- 适合熟悉Python但需要OpenFOAM功能的用户。
- GitHub:https://github.com/PyFOAM
- 适用场景:与OpenFOAM结合的混合开发。
2. PyFR
- 简介:基于Python的CFD求解器,但主要使用通量重构(Flux Reconstruction)方法,部分模块支持有限体积法。
- 特点:
- 高性能(支持GPU加速)。
- 面向可压缩流动和高精度模拟。
- GitHub:https://github.com/PyFR/PyFR
- 适用场景:高精度模拟和异构计算。
3. FiPy
- 简介:由美国国家标准与技术研究院(NIST)开发的有限体积法求解库,专注于偏微分方程(包括流体和传热问题)。
- 特点:
- 纯Python实现,易于扩展。
- 支持多物理场耦合(如Navier-Stokes、扩散方程等)。
- GitHub:https://github.com/usnistgov/fipy
- 适用场景:科研和多物理场问题。
4. OpenCFD(Python版)
- 简介:一些基于Python的轻量级FVM求解器实现,通常用于教学(如1D/2D问题)。
- 推荐实现:
- simpleCFD:https://github.com/simplecfd/simplecfd(包含Python示例)
- CFD Python:https://github.com/barbagroup/CFDPython(12步入门经典)
- 特点:代码简洁,适合初学者理解FVM核心逻辑。
5. SU2
- 简介:虽然核心是C++,但提供了完整的Python接口(通过SU2-Py),支持有限体积法求解可压缩流动、优化设计等。
- 特点:
- 工业级求解器,支持复杂几何和并行计算。
- 常用于空气动力学优化。
- GitHub:https://github.com/su2code/SU2
- 适用场景:工程应用和优化问题。
6. Dedalus Project
- 简介:基于谱方法的CFD工具,但部分模块支持有限体积离散,适合多物理场模拟。
- GitHub:https://github.com/DedalusProject/dedalus
- 特点:支持符号方程输入,适合理论研究。
7. Ocellaris
- 简介:基于FEniCS的有限体积/有限元混合求解器,主要用于多相流和自由表面流动。
- GitHub:https://bitbucket.org/ocellarisproject/ocellaris/src/master/
- 特点:结合FVM和FEM的优势。
其他资源
-
CFD Python(12步教程):
https://github.com/barbagroup/CFDPython
经典的Jupyter Notebook教程,手把手实现1D/2D求解器。 -
PyClaw:
https://github.com/clawpack/pyclaw
虽然主要用有限差分/有限体积混合方法,但支持高性能CFD计算。
选择建议:
- 初学者:从
CFD Python
或FiPy
开始,理解FVM基础。 - 工程应用:优先考虑
SU2
或PyFOAM
(结合OpenFOAM)。 - 高性能需求:尝试
PyFR
(GPU加速)或SU2
。 - 多物理场:
FiPy
或Ocellaris
。
这些项目均开源且提供文档,适合不同层次的CFD开发者。