summaryrefslogtreecommitdiffhomepage
path: root/eigen/doc/MatrixfreeSolverExample.dox
diff options
context:
space:
mode:
Diffstat (limited to 'eigen/doc/MatrixfreeSolverExample.dox')
-rw-r--r--eigen/doc/MatrixfreeSolverExample.dox21
1 files changed, 21 insertions, 0 deletions
diff --git a/eigen/doc/MatrixfreeSolverExample.dox b/eigen/doc/MatrixfreeSolverExample.dox
new file mode 100644
index 0000000..9921c72
--- /dev/null
+++ b/eigen/doc/MatrixfreeSolverExample.dox
@@ -0,0 +1,21 @@
+
+namespace Eigen {
+
+/**
+
+\eigenManualPage MatrixfreeSolverExample Matrix-free solvers
+
+Iterative solvers such as ConjugateGradient and BiCGSTAB can be used in a matrix free context. To this end, user must provide a wrapper class inheriting EigenBase<> and implementing the following methods:
+ - Index rows() and Index cols(): returns number of rows and columns respectively
+ - operator* with and Eigen dense column vector
+ - resize(rows,cols): needed for source compatibility (can stay empty)
+
+Eigen::internal::traits<> must also be specialized for the wrapper type.
+
+For efficiency purpose, one might also want to provide a custom preconditioner. Here is an example using ConjugateGradient and implementing also a custom Jacobi preconditioner:
+\include matrixfree_cg.cpp
+Output: \verbinclude matrixfree_cg.out
+
+*/
+
+} \ No newline at end of file