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,
136 const Teuchos::RCP<
const Tpetra::Operator<ST, LO, GO, NT> > &A);
155 Teuchos::RCP<const Tpetra::Operator<ST, LO, GO, NT> >
getForwardOp()
const {
156 return fwdOp_.getConstObj();
163 return fwdOp_.getNonconstObj();
167 Teuchos::RCP<const Thyra::LinearOpBase<ST> > extractLinearOp(
168 const Teuchos::RCP<
const Tpetra::Operator<ST, LO, GO, NT> > &A)
const;
169 Teuchos::RCP<const MappingStrategy> extractMappingStrategy(
170 const Teuchos::RCP<
const Tpetra::Operator<ST, LO, GO, NT> > &A)
const;
175 Teuchos::RCP<const Teko::InverseFactory> inverseFactory_;
176 Teko::ModifiableLinearOp invOperator_;
177 bool firstBuildComplete_;
179 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.