Diffpack Documentation


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

PrecItSolver Class Reference

base class for inner iteration preconditioners for linear systems. More...

#include <PrecItSolver.h>

Inheritance diagram for PrecItSolver::

Precond HandleId PrecJacobiIter PrecSORIter PrecSSORIter List of all members.

Public Methods

virtual ~PrecItSolver ()
virtual void init (PrecBasis &Apb)
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 void get (LinEqMatrix &precmat, String &precname) const
void get (Precond_prm &precprm_) const

Protected Methods

 PrecItSolver (const Precond_prm &p)

Protected Attributes

Handle(LinEqSystempsys
Handle(LinEqSolverpiter
int inner_steps

Detailed Description

base class for inner iteration preconditioners for linear systems.

NAME: PrecItSolver - base class for inner iteration preconditioners for linear systems

DESCRIPTION:

The base class describes an interface for preconditioning operations defined in terms of inner iterations.


Constructor & Destructor Documentation

PrecItSolver::PrecItSolver ( 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.

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


Member Function Documentation

void PrecItSolver::apply ( const LinEqVector & c,
LinEqVector & d,
TransposeMode tpmode = NOT_TRANSPOSED ) [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.

void PrecItSolver::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 PrecItSolver::get ( LinEqMatrix & precmat,
String & precname ) const [virtual]
 

See documentation of one of the overloaded functions.

Reimplemented from Precond.

real PrecItSolver::getStorage ( ) const [virtual]
 

returns the amount of storage needed for the current preconditioner.

Reimplemented from Precond.

int PrecItSolver::getWork ( const PrecondWork work_tp = APPLY_PREC_WORK ) const [virtual]
 

returns the work estimate for the last performed preconditioning operation.

Reimplemented from Precond.

void PrecItSolver::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 PrecJacobiIter, PrecSORIter, and PrecSSORIter.

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

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

Reimplemented from Precond.

void PrecItSolver::performance ( PrecondStatistics & precStat ) [virtual]
 

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.

Reimplemented in PrecSORIter, and PrecSSORIter.


Member Data Documentation

int PrecItSolver::inner_steps [protected]
 

Handle(LinEqSolver) PrecItSolver::piter [protected]
 

Handle(LinEqSystem) PrecItSolver::psys [protected]
 


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