|
Tpetra parallel linear algebra Version of the Day
|
Abstract interface for local operators (e.g., matrices and preconditioners). More...
#include <Tpetra_LocalCrsMatrixOperator_decl.hpp>

Public Member Functions | |
| void | apply (Kokkos::View< const mv_scalar_type **, array_layout, device_type, Kokkos::MemoryTraits< Kokkos::Unmanaged > > X, Kokkos::View< mv_scalar_type **, array_layout, device_type, Kokkos::MemoryTraits< Kokkos::Unmanaged > > Y, const Teuchos::ETransp mode, const mv_scalar_type alpha, const mv_scalar_type beta) const override |
Compute Y := beta*Y + alpha*Op(A)*X. | |
| void | applyImbalancedRows (Kokkos::View< const mv_scalar_type **, array_layout, device_type, Kokkos::MemoryTraits< Kokkos::Unmanaged > > X, Kokkos::View< mv_scalar_type **, array_layout, device_type, Kokkos::MemoryTraits< Kokkos::Unmanaged > > Y, const Teuchos::ETransp mode, const mv_scalar_type alpha, const mv_scalar_type beta) const |
Compute Y := beta*Y + alpha*Op(A)*X, with a hint to use an SPMV algorithm for imbalanced rows. | |
| virtual void | apply (Kokkos::View< const scalar_type **, array_layout, device_type, Kokkos::MemoryTraits< Kokkos::Unmanaged > > X, Kokkos::View< scalar_type **, array_layout, device_type, Kokkos::MemoryTraits< Kokkos::Unmanaged > > Y, const Teuchos::ETransp mode, const scalar_type alpha, const scalar_type beta) const=0 |
Compute Y := beta*Y + alpha*Op(A)*X. | |
Abstract interface for local operators (e.g., matrices and preconditioners).
| MultiVectorScalar | The type of the entries of the input and output (multi)vectors. |
| MatrixScalar | The type of the entries of the sparse matrix. |
| Device | The Kokkos Device type; must be a specialization of Kokkos::Device. |
Definition at line 30 of file Tpetra_LocalCrsMatrixOperator_decl.hpp.
|
override |
Compute Y := beta*Y + alpha*Op(A)*X.
| X | [in] Input MultiVector. |
| Y | [in/out] Output MultiVector. |
| mode | [in] Whether to apply the transpose (Teuchos::NO_TRANS, Teuchos::TRANS, Teuchos::CONJ_TRANS). |
| alpha | [in] Scaling factor for the result. |
| beta | [in] Scaling factor for Y before adding the result. |
Definition at line 50 of file Tpetra_LocalCrsMatrixOperator_def.hpp.
| void Tpetra::LocalCrsMatrixOperator< MultiVectorScalar, MatrixScalar, Device >::applyImbalancedRows | ( | Kokkos::View< const mv_scalar_type **, array_layout, device_type, Kokkos::MemoryTraits< Kokkos::Unmanaged > > | X, |
| Kokkos::View< mv_scalar_type **, array_layout, device_type, Kokkos::MemoryTraits< Kokkos::Unmanaged > > | Y, | ||
| const Teuchos::ETransp | mode, | ||
| const mv_scalar_type | alpha, | ||
| const mv_scalar_type | beta | ||
| ) | const |
Compute Y := beta*Y + alpha*Op(A)*X, with a hint to use an SPMV algorithm for imbalanced rows.
Same behavior as apply() above, except give KokkosKernels a hint to use an SPMV algorithm that can efficiently handle matrices with imbalanced rows.
| X | [in] Input MultiVector. |
| Y | [in/out] Output MultiVector. |
| mode | [in] Whether to apply the transpose (Teuchos::NO_TRANS, Teuchos::TRANS, Teuchos::CONJ_TRANS). |
| alpha | [in] Scaling factor for the result. |
| beta | [in] Scaling factor for Y before adding the result. |
Definition at line 86 of file Tpetra_LocalCrsMatrixOperator_def.hpp.
|
pure virtualinherited |
Compute Y := beta*Y + alpha*Op(A)*X.
| X | [in] Input MultiVector. |
| Y | [in/out] Output MultiVector. |
| mode | [in] Whether to apply the transpose (Teuchos::NO_TRANS, Teuchos::TRANS, Teuchos::CONJ_TRANS). |
| alpha | [in] Scaling factor for the result. |
| beta | [in] Scaling factor for Y before adding the result. |