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 >:

Inheritance graph
[legend]
List of all members.

Constructors/initializers/accessors

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

Overridden from Teuchos::Describable

std::string description () const
 
void describe (Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const
 

Overridden from PreconditionerBase

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

Related Functions

(Note that these are not member functions.)

Teuchos::RCP< const DefaultPreconditioner<
Scalar > > 
unspecifiedPrec (const Teuchos::RCP< const LinearOpBase< Scalar > > &unspecifiedPrecOp)
 Create a precondioner from a single linear operator not targeted to be used on the left or the right.
Teuchos::RCP< const DefaultPreconditioner<
Scalar > > 
leftPrec (const Teuchos::RCP< const LinearOpBase< Scalar > > &leftPrecOp)
 Create a precondioner from a single linear operator targeted to be used on the left.
Teuchos::RCP< const DefaultPreconditioner<
Scalar > > 
rightPrec (const Teuchos::RCP< const LinearOpBase< Scalar > > &rightPrecOp)
 Create a precondioner from a single linear operator targeted to be used on the right.
Teuchos::RCP< const DefaultPreconditioner<
Scalar > > 
splitPrec (const Teuchos::RCP< const LinearOpBase< Scalar > > &leftPrecOp, const Teuchos::RCP< 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::RCP< LinearOpBase< RangeScalar, DomainScalar > > &  leftPrecOp,
const Teuchos::RCP< 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::RCP< const LinearOpBase< RangeScalar, DomainScalar > > &  leftPrecOp,
const Teuchos::RCP< 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::RCP< 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::RCP< 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::RCP< 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::RCP< 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::RCP< 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::RCP< 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::RCP< LinearOpBase< RangeScalar, DomainScalar > > &  leftPrecOp,
const Teuchos::RCP< 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::RCP< const LinearOpBase< RangeScalar, DomainScalar > > &  leftPrecOp,
const Teuchos::RCP< 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::RCP< 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::RCP< 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>
std::string Thyra::DefaultPreconditioner< RangeScalar, DomainScalar >::description (  )  const [virtual]

Reimplemented from Teuchos::Describable.

Definition at line 237 of file Thyra_DefaultPreconditioner.hpp.

template<class RangeScalar, class DomainScalar>
void Thyra::DefaultPreconditioner< RangeScalar, DomainScalar >::describe ( Teuchos::FancyOStream out,
const Teuchos::EVerbosityLevel  verbLevel 
) const [virtual]

Reimplemented from Teuchos::Describable.

Definition at line 262 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::RCP< 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::RCP< 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::RCP< 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::RCP< 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::RCP< 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::RCP< 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::RCP< const DefaultPreconditioner< Scalar > > unspecifiedPrec ( const Teuchos::RCP< 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 217 of file Thyra_DefaultPreconditionerDecl.hpp.

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

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

Definition at line 231 of file Thyra_DefaultPreconditionerDecl.hpp.

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

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

Definition at line 245 of file Thyra_DefaultPreconditionerDecl.hpp.

template<class RangeScalar, class DomainScalar = RangeScalar>
Teuchos::RCP< const DefaultPreconditioner< Scalar > > splitPrec ( const Teuchos::RCP< const LinearOpBase< Scalar > > &  leftPrecOp,
const Teuchos::RCP< 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 259 of file Thyra_DefaultPreconditionerDecl.hpp.


The documentation for this class was generated from the following files:
Generated on Wed May 12 21:42:47 2010 for Thyra Operator Solve Support by  doxygen 1.4.7