Awesome Lists

awesome-scientific-computing

by nschloe

awesome listPythonpushed almost 2 years ago

sunglasses 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
View on GitHub

Embed the badge

Show how many awesome lists link to your project. The count updates automatically.

Awesome Lists badge
Markdown
[![Awesome Lists Badge](https://awesome.facts.dev/shield/nschloe/awesome-scientific-computing/links.svg)](https://awesome.facts.dev/awesome/nschloe/awesome-scientific-computing)
HTML
<a href="https://awesome.facts.dev/awesome/nschloe/awesome-scientific-computing"><img src="https://awesome.facts.dev/shield/nschloe/awesome-scientific-computing/links.svg" alt="Awesome Lists Badge" /></a>
Image URL
https://awesome.facts.dev/shield/nschloe/awesome-scientific-computing/links.svg

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

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

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

More related projects

Add a GitHub project

Missing a project or an awesome list? Paste its GitHub URL and we fetch it right away.