no.uib.cipr.matrix.sparse
Class GMRES

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

public class GMRES
extends AbstractIterativeSolver

GMRES solver. GMRES solves the unsymmetric linear system Ax = b using the Generalized Minimum Residual method. The GMRES iteration is restarted after a given number of iterations. By default it is restarted after 30 iterations.


Field Summary
 
Fields inherited from class no.uib.cipr.matrix.sparse.AbstractIterativeSolver
iter, M
 
Constructor Summary
GMRES(Vector template)
          Constructor for GMRES.
GMRES(Vector template, int restart)
          Constructor for GMRES.
 
Method Summary
 void setRestart(int restart)
          Sets the restart parameter
 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

GMRES

public GMRES(Vector template)
Constructor for GMRES. 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. The iteration is restarted every 30 iterations

Parameters:
template - Vector to use as template for the work vectors needed in the solution process

GMRES

public GMRES(Vector template,
             int restart)
Constructor for GMRES. 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

Parameters:
template - Vector to use as template for the work vectors needed in the solution process
restart - GMRES iteration is restarted after this number of iterations
Method Detail

setRestart

public void setRestart(int restart)
Sets the restart parameter

Parameters:
restart - GMRES iteration is restarted after this number of iterations

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