45 #ifndef AMESOS2_KOKKOS_CRSMATRIX_MATRIXADAPTER_DEF_HPP
46 #define AMESOS2_KOKKOS_CRSMATRIX_MATRIXADAPTER_DEF_HPP
49 #include "Amesos2_MatrixAdapter_def.hpp"
50 #include "KokkosSparse_CrsMatrix.hpp"
51 #include <Tpetra_Core.hpp>
55 template <
typename Scalar,
typename LocalOrdinal,
typename ExecutionSpace>
56 ConcreteMatrixAdapter<KokkosSparse::CrsMatrix<Scalar,LocalOrdinal,ExecutionSpace>>::ConcreteMatrixAdapter(Teuchos::RCP<matrix_t> m)
57 : MatrixAdapter<KokkosSparse::CrsMatrix<Scalar,LocalOrdinal,ExecutionSpace>>(m)
62 template <
typename Scalar,
typename LocalOrdinal,
typename ExecutionSpace>
63 typename ConcreteMatrixAdapter<KokkosSparse::CrsMatrix<Scalar,LocalOrdinal,ExecutionSpace>>::global_size_t
64 ConcreteMatrixAdapter<KokkosSparse::CrsMatrix<Scalar,LocalOrdinal,ExecutionSpace>>::getRowIndexBase()
const
69 template <
typename Scalar,
typename LocalOrdinal,
typename ExecutionSpace>
70 typename ConcreteMatrixAdapter<KokkosSparse::CrsMatrix<Scalar,LocalOrdinal,ExecutionSpace>>::global_size_t
71 ConcreteMatrixAdapter<KokkosSparse::CrsMatrix<Scalar,LocalOrdinal,ExecutionSpace>>::getColumnIndexBase()
const
76 template <
typename Scalar,
typename LocalOrdinal,
typename ExecutionSpace>
77 const Teuchos::RCP<const Teuchos::Comm<int> >
78 ConcreteMatrixAdapter<KokkosSparse::CrsMatrix<Scalar,LocalOrdinal,ExecutionSpace>>::getComm_impl()
const
80 return Tpetra::getDefaultComm();
83 template <
typename Scalar,
typename LocalOrdinal,
typename ExecutionSpace>
84 const RCP<const Tpetra::Map<typename MatrixTraits<KokkosSparse::CrsMatrix<Scalar,LocalOrdinal,ExecutionSpace>>::local_ordinal_t,
85 typename MatrixTraits<KokkosSparse::CrsMatrix<Scalar,LocalOrdinal,ExecutionSpace>>::global_ordinal_t,
86 typename MatrixTraits<KokkosSparse::CrsMatrix<Scalar,LocalOrdinal,ExecutionSpace>>::node_t> >
87 ConcreteMatrixAdapter<KokkosSparse::CrsMatrix<Scalar,LocalOrdinal,ExecutionSpace>>::getRowMap_impl()
const
92 template <
typename Scalar,
typename LocalOrdinal,
typename ExecutionSpace>
93 const RCP<const Tpetra::Map<typename MatrixTraits<KokkosSparse::CrsMatrix<Scalar,LocalOrdinal,ExecutionSpace>>::local_ordinal_t,
94 typename MatrixTraits<KokkosSparse::CrsMatrix<Scalar,LocalOrdinal,ExecutionSpace>>::global_ordinal_t,
95 typename MatrixTraits<KokkosSparse::CrsMatrix<Scalar,LocalOrdinal,ExecutionSpace>>::node_t> >
96 ConcreteMatrixAdapter<KokkosSparse::CrsMatrix<Scalar,LocalOrdinal,ExecutionSpace>>::getColMap_impl()
const
101 template <
typename Scalar,
typename LocalOrdinal,
typename ExecutionSpace>
102 Teuchos::RCP<const MatrixAdapter<KokkosSparse::CrsMatrix<Scalar,LocalOrdinal,ExecutionSpace> > >
103 ConcreteMatrixAdapter<
104 KokkosSparse::CrsMatrix<Scalar,LocalOrdinal,ExecutionSpace>
106 [[maybe_unused]]
const Teuchos::Ptr<
const Tpetra::Map<local_ordinal_t,global_ordinal_t,node_t> > map,
109 TEUCHOS_TEST_FOR_EXCEPTION(
true,
111 "get_impl() not implemented for the Kokkos CrsMatrix adapter yet. "
112 "Please contact the Amesos2 developers." );
115 template <
typename Scalar,
typename LocalOrdinal,
typename ExecutionSpace>
116 typename ConcreteMatrixAdapter<KokkosSparse::CrsMatrix<Scalar,LocalOrdinal,ExecutionSpace>>::global_size_t
117 ConcreteMatrixAdapter<
118 KokkosSparse::CrsMatrix<Scalar,LocalOrdinal,ExecutionSpace>>::getGlobalNumRows_impl()
const
120 return this->mat_->numRows();
123 template <
typename Scalar,
typename LocalOrdinal,
typename ExecutionSpace>
124 typename ConcreteMatrixAdapter<KokkosSparse::CrsMatrix<Scalar,LocalOrdinal,ExecutionSpace>>::global_size_t
125 ConcreteMatrixAdapter<
126 KokkosSparse::CrsMatrix<Scalar,LocalOrdinal,ExecutionSpace>>::getGlobalNumCols_impl()
const
128 return this->mat_->numCols();
131 template <
typename Scalar,
typename LocalOrdinal,
typename ExecutionSpace>
132 typename ConcreteMatrixAdapter<KokkosSparse::CrsMatrix<Scalar,LocalOrdinal,ExecutionSpace>>::global_size_t
133 ConcreteMatrixAdapter<
134 KokkosSparse::CrsMatrix<Scalar,LocalOrdinal,ExecutionSpace>>::getGlobalNNZ_impl()
const
136 return this->mat_->nnz();
139 template <
typename Scalar,
typename LocalOrdinal,
typename ExecutionSpace>
140 const Teuchos::RCP<const Tpetra::Map<typename MatrixTraits<KokkosSparse::CrsMatrix<Scalar,LocalOrdinal,ExecutionSpace>>::local_ordinal_t,
141 typename MatrixTraits<KokkosSparse::CrsMatrix<Scalar,LocalOrdinal,ExecutionSpace>>::global_ordinal_t,
142 typename MatrixTraits<KokkosSparse::CrsMatrix<Scalar,LocalOrdinal,ExecutionSpace>>::node_t> >
143 ConcreteMatrixAdapter<
144 KokkosSparse::CrsMatrix<Scalar,LocalOrdinal,ExecutionSpace>>::getMap_impl()
const
146 return( Teuchos::null );
149 template <
typename Scalar,
typename LocalOrdinal,
typename ExecutionSpace>
151 ConcreteMatrixAdapter<
152 KokkosSparse::CrsMatrix<Scalar,LocalOrdinal,ExecutionSpace>
153 >::getGlobalRowNNZ_impl(
154 [[maybe_unused]] global_ordinal_t row
156 TEUCHOS_TEST_FOR_EXCEPTION(
true,
158 "getGlobalRowNNZ_impl() not implemented for the Kokkos CrsMatrix adapter yet. "
159 "Please contact the Amesos2 developers." );
162 template <
typename Scalar,
typename LocalOrdinal,
typename ExecutionSpace>
164 ConcreteMatrixAdapter<
165 KokkosSparse::CrsMatrix<Scalar,LocalOrdinal,ExecutionSpace>>::getLocalRowNNZ_impl(local_ordinal_t row)
const
167 TEUCHOS_TEST_FOR_EXCEPTION(
true,
169 "getLocalRowNNZ_impl() not implemented for the Kokkos CrsMatrix adapter yet. "
170 "Please contact the Amesos2 developers." );
173 template <
typename Scalar,
typename LocalOrdinal,
typename ExecutionSpace>
175 ConcreteMatrixAdapter<
176 KokkosSparse::CrsMatrix<Scalar,LocalOrdinal,ExecutionSpace>>::getGlobalColNNZ_impl(global_ordinal_t col)
const
178 TEUCHOS_TEST_FOR_EXCEPTION(
true,
180 "Column access to row-based object not yet supported. "
181 "Please contact the Amesos2 developers." );
184 template <
typename Scalar,
typename LocalOrdinal,
typename ExecutionSpace>
186 ConcreteMatrixAdapter<
187 KokkosSparse::CrsMatrix<Scalar,LocalOrdinal,ExecutionSpace>>::getLocalColNNZ_impl(local_ordinal_t col)
const
189 TEUCHOS_TEST_FOR_EXCEPTION(
true,
191 "Column access to row-based object not yet supported. "
192 "Please contact the Amesos2 developers." );
196 template <
typename Scalar,
typename LocalOrdinal,
typename ExecutionSpace>
197 template <
typename KV_GO,
typename KV_S>
199 ConcreteMatrixAdapter<
200 KokkosSparse::CrsMatrix<Scalar,LocalOrdinal,ExecutionSpace>
201 >::getGlobalRowCopy_kokkos_view_impl(
202 [[maybe_unused]] global_ordinal_t row,
203 [[maybe_unused]] KV_GO & indices,
204 [[maybe_unused]] KV_S & vals,
205 [[maybe_unused]]
size_t& nnz
207 TEUCHOS_TEST_FOR_EXCEPTION(
true,
209 "getGlobalRowCopy_kokkos_view_impl not implemented for Kokkos CrsMatrix yet. "
210 "Please contact the Amesos2 developers." );
215 #endif // AMESOS2_KOKKOS_CRSMATRIX_MATRIXADAPTER_DEF_HPP
Specialization of the ConcreteMatrixAdapter for KokkosSparse::CrsMatrix.
EDistribution
Definition: Amesos2_TypeDecl.hpp:123