Diffpack Documentation


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

SymMinRes Class Reference

Minimum residual method for symmetric, idefinite systems. More...

#include <SymMinRes.h>

Inheritance diagram for SymMinRes::

KrylovItSolver IterativeSolver LinEqSolver HandleId List of all members.

Public Methods

 SymMinRes ()
 SymMinRes (const LinEqSolver_prm &pm)
 ~SymMinRes ()
virtual bool solve (LinEqSystem &system)
virtual bool ok () const
virtual String description () const

Detailed Description

Minimum residual method for symmetric, idefinite systems.

NAME: SymMinRes - Minimum residual method for symmetric, idefinite systems

DESCRIPTION:

The class implements a left preconditioned Minimum residual method for symmetric indefinite linear systems. The preconditioning operator has to be symmetric and positive definite.

The minimum residual method solves systems of the form "BAx=Bb", where "A" is symmetric indefinite and "B" is symmetric positive definite. The linear system is symmetric with respect to the inner product $ \((\cdot,\cdot)_B = (B^{-1}\cdot,\cdot)\). The iterate x_k is determined by minimization of the norm of the residual $ \[

  \B(b - A y)\|_B \] over the Krylov space $ \(span\{Bb, BABb,
product \((\cdot,\cdot)_B\).

  The default convergence monitor is $ \[ \rho_k = \B(b - A x_k)\|_B
computed during the iteration, hence a direct computation of this quantity reqire an additional matrix vector product. In the algorithm it is computed recursively. Unfortunately this computations accumulates error and it may be necessary to compute the exact residual every "update frequency" iteration. Here "update frequency" is set in the "LinEqSolver_prm" meny.


Constructor & Destructor Documentation

SymMinRes::SymMinRes ( )
 

There is a default constructor without arguments. For the sake of comaptibility, there is also a constructor accepting a "LinEqSolver_prm" object, aimed to be used by "LinEqSolver_prm create".

SymMinRes::SymMinRes ( const LinEqSolver_prm & pm )
 

See documentation of one of the overloaded constructor.

SymMinRes::~SymMinRes ( ) [inline]
 


Member Function Documentation

String SymMinRes::description ( ) const [virtual]
 

Reimplemented from LinEqSolver.

bool SymMinRes::ok ( ) const [virtual]
 

returns "true" if the object is in an ok state, that is, if all internal attricutes seems to be initialized. This "ok" function is called in "solve" and the user of the class should never need to call "ok".

Reimplemented from KrylovItSolver.

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

solve a system of linear equations.

Reimplemented from KrylovItSolver.


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