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

Applies left or right sclaing to the linear operator. More...

#include <Thyra_ScaledLinearOpBase.hpp>

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

Non-virtual public interface functions.

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 virtual functions to be overridden by subclasses.

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

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::ScaledLinearOpBase< Scalar >

Applies left or right sclaing to the linear operator.

This interface represents a linear operator M that explicitly applies left or right scaling by a diagonal (vector) operator d. # Left scaling:

M = dM

or Right scaling:

M = Md

where:

Definition at line 82 of file Thyra_ScaledLinearOpBase.hpp.

Member Function Documentation

◆ supportsScaleLeft()

template<class Scalar >
bool Thyra::ScaledLinearOpBase< Scalar >::supportsScaleLeft ( ) const
inline

Determines if this objects supports left scaling.

Definition at line 90 of file Thyra_ScaledLinearOpBase.hpp.

◆ supportsScaleRight()

template<class Scalar >
bool Thyra::ScaledLinearOpBase< Scalar >::supportsScaleRight ( ) const
inline

Determines if this objects supports right scaling.

Definition at line 95 of file Thyra_ScaledLinearOpBase.hpp.

◆ scaleLeft()

template<class Scalar >
void Thyra::ScaledLinearOpBase< Scalar >::scaleLeft ( const VectorBase< Scalar > & row_scaling)
inline

Left scales operator with diagonal scaling operator.

\precondtion supportsScaleLeft()==true

Definition at line 102 of file Thyra_ScaledLinearOpBase.hpp.

◆ scaleRight()

template<class Scalar >
void Thyra::ScaledLinearOpBase< Scalar >::scaleRight ( const VectorBase< Scalar > & col_scaling)
inline

Right scales operator with diagonal scaling operator.

\precondtion supportsScaleRight()==true

Definition at line 109 of file Thyra_ScaledLinearOpBase.hpp.

◆ supportsScaleLeftImpl()

template<class Scalar >
virtual bool Thyra::ScaledLinearOpBase< Scalar >::supportsScaleLeftImpl ( ) const
protectedpure virtual

◆ supportsScaleRightImpl()

template<class Scalar >
virtual bool Thyra::ScaledLinearOpBase< Scalar >::supportsScaleRightImpl ( ) const
protectedpure virtual

◆ scaleLeftImpl()

template<class Scalar >
virtual void Thyra::ScaledLinearOpBase< Scalar >::scaleLeftImpl ( const VectorBase< Scalar > & row_scaling)
protectedpure virtual

◆ scaleRightImpl()

template<class Scalar >
virtual void Thyra::ScaledLinearOpBase< Scalar >::scaleRightImpl ( const VectorBase< Scalar > & col_scaling)
protectedpure virtual

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