cern.colt.matrix.tdouble.algo.solver.preconditioner
Class DoubleSSOR
- java.lang.Object
-
- cern.colt.matrix.tdouble.algo.solver.preconditioner.DoubleSSOR
-
- All Implemented Interfaces:
- DoublePreconditioner
public class DoubleSSOR extends java.lang.Object implements DoublePreconditioner
SSOR preconditioner. Uses symmetrical sucessive overrelaxation as a preconditioner. Meant for symmetrical, positive definite matrices. For best performance, omega must be carefully chosen (between 0 and 2).
-
-
Constructor Summary
Constructors Constructor and Description DoubleSSOR(int n)Constructor for SSOR.DoubleSSOR(int n, boolean reverse, double omegaF, double omegaR)Constructor for SSOR
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description DoubleMatrix1Dapply(DoubleMatrix1D b, DoubleMatrix1D x)Solves the approximate problem with the given right hand side.voidsetMatrix(DoubleMatrix2D A)Sets the operator matrix for the preconditioner.voidsetOmega(double omegaF, double omegaR)Sets the overrelaxation parametersDoubleMatrix1DtransApply(DoubleMatrix1D b, DoubleMatrix1D x)Solves the approximate transpose problem with the given right hand side.
-
-
-
Constructor Detail
-
DoubleSSOR
public DoubleSSOR(int n, boolean reverse, double omegaF, double omegaR)Constructor for SSOR- Parameters:
n- Problem size (number of rows)reverse- True to perform a reverse sweep as well as the forward sweep. If false, this preconditioner becomes the SOR method insteadomegaF- Overrelaxation parameter for the forward sweep. Between 0 and 2.omegaR- Overrelaxation parameter for the backwards sweep. Between 0 and 2.
-
DoubleSSOR
public DoubleSSOR(int n)
Constructor for SSOR. Usesomega=1with a backwards sweep- Parameters:
n- Problem size (number of rows)
-
-
Method Detail
-
setOmega
public void setOmega(double omegaF, double omegaR)Sets the overrelaxation parameters- Parameters:
omegaF- Overrelaxation parameter for the forward sweep. Between 0 and 2.omegaR- Overrelaxation parameter for the backwards sweep. Between 0 and 2.
-
setMatrix
public void setMatrix(DoubleMatrix2D A)
Description copied from interface:DoublePreconditionerSets the operator matrix for the preconditioner. This method must be called before a preconditioner is used by an iterative solver- Specified by:
setMatrixin interfaceDoublePreconditioner- Parameters:
A- Matrix to setup the preconditioner for. Not modified
-
apply
public DoubleMatrix1D apply(DoubleMatrix1D b, DoubleMatrix1D x)
Description copied from interface:DoublePreconditionerSolves the approximate problem with the given right hand side. Result is stored in given solution vector- Specified by:
applyin interfaceDoublePreconditioner- Parameters:
b- Right hand side of problemx- Result is stored here- Returns:
- x
-
transApply
public DoubleMatrix1D transApply(DoubleMatrix1D b, DoubleMatrix1D x)
Description copied from interface:DoublePreconditionerSolves the approximate transpose problem with the given right hand side. Result is stored in given solution vector- Specified by:
transApplyin interfaceDoublePreconditioner- Parameters:
b- Right hand side of problemx- Result is stored here- Returns:
- x
-
-
DMelt 3.0 © DataMelt by jWork.ORG