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

Public Methods | |
| LinEqSystemStd (LinEqStorageMode storage_mode=EXTERNAL_STORAGE) | |
| LinEqSystemStd (LinEqMatrix &A, LinEqVector &x, LinEqVector &b) | |
| LinEqSystemStd (Matrix(NUMT) &A, Vector(NUMT) &x, Vector(NUMT) &b) | |
| ~LinEqSystemStd () | |
| 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) |
| bool | redim (const LinEqMatrix_prm &A_prm, const LinEqVector_prm &xb_prm) |
| bool | redim (const LinEqMatrix &A, const LinEqVector &xb) |
| virtual bool | hasLeftPrec () const |
| virtual bool | hasRightPrec () const |
| virtual void | connect (Handle(LinEqCommBlk))& |
| 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 LinEqMatrix& | A () |
| virtual const LinEqMatrix& | A () const |
| virtual LinEqVector& | x () |
| virtual const LinEqVector& | x () const |
| virtual LinEqVector& | b () |
| virtual const LinEqVector& | b () const |
| virtual bool | factorize (const FactStrategy &fstrategy) |
| virtual void | forwBack () |
| virtual void | debugPrint (Os os, int amount_of_output=1) const |
Protected Attributes | |
| Handle(LinEqMatrix) | Amat |
| Handle(LinEqVector) | sol |
| Handle(LinEqVector) | rhs |
| int | matvecCalls |
| int | factorizeCalls |
| int | forwbackCalls |
| LinEqVector | r |
NAME: LinEqSystemStd - standard system of linear equations (`$`Ax = b`$`)
DESCRIPTION:
The class defines the interface to standard liner system consisting of a coefficient matrix "A" and the two vectors "x" and "b" representing the solution and the right-hand side, respectively.
|
|
Standard systems can be created in three different ways. The first constructor accepts a "LinEqStorageMode" parameter that states whether the matrix and vector entities are managed inetrnally or supplied by the user. In case of "EXTERNAL_STORAGE", all items are supplied by the user calling the appropriate "attach" functions. When using "EXTERNAL_SOLUTION", only the solution vector is supplied by the user. Finally, in case of "INTERNAL_STORAGE" all entities are internally allocated. The use of constructors accepting "Matrix(NUMT)" and "Vector(NUMT)" or "LinEqMatrix" and "LinEqVector" arguments imply the "EXTERNAL_STORAGE" mode. |
|
|
See documentation of one of the overloaded constructor. |
|
|
See documentation of one of the overloaded constructor. |
|
|
|
|
|
See documentation of one of the overloaded functions. Reimplemented from LinEqSystem. |
|
|
returns the coefficient matrix "A". Reimplemented from LinEqSystem. |
|
|
Reimplemented from LinEqSystem. Reimplemented in LinEqSystemPrec, and LinEqSystemBlockPrec. |
|
|
applies the combined preconditioner "Cright*Cleft" to "c". Other versions ("applyLeftPrec" and "applyRightPrec") apply only one of the preconditioners. For a "LinEqSystemStd" object these functions have no action other than setting "d=c". Reimplemented from LinEqSystem. Reimplemented in LinEqSystemPrec. |
|
|
Reimplemented from LinEqSystem. Reimplemented in LinEqSystemPrec, and LinEqSystemBlockPrec. |
|
|
See documentation of one of the overloaded functions. Reimplemented in LinEqSystemPrec, and LinEqSystemBlockPrec. |
|
|
See documentation of one of the overloaded functions. Reimplemented in LinEqSystemPrec, and LinEqSystemBlockPrec. |
|
|
See documentation of one of the overloaded functions. Reimplemented in LinEqSystemPrec, and LinEqSystemBlockPrec. |
|
|
See documentation of one of the overloaded functions. Reimplemented in LinEqSystemPrec, and LinEqSystemBlockPrec. |
|
|
See documentation of one of the overloaded functions. Reimplemented in LinEqSystemPrec, and LinEqSystemBlockPrec. |
|
|
See documentation of one of the overloaded functions. Reimplemented in LinEqSystemPrec, and LinEqSystemBlockPrec. |
|
|
See documentation of one of the overloaded functions. Reimplemented in LinEqSystemPrec, and LinEqSystemBlockPrec. |
|
|
insert new matrix and/or vectors. Reimplemented in LinEqSystemPrec, and LinEqSystemBlockPrec. |
|
|
See documentation of one of the overloaded functions. Reimplemented from LinEqSystem. |
|
|
returns the right-hand side "b". 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 LinEqSystem. Reimplemented in LinEqSystemPrec, and LinEqSystemBlockPrec. |
|
|
cleans up after use. Reimplemented from LinEqSystem. Reimplemented in LinEqSystemPrec. |
|
|
factorizes the coefficient matrix. Return false if factorization failed. See "LinEqMatrix" for details. Reimplemented from LinEqSystem. Reimplemented in LinEqSystemPrec. |
|
|
solves the system based on the previously factorized matrix (see "factorize"). Reimplemented from LinEqSystem. Reimplemented in LinEqSystemPrec. |
|
|
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 LinEqSystem. Reimplemented in LinEqSystemPrec, and 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 LinEqSystem. Reimplemented in LinEqSystemPrec, and LinEqSystemBlockPrec. |
|
|
return "true" if there is a left or right preconditioner (other than the identity) attached. These functions will also return "false" for a standard system without preconditioning. Reimplemented from LinEqSystem. Reimplemented in LinEqSystemPrec, and LinEqSystemBlockPrec. |
|
|
Reimplemented from LinEqSystem. Reimplemented in LinEqSystemPrec, and LinEqSystemBlockPrec. |
|
|
initializes the system before use. Reimplemented from LinEqSystem. Reimplemented in LinEqSystemPrec, and LinEqSystemBlockPrec. |
|
|
computes the matrix by vector product "d=Ac". A number of specialized versions ("matvecLeftPrec", "matvecRightPrec" and "matvecPrec") are available that incorporates the left and/or right preconditioner(s). For a "LinEqSystemStd" object these functions behave like the plain "matvec". Reimplemented from LinEqSystem. Reimplemented in LinEqSystemPrec. |
|
|
Reimplemented from LinEqSystem. Reimplemented in LinEqSystemPrec. |
|
|
Reimplemented from LinEqSystem. Reimplemented in LinEqSystemPrec. |
|
|
Reimplemented from LinEqSystem. Reimplemented in LinEqSystemPrec. |
|
|
checks that all entities are allocated and correcly set up. Reimplemented from LinEqSystem. Reimplemented in LinEqSystemPrec, and 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 LinEqSystem. Reimplemented in LinEqSystemPrec, and LinEqSystemBlockPrec. |
|
|
tells the system to fetch new data loaded in the connected "LinEqCommBlk". This function is seldom used directly by application programs. Reimplemented from LinEqSystem. Reimplemented in LinEqSystemPrec. |
|
|
See documentation of one of the overloaded functions. |
|
|
redimension the system based on a given "LinEqMatrix" and "LinEqVector" objects, or based on correponding parameter classes. |
|
|
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 LinEqSystem. Reimplemented in LinEqSystemPrec. |
|
|
Reimplemented from LinEqSystem. Reimplemented in LinEqSystemPrec. |
|
|
Reimplemented from LinEqSystem. Reimplemented in LinEqSystemPrec. |
|
|
See documentation of one of the overloaded functions. Reimplemented from LinEqSystem. |
|
|
returns the solution vector "x". Reimplemented from LinEqSystem. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|