47 #include "Teko_BlockPreconditionerFactory.hpp"
49 #include "Teko_Preconditioner.hpp"
50 #include "Teko_InverseLibrary.hpp"
52 #include "Thyra_DefaultPreconditioner.hpp"
54 using namespace Thyra;
60 LinearOp BlockPreconditionerFactory::buildPreconditionerOperator(LinearOp & lo,
PreconditionerState & state)
const
63 RCP<LinearOpBase<double> > loA = Teuchos::rcp_const_cast<Thyra::LinearOpBase<double> >(lo);
64 BlockedLinearOp A = Teuchos::rcp_dynamic_cast<Thyra::PhysicallyBlockedLinearOpBase<double> >(loA);
68 return buildPreconditionerOperator(A,dynamic_cast<BlockPreconditionerState &>(state));
72 bool BlockPreconditionerFactory::isCompatible(
const Thyra::LinearOpSourceBase<double> &fwdOpSrc)
const
74 RCP<const Thyra::PhysicallyBlockedLinearOpBase<double> > A
75 = Teuchos::rcp_dynamic_cast<
const Thyra::PhysicallyBlockedLinearOpBase<double> >(fwdOpSrc.getOp());
76 return A!=Teuchos::null;
An implementation of a state object preconditioners.
virtual void setInitialized(bool init=true)