|
Teko Version of the Day
|
This linear operator approximates the inverse of a block 

#include <Teko_LU2x2InverseOp.hpp>

Public Member Functions | |
| LU2x2InverseOp (const BlockedLinearOp &A, const LinearOp &invA00, const LinearOp &invS) | |
| This constructor explicitly takes the parts of | |
| LU2x2InverseOp (const BlockedLinearOp &A, const LinearOp &hatInvA00, const LinearOp &tildeInvA00, const LinearOp &invS) | |
| This constructor explicitly takes the parts of | |
Related Symbols | |
(Note that these are not member symbols.) | |
| ModifiableLinearOp | createDiagnosticLinearOp (const Teuchos::RCP< std::ostream > &os, const ModifiableLinearOp &A, const std::string &label) |
Constructor method for building DiagnosticLinearOp. | |
| ModifiableLinearOp | createDiagnosticLinearOp (const Teuchos::RCP< std::ostream > &os, const LinearOp &A, const std::string &label) |
Constructor method for building DiagnosticLinearOp. | |
| ModifiableLinearOp | createDiagnosticLinearOp (const Teuchos::RCP< std::ostream > &os, const Teko::LinearOp &fwdOp, const ModifiableLinearOp &A, const std::string &label) |
Constructor method for building DiagnosticLinearOp. | |
| LinearOp | createLU2x2InverseOp (BlockedLinearOp &A, LinearOp &invA00, LinearOp &invS) |
Constructor method for building LU2x2InverseOp. | |
| LinearOp | createLU2x2InverseOp (BlockedLinearOp &A, LinearOp &invA00, LinearOp &invS, const std::string &str) |
Constructor method for building LU2x2InverseOp. | |
| LinearOp | createLU2x2InverseOp (BlockedLinearOp &A, LinearOp &hatInvA00, LinearOp &tildeInvA00, LinearOp &invS) |
Constructor method for building LU2x2InverseOp. | |
| LinearOp | createLU2x2InverseOp (BlockedLinearOp &A, LinearOp &hatInvA00, LinearOp &tildeInvA00, LinearOp &invS, const std::string &str) |
Constructor method for building LU2x2InverseOp. | |
Inherited methods from Thyra::LinearOpBase | |
| const BlockedLinearOp | A_ |
| operator | |
| const LinearOp | hatInvA00_ |
| inverse of | |
| const LinearOp | tildeInvA00_ |
| inverse of | |
| const LinearOp | invS_ |
| inverse of | |
| const LinearOp | A10_ |
| operator | |
| const LinearOp | A01_ |
| operator | |
| Teuchos::RCP< const Thyra::ProductVectorSpaceBase< double > > | productRange_ |
| Range vector space. | |
| Teuchos::RCP< const Thyra::ProductVectorSpaceBase< double > > | productDomain_ |
| Domain vector space. | |
| virtual VectorSpace | range () const |
| Range space of this operator. | |
| virtual VectorSpace | domain () const |
| Domain space of this operator. | |
| virtual void | implicitApply (const BlockedMultiVector &x, BlockedMultiVector &y, const double alpha=1.0, const double beta=0.0) const |
| Perform a matrix vector multiply with this operator. | |
| 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. | |
Additional Inherited Members | |
| Protected Member Functions inherited from Teko::BlockImplicitLinearOp | |
| virtual bool | opSupportedImpl (const Thyra::EOpTransp M_trans) const |
| Functions required by Thyra::LinearOpBase. | |
This linear operator approximates the inverse of a block 

For a matrix that is blocked like
![$ A = \left[\begin{array}{cc}
A_{00} & A_{01} \\
A_{10} & A_{11}
\end{array}\right] $](form_94.png)
this class evaluates the 


![$A = \left[ \begin{array}{cc}
I & 0 \\
A_{10} A_{00}^{-1} & I
\end{array} \right]
\left[ \begin{array}{cc}
A_{00} & 0 \\
0 & -S
\end{array} \right]
\left[ \begin{array}{cc}
I & A_{00}^{-1} A_{01} \\
0 & I
\end{array} \right]$](form_95.png)
where the Schur complement is 



![$[f, g]^T$](form_99.png)
![$[u,v]^T$](form_100.png)




where 
Definition at line 64 of file Teko_LU2x2InverseOp.hpp.
| Teko::LU2x2InverseOp::LU2x2InverseOp | ( | const BlockedLinearOp & | A, |
| const LinearOp & | invA00, | ||
| const LinearOp & | invS ) |
This constructor explicitly takes the parts of 
This constructor explicitly takes the parts of 
| [in] | A | The block |
| [in] | invA00 | An approximate inverse of |
| [in] | invS | An approximate inverse of |
Definition at line 26 of file Teko_LU2x2InverseOp.cpp.
| Teko::LU2x2InverseOp::LU2x2InverseOp | ( | const BlockedLinearOp & | A, |
| const LinearOp & | hatInvA00, | ||
| const LinearOp & | tildeInvA00, | ||
| const LinearOp & | invS ) |
This constructor explicitly takes the parts of 
This constructor explicitly takes the parts of 
| [in] | A | The block |
| [in] | hatInvA00 | An approximate inverse of |
| [in] | tildeInvA00 | An approximate inverse of |
| [in] | invS | An approximate inverse of |
Definition at line 55 of file Teko_LU2x2InverseOp.cpp.
|
inlinevirtual |
Range space of this operator.
Implements Teko::BlockImplicitLinearOp.
Definition at line 97 of file Teko_LU2x2InverseOp.hpp.
|
inlinevirtual |
Domain space of this operator.
Implements Teko::BlockImplicitLinearOp.
Definition at line 100 of file Teko_LU2x2InverseOp.hpp.
|
virtual |
Perform a matrix vector multiply with this operator.
The apply function takes one vector as input and applies the inverse 



| [in] | x | |
| [in,out] | y | |
| [in] | alpha | (default=1) |
| [in] | beta | (default=0) |
Implements Teko::BlockImplicitLinearOp.
Definition at line 73 of file Teko_LU2x2InverseOp.cpp.
|
protectedvirtual |
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 


| [in] | x | |
| [in,out] | y | |
| [in] | alpha | (default=1) |
| [in] | beta | (default=0) |
Reimplemented from Teko::BlockImplicitLinearOp.
Definition at line 61 of file Teko_BlockImplicitLinearOp.cpp.
|
Constructor method for building DiagnosticLinearOp.
Constructor method for building DiagnosticLinearOp.
| [in] | os | Output stream to print diagnostics to |
| [in] | A | Operator to be wrapped |
| [in] | label | String for outputing with diagnostics |
Definition at line 137 of file Teko_DiagnosticLinearOp.hpp.
|
Constructor method for building DiagnosticLinearOp.
Constructor method for building DiagnosticLinearOp.
| [in] | os | Output stream to print diagnostics to |
| [in] | A | Operator to be wrapped |
| [in] | label | String for outputing with diagnostics |
Definition at line 156 of file Teko_DiagnosticLinearOp.hpp.
|
Constructor method for building DiagnosticLinearOp.
Constructor method for building DiagnosticLinearOp.
| [in] | os | Output stream to print diagnostics to |
| [in] | fwdOp | Forward operator to compute residual with |
| [in] | A | Operator to be wrapped |
| [in] | label | String for outputing with diagnostics |
Definition at line 175 of file Teko_DiagnosticLinearOp.hpp.
|
Constructor method for building LU2x2InverseOp.
Constructor method for building LU2x2InverseOp.
| [in] | A | 2x2 Operator to be decomposed |
| [in] | invA00 | Approximate inverse of the operators |
| [in] | invS | Approximate inverse of the Schur complement |
Definition at line 158 of file Teko_LU2x2InverseOp.hpp.
|
Constructor method for building LU2x2InverseOp.
Constructor method for building LU2x2InverseOp.
| [in] | A | 2x2 Operator to be decomposed |
| [in] | invA00 | Approximate inverse of the operators |
| [in] | invS | Approximate inverse of the Schur complement |
| [in] | str | String to label the operator |
Definition at line 176 of file Teko_LU2x2InverseOp.hpp.
|
Constructor method for building LU2x2InverseOp.
Constructor method for building LU2x2InverseOp.
| [in] | A | 2x2 Operator to be decomposed |
| [in] | hatInvA00 | First approximate inverse of the operators |
| [in] | tildeInvA00 | Second approximate inverse of the operators |
| [in] | invS | Approximate inverse of the Schur complement |
Definition at line 199 of file Teko_LU2x2InverseOp.hpp.
|
Constructor method for building LU2x2InverseOp.
Constructor method for building LU2x2InverseOp.
| [in] | A | 2x2 Operator to be decomposed |
| [in] | hatInvA00 | First approximate inverse of the operators |
| [in] | tildeInvA00 | Second approximate inverse of the operators |
| [in] | invS | Approximate inverse of the Schur complement |
| [in] | str | String to label the operator |
Definition at line 219 of file Teko_LU2x2InverseOp.hpp.
|
protected |
operator 
Definition at line 125 of file Teko_LU2x2InverseOp.hpp.
|
protected |
inverse of 
Definition at line 126 of file Teko_LU2x2InverseOp.hpp.
|
protected |
inverse of 
Definition at line 127 of file Teko_LU2x2InverseOp.hpp.
|
protected |
inverse of 
Definition at line 128 of file Teko_LU2x2InverseOp.hpp.
|
protected |
operator 
Definition at line 131 of file Teko_LU2x2InverseOp.hpp.
|
protected |
operator 
Definition at line 132 of file Teko_LU2x2InverseOp.hpp.
|
protected |
Range vector space.
Definition at line 135 of file Teko_LU2x2InverseOp.hpp.
|
protected |
Domain vector space.
Definition at line 137 of file Teko_LU2x2InverseOp.hpp.