PETSc
简介
PETSc(Portable, Extensible Toolkit for Scientific Computation)是美国阿贡国家实验室维护的高性能科学计算库,提供了大规模线性/非线性方程组求解的核心算法与并行基础设施。几乎所有主流开源 CFD 代码(OpenFOAM、FEniCS、deal.II)底层都依赖 PETSc,是高端科学计算的「底层引擎」。
核心组件
- 线性求解器:Krylov 子空间方法(CG、GMRES、BiCGStab)+ 预处理器(Jacobi、ILU、AMG)
- 非线性求解器:Newton-Krylov(SNES)、拟 Newton 法
- 时间积分:显式/隐式 ODE/DAE 求解器(TS)
- 并行数据结构:DMDA(结构网格)、DMPlex(非结构网格)
适用场景
- 大规模多物理场耦合仿真(流-热-结构)
- 高端 CFD 求解器开发(作为底层求解器)
- 替代商业求解器(ANSYS、COMSOL)做内部研究
- 机器学习与物理仿真混合方法的高效实现
使用注意
- BSD-2-Clause,商用友好
- 学习曲线陡,官方文档极为详尽(推荐从 Tutorial 开始)
- C/Fortran 核心,Python 绑定 via petsc4py
- 常配合 ODE 求解器(SUNDIALS)和网格管理(PyAMG)使用
标签: 求解器线性代数稀疏矩阵HPC并行计算