Diffpack Documentation


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

LinEqSystem Class Reference

base class for representing system of linear equations. More...

#include <LinEqSystem.h>

Inheritance diagram for LinEqSystem::

HandleId LinEqSystemStd LinEqSystemPrec LinEqSystemBlockPrec List of all members.

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 LinEqMatrixA ()=0
virtual const LinEqMatrixA () const=0
virtual LinEqVectorx ()=0
virtual const LinEqVectorx () const=0
virtual LinEqVectorb ()=0
virtual const LinEqVectorb () 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

Detailed Description

base class for representing system of linear equations.

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


Constructor & Destructor Documentation

LinEqSystem::LinEqSystem ( LinEqStorageMode storage_mode = EXTERNAL_STORAGE ) [protected]
 

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.

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


Member Function Documentation

const LinEqMatrix & LinEqSystem::A ( ) const [pure virtual]
 

Reimplemented in LinEqSystemStd.

LinEqMatrix & LinEqSystem::A ( ) [pure virtual]
 

Reimplemented in LinEqSystemStd.

void LinEqSystem::applyLeftPrec ( const LinEqVector & c,
LinEqVector & d,
TransposeMode tpmode = NOT_TRANSPOSED ) [pure virtual]
 

Reimplemented in LinEqSystemStd, LinEqSystemPrec, and LinEqSystemBlockPrec.

void LinEqSystem::applyPrec ( const LinEqVector & c,
LinEqVector & d,
TransposeMode tpmode = NOT_TRANSPOSED ) [pure virtual]
 

Reimplemented in LinEqSystemStd, and LinEqSystemPrec.

void LinEqSystem::applyRightPrec ( const LinEqVector & c,
LinEqVector & d,
TransposeMode tpmode = NOT_TRANSPOSED ) [pure virtual]
 

Reimplemented in LinEqSystemStd, LinEqSystemPrec, and LinEqSystemBlockPrec.

const LinEqVector & LinEqSystem::b ( ) const [pure virtual]
 

Reimplemented in LinEqSystemStd.

LinEqVector & LinEqSystem::b ( ) [pure virtual]
 

Reimplemented in LinEqSystemStd.

bool LinEqSystem::compatible ( LinEqPrecMode algprec_mode )
 

checks whether the preconditioing mode of the current system is compatible with the preconditioning options provided by some solver in the "LinEqSolver" hierarchy.

void LinEqSystem::connect ( Handle(LinEqCommBlk) & communication ) [pure virtual]
 

Reimplemented in LinEqSystemPrec.

void LinEqSystem::debugPrint ( Os os,
int amount_of_output = 1 ) const [pure virtual]
 

Reimplemented in LinEqSystemStd, LinEqSystemPrec, and LinEqSystemBlockPrec.

void LinEqSystem::exit ( ) [pure virtual]
 

Reimplemented in LinEqSystemStd, and LinEqSystemPrec.

bool LinEqSystem::factorize ( const FactStrategy & fstrategy ) [pure virtual]
 

Reimplemented in LinEqSystemStd, and LinEqSystemPrec.

void LinEqSystem::forwBack ( ) [pure virtual]
 

Reimplemented in LinEqSystemStd, and LinEqSystemPrec.

LinEqPrecMode LinEqSystem::getPrecMode ( ) const [inline]
 

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.

real LinEqSystem::getStorage ( const LinEqSysStorage storage_tp = TOTAL_STORAGE ) const [pure virtual]
 

Reimplemented in LinEqSystemStd, LinEqSystemPrec, and LinEqSystemBlockPrec.

int LinEqSystem::getWork ( const LinEqSysWork work_tp = TOTAL_WORK ) const [pure virtual]
 

Reimplemented in LinEqSystemStd, LinEqSystemPrec, and LinEqSystemBlockPrec.

bool LinEqSystem::hasLeftPrec ( ) const [pure virtual]
 

Reimplemented in LinEqSystemStd, LinEqSystemPrec, and LinEqSystemBlockPrec.

bool LinEqSystem::hasRightPrec ( ) const [pure virtual]
 

Reimplemented in LinEqSystemStd, LinEqSystemPrec, and LinEqSystemBlockPrec.

void LinEqSystem::init ( ) [pure virtual]
 

Reimplemented in LinEqSystemStd, LinEqSystemPrec, and LinEqSystemBlockPrec.

void LinEqSystem::matvec ( const LinEqVector & c,
LinEqVector & d,
TransposeMode tpmode = NOT_TRANSPOSED,
bool add_to_yb = false ) [pure virtual]
 

Reimplemented in LinEqSystemStd, and LinEqSystemPrec.

void LinEqSystem::matvecLeftPrec ( const LinEqVector & c,
LinEqVector & d,
TransposeMode tpmode = NOT_TRANSPOSED ) [pure virtual]
 

Reimplemented in LinEqSystemStd, and LinEqSystemPrec.

void LinEqSystem::matvecPrec ( const LinEqVector & c,
LinEqVector & d,
TransposeMode tpmode = NOT_TRANSPOSED ) [pure virtual]
 

Reimplemented in LinEqSystemStd, and LinEqSystemPrec.

void LinEqSystem::matvecRightPrec ( const LinEqVector & c,
LinEqVector & d,
TransposeMode tpmode = NOT_TRANSPOSED ) [pure virtual]
 

Reimplemented in LinEqSystemStd, and LinEqSystemPrec.

bool LinEqSystem::ok ( ) const [pure virtual]
 

Reimplemented in LinEqSystemStd, LinEqSystemPrec, and LinEqSystemBlockPrec.

void LinEqSystem::performance ( LinEqStatBlk & performance_status ) [pure virtual]
 

Reimplemented in LinEqSystemStd, LinEqSystemPrec, and LinEqSystemBlockPrec.

void LinEqSystem::receive ( ) [pure virtual]
 

Reimplemented in LinEqSystemStd, and LinEqSystemPrec.

void LinEqSystem::residual ( LinEqVector & v,
Residual_type residual_tp = ORIGINAL_RES ) [pure virtual]
 

Reimplemented in LinEqSystemStd, and LinEqSystemPrec.

void LinEqSystem::residuals ( LinEqVector & r,
LinEqVector & s,
LinEqVector & z ) [pure virtual]
 

Reimplemented in LinEqSystemStd, and LinEqSystemPrec.

void LinEqSystem::residuals ( LinEqVector & r,
LinEqVector & s ) [pure virtual]
 

Reimplemented in LinEqSystemStd, and LinEqSystemPrec.

const LinEqVector & LinEqSystem::x ( ) const [pure virtual]
 

Reimplemented in LinEqSystemStd.

LinEqVector & LinEqSystem::x ( ) [pure virtual]
 

Reimplemented in LinEqSystemStd.


Member Data Documentation

bool LinEqSystem::allow_factorization
 

LinEqStorageMode LinEqSystem::storage_mode [protected]
 

LinEqPrecMode LinEqSystem::sysprec_mode [protected]
 


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