47 #ifndef __Teko_BlockPreconditionerFactory_hpp__ 48 #define __Teko_BlockPreconditionerFactory_hpp__ 50 #include "Teuchos_ParameterListAcceptor.hpp" 53 #include "Thyra_SolveSupportTypes.hpp" 54 #include "Thyra_LinearOpSourceBase.hpp" 55 #include "Thyra_PreconditionerFactoryBase.hpp" 56 #include "Thyra_DefaultBlockedLinearOp.hpp" 57 #include "Thyra_DefaultPreconditioner.hpp" 61 #include "Teko_InverseLibrary.hpp" 62 #include "Teko_CloneFactory.hpp" 63 #include "Teko_PreconditionerState.hpp" 64 #include "Teko_PreconditionerFactory.hpp" 68 using Thyra::LinearOpBase;
69 using Thyra::DefaultPreconditioner;
72 using Teuchos::ParameterList;
144 bool isCompatible(
const Thyra::LinearOpSourceBase<double> &fwdOpSrc)
const;
virtual const Teko::BlockedMultiVector getBlockedSourceVector() const
Set the vector associated with this operator (think nonlinear system)
RCP< BlockPreconditionerState > buildBlockPreconditionerState() const
Function that constructs a BlockPreconditionerState object.
virtual LinearOp buildPreconditionerOperator(BlockedLinearOp &blo, BlockPreconditionerState &state) const =0
Function that is called to build the preconditioner for the linear operator that is passed in...
virtual void setSourceVector(const Teko::MultiVector &srcVec)
Set the vector associated with this operator (think nonlinear system)
Abstract class which block preconditioner factories in Teko should be based on.
Abstract class which block preconditioner factories in Teko should be based on.
const BlockedMultiVector toBlockedMultiVector(const MultiVector &bmv)
Convert to a BlockedMultiVector from a MultiVector.
An implementation of a state object for block preconditioners.
virtual RCP< PreconditionerState > buildPreconditionerState() const
Function that permits the construction of an arbitrary BlockPreconditionerState object.
virtual const Teko::MultiVector getSourceVector() const
Set the vector associated with this operator (think nonlinear system)
bool isCompatible(const Thyra::LinearOpSourceBase< double > &fwdOpSrc) const
is this operator compatiable with the preconditioner factory?
virtual void setBlockSourceVector(const Teko::BlockedMultiVector &srcVec)
Set the vector associated with this operator (think nonlinear system)
An implementation of a state object preconditioners.