Represents a preconditioner that is to be applied to a sparse matrix by an iterative solver.
SystemObject Extreme.Mathematics.LinearAlgebraLinearOperator Extreme.Mathematics.LinearAlgebra.IterativeSolvers.PreconditionersPreconditioner Extreme.Mathematics.LinearAlgebra.IterativeSolvers.PreconditionersIdentityPreconditioner Extreme.Mathematics.LinearAlgebra.IterativeSolvers.PreconditionersIncompleteLUPreconditioner Extreme.Mathematics.LinearAlgebra.IterativeSolvers.PreconditionersJacobiPreconditioner
Namespace: Extreme.Mathematics.LinearAlgebra.IterativeSolvers.PreconditionersAssembly: Extreme.Numerics.Net40 (in Extreme.Numerics.Net40.dll) Version: 6.0.16073.0 (6.0.17114.0)
public abstract class Preconditioner : LinearOperator
Public MustInherit Class Preconditioner
Inherits LinearOperator
public ref class Preconditioner abstract : public LinearOperator
[<AbstractClassAttribute>]
type Preconditioner =
class
inherit LinearOperator
end
The Preconditioner type exposes the following members.
Top
Top
Top
The Preconditioner class serves as the abstract base class for classes that implement
preconditioners in the context of iterative sparse solvers.
A preconditioner is am operator that approximates the matrix of the system of equations,
but solving equations with the preconditioner in the left-hand-side is less expensive than solving the original system.
When used with an iterative solver, the result is equivalent to solving a simpler system, often but not always leading to faster convergence.
The Preconditioner class is an abstract base class and cannot be instantiated directly. Instead, either use one of the
built-in preconditioners, or implement your own preconditioner by inheriting from Preconditioner.
The built-in preconditioners are:
Class | Description |
---|
IdentityPreconditioner | The preconditioner is an identity matrix. This is equivalent to not applying a preconditioner at all. |
JacobiPreconditioner | The preconditioner is a diagonal matrix containing the inverse of the diagonal elements of the matrix. |
IncompleteLUPreconditioner | The preconditioner is an incomplete LU factorization of the matrix with no fill-in, also known as ILU(0). |
To define your own preconditioner, inherit from Preconditioner and implement the Multiply(Vector) and
MultiplyTranspose(Vector) methods. Note that not all iterative solvers require the transpose solve.
Numerical Libraries
Supported in: 5.x, 4.x
Reference