no.uib.cipr.matrix.sparse
Class AMG

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

public class AMG
extends java.lang.Object
implements Preconditioner

Algebraic multigrid preconditioner. Uses the smoothed aggregation method described by Vanek, Mandel, and Brezina (1996).


Constructor Summary
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
 Vector apply(Vector b, Vector x)
          Solves the approximate problem with the given right hand side.
 void setMatrix(Matrix A)
          Sets the operator matrix for the preconditioner.
 Vector transApply(Vector b, Vector x)
          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 Detail

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 Detail

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