| 
    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.   | |
| typedef OperatorType::local_ordinal_type | local_ordinal_type | 
| The type of local indices in the input OperatorType.   | |
| typedef OperatorType::global_ordinal_type | global_ordinal_type | 
| The type of global indices in the input OperatorType.   | |
| typedef OperatorType::node_type | node_type | 
| The type of the Kokkos Node used by the input OperatorType.   | |
Public Member Functions | |
Constructor and destructor  | |
| ApplyOp (const Teuchos::RCP< const OperatorType > &op) | |
| Constructor.   | |
| virtual | ~ApplyOp () | 
| Destructor.   | |
Pure virtual functions to be overridden by subclasses.  | |
| virtual bool | hasDiagonal () const | 
| Whether this operator can return its diagonal.   | |
| virtual void | getLocalDiagCopy (Vector< Scalar, OperatorType::local_ordinal_type, OperatorType::global_ordinal_type, OperatorType::node_type > &diag) const | 
| Get the diagonal of the operator.   | |
Methods implementing Operator | |
| Teuchos::RCP< const OperatorType > | operator_ | 
| The underlying Operator object.   | |
| 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,  | |
| bool | hasTransposeApply () const | 
| Whether this Operator's apply() method can apply the transpose or conjugate transpose.   | |
| Teuchos::RCP< const Tpetra::Map< local_ordinal_type, global_ordinal_type, node_type > > | getDomainMap () const | 
| The domain Map of this Operator.   | |
| Teuchos::RCP< const Tpetra::Map< local_ordinal_type, global_ordinal_type, node_type > > | getRangeMap () const | 
| The range Map of this Operator.   | |
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, 

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.
Definition at line 107 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.
Definition at line 113 of file Tpetra_Operator.hpp.
      
  | 
  protected | 
The underlying Operator object.
Definition at line 121 of file Tpetra_ApplyOp.hpp.