Thyra::DefaultInverseLinearOp< Scalar > Class Template Reference

Concrete LinearOpBase subclass that creates an implicit LinearOpBase object using the inverse action of a LinearOpWithSolveBase object. More...

#include <Thyra_DefaultInverseLinearOpDecl.hpp>

List of all members.

Constructors/initializers/accessors

 DefaultInverseLinearOp ()
 Constructs to uninitialized (see postconditions for uninitialize()).
 DefaultInverseLinearOp (const Teuchos::RefCountPtr< LinearOpWithSolveBase< Scalar > > &lows, const SolveCriteria< Scalar > *fwdSolveCriteria=NULL, const EThrowOnSolveFailure throwOnFwdSolveFailure=THROW_ON_SOLVE_FAILURE, const SolveCriteria< Scalar > *adjSolveCriteria=NULL, const EThrowOnSolveFailure throwOnAdjSolveFailure=THROW_ON_SOLVE_FAILURE)
 DefaultInverseLinearOp (const Teuchos::RefCountPtr< const LinearOpWithSolveBase< Scalar > > &lows, const SolveCriteria< Scalar > *fwdSolveCriteria=NULL, const EThrowOnSolveFailure throwOnFwdSolveFailure=THROW_ON_SOLVE_FAILURE, const SolveCriteria< Scalar > *adjSolveCriteria=NULL, const EThrowOnSolveFailure throwOnAdjSolveFailure=THROW_ON_SOLVE_FAILURE)
void initialize (const Teuchos::RefCountPtr< LinearOpWithSolveBase< Scalar > > &lows, const SolveCriteria< Scalar > *fwdSolveCriteria=NULL, const EThrowOnSolveFailure throwOnFwdSolveFailure=THROW_ON_SOLVE_FAILURE, const SolveCriteria< Scalar > *adjSolveCriteria=NULL, const EThrowOnSolveFailure throwOnAdjSolveFailure=THROW_ON_SOLVE_FAILURE)
 Initialize given a non-const LinearOpWithSolveBase object and an optional .
void initialize (const Teuchos::RefCountPtr< const LinearOpWithSolveBase< Scalar > > &lows, const SolveCriteria< Scalar > *fwdSolveCriteria=NULL, const EThrowOnSolveFailure throwOnFwdSolveFailure=THROW_ON_SOLVE_FAILURE, const SolveCriteria< Scalar > *adjSolveCriteria=NULL, const EThrowOnSolveFailure throwOnAdjSolveFailure=THROW_ON_SOLVE_FAILURE)
 Initialize given a non-const LinearOpWithSolveBase object and an optional .
void uninitialize ()
 Set to uninitialized.

Overridden from InverseLinearOpBase

bool isLowsConst () const
 
Teuchos::RefCountPtr< LinearOpWithSolveBase<
Scalar > > 
getNonconstLows ()
 
Teuchos::RefCountPtr< const
LinearOpWithSolveBase< Scalar > > 
getLows () const
 

Overridden from LinearOpBase

Teuchos::RefCountPtr< const
VectorSpaceBase< Scalar > > 
range () const
 Returns this->getLows()->domain() if <t>this->getLows().get()!=NULL and returns Teuchos::null otherwise.
Teuchos::RefCountPtr< const
VectorSpaceBase< Scalar > > 
domain () const
 Returns this->getLows()->range() if <t>this->getLows().get()!=NULL and returns Teuchos::null otherwise.
Teuchos::RefCountPtr< const
LinearOpBase< Scalar > > 
clone () const
 

Overridden from Teuchos::Describable

std::string description () const
 
void describe (Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const
 

Overridden from SingleScalarLinearOpBase

bool opSupported (ETransp M_trans) const
 Returns true only if all constituent operators support M_trans.
void apply (const ETransp M_trans, const MultiVectorBase< Scalar > &X, MultiVectorBase< Scalar > *Y, const Scalar alpha, const Scalar beta) const
 

Related Functions

(Note that these are not member functions.)

Teuchos::RefCountPtr< LinearOpBase<
Scalar > > 
nonconstInverse (const Teuchos::RefCountPtr< LinearOpWithSolveBase< Scalar > > &A, const SolveCriteria< Scalar > *fwdSolveCriteria=NULL, const EThrowOnSolveFailure throwOnFwdSolveFailure=THROW_ON_SOLVE_FAILURE, const SolveCriteria< Scalar > *adjSolveCriteria=NULL, const EThrowOnSolveFailure throwOnAdjSolveFailure=THROW_ON_SOLVE_FAILURE)
 Form a non-const implicit inverse operator: M = inv(A).
Teuchos::RefCountPtr< LinearOpBase<
Scalar > > 
inverse (const Teuchos::RefCountPtr< const LinearOpWithSolveBase< Scalar > > &A, const SolveCriteria< Scalar > *fwdSolveCriteria=NULL, const EThrowOnSolveFailure throwOnFwdSolveFailure=THROW_ON_SOLVE_FAILURE, const SolveCriteria< Scalar > *adjSolveCriteria=NULL, const EThrowOnSolveFailure throwOnAdjSolveFailure=THROW_ON_SOLVE_FAILURE)
 Form a const implicit inverse operator: M = inv(A).


Detailed Description

template<class Scalar>
class Thyra::DefaultInverseLinearOp< Scalar >

Concrete LinearOpBase subclass that creates an implicit LinearOpBase object using the inverse action of a LinearOpWithSolveBase object.

This class represents an implicitly inverse linear operator:

 
 M = inv(A)
 
 

where A is any LinearOpWithSolveBase object. Specifically, the solve(...) function A is used to implement this->apply() and the solveTranspose(...) function A is used to implement this->applyTranspose().

SolveCriteria objects can be associated with A to define the solve criterion for calling the A.solve(...,fwdSolveCriteria) and A.solveTranspose(...,adjSolveCriteria).

Definition at line 69 of file Thyra_DefaultInverseLinearOpDecl.hpp.


Constructor & Destructor Documentation

template<class Scalar>
Thyra::DefaultInverseLinearOp< Scalar >::DefaultInverseLinearOp  ) 
 

Constructs to uninitialized (see postconditions for uninitialize()).

Definition at line 42 of file Thyra_DefaultInverseLinearOp.hpp.

template<class Scalar>
Thyra::DefaultInverseLinearOp< Scalar >::DefaultInverseLinearOp const Teuchos::RefCountPtr< LinearOpWithSolveBase< Scalar > > &  lows,
const SolveCriteria< Scalar > *  fwdSolveCriteria = NULL,
const EThrowOnSolveFailure  throwOnFwdSolveFailure = THROW_ON_SOLVE_FAILURE,
const SolveCriteria< Scalar > *  adjSolveCriteria = NULL,
const EThrowOnSolveFailure  throwOnAdjSolveFailure = THROW_ON_SOLVE_FAILURE
 

Calls initialize().

Definition at line 46 of file Thyra_DefaultInverseLinearOp.hpp.

template<class Scalar>
Thyra::DefaultInverseLinearOp< Scalar >::DefaultInverseLinearOp const Teuchos::RefCountPtr< const LinearOpWithSolveBase< Scalar > > &  lows,
const SolveCriteria< Scalar > *  fwdSolveCriteria = NULL,
const EThrowOnSolveFailure  throwOnFwdSolveFailure = THROW_ON_SOLVE_FAILURE,
const SolveCriteria< Scalar > *  adjSolveCriteria = NULL,
const EThrowOnSolveFailure  throwOnAdjSolveFailure = THROW_ON_SOLVE_FAILURE
 

Calls initialize().

Rather than calling this constructor directly, consider using the non-member helper functions described here.

Definition at line 61 of file Thyra_DefaultInverseLinearOp.hpp.


Member Function Documentation

template<class Scalar>
void Thyra::DefaultInverseLinearOp< Scalar >::initialize const Teuchos::RefCountPtr< LinearOpWithSolveBase< Scalar > > &  lows,
const SolveCriteria< Scalar > *  fwdSolveCriteria = NULL,
const EThrowOnSolveFailure  throwOnFwdSolveFailure = THROW_ON_SOLVE_FAILURE,
const SolveCriteria< Scalar > *  adjSolveCriteria = NULL,
const EThrowOnSolveFailure  throwOnAdjSolveFailure = THROW_ON_SOLVE_FAILURE
 

Initialize given a non-const LinearOpWithSolveBase object and an optional .

Parameters:
lows [in] The LinearOpWithSolveBase object that will solve(...) and/or solveTranspose(...) will be called on. Note that *this may give up non-const views of *lows so that *lows may be changed through clients of this object.
fwdSolveCriteria [in] The criteria used to call lows->solve(...). If fwdSolveCriteria==NULL then the default solve criteria built into *lows will be used. If fwdSolveCriteria!=NULL then *fwdSolveCriteria will be copied internally. Warning! If shallow copy is used by any parameters in fwdSolveCriteria->extraParameter these these parameters will be "remembered" by *this.
adjSolveCriteria  [in] The criteria used to call lows->solveTranspose(...). If adjSolveCriteria==NULL then the default solve criteria built into *lows will be used. If adjSolveCriteria!=NULL then *adjSolveCriteria will be copied internally. Warning! If shallow copy is used by any parameters in adjSolveCriteria->extraParameter these these parameters will be "remembered" by *this.
Preconditions:
  • lows.get() != NULL

Postconditions:

Definition at line 76 of file Thyra_DefaultInverseLinearOp.hpp.

template<class Scalar>
void Thyra::DefaultInverseLinearOp< Scalar >::initialize const Teuchos::RefCountPtr< const LinearOpWithSolveBase< Scalar > > &  lows,
const SolveCriteria< Scalar > *  fwdSolveCriteria = NULL,
const EThrowOnSolveFailure  throwOnFwdSolveFailure = THROW_ON_SOLVE_FAILURE,
const SolveCriteria< Scalar > *  adjSolveCriteria = NULL,
const EThrowOnSolveFailure  throwOnAdjSolveFailure = THROW_ON_SOLVE_FAILURE
 

Initialize given a non-const LinearOpWithSolveBase object and an optional .

Parameters:
lows [in] The LinearOpWithSolveBase object that will solve(...) and/or solveTranspose(...) will be called on. Note that *this may give up non-const views of *lows so that *lows may be changed through clients of this object.
fwdSolveCriteria [in] The criteria used to call lows->solve(...). If fwdSolveCriteria==NULL then the default solve criteria built into *lows will be used. If fwdSolveCriteria!=NULL then *fwdSolveCriteria will be copied internally. Warning! If shallow copy is used by any parameters in fwdSolveCriteria->extraParameter these these parameters will be "remembered" by *this.
adjSolveCriteria  [in] The criteria used to call lows->solveTranspose(...). If adjSolveCriteria==NULL then the default solve criteria built into *lows will be used. If adjSolveCriteria!=NULL then *adjSolveCriteria will be copied internally. Warning! If shallow copy is used by any parameters in adjSolveCriteria->extraParameter these these parameters will be "remembered" by *this.
Preconditions:
  • lows.get() != NULL

Postconditions:

Definition at line 91 of file Thyra_DefaultInverseLinearOp.hpp.

template<class Scalar>
void Thyra::DefaultInverseLinearOp< Scalar >::uninitialize  ) 
 

Set to uninitialized.

Postconditions:

Definition at line 106 of file Thyra_DefaultInverseLinearOp.hpp.

template<class Scalar>
bool Thyra::DefaultInverseLinearOp< Scalar >::isLowsConst  )  const
 

Definition at line 116 of file Thyra_DefaultInverseLinearOp.hpp.

template<class Scalar>
Teuchos::RefCountPtr< LinearOpWithSolveBase< Scalar > > Thyra::DefaultInverseLinearOp< Scalar >::getNonconstLows  ) 
 

Definition at line 123 of file Thyra_DefaultInverseLinearOp.hpp.

template<class Scalar>
Teuchos::RefCountPtr< const LinearOpWithSolveBase< Scalar > > Thyra::DefaultInverseLinearOp< Scalar >::getLows  )  const
 

Definition at line 130 of file Thyra_DefaultInverseLinearOp.hpp.

template<class Scalar>
Teuchos::RefCountPtr< const VectorSpaceBase< Scalar > > Thyra::DefaultInverseLinearOp< Scalar >::range  )  const
 

Returns this->getLows()->domain() if <t>this->getLows().get()!=NULL and returns Teuchos::null otherwise.

Definition at line 139 of file Thyra_DefaultInverseLinearOp.hpp.

template<class Scalar>
Teuchos::RefCountPtr< const VectorSpaceBase< Scalar > > Thyra::DefaultInverseLinearOp< Scalar >::domain  )  const
 

Returns this->getLows()->range() if <t>this->getLows().get()!=NULL and returns Teuchos::null otherwise.

Definition at line 147 of file Thyra_DefaultInverseLinearOp.hpp.

template<class Scalar>
Teuchos::RefCountPtr< const LinearOpBase< Scalar > > Thyra::DefaultInverseLinearOp< Scalar >::clone  )  const
 

Definition at line 155 of file Thyra_DefaultInverseLinearOp.hpp.

template<class Scalar>
std::string Thyra::DefaultInverseLinearOp< Scalar >::description  )  const
 

Definition at line 163 of file Thyra_DefaultInverseLinearOp.hpp.

template<class Scalar>
void Thyra::DefaultInverseLinearOp< Scalar >::describe Teuchos::FancyOStream out,
const Teuchos::EVerbosityLevel  verbLevel
const
 

Definition at line 179 of file Thyra_DefaultInverseLinearOp.hpp.

template<class Scalar>
bool Thyra::DefaultInverseLinearOp< Scalar >::opSupported ETransp  M_trans  )  const [protected]
 

Returns true only if all constituent operators support M_trans.

Definition at line 235 of file Thyra_DefaultInverseLinearOp.hpp.

template<class Scalar>
void Thyra::DefaultInverseLinearOp< Scalar >::apply const ETransp  M_trans,
const MultiVectorBase< Scalar > &  X,
MultiVectorBase< Scalar > *  Y,
const Scalar  alpha,
const Scalar  beta
const [protected]
 

Definition at line 242 of file Thyra_DefaultInverseLinearOp.hpp.


Friends And Related Function Documentation

template<class Scalar>
Teuchos::RefCountPtr< LinearOpBase< Scalar > > nonconstInverse const Teuchos::RefCountPtr< LinearOpWithSolveBase< Scalar > > &  A,
const SolveCriteria< Scalar > *  fwdSolveCriteria = NULL,
const EThrowOnSolveFailure  throwOnFwdSolveFailure = THROW_ON_SOLVE_FAILURE,
const SolveCriteria< Scalar > *  adjSolveCriteria = NULL,
const EThrowOnSolveFailure  throwOnAdjSolveFailure = THROW_ON_SOLVE_FAILURE
[related]
 

Form a non-const implicit inverse operator: M = inv(A).

template<class Scalar>
Teuchos::RefCountPtr< LinearOpBase< Scalar > > inverse const Teuchos::RefCountPtr< const LinearOpWithSolveBase< Scalar > > &  A,
const SolveCriteria< Scalar > *  fwdSolveCriteria = NULL,
const EThrowOnSolveFailure  throwOnFwdSolveFailure = THROW_ON_SOLVE_FAILURE,
const SolveCriteria< Scalar > *  adjSolveCriteria = NULL,
const EThrowOnSolveFailure  throwOnAdjSolveFailure = THROW_ON_SOLVE_FAILURE
[related]
 

Form a const implicit inverse operator: M = inv(A).


The documentation for this class was generated from the following files:
Generated on Thu Sep 18 12:32:46 2008 for Thyra Operator Solve Support by doxygen 1.3.9.1