#include <F_GmresLS.hpp>
Inheritance diagram for F_GmresLS:
Purpose: GMRES(m) krylov solver with restart each m iterations, for no symmetric linear system Used to solve a set of linearized differencial equations,.... GMRES is a fine Krylov solver. It approximates a solution via generation of the suitable partial Krylov orthonormal base, especially in the restart case. We hope that a small number of Krylov sub-spaces are sufficient to lead to a good solution. The ideal GMRES would use a complete base, but this need very large memory, if the number of required iterations is high. Papers: "Set 11: Krylov Method - GMRES", Kyle A.Gallivan, Lecture Spring 2004, University of Florida. "Krylov Subspace Iteration.", Henk A. van der Vorst, report 2000, Utrecht University. "Compact Linear Operators and Krylov Subspace Methods", Jan M Rasmussen, Master of Science Thesis 2001, Technical University of Danemark. Algorithm based on: 1)a lecture of Gundolf Haase, Austria 20/03/2000. Augmented with restart procedure every m iterations. 2)"Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods", R. Barrett, M. Berry, Tony F. Chan, J. Demmel, J. Donato, J. Dongarra, V. Eijkout, R. Pozo, C. Romine, Henk Van der Vorst, All & Utrecht University, All & Netherland, 1994. www.netlib.org
@ Copyrights: Bernard De Cuyper 2004, Eggs & Pictures. MIT/Open BSD copyright model.
Public Methods | |
F_GmresLS (int maxIterations, int m=10, double epsilon=1.0e-4) | |
virtual | ~F_GmresLS () |
virtual FloatVector * | solve (AFloatMatrix *m, FloatVector *b, FloatVector *dest) |
Protected Methods | |
virtual FloatVector * | singleSolve (AFloatMatrix *A, FloatVector *b, FloatVector *x=0) |
Private Attributes | |
int | m |
int | i |
double | normb |
double | beta |
double | residu |
FloatVector * | r |
FloatVector * | ap |
FloatVector * | w |
FloatVector * | s |
FloatVector * | cs |
FloatVector * | sn |
FloatVector ** | v |
AFSymMatrix * | h |