Parallel Colt 0.7.2

cern.colt.matrix.tdouble.algo.solver.preconditioner
Class DoubleAMG

java.lang.Object
  extended by cern.colt.matrix.tdouble.algo.solver.preconditioner.DoubleAMG
All Implemented Interfaces:
DoublePreconditioner

public class DoubleAMG
extends Object
implements DoublePreconditioner

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


Constructor Summary
DoubleAMG()
          Sets up the algebraic multigrid preconditioner using some default parameters.
DoubleAMG(double omegaPreF, double omegaPreR, double omegaPostF, double omegaPostR, int nu1, int nu2, int gamma, int min, double omega)
          Sets up the algebraic multigrid preconditioner
DoubleAMG(double omegaPre, double omegaPost, int nu1, int nu2, int gamma, int min, double omega)
          Sets up the algebraic multigrid preconditioner.
 
Method Summary
 DoubleMatrix1D apply(DoubleMatrix1D b, DoubleMatrix1D x)
          Solves the approximate problem with the given right hand side.
 void setMatrix(DoubleMatrix2D A)
          Sets the operator matrix for the preconditioner.
 DoubleMatrix1D transApply(DoubleMatrix1D b, DoubleMatrix1D x)
          Solves the approximate transpose problem with the given right hand side.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DoubleAMG

public DoubleAMG(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

DoubleAMG

public DoubleAMG(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

DoubleAMG

public DoubleAMG()
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 DoubleMatrix1D apply(DoubleMatrix1D b,
                            DoubleMatrix1D x)
Description copied from interface: DoublePreconditioner
Solves the approximate problem with the given right hand side. Result is stored in given solution vector

Specified by:
apply in interface DoublePreconditioner
Parameters:
b - Right hand side of problem
x - Result is stored here
Returns:
x

transApply

public DoubleMatrix1D transApply(DoubleMatrix1D b,
                                 DoubleMatrix1D x)
Description copied from interface: DoublePreconditioner
Solves the approximate transpose problem with the given right hand side. Result is stored in given solution vector

Specified by:
transApply in interface DoublePreconditioner
Parameters:
b - Right hand side of problem
x - Result is stored here
Returns:
x

setMatrix

public void setMatrix(DoubleMatrix2D A)
Description copied from interface: DoublePreconditioner
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 DoublePreconditioner
Parameters:
A - Matrix to setup the preconditioner for. Not modified

Parallel Colt 0.7.2

Jump to the Parallel Colt Homepage