Block Jacobi Preconditioner<T> Constructor
Definition
Namespace: Numerics.NET.LinearAlgebra.IterativeSolvers.Preconditioners
Assembly: Numerics.NET (in Numerics.NET.dll) Version: 10.9.0
Assembly: Numerics.NET (in Numerics.NET.dll) Version: 10.9.0
Overload List
| Block | Constructs a block Jacobi preconditioner with uniformly sized consecutive blocks. |
| Block | Constructs a block Jacobi preconditioner using an explicit contiguous partition and pivot options. |
| Block | Constructs a block Jacobi preconditioner using an explicit contiguous partition and pivot options. |
BlockJacobiPreconditioner<T>(Matrix<T>, Int32)
Constructs a block Jacobi preconditioner with uniformly sized consecutive blocks.
public BlockJacobiPreconditioner(
Matrix<T> matrix,
int blockSize
)Parameters
Remarks
Uses a relative pivot tolerance of 100 times scalar machine epsilon and no diagonal shift.
Exceptions
| Argument | matrix is null. |
| Argument | blockSize is not positive. |
| Dimension | The matrix is not square. |
| Argument | An in-block coefficient/factor is nonfinite or the partition requires excessive storage. |
| Matrix | A block pivot is zero or relatively too small. |
BlockJacobiPreconditioner<T>(Matrix<T>, Int32[])
Constructs a block Jacobi preconditioner using an explicit contiguous partition and pivot options.
public BlockJacobiPreconditioner(
Matrix<T> matrix,
int[] blockBoundaries
)Parameters
Remarks
Uses a relative pivot tolerance of 100 times scalar machine epsilon and no diagonal shift.
Exceptions
| Argument | The matrix or partition is null. |
| Dimension | The matrix is not square. |
| Argument | A tuning value is outside its valid range. |
| Argument | The partition is invalid or requires excessive storage, or an in-block coefficient/factor is nonfinite. |
| Matrix | A block pivot is zero or relatively too small. |
BlockJacobiPreconditioner<T>(Matrix<T>, Int32[], T, T)
Constructs a block Jacobi preconditioner using an explicit contiguous partition and pivot options.
public BlockJacobiPreconditioner(
Matrix<T> matrix,
int[] blockBoundaries,
T relativePivotTolerance,
T relativeDiagonalShift
)Parameters
- matrix Matrix<T>
- A non-null square matrix. Logical in-block coefficients must be finite; off-block entries are ignored.
- blockBoundaries Int32[]
- Strictly increasing boundaries starting at zero and ending at matrix order. The empty matrix uses the single boundary [0]. The array is copied.
- relativePivotTolerance T
- A finite real value in [0, 1). Each pivot magnitude divided by the original shifted maximum magnitude of its selected row must exceed this value.
- relativeDiagonalShift T
- A finite nonnegative real value. Adds this value times each original within-block row maximum magnitude to that diagonal, using unit scale for an empty block row. Only the preconditioner is shifted.
Exceptions
| Argument | The matrix or partition is null. |
| Dimension | The matrix is not square. |
| Argument | A tuning value is outside its valid range. |
| Argument | The partition is invalid or requires excessive storage, or an in-block coefficient/factor is nonfinite. |
| Matrix | A block pivot is zero or relatively too small. |