Diffpack Documentation


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

Orthomin Class Reference

iterative method for matrix systems. More...

#include <Orthomin.h>

Inheritance diagram for Orthomin::

KrylovItSolver IterativeSolver LinEqSolver HandleId List of all members.

Public Methods

 Orthomin (int nsearchv, bool restarted=false)
 Orthomin (const LinEqSolver_prm &pm)
 ~Orthomin ()
virtual bool solve (LinEqSystem &system)
virtual bool redim (LinEqSystem &system)
virtual bool ok () const
virtual String prm2name () const
virtual void name2prm (LinEqSolver_prm &prm, const String &name)
virtual String description () const

Detailed Description

iterative method for matrix systems.

NAME: Orthomin - iterative method for matrix systems

DESCRIPTION:

The class implements the iterative methods Orthomin(k) and Generalized Conjugate Residuals (GCR) for solving nonsymmetric systems of linear equations. The system is represented as a class "LinEqSystem" object. Usually, an object of type "Orthomin" is created on basis of the parameter object "LinEqSolver_prm" using the function "LinEqSolver_prm create".

The Orthomin and GCR algorithms differ only by that Orthomin is truncated, while GCR is restarted.


Constructor & Destructor Documentation

Orthomin::Orthomin ( int nsearchv,
bool restarted = false )
 

There is one constructor taking the integer parameter "nsearchv" and the flag "restarted". If "restarted" is raised (value "true"), the class implements the GCR method with a restart cycle determined by "nsearchv". Otherwise, "nsearchv" determines the number of basis vectors used in the Orthomin algorithm.

There is also a constructor accepting a "LinEqSolver_prm" object. That is, the solver can be allocated by calling "createLinEqSolver".

Internal "LinEqVector" attributes are not properly initialized by the constructor. These are initialized by the "redim" function which is called from "solve". Thus, the user of this class need not be careful with initialization of objects: The constructor and the "solve" function will take care of it.

Orthomin::Orthomin ( const LinEqSolver_prm & pm )
 

See documentation of one of the overloaded constructor.

Orthomin::~Orthomin ( ) [inline]
 


Member Function Documentation

String Orthomin::description ( ) const [virtual]
 

Reimplemented from LinEqSolver.

void Orthomin::name2prm ( LinEqSolver_prm & prm,
const String & name ) [virtual]
 

given a string, containing the name of a method, the function extracts data from the string and fills a "LinEqSolver_prm" object. The "name2prm" is the inverse of "prm2name". Consult the brief example in the explanation of function "prm2name".

Reimplemented from LinEqSolver.

bool Orthomin::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.

String Orthomin::prm2name ( ) const [virtual]
 

given a "LinEqSolver_prm" object, the function creates a string that contains the name of the method implemented in class "Orthomin". For example, GCR(4) is returned if the "LinEqSolver_prm" contains ""Orthomin"" as the "basic_method", "restart" equals "true" and "nsearchv" equals 4.

Reimplemented from LinEqSolver.

bool Orthomin::redim ( LinEqSystem & system ) [virtual]
 

redimensions the internal data structure (usually "LinEqVector" objects) on basis of the size of a "LinEqSystem" given as argument to "redim". The "redim" function is usually called from "solve" and a user of the class will seldom need to call "redim" explicitly.

Reimplemented from KrylovItSolver.

bool Orthomin::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.