10 #ifndef __Teko_TpetraBlockPreconditioner_hpp__ 
   11 #define __Teko_TpetraBlockPreconditioner_hpp__ 
   14 #include "Teko_PreconditionerFactory.hpp" 
   15 #include "Teko_TpetraInverseOpWrapper.hpp" 
   16 #include "Teko_ConfigDefs.hpp" 
   19 namespace TpetraHelpers {
 
   68   virtual void buildPreconditioner(
const Teuchos::RCP<
const Tpetra::Operator<ST, LO, GO, NT> > &A,
 
   84   virtual void buildPreconditioner(
const Teuchos::RCP<
const Tpetra::Operator<ST, LO, GO, NT> > &A,
 
   85                                    const Tpetra::MultiVector<ST, LO, GO, NT> &mv,
 
  101       const Teuchos::RCP<
const Tpetra::Operator<ST, LO, GO, NT> > &A);
 
  117                                      const Tpetra::MultiVector<ST, LO, GO, NT> &mv);
 
  142   Teuchos::RCP<const Thyra::LinearOpBase<ST> > extractLinearOp(
 
  143       const Teuchos::RCP<
const Tpetra::Operator<ST, LO, GO, NT> > &A) 
const;
 
  144   Teuchos::RCP<const MappingStrategy> extractMappingStrategy(
 
  145       const Teuchos::RCP<
const Tpetra::Operator<ST, LO, GO, NT> > &A) 
const;
 
  151   Teuchos::RCP<const PreconditionerFactory> preconFactory_;
 
  152   Teuchos::RCP<Thyra::PreconditionerBase<ST> > preconObj_;
 
  153   bool firstBuildComplete_;
 
virtual void buildPreconditioner(const Teuchos::RCP< const Tpetra::Operator< ST, LO, GO, NT > > &A, bool clear=true)
Build this preconditioner from an Epetra_Operator passed in to this object. 
virtual Teuchos::RCP< PreconditionerState > getPreconditionerState()
A single Epetra wrapper for all the BlockPreconditioners. 
virtual void initPreconditioner(bool clearOld=false)
Build the underlying data structure for the preconditioner. 
virtual void rebuildPreconditioner(const Teuchos::RCP< const Tpetra::Operator< ST, LO, GO, NT > > &A)
Rebuild this preconditioner from an Epetra_Operator passed in this to object.