47 #ifndef __Teko_BlockInvDiagonalStrategy_hpp__
48 #define __Teko_BlockInvDiagonalStrategy_hpp__
53 #include "Teuchos_RCP.hpp"
56 #include "Thyra_LinearOpBase.hpp"
60 #include "Teko_InverseFactory.hpp"
61 #include "Teko_BlockPreconditionerFactory.hpp"
85 std::vector<LinearOp> &invDiag)
const = 0;
97 invDiag_.push_back(invD0);
98 invDiag_.push_back(invD1);
109 std::vector<LinearOp> &invDiag)
const {
116 std::vector<Teuchos::RCP<const Thyra::LinearOpBase<double> > > invDiag_;
140 const Teuchos::RCP<InverseFactory> &defaultFact = Teuchos::null);
143 const std::vector<Teuchos::RCP<InverseFactory> > &inverseFactories,
144 const std::vector<Teuchos::RCP<InverseFactory> > &preconditionerFactories,
145 const Teuchos::RCP<InverseFactory> &defaultInverseFact = Teuchos::null,
146 const Teuchos::RCP<InverseFactory> &defaultPreconditionerFact = Teuchos::null);
158 std::vector<LinearOp> &invDiag)
const;
161 const std::vector<Teuchos::RCP<InverseFactory> > &
getFactories()
const {
return invDiagFact_; }
165 std::vector<Teuchos::RCP<InverseFactory> > invDiagFact_;
166 std::vector<Teuchos::RCP<InverseFactory> > precDiagFact_;
167 Teuchos::RCP<InverseFactory> defaultInvFact_;
168 Teuchos::RCP<InverseFactory> defaultPrecFact_;
173 const std::string &opPrefix,
int i)
const;
Abstract class for building an inverse operator.
virtual void getInvD(const BlockedLinearOp &A, BlockPreconditionerState &state, std::vector< LinearOp > &invDiag) const
virtual void getInvD(const BlockedLinearOp &, BlockPreconditionerState &, std::vector< LinearOp > &invDiag) const
An implementation of a state object for block preconditioners.
const std::vector< Teuchos::RCP< InverseFactory > > & getFactories() const
Get factories for testing purposes.
virtual void getInvD(const BlockedLinearOp &A, BlockPreconditionerState &state, std::vector< LinearOp > &invDiag) const =0
returns an (approximate) inverse of the diagonal blocks of A
LinearOp buildInverse(const InverseFactory &invFact, Teuchos::RCP< InverseFactory > &precFact, const LinearOp &matrix, BlockPreconditionerState &state, const std::string &opPrefix, int i) const
Conveinence function for building inverse operators.