Tpetra Matrix/Vector Services Version of the Day
Public Member Functions
Tpetra::RTI::KernelOp< S, LO, GO, Node, Kernel > Class Template Reference

Tpetra::Operator wrapping a Kokkos kernel using the Tpetra Reduction/Transformation Interface. More...

#include <Tpetra_RTIOp.hpp>

Inheritance diagram for Tpetra::RTI::KernelOp< S, LO, GO, Node, Kernel >:
Inheritance graph
[legend]

List of all members.

Public Types

Typedefs that give access to the template parameters.
typedef S scalar_type
typedef LO local_ordinal_type
typedef GO global_ordinal_type
typedef Node node_type

Public Member Functions

const RCP< const Map< LO, GO,
Node > > & 
getDomainMap () const
 Returns the Map associated with the domain of this operator, which must be compatible with X.getMap().
const RCP< const Map< LO, GO,
Node > > & 
getRangeMap () const
 Returns the Map associated with the range of this operator, which must be compatible with Y.getMap().
void apply (const MultiVector< S, LO, GO, Node > &X, MultiVector< S, LO, GO, Node > &Y, Teuchos::ETransp mode=Teuchos::NO_TRANS, S alpha=Teuchos::ScalarTraits< S >::one(), S beta=Teuchos::ScalarTraits< S >::zero()) const
 Computes the operator-multivector application.
Pure virtual functions to be overridden by subclasses.
virtual bool hasTransposeApply () const
 Indicates whether this operator supports applying the adjoint operator.

Detailed Description

template<class S, class LO, class GO, class Node, class Kernel>
class Tpetra::RTI::KernelOp< S, LO, GO, Node, Kernel >

Tpetra::Operator wrapping a Kokkos kernel using the Tpetra Reduction/Transformation Interface.

Definition at line 41 of file Tpetra_RTIOp.hpp.


Member Function Documentation

template<class S, class LO, class GO, class Node, class Kernel>
const RCP<const Map<LO,GO,Node> >& Tpetra::RTI::KernelOp< S, LO, GO, Node, Kernel >::getDomainMap ( ) const [inline, virtual]

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

Implements Tpetra::Operator< S, LO, GO, Node >.

Definition at line 76 of file Tpetra_RTIOp.hpp.

template<class S, class LO, class GO, class Node, class Kernel>
const RCP<const Map<LO,GO,Node> >& Tpetra::RTI::KernelOp< S, LO, GO, Node, Kernel >::getRangeMap ( ) const [inline, virtual]

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

Implements Tpetra::Operator< S, LO, GO, Node >.

Definition at line 78 of file Tpetra_RTIOp.hpp.

template<class S, class LO, class GO, class Node, class Kernel>
void Tpetra::RTI::KernelOp< S, LO, GO, Node, Kernel >::apply ( const MultiVector< S, LO, GO, Node > &  X,
MultiVector< S, LO, GO, Node > &  Y,
Teuchos::ETransp  mode = Teuchos::NO_TRANS,
alpha = Teuchos::ScalarTraits<S>::one(),
beta = Teuchos::ScalarTraits<S>::zero() 
) const [inline, virtual]

Computes the operator-multivector application.

Loosely, performs $Y = \alpha \cdot A^{\textrm{mode}} \cdot X + \beta \cdot Y$. However, the details of operation vary according to the values of alpha and beta. Specifically

  • if beta == 0, apply() must overwrite Y, so that any values in Y (including NaNs) are ignored.
  • if alpha == 0, apply() may short-circuit the operator, so that any values in X (including NaNs) are ignored.

Implements Tpetra::Operator< S, LO, GO, Node >.

Definition at line 80 of file Tpetra_RTIOp.hpp.

virtual bool Tpetra::Operator< S , LO , GO , Node >::hasTransposeApply ( ) const [virtual, inherited]

Indicates whether this operator supports applying the adjoint operator.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines