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)