NGSolve
4.9
|
A block-Jacobi preconditioner. More...
#include <blockjacobi.hpp>
Public Types | |
typedef TV_ROW | TVX |
typedef mat_traits< TM >::TSCAL | TSCAL |
Public Member Functions | |
BlockJacobiPrecond (const SparseMatrix< TM, TV_ROW, TV_COL > &amat, Table< int > &ablocktable) | |
int | Height () const |
inline function VHeight | |
virtual int | VHeight () const |
virtual function must be overloaded | |
int | Width () const |
inline function VWidth | |
virtual int | VWidth () const |
virtual function must be overloaded | |
virtual BaseVector * | CreateVector () const |
creates a matching vector (for square matrices) | |
virtual void | MultAdd (TSCAL s, const BaseVector &x, BaseVector &y) const |
virtual void | MultTransAdd (TSCAL s, const BaseVector &x, BaseVector &y) const |
virtual void | GSSmooth (BaseVector &x, const BaseVector &b, int steps=1) const |
performs steps Gauss-Seidel steps for the equation A x = b | |
virtual void | GSSmoothResiduum (BaseVector &x, const BaseVector &b, BaseVector &res, int steps=1) const |
does smoothing. The vector res contains the residuum (b-Ax) before and after the smoothing | |
virtual void | GSSmoothBack (BaseVector &x, const BaseVector &b, int steps=1) const |
does smoothing in reversed order | |
virtual void | GSSmoothNumbering (BaseVector &x, const BaseVector &b, const Array< int > &numbering, int forward=1) const |
virtual void | MemoryUsage (Array< MemoryUsageStruct * > &mu) const |
Protected Attributes | |
const SparseMatrix< TM, TV_ROW, TV_COL > & | mat |
a reference to the matrix | |
Array< Matrix< TM > * > | invdiag |
inverses of the small blocks |
A block-Jacobi preconditioner.
The blocks are specified by a table container