Skip to content
Snippets Groups Projects
Commit 449d8097 authored by Tomáš Oberhuber's avatar Tomáš Oberhuber
Browse files

Small fixes in documentation of lineat solvers.

parent 2be4c35a
No related branches found
No related tags found
1 merge request!116Documentation for linear solvers and preconditioners
...@@ -8,7 +8,7 @@ Solvers of linear systems are one of the most important algorithms in scientific ...@@ -8,7 +8,7 @@ Solvers of linear systems are one of the most important algorithms in scientific
1. Stationary methods 1. Stationary methods
1. [Jacobi method](https://en.wikipedia.org/wiki/Jacobi_method) (\ref TNL::Solvers::Linear::Jacobi) 1. [Jacobi method](https://en.wikipedia.org/wiki/Jacobi_method) (\ref TNL::Solvers::Linear::Jacobi)
2. [Successive-overrelaxation method, SOR]([https://en.wikipedia.org/wiki/Successive_over-relaxation]) (\ref TNL::Solvers::Linear::SOR) - CPU only currently 2. [Successive-overrelaxation method, SOR]([https://en.wikipedia.org/wiki/Successive_over-relaxation]) (\ref TNL::Solvers::Linear::SOR)
2. Krylov subspace methods 2. Krylov subspace methods
1. [Conjugate gradient method, CG](https://en.wikipedia.org/wiki/Conjugate_gradient_method) (\ref TNL::Solvers::Linear::CG) 1. [Conjugate gradient method, CG](https://en.wikipedia.org/wiki/Conjugate_gradient_method) (\ref TNL::Solvers::Linear::CG)
2. [Biconjugate gradient stabilized method, BICGStab](https://en.wikipedia.org/wiki/Biconjugate_gradient_stabilized_method) (\ref TNL::Solvers::Linear::BICGStab) 2. [Biconjugate gradient stabilized method, BICGStab](https://en.wikipedia.org/wiki/Biconjugate_gradient_stabilized_method) (\ref TNL::Solvers::Linear::BICGStab)
......
...@@ -9,27 +9,6 @@ ...@@ -9,27 +9,6 @@
/* See Copyright Notice in tnl/Copyright */ /* See Copyright Notice in tnl/Copyright */
/* /*
* BICGStabL implements an iterative solver for non-symmetric linear systems,
* using the BiCGstab(l) algorithm described in [1] and [2]. It is a
* generalization of the stabilized biconjugate-gradient (BiCGstab) algorithm
* proposed by van der Vorst [3]. BiCGstab(1) is equivalent to BiCGstab, and
* BiCGstab(2) is a slightly more efficient version of the BiCGstab2 algorithm
* by Gutknecht [4], while BiCGstab(l>2) is a further generalization.
*
* This code was implemented by: Jakub Klinkovsky <klinkjak@fjfi.cvut.cz>
*
* [1] Gerard L. G. Sleijpen and Diederik R. Fokkema, "BiCGstab(l) for linear
* equations involving unsymmetric matrices with complex spectrum",
* Electronic Trans. on Numerical Analysis 1, 11-32 (1993).
* [2] Gerard L. G. Sleijpen, Henk A. van der Vorst, and Diederik R. Fokkema,
* "BiCGstab(l) and other Hybrid Bi-CG Methods", Numerical Algorithms 7,
* 75-109 (1994).
* [3] Henk A. van der Vorst, "Bi-CGSTAB: A fast and smoothly converging variant
* of Bi-CG for the solution of nonsymmetric linear systems, SIAM Journal on
* scientific and Statistical Computing 13.2, 631-644 (1992).
* [4] Martin H. Gutknecht, "Variants of BiCGStab for matrices with complex
* spectrum", IPS Research Report No. 91-14 (1991).
*
* TODO: further variations to explore: * TODO: further variations to explore:
* *
* [5] Gerard L. G. Sleijpen and Henk A. van der Vorst, "Reliable updated * [5] Gerard L. G. Sleijpen and Henk A. van der Vorst, "Reliable updated
...@@ -119,7 +98,7 @@ class BICGStabL ...@@ -119,7 +98,7 @@ class BICGStabL
* defines the following: * defines the following:
* *
* \e bicgstab-ell - number of Bi-CG iterations before the MR part starts. * \e bicgstab-ell - number of Bi-CG iterations before the MR part starts.
* *
* \e bicgstab-exact-residue - says whether the BiCGstab should compute the exact residue in * \e bicgstab-exact-residue - says whether the BiCGstab should compute the exact residue in
* each step (true) or to use a cheap approximation (false). * each step (true) or to use a cheap approximation (false).
* *
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#include "Preconditioner.h" #include "Preconditioner.h"
namespace TNL { namespace TNL {
namespace Solvers { namespace Solvers {
namespace Linear { namespace Linear {
...@@ -72,14 +73,14 @@ class Diagonal ...@@ -72,14 +73,14 @@ class Diagonal
using typename Preconditioner< Matrix >::MatrixPointer; using typename Preconditioner< Matrix >::MatrixPointer;
/** /**
* \brief This methods update the preconditione with respect to given matrix. * \brief This method updates the preconditioner with respect to given matrix.
* *
* \param matrixPointer smart pointer (\ref std::shared_ptr) to matrix the preconditioner is related to. * \param matrixPointer smart pointer (\ref std::shared_ptr) to matrix the preconditioner is related to.
*/ */
virtual void update( const MatrixPointer& matrixPointer ) override; virtual void update( const MatrixPointer& matrixPointer ) override;
/** /**
* \brief This methods applies the preconditioner. * \brief This method applies the preconditioner.
* *
* \param b is the input vector the preconditioner is applied on. * \param b is the input vector the preconditioner is applied on.
* \param x is the result of the preconditioning. * \param x is the result of the preconditioning.
...@@ -139,21 +140,19 @@ class Diagonal< Matrices::DistributedMatrix< Matrix > > ...@@ -139,21 +140,19 @@ class Diagonal< Matrices::DistributedMatrix< Matrix > >
using typename Preconditioner< MatrixType >::ConstVectorViewType; using typename Preconditioner< MatrixType >::ConstVectorViewType;
/** /**
* \brief This methods update the preconditione with respect to given matrix. * \brief Type of shared pointer to the matrix.
*
* \param matrixPointer smart pointer (\ref std::shared_ptr) to matrix the preconditioner is related to.
*/ */
using typename Preconditioner< MatrixType >::MatrixPointer; using typename Preconditioner< MatrixType >::MatrixPointer;
/** /**
* \brief This methods update the preconditione with respect to given matrix. * \brief This method updates the preconditioner with respect to given matrix.
* *
* \param matrixPointer smart pointer (\ref std::shared_ptr) to matrix the preconditioner is related to. * \param matrixPointer smart pointer (\ref std::shared_ptr) to matrix the preconditioner is related to.
*/ */
virtual void update( const MatrixPointer& matrixPointer ) override; virtual void update( const MatrixPointer& matrixPointer ) override;
/** /**
* \brief This methods applies the preconditioner. * \brief This method applies the preconditioner.
* *
* \param b is the input vector the preconditioner is applied on. * \param b is the input vector the preconditioner is applied on.
* \param x is the result of the preconditioning. * \param x is the result of the preconditioning.
......
...@@ -110,14 +110,14 @@ class ILU0_impl< Matrix, Real, Devices::Host, Index > ...@@ -110,14 +110,14 @@ class ILU0_impl< Matrix, Real, Devices::Host, Index >
using typename Preconditioner< Matrix >::MatrixPointer; using typename Preconditioner< Matrix >::MatrixPointer;
/** /**
* \brief This methods update the preconditione with respect to given matrix. * \brief This method updates the preconditioner with respect to given matrix.
* *
* \param matrixPointer smart pointer (\ref std::shared_ptr) to matrix the preconditioner is related to. * \param matrixPointer smart pointer (\ref std::shared_ptr) to matrix the preconditioner is related to.
*/ */
virtual void update( const MatrixPointer& matrixPointer ) override; virtual void update( const MatrixPointer& matrixPointer ) override;
/** /**
* \brief This methods applies the preconditioner. * \brief This method applies the preconditioner.
* *
* \param b is the input vector the preconditioner is applied on. * \param b is the input vector the preconditioner is applied on.
* \param x is the result of the preconditioning. * \param x is the result of the preconditioning.
......
...@@ -87,14 +87,14 @@ class ILUT ...@@ -87,14 +87,14 @@ class ILUT
} }
/** /**
* \brief This methods update the preconditione with respect to given matrix. * \brief This method updates the preconditioner with respect to given matrix.
* *
* \param matrixPointer smart pointer (\ref std::shared_ptr) to matrix the preconditioner is related to. * \param matrixPointer smart pointer (\ref std::shared_ptr) to matrix the preconditioner is related to.
*/ */
using Base::update; using Base::update;
/** /**
* \brief This methods applies the preconditioner. * \brief This method applies the preconditioner.
* *
* \param b is the input vector the preconditioner is applied on. * \param b is the input vector the preconditioner is applied on.
* \param x is the result of the preconditioning. * \param x is the result of the preconditioning.
......
...@@ -101,7 +101,7 @@ class Preconditioner ...@@ -101,7 +101,7 @@ class Preconditioner
} }
/** /**
* \brief This methods update the preconditione with respect to given matrix. * \brief This method updates the preconditioner with respect to given matrix.
* *
* \param matrixPointer smart pointer (\ref std::shared_ptr) to matrix the preconditioner is related to. * \param matrixPointer smart pointer (\ref std::shared_ptr) to matrix the preconditioner is related to.
*/ */
...@@ -109,7 +109,7 @@ class Preconditioner ...@@ -109,7 +109,7 @@ class Preconditioner
{} {}
/** /**
* \brief This methods applies the preconditioner. * \brief This method applies the preconditioner.
* *
* \param b is the input vector the preconditioner is applied on. * \param b is the input vector the preconditioner is applied on.
* \param x is the result of the preconditioning. * \param x is the result of the preconditioning.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment