Diffpack Documentation


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

BasicItSolver Class Reference

base class for basic iterations. More...

#include <LinEqSolver.h>

Inheritance diagram for BasicItSolver::

IterativeSolver LinEqSolver HandleId Jacobi MLIter SOR SSOR List of all members.

Public Methods

 ~BasicItSolver ()
virtual bool ok () const
virtual bool solve (LinEqSystem &system)
virtual String getCategory () const
virtual bool inCategory (const String &baseclass_name) const

Protected Methods

 BasicItSolver ()
 BasicItSolver (const LinEqSolver_prm &pm)
virtual void init (const LinEqPrecMode algprec_mode)
virtual bool redim (LinEqSystem &system)
virtual void initDefaultCriterion ()
virtual void initCommBlk ()

Detailed Description

base class for basic iterations.

NAME: BasicItSolver - base class for basic iterations

DESCRIPTION:

This class is the base for any stationary iteration, where storage of residual vectors is not required.


Constructor & Destructor Documentation

BasicItSolver::BasicItSolver ( ) [protected]
 

See class "LinEqSolver".

BasicItSolver::BasicItSolver ( const LinEqSolver_prm & pm ) [protected]
 

See documentation of one of the overloaded constructor.

BasicItSolver::~BasicItSolver ( )
 


Member Function Documentation

String BasicItSolver::getCategory ( ) const [virtual]
 

returns a string indicating the current solver category, e.g., "DirectSolver" or "IterativeSolver".

Reimplemented from IterativeSolver.

bool BasicItSolver::inCategory ( const String & baseclass_name ) const [virtual]
 

checks if the current solver belongs to the specified category. This function is useful when one wants to cast a "LinEqSolver" object to some derived type in order to reach specialized functionality. The test on "inCategory" should then preceed the casting.

Reimplemented from IterativeSolver.

void BasicItSolver::init ( const LinEqPrecMode algprec_mode ) [protected, virtual]
 

to be called by "solve" before starting the iteration. This implies redimensioning of internal data structures and other bookeeping details to ensure the flexibility of the "IterativeSolver" framework. (For internal use only).

Reimplemented from IterativeSolver.

void BasicItSolver::initCommBlk ( ) [protected, virtual]
 

initializes the communication block needed for communication with attached "LinEqSystem", "EigenEstimator", "Precond" and "ConvMonitor" objects. This function is typically called by "init". (For internal use only).

Reimplemented from IterativeSolver.

void BasicItSolver::initDefaultCriterion ( ) [protected, virtual]
 

initializes the default convergence criterion for the current solver. This function is typically called by "init" (if the solver has not been explicitly told to leave out the default criterion). Any default criterion will act as a stopping test and will be placed in front of the monitor list. (For internal use only).

Reimplemented from IterativeSolver.

bool BasicItSolver::ok ( ) const [virtual]
 

returns "true" if the solver is in a healthy state, i.e., if a "LinEqSystem" object is attached. If not, the value "false" is returned.

Reimplemented from IterativeSolver.

Reimplemented in MLIter.

bool BasicItSolver::redim ( LinEqSystem & system ) [protected, virtual]
 

redimensions internal storage based on the given "LinEqSystem" object. This function is typically called from "solve".

Reimplemented from LinEqSolver.

bool BasicItSolver::solve ( LinEqSystem & system ) [virtual]
 

solves the linear system given as argument. There is no need for explicit redimensioning of internal data structure, this is automatically done by "solve".

Reimplemented from LinEqSolver.

Reimplemented in Jacobi, SOR, SSOR, and MLIter.


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