Tpetra parallel linear algebra Version of the Day
Loading...
Searching...
No Matches
Public Member Functions | List of all members
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 >:
Inheritance graph
[legend]

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.

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