42 #ifndef THYRA_DEFUALT_PRECONDITIONER_DECL_HPP 43 #define THYRA_DEFUALT_PRECONDITIONER_DECL_HPP 45 #include "Thyra_PreconditionerBase.hpp" 46 #include "Teuchos_ConstNonconstObjectContainer.hpp" 79 template <
class Scalar>
187 Teuchos::FancyOStream &out,
188 const Teuchos::EVerbosityLevel verbLevel
199 Teuchos::RCP<const LinearOpBase<Scalar> >
getLeftPrecOp()
const;
216 Teuchos::ConstNonconstObjectContainer<LinearOpBase<Scalar> > leftPrecOp_;
217 Teuchos::ConstNonconstObjectContainer<LinearOpBase<Scalar> > rightPrecOp_;
218 Teuchos::ConstNonconstObjectContainer<LinearOpBase<Scalar> > unspecifiedPrecOp_;
231 template <
class Scalar>
232 Teuchos::RCP<const DefaultPreconditioner<Scalar> >
246 template <
class Scalar>
247 Teuchos::RCP<DefaultPreconditioner<Scalar> >
261 template <
class Scalar>
262 Teuchos::RCP<const DefaultPreconditioner<Scalar> >
275 template <
class Scalar>
276 Teuchos::RCP<const DefaultPreconditioner<Scalar> >
289 template <
class Scalar>
290 Teuchos::RCP<const DefaultPreconditioner<Scalar> >
303 #endif // THYRA_DEFUALT_PRECONDITIONER_DECL_HPP bool isUnspecifiedPrecOpConst() const
std::string description() const
void initializeUnspecified(const Teuchos::RCP< LinearOpBase< Scalar > > &unspecifiedPrecOp)
Initialize a single unspecified preconditioner operator.
Teuchos::RCP< const LinearOpBase< Scalar > > getLeftPrecOp() const
void uninitialize()
Uninitialize.
Teuchos::RCP< const DefaultPreconditioner< Scalar > > leftPrec(const Teuchos::RCP< const LinearOpBase< Scalar > > &leftPrecOp)
Create a precondioner from a single linear operator targeted to be used on the left.
bool isRightPrecOpConst() const
void initializeRight(const Teuchos::RCP< LinearOpBase< Scalar > > &rightPrecOp)
Initialize a right preconditioner.
Simple interface class to access a precreated preconditioner as one or more linear operators objects ...
void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const
Teuchos::RCP< LinearOpBase< Scalar > > getNonconstUnspecifiedPrecOp()
bool isLeftPrecOpConst() const
Teuchos::RCP< const DefaultPreconditioner< Scalar > > rightPrec(const Teuchos::RCP< const LinearOpBase< Scalar > > &rightPrecOp)
Create a precondioner from a single linear operator targeted to be used on the right.
Default implementation of a PreconditionerBase that just accepts precreated preconditioner linear ope...
Teuchos::RCP< const DefaultPreconditioner< Scalar > > unspecifiedPrec(const Teuchos::RCP< const LinearOpBase< Scalar > > &unspecifiedPrecOp)
Create a precondioner from a single linear operator not targeted to be used on the left or the right...
Base class for all linear operators.
Teuchos::RCP< LinearOpBase< Scalar > > getNonconstLeftPrecOp()
Teuchos::RCP< const LinearOpBase< Scalar > > getRightPrecOp() const
Teuchos::RCP< LinearOpBase< Scalar > > getNonconstRightPrecOp()
void initializeLeftRight(const Teuchos::RCP< LinearOpBase< Scalar > > &leftPrecOp, const Teuchos::RCP< LinearOpBase< Scalar > > &rightPrecOp)
Initialize a split left/right preconditioner.
Teuchos::RCP< const DefaultPreconditioner< Scalar > > splitPrec(const Teuchos::RCP< const LinearOpBase< Scalar > > &leftPrecOp, const Teuchos::RCP< const LinearOpBase< Scalar > > &rightPrecOp)
Create a split precondioner from two linear operators, one to be applied on the left and one to be ap...
Teuchos::RCP< const LinearOpBase< Scalar > > getUnspecifiedPrecOp() const
DefaultPreconditioner()
Construct to uninitialized.
void initializeLeft(const Teuchos::RCP< LinearOpBase< Scalar > > &leftPrecOp)
Initialize a left preconditioner.
Teuchos::RCP< DefaultPreconditioner< Scalar > > nonconstUnspecifiedPrec(const Teuchos::RCP< LinearOpBase< Scalar > > &unspecifiedPrecOp)
Create a precondioner from a single linear operator not targeted to be used on the left or the right...