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.