40 #ifndef TPETRA_LOCALCRSMATRIXOPERATOR_DECL_HPP
41 #define TPETRA_LOCALCRSMATRIXOPERATOR_DECL_HPP
43 #include "Tpetra_LocalCrsMatrixOperator_fwd.hpp"
44 #include "Tpetra_LocalOperator.hpp"
45 #include "KokkosSparse_CrsMatrix.hpp"
59 template<
class MultiVectorScalar,
class MatrixScalar,
class Device>
63 using mv_scalar_type =
65 using matrix_scalar_type =
66 typename LocalOperator<MatrixScalar, Device>::scalar_type;
73 using local_ordinal_type =
75 using execution_space =
typename Device::execution_space;
76 using local_graph_type =
77 Kokkos::StaticCrsGraph<local_ordinal_type,
81 using local_matrix_type =
82 KokkosSparse::CrsMatrix<matrix_scalar_type,
86 typename local_graph_type::size_type>;
92 apply (Kokkos::View<
const mv_scalar_type**, array_layout,
93 device_type, Kokkos::MemoryTraits<Kokkos::Unmanaged> > X,
94 Kokkos::View<mv_scalar_type**, array_layout,
95 device_type, Kokkos::MemoryTraits<Kokkos::Unmanaged> > Y,
96 const Teuchos::ETransp mode,
97 const mv_scalar_type alpha,
98 const mv_scalar_type beta)
const override;
100 bool hasTransposeApply ()
const override;
102 const local_matrix_type& getLocalMatrix ()
const;
105 std::shared_ptr<local_matrix_type> A_;
110 #endif // TPETRA_LOCALCRSMATRIXOPERATOR_DECL_HPP
Abstract interface for local operators (e.g., matrices and preconditioners).
Abstract interface for local operators (e.g., matrices and preconditioners).
int local_ordinal_type
Default value of Scalar template parameter.