no.uib.cipr.matrix.distributed
Class TwoLevelPreconditioner

java.lang.Object
  extended by no.uib.cipr.matrix.distributed.BlockDiagonalPreconditioner
      extended by no.uib.cipr.matrix.distributed.TwoLevelPreconditioner
All Implemented Interfaces:
Preconditioner

public class TwoLevelPreconditioner
extends BlockDiagonalPreconditioner

Two level preconditioner. Uses a block preconditioner as a subdomain solver, and algebraically constructs a coarse grid correcion operator


Constructor Summary
TwoLevelPreconditioner(Preconditioner prec, DistColMatrix A, DistVector z)
           
TwoLevelPreconditioner(Preconditioner prec, DistRowMatrix A, DistVector z)
           
 
Method Summary
 Vector apply(Vector b, Vector x)
          Solves the approximate problem with the given right hand side.
 void setMatrix(Matrix A)
          Sets the operator matrix for the preconditioner.
 Vector transApply(Vector b, Vector x)
          Solves the approximate transpose problem with the given right hand side.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TwoLevelPreconditioner

public TwoLevelPreconditioner(Preconditioner prec,
                              DistRowMatrix A,
                              DistVector z)

TwoLevelPreconditioner

public TwoLevelPreconditioner(Preconditioner prec,
                              DistColMatrix A,
                              DistVector z)
Method Detail

apply

public Vector apply(Vector b,
                    Vector x)
Description copied from interface: Preconditioner
Solves the approximate problem with the given right hand side. Result is stored in given solution vector

Specified by:
apply in interface Preconditioner
Overrides:
apply in class BlockDiagonalPreconditioner
Parameters:
b - Right hand side of problem
x - Result is stored here
Returns:
x

transApply

public Vector transApply(Vector b,
                         Vector x)
Description copied from interface: Preconditioner
Solves the approximate transpose problem with the given right hand side. Result is stored in given solution vector

Specified by:
transApply in interface Preconditioner
Overrides:
transApply in class BlockDiagonalPreconditioner
Parameters:
b - Right hand side of problem
x - Result is stored here
Returns:
x

setMatrix

public void setMatrix(Matrix A)
Description copied from interface: Preconditioner
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 Preconditioner
Overrides:
setMatrix in class BlockDiagonalPreconditioner
Parameters:
A - Matrix to setup the preconditioner for. Not modified