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
54 watching
150 forks
Language: Python
last commit: almost 2 years ago
Linked from 4 awesome lists

awesomeawesome-listengineeringmathematicsnumerical-analysisphysicsscientific-computing

Awesome Scientific Computing / Basic linear algebra

BLASStandard building blocks for performing basic vector and matrix operations. (Fortran, public domain, )
OpenBLASOptimized BLAS library based on GotoBLAS2. (C and Assembly, BSD, )
BLIS2,337almost 2 years agoHigh-performance BLAS-like dense linear algebra libraries. (C, BSD, GitHub)
LAPACKRoutines for solving systems of linear equations, linear least-squares, eigenvalue problems, etc. (Fortran, BSD, )
EigenC++ template library for linear algebra. (C++, MPL 2, )
GinkgoHigh-performance manycore linear algebra library, focus on sparse systems. (C++, BSD, )
blazeHigh-performance C++ math library for dense and sparse arithmetic. (C++, BSD, Bitbucket)

Awesome Scientific Computing / Multi-purpose toolkits

PETScParallel solution of scientific applications modeled by PDEs. (C, 2-clause BSD, )
DUNE NumericsToolbox for solving PDEs with grid-based methods. (C++, GPL 2, )
SciPyPython modules for statistics, optimization, integration, linear algebra, etc. (Python, mostly BSD, )
NumPyFundamental package needed for scientific computing with Python. (Python, BSD, )
DifferentialEquations.jlToolbox for solving different types of differential equations numerically. (Julia, MIT, )

Awesome Scientific Computing / Finite Elements

FEniCSComputing platform for solving PDEs in Python and C++. (C++/Python, LGPL 3, / )
libMeshFramework for the numerical simulation of PDEs using unstructured discretizations. (C++, LGPL 2.1, )
deal.IISoftware library supporting the creation of finite element codes. (C++, LGPL 2.1, )
Netgen/NGSolveHigh performance multiphysics finite element software. (C++, LGPL 2.1, )
FiredrakeAutomated system for the solution of PDEs using the finite element method. (Python, LGPL 3, )
MOOSEMultiphysics Object Oriented Simulation Environment. (C++, LGPL 2.1, )
MFEMFree, lightweight, scalable C++ library for finite element methods. (C++, BSD-3-Clause, )
SfePySimple Finite Elements in Python. (Python, BSD, )
FreeFEMHigh level multiphysics-multimesh finite element language. (C++, LGPL, )
libceedCode for Efficient Extensible Discretizations. (C, 2-clause BSD, )
scikit-fem516almost 2 years agoSimple finite element assemblers. (Python, BSD/GPL, GitHub)

Awesome Scientific Computing / Meshing / Triangular and tetrahedral meshing

GmshThree-dimensional finite element mesh generator with pre- and post-processing facilities. (C++, GPL, )
pygmsh869almost 3 years agoPython interface for Gmsh. (Python, GPL 3, GitHub)
MeshPyQuality triangular and tetrahedral mesh generation. (Python, MIT, )
CGALAlgorithms for computational geometry. (C++, mixed LGPL/GPL, )
pygalmesh602about 2 years agoPython interface for CGAL's 3D meshing capabilities. (Python, GPL 3, GitHub)
TetGenQuality tetrahedral mesh generator and 3D Delaunay triangulator. (C++, AGPLv3)
TriangleTwo-dimensional quality mesh generator and Delaunay triangulator. (C, )
distmeshSimple generator for unstructured triangular and tetrahedral meshes. (MATLAB, GPL 3)
trimeshLoading and using triangular meshes with an emphasis on watertight surfaces. (Python, MIT, )
dmsh211over 3 years agoSimple generator for unstructured triangular meshes, inspired by distmesh. (Python, proprietary, GitHub)
TetWildGenerate tetrahedral meshes for triangular surface meshes. (C++, GPL 3, )
TriWildRobust triangulation with curve constraints. (C++, MPL 2, )
fTetWildSame as TetWild, but faster. (C++, MPL 2, )
SeismicMesh130about 3 years agoParallel 2D/3D triangle/tetrahedral mesh generation with sliver removal. (Python and C++, GPL 3, GitHub)

Awesome Scientific Computing / Meshing / Quadrilateral and hexahedral meshing

QuadriFlowScalable and robust quadrangulation from triangulation. (C++, BSD, )

Awesome Scientific Computing / Meshing / Mesh tools

meshio1,976about 2 years agoI/O for various mesh formats, file conversion. (Python, MIT, GitHub)
MOABRepresenting and evaluating mesh data. (C++, mostly LGPL 3, )
optimesh582over 2 years agoTriangular mesh smoothing. (Python, proprietary, GitHub)
pmp-libraryPolygon mesh processing library. (C++, MIT with Employer Disclaimer, )
MmgRobust, open-source & multidisciplinary software for remeshing. (C, LGPL 3, )
meshplex104over 2 years agoFast tools for simplex meshes. (Python, proprietary, GitHub)

Awesome Scientific Computing / Data formats

NetCDFSoftware libraries and data formats for array-oriented scientific data. (C/C++/Fortran/Java/Python, , )
HDF5Data model, library, and file format for storing and managing data. (C/Fortran, BSD, )
XDMFeXtensible Data Model and Format for data from High Performance Computing codes. (C++, )
ZarrFormat for the storage of chunked, compressed, N-dimensional arrays. (Python, MIT, )

Awesome Scientific Computing / Sparse linear solvers

SuperLUDirect solution of large, sparse, nonsymmetric systems of linear equations. (C, mostly BSD, )
PyAMGAlgebraic Multigrid Solvers in Python. (Python, MIT, )
hypreLibrary of high-performance preconditioners and solvers. (C, Apache 2.0/MIT, )

Awesome Scientific Computing / Visualization

ParaViewMulti-platform data analysis and visualization application based on VTK. (C++, BSD, )
VTKProcess images and create 3D computer graphics. (C++, BSD, )
Mayavi3D scientific data visualization and plotting in Python. (Python, BSD, )
PolyscopeViewer and user interface for 3D geometry processing. (C++, MIT, )
PyVista3D plotting and mesh analysis through a streamlined interface for VTK. (Python, MIT, )
vedoLibrary for scientific analysis and visualization of 3D objects based on VTK. (Python, MIT, )
ytToolkit for analysis and visualization of volumetric data. (Python, BSD, )
F3DCross-platform, fast, and minimalist 3D viewer with scientific visualization tools. (C++, BSD, )
TTKTopological data analysis and visualization. (C++/Python, BSD, )
morphologica262almost 2 years agoHeader-only, modern OpenGL code to visualize numerical simulations at runtime. (C++, Apache 2.0, GitHub)

Awesome Scientific Computing / Other libraries and tools

FFTWDiscrete Fourier transforms in one or more dimensions, of arbitrary input size, real and complex. (C, GPL2, )
QhullConvex hull, Delaunay triangulation, Voronoi diagram, halfspace intersection about a point, etc. (C/C++, , )
GSLRandom number generators, special functions, and least-squares fitting etc. (C/C++, GPL 3, )
OpenFOAMFree, open source CFD (computational fluid dynamics) software. (C++, GPL 3, )
quadpy768over 3 years agoNumerical integration (quadrature, cubature) in Python. (Python, proprietary, GitHub)
FiPyFinite-volume PDE solver. (Python, , )
accupy104about 5 years agoAccurate sums and dot products for Python. (Python, GPL 3, GitHub)
SLEPcScalable Library for Eigenvalue Problem Computations. (C, 2-clause BSD, )
ChebfunComputing with functions to about 15-digit accuracy. (MATLAB, BSD, )
pyMORModel Order Reduction with Python. (Python, 2-clause BSD, )
cvxpyModeling language for convex optimization problems. (Python, Apache 2.0, )
PyWaveletsWavelet transforms in Python. (Python, MIT, )
NFFTNonequispaced fast Fourier transform. (C/MATLAB, GPL 2, )
preCICECoupling library for partitioned multi-physics simulations (FSI, CHT, and more). (C++, LGPL 3, )
orthopy182over 2 years agoCompute orthogonal polynomials efficiently. (Python, proprietary, GitHub)
pyGAMGeneralized Additive Models in Python. (Python, Apache 2.0, )
DedalusSolve partial differential equations with spectral methods. (Python, GPL 3, )
PyGMOMassively parallel optimization. (Python/C++, MPL 2, )
shenfunHigh-performance Python library for the spectral Galerkin method. (Python, BSD-2, )
PyDMD77almost 2 years agoDynamic Mode Decomposition (DMD) in Python. (Python, MIT, GitHub)
HPDDM141almost 2 years agoHigh-performance unified framework for domain decomposition methods. (C++, LGPL 3, GitHub)

Awesome Scientific Computing / Community

SciComp StackExchangeComputational Science on the StackExchange network
Wolfgang Bangerth's video classMATH 676: Finite element methods in scientific computing
Nick Higham's blogMostly on MATLAB, general computing advice
Nick Trefethen's Video Lectures36 video lectures on approximation theory/practice and scientific computing
John D. Cook's blogFeats of scientific computing
Jack Dongarra's software listList of freely available software for the solution of linear algebra problems
NA DigestCollection of articles on topics related to numerical analysis and those who practice it
Gabriel Peyré on BlueskyOne post a day on computational mathematics
Discord: Numerical SoftwareDiscord messaging server on numerical software

Backlinks from these awesome lists:

More related projects: