Thyra Version of the Day
Loading...
Searching...
No Matches
Related Functions | List of all members
Thyra::DefaultDiagonalLinearOpWithSolve< Scalar > Class Template Reference

Concrete LinearOpWithSolveBase subclass for diagonal linear operators. More...

#include <Thyra_DefaultDiagonalLinearOpWithSolve_decl.hpp>

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

Related Functions

(Note that these are not member functions.)

template<class Scalar >
RCP< DefaultDiagonalLinearOpWithSolve< Scalar > > defaultDiagonalLinearOpWithSolve ()
 Nonmember constructor.
 
template<class Scalar >
RCP< DefaultDiagonalLinearOpWithSolve< Scalar > > defaultDiagonalLinearOpWithSolve (const RCP< const VectorBase< Scalar > > &diag)
 Nonmember constructor.
 

Constructors/initializers/accessors

 DefaultDiagonalLinearOpWithSolve ()
 Constructs to uninitialized.
 
 DefaultDiagonalLinearOpWithSolve (const RCP< const VectorBase< Scalar > > &diag)
 Calls initialize()
 

Overridden from LinearOpWithSolveBase

bool solveSupportsImpl (EOpTransp M_trans) const
 
bool solveSupportsSolveMeasureTypeImpl (EOpTransp M_trans, const SolveMeasureType &solveMeasureType) const
 
SolveStatus< Scalar > solveImpl (const EOpTransp transp, const MultiVectorBase< Scalar > &B, const Ptr< MultiVectorBase< Scalar > > &X, const Ptr< const SolveCriteria< Scalar > > solveCriteria) const
 

Additional Inherited Members

- Public Member Functions inherited from Thyra::DefaultDiagonalLinearOp< Scalar >
 DefaultDiagonalLinearOp ()
 Constructs to uninitialized.
 
 DefaultDiagonalLinearOp (const RCP< const VectorSpaceBase< Scalar > > &space)
 Calls initialize() to construct given a vector space.
 
 DefaultDiagonalLinearOp (const RCP< VectorBase< Scalar > > &diag)
 Calls initialize() to construct for a non-const diagonal vector.
 
 DefaultDiagonalLinearOp (const RCP< const VectorBase< Scalar > > &diag)
 Calls initialize() to construct for a const diagonal vector.
 
void initialize (const RCP< const VectorSpaceBase< Scalar > > &space)
 Initialize given a vector space which allocates a vector internally.
 
void initialize (const RCP< VectorBase< Scalar > > &diag)
 Initialize given a non-const diagonal vector.
 
void initialize (const RCP< const VectorBase< Scalar > > &diag)
 Initialize given a const diagonal vector.
 
void uninitialize ()
 Uninitialize.
 
bool isDiagConst () const
 
RCP< VectorBase< Scalar > > getNonconstDiag ()
 
RCP< const VectorBase< Scalar > > getDiag () const
 
RCP< const VectorSpaceBase< Scalar > > range () const
 Returns this->getDiag()->space().
 
RCP< const VectorSpaceBase< Scalar > > domain () const
 Returns this->getDiag()->space().
 
RCP< const LinearOpBase< Scalar > > clone () const
 
- Public Member Functions inherited from Thyra::DiagonalLinearOpBase< Scalar >
- Public Member Functions inherited from Thyra::LinearOpBase< Scalar >
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.
 
- Public Member Functions inherited from Thyra::LinearOpWithSolveBase< Scalar >
bool solveSupports (EOpTransp transp) const
 Return if solve() supports the argument transp.
 
bool solveSupports (EOpTransp transp, const Ptr< const SolveCriteria< Scalar > > solveCriteria) const
 Return if solve() supports a given transpose and solve criteria specification.
 
bool solveSupportsSolveMeasureType (EOpTransp transp, const SolveMeasureType &solveMeasureType) const
 Return if solve() supports the given the solve measure type.
 
SolveStatus< Scalar > solve (const EOpTransp A_trans, const MultiVectorBase< Scalar > &B, const Ptr< MultiVectorBase< Scalar > > &X, const Ptr< const SolveCriteria< Scalar > > solveCriteria=Teuchos::null) const
 Request the solution of a block linear system.
 
- Protected Member Functions inherited from Thyra::DefaultDiagonalLinearOp< Scalar >
bool opSupportedImpl (EOpTransp M_trans) const
 
void applyImpl (const EOpTransp M_trans, const MultiVectorBase< Scalar > &X, const Ptr< MultiVectorBase< Scalar > > &Y, const Scalar alpha, const Scalar beta) const
 
- Protected Member Functions inherited from Thyra::LinearOpBase< Scalar >
- Protected Member Functions inherited from Thyra::LinearOpWithSolveBase< Scalar >
virtual bool solveSupportsNewImpl (EOpTransp, const Ptr< const SolveCriteria< Scalar > >) const
 Virtual implementation of solveSupports().
 

Detailed Description

template<class Scalar>
class Thyra::DefaultDiagonalLinearOpWithSolve< Scalar >

Concrete LinearOpWithSolveBase subclass for diagonal linear operators.

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

M = diag(diag)

where diag is a VectorBase object.

The defined operator implements this->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().

The defined operator implements this->solve() as follows:

x = inv(op(M))*b

=>

x(i) = b(i)/diag(i), for i = 0 ... n-1

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

That is all there is to this subclass.

Definition at line 92 of file Thyra_DefaultDiagonalLinearOpWithSolve_decl.hpp.

Constructor & Destructor Documentation

◆ DefaultDiagonalLinearOpWithSolve() [1/2]

template<class Scalar >
Thyra::DefaultDiagonalLinearOpWithSolve< Scalar >::DefaultDiagonalLinearOpWithSolve

Constructs to uninitialized.

Postconditions:

Definition at line 60 of file Thyra_DefaultDiagonalLinearOpWithSolve_def.hpp.

◆ DefaultDiagonalLinearOpWithSolve() [2/2]

template<class Scalar >
Thyra::DefaultDiagonalLinearOpWithSolve< Scalar >::DefaultDiagonalLinearOpWithSolve ( const RCP< const VectorBase< Scalar > > &  diag)

Member Function Documentation

◆ solveSupportsImpl()

template<class Scalar >
bool Thyra::DefaultDiagonalLinearOpWithSolve< Scalar >::solveSupportsImpl ( EOpTransp  M_trans) const
protectedvirtual

◆ solveSupportsSolveMeasureTypeImpl()

template<class Scalar >
bool Thyra::DefaultDiagonalLinearOpWithSolve< Scalar >::solveSupportsSolveMeasureTypeImpl ( EOpTransp  M_trans,
const SolveMeasureType solveMeasureType 
) const
protectedvirtual

◆ solveImpl()

template<class Scalar >
SolveStatus< Scalar > Thyra::DefaultDiagonalLinearOpWithSolve< Scalar >::solveImpl ( const EOpTransp  transp,
const MultiVectorBase< Scalar > &  B,
const Ptr< MultiVectorBase< Scalar > > &  X,
const Ptr< const SolveCriteria< Scalar > >  solveCriteria 
) const
protectedvirtual

Friends And Related Function Documentation

◆ defaultDiagonalLinearOpWithSolve() [1/2]

template<class Scalar >
RCP< DefaultDiagonalLinearOpWithSolve< Scalar > > defaultDiagonalLinearOpWithSolve ( )
related

Nonmember constructor.

Definition at line 141 of file Thyra_DefaultDiagonalLinearOpWithSolve_decl.hpp.

◆ defaultDiagonalLinearOpWithSolve() [2/2]

template<class Scalar >
RCP< DefaultDiagonalLinearOpWithSolve< Scalar > > defaultDiagonalLinearOpWithSolve ( const RCP< const VectorBase< Scalar > > &  diag)
related

Nonmember constructor.

Definition at line 153 of file Thyra_DefaultDiagonalLinearOpWithSolve_decl.hpp.


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