Thyra  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Related Functions | List of all members
Thyra::DefaultPreconditioner< Scalar > Class Template Reference

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

#include <Thyra_DefaultPreconditioner_decl.hpp>

Inheritance diagram for Thyra::DefaultPreconditioner< Scalar >:
Inheritance graph
[legend]

Related Functions

(Note that these are not member functions.)

template<class Scalar >
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. More...
 
template<class Scalar >
Teuchos::RCP
< DefaultPreconditioner
< Scalar > > 
nonconstUnspecifiedPrec (const Teuchos::RCP< LinearOpBase< Scalar > > &unspecifiedPrecOp)
 Create a precondioner from a single linear operator not targeted to be used on the left or the right. More...
 
template<class Scalar >
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. More...
 
template<class Scalar >
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. More...
 
template<class Scalar >
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. More...
 

Constructors/initializers/accessors

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

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
< Scalar > > 
getNonconstLeftPrecOp ()
 
Teuchos::RCP< const
LinearOpBase< Scalar > > 
getLeftPrecOp () const
 
bool isRightPrecOpConst () const
 
Teuchos::RCP< LinearOpBase
< Scalar > > 
getNonconstRightPrecOp ()
 
Teuchos::RCP< const
LinearOpBase< Scalar > > 
getRightPrecOp () const
 
bool isUnspecifiedPrecOpConst () const
 
Teuchos::RCP< LinearOpBase
< Scalar > > 
getNonconstUnspecifiedPrecOp ()
 
Teuchos::RCP< const
LinearOpBase< Scalar > > 
getUnspecifiedPrecOp () const
 

Detailed Description

template<class Scalar>
class Thyra::DefaultPreconditioner< Scalar >

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

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

Definition at line 48 of file Thyra_DefaultPreconditioner_decl.hpp.

Constructor & Destructor Documentation

template<class Scalar >
Thyra::DefaultPreconditioner< Scalar >::DefaultPreconditioner ( )

Construct to uninitialized.

Definition at line 24 of file Thyra_DefaultPreconditioner_def.hpp.

template<class Scalar >
Thyra::DefaultPreconditioner< Scalar >::DefaultPreconditioner ( const Teuchos::RCP< LinearOpBase< Scalar > > &  leftPrecOp,
const Teuchos::RCP< LinearOpBase< Scalar > > &  rightPrecOp 
)

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

Definition at line 29 of file Thyra_DefaultPreconditioner_def.hpp.

template<class Scalar >
Thyra::DefaultPreconditioner< Scalar >::DefaultPreconditioner ( const Teuchos::RCP< const LinearOpBase< Scalar > > &  leftPrecOp,
const Teuchos::RCP< const LinearOpBase< Scalar > > &  rightPrecOp 
)

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

Definition at line 45 of file Thyra_DefaultPreconditioner_def.hpp.

template<class Scalar >
Thyra::DefaultPreconditioner< Scalar >::DefaultPreconditioner ( const Teuchos::RCP< LinearOpBase< Scalar > > &  unspecifiedPrecOp)

Construct a single unspecified preconditioner.

Definition at line 61 of file Thyra_DefaultPreconditioner_def.hpp.

template<class Scalar >
Thyra::DefaultPreconditioner< Scalar >::DefaultPreconditioner ( const Teuchos::RCP< const LinearOpBase< Scalar > > &  unspecifiedPrecOp)

Construct a const-only single unspecified preconditioner.

Definition at line 70 of file Thyra_DefaultPreconditioner_def.hpp.

Member Function Documentation

template<class Scalar >
void Thyra::DefaultPreconditioner< Scalar >::initializeLeft ( const Teuchos::RCP< LinearOpBase< Scalar > > &  leftPrecOp)

Initialize a left preconditioner.

Definition at line 79 of file Thyra_DefaultPreconditioner_def.hpp.

template<class Scalar >
void Thyra::DefaultPreconditioner< Scalar >::initializeLeft ( const Teuchos::RCP< const LinearOpBase< Scalar > > &  leftPrecOp)

Initialize a const-only left preconditioner.

Definition at line 89 of file Thyra_DefaultPreconditioner_def.hpp.

template<class Scalar >
void Thyra::DefaultPreconditioner< Scalar >::initializeRight ( const Teuchos::RCP< LinearOpBase< Scalar > > &  rightPrecOp)

Initialize a right preconditioner.

Definition at line 99 of file Thyra_DefaultPreconditioner_def.hpp.

template<class Scalar >
void Thyra::DefaultPreconditioner< Scalar >::initializeRight ( const Teuchos::RCP< const LinearOpBase< Scalar > > &  rightPrecOp)

Initialize a const-only right preconditioner.

Definition at line 109 of file Thyra_DefaultPreconditioner_def.hpp.

template<class Scalar >
void Thyra::DefaultPreconditioner< Scalar >::initializeLeftRight ( const Teuchos::RCP< LinearOpBase< Scalar > > &  leftPrecOp,
const Teuchos::RCP< LinearOpBase< Scalar > > &  rightPrecOp 
)

Initialize a split left/right preconditioner.

Definition at line 119 of file Thyra_DefaultPreconditioner_def.hpp.

template<class Scalar >
void Thyra::DefaultPreconditioner< Scalar >::initializeLeftRight ( const Teuchos::RCP< const LinearOpBase< Scalar > > &  leftPrecOp,
const Teuchos::RCP< const LinearOpBase< Scalar > > &  rightPrecOp 
)

Initialize a const-only split left/right preconditioner.

Definition at line 131 of file Thyra_DefaultPreconditioner_def.hpp.

template<class Scalar >
void Thyra::DefaultPreconditioner< Scalar >::initializeUnspecified ( const Teuchos::RCP< LinearOpBase< Scalar > > &  unspecifiedPrecOp)

Initialize a single unspecified preconditioner operator.

Definition at line 143 of file Thyra_DefaultPreconditioner_def.hpp.

template<class Scalar >
void Thyra::DefaultPreconditioner< Scalar >::initializeUnspecified ( const Teuchos::RCP< const LinearOpBase< Scalar > > &  unspecifiedPrecOp)

Initialize a const-only single unspecified preconditioner operator.

Definition at line 153 of file Thyra_DefaultPreconditioner_def.hpp.

template<class Scalar >
void Thyra::DefaultPreconditioner< Scalar >::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_def.hpp.

template<class Scalar >
std::string Thyra::DefaultPreconditioner< Scalar >::description ( ) const
virtual

Reimplemented from Teuchos::Describable.

Definition at line 247 of file Thyra_DefaultPreconditioner_def.hpp.

template<class Scalar >
void Thyra::DefaultPreconditioner< Scalar >::describe ( Teuchos::FancyOStream out,
const Teuchos::EVerbosityLevel  verbLevel 
) const
virtual

Reimplemented from Teuchos::Describable.

Definition at line 273 of file Thyra_DefaultPreconditioner_def.hpp.

template<class Scalar >
bool Thyra::DefaultPreconditioner< Scalar >::isLeftPrecOpConst ( ) const
virtual
template<class Scalar >
Teuchos::RCP< LinearOpBase< Scalar > > Thyra::DefaultPreconditioner< Scalar >::getNonconstLeftPrecOp ( )
virtual
template<class Scalar >
Teuchos::RCP< const LinearOpBase< Scalar > > Thyra::DefaultPreconditioner< Scalar >::getLeftPrecOp ( ) const
virtual
template<class Scalar >
bool Thyra::DefaultPreconditioner< Scalar >::isRightPrecOpConst ( ) const
virtual
template<class Scalar >
Teuchos::RCP< LinearOpBase< Scalar > > Thyra::DefaultPreconditioner< Scalar >::getNonconstRightPrecOp ( )
virtual
template<class Scalar >
Teuchos::RCP< const LinearOpBase< Scalar > > Thyra::DefaultPreconditioner< Scalar >::getRightPrecOp ( ) const
virtual
template<class Scalar >
bool Thyra::DefaultPreconditioner< Scalar >::isUnspecifiedPrecOpConst ( ) const
virtual
template<class Scalar >
Teuchos::RCP< LinearOpBase< Scalar > > Thyra::DefaultPreconditioner< Scalar >::getNonconstUnspecifiedPrecOp ( )
virtual
template<class Scalar >
Teuchos::RCP< const LinearOpBase< Scalar > > Thyra::DefaultPreconditioner< Scalar >::getUnspecifiedPrecOp ( ) const
virtual

Friends And Related Function Documentation

template<class Scalar >
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 201 of file Thyra_DefaultPreconditioner_decl.hpp.

template<class Scalar >
Teuchos::RCP< DefaultPreconditioner< Scalar > > nonconstUnspecifiedPrec ( const Teuchos::RCP< 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 216 of file Thyra_DefaultPreconditioner_decl.hpp.

template<class Scalar >
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_DefaultPreconditioner_decl.hpp.

template<class Scalar >
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_DefaultPreconditioner_decl.hpp.

template<class Scalar >
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_DefaultPreconditioner_decl.hpp.


The documentation for this class was generated from the following files: