- java.lang.Object
-
- org.ojalgo.matrix.task.iterative.SSORPreconditioner
-
- All Implemented Interfaces:
Preconditioner
public final class SSORPreconditioner extends java.lang.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 < ω < 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 Summary
Fields Modifier and Type Field Description private R064StoremyDiagprivate intmyDimprivate java.util.List<Equation>myEquationsprivate doublemyOmegaprivate R064StoremyWorkYprivate R064StoremyWorkZ-
Fields inherited from interface org.ojalgo.matrix.task.iterative.Preconditioner
IDENTITY
-
-
Constructor Summary
Constructors Constructor Description SSORPreconditioner()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidapply(Access1D<java.lang.Double> src, PhysicalStore<java.lang.Double> dst)Apply M^{-1} to a vector.SSORPreconditioneromega(double value)voidprepare(java.util.List<Equation> equations, int dimension)Prepare internal structures for a specific system.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.ojalgo.matrix.task.iterative.Preconditioner
applyTranspose
-
-
-
-
Method Detail
-
apply
public void apply(Access1D<java.lang.Double> src, PhysicalStore<java.lang.Double> dst)
Description copied from interface:PreconditionerApply M^{-1} to a vector. src and dst may alias.- Specified by:
applyin interfacePreconditioner
-
omega
public SSORPreconditioner omega(double value)
-
prepare
public void prepare(java.util.List<Equation> equations, int dimension)
Description copied from interface:PreconditionerPrepare internal structures for a specific system. Implementations may analyse sparsity or extract diagonals/factors here.- Specified by:
preparein interfacePreconditioner- Parameters:
equations- The active set of rows constituting the system body.dimension- The vector dimension (number of variables / size of solution vector).
-
-