no.uib.cipr.matrix.sparse
Class Chebyshev

java.lang.Object
  extended by no.uib.cipr.matrix.sparse.AbstractIterativeSolver
      extended by no.uib.cipr.matrix.sparse.Chebyshev
All Implemented Interfaces:
IterativeSolver

public class Chebyshev
extends AbstractIterativeSolver

Chebyshev solver. Solves the symmetric positive definite linear system Ax = b using the Preconditioned Chebyshev Method. Chebyshev requires an acurate estimate on the bounds of the spectrum of the matrix.


Field Summary
 
Fields inherited from class no.uib.cipr.matrix.sparse.AbstractIterativeSolver
iter, M
 
Constructor Summary
Chebyshev(Vector template, double eigmin, double eigmax)
          Constructor for Chebyshev.
 
Method Summary
 void setEigenvalues(double eigmin, double eigmax)
          Sets the eigenvalue estimates.
 Vector solve(Matrix A, Vector b, Vector x)
          Solves the given problem, writing result into the vector.
 
Methods inherited from class no.uib.cipr.matrix.sparse.AbstractIterativeSolver
checkSizes, getIterationMonitor, getPreconditioner, setIterationMonitor, setPreconditioner
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Chebyshev

public Chebyshev(Vector template,
                 double eigmin,
                 double eigmax)
Constructor for Chebyshev. Uses the given vector as template for creating scratch vectors. Typically, the solution or the right hand side vector can be passed, and the template is not modified. Eigenvalue estimates must also be provided

Parameters:
template - Vector to use as template for the work vectors needed in the solution process
eigmin - Smallest eigenvalue. Must be positive
eigmax - Largest eigenvalue. Must be positive
Method Detail

setEigenvalues

public void setEigenvalues(double eigmin,
                           double eigmax)
Sets the eigenvalue estimates.

Parameters:
eigmin - Smallest eigenvalue. Must be positive
eigmax - Largest eigenvalue. Must be positive

solve

public Vector solve(Matrix A,
                    Vector b,
                    Vector x)
             throws IterativeSolverNotConvergedException
Description copied from interface: IterativeSolver
Solves the given problem, writing result into the vector.

Parameters:
A - Matrix of the problem
b - Right hand side
x - Solution is stored here. Also used as initial guess
Returns:
The solution vector x
Throws:
IterativeSolverNotConvergedException