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

Base interface for physically blocked linear operators. More...

#include <Thyra_PhysicallyBlockedLinearOpBase.hpp>

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

Public Member Functions

virtual void beginBlockFill ()=0
 Begin a block fill where the product range and domain spaces will be created on the fly and the number of block rows and columns is not known in advance. More...
 
virtual void beginBlockFill (const int numRowBlocks, const int numColBlocks)=0
 Begin a block fill where the product range and domain spaces will be created on the fly but the total number of block rows and block columns is known in advance. More...
 
virtual void beginBlockFill (const Teuchos::RCP< const ProductVectorSpaceBase< Scalar > > &productRange, const Teuchos::RCP< const ProductVectorSpaceBase< Scalar > > &productDomain)=0
 Begin a block fill where the product range and domain spaces are set a priori. More...
 
virtual bool blockFillIsActive () const =0
 Determines if a block fill is active or not . More...
 
virtual bool acceptsBlock (const int i, const int j) const =0
 Determines if the block (i,j) can be filled or not. More...
 
virtual void setNonconstBlock (const int i, const int j, const Teuchos::RCP< LinearOpBase< Scalar > > &block)=0
 Set a non-const block linear operator. More...
 
virtual void setBlock (const int i, const int j, const Teuchos::RCP< const LinearOpBase< Scalar > > &block)=0
 Set a const block linear operator. More...
 
virtual void endBlockFill ()=0
 End a block fill after which *this object can be used. More...
 
virtual void uninitialize ()=0
 Set to uninitlaized. More...
 
- Public Member Functions inherited from Thyra::BlockedLinearOpBase< Scalar >
virtual Teuchos::RCP< const
ProductVectorSpaceBase< Scalar > > 
productRange () const =0
 Return the product space for the range. More...
 
virtual Teuchos::RCP< const
ProductVectorSpaceBase< Scalar > > 
productDomain () const =0
 Return the product space for the domain. More...
 
virtual bool blockExists (const int i, const int j) const =0
 Return if the block (i,j) exists or not. More...
 
virtual bool blockIsConst (const int i, const int j) const =0
 Return if the block (i,j) is const only or not. More...
 
virtual Teuchos::RCP
< LinearOpBase< Scalar > > 
getNonconstBlock (const int i, const int j)=0
 Return a non-const view of the block (i,j) if it exists. More...
 
virtual Teuchos::RCP< const
LinearOpBase< Scalar > > 
getBlock (const int i, const int j) const =0
 Return a const view of the block (i,j) if it exists. More...
 
- Public Member Functions inherited from Thyra::LinearOpBase< Scalar >
virtual RCP< const
VectorSpaceBase< Scalar > > 
range () const =0
 Return a smart pointer for the range space for this operator. More...
 
virtual RCP< const
VectorSpaceBase< Scalar > > 
domain () const =0
 Return a smart pointer for the domain space for this operator. More...
 
bool opSupported (EOpTransp M_trans) const
 Return if the M_trans operation of apply() is supported or not. More...
 
void apply (const EOpTransp M_trans, const MultiVectorBase< Scalar > &X, const Ptr< MultiVectorBase< Scalar > > &Y, const Scalar alpha, const Scalar beta) const
 Apply the linear operator to a multi-vector : Y = alpha*op(M)*X + beta*Y. More...
 
virtual RCP< const
LinearOpBase< Scalar > > 
clone () const
 Clone the linear operator object (if supported). More...
 

Additional Inherited Members

- Protected Member Functions inherited from Thyra::LinearOpBase< Scalar >
virtual bool opSupportedImpl (EOpTransp M_trans) const =0
 Override in subclass. More...
 
virtual void applyImpl (const EOpTransp M_trans, const MultiVectorBase< Scalar > &X, const Ptr< MultiVectorBase< Scalar > > &Y, const Scalar alpha, const Scalar beta) const =0
 Override in subclass. More...
 

Detailed Description

template<class Scalar>
class Thyra::PhysicallyBlockedLinearOpBase< Scalar >

Base interface for physically blocked linear operators.

This interface allows clients to fill a blocked linear operator and create blocked objects with various numbers of row and column blocks. There are two modes to fill a blocked linear operator represented by the two forms of the beginBlockFill() function.

ToDo: Finish documentation.

Definition at line 63 of file Thyra_PhysicallyBlockedLinearOpBase.hpp.

Member Function Documentation

template<class Scalar>
virtual void Thyra::PhysicallyBlockedLinearOpBase< Scalar >::beginBlockFill ( )
pure virtual

Begin a block fill where the product range and domain spaces will be created on the fly and the number of block rows and columns is not known in advance.

Postconditions:

Implemented in Thyra::DefaultBlockedTriangularLinearOpWithSolve< Scalar >, and Thyra::DefaultBlockedLinearOp< Scalar >.

template<class Scalar>
virtual void Thyra::PhysicallyBlockedLinearOpBase< Scalar >::beginBlockFill ( const int  numRowBlocks,
const int  numColBlocks 
)
pure virtual

Begin a block fill where the product range and domain spaces will be created on the fly but the total number of block rows and block columns is known in advance.

Preconditions:

  • numRowBlocks > 0
  • numColBlocks > 0

Postconditions:

Implemented in Thyra::DefaultBlockedTriangularLinearOpWithSolve< Scalar >, and Thyra::DefaultBlockedLinearOp< Scalar >.

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

Begin a block fill where the product range and domain spaces are set a priori.

Parameters
productRange[in] The product space to use of the range space.
productRange[in] The product space to use of the domain space.

Preconditions:

  • productRange.get()!=NULL && productRange->dim() > 0
  • productDomain.get()!=NULL && productDomain->dim() > 0

Postconditions:

Implemented in Thyra::DefaultBlockedTriangularLinearOpWithSolve< Scalar >, and Thyra::DefaultBlockedLinearOp< Scalar >.

template<class Scalar>
virtual bool Thyra::PhysicallyBlockedLinearOpBase< Scalar >::blockFillIsActive ( ) const
pure virtual

Determines if a block fill is active or not .

Implemented in Thyra::DefaultBlockedTriangularLinearOpWithSolve< Scalar >, and Thyra::DefaultBlockedLinearOp< Scalar >.

template<class Scalar>
virtual bool Thyra::PhysicallyBlockedLinearOpBase< Scalar >::acceptsBlock ( const int  i,
const int  j 
) const
pure virtual

Determines if the block (i,j) can be filled or not.

Parameters
i[in] Zero-based index for the block row.
j[in] Zero-based index for the block column.

Preconditions:

Implemented in Thyra::DefaultBlockedTriangularLinearOpWithSolve< Scalar >, and Thyra::DefaultBlockedLinearOp< Scalar >.

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

Set a non-const block linear operator.

Parameters
i[in] Zero-based index for the block row.
j[in] Zero-based index for the block column.
block[in] The block operator being set.

Preconditions:

  • this->acceptsBlock(i,j)==true

Implemented in Thyra::DefaultBlockedTriangularLinearOpWithSolve< Scalar >, and Thyra::DefaultBlockedLinearOp< Scalar >.

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

Set a const block linear operator.

Parameters
i[in] Zero-based index for the block row.
j[in] Zero-based index for the block column.
block[in] The block operator being set.

Preconditions:

  • this->acceptsBlock(i,j)==true

Implemented in Thyra::DefaultBlockedTriangularLinearOpWithSolve< Scalar >, and Thyra::DefaultBlockedLinearOp< Scalar >.

template<class Scalar>
virtual void Thyra::PhysicallyBlockedLinearOpBase< Scalar >::endBlockFill ( )
pure virtual

End a block fill after which *this object can be used.

If a valid linear operator object can not be formed from what was set then a ??? exception will be thrown.

Postconditions:

Implemented in Thyra::DefaultBlockedTriangularLinearOpWithSolve< Scalar >, and Thyra::DefaultBlockedLinearOp< Scalar >.

template<class Scalar>
virtual void Thyra::PhysicallyBlockedLinearOpBase< Scalar >::uninitialize ( )
pure virtual

Set to uninitlaized.

Postconditions:

Implemented in Thyra::DefaultBlockedTriangularLinearOpWithSolve< Scalar >, and Thyra::DefaultBlockedLinearOp< Scalar >.


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