Curated list of awesome lists
Awesome Scientific Computing
Useful resources for scientific computing and numerical analysis.
Scientific computing and numerical analysis are research fields that aim to provide
methods for solving largescale problems from various areas of science with the help of
computers. Typical problems are ordinary and partial differential equations (ODEs,
PDEs), their discretizations, and the solution of linear algebra problems arising from
them.
Contents
Basic linear algebra

BLAS  Standard building blocks for performing basic vector and matrix operations.
(Fortran, public domain, GitHub)

OpenBLAS  Optimized BLAS library based on GotoBLAS2.
(C and Assembly, BSD, GitHub)

BLIS  Highperformance BLASlike dense linear algebra libraries.
(C, BSD, GitHub)

LAPACK  Routines for solving systems of linear equations, linear leastsquares, eigenvalue problems, etc.
(Fortran, BSD, GitHub)

Eigen  C++ template library for linear algebra.
(C++, MPL 2, GitLab)

Ginkgo  Highperformance manycore linear algebra library, focus on sparse systems.
(C++, BSD, GitHub)

blaze  Highperformance C++ math library for dense and sparse arithmetic.
(C++, BSD, Bitbucket)

PETSc  Parallel solution of scientific applications modeled by PDEs.
(C, 2clause BSD, GitLab)

DUNE Numerics  Toolbox for solving PDEs with gridbased methods.
(C++, GPL 2, GitLab)

SciPy  Python modules for statistics, optimization, integration, linear algebra, etc.
(Python, mostly BSD, GitHub)

NumPy  Fundamental package needed for scientific computing with Python.
(Python, BSD, GitHub)

DifferentialEquations.jl  Toolbox for solving different types of differential equations numerically. (Julia, MIT, GitHub)
Finite Elements

FEniCS  Computing platform for solving PDEs in Python and C++.
(C++/Python, LGPL 3, GitHub/Bitbucket)

libMesh  Framework for the numerical simulation of PDEs using unstructured discretizations.
(C++, LGPL 2.1, GitHub)

deal.II  Software library supporting the creation of finite element codes.
(C++, LGPL 2.1, GitHub)

Netgen/NGSolve  High performance multiphysics finite element software.
(C++, LGPL 2.1, GitHub)

Firedrake  Automated system for the solution of PDEs using the finite element method.
(Python, LGPL 3, GitHub)

MOOSE  Multiphysics Object Oriented Simulation Environment.
(C++, LGPL 2.1, GitHub)

MFEM  Free, lightweight, scalable C++ library for finite element methods.
(C++, BSD3Clause, GitHub)

SfePy  Simple Finite Elements in Python.
(Python, BSD, GitHub)

FreeFEM  High level multiphysicsmultimesh finite element language.
(C++, LGPL, GitHub)

libceed  Code for Efficient Extensible Discretizations.
(C, 2clause BSD, GitHub)

scikitfem  Simple finite element assemblers.
(Python, BSD/GPL, GitHub)
Meshing
Triangular and tetrahedral meshing

Gmsh  Threedimensional finite element mesh generator with pre and postprocessing facilities.
(C++, GPL, GitLab)

pygmsh  Python interface for Gmsh.
(Python, GPL 3, GitHub)

MeshPy  Quality triangular and tetrahedral mesh generation.
(Python, MIT, GitHub)

CGAL  Algorithms for computational geometry.
(C++, mixed LGPL/GPL, GitHub)

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  Twodimensional quality mesh generator and Delaunay triangulator.
(C, nonfree software)

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, GitHub)

dmsh  Simple generator for unstructured triangular meshes, inspired by distmesh.
(Python, proprietary, GitHub)

TetWild  Generate tetrahedral meshes for triangular surface meshes.
(C++, GPL 3, GitHub)

TriWild  Robust triangulation with curve constraints.
(C++, MPL 2, GitHub)

fTetWild  Same as TetWild, but faster.
(C++, MPL 2, GitHub)

SeismicMesh  Parallel 2D/3D triangle/tetrahedral mesh generation with sliver removal.
(Python and C++, GPL 3, GitHub)
Quadrilateral and hexahedral meshing

QuadriFlow  Scalable and robust quadrangulation from triangulation.
(C++, BSD, GitHub)
Mesh tools

meshio  I/O for various mesh formats, file conversion.
(Python, MIT, GitHub)

MOAB  Representing and evaluating mesh data.
(C++, mostly LGPL 3, Bitbucket)

optimesh  Triangular mesh smoothing.
(Python, proprietary, GitHub)

pmplibrary  Polygon mesh processing library.
(C++, MIT with Employer Disclaimer, GitHub)

Mmg  Robust, opensource & multidisciplinary software for remeshing.
(C, LGPL 3, GitHub)

meshplex  Fast tools for simplex meshes.
(Python, proprietary, GitHub)

NetCDF  Software libraries and data formats for arrayoriented scientific data.
(C/C++/Fortran/Java/Python, custom opensource
license,
GitHub)

HDF5  Data model, library, and file format for storing and managing data.
(C/Fortran, BSD, GitHub)

XDMF  eXtensible Data Model and Format for data from High Performance Computing codes.
(C++, GitLab)

Zarr  Format for the storage of chunked, compressed, Ndimensional arrays.
(Python, MIT, GitHub)
Sparse linear solvers

SuperLU  Direct solution of large, sparse, nonsymmetric systems of linear equations.
(C, mostly BSD, GitHub)

PyAMG  Algebraic Multigrid Solvers in Python.
(Python, MIT, GitHub)

hypre  Library of highperformance preconditioners and solvers.
(C, Apache 2.0/MIT, GitHub)
Visualization

ParaView  Multiplatform data analysis and visualization application based on VTK.
(C++, BSD, GitLab)

VTK  Process images and create 3D computer graphics.
(C++, BSD, GitLab)

Mayavi  3D scientific data visualization and plotting in Python.
(Python, BSD, GitHub)

Polyscope  Viewer and user interface for 3D geometry processing.
(C++, MIT, GitHub)

PyVista  3D plotting and mesh analysis through a streamlined interface for VTK.
(Python, MIT, GitHub)

vedo  Library for scientific analysis and visualization of 3D objects based on VTK.
(Python, MIT, GitHub)

yt  Toolkit for analysis and visualization of volumetric data.
(Python, BSD, GitHub)

F3D  Crossplatform, fast, and minimalist 3D viewer with scientific visualization tools.
(C++, BSD, GitHub)

TTK  Topological data analysis and visualization.
(C++/Python, BSD, GitHub)

morphologica  Headeronly, modern OpenGL code to visualize numerical simulations at runtime. (C++, Apache 2.0, GitHub)

FFTW  Discrete Fourier transforms in one or more dimensions, of arbitrary input size, real and complex.
(C, GPL2, GitHub)

Qhull  Convex hull, Delaunay triangulation, Voronoi diagram, halfspace intersection about a point, etc.
(C/C++, custom open source license,
GitHub)

GSL  Random number generators, special functions, and leastsquares fitting etc.
(C/C++, GPL 3, Savannah)

OpenFOAM  Free, open source CFD (computational fluid dynamics) software.
(C++, GPL 3, GitHub)

quadpy  Numerical integration (quadrature, cubature) in Python.
(Python, proprietary, GitHub)

FiPy  Finitevolume PDE solver.
(Python, custom opensource
license,
GitHub)

accupy  Accurate sums and dot products for Python.
(Python, GPL 3, GitHub)

SLEPc  Scalable Library for Eigenvalue Problem Computations.
(C, 2clause BSD, GitLab)

Chebfun  Computing with functions to about 15digit accuracy.
(MATLAB, BSD, GitHub)

pyMOR  Model Order Reduction with Python.
(Python, 2clause BSD, GitHub)

cvxpy  Modeling language for convex optimization problems.
(Python, Apache 2.0, GitHub)

PyWavelets  Wavelet transforms in Python.
(Python, MIT, GitHub)

NFFT  Nonequispaced fast Fourier transform.
(C/MATLAB, GPL 2, GitHub)

preCICE  Coupling library for partitioned multiphysics simulations (FSI, CHT, and more).
(C++, LGPL 3, GitHub)

orthopy  Compute orthogonal polynomials efficiently.
(Python, proprietary, GitHub)

pyGAM  Generalized Additive Models in Python.
(Python, Apache 2.0, GitHub)

Dedalus  Solve partial differential equations with spectral methods.
(Python, GPL 3, GitHub)

PyGMO  Massively parallel optimization.
(Python/C++, MPL 2, GitHub)

shenfun  Highperformance Python library for the spectral Galerkin method.
(Python, BSD2, GitHub)

PyDMD  Dynamic Mode Decomposition (DMD) in Python.
(Python, MIT, GitHub)

HPDDM  Highperformance unified framework for domain decomposition methods.
(C++, LGPL 3, GitHub)