#include <PrecAlgebraic.h>
Inheritance diagram for PrecRILU::

Public Methods | |
| PrecRILU (const Precond_prm &p) | |
| virtual | ~PrecRILU () |
| virtual void | init (PrecBasis &Apb) |
| virtual void | apply (const LinEqVector &c, LinEqVector &d, TransposeMode tpmode=NOT_TRANSPOSED) |
| virtual int | getWork (const PrecondWork work_tp=APPLY_PREC_WORK) const |
| virtual real | getStorage () const |
| virtual void | performance (PrecondStatistics &precStat) |
| virtual String | description () const |
NAME: PrecRILU - RILU(w) preconditioner for linear systems.
DESCRIPTION:
This class computes and applies the RILU factorization based on a given coefficient matrix. For the relaxation parameter "omega" = 0 this is equivalent to ILU, while "omega" = 1 leads to the unperturbed MILU preconditioner. Note that the factorization is restricted to fill-in level 0, i.e., no fill-in is allowed.
|
|
The only constructor accepts a "Precond_prm" object. |
|
|
|
|
|
computes the result of applying the current preconditoner to a "LinEqVector" object "c". The result is returned in "d". Depending on the "TransposeMode" parameter, the preconditoner can be used as is (default) or as transposed/conjugate transposed operator. Reimplemented from PrecAlgebraic. |
|
|
Reimplemented from Precond. |
|
|
returns the amount of storage needed for the current preconditioner. Reimplemented from PrecAlgebraic. |
|
|
returns the work estimate for the last performed preconditioning operation. Reimplemented from Precond. |
|
|
initializes the preconditioner, e.g. by computing an incomplete factorization. The function "init" should perform internal redimensioning if necessary. For algebraic preconditioners where C is based directly on A with the same sparsity pattern, C should be redimensioned by a "C.redim(A)" statement like we have for "LinEqVector" objects. The "Matrix"-heriarchy must then have a virtual makeItSimilar function (see "Vector"). Reimplemented from PrecAlgebraic. |
|
|
records preconditioning statistics in the supplied "PrecondStatistics" object. This object is usually a part of a "LinEqStatBlk" object which is used to collect and performance statistics. Reimplemented from Precond. |