47 #ifndef __Teko_EpetraBlockPreconditioner_hpp__
48 #define __Teko_EpetraBlockPreconditioner_hpp__
51 #include "Teko_PreconditionerFactory.hpp"
52 #include "Teko_EpetraInverseOpWrapper.hpp"
104 virtual void buildPreconditioner(
const Teuchos::RCP<const Epetra_Operator> & A,
bool clear=
true);
119 virtual void buildPreconditioner(
const Teuchos::RCP<const Epetra_Operator> & A,
const Epetra_MultiVector & mv,
bool clear=
true);
148 virtual void rebuildPreconditioner(
const Teuchos::RCP<const Epetra_Operator> & A,
const Epetra_MultiVector & mv);
173 Teuchos::RCP<const Thyra::LinearOpBase<double> > extractLinearOp(
const Teuchos::RCP<const Epetra_Operator> & A)
const;
174 Teuchos::RCP<const MappingStrategy> extractMappingStrategy(
const Teuchos::RCP<const Epetra_Operator> & A)
const;
180 Teuchos::RCP<const PreconditionerFactory> preconFactory_;
181 Teuchos::RCP<Thyra::PreconditionerBase<double> > preconObj_;
182 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()