Module ojalgo

Class ParallelGaussSeidelSolver

  • All Implemented Interfaces:
    MatrixTask<java.lang.Double>, SolverTask<java.lang.Double>

    public final class ParallelGaussSeidelSolver
    extends IterativeSolverTask
    Experimental parallelised stationary iteration based on Gauss–Seidel-style in-place updates.

    Concurrency and convergence

    • Targets systems where diagonal dominance or SPD structure makes Gauss–Seidel-type updates effective.
    • Parallel execution may introduce small differences compared to strictly sequential updates.
    Configuration
    • Ignores any configured Preconditioner; use the relaxation factor to influence convergence.
    When to use
    • To utilise multiple cores for simple in-place iterative sweeps.
    • As a smoother or pre-relaxation when approximate iterations are acceptable.
    • For challenging SPD problems prioritising convergence speed/robustness, Krylov methods are often preferable.
    • Constructor Detail

      • ParallelGaussSeidelSolver

        public ParallelGaussSeidelSolver()
    • Method Detail

      • resolve

        private double resolve​(java.util.List<Equation> equations,
                               PhysicalStore<java.lang.Double> solution,
                               double normRHS,
                               java.util.concurrent.atomic.AtomicInteger iterationsCounter,
                               int first,
                               int limit)