10#ifndef THYRA_TPETRA_LINEAR_OP_DECL_HPP 
   11#define THYRA_TPETRA_LINEAR_OP_DECL_HPP 
   13#include "Thyra_LinearOpDefaultBase.hpp" 
   14#include "Thyra_TpetraVectorSpace_decl.hpp" 
   15#include "Thyra_ScaledLinearOpBase.hpp" 
   16#include "Thyra_RowStatLinearOpBase.hpp" 
   17#include "Tpetra_Operator.hpp" 
   18#include "Teuchos_ConstNonconstObjectContainer.hpp" 
   20#if defined(HAVE_THYRA_EPETRA) && defined(HAVE_TPETRA_EPETRA) 
   21#  define HAVE_THYRA_TPETRA_EPETRA 
   24#ifdef HAVE_THYRA_TPETRA_EPETRA 
   25#  include "Thyra_EpetraLinearOpBase.hpp" 
   26#  include "Tpetra_EpetraRowMatrix.hpp" 
   39template <
class Scalar, 
class LocalOrdinal, 
class GlobalOrdinal=LocalOrdinal,
 
   40  class Node=Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
 
   45#ifdef HAVE_THYRA_TPETRA_EPETRA 
   61    const RCP<Tpetra::Operator<Scalar,LocalOrdinal,GlobalOrdinal,Node> > &tpetraOperator
 
   68    const RCP<
const Tpetra::Operator<Scalar,LocalOrdinal,GlobalOrdinal,Node> > &tpetraOperator
 
   92#ifdef HAVE_THYRA_TPETRA_EPETRA 
   98  void getNonconstEpetraOpView(
 
  105  void getEpetraOpView(
 
  157    const RowStatLinearOpBaseUtils::ERowStat rowStat) 
const;
 
  161    const RowStatLinearOpBaseUtils::ERowStat rowStat,
 
  177#ifdef HAVE_THYRA_TPETRA_EPETRA 
  181  template<
class TpetraOperator_t>
 
 
  195template <
class Scalar, 
class LocalOrdinal, 
class GlobalOrdinal, 
class Node>
 
  200  const RCP<Tpetra::Operator<Scalar,LocalOrdinal,GlobalOrdinal,Node> > &tpetraOperator
 
  205  op->initialize(rangeSpace, domainSpace, tpetraOperator);
 
 
  214template <
class Scalar, 
class LocalOrdinal, 
class GlobalOrdinal, 
class Node>
 
  219  const RCP<
const Tpetra::Operator<Scalar,LocalOrdinal,GlobalOrdinal,Node> > &tpetraOperator
 
  224  op->constInitialize(rangeSpace, domainSpace, tpetraOperator);
 
 
Abstract base class for all LinearOpBase objects that can return an Epetra_Operator view of themselve...
 
Node subclass that provides a good default implementation for the describe() function.
 
Interface for a collection of column vectors called a multi-vector.
 
Interface for exxtracting row statistics as a VectorBase from a supporting LinearOpBase object.
 
Applies left or right sclaing to the linear operator.
 
Concrete Thyra::LinearOpBase subclass for Tpetra::Operator.
 
virtual bool rowStatIsSupportedImpl(const RowStatLinearOpBaseUtils::ERowStat rowStat) const
 
void applyImpl(const Thyra::EOpTransp M_trans, const Thyra::MultiVectorBase< Scalar > &X_in, const Teuchos::Ptr< Thyra::MultiVectorBase< Scalar > > &Y_inout, const Scalar alpha, const Scalar beta) const
 
bool opSupportedImpl(Thyra::EOpTransp M_trans) const
 
virtual bool supportsScaleLeftImpl() const
 
RCP< const Thyra::VectorSpaceBase< Scalar > > range() const
 
TpetraLinearOp()
Construct to uninitialized.
 
virtual void getRowStatImpl(const RowStatLinearOpBaseUtils::ERowStat rowStat, const Ptr< VectorBase< Scalar > > &rowStatVec) const
 
virtual void scaleLeftImpl(const VectorBase< Scalar > &row_scaling)
 
virtual void scaleRightImpl(const VectorBase< Scalar > &col_scaling)
 
RCP< const TpetraLinearOp< Scalar, LocalOrdinal, GlobalOrdinal, Node > > constTpetraLinearOp(const RCP< const VectorSpaceBase< Scalar > > &rangeSpace, const RCP< const VectorSpaceBase< Scalar > > &domainSpace, const RCP< const Tpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &tpetraOperator)
Nonmmeber constructor for TpetraLinearOp.
 
void initialize(const RCP< const VectorSpaceBase< Scalar > > &rangeSpace, const RCP< const VectorSpaceBase< Scalar > > &domainSpace, const RCP< Tpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &tpetraOperator)
Initialize.
 
RCP< TpetraLinearOp< Scalar, LocalOrdinal, GlobalOrdinal, Node > > tpetraLinearOp(const RCP< const VectorSpaceBase< Scalar > > &rangeSpace, const RCP< const VectorSpaceBase< Scalar > > &domainSpace, const RCP< Tpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &tpetraOperator)
Nonmmeber constructor for TpetraLinearOp.
 
RCP< const Tpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > > getConstTpetraOperator() const
Get embedded const Tpetra::Operator.
 
void constInitialize(const RCP< const VectorSpaceBase< Scalar > > &rangeSpace, const RCP< const VectorSpaceBase< Scalar > > &domainSpace, const RCP< const Tpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &tpetraOperator)
Initialize.
 
virtual bool supportsScaleRightImpl() const
 
RCP< Tpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > > getTpetraOperator()
Get embedded non-const Tpetra::Operator.
 
RCP< const Thyra::VectorSpaceBase< Scalar > > domain() const
 
Abstract interface for finite-dimensional dense vectors.
 
Abstract interface for objects that represent a space for vectors.
 
EOpTransp
Enumeration for determining how a linear operator is applied. `*.
 
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)