Tempus Version of the Day
Time Integration
Loading...
Searching...
No Matches
Thyra::ScaledIdentityLinearOpWithSolve< Scalar > Class Template Reference

Scaled identity operator s*I, with its solve. More...

#include <Thyra_ScaledIdentityLinearOpWithSolve.hpp>

Inheritance diagram for Thyra::ScaledIdentityLinearOpWithSolve< Scalar >:
Thyra::LinearOpWithSolveBase< Scalar >

(Note that these are not member symbols.)

template<class Scalar>
RCP< ScaledIdentityLinearOpWithSolve< Scalar > > scaledIdentity ()
 Nonmember constructor function.
template<class Scalar>
RCP< ScaledIdentityLinearOpWithSolve< Scalar > > scaledIdentity (const RCP< const VectorSpaceBase< Scalar > > &space, const Scalar &s)
 Nonmember constructor function.

Overridden from ScaledLinearOpBase

RCP< const VectorSpaceBase< Scalar > > space_
Scalar s_
bool supportsScaleLeftImpl () const
bool supportsScaleRightImpl () const
void scaleLeftImpl (const VectorBase< Scalar > &row_scaling)
 diag(d) * s*I = (d*s) I, for a uniform vector d.
void scaleRightImpl (const VectorBase< Scalar > &col_scaling)
 s*I * diag(d) = (d*s) I, for a uniform vector d.
static Scalar uniformValue (const VectorBase< Scalar > &v, const std::string &caller)
 The value d of the entries of a uniform vector (throws otherwise).
static void validateInitialize (const RCP< const VectorSpaceBase< Scalar > > &space)

Constructors/initializers/accessors

 ScaledIdentityLinearOpWithSolve ()
 Construct to uninitialized.
void initialize (const RCP< const VectorSpaceBase< Scalar > > &space, const Scalar &s)
void uninitialize ()
RCP< const VectorSpaceBase< Scalar > > space () const
Scalar scale () const
void setScale (const Scalar &s)

Overridden from LinearOpBase

RCP< const VectorSpaceBase< Scalar > > range () const
RCP< const VectorSpaceBase< Scalar > > domain () const
RCP< const LinearOpBase< Scalar > > clone () const
bool opSupportedImpl (EOpTransp) const
void applyImpl (const EOpTransp M_trans, const MultiVectorBase< Scalar > &X, const Ptr< MultiVectorBase< Scalar > > &Y, const Scalar alpha, const Scalar beta) const

Overridden from LinearOpWithSolveBase

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

Overridden from RowStatLinearOpBase

bool rowStatIsSupportedImpl (const RowStatLinearOpBaseUtils::ERowStat rowStat) const
 The absolute row and column sums are |s|; their inverses require s != 0.
void getRowStatImpl (const RowStatLinearOpBaseUtils::ERowStat rowStat, const Ptr< VectorBase< Scalar > > &rowStatVec) const

Detailed Description

template<class Scalar>
class Thyra::ScaledIdentityLinearOpWithSolve< Scalar >

Scaled identity operator s*I, with its solve.

The row statistics (absolute row and column sums |s|) and the left and right scaling by uniform vectors (all entries equal to d, s <- d*s) are supported, so that the operator can be a block of an operator scaled by a nonlinear solver, e.g., NOX with "Function Scaling" = "Row Sum" (the auxiliary block of AdjointAuxSensitivityModelEvaluator). A scaling by a nonuniform vector throws, since the result is not a scaled identity.

Definition at line 34 of file Thyra_ScaledIdentityLinearOpWithSolve.hpp.

Constructor & Destructor Documentation

◆ ScaledIdentityLinearOpWithSolve()

template<class Scalar>
Thyra::ScaledIdentityLinearOpWithSolve< Scalar >::ScaledIdentityLinearOpWithSolve ( )
inline

Construct to uninitialized.

Definition at line 43 of file Thyra_ScaledIdentityLinearOpWithSolve.hpp.

Member Function Documentation

◆ initialize()

template<class Scalar>
void Thyra::ScaledIdentityLinearOpWithSolve< Scalar >::initialize ( const RCP< const VectorSpaceBase< Scalar > > & space,
const Scalar & s )
inline

Definition at line 45 of file Thyra_ScaledIdentityLinearOpWithSolve.hpp.

◆ uninitialize()

template<class Scalar>
void Thyra::ScaledIdentityLinearOpWithSolve< Scalar >::uninitialize ( )
inline

Definition at line 53 of file Thyra_ScaledIdentityLinearOpWithSolve.hpp.

◆ space()

template<class Scalar>
RCP< const VectorSpaceBase< Scalar > > Thyra::ScaledIdentityLinearOpWithSolve< Scalar >::space ( ) const
inline

Definition at line 55 of file Thyra_ScaledIdentityLinearOpWithSolve.hpp.

◆ scale()

template<class Scalar>
Scalar Thyra::ScaledIdentityLinearOpWithSolve< Scalar >::scale ( ) const
inline

Definition at line 56 of file Thyra_ScaledIdentityLinearOpWithSolve.hpp.

◆ setScale()

template<class Scalar>
void Thyra::ScaledIdentityLinearOpWithSolve< Scalar >::setScale ( const Scalar & s)
inline

Definition at line 57 of file Thyra_ScaledIdentityLinearOpWithSolve.hpp.

◆ range()

template<class Scalar>
RCP< const VectorSpaceBase< Scalar > > Thyra::ScaledIdentityLinearOpWithSolve< Scalar >::range ( ) const
inline

Definition at line 64 of file Thyra_ScaledIdentityLinearOpWithSolve.hpp.

◆ domain()

template<class Scalar>
RCP< const VectorSpaceBase< Scalar > > Thyra::ScaledIdentityLinearOpWithSolve< Scalar >::domain ( ) const
inline

Definition at line 66 of file Thyra_ScaledIdentityLinearOpWithSolve.hpp.

◆ clone()

template<class Scalar>
RCP< const LinearOpBase< Scalar > > Thyra::ScaledIdentityLinearOpWithSolve< Scalar >::clone ( ) const
inline

Definition at line 68 of file Thyra_ScaledIdentityLinearOpWithSolve.hpp.

◆ opSupportedImpl()

template<class Scalar>
bool Thyra::ScaledIdentityLinearOpWithSolve< Scalar >::opSupportedImpl ( EOpTransp ) const
inlineprotected

Definition at line 80 of file Thyra_ScaledIdentityLinearOpWithSolve.hpp.

◆ applyImpl()

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

Definition at line 82 of file Thyra_ScaledIdentityLinearOpWithSolve.hpp.

◆ solveSupportsImpl()

template<class Scalar>
bool Thyra::ScaledIdentityLinearOpWithSolve< Scalar >::solveSupportsImpl ( EOpTransp ) const
inlineprotected

Definition at line 97 of file Thyra_ScaledIdentityLinearOpWithSolve.hpp.

◆ solveSupportsNewImpl()

template<class Scalar>
bool Thyra::ScaledIdentityLinearOpWithSolve< Scalar >::solveSupportsNewImpl ( EOpTransp ,
const Ptr< const SolveCriteria< Scalar > >  ) const
inlineprotected

Definition at line 99 of file Thyra_ScaledIdentityLinearOpWithSolve.hpp.

◆ solveSupportsSolveMeasureTypeImpl()

template<class Scalar>
bool Thyra::ScaledIdentityLinearOpWithSolve< Scalar >::solveSupportsSolveMeasureTypeImpl ( EOpTransp ,
const SolveMeasureType &  ) const
inlineprotected

Definition at line 106 of file Thyra_ScaledIdentityLinearOpWithSolve.hpp.

◆ solveImpl()

template<class Scalar>
SolveStatus< Scalar > Thyra::ScaledIdentityLinearOpWithSolve< Scalar >::solveImpl ( const EOpTransp M_trans,
const MultiVectorBase< Scalar > & B,
const Ptr< MultiVectorBase< Scalar > > & X,
const Ptr< const SolveCriteria< Scalar > >  ) const
inlineprotected

Definition at line 113 of file Thyra_ScaledIdentityLinearOpWithSolve.hpp.

◆ rowStatIsSupportedImpl()

template<class Scalar>
bool Thyra::ScaledIdentityLinearOpWithSolve< Scalar >::rowStatIsSupportedImpl ( const RowStatLinearOpBaseUtils::ERowStat rowStat) const
inlineprotected

The absolute row and column sums are |s|; their inverses require s != 0.

Definition at line 135 of file Thyra_ScaledIdentityLinearOpWithSolve.hpp.

◆ getRowStatImpl()

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

Definition at line 148 of file Thyra_ScaledIdentityLinearOpWithSolve.hpp.

◆ supportsScaleLeftImpl()

template<class Scalar>
bool Thyra::ScaledIdentityLinearOpWithSolve< Scalar >::supportsScaleLeftImpl ( ) const
inlineprotected

Definition at line 165 of file Thyra_ScaledIdentityLinearOpWithSolve.hpp.

◆ supportsScaleRightImpl()

template<class Scalar>
bool Thyra::ScaledIdentityLinearOpWithSolve< Scalar >::supportsScaleRightImpl ( ) const
inlineprotected

Definition at line 167 of file Thyra_ScaledIdentityLinearOpWithSolve.hpp.

◆ scaleLeftImpl()

template<class Scalar>
void Thyra::ScaledIdentityLinearOpWithSolve< Scalar >::scaleLeftImpl ( const VectorBase< Scalar > & row_scaling)
inlineprotected

diag(d) * s*I = (d*s) I, for a uniform vector d.

Definition at line 170 of file Thyra_ScaledIdentityLinearOpWithSolve.hpp.

◆ scaleRightImpl()

template<class Scalar>
void Thyra::ScaledIdentityLinearOpWithSolve< Scalar >::scaleRightImpl ( const VectorBase< Scalar > & col_scaling)
inlineprotected

s*I * diag(d) = (d*s) I, for a uniform vector d.

Definition at line 176 of file Thyra_ScaledIdentityLinearOpWithSolve.hpp.

◆ uniformValue()

template<class Scalar>
Scalar Thyra::ScaledIdentityLinearOpWithSolve< Scalar >::uniformValue ( const VectorBase< Scalar > & v,
const std::string & caller )
inlinestaticprivate

The value d of the entries of a uniform vector (throws otherwise).

Definition at line 193 of file Thyra_ScaledIdentityLinearOpWithSolve.hpp.

◆ validateInitialize()

template<class Scalar>
void Thyra::ScaledIdentityLinearOpWithSolve< Scalar >::validateInitialize ( const RCP< const VectorSpaceBase< Scalar > > & space)
inlinestaticprivate

Definition at line 212 of file Thyra_ScaledIdentityLinearOpWithSolve.hpp.

◆ scaledIdentity() [1/2]

template<class Scalar>
RCP< ScaledIdentityLinearOpWithSolve< Scalar > > scaledIdentity ( )
related

Nonmember constructor function.

Definition at line 228 of file Thyra_ScaledIdentityLinearOpWithSolve.hpp.

◆ scaledIdentity() [2/2]

template<class Scalar>
RCP< ScaledIdentityLinearOpWithSolve< Scalar > > scaledIdentity ( const RCP< const VectorSpaceBase< Scalar > > & space,
const Scalar & s )
related

Nonmember constructor function.

Definition at line 238 of file Thyra_ScaledIdentityLinearOpWithSolve.hpp.

Member Data Documentation

◆ space_

template<class Scalar>
RCP<const VectorSpaceBase<Scalar> > Thyra::ScaledIdentityLinearOpWithSolve< Scalar >::space_
private

Definition at line 186 of file Thyra_ScaledIdentityLinearOpWithSolve.hpp.

◆ s_

template<class Scalar>
Scalar Thyra::ScaledIdentityLinearOpWithSolve< Scalar >::s_
private

Definition at line 187 of file Thyra_ScaledIdentityLinearOpWithSolve.hpp.


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