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,
bool clear=
true);
120 virtual void buildPreconditioner(
const Teuchos::RCP<
const Tpetra::Operator<ST,LO,GO,NT> > & A,
const Tpetra::MultiVector<ST,LO,GO,NT> & mv,
bool clear=
true);
149 virtual void rebuildPreconditioner(
const Teuchos::RCP<
const Tpetra::Operator<ST,LO,GO,NT> > & A,
const Tpetra::MultiVector<ST,LO,GO,NT> & mv);
174 Teuchos::RCP<const Thyra::LinearOpBase<ST> > extractLinearOp(
const Teuchos::RCP<
const Tpetra::Operator<ST,LO,GO,NT> > & A)
const;
175 Teuchos::RCP<const MappingStrategy> extractMappingStrategy(
const Teuchos::RCP<
const Tpetra::Operator<ST,LO,GO,NT> > & A)
const;
181 Teuchos::RCP<const PreconditionerFactory> preconFactory_;
182 Teuchos::RCP<Thyra::PreconditionerBase<ST> > preconObj_;
183 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.