|
Tpetra Matrix/Vector Services
Version of the Day
|
Operator wrapping a Kokkos (Classic) kernel using RTI. More...
#include <Tpetra_RTIOp.hpp>

Public Types | |
Typedefs that give access to the template parameters. | |
| typedef S | scalar_type |
| The type of the entries of the input and output multivectors. | |
| typedef LO | local_ordinal_type |
| The local index type. | |
| typedef GO | global_ordinal_type |
| The global index type. | |
| typedef Node | node_type |
| The Kokkos Node type. | |
Public Member Functions | |
| KernelOp (Kernel kernel, const RCP< const Map< LO, GO, Node > > &domainMap, const RCP< const Map< LO, GO, Node > > &rangeMap, const RCP< const Import< LO, GO, Node > > &importer, const RCP< const Export< LO, GO, Node > > &exporter) | |
| Constructor. | |
| RCP< const Map< LO, GO, Node > > | getDomainMap () const |
| The Map associated with the domain of this operator, which must be compatible with X.getMap(). | |
| RCP< const Map< LO, GO, Node > > | getRangeMap () const |
| 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 |
| Whether this operator supports applying the transpose or conjugate transpose. | |
Operator wrapping a Kokkos (Classic) kernel using RTI.
This Tpetra::Operator subclass wraps a Kokkos (Classic) kernel using the Tpetra Reduction/Transformation Interface (RTI). The first four template parameters are the same (and in the same order) as those of Tpetra::Operator. The fifth template parameter is the type of the Kokkos (Classic) kernel.
Definition at line 61 of file Tpetra_RTIOp.hpp.
typedef S Tpetra::Operator< S , LO , GO , Node >::scalar_type [inherited] |
The type of the entries of the input and output multivectors.
Definition at line 102 of file Tpetra_Operator.hpp.
typedef LO Tpetra::Operator< S , LO , GO , Node >::local_ordinal_type [inherited] |
The local index type.
Definition at line 105 of file Tpetra_Operator.hpp.
typedef GO Tpetra::Operator< S , LO , GO , Node >::global_ordinal_type [inherited] |
The global index type.
Definition at line 108 of file Tpetra_Operator.hpp.
typedef Node Tpetra::Operator< S , LO , GO , Node >::node_type [inherited] |
The Kokkos Node type.
Definition at line 111 of file Tpetra_Operator.hpp.
| Tpetra::RTI::KernelOp< S, LO, GO, Node, Kernel >::KernelOp | ( | Kernel | kernel, |
| const RCP< const Map< LO, GO, Node > > & | domainMap, | ||
| const RCP< const Map< LO, GO, Node > > & | rangeMap, | ||
| const RCP< const Import< LO, GO, Node > > & | importer, | ||
| const RCP< const Export< LO, GO, Node > > & | exporter | ||
| ) | [inline] |
Constructor.
Definition at line 71 of file Tpetra_RTIOp.hpp.
| RCP<const Map<LO,GO,Node> > Tpetra::RTI::KernelOp< S, LO, GO, Node, Kernel >::getDomainMap | ( | ) | const [inline, virtual] |
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 114 of file Tpetra_RTIOp.hpp.
| RCP<const Map<LO,GO,Node> > Tpetra::RTI::KernelOp< S, LO, GO, Node, Kernel >::getRangeMap | ( | ) | const [inline, virtual] |
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 115 of file Tpetra_RTIOp.hpp.
| 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, |
||
| S | alpha = Teuchos::ScalarTraits<S>::one (), |
||
| S | beta = Teuchos::ScalarTraits<S>::zero () |
||
| ) | const [inline, virtual] |
Computes the operator-multivector application.
Loosely, performs
. However, the details of operation vary according to the values of alpha and beta. Specifically
beta == 0, apply() must overwrite Y, so that any values in Y (including NaNs) are ignored.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 118 of file Tpetra_RTIOp.hpp.
| virtual bool Tpetra::Operator< S , LO , GO , Node >::hasTransposeApply | ( | ) | const [virtual, inherited] |
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.
1.7.6.1