tminres
tminres - A C++ Template Implementation of Minres

Introduction

MINRES is a Krylov subspace iterative method for the solution of large sparse symmetric (possibly indefinite) linear systems.

MINRES was first proposed by C.C. Paige and M.A. Saunders (1975).

It is based on Lanczos tridiagonalization. A symmetric positive definite preconditioner can be specified.

The present C++ implementation is based on the Matlab code by Michael Saunders (SOL and ICME, Stanford University), Chris Paige (School of Computer Science, McGill University) and Sou Cheng Choi (ICME, Stanford University) available at

http://www.stanford.edu/group/SOL/software/minres.html

Design

The aim of tminres is to provide an efficient and portable implementation of the MINRES() algorithm.

tminres supports user-defined parallel and serial data structure for the description of vectors, linear operators, and preconditioners.

The abstract classes Vector_trait and Operator_trait define the signatures of the methods that the user-defined classes should provide.

Users can decide whenever to use static (templates) or dynamic (derivated classes) polymorphism in order to provide such interfaces.

Two concrete implementations of Vector_trait and Operator_trait are included in the code:

A detailed description of the MINRES() function interface is provided here.

Documentation

To create this documentation:

 $ make dox

To erase the documentation

 $ make clean-dox

Examples

 All Classes Files Functions Friends