Tpetra parallel linear algebra Version of the Day
Loading...
Searching...
No Matches
Tpetra::LocalOperator< Scalar, Device > Class Template Referenceabstract

Abstract interface for local operators (e.g., matrices and preconditioners). More...

#include <Tpetra_LocalOperator.hpp>

Inheritance diagram for Tpetra::LocalOperator< Scalar, Device >:

Public Member Functions

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.

Detailed Description

template<class Scalar, class Device>
class Tpetra::LocalOperator< Scalar, Device >

Abstract interface for local operators (e.g., matrices and preconditioners).

Template Parameters
ScalarThe type of the entries of the input and output (multi)vectors.
DeviceThe Kokkos Device type; must be a specialization of Kokkos::Device.

Definition at line 29 of file Tpetra_LocalOperator.hpp.

Member Function Documentation

◆ apply()

template<class Scalar, class Device>
virtual void Tpetra::LocalOperator< Scalar, Device >::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
pure virtual

Compute Y := beta*Y + alpha*Op(A)*X.

Parameters
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.

Implemented in Tpetra::LocalCrsMatrixOperator< MultiVectorScalar, MatrixScalar, Device >, and Tpetra::LocalCrsMatrixOperator< Scalar, MatScalar, typename crs_matrix_type::device_type >.


The documentation for this class was generated from the following file: