10 #ifndef __Teko_TpetraInverseFactoryOperator_hpp__
11 #define __Teko_TpetraInverseFactoryOperator_hpp__
13 #include "Teuchos_ConstNonconstObjectContainer.hpp"
15 #include "Teko_ConfigDefs.hpp"
16 #include "Teko_InverseFactory.hpp"
17 #include "Teko_TpetraInverseOpWrapper.hpp"
20 namespace TpetraHelpers {
68 virtual void buildInverseOperator(
const Teuchos::RCP<
const Tpetra::Operator<ST, LO, GO, NT> > &A,
99 const Teuchos::RCP<
const Tpetra::Operator<ST, LO, GO, NT> > &A);
118 Teuchos::RCP<const Tpetra::Operator<ST, LO, GO, NT> >
getForwardOp()
const {
119 return fwdOp_.getConstObj();
126 return fwdOp_.getNonconstObj();
130 Teuchos::RCP<const Thyra::LinearOpBase<ST> > extractLinearOp(
131 const Teuchos::RCP<
const Tpetra::Operator<ST, LO, GO, NT> > &A)
const;
132 Teuchos::RCP<const MappingStrategy> extractMappingStrategy(
133 const Teuchos::RCP<
const Tpetra::Operator<ST, LO, GO, NT> > &A)
const;
138 Teuchos::RCP<const Teko::InverseFactory> inverseFactory_;
139 Teko::ModifiableLinearOp invOperator_;
140 bool firstBuildComplete_;
142 Teuchos::ConstNonconstObjectContainer<Tpetra::Operator<ST, LO, GO, NT> > fwdOp_;
Teuchos::RCP< Tpetra::Operator< ST, LO, GO, NT > > getNonconstForwardOp() const
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.
Teuchos::RCP< const Tpetra::Operator< ST, LO, GO, NT > > getForwardOp() const
A single Epetra wrapper for all operators constructed from an inverse operator.
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.