awesome-scientific-computing
Scientific computing toolkit
Curated collection of software tools and libraries for solving numerical analysis and scientific computing problems.
Curated list of awesome software for numerical analysis and scientific computing
1k stars
55 watching
147 forks
Language: Python
last commit: 3 months ago
Linked from 4 awesome lists
awesomeawesome-listengineeringmathematicsnumerical-analysisphysicsscientific-computing
Awesome Scientific Computing / 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 | 2,312 | 6 days ago | 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) | ||
Awesome Scientific Computing / 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, ) | ||
Awesome Scientific Computing / 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 | 512 | 25 days ago | Simple finite element assemblers. (Python, BSD/GPL, GitHub) |
Awesome Scientific Computing / Meshing / Triangular and tetrahedral meshing | |||
Gmsh | Three-dimensional finite element mesh generator with pre- and post-processing facilities. (C++, GPL, ) | ||
pygmsh | 858 | about 1 year ago | 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 | 598 | 4 months ago | 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 | 210 | over 1 year ago | 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 | 127 | over 1 year ago | Parallel 2D/3D triangle/tetrahedral mesh generation with sliver removal. (Python and C++, GPL 3, GitHub) |
Awesome Scientific Computing / Meshing / Quadrilateral and hexahedral meshing | |||
QuadriFlow | Scalable and robust quadrangulation from triangulation. (C++, BSD, ) | ||
Awesome Scientific Computing / Meshing / Mesh tools | |||
meshio | 1,952 | 4 months ago | I/O for various mesh formats, file conversion. (Python, MIT, GitHub) |
MOAB | Representing and evaluating mesh data. (C++, mostly LGPL 3, ) | ||
optimesh | 578 | 10 months ago | 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 | 104 | 5 months ago | Fast tools for simplex meshes. (Python, proprietary, GitHub) |
Awesome Scientific Computing / 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, ) | ||
Awesome Scientific Computing / Sparse linear solvers | |||
SuperLU | Direct solution of large, sparse, nonsymmetric systems of linear equations. (C, mostly BSD, ) | ||
PyAMG | Algebraic Multigrid Solvers in Python. (Python, MIT, ) | ||
hypre | Library of high-performance preconditioners and solvers. (C, Apache 2.0/MIT, ) | ||
Awesome Scientific Computing / 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 | 260 | 9 days ago | Header-only, modern OpenGL code to visualize numerical simulations at runtime. (C++, Apache 2.0, GitHub) |
Awesome Scientific Computing / 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 | 762 | over 1 year ago | Numerical integration (quadrature, cubature) in Python. (Python, proprietary, GitHub) |
FiPy | Finite-volume PDE solver. (Python, , ) | ||
accupy | 104 | about 3 years ago | 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 | 181 | 9 months ago | 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 | 77 | about 1 month ago | Dynamic Mode Decomposition (DMD) in Python. (Python, MIT, GitHub) |
HPDDM | 140 | 25 days ago | High-performance unified framework for domain decomposition methods. (C++, LGPL 3, GitHub) |
Awesome Scientific Computing / 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 Twitter | One tweet a day on computational mathematics | ||
Discord: Numerical Software | Discord messaging server on numerical software |