|
Thyra Package Browser (Single Doxygen Collection) Version of the Day
|
Concrete LinearOpBase subclass that creates an implicit LinearOpBase object using the inverse action of a LinearOpWithSolveBase object.
More...
#include <Thyra_DefaultInverseLinearOp_decl.hpp>

Public Member Functions | |
| template<class LOWS > | |
| void | initializeImpl (const Teuchos::RCP< LOWS > &lows, const SolveCriteria< Scalar > *fwdSolveCriteria, const EThrowOnSolveFailure throwOnFwdSolveFailure, const SolveCriteria< Scalar > *adjSolveCriteria, const EThrowOnSolveFailure throwOnAdjSolveFailure) |
Private Member Functions | |
| void | assertInitialized () const |
| template<class LOWS > | |
| void | initializeImpl (const RCP< LOWS > &lows, const SolveCriteria< Scalar > *fwdSolveCriteria, const EThrowOnSolveFailure throwOnFwdSolveFailure, const SolveCriteria< Scalar > *adjSolveCriteria, const EThrowOnSolveFailure throwOnAdjSolveFailure) |
| DefaultInverseLinearOp (const DefaultInverseLinearOp &) | |
| DefaultInverseLinearOp & | operator= (const DefaultInverseLinearOp &) |
Private Attributes | |
| Teuchos::ConstNonconstObjectContainer < LinearOpWithSolveBase < Scalar > > | lows_ |
| RCP< SolveCriteria< Scalar > > | fwdSolveCriteria_ |
| EThrowOnSolveFailure | throwOnFwdSolveFailure_ |
| RCP< SolveCriteria< Scalar > > | adjSolveCriteria_ |
| EThrowOnSolveFailure | throwOnAdjSolveFailure_ |
Related Functions | |
(Note that these are not member functions.) | |
| template<class Scalar > | |
| RCP< LinearOpBase< Scalar > > | nonconstInverse (const RCP< LinearOpWithSolveBase< Scalar > > &A, const Ptr< const SolveCriteria< Scalar > > &fwdSolveCriteria=Teuchos::null, const EThrowOnSolveFailure throwOnFwdSolveFailure=THROW_ON_SOLVE_FAILURE, const Ptr< const SolveCriteria< Scalar > > &adjSolveCriteria=Teuchos::null, const EThrowOnSolveFailure throwOnAdjSolveFailure=THROW_ON_SOLVE_FAILURE) |
Form a non-const implicit inverse operator M = inv(A). | |
| template<class Scalar > | |
| RCP< LinearOpBase< Scalar > > | inverse (const RCP< const LinearOpWithSolveBase< Scalar > > &A, const Ptr< const SolveCriteria< Scalar > > &fwdSolveCriteria=Teuchos::null, const EThrowOnSolveFailure throwOnFwdSolveFailure=THROW_ON_SOLVE_FAILURE, const Ptr< const SolveCriteria< Scalar > > &adjSolveCriteria=Teuchos::null, const EThrowOnSolveFailure throwOnAdjSolveFailure=THROW_ON_SOLVE_FAILURE) |
Form a const implicit inverse operator M = inv(A). | |
Constructors/initializers/accessors | |
| DefaultInverseLinearOp () | |
Constructs to uninitialized (see postconditions for uninitialize()). | |
| DefaultInverseLinearOp (const RCP< 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 RCP< 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 RCP< 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 RCP< 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 |
| | |
| RCP< LinearOpWithSolveBase < Scalar > > | getNonconstLows () |
| | |
| RCP< const LinearOpWithSolveBase< Scalar > > | getLows () const |
| | |
Overridden from LinearOpBase | |
| RCP< const VectorSpaceBase < Scalar > > | range () const |
Returns this->getLows()->domain() if <t>this->getLows().get()!=NULL and returns Teuchos::null otherwise. | |
| RCP< const VectorSpaceBase < Scalar > > | domain () const |
Returns this->getLows()->range() if <t>this->getLows().get()!=NULL and returns Teuchos::null otherwise. | |
| RCP< const LinearOpBase< Scalar > > | clone () const |
| | |
| bool | opSupportedImpl (EOpTransp M_trans) const |
Returns true only if all constituent operators support M_trans. | |
| 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 |
| | |
| void | describe (FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const |
| | |
Concrete LinearOpBase subclass that creates an implicit LinearOpBase object using the inverse action of a LinearOpWithSolveBase object.
This class represents an implicit 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 70 of file Thyra_DefaultInverseLinearOp_decl.hpp.
| Thyra::DefaultInverseLinearOp< Scalar >::DefaultInverseLinearOp | ( | ) |
Constructs to uninitialized (see postconditions for uninitialize()).
Definition at line 46 of file Thyra_DefaultInverseLinearOp_def.hpp.
| Thyra::DefaultInverseLinearOp< Scalar >::DefaultInverseLinearOp | ( | const RCP< 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().
| Thyra::DefaultInverseLinearOp< Scalar >::DefaultInverseLinearOp | ( | const RCP< 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.
| Thyra::DefaultInverseLinearOp< Scalar >::DefaultInverseLinearOp | ( | const DefaultInverseLinearOp< Scalar > & | ) | [private] |
| void Thyra::DefaultInverseLinearOp< Scalar >::initialize | ( | const RCP< 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 .
| 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 |
| adjSolveCriteria | |
Preconditions:
lows.get() != NULL Postconditions:
| void Thyra::DefaultInverseLinearOp< Scalar >::initialize | ( | const RCP< 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 .
| 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 |
| adjSolveCriteria | |
Preconditions:
lows.get() != NULL Postconditions:
| void Thyra::DefaultInverseLinearOp< Scalar >::uninitialize | ( | ) |
Set to uninitialized.
Postconditions:
Definition at line 115 of file Thyra_DefaultInverseLinearOp_def.hpp.
| bool Thyra::DefaultInverseLinearOp< Scalar >::isLowsConst | ( | ) | const [virtual] |
Implements Thyra::InverseLinearOpBase< Scalar >.
Definition at line 127 of file Thyra_DefaultInverseLinearOp_def.hpp.
| Teuchos::RCP< LinearOpWithSolveBase< Scalar > > Thyra::DefaultInverseLinearOp< Scalar >::getNonconstLows | ( | ) | [virtual] |
Implements Thyra::InverseLinearOpBase< Scalar >.
Definition at line 135 of file Thyra_DefaultInverseLinearOp_def.hpp.
| Teuchos::RCP< const LinearOpWithSolveBase< Scalar > > Thyra::DefaultInverseLinearOp< Scalar >::getLows | ( | ) | const [virtual] |
Implements Thyra::InverseLinearOpBase< Scalar >.
Definition at line 143 of file Thyra_DefaultInverseLinearOp_def.hpp.
| Teuchos::RCP< const VectorSpaceBase< Scalar > > Thyra::DefaultInverseLinearOp< Scalar >::range | ( | ) | const [virtual] |
Returns this->getLows()->domain() if <t>this->getLows().get()!=NULL and returns Teuchos::null otherwise.
Implements Thyra::LinearOpBase< Scalar >.
Definition at line 154 of file Thyra_DefaultInverseLinearOp_def.hpp.
| Teuchos::RCP< const VectorSpaceBase< Scalar > > Thyra::DefaultInverseLinearOp< Scalar >::domain | ( | ) | const [virtual] |
Returns this->getLows()->range() if <t>this->getLows().get()!=NULL and returns Teuchos::null otherwise.
Implements Thyra::LinearOpBase< Scalar >.
Definition at line 163 of file Thyra_DefaultInverseLinearOp_def.hpp.
| Teuchos::RCP< const LinearOpBase< Scalar > > Thyra::DefaultInverseLinearOp< Scalar >::clone | ( | ) | const [virtual] |
Reimplemented from Thyra::LinearOpBase< Scalar >.
Definition at line 172 of file Thyra_DefaultInverseLinearOp_def.hpp.
| std::string Thyra::DefaultInverseLinearOp< Scalar >::description | ( | ) | const |
Definition at line 182 of file Thyra_DefaultInverseLinearOp_def.hpp.
| void Thyra::DefaultInverseLinearOp< Scalar >::describe | ( | FancyOStream & | out, |
| const Teuchos::EVerbosityLevel | verbLevel | ||
| ) | const |
| bool Thyra::DefaultInverseLinearOp< Scalar >::opSupportedImpl | ( | EOpTransp | M_trans | ) | const [protected, virtual] |
Returns true only if all constituent operators support M_trans.
Implements Thyra::LinearOpBase< Scalar >.
Definition at line 242 of file Thyra_DefaultInverseLinearOp_def.hpp.
| void Thyra::DefaultInverseLinearOp< Scalar >::applyImpl | ( | const EOpTransp | M_trans, |
| const MultiVectorBase< Scalar > & | X, | ||
| const Ptr< MultiVectorBase< Scalar > > & | Y, | ||
| const Scalar | alpha, | ||
| const Scalar | beta | ||
| ) | const [protected, virtual] |
Implements Thyra::LinearOpBase< Scalar >.
Definition at line 252 of file Thyra_DefaultInverseLinearOp_def.hpp.
References Thyra::assign(), Thyra::NOTRANS, Thyra::real_trans(), Thyra::scale(), Thyra::SOLVE_STATUS_CONVERGED, Thyra::THROW_ON_SOLVE_FAILURE, Thyra::toString(), and Thyra::update().
| void Thyra::DefaultInverseLinearOp< Scalar >::assertInitialized | ( | ) | const [inline, private] |
Definition at line 332 of file Thyra_DefaultInverseLinearOp_decl.hpp.
| void Thyra::DefaultInverseLinearOp< Scalar >::initializeImpl | ( | const RCP< LOWS > & | lows, |
| const SolveCriteria< Scalar > * | fwdSolveCriteria, | ||
| const EThrowOnSolveFailure | throwOnFwdSolveFailure, | ||
| const SolveCriteria< Scalar > * | adjSolveCriteria, | ||
| const EThrowOnSolveFailure | throwOnAdjSolveFailure | ||
| ) | [private] |
| DefaultInverseLinearOp& Thyra::DefaultInverseLinearOp< Scalar >::operator= | ( | const DefaultInverseLinearOp< Scalar > & | ) | [private] |
| void Thyra::DefaultScaledAdjointLinearOp< Scalar >::initializeImpl | ( | const Teuchos::RCP< LOWS > & | lows, |
| const SolveCriteria< Scalar > * | fwdSolveCriteria, | ||
| const EThrowOnSolveFailure | throwOnFwdSolveFailure, | ||
| const SolveCriteria< Scalar > * | adjSolveCriteria, | ||
| const EThrowOnSolveFailure | throwOnAdjSolveFailure | ||
| ) |
Definition at line 315 of file Thyra_DefaultInverseLinearOp_def.hpp.
| RCP< LinearOpBase< Scalar > > nonconstInverse | ( | const RCP< LinearOpWithSolveBase< Scalar > > & | A, |
| const Ptr< const SolveCriteria< Scalar > > & | fwdSolveCriteria = Teuchos::null, |
||
| const EThrowOnSolveFailure | throwOnFwdSolveFailure = THROW_ON_SOLVE_FAILURE, |
||
| const Ptr< const SolveCriteria< Scalar > > & | adjSolveCriteria = Teuchos::null, |
||
| const EThrowOnSolveFailure | throwOnAdjSolveFailure = THROW_ON_SOLVE_FAILURE |
||
| ) | [related] |
Form a non-const implicit inverse operator M = inv(A).
| RCP< LinearOpBase< Scalar > > inverse | ( | const RCP< const LinearOpWithSolveBase< Scalar > > & | A, |
| const Ptr< const SolveCriteria< Scalar > > & | fwdSolveCriteria = Teuchos::null, |
||
| const EThrowOnSolveFailure | throwOnFwdSolveFailure = THROW_ON_SOLVE_FAILURE, |
||
| const Ptr< const SolveCriteria< Scalar > > & | adjSolveCriteria = Teuchos::null, |
||
| const EThrowOnSolveFailure | throwOnAdjSolveFailure = THROW_ON_SOLVE_FAILURE |
||
| ) | [related] |
Form a const implicit inverse operator M = inv(A).
Teuchos::ConstNonconstObjectContainer<LinearOpWithSolveBase<Scalar> > Thyra::DefaultInverseLinearOp< Scalar >::lows_ [private] |
Definition at line 272 of file Thyra_DefaultInverseLinearOp_decl.hpp.
RCP<SolveCriteria<Scalar> > Thyra::DefaultInverseLinearOp< Scalar >::fwdSolveCriteria_ [private] |
Definition at line 273 of file Thyra_DefaultInverseLinearOp_decl.hpp.
EThrowOnSolveFailure Thyra::DefaultInverseLinearOp< Scalar >::throwOnFwdSolveFailure_ [private] |
Definition at line 274 of file Thyra_DefaultInverseLinearOp_decl.hpp.
RCP<SolveCriteria<Scalar> > Thyra::DefaultInverseLinearOp< Scalar >::adjSolveCriteria_ [private] |
Definition at line 275 of file Thyra_DefaultInverseLinearOp_decl.hpp.
EThrowOnSolveFailure Thyra::DefaultInverseLinearOp< Scalar >::throwOnAdjSolveFailure_ [private] |
Definition at line 276 of file Thyra_DefaultInverseLinearOp_decl.hpp.
1.7.4