ThresholdIncompleteLUPreconditioner<T> Class

Represents an incomplete LU factorization with threshold dropping and bounded row fill (ILUT).

Definition

Namespace: Numerics.NET.LinearAlgebra.IterativeSolvers.Preconditioners
Assembly: Numerics.NET (in Numerics.NET.dll) Version: 10.9.0
C#
public sealed class ThresholdIncompleteLUPreconditioner<T> : Preconditioner<T>
Inheritance
Object  →  LinearOperator<T>  →  Preconditioner<T>  →  ThresholdIncompleteLUPreconditioner<T>

Type Parameters

T
The real or complex floating-point scalar type.

Remarks

Lower multipliers of magnitude at most DropTolerance are dropped during elimination. Strict-upper coefficients of magnitude at most that tolerance times the mean magnitude of nonzero entries in the original shifted/scaled row are dropped afterward. Each strict triangular row part retains at most MaximumFillPerRow largest entries; ties prefer the smaller column. The diagonal is always retained. Fill-cap dropping of lower multipliers occurs after their row updates.

No numerical pivoting or automatic ordering is performed. This preconditioner is intended for nonsymmetric solvers such as GeneralizedMinimalResidualSolver<T> and does not ensure the positive definiteness required by CG. Call Refresh() after changing coefficients. Distinct-destination applications may run concurrently; refresh requires exclusive access.

Constructors

ThresholdIncompleteLUPreconditioner<T>(SparseMatrix<T>, T, Int32)Constructs an ILUT preconditioner with explicit dropping, fill and pivot options.
ThresholdIncompleteLUPreconditioner<T>(SparseMatrix<T>, T, Int32, T, T, Boolean, Permutation)Constructs an ILUT preconditioner with explicit dropping, fill and pivot options.

Properties

ColumnCount Gets the number of columns in the matrix.
(Inherited from LinearOperator<T>)
ColumnIndex Gets or sets the index of labels for the columns of the matrix.
(Inherited from LinearOperator<T>)
DropToleranceGets the requested magnitude-dropping tolerance.
ElementType Gets the element type of the matrix.
(Inherited from LinearOperator<T>)
FactorizationCountGets the number of successful numeric factorizations, including construction.
FactorNonzeroCountGets the number of retained factor entries, excluding the implicit unit diagonal of L.
LinearOperator Gets the linear operator to which the Preconditioner<T> applies.
(Inherited from Preconditioner<T>)
MaximumFillPerRowGets the requested cap on each strict triangular row part.
MinimumRelativePivotGets the smallest relative pivot in the most recent successful factorization, or zero for an empty matrix.
RowCount Gets the number of rows in the matrix.
(Inherited from LinearOperator<T>)
RowIndex Gets or sets the index of labels for the rows of the matrix.
(Inherited from LinearOperator<T>)

Methods

EqualsDetermines whether the specified object is equal to the current object.
(Inherited from Object)
EstimateConditionNumber Calculates an estimate for the condition number of a matrix.
(Inherited from LinearOperator<T>)
GetDeterminant Calculates the determinant of a matrix.
(Inherited from LinearOperator<T>)
GetHashCodeServes as the default hash function.
(Inherited from Object)
GetInverse() Calculates the inverse matrix..
(Inherited from LinearOperator<T>)
GetInverse(Boolean) Calculates the inverse of the factorized matrix.
(Inherited from LinearOperator<T>)
GetTypeGets the Type of the current instance.
(Inherited from Object)
IsSingular Gets whether the matrix is singular.
(Inherited from LinearOperator<T>)
LeastSquaresSolve(Matrix<T>) Solves the system of linear equations for the specified right-hand side matrix in the least squares sense.
(Inherited from LinearOperator<T>)
LeastSquaresSolve(Vector<T>) Solves the system of linear equations for the specified right-hand side vector.
(Inherited from LinearOperator<T>)
LeastSquaresSolve(DenseMatrix<T>, Boolean) Solves the system of linear equations for the specified right-hand side dense matrix in the least squares sense and optionally overwrites the right-hand side with the solution.
(Inherited from LinearOperator<T>)
LeastSquaresSolve(DenseVector<T>, Boolean) Solves the system of linear equations for the specified right-hand side dense vector in the least squares sense and optionally overwrites the right-hand side with the solution.
(Inherited from LinearOperator<T>)
LeastSquaresSolveInto(Matrix<T>, Matrix<T>) Solves a system of equations defined by the matrix and multiple right-hand sides in the least squares sense.
(Inherited from LinearOperator<T>)
LeastSquaresSolveInto(Vector<T>, Vector<T>) Solves a system of equations defined by the matrix and the specified right-hand side in the least squares sense.
(Inherited from Preconditioner<T>)
Multiply(Matrix<T>)Applies the linear operator to a matrix.
(Inherited from LinearOperator<T>)
Multiply(Vector<T>)Applies the linear operator to a vector.
(Inherited from LinearOperator<T>)
MultiplyTranspose(Matrix<T>)Applies the transpose of the linear operator to a matrix.
(Inherited from LinearOperator<T>)
MultiplyTranspose(Vector<T>)Applies the (conjugate) transpose of the linear operator to a vector.
(Inherited from LinearOperator<T>)
Rank() Returns the numerical rank of a matrix.
(Inherited from LinearOperator<T>)
Rank(T) Returns the numerical rank of a matrix using the specified tolerance.
(Inherited from Preconditioner<T>)
RefreshRecomputes coefficients and retained ILUT fill using the existing input pattern and options.
Solve(Matrix<T>) Solves the system of linear equations for the specified right-hand side matrix.
(Inherited from LinearOperator<T>)
Solve(Vector<T>) Solves the system of linear equations for the specified right-hand side vector.
(Inherited from LinearOperator<T>)
Solve(DenseMatrix<T>, Boolean) Solves the system of linear equations for the specified right-hand side dense matrix and optionally overwrites the right-hand side with the solution.
(Inherited from LinearOperator<T>)
Solve(DenseVector<T>, Boolean) Solves the system of linear equations for the specified right-hand side dense vector and optionally overwrites the right-hand side with the solution.
(Inherited from LinearOperator<T>)
SolveInto(Matrix<T>, Matrix<T>) Solves a system of equations defined by the matrix and multiple right-hand sides.
(Inherited from LinearOperator<T>)
SolveInto(Vector<T>, Vector<T>) Solves a system of equations defined by the matrix and the specified right-hand side.
(Inherited from LinearOperator<T>)
SolveInto(TransposeOperation, Vector<T>, Vector<T>) Solves a system of equations defined by the matrix and the specified right-hand side.
(Overrides Preconditioner<T>.SolveInto(TransposeOperation, Vector<T>, Vector<T>))
SolveInto(TransposeOperation, Matrix<T>, Matrix<T>) Solves a system of equations defined by the matrix and multiple right-hand sides.
(Inherited from LinearOperator<T>)
SolveTranspose(Matrix<T>) Solves the transposed system of linear equations for the specified right-hand side matrix.
(Inherited from LinearOperator<T>)
SolveTranspose(Vector<T>) Solves the system of linear equations for the specified right-hand side vector.
(Inherited from LinearOperator<T>)
SolveTranspose(DenseMatrix<T>, Boolean) Solves the transposed system of linear equations for the specified right-hand side dense matrix and optionally overwrites the right-hand side with the solution.
(Inherited from LinearOperator<T>)
SolveTranspose(DenseVector<T>, Boolean) Solves the transposed system of linear equations for the specified right-hand side dense vector and optionally overwrites the right-hand side with the solution.
(Inherited from LinearOperator<T>)
SolveTransposeInto(Matrix<T>, Matrix<T>) Solves a system of equations defined by the matrix and multiple right-hand sides.
(Inherited from LinearOperator<T>)
SolveTransposeInto(Vector<T>, Vector<T>) Solves a system of equations defined by the matrix and the specified right-hand side.
(Inherited from LinearOperator<T>)
ToStringReturns a string that represents the current object.
(Inherited from Object)

See Also