42#ifndef THYRA_DEFUALT_PRECONDITIONER_DECL_HPP
43#define THYRA_DEFUALT_PRECONDITIONER_DECL_HPP
45#include "Thyra_PreconditionerBase.hpp"
46#include "Teuchos_ConstNonconstObjectContainer.hpp"
79template <
class Scalar>
231template <
class Scalar>
246template <
class Scalar>
261template <
class Scalar>
275template <
class Scalar>
289template <
class Scalar>
Default implementation of a PreconditionerBase that just accepts precreated preconditioner linear ope...
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.
void initializeUnspecified(const Teuchos::RCP< LinearOpBase< Scalar > > &unspecifiedPrecOp)
Initialize a single unspecified preconditioner operator.
Teuchos::RCP< LinearOpBase< Scalar > > getNonconstRightPrecOp()
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.
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.
Teuchos::RCP< LinearOpBase< Scalar > > getNonconstLeftPrecOp()
Teuchos::RCP< const LinearOpBase< Scalar > > getRightPrecOp() const
void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const
bool isUnspecifiedPrecOpConst() const
Teuchos::RCP< const LinearOpBase< Scalar > > getUnspecifiedPrecOp() const
bool isLeftPrecOpConst() const
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.
void initializeLeft(const Teuchos::RCP< LinearOpBase< Scalar > > &leftPrecOp)
Initialize a left 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...
std::string description() const
DefaultPreconditioner()
Construct to uninitialized.
void initializeRight(const Teuchos::RCP< LinearOpBase< Scalar > > &rightPrecOp)
Initialize a right preconditioner.
Teuchos::RCP< LinearOpBase< Scalar > > getNonconstUnspecifiedPrecOp()
void uninitialize()
Uninitialize.
Teuchos::RCP< const LinearOpBase< Scalar > > getLeftPrecOp() const
bool isRightPrecOpConst() const
void initializeLeftRight(const Teuchos::RCP< LinearOpBase< Scalar > > &leftPrecOp, const Teuchos::RCP< LinearOpBase< Scalar > > &rightPrecOp)
Initialize a split left/right preconditioner.
Base class for all linear operators.
Simple interface class to access a precreated preconditioner as one or more linear operators objects ...
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)