Package no.uib.cipr.matrix.sparse
Class AMG
java.lang.Object
no.uib.cipr.matrix.sparse.AMG
- All Implemented Interfaces:
Preconditioner
Algebraic multigrid preconditioner. Uses the smoothed aggregation method
described by Vanek, Mandel, and Brezina (1996).
-
Constructor Summary
ConstructorsConstructorDescriptionAMG()
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 preconditionerAMG
(double omegaPre, double omegaPost, int nu1, int nu2, int gamma, int min, double omega) Sets up the algebraic multigrid preconditioner. -
Method Summary
Modifier and TypeMethodDescriptionSolves the approximate problem with the given right hand side.void
Sets the operator matrix for the preconditioner.transApply
(Vector b, Vector x) Solves the approximate transpose problem with the given right hand side.
-
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-smoothingomegaPreR
- Overrelaxation parameter in the backwards sweep of the pre-smoothingomegaPostF
- Overrelaxation parameter in the forward sweep of the post-smoothingomegaPostR
- Overrelaxation parameter in the backwards sweep of the post-smoothingnu1
- Number of pre-relaxations to performnu2
- Number of post-relaxations to performgamma
- Number of times to go to a coarser levelmin
- Smallest matrix size before using a direct solveromega
- 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-smoothingomegaPost
- Overrelaxation parameter in the post-smoothingnu1
- Number of pre-relaxations to performnu2
- Number of post-relaxations to performgamma
- Number of times to go to a coarser levelmin
- Smallest matrix size before using a direct solveromega
- 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
andomegaR=1.85
, while in the postsmoothing,omegaF=1.85
andomegaR=1
. Setsnu1=nu2=gamma=1
, has a smallest matrix size of 40, and setsomega=2/3
.
-
-
Method Details
-
apply
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 interfacePreconditioner
- Parameters:
b
- Right hand side of problemx
- Result is stored here- Returns:
- x
-
transApply
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 interfacePreconditioner
- Parameters:
b
- Right hand side of problemx
- Result is stored here- Returns:
- x
-
setMatrix
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 interfacePreconditioner
- Parameters:
A
- Matrix to setup the preconditioner for. Not modified
-