Tpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > Class Template Reference

Abstract interface for linear operators accepting Tpetra MultiVector objects. More...

#include <Tpetra_Operator.hpp>

Inheritance diagram for Tpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node >:

Inheritance graph
[legend]
List of all members.

Public Member Functions

Pure virtual functions to be overridden by subclasses.
virtual const Teuchos::RCP<
const Map< LocalOrdinal,
GlobalOrdinal, Node > > & 
getDomainMap () const =0
 Returns the Map associated with the domain of this operator, which must be compatible with X.getMap().
virtual const Teuchos::RCP<
const Map< LocalOrdinal,
GlobalOrdinal, Node > > & 
getRangeMap () const =0
 Returns the Map associated with the range of this operator, which must be compatible with Y.getMap().
virtual void apply (const MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &X, MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &Y, Teuchos::ETransp mode=Teuchos::NO_TRANS) const =0
 Computes the operator-multivector multiplication $Y = A X$.
virtual bool hasTransposeApply () const
 Indicates whether this operator supports applying the adjoint operator.

Detailed Description

template<class Scalar, class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType>
class Tpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node >

Abstract interface for linear operators accepting Tpetra MultiVector objects.

This class is templated on Scalar, LocalOrdinal, GlobalOrdinal and Node. The LocalOrdinal type, if omitted, defaults to int. The GlobalOrdinal type, if omitted, defaults to the LocalOrdinal type Node is by defult of type Kokkos::DefaultNode::DefaultNodeType.

A companion class to Tpetra::Operator is Tpetra::InverseOperator. Both classes support polymorphic behavior for abstract linear operators. However, Tpetra::Operator supports a "forward" operator, typically a matrix-vector multiplication, while Tpetra::InverseOperator supports an inversion such as triangular solves or the application of a preconditioner. Full-featured classes such as Tpetra::CrsMatrix will implement both interfaces. Many user-defined classes will only implement one or the other, but there are important cases where both interfaces will be implemented by the same derived class. Such is the case for sophisticated multiphysics preconditioners.


Member Function Documentation

template<class Scalar, class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType>
virtual const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& Tpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getDomainMap (  )  const [pure virtual]

Returns the Map associated with the domain of this operator, which must be compatible with X.getMap().

Implemented in Tpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatVec, LocalMatSolve >.

template<class Scalar, class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType>
virtual const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& Tpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getRangeMap (  )  const [pure virtual]

Returns the Map associated with the range of this operator, which must be compatible with Y.getMap().

Implemented in Tpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatVec, LocalMatSolve >.

template<class Scalar, class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = Kokkos::DefaultNode::DefaultNodeType>
virtual void Tpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node >::apply ( const MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &  X,
MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &  Y,
Teuchos::ETransp  mode = Teuchos::NO_TRANS 
) const [pure virtual]

Computes the operator-multivector multiplication $Y = A X$.

Implemented in Tpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatVec, LocalMatSolve >.

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node>
bool Tpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node >::hasTransposeApply (  )  const [virtual]

Indicates whether this operator supports applying the adjoint operator.

Reimplemented in Tpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node, LocalMatVec, LocalMatSolve >.


The documentation for this class was generated from the following file:
Generated on Wed May 12 21:40:14 2010 for Tpetra Matrix/Vector Services by  doxygen 1.4.7