Thyra::DefaultBlockedLinearOp< Scalar > Class Template Reference [Development of linear Abstract Numerical Algorithms (ANAs) (Client Support)]

Concrete composite `LinearOpBase` subclass that creates single linear operator object out of a set of constituent `LinearOpBase` blocks. More...

`#include <Thyra_DefaultBlockedLinearOp_decl.hpp>`

Inheritance diagram for Thyra::DefaultBlockedLinearOp< Scalar >:
[legend]

List of all members.

Related Functions

(Note that these are not member functions.)

template<class Scalar >
RCP< DefaultBlockedLinearOp
< Scalar > >
defaultBlockedLinearOp ()
Nonmember default constructor.
template<class Scalar >
Teuchos::RCP< const
LinearOpBase< Scalar > >
block1x1 (const Teuchos::RCP< const LinearOpBase< Scalar > > &A00, const std::string &label="")
Form an implicit block 1x1 linear operator `[ A00 ]`.
template<class Scalar >
Teuchos::RCP< const
LinearOpBase< Scalar > >
block1x2 (const Teuchos::RCP< const LinearOpBase< Scalar > > &A00, const Teuchos::RCP< const LinearOpBase< Scalar > > &A01, const std::string &label="")
Form an implicit block 1x2 linear operator `[ A00, A01 ]`.
template<class Scalar >
Teuchos::RCP< const
LinearOpBase< Scalar > >
block2x1 (const Teuchos::RCP< const LinearOpBase< Scalar > > &A00, const Teuchos::RCP< const LinearOpBase< Scalar > > &A10, const std::string &label="")
Form an implicit block 2x1 linear operator `[ A00; A10 ]`.
template<class Scalar >
Teuchos::RCP< const
LinearOpBase< Scalar > >
block2x2 (const Teuchos::RCP< const LinearOpBase< Scalar > > &A00, const Teuchos::RCP< const LinearOpBase< Scalar > > &A01, const Teuchos::RCP< const LinearOpBase< Scalar > > &A10, const Teuchos::RCP< const LinearOpBase< Scalar > > &A11, const std::string &label="")
Form an implicit block 2x2 linear operator `[ A00, A01; A10, A11 ]`.
template<class Scalar >
Teuchos::RCP< LinearOpBase
< Scalar > >
nonconstBlock1x1 (const Teuchos::RCP< LinearOpBase< Scalar > > &A00, const std::string &label="")
Form an implicit block 1x1 linear operator `[ A00 ]`.
template<class Scalar >
Teuchos::RCP< LinearOpBase
< Scalar > >
nonconstBlock1x2 (const Teuchos::RCP< LinearOpBase< Scalar > > &A00, const Teuchos::RCP< LinearOpBase< Scalar > > &A01, const std::string &label="")
Form an implicit block 1x2 linear operator `[ A00, A01 ]`.
template<class Scalar >
Teuchos::RCP< LinearOpBase
< Scalar > >
nonconstBlock2x1 (const Teuchos::RCP< LinearOpBase< Scalar > > &A00, const Teuchos::RCP< LinearOpBase< Scalar > > &A10, const std::string &label="")
Form an implicit block 2x1 linear operator `[ A00; A10 ]`.
template<class Scalar >
Teuchos::RCP< LinearOpBase
< Scalar > >
nonconstBlock2x2 (const Teuchos::RCP< LinearOpBase< Scalar > > &A00, const Teuchos::RCP< LinearOpBase< Scalar > > &A01, const Teuchos::RCP< LinearOpBase< Scalar > > &A10, const Teuchos::RCP< LinearOpBase< Scalar > > &A11, const std::string &label="")
Form an implicit block 2x2 linear operator `[ A00, A01; A10, A11 ]`.

Constructors

DefaultBlockedLinearOp ()

Overridden from PhysicallyBlockedLinearOpBase

void beginBlockFill ()

void beginBlockFill (const int numRowBlocks, const int numColBlocks)

void beginBlockFill (const Teuchos::RCP< const ProductVectorSpaceBase< Scalar > > &productRange, const Teuchos::RCP< const ProductVectorSpaceBase< Scalar > > &productDomain)

bool blockFillIsActive () const

bool acceptsBlock (const int i, const int j) const

void setNonconstBlock (const int i, const int j, const Teuchos::RCP< LinearOpBase< Scalar > > &block)

void setBlock (const int i, const int j, const Teuchos::RCP< const LinearOpBase< Scalar > > &block)

void endBlockFill ()

void uninitialize ()

Overridden from BlockedLinearOpBase

Teuchos::RCP< const
ProductVectorSpaceBase< Scalar > >
productRange () const

Teuchos::RCP< const
ProductVectorSpaceBase< Scalar > >
productDomain () const

bool blockExists (const int i, const int j) const

bool blockIsConst (const int i, const int j) const

Teuchos::RCP< LinearOpBase
< Scalar > >
getNonconstBlock (const int i, const int j)

Teuchos::RCP< const
LinearOpBase< Scalar > >
getBlock (const int i, const int j) const

Overridden from LinearOpBase

Teuchos::RCP< const
VectorSpaceBase< Scalar > >
range () const

Teuchos::RCP< const
VectorSpaceBase< Scalar > >
domain () const

Teuchos::RCP< const
LinearOpBase< Scalar > >
clone () const

bool opSupportedImpl (EOpTransp M_trans) const
Returns `true` only if all constituent operators support `M_trans`.
void applyImpl (const EOpTransp M_trans, const MultiVectorBase< Scalar > &X, const Ptr< MultiVectorBase< Scalar > > &Y, const Scalar alpha, const Scalar beta) const

Overridden from Teuchos::Describable

std::string description () const
Prints just the name `DefaultBlockedLinearOp` along with the overall dimensions and the number of constituent operators.
void describe (Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const
Prints the details about the constituent linear operators.

Detailed Description

template<class Scalar> class Thyra::DefaultBlockedLinearOp< Scalar >

Concrete composite `LinearOpBase` subclass that creates single linear operator object out of a set of constituent `LinearOpBase` blocks.

This class represents a blocked linear operator `M` of the form:

```
M =  [ Op[0,0], Op[0,1], ... , Op[0,N];
Op[1,0], Op[1,1], ... , Op[1,N];
.        .              .
Op[M,0], Op[M,1], ... , Op[M,N]; ]

```

where `Op[]` is a logical 2D array of `LinearOpBase` objects and `M=this->productRange()->getNumBlocks()` and `N=this->productDomain()->getNumBlocks()`. Of course the operator `M` is not constructed explicitly but instead just applies the constituent linear operators with each set of blocks.

ToDo: Finish Documentation!

Definition at line 72 of file Thyra_DefaultBlockedLinearOp_decl.hpp.

Constructor & Destructor Documentation

template<class Scalar >
 Thyra::DefaultBlockedLinearOp< Scalar >::DefaultBlockedLinearOp ( ) ` [inline]`

Definition at line 49 of file Thyra_DefaultBlockedLinearOp_def.hpp.

Member Function Documentation

template<class Scalar >
 void Thyra::DefaultBlockedLinearOp< Scalar >::beginBlockFill ( ) ` [inline, virtual]`

Definition at line 58 of file Thyra_DefaultBlockedLinearOp_def.hpp.

template<class Scalar >
 void Thyra::DefaultBlockedLinearOp< Scalar >::beginBlockFill ( const int numRowBlocks, const int numColBlocks ) ` [inline, virtual]`

Definition at line 67 of file Thyra_DefaultBlockedLinearOp_def.hpp.

template<class Scalar >
 void Thyra::DefaultBlockedLinearOp< Scalar >::beginBlockFill ( const Teuchos::RCP< const ProductVectorSpaceBase< Scalar > > & productRange, const Teuchos::RCP< const ProductVectorSpaceBase< Scalar > > & productDomain ) ` [inline, virtual]`

Definition at line 78 of file Thyra_DefaultBlockedLinearOp_def.hpp.

template<class Scalar >
 bool Thyra::DefaultBlockedLinearOp< Scalar >::blockFillIsActive ( ) const` [inline, virtual]`

Definition at line 98 of file Thyra_DefaultBlockedLinearOp_def.hpp.

template<class Scalar >
 bool Thyra::DefaultBlockedLinearOp< Scalar >::acceptsBlock ( const int i, const int j ) const` [inline, virtual]`

Definition at line 105 of file Thyra_DefaultBlockedLinearOp_def.hpp.

template<class Scalar >
 void Thyra::DefaultBlockedLinearOp< Scalar >::setNonconstBlock ( const int i, const int j, const Teuchos::RCP< LinearOpBase< Scalar > > & block ) ` [inline, virtual]`

Definition at line 116 of file Thyra_DefaultBlockedLinearOp_def.hpp.

template<class Scalar >
 void Thyra::DefaultBlockedLinearOp< Scalar >::setBlock ( const int i, const int j, const Teuchos::RCP< const LinearOpBase< Scalar > > & block ) ` [inline, virtual]`

Definition at line 126 of file Thyra_DefaultBlockedLinearOp_def.hpp.

template<class Scalar >
 void Thyra::DefaultBlockedLinearOp< Scalar >::endBlockFill ( ) ` [inline, virtual]`

Definition at line 136 of file Thyra_DefaultBlockedLinearOp_def.hpp.

template<class Scalar >
 void Thyra::DefaultBlockedLinearOp< Scalar >::uninitialize ( ) ` [inline, virtual]`

Definition at line 212 of file Thyra_DefaultBlockedLinearOp_def.hpp.

template<class Scalar >
 RCP< const ProductVectorSpaceBase< Scalar > > Thyra::DefaultBlockedLinearOp< Scalar >::productRange ( ) const` [inline, virtual]`
template<class Scalar >
 RCP< const ProductVectorSpaceBase< Scalar > > Thyra::DefaultBlockedLinearOp< Scalar >::productDomain ( ) const` [inline, virtual]`
template<class Scalar >
 bool Thyra::DefaultBlockedLinearOp< Scalar >::blockExists ( const int i, const int j ) const` [inline, virtual]`
template<class Scalar >
 bool Thyra::DefaultBlockedLinearOp< Scalar >::blockIsConst ( const int i, const int j ) const` [inline, virtual]`
template<class Scalar >
 RCP< LinearOpBase< Scalar > > Thyra::DefaultBlockedLinearOp< Scalar >::getNonconstBlock ( const int i, const int j ) ` [inline, virtual]`
template<class Scalar >
 RCP< const LinearOpBase< Scalar > > Thyra::DefaultBlockedLinearOp< Scalar >::getBlock ( const int i, const int j ) const` [inline, virtual]`
template<class Scalar >
 RCP< const VectorSpaceBase< Scalar > > Thyra::DefaultBlockedLinearOp< Scalar >::range ( ) const` [inline, virtual]`
template<class Scalar >
 RCP< const VectorSpaceBase< Scalar > > Thyra::DefaultBlockedLinearOp< Scalar >::domain ( ) const` [inline, virtual]`
template<class Scalar >
 RCP< const LinearOpBase< Scalar > > Thyra::DefaultBlockedLinearOp< Scalar >::clone ( ) const` [inline, virtual]`

Reimplemented from Thyra::LinearOpBase< Scalar >.

Definition at line 317 of file Thyra_DefaultBlockedLinearOp_def.hpp.

template<class Scalar >
 std::string Thyra::DefaultBlockedLinearOp< Scalar >::description ( ) const` [inline, virtual]`

Prints just the name `DefaultBlockedLinearOp` along with the overall dimensions and the number of constituent operators.

Reimplemented from Teuchos::Describable.

Definition at line 327 of file Thyra_DefaultBlockedLinearOp_def.hpp.

template<class Scalar >
 void Thyra::DefaultBlockedLinearOp< Scalar >::describe ( Teuchos::FancyOStream & out, const Teuchos::EVerbosityLevel verbLevel ) const` [inline, virtual]`

Prints the details about the constituent linear operators.

This function outputs different levels of detail based on the value passed in for `verbLevel`:

ToDo: Finish documentation!

Reimplemented from Teuchos::Describable.

Definition at line 341 of file Thyra_DefaultBlockedLinearOp_def.hpp.

template<class Scalar >
 bool Thyra::DefaultBlockedLinearOp< Scalar >::opSupportedImpl ( EOpTransp M_trans ) const` [inline, protected, virtual]`

Returns `true` only if all constituent operators support `M_trans`.

Implements Thyra::LinearOpBase< Scalar >.

Definition at line 400 of file Thyra_DefaultBlockedLinearOp_def.hpp.

template<class Scalar >
 void Thyra::DefaultBlockedLinearOp< Scalar >::applyImpl ( const EOpTransp M_trans, const MultiVectorBase< Scalar > & X, const Ptr< MultiVectorBase< Scalar > > & Y, const Scalar alpha, const Scalar beta ) const` [inline, protected, virtual]`

Friends And Related Function Documentation

template<class Scalar >
 RCP< DefaultBlockedLinearOp< Scalar > > defaultBlockedLinearOp ( ) ` [related]`

Nonmember default constructor.

template<class Scalar >
 Teuchos::RCP< const LinearOpBase< Scalar > > block1x1 ( const Teuchos::RCP< const LinearOpBase< Scalar > > & A00, const std::string & label = `""` ) ` [related]`

Form an implicit block 1x1 linear operator `[ A00 ]`.

template<class Scalar >
 Teuchos::RCP< const LinearOpBase< Scalar > > block1x2 ( const Teuchos::RCP< const LinearOpBase< Scalar > > & A00, const Teuchos::RCP< const LinearOpBase< Scalar > > & A01, const std::string & label = `""` ) ` [related]`

Form an implicit block 1x2 linear operator `[ A00, A01 ]`.

template<class Scalar >
 Teuchos::RCP< const LinearOpBase< Scalar > > block2x1 ( const Teuchos::RCP< const LinearOpBase< Scalar > > & A00, const Teuchos::RCP< const LinearOpBase< Scalar > > & A10, const std::string & label = `""` ) ` [related]`

Form an implicit block 2x1 linear operator `[ A00; A10 ]`.

template<class Scalar >
 Teuchos::RCP< const LinearOpBase< Scalar > > block2x2 ( const Teuchos::RCP< const LinearOpBase< Scalar > > & A00, const Teuchos::RCP< const LinearOpBase< Scalar > > & A01, const Teuchos::RCP< const LinearOpBase< Scalar > > & A10, const Teuchos::RCP< const LinearOpBase< Scalar > > & A11, const std::string & label = `""` ) ` [related]`

Form an implicit block 2x2 linear operator `[ A00, A01; A10, A11 ]`.

template<class Scalar >
 Teuchos::RCP< LinearOpBase< Scalar > > nonconstBlock1x1 ( const Teuchos::RCP< LinearOpBase< Scalar > > & A00, const std::string & label = `""` ) ` [related]`

Form an implicit block 1x1 linear operator `[ A00 ]`.

template<class Scalar >
 Teuchos::RCP< LinearOpBase< Scalar > > nonconstBlock1x2 ( const Teuchos::RCP< LinearOpBase< Scalar > > & A00, const Teuchos::RCP< LinearOpBase< Scalar > > & A01, const std::string & label = `""` ) ` [related]`

Form an implicit block 1x2 linear operator `[ A00, A01 ]`.

template<class Scalar >
 Teuchos::RCP< LinearOpBase< Scalar > > nonconstBlock2x1 ( const Teuchos::RCP< LinearOpBase< Scalar > > & A00, const Teuchos::RCP< LinearOpBase< Scalar > > & A10, const std::string & label = `""` ) ` [related]`

Form an implicit block 2x1 linear operator `[ A00; A10 ]`.

template<class Scalar >
 Teuchos::RCP< LinearOpBase< Scalar > > nonconstBlock2x2 ( const Teuchos::RCP< LinearOpBase< Scalar > > & A00, const Teuchos::RCP< LinearOpBase< Scalar > > & A01, const Teuchos::RCP< LinearOpBase< Scalar > > & A10, const Teuchos::RCP< LinearOpBase< Scalar > > & A11, const std::string & label = `""` ) ` [related]`

Form an implicit block 2x2 linear operator `[ A00, A01; A10, A11 ]`.

The documentation for this class was generated from the following files:
Generated on Wed Apr 13 10:00:45 2011 for Thyra by  1.6.3