Teko Version of the Day
Loading...
Searching...
No Matches
Public Member Functions | Protected 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.
 
virtual VectorSpace domain () const =0
 Domain space of this operator.
 
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.
 
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.
 

Protected Member Functions

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

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 61 of file Teko_BlockImplicitLinearOp.hpp.

Member Function Documentation

◆ range()

virtual VectorSpace Teko::BlockImplicitLinearOp::range ( ) const
pure virtual

◆ domain()

virtual VectorSpace Teko::BlockImplicitLinearOp::domain ( ) const
pure virtual

◆ implicitApply() [1/2]

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::BlockLowerTriInverseOp, Teko::BlockUpperTriInverseOp, Teko::LU2x2InverseOp, Teko::BlockLowerTriInverseOp, Teko::LU2x2InverseOp, and Teko::MultPrecsLinearOp.

◆ implicitApply() [2/2]

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::BlockLowerTriInverseOp, Teko::BlockUpperTriInverseOp, and Teko::LU2x2InverseOp.

Definition at line 59 of file Teko_BlockImplicitLinearOp.cpp.

◆ opSupportedImpl()

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

Functions required by Thyra::LinearOpBase.

Definition at line 72 of file Teko_BlockImplicitLinearOp.cpp.


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