SparseILU< number > Class Template Reference
[Preconditioners]

Inheritance diagram for SparseILU< number >:
Inheritance graph
[legend]

List of all members.

Classes

class  ExcInvalidStrengthening

Public Types

typedef SparseLUDecomposition
< number >::AdditionalData 
AdditionalData

Public Member Functions

 SparseILU ()
 SparseILU (const SparsityPattern &sparsity)
template<typename somenumber >
void initialize (const SparseMatrix< somenumber > &matrix, const AdditionalData parameters=AdditionalData())
template<typename somenumber >
void decompose (const SparseMatrix< somenumber > &matrix, const double strengthen_diagonal=0.)
template<typename somenumber >
void apply_decomposition (Vector< somenumber > &dst, const Vector< somenumber > &src) const
template<typename somenumber >
void vmult (Vector< somenumber > &dst, const Vector< somenumber > &src) const
template<typename somenumber >
void Tvmult (Vector< somenumber > &dst, const Vector< somenumber > &src) const
unsigned int memory_consumption () const

Detailed Description

template<typename number>
class SparseILU< number >

Incomplete LU decomposition of a sparse matrix into another sparse matrix. A given matrix is decomposed into a incomplete LU factorization, where by incomplete we mean that also a sparse decomposition is used and entries in the decomposition that do not fit into the sparsity structure of this object are discarded.

The algorithm used by this class is essentially a copy of the algorithm given in the book Y. Saad: "Iterative methods for sparse linear systems", second edition, in section 10.3.2.

Usage and state management

Refer to SparseLUDecomposition documentation for suggested usage and state management. This class is used in the step-22 tutorial program.

Note:
Instantiations for this template are provided for <float> and <double>; others can be generated in application programs (see the section on Template instantiations in the manual).
Author:
Wolfgang Bangerth, 2008, 2009; unified interface: Ralf Hartmann

Member Typedef Documentation

template<typename number>
typedef SparseLUDecomposition<number>::AdditionalData SparseILU< number >::AdditionalData

Make SparseLUDecomposition::AdditionalData accessible to this class as well.


Constructor & Destructor Documentation

template<typename number>
SparseILU< number >::SparseILU (  ) 

Constructor. Does nothing.

Call the initialize function before using this object as preconditioner.

template<typename number>
SparseILU< number >::SparseILU ( const SparsityPattern sparsity  ) 
Deprecated:
This method is deprecated, and left for backward compability. It will be removed in later versions.

Member Function Documentation

template<typename number>
template<typename somenumber >
void SparseILU< number >::initialize ( const SparseMatrix< somenumber > &  matrix,
const AdditionalData  parameters = AdditionalData() 
) [inline]

Perform the incomplete LU factorization of the given matrix.

This function needs to be called before an object of this class is used as preconditioner.

For more details about possible parameters, see the class documentation of SparseLUDecomposition and the documentation of the SparseLUDecomposition::AdditionalData class.

According to the parameters, this function creates a new SparsityPattern or keeps the previous sparsity or takes the sparsity given by the user to data. Then, this function performs the LU decomposition.

After this function is called the preconditioner is ready to be used.

Reimplemented from SparseLUDecomposition< number >.

template<typename number>
template<typename somenumber >
void SparseILU< number >::decompose ( const SparseMatrix< somenumber > &  matrix,
const double  strengthen_diagonal = 0. 
) [inline]

This method is deprecated, and left for backward compability. It will be removed in later versions.

Reimplemented from SparseLUDecomposition< number >.

template<typename number >
template<typename somenumber >
void SparseILU< number >::apply_decomposition ( Vector< somenumber > &  dst,
const Vector< somenumber > &  src 
) const [inline]

This method is deprecated, and left for backward compability. It will be removed in later versions.

References SparseILU< number >::vmult().

template<typename number>
template<typename somenumber >
void SparseILU< number >::vmult ( Vector< somenumber > &  dst,
const Vector< somenumber > &  src 
) const [inline]

Apply the incomplete decomposition, i.e. do one forward-backward step $dst=(LU)^{-1}src$.

The initialize() function needs to be called before.

Referenced by SparseILU< number >::apply_decomposition().

template<typename number>
template<typename somenumber >
void SparseILU< number >::Tvmult ( Vector< somenumber > &  dst,
const Vector< somenumber > &  src 
) const [inline]

Apply the transpose of the incomplete decomposition, i.e. do one forward-backward step $dst=(LU)^{-T}src$.

The initialize() function needs to be called before.

template<typename number>
unsigned int SparseILU< number >::memory_consumption (  )  const [virtual]

Determine an estimate for the memory consumption (in bytes) of this object.

Reimplemented from SparseLUDecomposition< number >.


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

deal.II documentation generated on Mon Nov 23 22:58:07 2009 by doxygen 1.6.1