awesome-scientific-computing

Scientific computing toolkit

Curated collection of software tools and libraries for solving numerical analysis and scientific computing problems.

sunglasses Curated list of awesome software for numerical analysis and scientific computing

GitHub

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

Backlinks from these awesome lists:

More related projects: