|
Tpetra parallel linear algebra
Version of the Day
|
A class for wrapping an Operator apply in a Operator. More...
#include <Tpetra_ApplyOp.hpp>

Public Types | |
| typedef OperatorType::scalar_type | scalar_type |
| The type of the entries of the input OperatorType. More... | |
| typedef OperatorType::local_ordinal_type | local_ordinal_type |
| The type of local indices in the input OperatorType. More... | |
| typedef OperatorType::global_ordinal_type | global_ordinal_type |
| The type of global indices in the input OperatorType. More... | |
| typedef OperatorType::node_type | node_type |
| The type of the Kokkos Node used by the input OperatorType. More... | |
Public Member Functions | |
Constructor and destructor | |
| ApplyOp (const Teuchos::RCP< const OperatorType > &op) | |
| Constructor. More... | |
| virtual | ~ApplyOp () |
| Destructor. More... | |
Methods implementing Operator | |
| void | apply (const Tpetra::MultiVector< Scalar, local_ordinal_type, global_ordinal_type, node_type > &X, Tpetra::MultiVector< Scalar, local_ordinal_type, global_ordinal_type, node_type > &Y, Teuchos::ETransp mode=Teuchos::NO_TRANS, Scalar alpha=Teuchos::ScalarTraits< Scalar >::one(), Scalar beta=Teuchos::ScalarTraits< Scalar >::zero()) const |
Compute Y = beta*Y + alpha*Op(A)*X, where Op(A) is either A, , or . More... | |
| bool | hasTransposeApply () const |
| Whether this Operator's apply() method can apply the transpose or conjugate transpose. More... | |
| Teuchos::RCP< const Tpetra::Map < local_ordinal_type, global_ordinal_type, node_type > > | getDomainMap () const |
| The domain Map of this Operator. More... | |
| Teuchos::RCP< const Tpetra::Map < local_ordinal_type, global_ordinal_type, node_type > > | getRangeMap () const |
| 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, OperatorType::local_ordinal_type, OperatorType::global_ordinal_type, OperatorType::node_type > &diag) const |
| Get the diagonal of the operator. More... | |
Protected Attributes | |
| Teuchos::RCP< const OperatorType > | operator_ |
| The underlying Operator object. More... | |
A class for wrapping an Operator apply in a Operator.
This class makes a Operator<OpScalar, ...> "look
like" an Operator<Scalar, ...>, where OpScalar and Scalar may be different types. It does so by working around a limitation of C++, namely that template methods of a class can't be virtual.
| Scalar | The type of the entries of the input and output MultiVector of the apply() method. Same as the first template parameter of Operator. |
| OperatorType | The type of the underlying Operator, whose first template parameter OperatorType::scalar_type may differ from this Operator's Scalar type. |
Definition at line 46 of file Tpetra_ApplyOp.hpp.
| typedef OperatorType::scalar_type Tpetra::details::ApplyOp< Scalar, OperatorType >::scalar_type |
The type of the entries of the input OperatorType.
Definition at line 55 of file Tpetra_ApplyOp.hpp.
| typedef OperatorType::local_ordinal_type Tpetra::details::ApplyOp< Scalar, OperatorType >::local_ordinal_type |
The type of local indices in the input OperatorType.
Definition at line 58 of file Tpetra_ApplyOp.hpp.
| typedef OperatorType::global_ordinal_type Tpetra::details::ApplyOp< Scalar, OperatorType >::global_ordinal_type |
The type of global indices in the input OperatorType.
Definition at line 61 of file Tpetra_ApplyOp.hpp.
| typedef OperatorType::node_type Tpetra::details::ApplyOp< Scalar, OperatorType >::node_type |
The type of the Kokkos Node used by the input OperatorType.
Definition at line 64 of file Tpetra_ApplyOp.hpp.
|
inline |
Constructor.
| A | [in] The Operator to wrap with a different Scalar type. |
Definition at line 73 of file Tpetra_ApplyOp.hpp.
|
inlinevirtual |
Destructor.
Definition at line 77 of file Tpetra_ApplyOp.hpp.
|
inlinevirtual |
Compute Y = beta*Y + alpha*Op(A)*X, where Op(A) is either A,
, or
.
This method calls the underlying Operator object's applyTempl<Scalar,Scalar>() method.
Definition at line 89 of file Tpetra_ApplyOp.hpp.
|
inlinevirtual |
Whether this Operator's apply() method can apply the transpose or conjugate transpose.
This depends on whether it is true for the Operator that this object wraps.
Reimplemented from Tpetra::Operator< Scalar, OperatorType::local_ordinal_type, OperatorType::global_ordinal_type, OperatorType::node_type >.
Definition at line 102 of file Tpetra_ApplyOp.hpp.
|
inlinevirtual |
The domain Map of this Operator.
Definition at line 108 of file Tpetra_ApplyOp.hpp.
|
inlinevirtual |
The range Map of this Operator.
Definition at line 114 of file Tpetra_ApplyOp.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.
|
virtualinherited |
Get the diagonal of the operator.
By default, this throws. Subclasses must override this method if they can supply a diagonal.
|
protected |
The underlying Operator object.
Definition at line 121 of file Tpetra_ApplyOp.hpp.
1.8.5