Thyra Version of the Day
Loading...
Searching...
No Matches
Related Symbols | List of all members

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 >:
Inheritance graph
[legend]

Related Symbols

(Note that these are not member symbols.)

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 ].
 

Overridden from ScaledLinearOpBase

virtual bool supportsScaleLeftImpl () const
 
virtual bool supportsScaleRightImpl () const
 
virtual void scaleLeftImpl (const VectorBase< Scalar > &row_scaling)
 
virtual void scaleRightImpl (const VectorBase< Scalar > &col_scaling)
 

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.
 

Overridden from RowStatLinearOpBase

virtual bool rowStatIsSupportedImpl (const RowStatLinearOpBaseUtils::ERowStat rowStat) const
 
virtual void getRowStatImpl (const RowStatLinearOpBaseUtils::ERowStat rowStat, const Teuchos::Ptr< VectorBase< Scalar > > &rowStatVec) const
 

Additional Inherited Members

- Public Member Functions inherited from Thyra::LinearOpBase< Scalar >
bool opSupported (EOpTransp M_trans) const
 Return if the M_trans operation of apply() is supported or not.
 
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.
 
- Public Member Functions inherited from Thyra::RowStatLinearOpBase< Scalar >
bool rowStatIsSupported (const RowStatLinearOpBaseUtils::ERowStat rowStat) const
 Determine if a given row stat is supported.
 
void getRowStat (const RowStatLinearOpBaseUtils::ERowStat rowStat, const Ptr< VectorBase< Scalar > > &rowStatVec) const
 Get some statistics about a supported row.
 
- Public Member Functions inherited from Thyra::ScaledLinearOpBase< Scalar >
bool supportsScaleLeft () const
 Determines if this objects supports left scaling.
 
bool supportsScaleRight () const
 Determines if this objects supports right scaling.
 
void scaleLeft (const VectorBase< Scalar > &row_scaling)
 Left scales operator with diagonal scaling operator.
 
void scaleRight (const VectorBase< Scalar > &col_scaling)
 Right scales operator with diagonal scaling operator.
 
- Protected Member Functions inherited from Thyra::LinearOpBase< Scalar >
- Protected Member Functions inherited from Thyra::RowStatLinearOpBase< Scalar >
- Protected Member Functions inherited from Thyra::ScaledLinearOpBase< Scalar >

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 87 of file Thyra_DefaultBlockedLinearOp_decl.hpp.

Constructor & Destructor Documentation

◆ DefaultBlockedLinearOp()

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

Definition at line 64 of file Thyra_DefaultBlockedLinearOp_def.hpp.

Member Function Documentation

◆ beginBlockFill() [1/3]

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

◆ beginBlockFill() [2/3]

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

◆ beginBlockFill() [3/3]

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

◆ blockFillIsActive()

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

◆ acceptsBlock()

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

◆ setNonconstBlock()

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

◆ setBlock()

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

◆ endBlockFill()

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

◆ uninitialize()

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

◆ productRange()

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

◆ productDomain()

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

◆ blockExists()

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

◆ blockIsConst()

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

◆ getNonconstBlock()

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

◆ getBlock()

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

◆ range()

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

◆ domain()

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

◆ clone()

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

Reimplemented from Thyra::LinearOpBase< Scalar >.

Definition at line 332 of file Thyra_DefaultBlockedLinearOp_def.hpp.

◆ description()

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 Teuchos::Describable.

Definition at line 342 of file Thyra_DefaultBlockedLinearOp_def.hpp.

◆ describe()

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 Teuchos::Describable.

Definition at line 356 of file Thyra_DefaultBlockedLinearOp_def.hpp.

◆ opSupportedImpl()

template<class Scalar >
bool Thyra::DefaultBlockedLinearOp< Scalar >::opSupportedImpl ( EOpTransp M_trans) const
protectedvirtual

Returns true only if all constituent operators support M_trans.

Implements Thyra::LinearOpBase< Scalar >.

Definition at line 414 of file Thyra_DefaultBlockedLinearOp_def.hpp.

◆ applyImpl()

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
protectedvirtual

◆ rowStatIsSupportedImpl()

template<class Scalar >
bool Thyra::DefaultBlockedLinearOp< Scalar >::rowStatIsSupportedImpl ( const RowStatLinearOpBaseUtils::ERowStat rowStat) const
protectedvirtual

◆ getRowStatImpl()

template<class Scalar >
void Thyra::DefaultBlockedLinearOp< Scalar >::getRowStatImpl ( const RowStatLinearOpBaseUtils::ERowStat rowStat,
const Teuchos::Ptr< VectorBase< Scalar > > & rowStatVec ) const
protectedvirtual

◆ supportsScaleLeftImpl()

template<class Scalar >
bool Thyra::DefaultBlockedLinearOp< Scalar >::supportsScaleLeftImpl ( ) const
protectedvirtual

◆ supportsScaleRightImpl()

template<class Scalar >
bool Thyra::DefaultBlockedLinearOp< Scalar >::supportsScaleRightImpl ( ) const
protectedvirtual

◆ scaleLeftImpl()

template<class Scalar >
void Thyra::DefaultBlockedLinearOp< Scalar >::scaleLeftImpl ( const VectorBase< Scalar > & row_scaling)
protectedvirtual

◆ scaleRightImpl()

template<class Scalar >
void Thyra::DefaultBlockedLinearOp< Scalar >::scaleRightImpl ( const VectorBase< Scalar > & col_scaling)
protectedvirtual

Friends And Related Symbol Documentation

◆ defaultBlockedLinearOp()

template<class Scalar >
RCP< DefaultBlockedLinearOp< Scalar > > defaultBlockedLinearOp ( )
related

Nonmember default constructor.

◆ block1x1()

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 ].

◆ block1x2()

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 ].

◆ block2x1()

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 ].

◆ block2x2()

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 ].

◆ nonconstBlock1x1()

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 ].

◆ nonconstBlock1x2()

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 ].

◆ nonconstBlock2x1()

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 ].

◆ nonconstBlock2x2()

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: