public class DoubleAMG extends Object implements DoublePreconditioner
Constructor and Description |
---|
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.
|
Modifier and Type | Method and Description |
---|---|
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.
|
public DoubleAMG(double omegaPreF, double omegaPreR, double omegaPostF, double omegaPostR, int nu1, int nu2, int gamma, int min, double omega)
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
methodpublic DoubleAMG(double omegaPre, double omegaPost, int nu1, int nu2, int gamma, int min, double omega)
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
methodpublic DoubleAMG()
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
.public DoubleMatrix1D apply(DoubleMatrix1D b, DoubleMatrix1D x)
DoublePreconditioner
apply
in interface DoublePreconditioner
b
- Right hand side of problemx
- Result is stored herepublic DoubleMatrix1D transApply(DoubleMatrix1D b, DoubleMatrix1D x)
DoublePreconditioner
transApply
in interface DoublePreconditioner
b
- Right hand side of problemx
- Result is stored herepublic void setMatrix(DoubleMatrix2D A)
DoublePreconditioner
setMatrix
in interface DoublePreconditioner
A
- Matrix to setup the preconditioner for. Not modifiedJump to the Parallel Colt Homepage