Thyra Version of the Day
Loading...
Searching...
No Matches

Represents a zero linear operator M = 0. More...

#include <Thyra_DefaultZeroLinearOp_decl.hpp>

Inheritance diagram for Thyra::DefaultZeroLinearOp< Scalar >:

(Note that these are not member symbols.)

template<class Scalar>
RCP< const LinearOpBase< Scalar > > zero (const RCP< const VectorSpaceBase< Scalar > > &range, const RCP< const VectorSpaceBase< Scalar > > &domain)
 Create a zero linear operator with given range and domain spaces.
template<class Scalar>
RCP< LinearOpBase< Scalar > > nonconstZero (const RCP< const VectorSpaceBase< Scalar > > &range, const RCP< const VectorSpaceBase< Scalar > > &domain)
 Create a nonconst zero linear operator with given range and domain spaces.

Overridden from ScaledLinearOpBase

virtual bool supportsScaleLeftImpl () const
virtual bool supportsScaleRightImpl () const
virtual void scaleLeftImpl (const VectorBase< Scalar > &)
virtual void scaleRightImpl (const VectorBase< Scalar > &)

Constructors/initializers/accessors

 DefaultZeroLinearOp ()
 Construct to uninitialized.
 DefaultZeroLinearOp (const RCP< const VectorSpaceBase< Scalar > > &range, const RCP< const VectorSpaceBase< Scalar > > &domain)
void initialize (const RCP< const VectorSpaceBase< Scalar > > &range, const RCP< const VectorSpaceBase< Scalar > > &domain)
 Initialize given a list of non-const linear operators.
void uninitialize ()
 Set to uninitialized.

Overridden from LinearOpBase

RCP< const VectorSpaceBase< Scalar > > range () const
 Returns Teuchos::null if uninitialized.
RCP< const VectorSpaceBase< Scalar > > domain () const
 Returns Teuchos::null if uninitialized.
RCP< const LinearOpBase< Scalar > > clone () const
bool opSupportedImpl (EOpTransp M_trans) const
 Returns true .
void applyImpl (const EOpTransp M_trans, const MultiVectorBase< Scalar > &X, const Ptr< MultiVectorBase< Scalar > > &Y, const Scalar alpha, const Scalar beta) const

Overridden from Teuchos::Describable

std::string description () const
 Prints just the name DefaultZeroLinearOp along with the overall dimensions.

Overridden from RowStatLinearOpBase

virtual bool rowStatIsSupportedImpl (const RowStatLinearOpBaseUtils::ERowStat rowStat) const
virtual void getRowStatImpl (const RowStatLinearOpBaseUtils::ERowStat rowStat, const Teuchos::Ptr< VectorBase< Scalar > > &rowStatVec) const

Additional Inherited Members

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.
bool rowStatIsSupported (const RowStatLinearOpBaseUtils::ERowStat rowStat) const
 Determine if a given row stat is supported.
void getRowStat (const RowStatLinearOpBaseUtils::ERowStat rowStat, const Ptr< VectorBase< Scalar > > &rowStatVec) const
 Get some statistics about a supported row.
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.

Detailed Description

template<class Scalar>
class Thyra::DefaultZeroLinearOp< Scalar >

Represents a zero linear operator M = 0.

This class implements:

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

=>

y = beta*y

Definition at line 39 of file Thyra_DefaultZeroLinearOp_decl.hpp.

Constructor & Destructor Documentation

◆ DefaultZeroLinearOp() [1/2]

template<class Scalar>
Thyra::DefaultZeroLinearOp< Scalar >::DefaultZeroLinearOp ( )

Construct to uninitialized.

Postconditions:

Definition at line 26 of file Thyra_DefaultZeroLinearOp_def.hpp.

◆ DefaultZeroLinearOp() [2/2]

template<class Scalar>
Thyra::DefaultZeroLinearOp< Scalar >::DefaultZeroLinearOp ( const RCP< const VectorSpaceBase< Scalar > > & range,
const RCP< const VectorSpaceBase< Scalar > > & domain )

Calls initialize().

Definition at line 31 of file Thyra_DefaultZeroLinearOp_def.hpp.

Member Function Documentation

◆ initialize()

template<class Scalar>
void Thyra::DefaultZeroLinearOp< Scalar >::initialize ( const RCP< const VectorSpaceBase< Scalar > > & range,
const RCP< const VectorSpaceBase< Scalar > > & domain )

Initialize given a list of non-const linear operators.

Parameters
range[in] Range vector space.
range[in] Domain vector space.

Preconditions:

  • range.get()!=NULL
  • domain.get()!=NULL

Postconditions:

Definition at line 41 of file Thyra_DefaultZeroLinearOp_def.hpp.

◆ uninitialize()

template<class Scalar>
void Thyra::DefaultZeroLinearOp< Scalar >::uninitialize ( )

Set to uninitialized.

Postconditions:

Definition at line 52 of file Thyra_DefaultZeroLinearOp_def.hpp.

◆ range()

template<class Scalar>
RCP< const VectorSpaceBase< Scalar > > Thyra::DefaultZeroLinearOp< Scalar >::range ( ) const
virtual

Returns Teuchos::null if uninitialized.

Implements Thyra::LinearOpBase< Scalar >.

Definition at line 64 of file Thyra_DefaultZeroLinearOp_def.hpp.

◆ domain()

template<class Scalar>
RCP< const VectorSpaceBase< Scalar > > Thyra::DefaultZeroLinearOp< Scalar >::domain ( ) const
virtual

Returns Teuchos::null if uninitialized.

Implements Thyra::LinearOpBase< Scalar >.

Definition at line 72 of file Thyra_DefaultZeroLinearOp_def.hpp.

◆ clone()

template<class Scalar>
RCP< const LinearOpBase< Scalar > > Thyra::DefaultZeroLinearOp< Scalar >::clone ( ) const
virtual

Reimplemented from Thyra::LinearOpBase< Scalar >.

Definition at line 80 of file Thyra_DefaultZeroLinearOp_def.hpp.

◆ description()

template<class Scalar>
std::string Thyra::DefaultZeroLinearOp< Scalar >::description ( ) const
virtual

Prints just the name DefaultZeroLinearOp along with the overall dimensions.

Reimplemented from Teuchos::Describable.

Definition at line 93 of file Thyra_DefaultZeroLinearOp_def.hpp.

◆ opSupportedImpl()

template<class Scalar>
bool Thyra::DefaultZeroLinearOp< Scalar >::opSupportedImpl ( EOpTransp M_trans) const
protectedvirtual

Returns true .

Implements Thyra::LinearOpBase< Scalar >.

Definition at line 113 of file Thyra_DefaultZeroLinearOp_def.hpp.

◆ applyImpl()

template<class Scalar>
void Thyra::DefaultZeroLinearOp< Scalar >::applyImpl ( const EOpTransp M_trans,
const MultiVectorBase< Scalar > & X,
const Ptr< MultiVectorBase< Scalar > > & Y,
const Scalar alpha,
const Scalar beta ) const
protectedvirtual

Implements Thyra::LinearOpBase< Scalar >.

Definition at line 120 of file Thyra_DefaultZeroLinearOp_def.hpp.

◆ rowStatIsSupportedImpl()

template<class Scalar>
bool Thyra::DefaultZeroLinearOp< Scalar >::rowStatIsSupportedImpl ( const RowStatLinearOpBaseUtils::ERowStat rowStat) const
protectedvirtual

◆ getRowStatImpl()

template<class Scalar>
void Thyra::DefaultZeroLinearOp< Scalar >::getRowStatImpl ( const RowStatLinearOpBaseUtils::ERowStat rowStat,
const Teuchos::Ptr< VectorBase< Scalar > > & rowStatVec ) const
protectedvirtual

◆ supportsScaleLeftImpl()

template<class Scalar>
virtual bool Thyra::DefaultZeroLinearOp< Scalar >::supportsScaleLeftImpl ( ) const
inlineprotectedvirtual

◆ supportsScaleRightImpl()

template<class Scalar>
virtual bool Thyra::DefaultZeroLinearOp< Scalar >::supportsScaleRightImpl ( ) const
inlineprotectedvirtual

◆ scaleLeftImpl()

template<class Scalar>
virtual void Thyra::DefaultZeroLinearOp< Scalar >::scaleLeftImpl ( const VectorBase< Scalar > & )
inlineprotectedvirtual

◆ scaleRightImpl()

template<class Scalar>
virtual void Thyra::DefaultZeroLinearOp< Scalar >::scaleRightImpl ( const VectorBase< Scalar > & )
inlineprotectedvirtual

◆ zero()

template<class Scalar>
RCP< const LinearOpBase< Scalar > > zero ( const RCP< const VectorSpaceBase< Scalar > > & range,
const RCP< const VectorSpaceBase< Scalar > > & domain )
related

Create a zero linear operator with given range and domain spaces.

◆ nonconstZero()

template<class Scalar>
RCP< LinearOpBase< Scalar > > nonconstZero ( const RCP< const VectorSpaceBase< Scalar > > & range,
const RCP< const VectorSpaceBase< Scalar > > & domain )
related

Create a nonconst zero linear operator with given range and domain spaces.

This is to enable support for using the ScaledLinearOp interface. Which does nothing yet still requires nonconstant operators.


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