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

Public Methods | |
| virtual | ~LinEqSystem () |
| virtual void | init ()=0 |
| virtual void | exit ()=0 |
| virtual bool | ok () const=0 |
| LinEqPrecMode | getPrecMode () const |
| virtual bool | hasLeftPrec () const=0 |
| virtual bool | hasRightPrec () const=0 |
| virtual void | connect (Handle(LinEqCommBlk) &communication)=0 |
| virtual void | receive ()=0 |
| virtual int | getWork (const LinEqSysWork work_tp=TOTAL_WORK) const=0 |
| virtual real | getStorage (const LinEqSysStorage storage_tp=TOTAL_STORAGE) const=0 |
| virtual void | performance (LinEqStatBlk &performance_status)=0 |
| bool | compatible (LinEqPrecMode algprec_mode) |
| virtual void | residual (LinEqVector &v, Residual_type residual_tp=ORIGINAL_RES)=0 |
| virtual void | residuals (LinEqVector &r, LinEqVector &s)=0 |
| virtual void | residuals (LinEqVector &r, LinEqVector &s, LinEqVector &z)=0 |
| virtual void | matvec (const LinEqVector &c, LinEqVector &d, TransposeMode tpmode=NOT_TRANSPOSED, bool add_to_yb=false)=0 |
| virtual void | matvecLeftPrec (const LinEqVector &c, LinEqVector &d, TransposeMode tpmode=NOT_TRANSPOSED)=0 |
| virtual void | matvecRightPrec (const LinEqVector &c, LinEqVector &d, TransposeMode tpmode=NOT_TRANSPOSED)=0 |
| virtual void | matvecPrec (const LinEqVector &c, LinEqVector &d, TransposeMode tpmode=NOT_TRANSPOSED)=0 |
| virtual void | applyLeftPrec (const LinEqVector &c, LinEqVector &d, TransposeMode tpmode=NOT_TRANSPOSED)=0 |
| virtual void | applyRightPrec (const LinEqVector &c, LinEqVector &d, TransposeMode tpmode=NOT_TRANSPOSED)=0 |
| virtual void | applyPrec (const LinEqVector &c, LinEqVector &d, TransposeMode tpmode=NOT_TRANSPOSED)=0 |
| virtual LinEqMatrix& | A ()=0 |
| virtual const LinEqMatrix& | A () const=0 |
| virtual LinEqVector& | x ()=0 |
| virtual const LinEqVector& | x () const=0 |
| virtual LinEqVector& | b ()=0 |
| virtual const LinEqVector& | b () const=0 |
| virtual bool | factorize (const FactStrategy &fstrategy)=0 |
| virtual void | forwBack ()=0 |
| virtual void | debugPrint (Os os, int amount_of_output=1) const=0 |
Public Attributes | |
| bool | allow_factorization |
Protected Methods | |
| LinEqSystem (LinEqStorageMode storage_mode=EXTERNAL_STORAGE) | |
Protected Attributes | |
| LinEqPrecMode | sysprec_mode |
| LinEqStorageMode | storage_mode |
NAME: LinEqSystem - base class for representing system of linear equations
DESCRIPTION:
The class defines an interface to systems of linear equations. The coefficient matrix and vectors for the solution, the right-hand side and eventual preconditioners are defined as data items in derived classes for standard and preconditioned systems. respectively. The interface specified in this base class covers "init" and "exit" functions, and functions for matrix-vector products (needed by iterative solvers). A particular derived class incorporates preconditioners for the system.
Class "LinEqSystem" is typically used by iterative solvers. Since all the actions that must be performed on a system in an iterative solver are declared as virtual functions in the base class "LinEqSystem", it is sufficient to work with a "LinEqSystem" pointer/reference. Initialization of the system, however, needs direct access to the particular derived class object "LinEqSystemStd" or "LinEqSystemPrec".
|
|
There are no data items in this class and the default constructor is sufficient for initializing an object. Observe that the constructor is protected so that only derived class objects can be created by users. The "LinEqSystem" hierarchy is not meant to be managed by a parameter class "create" function. If the user expects that preconditioning may be desired, he declares a "LinEqSystemPrec" object, otherwise he declares a "LinEqSystemStd" object. |
|
|
|
|
|
Reimplemented in LinEqSystemStd. |
|
|
Reimplemented in LinEqSystemStd. |
|
|
Reimplemented in LinEqSystemStd, LinEqSystemPrec, and LinEqSystemBlockPrec. |
|
|
Reimplemented in LinEqSystemStd, and LinEqSystemPrec. |
|
|
Reimplemented in LinEqSystemStd, LinEqSystemPrec, and LinEqSystemBlockPrec. |
|
|
Reimplemented in LinEqSystemStd. |
|
|
Reimplemented in LinEqSystemStd. |
|
|
checks whether the preconditioing mode of the current system is compatible with the preconditioning options provided by some solver in the "LinEqSolver" hierarchy. |
|
|
Reimplemented in LinEqSystemPrec. |
|
|
Reimplemented in LinEqSystemStd, LinEqSystemPrec, and LinEqSystemBlockPrec. |
|
|
Reimplemented in LinEqSystemStd, and LinEqSystemPrec. |
|
|
Reimplemented in LinEqSystemStd, and LinEqSystemPrec. |
|
|
Reimplemented in LinEqSystemStd, and LinEqSystemPrec. |
|
|
returns the current preconditioning mode, i.e., whether no, left, right or combined preconditioners are in use. Note that the attachment of an identity preconditioner (class "PrecNone") are neglected when evaluating this mode. |
|
|
Reimplemented in LinEqSystemStd, LinEqSystemPrec, and LinEqSystemBlockPrec. |
|
|
Reimplemented in LinEqSystemStd, LinEqSystemPrec, and LinEqSystemBlockPrec. |
|
|
Reimplemented in LinEqSystemStd, LinEqSystemPrec, and LinEqSystemBlockPrec. |
|
|
Reimplemented in LinEqSystemStd, LinEqSystemPrec, and LinEqSystemBlockPrec. |
|
|
Reimplemented in LinEqSystemStd, LinEqSystemPrec, and LinEqSystemBlockPrec. |
|
|
Reimplemented in LinEqSystemStd, and LinEqSystemPrec. |
|
|
Reimplemented in LinEqSystemStd, and LinEqSystemPrec. |
|
|
Reimplemented in LinEqSystemStd, and LinEqSystemPrec. |
|
|
Reimplemented in LinEqSystemStd, and LinEqSystemPrec. |
|
|
Reimplemented in LinEqSystemStd, LinEqSystemPrec, and LinEqSystemBlockPrec. |
|
|
Reimplemented in LinEqSystemStd, LinEqSystemPrec, and LinEqSystemBlockPrec. |
|
|
Reimplemented in LinEqSystemStd, and LinEqSystemPrec. |
|
|
Reimplemented in LinEqSystemStd, and LinEqSystemPrec. |
|
|
Reimplemented in LinEqSystemStd, and LinEqSystemPrec. |
|
|
Reimplemented in LinEqSystemStd, and LinEqSystemPrec. |
|
|
Reimplemented in LinEqSystemStd. |
|
|
Reimplemented in LinEqSystemStd. |
|
|
|
|
|
|
|
|
|