Class SSORPreconditioner

java.lang.Object
org.ojalgo.matrix.task.iterative.SSORPreconditioner
All Implemented Interfaces:
Preconditioner

public final class SSORPreconditioner extends Object implements Preconditioner
Symmetric Successive Over-Relaxation (SSOR) preconditioner with relaxation factor omega (ω).

For ω = 1 this reduces to a symmetric Gauss–Seidel (forward + backward) sweep – a common choice for SPD systems with suitable variable ordering.

The applied effect is an approximate M^{-1} with the classic form (D/ω + L) D^{-1} (D/ω + U) scaled by (2 - ω)/ω, implemented via forward and backward triangular sweeps.

Compatibility and guidance

  • Symmetric by construction; typically positive-definite for SPD A when 0 invalid input: '<' ω invalid input: '<' 2.
  • Useful for methods that expect a symmetric (often SPD) preconditioner.
  • Can be used as a right-preconditioner in methods for general nonsymmetric systems where symmetry of M is acceptable or desired.
  • Stationary fixed-point methods that ignore preconditioners will not use this.
  • Field Details

    • myOmega

      private double myOmega
    • myDiag

      private transient R064Store myDiag
    • myWorkY

      private transient R064Store myWorkY
    • myWorkZ

      private transient R064Store myWorkZ
    • myEquations

      private transient List<Equation> myEquations
    • myDim

      private int myDim
  • Constructor Details

    • SSORPreconditioner

      public SSORPreconditioner()
  • Method Details

    • apply

      public void apply(Access1D<Double> src, PhysicalStore<Double> dst)
      Description copied from interface: Preconditioner
      Apply M^{-1} to a vector. src and dst may alias.
      Specified by:
      apply in interface Preconditioner
    • omega

      public SSORPreconditioner omega(double value)
    • prepare

      public void prepare(List<Equation> equations, int dimension)
      Description copied from interface: Preconditioner
      Prepare internal structures for a specific system. Implementations may analyse sparsity or extract diagonals/factors here.
      Specified by:
      prepare in interface Preconditioner
      Parameters:
      equations - The active set of rows constituting the system body.
      dimension - The vector dimension (number of variables / size of solution vector).