多码网
返回 编程语言
编程语言

Awesome scientific computing

> 科学计算和数值分析的有用资源.

Awesome scientific computing

Awesome Scientific Computing Awesome

> 科学计算和数值分析的有用资源.

科学计算和数值分析是旨在提供 在科学的帮助下解决来自各个科学领域的大规模问题的方法 电脑. 典型问题是常微分方程和偏微分方程(ODE, PDEs),它们的离散化,以及由以下问题引起的线性代数问题的解 them.

Basic linear algebra

  • BLAS - 用于执行基本向量和矩阵运算的标准构建块. (Fortran,公共领域, GitHub)
  • OpenBLAS - 基于GotoBLAS2优化的BLAS库. (C 和汇编,BSD, GitHub)
  • BLIS - 类似于 BLAS 的高性能密集线性代数库. (C, BSD, GitHub)
  • LAPACK - 求解线性方程组、线性最小二乘法、特征值问题等的例程. (Fortran, BSD, GitHub)
  • Eigen - 用于线性代数的 C++ 模板库. (C++,MPL 2, GitLab)
  • Ginkgo - 高性能众核线性代数库,专注于稀疏系统. (C++, BSD, GitHub)
  • blaze - 用于密集和稀疏算术的高性能 C++ 数学库. (C++, BSD, 比特桶)

Multi-purpose toolkits

  • PETSc - 由 PDE 建模的科学应用程序的并行解决方案. (C, 2-clause BSD, GitLab)
  • DUNE Numerics - 使用基于网格的方法求解偏微分方程的工具箱. (C++, GPL 2, GitLab)
  • SciPy - 用于统计、优化、集成、线性代数等的 Python 模块. (Python,主要是 BSD, GitHub)
  • NumPy - 使用 Python 进行科学计算所需的基础包. (蟒蛇,BSD, GitHub)
  • DifferentialEquations.jl - 用于数值求解不同类型微分方程的工具箱. (朱莉娅,麻省理工学院, GitHub)

Finite Elements

  • FEniCS - 用 Python 和 C++ 求解偏微分方程的计算平台. (C++/Python,LGPL 3, GitHub/Bitbucket)
  • libMesh - 使用非结构化离散化的 PDE 数值模拟框架. (C++,LGPL 2.1, GitHub)
  • deal.II - 支持创建有限元代码的软件库. (C++,LGPL 2.1, GitHub)
  • Netgen/NGSolve - 高性能多物理场有限元软件. (C++,LGPL 2.1, GitHub)
  • Firedrake - 使用有限元法求解偏微分方程的自动化系统. (蟒蛇,LGPL 3, GitHub)
  • MOOSE - 多物理场面向对象仿真环境. (C++,LGPL 2.1, GitHub)
  • MFEM - 用于有限元方法的免费、轻量级、可扩展的 C++ 库. (C++, BSD-3-Clause, GitHub)
  • SfePy - Python 中的简单有限元. (蟒蛇,BSD, GitHub)
  • FreeFEM - 高级多物理场-多网格有限元语言. (C++, LGPL, GitHub)
  • libceed - 高效可扩展离散化代码. (C, 2-clause BSD, GitHub)
  • scikit-fem - 简单的有限元装配器. (Python、BSD/GPL、GitHub)

Meshing

Triangular and tetrahedral meshing

  • Gmsh - 具有预处理和后处理设施的三维有限元网格生成器. (C++, GPL, GitLab)
  • pygmsh - Gmsh 的 Python 接口. (Python、GPL 3、GitHub)
  • MeshPy - 优质的三角形和四面体网格生成. (蟒蛇,麻省理工学院, GitHub)
  • CGAL - 计算几何算法. (C++,混合 LGPL/GPL, GitHub)
  • pygalmesh - 用于 CGAL 的 3D 网格划分功能的 Python 接口. (Python、GPL 3、GitHub)
  • TetGen - 优质四面体网格生成器和 3D Delaunay 三角剖分器. (C++,AGPLv3)
  • Triangle - 二维质量网格生成器和 Delaunay 三角剖分器. (C,非自由软件
  • distmesh - 用于非结构化三角形和四面体网格的简单生成器. (MATLAB,GPL 3)
  • trimesh - 加载和使用三角形网格,重点是水密表面. (蟒蛇,麻省理工学院, GitHub)
  • dmsh - 受 distmesh 启发的非结构化三角形网格的简单生成器. (Python,专有,GitHub)
  • TetWild - 为三角形表面网格生成四面体网格. (C++, GPL 3, GitHub)
  • TriWild - 具有曲线约束的稳健三角测量. (C++,MPL 2, GitHub)
  • fTetWild - 与 TetWild 相同,但速度更快. (C++,MPL 2, GitHub)
  • SeismicMesh - 平行 2D/3D 三角形/四面体网格生成,去除条子. (Python 和 C++,GPL 3,GitHub)

Quadrilateral and hexahedral meshing

  • QuadriFlow - 来自三角测量的可扩展且强大的四边形测量. (C++, BSD, GitHub)

Mesh tools

  • meshio - 各种网格格式的 I/O,文件转换. (Python、麻省理工学院、GitHub)
  • MOAB - 表示和评估网格数据. (C++,主要是 LGPL 3, Bitbucket)
  • optimesh - 三角网格平滑. (Python,专有,GitHub)
  • pmp-library - 多边形网格处理库. (C++,麻省理工学院与雇主免责声明, GitHub)
  • Mmg - 用于重新划分网格的强大、开源和多学科软件. (C,LGPL 3, GitHub)
  • meshplex - 单纯形网格的快速工具. (Python,专有,GitHub)

Data formats

  • NetCDF - 面向阵列的科学数据的软件库和数据格式. (C/C++/Fortran/Java/Python,自定义开源 许可, GitHub)
  • HDF5 - 用于存储和管理数据的数据模型、库和文件格式. (C/Fortran, BSD, GitHub)
  • XDMF - 高性能计算代码数据的可扩展数据模型和格式. (C++, GitLab)
  • Zarr - 用于存储分块、压缩、N 维数组的格式. (蟒蛇,麻省理工学院, GitHub)

Sparse linear solvers

  • SuperLU - 大型、稀疏、非对称线性方程组的直接解. (C,主要是 BSD, GitHub)
  • PyAMG - Python 中的代数多重网格求解器. (蟒蛇,麻省理工学院, GitHub)
  • hypre - 高性能预调节器和求解器库. (C,Apache 2.0/麻省理工学院, GitHub)

Visualization

  • ParaView - 基于VTK的多平台数据分析和可视化应用. (C++, BSD, GitLab)
  • VTK - 处理图像并创建 3D 计算机图形. (C++, BSD, GitLab)
  • Mayavi - Python 中的 3D 科学数据可视化和绘图. (蟒蛇,BSD, GitHub)
  • Polyscope - 用于 3D 几何处理的查看器和用户界面. (C++,麻省理工学院, GitHub)
  • PyVista - 通过 VTK 的简化界面进行 3D 绘图和网格分析. (蟒蛇,麻省理工学院, GitHub)
  • vedo - 基于 VTK 的 3D 对象的科学分析和可视化库. (蟒蛇,麻省理工学院, GitHub)
  • yt - 用于体积数据分析和可视化的工具包. (蟒蛇,BSD, GitHub)
  • F3D - 具有科学可视化工具的跨平台、快速且简约的 3D 查看器. (C++, BSD, GitHub)
  • TTK - 拓扑数据分析和可视化. (C++/Python, BSD, GitHub)
  • morphologica - 仅标头的现代 OpenGL 代码可在运行时可视化数值模拟. (C++、阿帕奇 2.0、GitHub)

Other libraries and tools

  • FFTW - 一维或多维离散傅里叶变换,任意输入大小,实数和复数. (C,GPL2, GitHub)
  • Qhull - 凸包、Delaunay 三角剖分、Voronoi 图、关于点的半空间交集等. (C/C++, custom open source license, GitHub)
  • GSL - 随机数生成器、特殊函数和最小二乘拟合等. (C/C++,GPL 3, Savannah)
  • OpenFOAM - 免费、开源的 CFD(计算流体动力学)软件. (C++, GPL 3, GitHub)
  • quadpy - Python 中的数值积分(正交、立方). (Python,专有,GitHub)
  • FiPy - 有限体积 PDE 求解器. (Python,[自定义开源 许可证](https://www.nist.gov/open/copyright-fair-use-and-licensing-statements-srd-data-software-and-technical-series-publications), GitHub)
  • accupy - Python 的准确求和和点积. (Python、GPL 3、GitHub)
  • SLEPc - Scalable Library for Eigenvalue Problem Computations. (C, 2-clause BSD, GitLab)
  • Chebfun - 计算精度约为 15 位数字的函数. (MATLAB,BSD, GitHub)
  • pyMOR - 使用 Python 减少模型订单. (Python, 2-clause BSD, GitHub)
  • cvxpy - 凸优化问题的建模语言. (蟒蛇,阿帕奇2.0, GitHub)
  • PyWavelets - Python 中的小波变换. (蟒蛇,麻省理工学院, GitHub)
  • NFFT - 非等空间快速傅立叶变换. (C/MATLAB,GPL 2, GitHub)
  • preCICE - 用于分区多物理仿真(FSI、CHT 等)的耦合库. (C++,LGPL 3, GitHub)
  • orthopy - 有效地计算正交多项式. (Python,专有,GitHub)
  • pyGAM - Python 中的广义加法模型. (蟒蛇,阿帕奇2.0, GitHub)
  • Dedalus - 用谱法求解偏微分方程. (蟒蛇,GPL 3, GitHub)
  • PyGMO - 大规模并行优化. (Python/C++,MPL 2, GitHub)
  • shenfun - 用于光谱 Galerkin 方法的高性能 Python 库. (蟒蛇,BSD-2, GitHub)
  • PyDMD - Python 中的动态模式分解 (DMD). (Python、麻省理工学院、GitHub)
  • HPDDM - 域分解方法的高性能统一框架. (C++,LGPL 3,GitHub)

Community

相关项目