Tpetra parallel linear algebra  Version of the Day
List of all members
Tpetra::RTI::BinaryOp< S, LO, GO, Node, Op > Class Template Referenceabstract

Tpetra::Operator wrapping a binary functor using the Tpetra Reduction/Transformation Interface. More...

#include <Tpetra_RTIOp.hpp>

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

Public Types

Typedefs that give access to the template parameters.
typedef Scalar scalar_type
 The type of the entries of the input and output multivectors. More...
 
typedef LocalOrdinal local_ordinal_type
 The local index type. More...
 
typedef GlobalOrdinal global_ordinal_type
 The global index type. More...
 
typedef Node node_type
 The Kokkos Node type. More...
 

Public Member Functions

Pure virtual functions to be overridden by subclasses.
virtual void apply (const MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &X, MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &Y, Teuchos::ETransp mode=Teuchos::NO_TRANS, Scalar alpha=Teuchos::ScalarTraits< Scalar >::one(), Scalar beta=Teuchos::ScalarTraits< Scalar >::zero()) const =0
 Computes the operator-multivector application. More...
 
virtual bool hasTransposeApply () const
 Whether this operator supports applying the transpose or conjugate transpose. More...
 

Detailed Description

template<class S, class LO, class GO, class Node, class Op>
class Tpetra::RTI::BinaryOp< S, LO, GO, Node, Op >

Tpetra::Operator wrapping a binary functor using the Tpetra Reduction/Transformation Interface.

Definition at line 183 of file Tpetra_RTIOp.hpp.

Member Typedef Documentation

◆ scalar_type

template<class Scalar = ::Tpetra::Details::DefaultTypes::scalar_type, class LocalOrdinal = ::Tpetra::Details::DefaultTypes::local_ordinal_type, class GlobalOrdinal = ::Tpetra::Details::DefaultTypes::global_ordinal_type, class Node = ::Tpetra::Details::DefaultTypes::node_type>
typedef Scalar Tpetra::Classes::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node >::scalar_type
inherited

The type of the entries of the input and output multivectors.

Definition at line 92 of file Tpetra_Operator.hpp.

◆ local_ordinal_type

template<class Scalar = ::Tpetra::Details::DefaultTypes::scalar_type, class LocalOrdinal = ::Tpetra::Details::DefaultTypes::local_ordinal_type, class GlobalOrdinal = ::Tpetra::Details::DefaultTypes::global_ordinal_type, class Node = ::Tpetra::Details::DefaultTypes::node_type>
typedef LocalOrdinal Tpetra::Classes::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node >::local_ordinal_type
inherited

The local index type.

Definition at line 95 of file Tpetra_Operator.hpp.

◆ global_ordinal_type

template<class Scalar = ::Tpetra::Details::DefaultTypes::scalar_type, class LocalOrdinal = ::Tpetra::Details::DefaultTypes::local_ordinal_type, class GlobalOrdinal = ::Tpetra::Details::DefaultTypes::global_ordinal_type, class Node = ::Tpetra::Details::DefaultTypes::node_type>
typedef GlobalOrdinal Tpetra::Classes::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node >::global_ordinal_type
inherited

The global index type.

Definition at line 98 of file Tpetra_Operator.hpp.

◆ node_type

template<class Scalar = ::Tpetra::Details::DefaultTypes::scalar_type, class LocalOrdinal = ::Tpetra::Details::DefaultTypes::local_ordinal_type, class GlobalOrdinal = ::Tpetra::Details::DefaultTypes::global_ordinal_type, class Node = ::Tpetra::Details::DefaultTypes::node_type>
typedef Node Tpetra::Classes::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node >::node_type
inherited

The Kokkos Node type.

Definition at line 101 of file Tpetra_Operator.hpp.

Member Function Documentation

◆ getDomainMap()

RCP<const Map<LO,GO,Node> > Tpetra::RTI::KernelOp< S, LO, GO, Node, Tpetra::RTI::detail::BinaryFunctorAdapterWithAlphaBeta< Op, S > >::getDomainMap ( ) const
inlinevirtualinherited

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

Implements Tpetra::Classes::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Definition at line 114 of file Tpetra_RTIOp.hpp.

◆ getRangeMap()

RCP<const Map<LO,GO,Node> > Tpetra::RTI::KernelOp< S, LO, GO, Node, Tpetra::RTI::detail::BinaryFunctorAdapterWithAlphaBeta< Op, S > >::getRangeMap ( ) const
inlinevirtualinherited

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

Implements Tpetra::Classes::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Definition at line 115 of file Tpetra_RTIOp.hpp.

◆ apply()

template<class Scalar = ::Tpetra::Details::DefaultTypes::scalar_type, class LocalOrdinal = ::Tpetra::Details::DefaultTypes::local_ordinal_type, class GlobalOrdinal = ::Tpetra::Details::DefaultTypes::global_ordinal_type, class Node = ::Tpetra::Details::DefaultTypes::node_type>
virtual void Tpetra::Classes::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,
Scalar  alpha = Teuchos::ScalarTraits< Scalar >::one(),
Scalar  beta = Teuchos::ScalarTraits< Scalar >::zero() 
) const
pure virtualinherited

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.

Implemented in Tpetra::Classes::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >, and Tpetra::Classes::CrsMatrix< SC, LO, GO, NT >.

◆ hasTransposeApply()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
bool Tpetra::Classes::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node >::hasTransposeApply ( ) const
virtualinherited

Whether this operator supports applying the transpose or conjugate transpose.

By default, this returns false. Subclasses must override this method if they can support apply() with mode=Teuchos::TRANS or mode=Teuchos::CONJ_TRANS.

Reimplemented in Tpetra::Classes::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Tpetra::Classes::CrsMatrix< SC, LO, GO, NT >, Tpetra::CrsMatrixMultiplyOp< Scalar, MatScalar, LocalOrdinal, GlobalOrdinal, Node >, Tpetra::Experimental::Classes::BlockCrsMatrix< Scalar, LO, GO, Node >, and Tpetra::details::ApplyOp< Scalar, OperatorType >.

Definition at line 138 of file Tpetra_Operator.hpp.


The documentation for this class was generated from the following file: