Playa::PreconditionerBase< Scalar > Class Template Reference

Inheritance diagram for Playa::PreconditionerBase< Scalar >:

Playa::Handleable< PreconditionerBase< Scalar > >

List of all members.

Public Member Functions

 PreconditionerBase ()
virtual ~PreconditionerBase ()
virtual LinearOperator< Scalar > left () const =0
virtual LinearOperator< Scalar > right () const =0
virtual bool hasLeft () const =0
virtual bool hasRight () const =0


Detailed Description

template<class Scalar>
class Playa::PreconditionerBase< Scalar >

Base class for preconditioners. A general preconditioner object is split into a left preconditioner M1^-1 and a right preconditioner M2^-1. To solve A x = b, we define the auxiliary system M2^-1 y = x, and solve M1^-1 A M2^-1 y = M1^-1 b to obtain y. Having y, we can quickly recover x by applying M2^-1 to y.

The base class implements neither a left nor a right preconditioner.

Definition at line 28 of file PlayaPreconditionerBase.hpp.


Constructor & Destructor Documentation

template<class Scalar>
Playa::PreconditionerBase< Scalar >::PreconditionerBase (  )  [inline]

empty ctor

Definition at line 32 of file PlayaPreconditionerBase.hpp.

template<class Scalar>
virtual Playa::PreconditionerBase< Scalar >::~PreconditionerBase (  )  [inline, virtual]

virtual dtor

Definition at line 35 of file PlayaPreconditionerBase.hpp.


Member Function Documentation

template<class Scalar>
virtual bool Playa::PreconditionerBase< Scalar >::hasLeft (  )  const [pure virtual]

return true if this preconditioner has a nontrivial left component

Implemented in Playa::GenericLeftPreconditioner< Scalar >, Playa::GenericRightPreconditioner< Scalar >, and Playa::GenericLeftPreconditioner< Scalar >.

template<class Scalar>
virtual bool Playa::PreconditionerBase< Scalar >::hasRight (  )  const [pure virtual]

return true if this preconditioner has a nontrivial right component

Implemented in Playa::GenericLeftPreconditioner< Scalar >, Playa::GenericRightPreconditioner< Scalar >, and Playa::GenericLeftPreconditioner< Scalar >.

template<class Scalar>
virtual LinearOperator<Scalar> Playa::PreconditionerBase< Scalar >::left (  )  const [pure virtual]

template<class Scalar>
virtual LinearOperator<Scalar> Playa::PreconditionerBase< Scalar >::right (  )  const [pure virtual]

Site Contact