Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## no.uib.cipr.matrix.sparse
Class QMR

    java.lang.Object
      no.uib.cipr.matrix.sparse.AbstractIterativeSolver
          no.uib.cipr.matrix.sparse.QMR

All Implemented Interfaces:
  IterativeSolver

    public class QMR

extends AbstractIterativeSolver

Quasi-Minimal Residual method. QMR solves the unsymmetric linear system `Ax = b` using the Quasi-Minimal Residual method. QMR uses two preconditioners, and by default these are the same preconditioner.

Field Summary

Fields inherited from class no.uib.cipr.matrix.sparse.AbstractIterativeSolver
`iter, M`

Constructor Summary
`QMR(Vector template)` Constructor for QMR.
`QMR(Vector template, Preconditioner M1, Preconditioner M2)` Constructor for QMR.

Method Summary
`void` | `setPreconditioner(Preconditioner M)` Sets preconditioner
`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`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### QMR

    public QMR(Vector template)

  Constructor for QMR. 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

### QMR

    public QMR(Vector template,
               Preconditioner M1,
               Preconditioner M2)

  Constructor for QMR. 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. Allows setting different right and left preconditioners

  Parameters:
    `template` - Vector to use as template for the work vectors needed in the solution process
    `M1` - Left preconditioner
    `M2` - Right preconditioner

Method Detail

### 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`

### setPreconditioner

    public void setPreconditioner(Preconditioner M)

  Description copied from interface: `IterativeSolver`
  Sets preconditioner

  Specified by:
    `setPreconditioner` in interface `IterativeSolver`
  Overrides:
    `setPreconditioner` in class `AbstractIterativeSolver`
  Parameters:
    `M` - Preconditioner to use

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD