#include <Teko_MultPreconditionerFactory.hpp>

| Public Member Functions | |
| MultPrecsLinearOp (const Teko::LinearOp &A, const Teko::LinearOp &M1, const Teko::LinearOp &M2) | |
| Constructor.  More... | |
| virtual Teko::VectorSpace | range () const | 
| Range space of this operator.  More... | |
| virtual Teko::VectorSpace | domain () const | 
| Domain space of this operator.  More... | |
| virtual void | implicitApply (const Teko::BlockedMultiVector &r, Teko::BlockedMultiVector &y, const double alpha=1.0, const double beta=0.0) const | 
| Perform a matrix vector multiply with this implicitly defined blocked operator.  More... | |
|  Public Member Functions inherited from Teko::BlockImplicitLinearOp | |
| virtual void | implicitApply (const Thyra::EOpTransp M_trans, const BlockedMultiVector &x, BlockedMultiVector &y, const double alpha=1.0, const double beta=0.0) const | 
| Perform a matrix vector multiply with this implicitly defined blocked operator.  More... | |
| Additional Inherited Members | |
|  Protected Member Functions inherited from Teko::BlockImplicitLinearOp | |
| virtual bool | opSupportedImpl (const Thyra::EOpTransp M_trans) const | 
| Functions required by Thyra::LinearOpBase.  More... | |
Declaration of a Teko::BlockImplicitLinearOp. BlockImplicitLinearOp's are useful when there is no simple or cheap matrix representation of something like f(r). This particular class corresponds to f(r) = (M2 + M1 - M2 * A * M1) r
which is an application of a multiplicative preconditioner. Notice that when M1 = inv(A) or when M2 = inv(A), we get f(r) = inv(A)*r.
While the above matrix represenation could be used instead of writing an implicit function, it requires an additional matrix-vector product than an efficient implementation. It should be noted (see comments below) that there is an efficient matrix represenation of this f(r). Namely,
        f(r) =  [M2 I] [I  -A] [ I]
                       [0   I] [ M1]
so we didn't really need to create an implicit operator.
Definition at line 91 of file Teko_MultPreconditionerFactory.hpp.
| 
 | inline | 
Constructor.
Definition at line 95 of file Teko_MultPreconditionerFactory.hpp.
| 
 | inlinevirtual | 
Range space of this operator.
Implements Teko::BlockImplicitLinearOp.
Definition at line 98 of file Teko_MultPreconditionerFactory.hpp.
| 
 | inlinevirtual | 
Domain space of this operator.
Implements Teko::BlockImplicitLinearOp.
Definition at line 99 of file Teko_MultPreconditionerFactory.hpp.
| 
 | virtual | 
Perform a matrix vector multiply with this implicitly defined blocked operator.
The apply function takes one vector as input and applies a linear operator. The result is returned in  . If this operator is reprsented as
. If this operator is reprsented as  then
 then 
| [in] | x | |
| [in,out] | y | |
| [in] | alpha | (default=1) | 
| [in] | beta | (default=0) | 
Implements Teko::BlockImplicitLinearOp.
Definition at line 53 of file Teko_MultPreconditionerFactory.cpp.
 1.8.5
 1.8.5