Type ILUTPPreconditioner
Namespace MathNet.Numerics.LinearAlgebra.Double.Solvers
Interfaces IPreconditioner<T>
The ILUTP-Mem algorithm was taken from: ILUTP_Mem: a Space-Efficient Incomplete LU Preconditioner Tzu-Yi Chen, Department of Mathematics and Computer Science, Pomona College, Claremont CA 91711, USA Published in: Lecture Notes in Computer Science Volume 3046 / 2004 pp. 20 - 28 Algorithm is described in Section 2, page 22
double
fillLevelThe amount of fill that is allowed in the matrix. The value is a fraction of the number of non-zero entries in the original matrix. Values should be positive.
double
dropToleranceThe absolute drop tolerance which indicates below what absolute value an entry will be dropped from the matrix. A drop tolerance of 0.0 means that no values will be dropped. Values should always be positive.
double
pivotToleranceThe pivot tolerance which indicates at what level pivoting will take place. A value of 0.0 means that no pivoting will take place.
The values should always be positive and can be larger than 1.0. A low value will keep more small numbers in the preconditioner matrix. A high value will remove more small numbers from the preconditioner matrix.
Note that any changes to the after creating the preconditioner will invalidate the created preconditioner and will require a re-initialization of the preconditioner.
Values should always be positive and can be higher than 1.0. A value lower than 1.0 means that the eventual preconditioner matrix will have fewer non-zero entries as the original matrix. A value higher than 1.0 means that the eventual preconditioner can have more non-zero values than the original matrix.
Note that any changes to the after creating the preconditioner will invalidate the created preconditioner and will require a re-initialization of the preconditioner.
The pivot tolerance is used to calculate if pivoting is necessary. Pivoting will take place if any of the values in a row is bigger than the diagonal value of that row divided by the pivot tolerance, i.e. pivoting will take place if for any that is not equal to.
Note that any changes to the after creating the preconditioner will invalidate the created preconditioner and will require a re-initialization of the preconditioner.
return double
|
return double
|