Public Member Functions | Protected Member Functions | Protected Attributes

Implements a conjugate gradient method as sparse linear algebra solver for non-symmetric linear systems. More...

#include <normal_conjugate_gradient_method.hpp>

Inheritance diagram for NormalConjugateGradientMethod:
Inheritance graph
[legend]

List of all members.

Public Member Functions

virtual SparseSolverclone () const
 NormalConjugateGradientMethod ()
 NormalConjugateGradientMethod (const NormalConjugateGradientMethod &arg)
virtual returnValue setIndices (const int *rowIdx_, const int *colIdx_)
virtual returnValue setIndices (const int *indices_)
virtual ~NormalConjugateGradientMethod ()

Protected Member Functions

virtual returnValue applyInversePreconditioner (double *x_)
virtual returnValue applyPreconditioner (double *b)
virtual returnValue computePreconditioner (double *A_)
virtual void multiply (double *xx, double *result)

Protected Attributes

int ** index
double * iResult
int * nIndex

Detailed Description

Implements a conjugate gradient method as sparse linear algebra solver for non-symmetric linear systems.

The class NormalConjugateGradientMethod is a conjugate gradient method
which allows to specify any (possibly non-symetric) matrix A. This
method might not work properly for highly ill-conditioned systems. If
the matrix A is symmetric and positive definite the class
SymmetricConjugateGradientMethod should be preferred.

Author:
Boris Houska, Hans Joachim Ferreau

Definition at line 58 of file normal_conjugate_gradient_method.hpp.


Constructor & Destructor Documentation

Default constructor.

Definition at line 46 of file normal_conjugate_gradient_method.cpp.

Copy constructor (deep copy).

Definition at line 55 of file normal_conjugate_gradient_method.cpp.

Destructor.

Definition at line 88 of file normal_conjugate_gradient_method.cpp.


Member Function Documentation

Applies the inverse of the preconditioner to the vector x (only internal use)

Implements ConjugateGradientMethod.

Definition at line 290 of file normal_conjugate_gradient_method.cpp.

Applies the preconditioner to the vector b (only internal use)

Implements ConjugateGradientMethod.

Definition at line 264 of file normal_conjugate_gradient_method.cpp.

Clone operator (deep copy).

Implements ConjugateGradientMethod.

Definition at line 105 of file normal_conjugate_gradient_method.cpp.

Computes the preconditioner and Applies it to the input matrix.

Implements ConjugateGradientMethod.

Definition at line 227 of file normal_conjugate_gradient_method.cpp.

void NormalConjugateGradientMethod::multiply ( double *  xx,
double *  result 
) [protected, virtual]

Evaluates the matrix-vector product result = A*xx efficiently. (only internal use)

Implements ConjugateGradientMethod.

Definition at line 196 of file normal_conjugate_gradient_method.cpp.

returnValue NormalConjugateGradientMethod::setIndices ( const int *  rowIdx_,
const int *  colIdx_ 
) [virtual]

Sets an index list containing the positions of the
non-zero elements in the matrix A.

Implements ConjugateGradientMethod.

Definition at line 111 of file normal_conjugate_gradient_method.cpp.

returnValue NormalConjugateGradientMethod::setIndices ( const int *  indices_) [virtual]

Sets an index list containing the positions of the
non-zero elements in the matrix A.

Definition at line 117 of file normal_conjugate_gradient_method.cpp.


Member Data Documentation

Definition at line 120 of file normal_conjugate_gradient_method.hpp.

Definition at line 123 of file normal_conjugate_gradient_method.hpp.

Definition at line 121 of file normal_conjugate_gradient_method.hpp.


The documentation for this class was generated from the following files:


acado
Author(s): Milan Vukov, Rien Quirynen
autogenerated on Sat Jun 8 2019 19:40:25