• Stars
    star
    1,319
  • Rank 35,659 (Top 0.8 %)
  • Language
    Python
  • License
    Creative Commons ...
  • Created over 6 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

๐Ÿ˜Ž Curated list of awesome software for numerical analysis and scientific computing

Awesome Scientific Computing Awesome

Useful resources for scientific computing and numerical analysis.

Scientific computing and numerical analysis are research fields that aim to provide methods for solving large-scale 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 - 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, GitHub)
  • Eigen - C++ template library for linear algebra. (C++, MPL 2, GitLab)
  • Ginkgo - High-performance manycore linear algebra library, focus on sparse systems. (C++, BSD, GitHub)
  • 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, GitLab)
  • DUNE Numerics - Toolbox for solving PDEs with grid-based 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++, BSD-3-Clause, GitHub)
  • SfePy - Simple Finite Elements in Python. (Python, BSD, GitHub)
  • FreeFEM - High level multiphysics-multimesh finite element language. (C++, LGPL, GitHub)
  • libceed - Code for Efficient Extensible Discretizations. (C, 2-clause BSD, GitHub)
  • 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, 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 - Two-dimensional 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)
  • pmp-library - Polygon mesh processing library. (C++, MIT with Employer Disclaimer, GitHub)
  • Mmg - Robust, open-source & multidisciplinary software for remeshing. (C, LGPL 3, GitHub)
  • 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, custom open-source 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, N-dimensional 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 high-performance preconditioners and solvers. (C, Apache 2.0/MIT, GitHub)

Visualization

  • ParaView - Multi-platform 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 - Cross-platform, fast, and minimalist 3D viewer with scientific visualization tools. (C++, BSD, GitHub)
  • TTK - Topological data analysis and visualization. (C++/Python, BSD, GitHub)
  • 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, 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 least-squares 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 - Finite-volume PDE solver. (Python, custom open-source license, GitHub)
  • accupy - Accurate sums and dot products for Python. (Python, GPL 3, GitHub)
  • SLEPc - Scalable Library for Eigenvalue Problem Computations. (C, 2-clause BSD, GitLab)
  • Chebfun - Computing with functions to about 15-digit accuracy. (MATLAB, BSD, GitHub)
  • pyMOR - Model Order Reduction with Python. (Python, 2-clause 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 multi-physics 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 - High-performance Python library for the spectral Galerkin method. (Python, BSD-2, GitHub)
  • 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 Repositories

1

tikzplotlib

๐Ÿ“Š Save matplotlib figures as TikZ/PGFplots for smooth integration into LaTeX.
Python
2,398
star
2

meshio

๐Ÿ•ธ๏ธ input/output for many mesh formats
Python
1,930
star
3

tiptop

๐Ÿ–ฅ๏ธ Command-line system monitoring
Python
1,749
star
4

tuna

๐ŸŸ Python profile viewer
Python
1,363
star
5

perfplot

๐Ÿ“ˆ Performance analysis for Python snippets
Python
1,339
star
6

pygmsh

๐Ÿ•ธ๏ธ Gmsh for Python
Python
844
star
7

matplotx

๐Ÿ“Š More styles and useful extensions for Matplotlib
Python
789
star
8

termplotlib

๐Ÿ“ˆ Plotting on the command line
Python
669
star
9

colorio

๐ŸŒˆ Tools for color research
TeX
320
star
10

stressberry

Stress tests for the Raspberry Pi ๐Ÿ˜…
Python
319
star
11

github-trends

๐Ÿ“ˆ GitHub star history plots
260
star
12

dufte

๐Ÿ“ˆ Minimalistic Matplotlib style
Python
216
star
13

deadlink

๐Ÿ’€ Checks and fixes URLs in code and documentation.
Python
162
star
14

cplot

๐ŸŒˆ Plot complex functions
Python
149
star
15

termtables

๐Ÿ–ฅ๏ธ Pretty tables in the terminal
Python
98
star
16

pytest-codeblocks

๐Ÿ“„ Test code blocks in your READMEs
Python
95
star
17

action-cached-lfs-checkout

GitHub checkout action with LFS files pulled from cache
Just
90
star
18

ua-beamer

A LaTeX beamer theme for the University of Antwerp
TeX
75
star
19

pipdate

Small pip update helpers.
Python
73
star
20

matlab-guidelines

Guidelines for writing clean and fast code in MATLAB
TeX
67
star
21

spectro

๐ŸŽต Audio file analysis
Python
47
star
22

tablign

Aligns columns in your ASCII tables on the command line or in vim.
Python
43
star
23

pyfoobar

Python project template/scaffold and best practices
Python
41
star
24

betterspy

๐Ÿ‘€ Visualization for SciPy sparse matrices.
Python
40
star
25

color-data

๐ŸŒˆ Collected experimental data for color research
Python
39
star
26

stackoverflow-trends

๐Ÿ“ˆ StackOverflow trends
35
star
27

xhub

๐Ÿ“ GitHub with LaTeX math, diagrams, etc.
JavaScript
35
star
28

maelstrom

Numerical simulation of magnetohydrodynamics.
Python
33
star
29

purple-pi

๐Ÿ’œ LaTeX math wherever you want
JavaScript
31
star
30

stackoverflow-card

JavaScript
31
star
31

markdown-math-acid-test

Showcase GitHub math bugs
25
star
32

fontman

Manage and update your installed fonts.
Python
21
star
33

tau

The better pi
Python
20
star
34

pyfma

Fused multiply-add (with a single rounding) for Python.
Python
20
star
35

scipyx

SciPy fixes and extensions
Python
18
star
36

gitfaces

Fetch contributor avatars for a GitHub repository
Python
17
star
37

epicycler

Create epicycle animations.
Python
15
star
38

fjson

Python JSON writer with formatted floats
Python
14
star
39

python-vs-cpp

C++
13
star
40

identinum

Identify exact expression for decimal.
Python
9
star
41

mikado

Friendly solver interfaces for Trilinos.
C++
8
star
42

materials

Density, magnetic permeability etc. for a range of materials.
Python
8
star
43

note-on-cam16

Algorithmic improvements for the CIECAM02 and CAM16 color appearence models
TeX
8
star
44

matheon-html5-template

Matheon HTML5 presentation template
JavaScript
8
star
45

flow

Navier-Stokes and heat equation with FEniCS.
Python
5
star
46

nosh

A numerical solver for nonlinear Schrรถdinger equations
C++
4
star
47

tex-font-errors-cheatsheet

Cheat sheet(s) for decoding the meaning of TeX font errors
3
star
48

rhino

Python
3
star
49

vandermonde

๐Ÿ“ Tools for working with Vandermonde matrices, e.g., Bjรถrck-Pereyra.
Python
3
star
50

keygen_licensing_tools

Tools for license valididation with Keygen.sh
Python
3
star
51

corona-charts

Corona data and charts, updated automatically
Python
2
star
52

plm

Python
2
star
53

math-test

2
star
54

github-mathml-test

2
star
55

parabolic

Time stepping methods for parabolic problems.
Python
2
star
56

sippp

Fortran library for the solution of singularly perturbed parabolic problems
Fortran
2
star
57

nschloe.github.io

HTML
2
star
58

hanoi-material

Class material for nonlinear optimization at Hanoi Autumn School 2013
MATLAB
2
star
59

talk-python-scientific

Python in Scientific Computation
JavaScript
2
star
60

trilinos-tutorial

C++
1
star
61

tspsolve

Solution algorithms for the travelling salesman problem.
Python
1
star
62

launchpadtools

Tools for submitting packages to Ubuntu Launchpad
Python
1
star
63

nschloe

about me
1
star