Skip to content
/ amgcl Public
forked from ddemidov/amgcl

C++ library for solving large sparse linear systems with algebraic multigrid method

License

Notifications You must be signed in to change notification settings

cleohari/amgcl

 
 

Repository files navigation

AMGCL

Documentation Status DOI Build Status Build status codecov Coverity Scan Build Status

AMGCL is a header-only C++ library for solving large sparse linear systems with algebraic multigrid (AMG) method. AMG is one of the most effective iterative methods for solution of equation systems arising, for example, from discretizing PDEs on unstructured grids. The method can be used as a black-box solver for various computational problems, since it does not require any information about the underlying geometry. AMG is often used not as a standalone solver but as a preconditioner within an iterative solver (e.g. Conjugate Gradients, BiCGStab, or GMRES).

AMGCL builds the AMG hierarchy on a CPU and then transfers it to one of the provided backends. This allows for transparent acceleration of the solution phase with help of OpenCL, CUDA, or OpenMP technologies. Users may provide their own backends which enables tight integration between AMGCL and the user code.

See AMGCL documentation at http://amgcl.readthedocs.io/

Referencing

Demidov, Denis. AMGCL: An efficient, flexible, and extensible algebraic multigrid implementation. Lobachevskii Journal of Mathematics, 40(5):535–546, May 2019. doi pdf bib

Demidov, Denis. AMGCL -- A C++ library for efficient solution of large sparse linear systems. Software Impacts, 6:100037, November 2020. doi bib

Demidov, Denis, Lin Mu, and Bin Wang. Accelerating linear solvers for Stokes problems with C++ metaprogramming. Journal of Computational Science (2020): 101285. doi arxiv bib

Support

About

C++ library for solving large sparse linear systems with algebraic multigrid method

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 94.7%
  • CMake 2.1%
  • Python 1.3%
  • Pascal 0.6%
  • Fortran 0.6%
  • C 0.5%
  • Other 0.2%