Teko  Version of the Day
 All Classes Files Functions Variables Pages
Public Member Functions | List of all members
Teko::BlockImplicitLinearOp Class Referenceabstract

A virtual class that simplifies the construction of custom operators. More...

#include <Teko_BlockImplicitLinearOp.hpp>

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

Public Member Functions

virtual VectorSpace range () const =0
 Range space of this operator. More...
 
virtual VectorSpace domain () const =0
 Domain space of this operator. More...
 
virtual void implicitApply (const BlockedMultiVector &x, BlockedMultiVector &y, const double alpha=1.0, const double beta=0.0) const =0
 Perform a matrix vector multiply with this implicitly defined blocked operator. More...
 
virtual void implicitApply (const Thyra::EOpTransp M_trans, const BlockedMultiVector &x, BlockedMultiVector &y, const double alpha=1.0, const double beta=0.0) const
 Perform a matrix vector multiply with this implicitly defined blocked operator. More...
 

Protected Member Functions

virtual bool opSupportedImpl (const Thyra::EOpTransp M_trans) const
 Functions required by Thyra::LinearOpBase. More...
 

Detailed Description

A virtual class that simplifies the construction of custom operators.

A virtual class that simplifies the construction of custom operators. Good examples can be found in LU2x2InverseOp and in BlockUpperTriInverseOp.

Definition at line 24 of file Teko_BlockImplicitLinearOp.hpp.

Member Function Documentation

virtual VectorSpace Teko::BlockImplicitLinearOp::range ( ) const
pure virtual
virtual VectorSpace Teko::BlockImplicitLinearOp::domain ( ) const
pure virtual
virtual void Teko::BlockImplicitLinearOp::implicitApply ( const BlockedMultiVector &  x,
BlockedMultiVector &  y,
const double  alpha = 1.0,
const double  beta = 0.0 
) const
pure virtual

Perform a matrix vector multiply with this implicitly defined blocked operator.

The apply function takes one vector as input and applies a linear operator. The result is returned in $y$. If this operator is reprsented as $M$ then $ y = \alpha M x + \beta y $

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

Implemented in Teko::LU2x2InverseOp, Teko::BlockDiagonalInverseOp, Teko::BlockLowerTriInverseOp, Teko::MultPrecsLinearOp, and Teko::BlockUpperTriInverseOp.

void Teko::BlockImplicitLinearOp::implicitApply ( const Thyra::EOpTransp  M_trans,
const BlockedMultiVector &  x,
BlockedMultiVector &  y,
const double  alpha = 1.0,
const double  beta = 0.0 
) const
virtual

Perform a matrix vector multiply with this implicitly defined blocked operator.

The apply function takes one vector as input and applies a linear operator. The result is returned in $y$. If this operator is reprsented as $M$ then $ y = \alpha M x + \beta y $

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

Reimplemented in Teko::BlockDiagonalInverseOp, and Teko::BlockUpperTriInverseOp.

Definition at line 21 of file Teko_BlockImplicitLinearOp.cpp.

bool Teko::BlockImplicitLinearOp::opSupportedImpl ( const Thyra::EOpTransp  M_trans) const
protectedvirtual

Functions required by Thyra::LinearOpBase.

Definition at line 32 of file Teko_BlockImplicitLinearOp.cpp.


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