Teko Version of the Day
Public Member Functions | Protected Attributes
Teko::BlockUpperTriInverseOp Class Reference

This linear operator computes the inverse of a upper triangular matrix. More...

#include <Teko_BlockUpperTriInverseOp.hpp>

Inheritance diagram for Teko::BlockUpperTriInverseOp:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 BlockUpperTriInverseOp (BlockedLinearOp &U, const std::vector< LinearOp > &invDiag)
 This constructor explicitly takes an upper triangular matrix and inverse diagonal operators and builds a back substitution operator.
Inherited methods from Thyra::LinearOpBase
virtual VectorSpace range () const
 Range space of this operator.
virtual VectorSpace domain () const
 Domain space of this operator.
virtual void implicitApply (const BlockedMultiVector &x, BlockedMultiVector &y, const double alpha=1.0, const double beta=0.0) const
 Perform a matrix vector multiply with this operator.

Protected Attributes

const BlockedLinearOp U_
 operator $ U $
std::vector< LinearOp > invDiag_
 (Approximate) Inverses of the diagonal operators
Teuchos::RCP< const
Thyra::ProductVectorSpaceBase
< double > > 
productRange_
 Range vector space.
Teuchos::RCP< const
Thyra::ProductVectorSpaceBase
< double > > 
productDomain_
 Domain vector space.

Detailed Description

This linear operator computes the inverse of a upper triangular matrix.

This linear operator computes the inverse of an upper triangular matrix. This requires, the upper triangular blocks, as well as the inverse of the operators on the diagonal.

Definition at line 63 of file Teko_BlockUpperTriInverseOp.hpp.


Constructor & Destructor Documentation

Teko::BlockUpperTriInverseOp::BlockUpperTriInverseOp ( BlockedLinearOp &  U,
const std::vector< LinearOp > &  invDiag 
)

This constructor explicitly takes an upper triangular matrix and inverse diagonal operators and builds a back substitution operator.

This constructor explicitly takes the parts of $ A $ required to build the inverse operator.

This constructor explicitly takes an upper triangular matrix and inverse diagonal operators and builds a back substitution operator.

Parameters:
[in]UUpper triangular matrix object
[in]invDiagVector containing the inverse of the diagonal blocks

This constructor explicitly takes the parts of $ A $ required to build the inverse operator.

Parameters:
[in]AThe block $ 2 \times 2 $ $A$ operator.
[in]invA00An approximate inverse of $ A_{00} $.
[in]invSAn approximate inverse of $ S = -A_{11} + A_{10} A_{00}^{-1} A_{01} $.

Definition at line 65 of file Teko_BlockUpperTriInverseOp.cpp.


Member Function Documentation

virtual VectorSpace Teko::BlockUpperTriInverseOp::range ( ) const [inline, virtual]

Range space of this operator.

Implements Teko::BlockImplicitLinearOp.

Definition at line 80 of file Teko_BlockUpperTriInverseOp.hpp.

virtual VectorSpace Teko::BlockUpperTriInverseOp::domain ( ) const [inline, virtual]

Domain space of this operator.

Implements Teko::BlockImplicitLinearOp.

Definition at line 83 of file Teko_BlockUpperTriInverseOp.hpp.

void Teko::BlockUpperTriInverseOp::implicitApply ( const BlockedMultiVector &  src,
BlockedMultiVector &  dst,
const double  alpha = 1.0,
const double  beta = 0.0 
) const [virtual]

Perform a matrix vector multiply with this operator.

The apply function takes one vector as input and applies the inverse $ LDU $ decomposition. The result is returned in $y$. If this operator is reprsented as $M$ then $ y = \alpha M x + \beta y $ (ignoring conjugation!).

Parameters:
[in]x
[in,out]y
[in]alpha(default=1)
[in]beta(default=0)

Implements Teko::BlockImplicitLinearOp.

Definition at line 96 of file Teko_BlockUpperTriInverseOp.cpp.


Member Data Documentation

const BlockedLinearOp Teko::BlockUpperTriInverseOp::U_ [protected]

operator $ U $

Definition at line 106 of file Teko_BlockUpperTriInverseOp.hpp.

std::vector<LinearOp> Teko::BlockUpperTriInverseOp::invDiag_ [protected]

(Approximate) Inverses of the diagonal operators

Definition at line 107 of file Teko_BlockUpperTriInverseOp.hpp.

Teuchos::RCP<const Thyra::ProductVectorSpaceBase<double> > Teko::BlockUpperTriInverseOp::productRange_ [protected]

Range vector space.

Definition at line 109 of file Teko_BlockUpperTriInverseOp.hpp.

Teuchos::RCP<const Thyra::ProductVectorSpaceBase<double> > Teko::BlockUpperTriInverseOp::productDomain_ [protected]

Domain vector space.

Definition at line 110 of file Teko_BlockUpperTriInverseOp.hpp.


The documentation for this class was generated from the following files:
 All Classes Files Functions Variables