Parallel Colt 0.7.2

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

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

public class DoubleSSOR
extends 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
DoubleSSOR(RCDoubleMatrix2D F)
          Constructor for SSOR.
DoubleSSOR(RCDoubleMatrix2D F, boolean reverse, double omegaF, double omegaR)
          Constructor for SSOR
 
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.
 void setOmega(double omegaF, double omegaR)
          Sets the overrelaxation parameters
 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

DoubleSSOR

public DoubleSSOR(RCDoubleMatrix2D F,
                  boolean reverse,
                  double omegaF,
                  double omegaR)
Constructor for SSOR

Parameters:
F - Matrix to use internally. It will not be modified, thus the system matrix may be passed
reverse - True to perform a reverse sweep as well as the forward sweep. If false, this preconditioner becomes the SOR method instead
omegaF - Overrelaxation parameter for the forward sweep. Between 0 and 2.
omegaR - Overrelaxation parameter for the backwards sweep. Between 0 and 2.

DoubleSSOR

public DoubleSSOR(RCDoubleMatrix2D F)
Constructor for SSOR. Uses omega=1 with a backwards sweep

Parameters:
F - Matrix to use internally. It will not be modified, thus the system matrix may be passed
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: 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

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

Parallel Colt 0.7.2

Jump to the Parallel Colt Homepage