-
Notifications
You must be signed in to change notification settings - Fork 9
MGroup.LinearAlgebra.Iterative.Preconditioning
Implements the null object pattern in the contect of preconditioning. Use this class if you want to pass an MGroup.LinearAlgebra.Iterative.Preconditioning.IPreconditioner
object without actually applying any preconditioning, e.g. for benchmarking an iterative algorithm. Using this preconditioner with PCG is equivalent to using CG, however the computational cost will be higher, since the operation z = inv(M) * r cannot be safely avoided; it just reduces to a vector copy. Authors: Serafeim Bakalakos
public class MGroup.LinearAlgebra.Iterative.Preconditioning.IdentityPreconditioner
: IPreconditioner
Methods
Type | Name | Summary |
---|---|---|
void |
SolveLinearSystem(IVectorView rhsVector, IVector lhsVector) |
See . |
Represents a matrix M such that inverse(M) is close to inverse(A) and inverse(M) * A has a smaller condition number than A, where A is the original matrix of the linear system A*x=b. Authors: Serafeim Bakalakos
public interface MGroup.LinearAlgebra.Iterative.Preconditioning.IPreconditioner
Methods
Type | Name | Summary |
---|---|---|
void |
SolveLinearSystem(IVectorView rhsVector, IVector lhsVector) |
Applies the preconditioner by solving the system: M * v = w during the preconditioning step of an iterative algorithm, where M is the preconditioner and the definition of the vectors v, w depends on the iterative algorithm. This is equivalent to evaluating: inverse(M) * w. |
Classes implementing this interface are responsible for the creation of MGroup.LinearAlgebra.Iterative.Preconditioning.IPreconditioner
instances. Authors: Serafeim Bakalakos
public interface MGroup.LinearAlgebra.Iterative.Preconditioning.IPreconditionerFactory
Methods
Type | Name | Summary |
---|---|---|
IPreconditioner |
CreatePreconditionerFor(IMatrixView matrix) |
Initializes and returns an MGroup.LinearAlgebra.Iterative.Preconditioning.IPreconditioner for the provided ``. |
Implements the Jacobi or diagonal preconditioner for a square matrix. If A is the original matrix, the Jacobi preconditioner is a matrix M, such that it oncly contains the diagonal of A and inverse(M) is also diagonal with entries: 1/A[0,0], 1/A[1,1], ... The Jacobi preconditioner is cheapest to build and apply, but doesn't improve convergence as much as other preconditioners. Authors: Serafeim Bakalakos
public class MGroup.LinearAlgebra.Iterative.Preconditioning.JacobiPreconditioner
: IPreconditioner
Properties
Type | Name | Summary |
---|---|---|
Int32 |
Order | The number of rows/columns of the preconditioner and the original matrix |
Methods
Type | Name | Summary |
---|---|---|
void |
SolveLinearSystem(IVectorView rhsVector, IVector lhsVector) |
See |
Static Fields
Type | Name | Summary |
---|---|---|
Double |
DefaultTolerance |