
Public Types | |
| typedef SparseLUDecomposition < number >::AdditionalData | AdditionalData |
Public Member Functions | |
| SparseMIC () | |
| SparseMIC (const SparsityPattern &sparsity) | |
| virtual | ~SparseMIC () |
| virtual void | clear () |
| void | reinit (const SparsityPattern &sparsity) |
| template<typename somenumber > | |
| void | initialize (const SparseMatrix< somenumber > &matrix, const AdditionalData parameters) |
| template<typename somenumber > | |
| void | decompose (const SparseMatrix< somenumber > &matrix, const double strengthen_diagonal=0.) |
| template<typename somenumber > | |
| void | vmult (Vector< somenumber > &dst, const Vector< somenumber > &src) const |
| std::size_t | memory_consumption () const |
Static Public Member Functions | |
| ::ExceptionBase & | ExcStrengthenDiagonalTooSmall () |
| ::ExceptionBase & | ExcInvalidStrengthening (double arg1) throw (errortext << "The strengthening parameter " << arg1 << " is not greater or equal than zero!" ) |
| ::ExceptionBase & | ExcDecompositionNotStable (int arg1, double arg2) throw (errortext << "The diagonal element (" <<arg1<<","<<arg1<<") is " << arg2 <<", but must be positive" ) |
Private Member Functions | |
| number | get_rowsum (const unsigned int row) const |
Private Attributes | |
| std::vector< number > | diag |
| std::vector< number > | inv_diag |
| std::vector< number > | inner_sums |
Modified incomplete Cholesky (MIC(0)) preconditioner. This class conforms to the state and usage specification in SparseLUDecomposition.
Let a sparse matrix A is in the form A = - L - U + D, where -L and -U are strictly lower and upper triangular matrices. The MIC(0) decomposition of the matrix A is defined by B = (X-L)X^(-1)(X-U), where X is a diagonal matrix, defined by the condition rowsum(A) = rowsum(B).
Definition at line 41 of file sparse_mic.h.
| typedef SparseLUDecomposition<number>::AdditionalData SparseMIC< number >::AdditionalData |
Make the AdditionalData type in the base class accessible to this class as well.
Definition at line 80 of file sparse_mic.h.
Constructor. Does nothing, so you have to call reinit sometimes afterwards.
| SparseMIC< number >::SparseMIC | ( | const SparsityPattern & | sparsity ) |
Constructor. Initialize the sparsity pattern of this object with the given argument.
| virtual void SparseMIC< number >::clear | ( | ) | [virtual] |
Deletes all member variables. Leaves the class in the state that it had directly after calling the constructor
Reimplemented from SparseLUDecomposition< number >.
| void SparseMIC< number >::reinit | ( | const SparsityPattern & | sparsity ) | [virtual] |
This method is deprecated, and left for backward compability. It will be removed in later versions.
Reimplemented from SparseLUDecomposition< number >.
| void SparseMIC< number >::initialize | ( | const SparseMatrix< somenumber > & | matrix, |
| const AdditionalData | parameters | ||
| ) |
Same as decompose.
Reimplemented from SparseLUDecomposition< number >.
| void SparseMIC< number >::decompose | ( | const SparseMatrix< somenumber > & | matrix, |
| const double | strengthen_diagonal = 0. |
||
| ) |
This method is deprecated, and left for backward compability. It will be removed in later versions.
Reimplemented from SparseLUDecomposition< number >.
| void SparseMIC< number >::vmult | ( | Vector< somenumber > & | dst, |
| const Vector< somenumber > & | src | ||
| ) | const |
Apply the incomplete decomposition, i.e. do one forward-backward step
.
Call initialize before calling this function.
| std::size_t SparseMIC< number >::memory_consumption | ( | ) | const [virtual] |
Determine an estimate for the memory consumption (in bytes) of this object.
Reimplemented from SparseLUDecomposition< number >.
| number SparseMIC< number >::get_rowsum | ( | const unsigned int | row ) | const [private] |
Compute the row-th "inner sum".
Values of the computed diagonal.
Definition at line 153 of file sparse_mic.h.
Inverses of the the diagonal: precomputed for faster vmult.
Definition at line 159 of file sparse_mic.h.
std::vector<number> SparseMIC< number >::inner_sums [private] |
Values of the computed "inner sums", i.e. per-row sums of the elements laying on the right side of the diagonal.
Definition at line 167 of file sparse_mic.h.
documentation generated on Fri Feb 3 2012 06:04:11 by
doxygen
1.7.2