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

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

#include <Thyra_DefaultBlockedLinearOpDecl.hpp>

Inheritance diagram for Thyra::DefaultBlockedLinearOp< Scalar >:

[legend]
List of all members.

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
 

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.

Overridden from SingleScalarLinearOpBase

bool opSupported (ETransp M_trans) const
 Returns true only if all constituent operators support M_trans.
void apply (const ETransp M_trans, const MultiVectorBase< Scalar > &X, MultiVectorBase< Scalar > *Y, const Scalar alpha, const Scalar beta) const
 

Related Functions

(Note that these are not member functions.)

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)
 Form an implicit block 2x2 linear operator [ A00, A01; A10, A11 ].
Teuchos::RCP< const LinearOpBase<
Scalar > > 
block2x1 (const Teuchos::RCP< const LinearOpBase< Scalar > > &A00, const Teuchos::RCP< const LinearOpBase< Scalar > > &A10)
 Form an implicit block 2x1 linear operator [ A00; A10 ].
Teuchos::RCP< const LinearOpBase<
Scalar > > 
block1x2 (const Teuchos::RCP< const LinearOpBase< Scalar > > &A00, const Teuchos::RCP< const LinearOpBase< Scalar > > &A01)
 Form an implicit block 1x2 linear operator [ A00, A01 ].
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)
 Form an implicit block 2x2 linear operator [ A00, A01; A10, A11 ].
Teuchos::RCP< LinearOpBase<
Scalar > > 
nonconstBlock2x1 (const Teuchos::RCP< LinearOpBase< Scalar > > &A00, const Teuchos::RCP< LinearOpBase< Scalar > > &A10)
 Form an implicit block 2x1 linear operator [ A00; A10 ].
Teuchos::RCP< LinearOpBase<
Scalar > > 
nonconstBlock1x2 (const Teuchos::RCP< LinearOpBase< Scalar > > &A00, const Teuchos::RCP< LinearOpBase< Scalar > > &A01)
 Form an implicit block 1x2 linear operator [ A00, A01 ].

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!

Examples:

test_composite_linear_ops.cpp.

Definition at line 68 of file Thyra_DefaultBlockedLinearOpDecl.hpp.


Constructor & Destructor Documentation

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

Definition at line 43 of file Thyra_DefaultBlockedLinearOp.hpp.


Member Function Documentation

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

Implements Thyra::PhysicallyBlockedLinearOpBase< Scalar >.

Definition at line 50 of file Thyra_DefaultBlockedLinearOp.hpp.

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

Implements Thyra::PhysicallyBlockedLinearOpBase< Scalar >.

Definition at line 57 of file Thyra_DefaultBlockedLinearOp.hpp.

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

Definition at line 66 of file Thyra_DefaultBlockedLinearOp.hpp.

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

Implements Thyra::PhysicallyBlockedLinearOpBase< Scalar >.

Definition at line 79 of file Thyra_DefaultBlockedLinearOp.hpp.

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

Implements Thyra::PhysicallyBlockedLinearOpBase< Scalar >.

Definition at line 85 of file Thyra_DefaultBlockedLinearOp.hpp.

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

Definition at line 95 of file Thyra_DefaultBlockedLinearOp.hpp.

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

Definition at line 104 of file Thyra_DefaultBlockedLinearOp.hpp.

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

Implements Thyra::PhysicallyBlockedLinearOpBase< Scalar >.

Definition at line 113 of file Thyra_DefaultBlockedLinearOp.hpp.

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

Implements Thyra::PhysicallyBlockedLinearOpBase< Scalar >.

Definition at line 169 of file Thyra_DefaultBlockedLinearOp.hpp.

template<class Scalar>
Teuchos::RCP< const ProductVectorSpaceBase< Scalar > > Thyra::DefaultBlockedLinearOp< Scalar >::productRange (  )  const [virtual]

Implements Thyra::BlockedLinearOpBase< RangeScalar, DomainScalar >.

Definition at line 186 of file Thyra_DefaultBlockedLinearOp.hpp.

template<class Scalar>
Teuchos::RCP< const ProductVectorSpaceBase< Scalar > > Thyra::DefaultBlockedLinearOp< Scalar >::productDomain (  )  const [virtual]

Implements Thyra::BlockedLinearOpBase< RangeScalar, DomainScalar >.

Definition at line 193 of file Thyra_DefaultBlockedLinearOp.hpp.

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

Implements Thyra::BlockedLinearOpBase< RangeScalar, DomainScalar >.

Definition at line 199 of file Thyra_DefaultBlockedLinearOp.hpp.

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

Implements Thyra::BlockedLinearOpBase< RangeScalar, DomainScalar >.

Definition at line 209 of file Thyra_DefaultBlockedLinearOp.hpp.

template<class Scalar>
Teuchos::RCP< LinearOpBase< Scalar > > Thyra::DefaultBlockedLinearOp< Scalar >::getNonconstBlock ( const int  i,
const int  j 
) [virtual]

Implements Thyra::BlockedLinearOpBase< RangeScalar, DomainScalar >.

Definition at line 223 of file Thyra_DefaultBlockedLinearOp.hpp.

template<class Scalar>
Teuchos::RCP< const LinearOpBase< Scalar > > Thyra::DefaultBlockedLinearOp< Scalar >::getBlock ( const int  i,
const int  j 
) const [virtual]

Implements Thyra::BlockedLinearOpBase< RangeScalar, DomainScalar >.

Definition at line 235 of file Thyra_DefaultBlockedLinearOp.hpp.

template<class Scalar>
Teuchos::RCP< const VectorSpaceBase< Scalar > > Thyra::DefaultBlockedLinearOp< Scalar >::range (  )  const [virtual]

Implements Thyra::LinearOpBase< RangeScalar, DomainScalar >.

Definition at line 249 of file Thyra_DefaultBlockedLinearOp.hpp.

template<class Scalar>
Teuchos::RCP< const VectorSpaceBase< Scalar > > Thyra::DefaultBlockedLinearOp< Scalar >::domain (  )  const [virtual]

Implements Thyra::LinearOpBase< RangeScalar, DomainScalar >.

Definition at line 256 of file Thyra_DefaultBlockedLinearOp.hpp.

template<class Scalar>
Teuchos::RCP< const LinearOpBase< Scalar > > Thyra::DefaultBlockedLinearOp< Scalar >::clone (  )  const [virtual]

Reimplemented from Thyra::LinearOpBase< RangeScalar, DomainScalar >.

Definition at line 263 of file Thyra_DefaultBlockedLinearOp.hpp.

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

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

Reimplemented from Thyra::LinearOpDefaultBase< Scalar >.

Definition at line 271 of file Thyra_DefaultBlockedLinearOp.hpp.

template<class Scalar>
void Thyra::DefaultBlockedLinearOp< Scalar >::describe ( Teuchos::FancyOStream out,
const Teuchos::EVerbosityLevel  verbLevel 
) const [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 Thyra::LinearOpDefaultBase< Scalar >.

Definition at line 284 of file Thyra_DefaultBlockedLinearOp.hpp.

template<class Scalar>
bool Thyra::DefaultBlockedLinearOp< Scalar >::opSupported ( ETransp  M_trans  )  const [protected, virtual]

Returns true only if all constituent operators support M_trans.

Implements Thyra::SingleScalarLinearOpBase< Scalar >.

Definition at line 340 of file Thyra_DefaultBlockedLinearOp.hpp.

template<class Scalar>
void Thyra::DefaultBlockedLinearOp< Scalar >::apply ( const ETransp  M_trans,
const MultiVectorBase< Scalar > &  X,
MultiVectorBase< Scalar > *  Y,
const Scalar  alpha,
const Scalar  beta 
) const [protected, virtual]

Implements Thyra::SingleScalarLinearOpBase< Scalar >.

Definition at line 357 of file Thyra_DefaultBlockedLinearOp.hpp.


Friends And Related Function Documentation

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 
) [related]

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

Definition at line 570 of file Thyra_DefaultBlockedLinearOp.hpp.

template<class Scalar>
Teuchos::RCP< const LinearOpBase< Scalar > > block2x1 ( const Teuchos::RCP< const LinearOpBase< Scalar > > &  A00,
const Teuchos::RCP< const LinearOpBase< Scalar > > &  A10 
) [related]

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

Definition at line 590 of file Thyra_DefaultBlockedLinearOp.hpp.

template<class Scalar>
Teuchos::RCP< const LinearOpBase< Scalar > > block1x2 ( const Teuchos::RCP< const LinearOpBase< Scalar > > &  A00,
const Teuchos::RCP< const LinearOpBase< Scalar > > &  A01 
) [related]

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

Definition at line 606 of file Thyra_DefaultBlockedLinearOp.hpp.

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 
) [related]

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

Definition at line 622 of file Thyra_DefaultBlockedLinearOp.hpp.

template<class Scalar>
Teuchos::RCP< LinearOpBase< Scalar > > nonconstBlock2x1 ( const Teuchos::RCP< LinearOpBase< Scalar > > &  A00,
const Teuchos::RCP< LinearOpBase< Scalar > > &  A10 
) [related]

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

Definition at line 642 of file Thyra_DefaultBlockedLinearOp.hpp.

template<class Scalar>
Teuchos::RCP< LinearOpBase< Scalar > > nonconstBlock1x2 ( const Teuchos::RCP< LinearOpBase< Scalar > > &  A00,
const Teuchos::RCP< LinearOpBase< Scalar > > &  A01 
) [related]

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

Definition at line 658 of file Thyra_DefaultBlockedLinearOp.hpp.


The documentation for this class was generated from the following files:
Generated on Tue Oct 20 12:47:00 2009 for Thyra Operator/Vector Support by doxygen 1.4.7