From 44861dcbfeee041223c4aac1ee075e92fa4daa01 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Sun, 18 Sep 2016 12:42:15 +0200 Subject: update --- eigen/doc/MatrixfreeSolverExample.dox | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 eigen/doc/MatrixfreeSolverExample.dox (limited to 'eigen/doc/MatrixfreeSolverExample.dox') 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 -- cgit v1.2.3