|
Thyra Version of the Day
|
Base interface for physically blocked linear operators. More...
#include <Thyra_PhysicallyBlockedLinearOpBase.hpp>

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. | |
| 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. | |
| 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. | |
| virtual bool | blockFillIsActive () const =0 |
| Determines if a block fill is active or not . | |
| virtual bool | acceptsBlock (const int i, const int j) const =0 |
Determines if the block (i,j) can be filled or not. | |
| virtual void | setNonconstBlock (const int i, const int j, const Teuchos::RCP< LinearOpBase< Scalar > > &block)=0 |
| Set a non-const block linear operator. | |
| virtual void | setBlock (const int i, const int j, const Teuchos::RCP< const LinearOpBase< Scalar > > &block)=0 |
| Set a const block linear operator. | |
| virtual void | endBlockFill ()=0 |
End a block fill after which *this object can be used. | |
| virtual void | uninitialize ()=0 |
| Set to uninitlaized. | |
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.
| 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:
this->blockFillIsActive()==true this->productRange().get()==NULL this->productDomain().get()==NULL Implemented in Thyra::DefaultBlockedLinearOp< Scalar >, and Thyra::DefaultBlockedTriangularLinearOpWithSolve< 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:
this->blockFillIsActive()==true this->productRange().get()==NULL this->productDomain().get()==NULL Implemented in Thyra::DefaultBlockedLinearOp< Scalar >, and Thyra::DefaultBlockedTriangularLinearOpWithSolve< 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.
| 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:
this->blockFillIsActive()==true this->productRange().get()==productRange.get() this->productDomain().get()==productDomain.get() Implemented in Thyra::DefaultBlockedLinearOp< Scalar >, and Thyra::DefaultBlockedTriangularLinearOpWithSolve< Scalar >.
| virtual bool Thyra::PhysicallyBlockedLinearOpBase< Scalar >::blockFillIsActive | ( | ) | const [pure virtual] |
Determines if a block fill is active or not .
Implemented in Thyra::DefaultBlockedLinearOp< Scalar >, and Thyra::DefaultBlockedTriangularLinearOpWithSolve< 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.
| i | [in] Zero-based index for the block row. |
| j | [in] Zero-based index for the block column. |
Preconditions:
i >= 0 && j >= 0 this->productRange().get()!=NULL] i < this->productRange()->numBlocks() this->productDomain().get()!=NULL] j < this->productDomain()->numBlocks() Implemented in Thyra::DefaultBlockedLinearOp< Scalar >, and Thyra::DefaultBlockedTriangularLinearOpWithSolve< 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.
| 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::DefaultBlockedLinearOp< Scalar >, and Thyra::DefaultBlockedTriangularLinearOpWithSolve< 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.
| 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::DefaultBlockedLinearOp< Scalar >, and Thyra::DefaultBlockedTriangularLinearOpWithSolve< 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:
this->blockFillIsActive()==false this->productRange().get()!=NULL this->productDomain().get()!=NULL Implemented in Thyra::DefaultBlockedLinearOp< Scalar >, and Thyra::DefaultBlockedTriangularLinearOpWithSolve< Scalar >.
| virtual void Thyra::PhysicallyBlockedLinearOpBase< Scalar >::uninitialize | ( | ) | [pure virtual] |
Set to uninitlaized.
Postconditions:
this->blockFillIsActive()==false this->productRange().get()==NULL this->productDomain().get()==NULL Implemented in Thyra::DefaultBlockedLinearOp< Scalar >, and Thyra::DefaultBlockedTriangularLinearOpWithSolve< Scalar >.
1.7.4