Tpetra parallel linear algebra
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. More... | |
typedef LO | local_ordinal_type |
The local index type. More... | |
typedef GO | global_ordinal_type |
The global index type. More... | |
typedef Node | node_type |
The Kokkos Node type. More... | |
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. More... | |
RCP< const Map< LO, GO, Node > > | getDomainMap () const |
The Map associated with the domain of this operator, which must be compatible with X.getMap(). More... | |
RCP< const Map< LO, GO, Node > > | getRangeMap () const |
The Map associated with the range of this operator, which must be compatible with Y.getMap(). More... | |
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. More... | |
Pure virtual functions to be overridden by subclasses. | |
virtual bool | hasTransposeApply () const |
Whether this operator supports applying the transpose or conjugate transpose. More... | |
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.
|
inherited |
The type of the entries of the input and output multivectors.
Definition at line 92 of file Tpetra_Operator.hpp.
|
inherited |
The local index type.
Definition at line 95 of file Tpetra_Operator.hpp.
|
inherited |
The global index type.
Definition at line 98 of file Tpetra_Operator.hpp.
|
inherited |
The Kokkos Node type.
Definition at line 101 of file Tpetra_Operator.hpp.
|
inline |
Constructor.
Definition at line 71 of file Tpetra_RTIOp.hpp.
|
inlinevirtual |
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 103 of file Tpetra_RTIOp.hpp.
|
inlinevirtual |
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 104 of file Tpetra_RTIOp.hpp.
|
inlinevirtual |
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 107 of file Tpetra_RTIOp.hpp.
|
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
.