Tpetra parallel linear algebra
Version of the Day
|
A class for wrapping an Operator of one Scalar type into an Operator of another Scalar type. More...
#include <Tpetra_MixedScalarMultiplyOp.hpp>
Public Types | |
using | op_type = Operator< OpScalar, LocalOrdinal, GlobalOrdinal, Node > |
The specialization of CrsMatrix which this class wraps. More... | |
using | map_type = Map< LocalOrdinal, GlobalOrdinal, Node > |
The specialization of Map which this class uses. More... | |
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 | |
Constructor and destructor | |
MixedScalarMultiplyOp (const Teuchos::RCP< const op_type > &A) | |
Constructor. More... | |
~MixedScalarMultiplyOp () override=default | |
Destructor (virtual for memory safety of derived classes). More... | |
Methods implementing Operator | |
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 override |
Compute Y = beta*Y + alpha*Op(A)*X , where Op(A) is either A, , or . More... | |
bool | hasTransposeApply () const override |
Whether this Operator's apply() method can apply the transpose or conjugate transpose. More... | |
Teuchos::RCP< const map_type > | getDomainMap () const override |
The domain Map of this Operator. More... | |
Teuchos::RCP< const map_type > | getRangeMap () const override |
The range Map of this Operator. More... | |
Pure virtual functions to be overridden by subclasses. | |
virtual bool | hasDiagonal () const |
Whether this operator can return its diagonal. More... | |
virtual void | getLocalDiagCopy (Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &diag) const |
Get the diagonal of the operator. More... | |
Protected Attributes | |
const Teuchos::RCP< const op_type > | op_ |
The underlying CrsMatrix object. More... | |
Related Functions | |
(Note that these are not member functions.) | |
template<class Scalar , class OpScalar , class LocalOrdinal , class GlobalOrdinal , class Node > | |
Teuchos::RCP < MixedScalarMultiplyOp < Scalar, OpScalar, LocalOrdinal, GlobalOrdinal, Node > > | createMixedScalarMultiplyOp (const Teuchos::RCP< const Operator< OpScalar, LocalOrdinal, GlobalOrdinal, Node > > &A) |
Non-member function to create a MixedScalarMultiplyOp. More... | |
A class for wrapping an Operator of one Scalar type into an Operator of another Scalar type.
Scalar | The type of the entries of the input and output MultiVector (see apply()). Same as the first template parameter of Operator. |
OpScalar | The type of the entries of the wrapped Operator. |
LocalOrdinal | The second template parameter of Operator. |
GlobalOrdinal | The third template parameter of Operator. |
Node | The fourth template parameter of Operator. |
Definition at line 44 of file Tpetra_MixedScalarMultiplyOp.hpp.
using Tpetra::MixedScalarMultiplyOp< Scalar, OpScalar, LocalOrdinal, GlobalOrdinal, Node >::op_type = Operator<OpScalar, LocalOrdinal, GlobalOrdinal, Node> |
The specialization of CrsMatrix which this class wraps.
Definition at line 50 of file Tpetra_MixedScalarMultiplyOp.hpp.
using Tpetra::MixedScalarMultiplyOp< Scalar, OpScalar, LocalOrdinal, GlobalOrdinal, Node >::map_type = Map<LocalOrdinal, GlobalOrdinal, Node> |
The specialization of Map which this class uses.
Definition at line 52 of file Tpetra_MixedScalarMultiplyOp.hpp.
|
inherited |
The type of the entries of the input and output multivectors.
Definition at line 61 of file Tpetra_Operator.hpp.
|
inherited |
The local index type.
Definition at line 64 of file Tpetra_Operator.hpp.
|
inherited |
The global index type.
Definition at line 67 of file Tpetra_Operator.hpp.
|
inherited |
The Kokkos Node type.
Definition at line 70 of file Tpetra_Operator.hpp.
|
inline |
Constructor.
A | [in] The Operator to wrap as an Operator<Scalar, ...> . |
Definition at line 62 of file Tpetra_MixedScalarMultiplyOp.hpp.
|
overridedefault |
Destructor (virtual for memory safety of derived classes).
|
inlineoverridevirtual |
Compute Y = beta*Y + alpha*Op(A)*X
, where Op(A)
is either A, , or .
Implements Tpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 78 of file Tpetra_MixedScalarMultiplyOp.hpp.
|
inlineoverridevirtual |
Whether this Operator's apply() method can apply the transpose or conjugate transpose.
This is always true, since it is true for the CrsMatrix that this object wraps.
Reimplemented from Tpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 102 of file Tpetra_MixedScalarMultiplyOp.hpp.
|
inlineoverridevirtual |
The domain Map of this Operator.
Implements Tpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 107 of file Tpetra_MixedScalarMultiplyOp.hpp.
|
inlineoverridevirtual |
The range Map of this Operator.
Implements Tpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 112 of file Tpetra_MixedScalarMultiplyOp.hpp.
|
virtualinherited |
Whether this operator can return its diagonal.
By default, this returns false. Subclasses must override this method if they can supply a diagonal.
Definition at line 124 of file Tpetra_Operator.hpp.
|
virtualinherited |
Get the diagonal of the operator.
By default, this throws. Subclasses must override this method if they can supply a diagonal.
Reimplemented in Tpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Tpetra::RowMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >, and Tpetra::RowMatrix< Scalar, LO, GO, Node >.
Definition at line 129 of file Tpetra_Operator.hpp.
|
related |
Non-member function to create a MixedScalarMultiplyOp.
The function has the same template parameters of MixedScalarMultiplyOp.
A | [in] The Operator instance to wrap in an MixedScalarMultiplyOp. |
Definition at line 147 of file Tpetra_MixedScalarMultiplyOp.hpp.
|
protected |
The underlying CrsMatrix object.
Definition at line 122 of file Tpetra_MixedScalarMultiplyOp.hpp.