10#ifndef THYRA_DEFUALT_PRECONDITIONER_DECL_HPP 
   11#define THYRA_DEFUALT_PRECONDITIONER_DECL_HPP 
   13#include "Thyra_PreconditionerBase.hpp" 
   14#include "Teuchos_ConstNonconstObjectContainer.hpp" 
   47template <
class Scalar>
 
  199template <
class Scalar>
 
  214template <
class Scalar>
 
  229template <
class Scalar>
 
  243template <
class Scalar>
 
  257template <
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 ...
 
T_To & dyn_cast(T_From &from)
 
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)