47 #ifndef __Teko_InverseFactoryOperator_hpp__
48 #define __Teko_InverseFactoryOperator_hpp__
50 #include "Teuchos_ConstNonconstObjectContainer.hpp"
52 #include "Teko_InverseFactory.hpp"
53 #include "Teko_EpetraInverseOpWrapper.hpp"
104 virtual void buildInverseOperator(
const Teuchos::RCP<const Epetra_Operator> & A,
bool clear=
true);
151 Teuchos::RCP<const Epetra_Operator>
getForwardOp()
const {
return fwdOp_.getConstObj(); }
159 Teuchos::RCP<const Thyra::LinearOpBase<double> > extractLinearOp(
const Teuchos::RCP<const Epetra_Operator> & A)
const;
160 Teuchos::RCP<const MappingStrategy> extractMappingStrategy(
const Teuchos::RCP<const Epetra_Operator> & A)
const;
165 Teuchos::RCP<const Teko::InverseFactory> inverseFactory_;
166 Teko::ModifiableLinearOp invOperator_;
167 bool firstBuildComplete_;
169 Teuchos::ConstNonconstObjectContainer<Epetra_Operator> fwdOp_;
Teuchos::RCP< const Epetra_Operator > getForwardOp() const
virtual void rebuildInverseOperator(const Teuchos::RCP< const Epetra_Operator > &A)
Rebuild this inverse from an Epetra_Operator passed in this to object.
Teuchos::RCP< Epetra_Operator > getNonconstForwardOp() const
virtual void initInverse(bool clearOld=false)
Build the underlying data structure for the inverse operator.
A single Epetra wrapper for all operators constructed from an inverse operator.
virtual void buildInverseOperator(const Teuchos::RCP< const Epetra_Operator > &A, bool clear=true)
Build this inverse operator from an Epetra_Operator passed in to this object.