47 #ifndef __Teko_TpetraInverseFactoryOperator_hpp__
48 #define __Teko_TpetraInverseFactoryOperator_hpp__
50 #include "Teuchos_ConstNonconstObjectContainer.hpp"
52 #include "Teko_ConfigDefs.hpp"
53 #include "Teko_InverseFactory.hpp"
54 #include "Teko_TpetraInverseOpWrapper.hpp"
57 namespace TpetraHelpers {
105 virtual void buildInverseOperator(
const Teuchos::RCP<
const Tpetra::Operator<ST,LO,GO,NT> > & A,
bool clear=
true);
119 virtual void buildInverseOperator(
const Teuchos::RCP<Tpetra::Operator<ST,LO,GO,NT> > & A,
bool clear=
true);
152 Teuchos::RCP<const Tpetra::Operator<ST,LO,GO,NT> >
getForwardOp()
const {
return fwdOp_.getConstObj(); }
160 Teuchos::RCP<const Thyra::LinearOpBase<ST> > extractLinearOp(
const Teuchos::RCP<
const Tpetra::Operator<ST,LO,GO,NT> > & A)
const;
161 Teuchos::RCP<const MappingStrategy> extractMappingStrategy(
const Teuchos::RCP<
const Tpetra::Operator<ST,LO,GO,NT> > & A)
const;
166 Teuchos::RCP<const Teko::InverseFactory> inverseFactory_;
167 Teko::ModifiableLinearOp invOperator_;
168 bool firstBuildComplete_;
170 Teuchos::ConstNonconstObjectContainer<Tpetra::Operator<ST,LO,GO,NT> > fwdOp_;
virtual void initInverse(bool clearOld=false)
Build the underlying data structure for the inverse operator.
virtual void buildInverseOperator(const Teuchos::RCP< const Tpetra::Operator< ST, LO, GO, NT > > &A, bool clear=true)
Build this inverse operator from an Epetra_Operator passed in to this object.
A single Epetra wrapper for all operators constructed from an inverse operator.
Teuchos::RCP< const Tpetra::Operator< ST, LO, GO, NT > > getForwardOp() const
virtual void rebuildInverseOperator(const Teuchos::RCP< const Tpetra::Operator< ST, LO, GO, NT > > &A)
Rebuild this inverse from an Epetra_Operator passed in this to object.
Teuchos::RCP< Tpetra::Operator< ST, LO, GO, NT > > getNonconstForwardOp() const