Skip to content

Commit

Permalink
Update design section of the documentation #86
Browse files Browse the repository at this point in the history
  • Loading branch information
ddemidov committed Jul 14, 2020
1 parent 3fee442 commit f0276ca
Show file tree
Hide file tree
Showing 4 changed files with 264 additions and 78 deletions.
2 changes: 2 additions & 0 deletions docs/bibliography.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ Bibliography
============

.. [Adam98] Adams, Mark. "A parallel maximal independent set algorithm", in Proceedings 5th copper mountain conference on iterative methods, 1998.
.. [Alex00] A. Alexandrescu, Modern C++ design: generic programming and design patterns applied, AddisonWesley, 2001.
.. [AnCD15] Anzt, Hartwig, Edmond Chow, and Jack Dongarra. "Iterative sparse triangular solves for preconditioning." European Conference on Parallel Processing. Springer Berlin Heidelberg, 2015.
.. [BaJM05] Baker, A. H., Jessup, E. R., & Manteuffel, T. (2005). A technique for accelerating the convergence of restarted GMRES. SIAM Journal on Matrix Analysis and Applications, 26(4), 962-984.
.. [Barr94] Barrett, Richard, et al. Templates for the solution of linear systems: building blocks for iterative methods. Vol. 43. Siam, 1994.
Expand All @@ -16,6 +17,7 @@ Bibliography
.. [GhKK12] P. Ghysels, P. Kłosiewicz, and W. Vanroose. "Improving the arithmetic intensity of multigrid with the help of polynomial smoothers". Numer. Linear Algebra Appl. 2012;19:253-267. DOI: 10.1002/nla.1808.
.. [GiSo11] Van Gijzen, Martin B., and Peter Sonneveld. "Algorithm 913: An elegant IDR (s) variant that efficiently exploits biorthogonality properties." ACM Transactions on Mathematical Software (TOMS) 38.1 (2011): 5.
.. [GmHJ15] Gmeiner, Björn, et al. "A quantitative performance analysis for Stokes solvers at the extreme scale." arXiv preprint arXiv:1511.02134 (2015).
.. [Meye05] S. Meyers, Effective C++: 55 specific ways to improve your programs and designs, Pearson Education, 2005.
.. [Saad03] Saad, Yousef. Iterative methods for sparse linear systems. Siam, 2003.
.. [SaTu08] Sala, Marzio, and Raymond S. Tuminaro. "A new Petrov-Galerkin smoothed aggregation preconditioner for nonsymmetric linear systems." SIAM Journal on Scientific Computing 31.1 (2008): 143-166.
.. [SlDi93] Sleijpen, Gerard LG, and Diederik R. Fokkema. "BiCGstab (l) for linear equations involving unsymmetric matrices with complex spectrum." Electronic Transactions on Numerical Analysis 1.11 (1993): 2000.
Expand Down
31 changes: 31 additions & 0 deletions docs/components.rst
Original file line number Diff line number Diff line change
@@ -1,2 +1,33 @@
Components
==========

AMGCL provides the following components:

* **Backends** -- classes that define matrix and vector types and operations
necessary during the solution phase of the algorithm. When an AMG hierarchy
is constructed, it is moved to the specified backend. The approach enables
transparent acceleration of the solution phase with OpenMP_, OpenCL_, or
CUDA_ technologies, and also makes tight integration with user-defined data
structures possible.
* **Value types** -- enable transparent solution of complex or non-scalar
systems. Most often, a value type is simply a ``double``, but it is possible
to use small statically-sized matrices as value type, which may increase
cache-locality, or convergence ratio, or both, when the system matrix has a
block structure.
* **Matrix adapters** -- allow AMGCL to construct a solver from some common
matrix formats. Internally, the CRS_ format is used, but it is easy to adapt
any matrix format that allows row-wise iteration over its non-zero elements.
* **Coarsening strategies** -- various options for creating coarse systems in
the AMG hierarchy. A coarsening strategy takes the system matrix :math:`A` at
the current level, and returns prolongation operator :math:`P` and the
corresponding restriction operator :math:`R`.
* **Relaxation methods** -- or smoothers, that are used on each level of the
AMG hierarchy during solution phase.
* **Preconditioners** -- aside from the AMG, AMGCL implements preconditioners
for some common problem types. For example, there is a Schur complement
pressure correction preconditioner for Navie-Stokes type problems, or CPR
preconditioner for reservoir simulations. Also, it is possible to use single
level relaxation method as a preconditioner.
* **Iterative solvers** -- Krylov subspace methods that may be combined with
the AMG (or other) preconditioners in order to solve the linear system.

2 changes: 1 addition & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@
#show_authors = False

# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
#pygments_style = 'sphinx'

# A list of ignored prefixes for module index sorting.
#modindex_common_prefix = []
Expand Down

0 comments on commit f0276ca

Please sign in to comment.