TSFInverseOperator represents the inverse of some other operator. More...
Public Member Functions | |
| InverseOperator (const LinearOperator< Scalar > &op, const LinearSolver< Scalar > &solver) | |
| Ctor with a linear operator and a solver specified. | |
| virtual | ~InverseOperator () |
| Virtual dtor. | |
| virtual void | generalApply (const Thyra::EOpTransp M_trans, const Thyra::VectorBase< Scalar > &x, Thyra::VectorBase< Scalar > *y, const Scalar alpha=1.0, const Scalar beta=0.0) const |
| Compute alpha*M*x + beta*y, where M=*this. | |
| virtual RCP< const Thyra::VectorSpaceBase< Scalar > > | domain () const |
| Return the domain of the operator. | |
| virtual RCP< const Thyra::VectorSpaceBase< Scalar > > | range () const |
| Return the range of the operator. | |
| void | print (std::ostream &os) const |
Private Attributes | |
| const LinearOperator< Scalar > | op_ |
| const LinearSolver< Scalar > | solver_ |
| std::string | msg_ |
TSFInverseOperator represents the inverse of some other operator.
An inverse operator object will contain an operator and a solver. The operator data member is the operator whose inverse this represents. The solver data member is the solver that will be used in applying the inverse. If the solver is null, the operator is assumed to have self-contained ability to solve systems, as for a dense matrix that does solves by factoring and backsolves.
Definition at line 56 of file TSFInverseOperatorDecl.hpp.
| TSFExtended::InverseOperator< Scalar >::InverseOperator | ( | const LinearOperator< Scalar > & | op, |
| const LinearSolver< Scalar > & | solver | ||
| ) | [inline] |
Ctor with a linear operator and a solver specified.
Definition at line 54 of file TSFInverseOperatorImpl.hpp.
| virtual TSFExtended::InverseOperator< Scalar >::~InverseOperator | ( | ) | [inline, virtual] |
Virtual dtor.
Definition at line 67 of file TSFInverseOperatorDecl.hpp.
| RCP< const Thyra::VectorSpaceBase< Scalar > > TSFExtended::InverseOperator< Scalar >::domain | ( | ) | const [inline, virtual] |
Return the domain of the operator.
Definition at line 123 of file TSFInverseOperatorImpl.hpp.
| void TSFExtended::InverseOperator< Scalar >::generalApply | ( | const Thyra::EOpTransp | M_trans, |
| const Thyra::VectorBase< Scalar > & | x, | ||
| Thyra::VectorBase< Scalar > * | y, | ||
| const Scalar | alpha = 1.0, |
||
| const Scalar | beta = 0.0 |
||
| ) | const [inline, virtual] |
Compute alpha*M*x + beta*y, where M=*this.
| M_trans | specifies whether the operator is transposed: op(M) = M, for M_trans == NOTRANS op(M) = M', for M_trans == TRANS |
| x | vector of length this->domain()->dim() |
| y | vector of length this->range()->dim() |
| alpha | scalar multiplying M*x (default is 1.0) |
| beta | scalar multiplying y (default is 0.0) |
Implements TSFExtended::OpWithBackwardsCompatibleApply< Scalar >.
Definition at line 70 of file TSFInverseOperatorImpl.hpp.
References Sundance::Handle< Thyra::VectorBase< Scalar > >::ptr(), TSFExtended::SolveConverged, and SUNDANCE_MSG2.
| void TSFExtended::InverseOperator< Scalar >::print | ( | std::ostream & | os | ) | const [virtual] |
Implements Sundance::Printable.
Definition at line 137 of file TSFInverseOperatorImpl.hpp.
| RCP< const Thyra::VectorSpaceBase< Scalar > > TSFExtended::InverseOperator< Scalar >::range | ( | ) | const [inline, virtual] |
Return the range of the operator.
Definition at line 132 of file TSFInverseOperatorImpl.hpp.
std::string TSFExtended::InverseOperator< Scalar >::msg_ [private] |
Definition at line 106 of file TSFInverseOperatorDecl.hpp.
const LinearOperator<Scalar> TSFExtended::InverseOperator< Scalar >::op_ [private] |
Definition at line 104 of file TSFInverseOperatorDecl.hpp.
const LinearSolver<Scalar> TSFExtended::InverseOperator< Scalar >::solver_ [private] |
Definition at line 105 of file TSFInverseOperatorDecl.hpp.