47 #ifndef __Teko_TpetraBlockPreconditioner_hpp__
48 #define __Teko_TpetraBlockPreconditioner_hpp__
51 #include "Teko_PreconditionerFactory.hpp"
52 #include "Teko_TpetraInverseOpWrapper.hpp"
53 #include "Teko_ConfigDefs.hpp"
56 namespace TpetraHelpers {
105 virtual void buildPreconditioner(
const Teuchos::RCP<
const Tpetra::Operator<ST, LO, GO, NT> > &A,
121 virtual void buildPreconditioner(
const Teuchos::RCP<
const Tpetra::Operator<ST, LO, GO, NT> > &A,
122 const Tpetra::MultiVector<ST, LO, GO, NT> &mv,
138 const Teuchos::RCP<
const Tpetra::Operator<ST, LO, GO, NT> > &A);
154 const Tpetra::MultiVector<ST, LO, GO, NT> &mv);
179 Teuchos::RCP<const Thyra::LinearOpBase<ST> > extractLinearOp(
180 const Teuchos::RCP<
const Tpetra::Operator<ST, LO, GO, NT> > &A)
const;
181 Teuchos::RCP<const MappingStrategy> extractMappingStrategy(
182 const Teuchos::RCP<
const Tpetra::Operator<ST, LO, GO, NT> > &A)
const;
188 Teuchos::RCP<const PreconditionerFactory> preconFactory_;
189 Teuchos::RCP<Thyra::PreconditionerBase<ST> > preconObj_;
190 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.