#include <PrecML.h>
Inheritance diagram for PrecML::

Public Methods | |
| PrecML (const Precond_prm &p) | |
| virtual | ~PrecML () |
| virtual void | attach (MLSolver &dds) |
| virtual void | attach (const PrecAction &precproc_) |
| virtual void | init (MLSolver &dds) |
| virtual void | init (PrecBasis &Apb) |
| virtual bool | autoInit () |
| virtual bool | ok () const |
| 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 |
Protected Attributes | |
| MLSolver* | mlsolver |
NAME: PrecML - interface class for multilevel preconditioners
DESCRIPTION:
The base class implements an interface for preconditioning operations defined by the "MLSolver" classes of multilevel and multigrid preconditioners. In Diffpack, the preconditioner is a part of the linear system. The "Precond" interface is thus used from "LinEqSystem" classes.
The essential point is to attach a "MLSolver" object.
|
|
The only constructor accepts a "Precond_prm" object containing the preconditioning parameters. Note that there must be a valid "MLSolver" pointer, passed via the init function. No further initialization is required. |
|
|
|
|
|
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 Precond. |
|
|
permits the user to attach externally defined preconditioning actions with or without a user-supplied matrix. Reimplemented from Precond. |
|
|
|
|
|
returns "true" if the preconditioner is automatically initialized, otherwise it returns "false". Reimplemented from Precond. |
|
|
Reimplemented from Precond. |
|
|
returns the amount of storage needed for the current preconditioner. Reimplemented from Precond. |
|
|
returns the work estimate for the last performed preconditioning operation. Reimplemented from Precond. |
|
|
See documentation of one of the overloaded functions. Reimplemented from Precond. |
|
|
attach a "MLSolver" object. It is crucial to do that. "PrecML" is just an interface for this object. |
|
|
returns "true" if the preconditioner is in normal state, otherwise it returns "false". Reimplemented from Precond. |
|
|
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. |
|
|
|