10#ifndef THYRA_EPETRA_LINEAR_OP_HPP 
   11#define THYRA_EPETRA_LINEAR_OP_HPP 
   13#include "Thyra_LinearOpBase.hpp" 
   14#include "Thyra_EpetraLinearOpBase.hpp" 
   15#include "Thyra_ScaledLinearOpBase.hpp" 
   16#include "Thyra_RowStatLinearOpBase.hpp" 
   17#include "Thyra_SpmdVectorSpaceBase.hpp" 
   19#include "Epetra_RowMatrix.h" 
  323    const RowStatLinearOpBaseUtils::ERowStat rowStat) 
const;
 
  327    const RowStatLinearOpBaseUtils::ERowStat rowStat,
 
  374  bool isFullyInitialized_;
 
 
  463  const std::string &label,
 
  480  const std::string &label,
 
  494#if defined(Thyra_SHOW_DEPRECATED_WARNINGS) 
  496#warning "The ThyraEpetraAdapters package is deprecated" 
Abstract base class for all LinearOpBase objects that can return an Epetra_Operator view of themselve...
 
Concrete LinearOpBase adapter subclass for Epetra_Operator object.
 
RCP< const SpmdVectorSpaceBase< double > > spmdDomain() const
Return a smart pointer to the SpmdVectorSpaceBase object for the domain.
 
std::string description() const
 
virtual void scaleLeftImpl(const VectorBase< double > &row_scaling)
 
void applyImpl(const EOpTransp M_trans, const MultiVectorBase< double > &X, const Ptr< MultiVectorBase< double > > &Y, const double alpha, const double beta) const
 
RCP< EpetraLinearOp > partialNonconstEpetraLinearOp(const RCP< const VectorSpaceBase< double > > &range, const RCP< const VectorSpaceBase< double > > &domain, const RCP< Epetra_Operator > &op, EOpTransp opTrans=NOTRANS, EApplyEpetraOpAs applyAs=EPETRA_OP_APPLY_APPLY, EAdjointEpetraOp adjointSupport=EPETRA_OP_ADJOINT_SUPPORTED)
Partially initialized EpetraLinearOp.
 
RCP< EpetraLinearOp > nonconstEpetraLinearOp()
Default nonmember constructor.
 
virtual void scaleRightImpl(const VectorBase< double > &col_scaling)
 
void getNonconstEpetraOpView(const Ptr< RCP< Epetra_Operator > > &epetraOp, const Ptr< EOpTransp > &epetraOpTransp, const Ptr< EApplyEpetraOpAs > &epetraOpApplyAs, const Ptr< EAdjointEpetraOp > &epetraOpAdjointSupport)
 
void getEpetraOpView(const Ptr< RCP< const Epetra_Operator > > &epetraOp, const Ptr< EOpTransp > &epetraOpTransp, const Ptr< EApplyEpetraOpAs > &epetraOpApplyAs, const Ptr< EAdjointEpetraOp > &epetraOpAdjointSupport) const
 
void uninitialize(RCP< Epetra_Operator > *op=NULL, EOpTransp *opTrans=NULL, EApplyEpetraOpAs *applyAs=NULL, EAdjointEpetraOp *adjointSupport=NULL, RCP< const VectorSpaceBase< double > > *range=NULL, RCP< const VectorSpaceBase< double > > *domain=NULL)
Set to uninitialized and optionally return the current state.
 
EpetraLinearOp()
Construct to uninitialized.
 
virtual bool supportsScaleRightImpl() const
 
void setFullyInitialized(bool isFullyInitialized=true)
Set to fully initialized.
 
RCP< const EpetraLinearOp > epetraLinearOp(const RCP< const Epetra_Operator > &op, EOpTransp opTrans=NOTRANS, EApplyEpetraOpAs applyAs=EPETRA_OP_APPLY_APPLY, EAdjointEpetraOp adjointSupport=EPETRA_OP_ADJOINT_SUPPORTED, const RCP< const VectorSpaceBase< double > > &range=Teuchos::null, const RCP< const VectorSpaceBase< double > > &domain=Teuchos::null)
Dynamically allocate a nonconst EpetraLinearOp to wrap a const Epetra_Operator object.
 
RCP< EpetraLinearOp > nonconstEpetraLinearOp(const RCP< Epetra_Operator > &op, const std::string &label, EOpTransp opTrans=NOTRANS, EApplyEpetraOpAs applyAs=EPETRA_OP_APPLY_APPLY, EAdjointEpetraOp adjointSupport=EPETRA_OP_ADJOINT_SUPPORTED, const RCP< const VectorSpaceBase< double > > &range=Teuchos::null, const RCP< const VectorSpaceBase< double > > &domain=Teuchos::null)
Dynamically allocate an const EpetraLinearOp to wrap a const Epetra_Operator object and give it a str...
 
virtual void getRowStatImpl(const RowStatLinearOpBaseUtils::ERowStat rowStat, const Ptr< VectorBase< double > > &rowStatVec) const
 
void describe(FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const
 
virtual RCP< const SpmdVectorSpaceBase< double > > allocateRange(const RCP< Epetra_Operator > &op, EOpTransp op_trans) const
Allocate the range space of the operator.
 
RCP< EpetraLinearOp > nonconstEpetraLinearOp(const RCP< Epetra_Operator > &op, EOpTransp opTrans=NOTRANS, EApplyEpetraOpAs applyAs=EPETRA_OP_APPLY_APPLY, EAdjointEpetraOp adjointSupport=EPETRA_OP_ADJOINT_SUPPORTED, const RCP< const VectorSpaceBase< double > > &range=Teuchos::null, const RCP< const VectorSpaceBase< double > > &domain=Teuchos::null)
Dynamically allocate an const EpetraLinearOp to wrap a const Epetra_Operator object.
 
void initialize(const RCP< Epetra_Operator > &op, EOpTransp opTrans=NOTRANS, EApplyEpetraOpAs applyAs=EPETRA_OP_APPLY_APPLY, EAdjointEpetraOp adjointSupport=EPETRA_OP_ADJOINT_SUPPORTED, const RCP< const VectorSpaceBase< double > > &range=Teuchos::null, const RCP< const VectorSpaceBase< double > > &domain=Teuchos::null)
Fully initialize.
 
RCP< const LinearOpBase< double > > clone() const
 
void partiallyInitialize(const RCP< const VectorSpaceBase< double > > &range, const RCP< const VectorSpaceBase< double > > &domain, const RCP< Epetra_Operator > &op, EOpTransp opTrans=NOTRANS, EApplyEpetraOpAs applyAs=EPETRA_OP_APPLY_APPLY, EAdjointEpetraOp adjointSupport=EPETRA_OP_ADJOINT_SUPPORTED)
Partially initialize.
 
RCP< const SpmdVectorSpaceBase< double > > spmdRange() const
Return a smart pointer to the SpmdVectorSpaceBase object for the range.
 
virtual bool rowStatIsSupportedImpl(const RowStatLinearOpBaseUtils::ERowStat rowStat) const
 
RCP< const EpetraLinearOp > epetraLinearOp(const RCP< const Epetra_Operator > &op, const std::string &label, EOpTransp opTrans=NOTRANS, EApplyEpetraOpAs applyAs=EPETRA_OP_APPLY_APPLY, EAdjointEpetraOp adjointSupport=EPETRA_OP_ADJOINT_SUPPORTED, const RCP< const SpmdVectorSpaceBase< double > > &range=Teuchos::null, const RCP< const SpmdVectorSpaceBase< double > > &domain=Teuchos::null)
Dynamically allocate a nonconst EpetraLinearOp to wrap a const Epetra_Operator object.
 
RCP< Epetra_Operator > epetra_op()
 
virtual RCP< const SpmdVectorSpaceBase< double > > allocateDomain(const RCP< Epetra_Operator > &op, EOpTransp op_trans) const
Allocate the domain space of the operator.
 
bool opSupportedImpl(EOpTransp M_trans) const
 
RCP< const VectorSpaceBase< double > > range() const
 
virtual bool supportsScaleLeftImpl() const
 
RCP< const VectorSpaceBase< double > > domain() const
 
Base class for all linear operators.
 
bool isFullyInitialized(const LinearOpBase< double > &M)
Determines if a linear operator is in the "Fully Initialized" state or not.
 
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.
 
Base abstract VectorSpaceBase class for all SPMD-based vector spaces.
 
Abstract interface for finite-dimensional dense vectors.
 
Abstract interface for objects that represent a space for vectors.
 
EApplyEpetraOpAs
Determine how the apply an Epetra_Operator as a linear operator.
 
EAdjointEpetraOp
Determine if adjoints are supported on Epetra_Opeator or not.
 
@ EPETRA_OP_APPLY_APPLY
Apply using Epetra_Operator::Apply(...)
 
@ EPETRA_OP_ADJOINT_SUPPORTED
Adjoint supported.
 
EOpTransp
Enumeration for determining how a linear operator is applied. `*.
 
@ NOTRANS
Use the non-transposed operator.
 
T_To & dyn_cast(T_From &from)