Class AMG

java.lang.Object
no.uib.cipr.matrix.sparse.AMG
All Implemented Interfaces:
Preconditioner

public class AMG extends Object implements Preconditioner
Algebraic multigrid preconditioner. Uses the smoothed aggregation method described by Vanek, Mandel, and Brezina (1996).
  • Constructor Summary

    Constructors
    Constructor
    Description
    AMG()
    Sets up the algebraic multigrid preconditioner using some default parameters.
    AMG(double omegaPreF, double omegaPreR, double omegaPostF, double omegaPostR, int nu1, int nu2, int gamma, int min, double omega)
    Sets up the algebraic multigrid preconditioner
    AMG(double omegaPre, double omegaPost, int nu1, int nu2, int gamma, int min, double omega)
    Sets up the algebraic multigrid preconditioner.
  • Method Summary

    Modifier and Type
    Method
    Description
    Solves the approximate problem with the given right hand side.
    void
    Sets the operator matrix for the preconditioner.
    Solves the approximate transpose problem with the given right hand side.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • AMG

      public AMG(double omegaPreF, double omegaPreR, double omegaPostF, double omegaPostR, int nu1, int nu2, int gamma, int min, double omega)
      Sets up the algebraic multigrid preconditioner
      Parameters:
      omegaPreF - Overrelaxation parameter in the forward sweep of the pre-smoothing
      omegaPreR - Overrelaxation parameter in the backwards sweep of the pre-smoothing
      omegaPostF - Overrelaxation parameter in the forward sweep of the post-smoothing
      omegaPostR - Overrelaxation parameter in the backwards sweep of the post-smoothing
      nu1 - Number of pre-relaxations to perform
      nu2 - Number of post-relaxations to perform
      gamma - Number of times to go to a coarser level
      min - Smallest matrix size before using a direct solver
      omega - Jacobi damping parameter, between zero and one. If it equals zero, the method reduces to the standard aggregate multigrid method
    • AMG

      public AMG(double omegaPre, double omegaPost, int nu1, int nu2, int gamma, int min, double omega)
      Sets up the algebraic multigrid preconditioner. Uses an SOR method, without the backward sweep in SSOR
      Parameters:
      omegaPre - Overrelaxation parameter in the pre-smoothing
      omegaPost - Overrelaxation parameter in the post-smoothing
      nu1 - Number of pre-relaxations to perform
      nu2 - Number of post-relaxations to perform
      gamma - Number of times to go to a coarser level
      min - Smallest matrix size before using a direct solver
      omega - Jacobi damping parameter, between zero and one. If it equals zero, the method reduces to the standard aggregate multigrid method
    • AMG

      public AMG()
      Sets up the algebraic multigrid preconditioner using some default parameters. In the presmoothing, omegaF=1 and omegaR=1.85, while in the postsmoothing, omegaF=1.85 and omegaR=1. Sets nu1=nu2=gamma=1, has a smallest matrix size of 40, and sets omega=2/3.
  • Method Details

    • apply

      public Vector apply(Vector b, Vector x)
      Description copied from interface: Preconditioner
      Solves the approximate problem with the given right hand side. Result is stored in given solution vector
      Specified by:
      apply in interface Preconditioner
      Parameters:
      b - Right hand side of problem
      x - Result is stored here
      Returns:
      x
    • transApply

      public Vector transApply(Vector b, Vector x)
      Description copied from interface: Preconditioner
      Solves the approximate transpose problem with the given right hand side. Result is stored in given solution vector
      Specified by:
      transApply in interface Preconditioner
      Parameters:
      b - Right hand side of problem
      x - Result is stored here
      Returns:
      x
    • setMatrix

      public void setMatrix(Matrix A)
      Description copied from interface: Preconditioner
      Sets the operator matrix for the preconditioner. This method must be called before a preconditioner is used by an iterative solver
      Specified by:
      setMatrix in interface Preconditioner
      Parameters:
      A - Matrix to setup the preconditioner for. Not modified