Package 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 systemAx = 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
Constructors Constructor Description QMR(Vector template)
Constructor for QMR.QMR(Vector template, Preconditioner M1, Preconditioner M2)
Constructor for QMR.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
setPreconditioner(Preconditioner M)
Sets preconditionerVector
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
-
-
-
-
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 processM1
- Left preconditionerM2
- 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 problemb
- Right hand sidex
- 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 interfaceIterativeSolver
- Overrides:
setPreconditioner
in classAbstractIterativeSolver
- Parameters:
M
- Preconditioner to use
-
-