]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Extend documentation of PreconditionRelaxation 17041/head
authorPeter Munch <peterrmuench@gmail.com>
Sat, 18 May 2024 10:55:25 +0000 (12:55 +0200)
committerPeter Munch <peterrmuench@gmail.com>
Sat, 18 May 2024 10:55:25 +0000 (12:55 +0200)
doc/doxygen/references.bib
include/deal.II/lac/precondition.h

index 85c081c07751d4c2db88adb76e609cd0be106aec..3194268c9da9117660796246bb94ddb30dad15e3 100644 (file)
   pages = {102940}
 }
 
+@book{Varga2009,
+   title     = {Matrix iterative analysis},
+   author    = {Varga, R. S.},
+   publisher = {Springer},
+   address   = {Berlin},
+   edition   = {2nd},
+   year      = {2009},
+}
+
index aba0884a7a35f00eb11d21698e5f0e7e3cd43c06..7c6ae362acbc751ad4e5395b43d935402b80ea8f 100644 (file)
@@ -537,16 +537,29 @@ private:
  * Jacobi, SOR and SSOR preconditioners are implemented. For preconditioning,
  * refer to derived classes.
  *
- * The relaxation parameter can be set manually or can be automatically
- * determined by:
+ * One iteration is given as:
+ * @f[
+ *  x^{n+1} = x^{n} + \alpha P^{-1} (b-Ax^n).
+ * @f]
+ *
+ * The relaxation parameter $\alpha$ has to be in the range:
+ * @f[
+ *  0 < \alpha < \frac{2}{\lambda_{\max}(P^{-1}A)}.
+ * @f]
+ * Its theoretically optimal value is given by:
  * @f[
- *    \alpha^n_1 := \frac{2}{\lambda_{\max}+\lambda_{\min}}.
+ *    \alpha := \frac{2}{\lambda_{\min}(P^{-1}A)+\lambda_{\max}(P^{-1}A)}.
  * @f]
- * For this purpose, the user needs to set the relaxation parameter to zero.
- * Internally, the minimum and maximum eigenvalues of the preconditioned
- * system are estimated by an eigenvalue algorithm, and the resulting estimate
- * is multiplied by the 1.2 for safety reasons. For more details on the
- * underlying algorithms, see PreconditionChebyshev.
+ *
+ * For details on the algorithm, see @cite Varga2009.
+ *
+ * The relaxation parameter can be set manually or can be automatically
+ * determined, for which we use the theoretically optimal value.
+ * For this purpose, the user needs to set the relaxation parameter
+ * to zero. Internally, the minimum and maximum eigenvalues of the
+ * preconditioned system are estimated by an eigenvalue algorithm, and the
+ * resulting estimate is multiplied by the 1.2 for safety reasons. For more
+ * details on the underlying algorithms, see PreconditionChebyshev.
  */
 template <typename MatrixType         = SparseMatrix<double>,
           typename PreconditionerType = IdentityMatrix>
@@ -1998,7 +2011,7 @@ public:
  * contains all eigenvalues of the preconditioned matrix system and the degree
  * (i.e., number of iterations) is high enough, this class can also be used as
  * a direct solver. For an error estimation of the Chebyshev iteration that
- * can be used to determine the number of iteration, see Varga (2009).
+ * can be used to determine the number of iteration, see @cite Varga2009.
  *
  * In order to use Chebyshev as a solver, set the degree to
  * numbers::invalid_unsigned_int to force the automatic computation of the
@@ -2009,17 +2022,7 @@ public:
  * PreconditionChebyshev::AdditionalData::smoothing_range (it needs to be a
  * number less than one to force any iterations obviously).
  *
- * For details on the algorithm, see section 5.1 of
- * @code{.bib}
- * @book{Varga2009,
- *   Title     = {Matrix iterative analysis},
- *   Author    = {Varga, R. S.},
- *   Publisher = {Springer},
- *   Address   = {Berlin},
- *   Edition   = {2nd},
- *   Year      = {2009},
- * }
- * @endcode
+ * For details on the algorithm, see section 5.1 of @cite Varga2009.
  *
  * <h4>Requirements on the templated classes</h4>
  *

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.