Thyra Version of the Day
Loading...
Searching...
No Matches
List of all members
Thyra::DiagonalLinearOpBase< Scalar > Class Template Referenceabstract

Interface class for for diagonal linear operators. More...

#include <Thyra_DiagonalLinearOpBase.hpp>

Inheritance diagram for Thyra::DiagonalLinearOpBase< Scalar >:
Inheritance graph
[legend]

Pure virtual functions that must be overridden in subclass

virtual bool isDiagConst () const =0
 Returns true if the diagonal vector is const-only.
 
virtual Teuchos::RCP< VectorBase< Scalar > > getNonconstDiag ()=0
 Returns the non-const diagonal vector diag.
 
virtual Teuchos::RCP< const VectorBase< Scalar > > getDiag () const =0
 Returns the const diagonal vector diag.
 

Additional Inherited Members

- Public Member Functions inherited from Thyra::LinearOpBase< Scalar >
virtual RCP< const VectorSpaceBase< Scalar > > range () const =0
 Return a smart pointer for the range space for this operator.
 
virtual RCP< const VectorSpaceBase< Scalar > > domain () const =0
 Return a smart pointer for the domain space for this operator.
 
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.
 
virtual RCP< const LinearOpBase< Scalar > > clone () const
 Clone the linear operator object (if supported).
 
- Protected Member Functions inherited from Thyra::LinearOpBase< Scalar >
virtual bool opSupportedImpl (EOpTransp M_trans) const =0
 Override in subclass.
 
virtual void applyImpl (const EOpTransp M_trans, const MultiVectorBase< Scalar > &X, const Ptr< MultiVectorBase< Scalar > > &Y, const Scalar alpha, const Scalar beta) const =0
 Override in subclass.
 

Detailed Description

template<class Scalar>
class Thyra::DiagonalLinearOpBase< Scalar >

Interface class for for diagonal linear operators.

This interface represents a diagonal linear operator M of the form:

M = diag(diag)

where diag is a VectorBase object.

The operator subclass must implement apply() as follows:

y = alpha*op(M)*x + beta*y

=>

y(i) = alpha*diag(i)*x(i) + beta*y(i), for i = 0 ... n-1

where n = this->domain()->dim().

Definition at line 75 of file Thyra_DiagonalLinearOpBase.hpp.

Member Function Documentation

◆ isDiagConst()

template<class Scalar >
virtual bool Thyra::DiagonalLinearOpBase< Scalar >::isDiagConst ( ) const
pure virtual

Returns true if the diagonal vector is const-only.

Implemented in Thyra::DefaultDiagonalLinearOp< Scalar >.

◆ getNonconstDiag()

template<class Scalar >
virtual Teuchos::RCP< VectorBase< Scalar > > Thyra::DiagonalLinearOpBase< Scalar >::getNonconstDiag ( )
pure virtual

Returns the non-const diagonal vector diag.

Preconditions:

Note that *this is not guaranteed to be fully modified until the RCP returned is deleted.

A return value of return.get()==NULL indicates that this is not fully initialized.

Implemented in Thyra::DefaultDiagonalLinearOp< Scalar >.

◆ getDiag()

template<class Scalar >
virtual Teuchos::RCP< const VectorBase< Scalar > > Thyra::DiagonalLinearOpBase< Scalar >::getDiag ( ) const
pure virtual

Returns the const diagonal vector diag.

A return value of return.get()==NULL indicates that this is not fully initialized.

Implemented in Thyra::DefaultDiagonalLinearOp< Scalar >.


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