#include <LinEqSystem.h>
Inheritance diagram for LinEqSystemPrec::

Public Methods | |
| LinEqSystemPrec (LinEqStorageMode storage_mode=EXTERNAL_STORAGE) | |
| LinEqSystemPrec (LinEqMatrix &A, LinEqVector &x, LinEqVector &b) | |
| LinEqSystemPrec (Matrix(NUMT) &A, Vector(NUMT) &x, Vector(NUMT) &b) | |
| ~LinEqSystemPrec () | |
| virtual void | init () |
| virtual void | exit () |
| virtual bool | ok () const |
| void | attach (LinEqMatrix &A, LinEqVector &x, LinEqVector &b) |
| void | attach (LinEqMatrix &A) |
| void | attach (LinEqVector &x, LinEqVector &b) |
| void | attach (LinEqVector &x) |
| void | attach (Matrix(NUMT) &A, Vector(NUMT) &x, Vector(NUMT) &b) |
| void | attach (Matrix(NUMT) &A) |
| void | attach (Vector(NUMT) &x, Vector(NUMT) &b) |
| void | attach (Vector(NUMT) &x) |
| void | attach (Precond_prm &precprm) |
| void | attach (Precond_prm &precprm, PrecBasis &Apb) |
| void | attach (Precond_prm &precprm, LinEqMatrix &ApbMat, bool Apb_is_A=true) |
| void | attach (Precond_prm &precprm, Matrix(NUMT) &ApbMat, bool Apb_is_A=true) |
| void | attach (Precond &prec) |
| void | attach (Precond &prec, PrecBasis &Apb) |
| void | attach (Precond &prec, LinEqMatrix &ApbMat, bool Apb_is_A=true) |
| void | attach (Precond &prec, Matrix(NUMT) &ApbMat, bool Apb_is_A=true) |
| Precond& | getPrec (const bool left=true) |
| void | getPrec (LinEqMatrix &precmat, String &precname, const bool left=true) const |
| virtual bool | hasLeftPrec () const |
| virtual bool | hasRightPrec () const |
| virtual void | connect (Handle(LinEqCommBlk) &communication) |
| virtual void | receive () |
| virtual int | getWork (const LinEqSysWork work_tp=TOTAL_WORK) const |
| virtual real | getStorage (const LinEqSysStorage storage_tp=TOTAL_STORAGE) const |
| virtual void | performance (LinEqStatBlk &performance_status) |
| virtual void | residual (LinEqVector &v, Residual_type residual_tp=ORIGINAL_RES) |
| virtual void | residuals (LinEqVector &r, LinEqVector &s) |
| virtual void | residuals (LinEqVector &r, LinEqVector &s, LinEqVector &z) |
| virtual void | matvec (const LinEqVector &c, LinEqVector &d, TransposeMode tpmode=NOT_TRANSPOSED, bool add_to_yb=false) |
| virtual void | matvecLeftPrec (const LinEqVector &c, LinEqVector &d, TransposeMode tpmode=NOT_TRANSPOSED) |
| virtual void | matvecRightPrec (const LinEqVector &c, LinEqVector &d, TransposeMode tpmode=NOT_TRANSPOSED) |
| virtual void | matvecPrec (const LinEqVector &c, LinEqVector &d, TransposeMode tpmode=NOT_TRANSPOSED) |
| virtual void | applyLeftPrec (const LinEqVector &c, LinEqVector &d, TransposeMode tpmode=NOT_TRANSPOSED) |
| virtual void | applyRightPrec (const LinEqVector &c, LinEqVector &d, TransposeMode tpmode=NOT_TRANSPOSED) |
| virtual void | applyPrec (const LinEqVector &c, LinEqVector &d, TransposeMode tpmode=NOT_TRANSPOSED) |
| virtual bool | factorize (const FactStrategy &fstrategy) |
| virtual void | forwBack () |
| virtual void | debugPrint (Os os, int amount_of_output=1) const |
| void | attachCommAdm (const SubdCommAdm &adm_) |
Protected Attributes | |
| Handle(Precond) | Cleft |
| Handle(Precond) | Cright |
| bool | attachedCleft |
| bool | attachedCright |
| PrecBasis | ApbLeft |
| PrecBasis | ApbRight |
| int | applyLeftCalls |
| int | applyRightCalls |
| Handle(SubdCommAdm) | comm_adm |
NAME: LinEqSystemPrec - preconditioned system of linear equations
DESCRIPTION:
The class defines the interface to preconditoned liner system consisting of a coefficient matrix "A" and the two vectors "x" and "b" representing the solution and the right-hand side, as well as left ("Cleft") and/or right ("Cright") preconditoners. As a matter of fact, there are always two preconditioners attached. The use of none, left or right preconditioning is then implemented by attchment of the identity preconditioner (class "PrecNone").
|
|
See class "LinEqSystemStd". |
|
|
See documentation of one of the overloaded constructor. |
|
|
See documentation of one of the overloaded constructor. |
|
|
|
|
|
Reimplemented from LinEqSystemStd. Reimplemented in LinEqSystemBlockPrec. |
|
|
these functions calls the "apply" function of the corresponding preconditioner object(s). Reimplemented from LinEqSystemStd. |
|
|
Reimplemented from LinEqSystemStd. Reimplemented in LinEqSystemBlockPrec. |
|
|
See documentation of one of the overloaded functions. Reimplemented in LinEqSystemBlockPrec. |
|
|
See documentation of one of the overloaded functions. Reimplemented in LinEqSystemBlockPrec. |
|
|
See documentation of one of the overloaded functions. Reimplemented in LinEqSystemBlockPrec. |
|
|
See documentation of one of the overloaded functions. Reimplemented in LinEqSystemBlockPrec. |
|
|
See documentation of one of the overloaded functions. Reimplemented in LinEqSystemBlockPrec. |
|
|
See documentation of one of the overloaded functions. Reimplemented in LinEqSystemBlockPrec. |
|
|
See documentation of one of the overloaded functions. Reimplemented in LinEqSystemBlockPrec. |
|
|
See documentation of one of the overloaded functions. Reimplemented in LinEqSystemBlockPrec. |
|
|
See documentation of one of the overloaded functions. Reimplemented from LinEqSystemStd. Reimplemented in LinEqSystemBlockPrec. |
|
|
See documentation of one of the overloaded functions. Reimplemented from LinEqSystemStd. Reimplemented in LinEqSystemBlockPrec. |
|
|
See documentation of one of the overloaded functions. Reimplemented from LinEqSystemStd. Reimplemented in LinEqSystemBlockPrec. |
|
|
See documentation of one of the overloaded functions. Reimplemented from LinEqSystemStd. Reimplemented in LinEqSystemBlockPrec. |
|
|
See documentation of one of the overloaded functions. Reimplemented from LinEqSystemStd. Reimplemented in LinEqSystemBlockPrec. |
|
|
See documentation of one of the overloaded functions. Reimplemented from LinEqSystemStd. Reimplemented in LinEqSystemBlockPrec. |
|
|
See documentation of one of the overloaded functions. Reimplemented from LinEqSystemStd. Reimplemented in LinEqSystemBlockPrec. |
|
|
there are additional versions of "attach" for insertion of precondtioners. Each attachment is accompanied by a matrix or "PrecBasis" object used for initialization of the preconditioner (the preconditioner object is allocated and handled internally, but the preconditioning operator is constructed on basis of the matrix or "PrecBasis" input). Reimplemented from LinEqSystemStd. Reimplemented in LinEqSystemBlockPrec. |
|
|
|
|
|
Reimplemented from LinEqSystem. |
|
|
prints various information useful for debugging. If the flag "printMatVec" is "true", the contents of "A", "x" and "b" are printed. Reimplemented from LinEqSystemStd. Reimplemented in LinEqSystemBlockPrec. |
|
|
cleans up after use. Reimplemented from LinEqSystemStd. |
|
|
neglects the presence of preconditioners. Reimplemented from LinEqSystemStd. |
|
|
neglects the presence of preconditioners. Reimplemented from LinEqSystemStd. |
|
|
See documentation of one of the overloaded functions. Reimplemented in LinEqSystemBlockPrec. |
|
|
returns the left or right preconditoner object depending on the flag "left". Reimplemented in LinEqSystemBlockPrec. |
|
|
returns the storage cost for this system. The parameter of type "LinEqSysStorage" can be used to specify whether the total storage cost or a subset is returned. Reimplemented from LinEqSystemStd. Reimplemented in LinEqSystemBlockPrec. |
|
|
returns an estimate of accumulated work used internally by this system. The parameter of type "LinEqSysWork" can be used to specify whether the total work cost or a subset is returned. Reimplemented from LinEqSystemStd. Reimplemented in LinEqSystemBlockPrec. |
|
|
return "true" if there is a left preconditioner (other than the identity) attached, respectively. Reimplemented from LinEqSystemStd. Reimplemented in LinEqSystemBlockPrec. |
|
|
return "true" if there is a right preconditioner (other than the identity) attached, respectively. Reimplemented from LinEqSystemStd. Reimplemented in LinEqSystemBlockPrec. |
|
|
initializes the system before use. Reimplemented from LinEqSystemStd. Reimplemented in LinEqSystemBlockPrec. |
|
|
the matrix by vector products involving preconditoners are actually applied. Reimplemented from LinEqSystemStd. |
|
|
Reimplemented from LinEqSystemStd. |
|
|
Reimplemented from LinEqSystemStd. |
|
|
Reimplemented from LinEqSystemStd. |
|
|
checks that all entities are allocated and correcly set up. Reimplemented from LinEqSystemStd. Reimplemented in LinEqSystemBlockPrec. |
|
|
record performance data in the supplied "LinEqStatBlk" object. This information can then be presented by calling the member functions of the "LinEqStatBlk" object. Reimplemented from LinEqSystemStd. Reimplemented in LinEqSystemBlockPrec. |
|
|
tells the system to fetch new data loaded in the connected "LinEqCommBlk". This function is seldom used directly by application programs. Reimplemented from LinEqSystemStd. |
|
|
computes the residual based on the current value of the solution vector "x". The "Residual_type" parameter determines whether the original or the preconditioned residual is computed. Reimplemented from LinEqSystemStd. |
|
|
Reimplemented from LinEqSystemStd. |
|
|
Reimplemented from LinEqSystemStd. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|