#include <Orthomin.h>
Inheritance diagram for Orthomin::

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 |
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.
|
|
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. |
|
|
See documentation of one of the overloaded constructor. |
|
|
|
|
|
Reimplemented from LinEqSolver. |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
solve a system of linear equations. Reimplemented from KrylovItSolver. |