Diffpack Documentation


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

PrecProcedure Class Reference

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

#include <PrecProcedure.h>

Inheritance diagram for PrecProcedure::

Precond HandleId PrecUserDefProc List of all members.

Public Methods

virtual ~PrecProcedure ()
virtual bool redim (const LinEqVector &x)
virtual void init (PrecBasis &Apb)
virtual bool ok () const
virtual void apply (const LinEqVector &, LinEqVector &, TransposeMode=NOT_TRANSPOSED)
virtual real getStorage () const

Protected Methods

 PrecProcedure (const Precond_prm &p)

Protected Attributes

Handle(LinEqVectorscratch2

Detailed Description

base class for non-algebraic preconditioners for linear systems.

NAME: PrecProcedure - base class for non-algebraic preconditioners for linear systems

DESCRIPTION:

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


Constructor & Destructor Documentation

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

PrecProcedure::~PrecProcedure ( ) [virtual]
 


Member Function Documentation

void PrecProcedure::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 PrecUserDefProc.

real PrecProcedure::getStorage ( ) const [inline, virtual]
 

returns the amount of storage needed for the current preconditioner.

Reimplemented from Precond.

void PrecProcedure::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.

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

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

Reimplemented from Precond.

Reimplemented in PrecUserDefProc.

bool PrecProcedure::redim ( const LinEqVector & x ) [virtual]
 

redimensions the current preconditioner to match the supplied "LinEqVector" object.

Reimplemented from Precond.


Member Data Documentation

Handle(LinEqVector) PrecProcedure::scratch2 [protected]
 


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