#ifndef CONNECTIVITY_MATRIX_HPP #define CONNECTIVITY_MATRIX_HPP #include <Kokkos_Core.hpp> #include <Kokkos_StaticCrsGraph.hpp> class ConnectivityMatrix { private: typedef Kokkos::StaticCrsGraph<unsigned int, Kokkos::HostSpace> HostMatrix; HostMatrix m_host_matrix; public: KOKKOS_INLINE_FUNCTION const auto numEntries() const { return m_host_matrix.entries.extent(0); } KOKKOS_INLINE_FUNCTION const auto numRows() const { return m_host_matrix.numRows(); } KOKKOS_INLINE_FUNCTION const auto rowConst(const size_t& j) const { return m_host_matrix.rowConst(j); } KOKKOS_INLINE_FUNCTION const auto rowMap(const size_t& j) const { return m_host_matrix.row_map[j]; } KOKKOS_INLINE_FUNCTION ConnectivityMatrix(const std::vector<std::vector<unsigned int>>& initializer) : m_host_matrix(Kokkos::create_staticcrsgraph<HostMatrix>("connecticity_matrix", initializer)) { ; } [[deprecated("Must only define connectivities so that only unsigned int should be treated")]] ConnectivityMatrix(const std::vector<std::vector<unsigned short>>& initializer) : m_host_matrix(Kokkos::create_staticcrsgraph<HostMatrix>("connecticity_matrix", initializer)) { ; } ConnectivityMatrix& operator=(const ConnectivityMatrix&) = default; ConnectivityMatrix& operator=(ConnectivityMatrix&&) = default; ConnectivityMatrix() = default; ConnectivityMatrix(const ConnectivityMatrix&) = default; ConnectivityMatrix(ConnectivityMatrix&&) = default; ~ConnectivityMatrix() = default; }; #warning use right type (unsigned short) instead of a clone of ConnectivityMatrix using ConnectivityMatrixShort = ConnectivityMatrix; #endif // CONNECTIVITY_MATRIX_HPP