Thyra::DefaultPreconditioner< RangeScalar, DomainScalar > Class Template Reference

Default implementation of a PreconditionerBase that just accepts precreated preconditioner linear operators. More...

#include <Thyra_DefaultPreconditionerDecl.hpp>

Inheritance diagram for Thyra::DefaultPreconditioner< RangeScalar, DomainScalar >:

[legend]
List of all members.

Constructors/initializers/accessors

 DefaultPreconditioner ()
 Construct to uninitialized.
 DefaultPreconditioner (const Teuchos::RefCountPtr< LinearOpBase< RangeScalar, DomainScalar > > &leftPrecOp, const Teuchos::RefCountPtr< LinearOpBase< RangeScalar, DomainScalar > > &rightPrecOp)
 Construct a left-only, or right-only, or split left/right preconditioner.
 DefaultPreconditioner (const Teuchos::RefCountPtr< const LinearOpBase< RangeScalar, DomainScalar > > &leftPrecOp, const Teuchos::RefCountPtr< const LinearOpBase< RangeScalar, DomainScalar > > &rightPrecOp)
 Construct a const-only left-only, or right-only, or split left/right preconditioner.
 DefaultPreconditioner (const Teuchos::RefCountPtr< LinearOpBase< RangeScalar, DomainScalar > > &unspecifiedPrecOp)
 Construct a single unspecified preconditioner.
 DefaultPreconditioner (const Teuchos::RefCountPtr< const LinearOpBase< RangeScalar, DomainScalar > > &unspecifiedPrecOp)
 Construct a const-only single unspecified preconditioner.
void initializeLeft (const Teuchos::RefCountPtr< LinearOpBase< RangeScalar, DomainScalar > > &leftPrecOp)
 Initialize a left preconditioner.
void initializeLeft (const Teuchos::RefCountPtr< const LinearOpBase< RangeScalar, DomainScalar > > &leftPrecOp)
 Initialize a const-only left preconditioner.
void initializeRight (const Teuchos::RefCountPtr< LinearOpBase< RangeScalar, DomainScalar > > &rightPrecOp)
 Initialize a right preconditioner.
void initializeRight (const Teuchos::RefCountPtr< const LinearOpBase< RangeScalar, DomainScalar > > &rightPrecOp)
 Initialize a const-only right preconditioner.
void initializeLeftRight (const Teuchos::RefCountPtr< LinearOpBase< RangeScalar, DomainScalar > > &leftPrecOp, const Teuchos::RefCountPtr< LinearOpBase< RangeScalar, DomainScalar > > &rightPrecOp)
 Initialize a split left/right preconditioner.
void initializeLeftRight (const Teuchos::RefCountPtr< const LinearOpBase< RangeScalar, DomainScalar > > &leftPrecOp, const Teuchos::RefCountPtr< const LinearOpBase< RangeScalar, DomainScalar > > &rightPrecOp)
 Initialize a const-only split left/right preconditioner.
void initializeUnspecified (const Teuchos::RefCountPtr< LinearOpBase< RangeScalar, DomainScalar > > &unspecifiedPrecOp)
 Initialize a single unspecified preconditioner operator.
void initializeUnspecified (const Teuchos::RefCountPtr< const LinearOpBase< RangeScalar, DomainScalar > > &unspecifiedPrecOp)
 Initialize a const-only single unspecified preconditioner operator.
void uninitialize ()
 Uninitialize.

Overridden from PreconditionerBase

bool isLeftPrecOpConst () const
 
Teuchos::RefCountPtr< LinearOpBase<
RangeScalar, DomainScalar > > 
getNonconstLeftPrecOp ()
 
Teuchos::RefCountPtr< const
LinearOpBase< RangeScalar,
DomainScalar > > 
getLeftPrecOp () const
 
bool isRightPrecOpConst () const
 
Teuchos::RefCountPtr< LinearOpBase<
RangeScalar, DomainScalar > > 
getNonconstRightPrecOp ()
 
Teuchos::RefCountPtr< const
LinearOpBase< RangeScalar,
DomainScalar > > 
getRightPrecOp () const
 
bool isUnspecifiedPrecOpConst () const
 
Teuchos::RefCountPtr< LinearOpBase<
RangeScalar, DomainScalar > > 
getNonconstUnspecifiedPrecOp ()
 
Teuchos::RefCountPtr< const
LinearOpBase< RangeScalar,
DomainScalar > > 
getUnspecifiedPrecOp () const
 

Related Functions

(Note that these are not member functions.)

Teuchos::RefCountPtr< const
DefaultPreconditioner< Scalar > > 
unspecifiedPrec (const Teuchos::RefCountPtr< const LinearOpBase< Scalar > > &unspecifiedPrecOp)
 Create a precondioner from a single linear operator not targeted to be used on the left or the right.
Teuchos::RefCountPtr< const
DefaultPreconditioner< Scalar > > 
leftPrec (const Teuchos::RefCountPtr< const LinearOpBase< Scalar > > &leftPrecOp)
 Create a precondioner from a single linear operator targeted to be used on the left.
Teuchos::RefCountPtr< const
DefaultPreconditioner< Scalar > > 
rightPrec (const Teuchos::RefCountPtr< const LinearOpBase< Scalar > > &rightPrecOp)
 Create a precondioner from a single linear operator targeted to be used on the right.
Teuchos::RefCountPtr< const
DefaultPreconditioner< Scalar > > 
splitPrec (const Teuchos::RefCountPtr< const LinearOpBase< Scalar > > &leftPrecOp, const Teuchos::RefCountPtr< const LinearOpBase< Scalar > > &rightPrecOp)
 Create a split precondioner from two linear operators, one to be applied on the left and one to be applied on the right.

Detailed Description

template<class RangeScalar, class DomainScalar = RangeScalar>
class Thyra::DefaultPreconditioner< RangeScalar, DomainScalar >

Default implementation of a PreconditionerBase that just accepts precreated preconditioner linear operators.

Here is how to construct a precondtioner for the four different types of preconditioners:

Definition at line 65 of file Thyra_DefaultPreconditionerDecl.hpp.


Constructor & Destructor Documentation

template<class RangeScalar, class DomainScalar>
Thyra::DefaultPreconditioner< RangeScalar, DomainScalar >::DefaultPreconditioner  ) 
 

Construct to uninitialized.

Definition at line 39 of file Thyra_DefaultPreconditioner.hpp.

template<class RangeScalar, class DomainScalar>
Thyra::DefaultPreconditioner< RangeScalar, DomainScalar >::DefaultPreconditioner const Teuchos::RefCountPtr< LinearOpBase< RangeScalar, DomainScalar > > &  leftPrecOp,
const Teuchos::RefCountPtr< LinearOpBase< RangeScalar, DomainScalar > > &  rightPrecOp
 

Construct a left-only, or right-only, or split left/right preconditioner.

Definition at line 43 of file Thyra_DefaultPreconditioner.hpp.

template<class RangeScalar, class DomainScalar>
Thyra::DefaultPreconditioner< RangeScalar, DomainScalar >::DefaultPreconditioner const Teuchos::RefCountPtr< const LinearOpBase< RangeScalar, DomainScalar > > &  leftPrecOp,
const Teuchos::RefCountPtr< const LinearOpBase< RangeScalar, DomainScalar > > &  rightPrecOp
 

Construct a const-only left-only, or right-only, or split left/right preconditioner.

Definition at line 56 of file Thyra_DefaultPreconditioner.hpp.

template<class RangeScalar, class DomainScalar>
Thyra::DefaultPreconditioner< RangeScalar, DomainScalar >::DefaultPreconditioner const Teuchos::RefCountPtr< LinearOpBase< RangeScalar, DomainScalar > > &  unspecifiedPrecOp  ) 
 

Construct a single unspecified preconditioner.

Definition at line 71 of file Thyra_DefaultPreconditioner.hpp.

template<class RangeScalar, class DomainScalar>
Thyra::DefaultPreconditioner< RangeScalar, DomainScalar >::DefaultPreconditioner const Teuchos::RefCountPtr< const LinearOpBase< RangeScalar, DomainScalar > > &  unspecifiedPrecOp  ) 
 

Construct a const-only single unspecified preconditioner.

Definition at line 79 of file Thyra_DefaultPreconditioner.hpp.


Member Function Documentation

template<class RangeScalar, class DomainScalar>
void Thyra::DefaultPreconditioner< RangeScalar, DomainScalar >::initializeLeft const Teuchos::RefCountPtr< LinearOpBase< RangeScalar, DomainScalar > > &  leftPrecOp  ) 
 

Initialize a left preconditioner.

Definition at line 87 of file Thyra_DefaultPreconditioner.hpp.

template<class RangeScalar, class DomainScalar>
void Thyra::DefaultPreconditioner< RangeScalar, DomainScalar >::initializeLeft const Teuchos::RefCountPtr< const LinearOpBase< RangeScalar, DomainScalar > > &  leftPrecOp  ) 
 

Initialize a const-only left preconditioner.

Definition at line 96 of file Thyra_DefaultPreconditioner.hpp.

template<class RangeScalar, class DomainScalar>
void Thyra::DefaultPreconditioner< RangeScalar, DomainScalar >::initializeRight const Teuchos::RefCountPtr< LinearOpBase< RangeScalar, DomainScalar > > &  rightPrecOp  ) 
 

Initialize a right preconditioner.

Definition at line 105 of file Thyra_DefaultPreconditioner.hpp.

template<class RangeScalar, class DomainScalar>
void Thyra::DefaultPreconditioner< RangeScalar, DomainScalar >::initializeRight const Teuchos::RefCountPtr< const LinearOpBase< RangeScalar, DomainScalar > > &  rightPrecOp  ) 
 

Initialize a const-only right preconditioner.

Definition at line 114 of file Thyra_DefaultPreconditioner.hpp.

template<class RangeScalar, class DomainScalar>
void Thyra::DefaultPreconditioner< RangeScalar, DomainScalar >::initializeLeftRight const Teuchos::RefCountPtr< LinearOpBase< RangeScalar, DomainScalar > > &  leftPrecOp,
const Teuchos::RefCountPtr< LinearOpBase< RangeScalar, DomainScalar > > &  rightPrecOp
 

Initialize a split left/right preconditioner.

Definition at line 123 of file Thyra_DefaultPreconditioner.hpp.

template<class RangeScalar, class DomainScalar>
void Thyra::DefaultPreconditioner< RangeScalar, DomainScalar >::initializeLeftRight const Teuchos::RefCountPtr< const LinearOpBase< RangeScalar, DomainScalar > > &  leftPrecOp,
const Teuchos::RefCountPtr< const LinearOpBase< RangeScalar, DomainScalar > > &  rightPrecOp
 

Initialize a const-only split left/right preconditioner.

Definition at line 134 of file Thyra_DefaultPreconditioner.hpp.

template<class RangeScalar, class DomainScalar>
void Thyra::DefaultPreconditioner< RangeScalar, DomainScalar >::initializeUnspecified const Teuchos::RefCountPtr< LinearOpBase< RangeScalar, DomainScalar > > &  unspecifiedPrecOp  ) 
 

Initialize a single unspecified preconditioner operator.

Definition at line 145 of file Thyra_DefaultPreconditioner.hpp.

template<class RangeScalar, class DomainScalar>
void Thyra::DefaultPreconditioner< RangeScalar, DomainScalar >::initializeUnspecified const Teuchos::RefCountPtr< const LinearOpBase< RangeScalar, DomainScalar > > &  unspecifiedPrecOp  ) 
 

Initialize a const-only single unspecified preconditioner operator.

Definition at line 154 of file Thyra_DefaultPreconditioner.hpp.

template<class RangeScalar, class DomainScalar>
void Thyra::DefaultPreconditioner< RangeScalar, DomainScalar >::uninitialize  ) 
 

Uninitialize.

Note: If the client wants to access the underlying preconditioner operators, then it had better grab them with the below access functions before calling this function.

Definition at line 163 of file Thyra_DefaultPreconditioner.hpp.

template<class RangeScalar, class DomainScalar>
bool Thyra::DefaultPreconditioner< RangeScalar, DomainScalar >::isLeftPrecOpConst  )  const [virtual]
 

Implements Thyra::PreconditionerBase< RangeScalar, DomainScalar >.

Definition at line 173 of file Thyra_DefaultPreconditioner.hpp.

template<class RangeScalar, class DomainScalar>
Teuchos::RefCountPtr< LinearOpBase< RangeScalar, DomainScalar > > Thyra::DefaultPreconditioner< RangeScalar, DomainScalar >::getNonconstLeftPrecOp  )  [virtual]
 

Implements Thyra::PreconditionerBase< RangeScalar, DomainScalar >.

Definition at line 180 of file Thyra_DefaultPreconditioner.hpp.

template<class RangeScalar, class DomainScalar>
Teuchos::RefCountPtr< const LinearOpBase< RangeScalar, DomainScalar > > Thyra::DefaultPreconditioner< RangeScalar, DomainScalar >::getLeftPrecOp  )  const [virtual]
 

Implements Thyra::PreconditionerBase< RangeScalar, DomainScalar >.

Definition at line 187 of file Thyra_DefaultPreconditioner.hpp.

template<class RangeScalar, class DomainScalar>
bool Thyra::DefaultPreconditioner< RangeScalar, DomainScalar >::isRightPrecOpConst  )  const [virtual]
 

Implements Thyra::PreconditionerBase< RangeScalar, DomainScalar >.

Definition at line 193 of file Thyra_DefaultPreconditioner.hpp.

template<class RangeScalar, class DomainScalar>
Teuchos::RefCountPtr< LinearOpBase< RangeScalar, DomainScalar > > Thyra::DefaultPreconditioner< RangeScalar, DomainScalar >::getNonconstRightPrecOp  )  [virtual]
 

Implements Thyra::PreconditionerBase< RangeScalar, DomainScalar >.

Definition at line 200 of file Thyra_DefaultPreconditioner.hpp.

template<class RangeScalar, class DomainScalar>
Teuchos::RefCountPtr< const LinearOpBase< RangeScalar, DomainScalar > > Thyra::DefaultPreconditioner< RangeScalar, DomainScalar >::getRightPrecOp  )  const [virtual]
 

Implements Thyra::PreconditionerBase< RangeScalar, DomainScalar >.

Definition at line 207 of file Thyra_DefaultPreconditioner.hpp.

template<class RangeScalar, class DomainScalar>
bool Thyra::DefaultPreconditioner< RangeScalar, DomainScalar >::isUnspecifiedPrecOpConst  )  const [virtual]
 

Implements Thyra::PreconditionerBase< RangeScalar, DomainScalar >.

Definition at line 213 of file Thyra_DefaultPreconditioner.hpp.

template<class RangeScalar, class DomainScalar>
Teuchos::RefCountPtr< LinearOpBase< RangeScalar, DomainScalar > > Thyra::DefaultPreconditioner< RangeScalar, DomainScalar >::getNonconstUnspecifiedPrecOp  )  [virtual]
 

Implements Thyra::PreconditionerBase< RangeScalar, DomainScalar >.

Definition at line 220 of file Thyra_DefaultPreconditioner.hpp.

template<class RangeScalar, class DomainScalar>
Teuchos::RefCountPtr< const LinearOpBase< RangeScalar, DomainScalar > > Thyra::DefaultPreconditioner< RangeScalar, DomainScalar >::getUnspecifiedPrecOp  )  const [virtual]
 

Implements Thyra::PreconditionerBase< RangeScalar, DomainScalar >.

Definition at line 227 of file Thyra_DefaultPreconditioner.hpp.


Friends And Related Function Documentation

template<class RangeScalar, class DomainScalar = RangeScalar>
Teuchos::RefCountPtr< const DefaultPreconditioner< Scalar > > unspecifiedPrec const Teuchos::RefCountPtr< const LinearOpBase< Scalar > > &  unspecifiedPrecOp  )  [related]
 

Create a precondioner from a single linear operator not targeted to be used on the left or the right.

Definition at line 208 of file Thyra_DefaultPreconditionerDecl.hpp.

template<class RangeScalar, class DomainScalar = RangeScalar>
Teuchos::RefCountPtr< const DefaultPreconditioner< Scalar > > leftPrec const Teuchos::RefCountPtr< const LinearOpBase< Scalar > > &  leftPrecOp  )  [related]
 

Create a precondioner from a single linear operator targeted to be used on the left.

Definition at line 222 of file Thyra_DefaultPreconditionerDecl.hpp.

template<class RangeScalar, class DomainScalar = RangeScalar>
Teuchos::RefCountPtr< const DefaultPreconditioner< Scalar > > rightPrec const Teuchos::RefCountPtr< const LinearOpBase< Scalar > > &  rightPrecOp  )  [related]
 

Create a precondioner from a single linear operator targeted to be used on the right.

Definition at line 236 of file Thyra_DefaultPreconditionerDecl.hpp.

template<class RangeScalar, class DomainScalar = RangeScalar>
Teuchos::RefCountPtr< const DefaultPreconditioner< Scalar > > splitPrec const Teuchos::RefCountPtr< const LinearOpBase< Scalar > > &  leftPrecOp,
const Teuchos::RefCountPtr< const LinearOpBase< Scalar > > &  rightPrecOp
[related]
 

Create a split precondioner from two linear operators, one to be applied on the left and one to be applied on the right.

Definition at line 250 of file Thyra_DefaultPreconditionerDecl.hpp.


The documentation for this class was generated from the following files:
Generated on Thu Sep 18 12:32:46 2008 for Thyra Operator Solve Support by doxygen 1.3.9.1