Class BiconjugateGradientStabilizedSolver

  • All Implemented Interfaces:
    IterativeLinearSystemSolver

    public class BiconjugateGradientStabilizedSolver
    extends Object
    implements IterativeLinearSystemSolver
    The Biconjugate Gradient Stabilized (BiCGSTAB) method is useful for solving non-symmetric n-by-n linear systems. Like CGS, this algorithm is a transpose-free variant of BiCG, but uses a different update for the At-sequence to obtain a smoother convergence than CGS does.

    Only left preconditioning is supported in this implementation.

    • Field Detail

      • DEFAULT_RESIDUAL_REFRESH_RATE

        public static final int DEFAULT_RESIDUAL_REFRESH_RATE
        The algorithm recomputes the residual as b - Axi once per this number of iterations
        See Also:
        Constant Field Values
    • Constructor Detail

      • BiconjugateGradientStabilizedSolver

        public BiconjugateGradientStabilizedSolver​(PreconditionerFactory leftPreconditionerFactory,
                                                   int residualRefreshRate,
                                                   int maxIteration,
                                                   Tolerance tolerance)
        Construct a Biconjugate Gradient Stabilized solver (BiCGSTAB) .
        Parameters:
        leftPreconditionerFactory - constructs a new left preconditioner
        residualRefreshRate - the number of iterations before the next refresh
        maxIteration - the maximum number of iterations
        tolerance - the convergence threshold
      • BiconjugateGradientStabilizedSolver

        public BiconjugateGradientStabilizedSolver​(int maxIteration,
                                                   Tolerance tolerance)
        Construct a Biconjugate Gradient Stabilized solver (BiCGSTAB) .
        Parameters:
        maxIteration - the maximum number of iterations
        tolerance - the convergence threshold