mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-09-12 17:33:15 +08:00
added doxygen flowchart
This commit is contained in:
parent
d85de1ef56
commit
90b3b6b572
@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \defgroup IterativeLinearSolvers_Module Iterative solvers module
|
* \defgroup IterativeLinearSolvers_Module (Iterative solvers module)
|
||||||
* This module aims to provide various iterative linear and non linear solver algorithms.
|
* This module aims to provide various iterative linear and non linear solver algorithms.
|
||||||
* It currently provides:
|
* It currently provides:
|
||||||
* - a constrained conjugate gradient
|
* - a constrained conjugate gradient
|
||||||
@ -25,6 +25,50 @@
|
|||||||
* - a DGMRES implementation
|
* - a DGMRES implementation
|
||||||
* - a MINRES implementation
|
* - a MINRES implementation
|
||||||
*
|
*
|
||||||
|
* Choosing the best solver for solving \c A \c x = \c b depends a lot on the preconditioner chosen as well as the properties of \c A. The following flowchart might help you.
|
||||||
|
* \dot width=50%
|
||||||
|
* digraph g {
|
||||||
|
* node [ fontname=Arial, fontsize=11];
|
||||||
|
* edge [ fontname=Helvetica, fontsize=10 ];
|
||||||
|
* A1[label="hermitian",shape="box"];
|
||||||
|
* A2[label="positive definite",shape="box"];
|
||||||
|
* CG[shape="plaintext"];
|
||||||
|
* A3[label="ill conditioned",shape="box"];
|
||||||
|
* A4[label="good preconditioner",shape="box"];
|
||||||
|
* A5[label="flexible preconditioner",shape="box"];
|
||||||
|
* A6[label="strongly indefinite",shape="box"];
|
||||||
|
* A8[label="large imaginary eigenvalue",shape="box"];
|
||||||
|
* A7[label="large imaginary eigenvalue",shape="box"];
|
||||||
|
*
|
||||||
|
* SYMMLQ[shape="plaintext"];
|
||||||
|
* MINRES[shape="plaintext"];
|
||||||
|
* GCR[shape="plaintext"];
|
||||||
|
* GMRES[shape="plaintext"];
|
||||||
|
* IDRSTABL[shape="plaintext"];
|
||||||
|
* IDRS[shape="plaintext"];
|
||||||
|
* BICGSTABL[shape="plaintext"];
|
||||||
|
* BICGSTAB[shape="plaintext"];
|
||||||
|
*
|
||||||
|
* A1 -> A2 [label="yes"];
|
||||||
|
* A2 -> CG [label="yes"];
|
||||||
|
* A2 -> A3 [label="no"];
|
||||||
|
* A3 -> SYMMLQ [label="yes"];
|
||||||
|
* A3 -> MINRES [label="no"];
|
||||||
|
*
|
||||||
|
* A1 -> A4 [label="no"];
|
||||||
|
* A4 -> A5 [label="yes"];
|
||||||
|
* A5 -> GCR [label="yes"];
|
||||||
|
* A5 -> GMRES [label="no"];
|
||||||
|
*
|
||||||
|
* A4 -> A6 [label="no"];
|
||||||
|
* A6 -> A8 [label="yes"];
|
||||||
|
* A6 -> A7 [label="no"];
|
||||||
|
* A7 -> BICGSTABL [label="yes"];
|
||||||
|
* A7 -> BICGSTAB [label="no"];
|
||||||
|
* A8 -> IDRSTABL [label="yes"];
|
||||||
|
* A8 -> IDRS [label="no"];
|
||||||
|
* }
|
||||||
|
* \enddot
|
||||||
* \code
|
* \code
|
||||||
* #include <unsupported/Eigen/IterativeSolvers>
|
* #include <unsupported/Eigen/IterativeSolvers>
|
||||||
* \endcode
|
* \endcode
|
||||||
|
Loading…
x
Reference in New Issue
Block a user