awesome-scientific-computing
by nschloe
Curated list of awesome software for numerical analysis and scientific computing
AI summary
Scientific computing toolkit
Curated collection of software tools and libraries for solving numerical analysis and scientific computing problems.
- stars
- 1.3K
- forks
- 150
- watching
- 54
- awesome lists
- 4
- entries
- 91
What's in the list
91 links in 11 sections, with live GitHub stats.activeno commit in 2y
Basic linear algebra
- BLAS
Standard building blocks for performing basic vector and matrix operations. (Fortran, public domain, )
- OpenBLAS
Optimized BLAS library based on GotoBLAS2. (C and Assembly, BSD, )
BLIS
High-performance BLAS-like dense linear algebra libraries. (C, BSD, GitHub)
- LAPACK
Routines for solving systems of linear equations, linear least-squares, eigenvalue problems, etc. (Fortran, BSD, )
- Eigen
C++ template library for linear algebra. (C++, MPL 2, )
- Ginkgo
High-performance manycore linear algebra library, focus on sparse systems. (C++, BSD, )
- blaze
High-performance C++ math library for dense and sparse arithmetic. (C++, BSD, Bitbucket)
Multi-purpose toolkits
- PETSc
Parallel solution of scientific applications modeled by PDEs. (C, 2-clause BSD, )
- DUNE Numerics
Toolbox for solving PDEs with grid-based methods. (C++, GPL 2, )
- SciPy
Python modules for statistics, optimization, integration, linear algebra, etc. (Python, mostly BSD, )
- NumPy
Fundamental package needed for scientific computing with Python. (Python, BSD, )
- DifferentialEquations.jl
Toolbox for solving different types of differential equations numerically. (Julia, MIT, )
Finite Elements
- FEniCS
Computing platform for solving PDEs in Python and C++. (C++/Python, LGPL 3, / )
- libMesh
Framework for the numerical simulation of PDEs using unstructured discretizations. (C++, LGPL 2.1, )
- deal.II
Software library supporting the creation of finite element codes. (C++, LGPL 2.1, )
- Netgen/NGSolve
High performance multiphysics finite element software. (C++, LGPL 2.1, )
- Firedrake
Automated system for the solution of PDEs using the finite element method. (Python, LGPL 3, )
- MOOSE
Multiphysics Object Oriented Simulation Environment. (C++, LGPL 2.1, )
- MFEM
Free, lightweight, scalable C++ library for finite element methods. (C++, BSD-3-Clause, )
- SfePy
Simple Finite Elements in Python. (Python, BSD, )
- FreeFEM
High level multiphysics-multimesh finite element language. (C++, LGPL, )
- libceed
Code for Efficient Extensible Discretizations. (C, 2-clause BSD, )
scikit-fem
Simple finite element assemblers. (Python, BSD/GPL, GitHub)
Meshing / Triangular and tetrahedral meshing
- Gmsh
Three-dimensional finite element mesh generator with pre- and post-processing facilities. (C++, GPL, )
pygmsh
Python interface for Gmsh. (Python, GPL 3, GitHub)
- MeshPy
Quality triangular and tetrahedral mesh generation. (Python, MIT, )
- CGAL
Algorithms for computational geometry. (C++, mixed LGPL/GPL, )
pygalmesh
Python interface for CGAL's 3D meshing capabilities. (Python, GPL 3, GitHub)
- TetGen
Quality tetrahedral mesh generator and 3D Delaunay triangulator. (C++, AGPLv3)
- Triangle
Two-dimensional quality mesh generator and Delaunay triangulator. (C, )
- distmesh
Simple generator for unstructured triangular and tetrahedral meshes. (MATLAB, GPL 3)
- trimesh
Loading and using triangular meshes with an emphasis on watertight surfaces. (Python, MIT, )
dmsh
Simple generator for unstructured triangular meshes, inspired by distmesh. (Python, proprietary, GitHub)
- TetWild
Generate tetrahedral meshes for triangular surface meshes. (C++, GPL 3, )
- TriWild
Robust triangulation with curve constraints. (C++, MPL 2, )
- fTetWild
Same as TetWild, but faster. (C++, MPL 2, )
SeismicMesh
Parallel 2D/3D triangle/tetrahedral mesh generation with sliver removal. (Python and C++, GPL 3, GitHub)
Meshing / Quadrilateral and hexahedral meshing
- QuadriFlow
Scalable and robust quadrangulation from triangulation. (C++, BSD, )
Meshing / Mesh tools
meshio
I/O for various mesh formats, file conversion. (Python, MIT, GitHub)
- MOAB
Representing and evaluating mesh data. (C++, mostly LGPL 3, )
optimesh
Triangular mesh smoothing. (Python, proprietary, GitHub)
- pmp-library
Polygon mesh processing library. (C++, MIT with Employer Disclaimer, )
- Mmg
Robust, open-source & multidisciplinary software for remeshing. (C, LGPL 3, )
meshplex
Fast tools for simplex meshes. (Python, proprietary, GitHub)
Data formats
- NetCDF
Software libraries and data formats for array-oriented scientific data. (C/C++/Fortran/Java/Python, , )
- HDF5
Data model, library, and file format for storing and managing data. (C/Fortran, BSD, )
- XDMF
eXtensible Data Model and Format for data from High Performance Computing codes. (C++, )
- Zarr
Format for the storage of chunked, compressed, N-dimensional arrays. (Python, MIT, )
Sparse linear solvers
Visualization
- ParaView
Multi-platform data analysis and visualization application based on VTK. (C++, BSD, )
- VTK
Process images and create 3D computer graphics. (C++, BSD, )
- Mayavi
3D scientific data visualization and plotting in Python. (Python, BSD, )
- Polyscope
Viewer and user interface for 3D geometry processing. (C++, MIT, )
- PyVista
3D plotting and mesh analysis through a streamlined interface for VTK. (Python, MIT, )
- vedo
Library for scientific analysis and visualization of 3D objects based on VTK. (Python, MIT, )
- yt
Toolkit for analysis and visualization of volumetric data. (Python, BSD, )
- F3D
Cross-platform, fast, and minimalist 3D viewer with scientific visualization tools. (C++, BSD, )
- TTK
Topological data analysis and visualization. (C++/Python, BSD, )
morphologica
Header-only, modern OpenGL code to visualize numerical simulations at runtime. (C++, Apache 2.0, GitHub)
Other libraries and tools
- FFTW
Discrete Fourier transforms in one or more dimensions, of arbitrary input size, real and complex. (C, GPL2, )
- Qhull
Convex hull, Delaunay triangulation, Voronoi diagram, halfspace intersection about a point, etc. (C/C++, , )
- GSL
Random number generators, special functions, and least-squares fitting etc. (C/C++, GPL 3, )
- OpenFOAM
Free, open source CFD (computational fluid dynamics) software. (C++, GPL 3, )
quadpy
Numerical integration (quadrature, cubature) in Python. (Python, proprietary, GitHub)
- FiPy
Finite-volume PDE solver. (Python, , )
accupy
Accurate sums and dot products for Python. (Python, GPL 3, GitHub)
- SLEPc
Scalable Library for Eigenvalue Problem Computations. (C, 2-clause BSD, )
- Chebfun
Computing with functions to about 15-digit accuracy. (MATLAB, BSD, )
- pyMOR
Model Order Reduction with Python. (Python, 2-clause BSD, )
- cvxpy
Modeling language for convex optimization problems. (Python, Apache 2.0, )
- PyWavelets
Wavelet transforms in Python. (Python, MIT, )
- NFFT
Nonequispaced fast Fourier transform. (C/MATLAB, GPL 2, )
- preCICE
Coupling library for partitioned multi-physics simulations (FSI, CHT, and more). (C++, LGPL 3, )
orthopy
Compute orthogonal polynomials efficiently. (Python, proprietary, GitHub)
- pyGAM
Generalized Additive Models in Python. (Python, Apache 2.0, )
- Dedalus
Solve partial differential equations with spectral methods. (Python, GPL 3, )
- PyGMO
Massively parallel optimization. (Python/C++, MPL 2, )
- shenfun
High-performance Python library for the spectral Galerkin method. (Python, BSD-2, )
PyDMD
Dynamic Mode Decomposition (DMD) in Python. (Python, MIT, GitHub)
HPDDM
High-performance unified framework for domain decomposition methods. (C++, LGPL 3, GitHub)
Community
- SciComp StackExchange
Computational Science on the StackExchange network
- Wolfgang Bangerth's video class
MATH 676: Finite element methods in scientific computing
- Nick Higham's blog
Mostly on MATLAB, general computing advice
- Nick Trefethen's Video Lectures
36 video lectures on approximation theory/practice and scientific computing
- John D. Cook's blog
Feats of scientific computing
- Jack Dongarra's software list
List of freely available software for the solution of linear algebra problems
- NA Digest
Collection of articles on topics related to numerical analysis and those who practice it
- Gabriel Peyré on Bluesky
One post a day on computational mathematics
- Discord: Numerical Software
Discord messaging server on numerical software
Nothing in this list matches your filter.
Featured in 4 awesome lists
Each link jumps to the spot where the list mentions awesome-scientific-computing.