Diffpack Documentation

(Functionality not available, requires installation of an additional Diffpack Toolbox)


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

PrecML Class Reference

interface class for multilevel preconditioners. More...

#include <PrecML.h>

Inheritance diagram for PrecML::

Precond HandleId List of all members.

Public Methods

 PrecML (const Precond_prm &p)
virtual ~PrecML ()
virtual void attach (MLSolver &dds)
virtual void attach (const PrecAction &precproc_)
virtual void init (MLSolver &dds)
virtual void init (PrecBasis &Apb)
virtual bool autoInit ()
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 String description () const

Protected Attributes

MLSolvermlsolver

Detailed Description

interface class for multilevel preconditioners.

NAME: PrecML - interface class for multilevel preconditioners

DESCRIPTION:

The base class implements an interface for preconditioning operations defined by the "MLSolver" classes of multilevel and multigrid preconditioners. In Diffpack, the preconditioner is a part of the linear system. The "Precond" interface is thus used from "LinEqSystem" classes.

The essential point is to attach a "MLSolver" object.


Constructor & Destructor Documentation

PrecML::PrecML ( const Precond_prm & p )
 

The only constructor accepts a "Precond_prm" object containing the preconditioning parameters. Note that there must be a valid "MLSolver" pointer, passed via the init function. No further initialization is required.

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


Member Function Documentation

void PrecML::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 PrecML::attach ( const PrecAction & precproc_ ) [inline, virtual]
 

permits the user to attach externally defined preconditioning actions with or without a user-supplied matrix.

Reimplemented from Precond.

void PrecML::attach ( MLSolver & dds ) [virtual]
 

bool PrecML::autoInit ( ) [virtual]
 

returns "true" if the preconditioner is automatically initialized, otherwise it returns "false".

Reimplemented from Precond.

String PrecML::description ( ) const [virtual]
 

Reimplemented from Precond.

real PrecML::getStorage ( ) const [virtual]
 

returns the amount of storage needed for the current preconditioner.

Reimplemented from Precond.

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

returns the work estimate for the last performed preconditioning operation.

Reimplemented from Precond.

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

See documentation of one of the overloaded functions.

Reimplemented from Precond.

void PrecML::init ( MLSolver & dds ) [virtual]
 

attach a "MLSolver" object. It is crucial to do that. "PrecML" is just an interface for this object.

bool PrecML::ok ( ) const [virtual]
 

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

Reimplemented from Precond.

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


Member Data Documentation

MLSolver * PrecML::mlsolver [protected]
 


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