Diffpack Documentation


Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Search  

PrecAlgebraic Class Reference

base class for algebraic preconditioners for linear systems. More...

#include <PrecAlgebraic.h>

Inheritance diagram for PrecAlgebraic::

Precond HandleId PrecJacobi PrecRILU PrecSOR PrecSSOR PrecUserDefInv PrecUserDefLU PrecUserDefMat List of all members.

Public Methods

virtual ~PrecAlgebraic ()
virtual void init (PrecBasis &Apb)
virtual bool ok () const
virtual void apply (const LinEqVector &, LinEqVector &, TransposeMode=NOT_TRANSPOSED)
virtual real getStorage () const
virtual void get (LinEqMatrix &precmat, String &precname) const
void get (Precond_prm &precprm_) const

Protected Methods

 PrecAlgebraic (const Precond_prm &p)
virtual bool allocate (const LinEqMatrix &mat)

Protected Attributes

Handle(LinEqMatrixC

Detailed Description

base class for algebraic preconditioners for linear systems.

NAME: PrecAlgebraic - base class for algebraic preconditioners for linear systems

DESCRIPTION:

The base class describes an interface for preconditioning operations defined in terms of a preconditioning matrix.


Constructor & Destructor Documentation

PrecAlgebraic::PrecAlgebraic ( const Precond_prm & p ) [protected]
 

The only constructor accepts a "Precond_prm" object containing the preconditioning parameters. Note that this constructor is accessible only to derived classes.

PrecAlgebraic::~PrecAlgebraic ( ) [inline, virtual]
 


Member Function Documentation

bool PrecAlgebraic::allocate ( const LinEqMatrix & mat ) [protected, virtual]
 

void PrecAlgebraic::apply ( const LinEqVector & c,
LinEqVector & d,
TransposeMode tpmode = NOT_TRANSPOSED ) [inline, virtual]
 

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.

Reimplemented in PrecUserDefLU, PrecUserDefInv, PrecUserDefMat, PrecRILU, PrecJacobi, PrecSOR, and PrecSSOR.

void PrecAlgebraic::get ( Precond_prm & precprm_ ) const [inline]
 

returns the current set of preconditoning parameters. If the chosen preconditioner is of algebraic type, an overloaded version can be used to access the preconditioning matrix.

Reimplemented from Precond.

void PrecAlgebraic::get ( LinEqMatrix & precmat,
String & precname ) const [virtual]
 

See documentation of one of the overloaded functions.

Reimplemented from Precond.

real PrecAlgebraic::getStorage ( ) const [virtual]
 

returns the amount of storage needed for the current preconditioner.

Reimplemented from Precond.

Reimplemented in PrecRILU.

void PrecAlgebraic::init ( PrecBasis & Apb ) [virtual]
 

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 Precond.

Reimplemented in PrecUserDefLU, and PrecRILU.

bool PrecAlgebraic::ok ( ) const [inline, virtual]
 

returns "true" if the preconditioner is in normal state, otherwise it returns "false".

Reimplemented from Precond.

Reimplemented in PrecUserDefMat.


Member Data Documentation

Handle(LinEqMatrix) PrecAlgebraic::C [protected]
 


The documentation for this class was generated from the following file:
Copyright © 2003 inuTech GmbH. All rights reserved.