10#ifndef __Teko_BlockPreconditionerFactory_hpp__
11#define __Teko_BlockPreconditionerFactory_hpp__
13#include "Teuchos_ParameterListAcceptor.hpp"
16#include "Thyra_SolveSupportTypes.hpp"
17#include "Thyra_LinearOpSourceBase.hpp"
18#include "Thyra_PreconditionerFactoryBase.hpp"
19#include "Thyra_DefaultBlockedLinearOp.hpp"
20#include "Thyra_DefaultPreconditioner.hpp"
24#include "Teko_InverseLibrary.hpp"
25#include "Teko_CloneFactory.hpp"
26#include "Teko_PreconditionerState.hpp"
27#include "Teko_PreconditionerFactory.hpp"
31using Teuchos::ParameterList;
34using Thyra::DefaultPreconditioner;
35using Thyra::LinearOpBase;
110 bool isCompatible(
const Thyra::LinearOpSourceBase<double> &fwdOpSrc)
const;
const BlockedMultiVector toBlockedMultiVector(const MultiVector &bmv)
Convert to a BlockedMultiVector from a MultiVector.
Abstract class which block preconditioner factories in Teko should be based on.
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.
bool isCompatible(const Thyra::LinearOpSourceBase< double > &fwdOpSrc) const
is this operator compatiable with the preconditioner factory?
virtual RCP< PreconditionerState > buildPreconditionerState() const
Function that permits the construction of an arbitrary BlockPreconditionerState object.
RCP< BlockPreconditionerState > buildBlockPreconditionerState() const
Function that constructs a BlockPreconditionerState object.
An implementation of a state object for block preconditioners.
virtual const Teko::BlockedMultiVector getBlockedSourceVector() const
Set the vector associated with this operator (think nonlinear system).
virtual void setBlockSourceVector(const Teko::BlockedMultiVector &srcVec)
Set the vector associated with this operator (think nonlinear system).
Abstract class which block preconditioner factories in Teko should be based on.
An implementation of a state object preconditioners.
virtual void setSourceVector(const Teko::MultiVector &srcVec)
Set the vector associated with this operator (think nonlinear system).
virtual const Teko::MultiVector getSourceVector() const
Set the vector associated with this operator (think nonlinear system).