10 #ifndef __Teko_EpetraBlockPreconditioner_hpp__
11 #define __Teko_EpetraBlockPreconditioner_hpp__
14 #include "Teko_PreconditionerFactory.hpp"
15 #include "Teko_EpetraInverseOpWrapper.hpp"
67 virtual void buildPreconditioner(
const Teuchos::RCP<const Epetra_Operator> &A,
bool clear =
true);
83 const Epetra_MultiVector &mv,
bool clear =
true);
113 const Epetra_MultiVector &mv);
138 Teuchos::RCP<const Thyra::LinearOpBase<double> > extractLinearOp(
139 const Teuchos::RCP<const Epetra_Operator> &A)
const;
140 Teuchos::RCP<const MappingStrategy> extractMappingStrategy(
141 const Teuchos::RCP<const Epetra_Operator> &A)
const;
147 Teuchos::RCP<const PreconditionerFactory> preconFactory_;
148 Teuchos::RCP<Thyra::PreconditionerBase<double> > preconObj_;
149 bool firstBuildComplete_;
virtual void buildPreconditioner(const Teuchos::RCP< const Epetra_Operator > &A, bool clear=true)
Build this preconditioner from an Epetra_Operator passed in to this object.
virtual void initPreconditioner(bool clearOld=false)
Build the underlying data structure for the preconditioner.
virtual void rebuildPreconditioner(const Teuchos::RCP< const Epetra_Operator > &A)
Rebuild this preconditioner from an Epetra_Operator passed in this to object.
A single Epetra wrapper for all the BlockPreconditioners.
virtual Teuchos::RCP< PreconditionerState > getPreconditionerState()