Amesos2 - Direct Sparse Solver Interfaces Version of the Day
Amesos2::ConcreteMatrixAdapter< KokkosSparse::CrsMatrix< Scalar, LocalOrdinal, ExecutionSpace > > Class Template Reference

MatrixAdapter definitions for KokkosSparse::CrsMatrix objects. More...

#include <Amesos2_KokkosCrsMatrix_MatrixAdapter_decl.hpp>

Inheritance diagram for Amesos2::ConcreteMatrixAdapter< KokkosSparse::CrsMatrix< Scalar, LocalOrdinal, ExecutionSpace > >:
Collaboration diagram for Amesos2::ConcreteMatrixAdapter< KokkosSparse::CrsMatrix< Scalar, LocalOrdinal, ExecutionSpace > >:

Public Types

typedef KokkosSparse::CrsMatrix< Scalar, LocalOrdinal, ExecutionSpace > matrix_t
typedef MatrixTraits< matrix_t >::scalar_t scalar_t
typedef MatrixTraits< matrix_t >::local_ordinal_t local_ordinal_t
typedef MatrixTraits< matrix_t >::global_ordinal_t global_ordinal_t
typedef MatrixTraits< matrix_t >::node_t node_t
typedef MatrixTraits< matrix_t >::global_size_t global_size_t
typedef Tpetra::Map< local_ordinal_t, global_ordinal_t, node_t > map_t
typedef no_special_impl get_crs_spec
typedef no_special_impl get_ccs_spec
typedef ConcreteMatrixAdapter< matrix_t > type
typedef MatrixTraits< matrix_t >::major_access major_access
typedef ConcreteMatrixAdapter< KokkosSparse::CrsMatrix< Scalar, LocalOrdinal, ExecutionSpace > > adapter_t
typedef MatrixTraits< KokkosSparse::CrsMatrix< Scalar, LocalOrdinal, ExecutionSpace > >::global_host_idx_type global_host_idx_t
typedef MatrixTraits< KokkosSparse::CrsMatrix< Scalar, LocalOrdinal, ExecutionSpace > >::global_host_val_type global_host_val_t

Public Member Functions

 ConcreteMatrixAdapter (Teuchos::RCP< matrix_t > m)
Teuchos::RCP< const MatrixAdapter< matrix_t > > get_impl (const Teuchos::Ptr< const map_t > map, EDistribution distribution=ROOTED) const
Teuchos::RCP< const MatrixAdapter< matrix_t > > reindex_impl (Teuchos::RCP< const map_t > &contigRowMap, Teuchos::RCP< const map_t > &contigColMap, const EPhase current_phase) const
const Teuchos::RCP< const Teuchos::Comm< int > > getComm_impl () const
global_size_t getGlobalNumRows_impl () const
global_size_t getGlobalNumCols_impl () const
global_size_t getGlobalNNZ_impl () const
template<class KV>
void getSparseRowPtr_kokkos_view (KV &view) const
template<class KV>
void getSparseColInd_kokkos_view (KV &view) const
template<class KV>
void getSparseValues_kokkos_view (KV &view) const
size_t getGlobalRowNNZ_impl (global_ordinal_t row) const
size_t getLocalRowNNZ_impl (local_ordinal_t row) const
size_t getGlobalColNNZ_impl (global_ordinal_t col) const
size_t getLocalColNNZ_impl (local_ordinal_t col) const
global_size_t getRowIndexBase () const
global_size_t getColumnIndexBase () const
const Teuchos::RCP< const map_t > getMap_impl () const
const Teuchos::RCP< const map_t > getRowMap_impl () const
const Teuchos::RCP< const map_t > getColMap_impl () const
void getGlobalRowCopy_impl (global_ordinal_t row, const Teuchos::ArrayView< global_ordinal_t > &indices, const Teuchos::ArrayView< scalar_t > &vals, size_t &nnz) const
void getGlobalColCopy_impl (global_ordinal_t col, const Teuchos::ArrayView< global_ordinal_t > &indices, const Teuchos::ArrayView< scalar_t > &vals, size_t &nnz) const
template<typename KV_GO, typename KV_S>
void getGlobalRowCopy_kokkos_view_impl (global_ordinal_t row, KV_GO &indices, KV_S &vals, size_t &nnz) const
template<typename KV_S, typename KV_GO, typename KV_GS, typename host_ordinal_type_array, typename host_scalar_type_array>
LocalOrdinal gather_impl (KV_S &nzvals, KV_GO &indices, KV_GS &pointers, host_ordinal_type_array &perm_g2l, host_ordinal_type_array &recvCountRows, host_ordinal_type_array &recvDisplRows, host_ordinal_type_array &recvCounts, host_ordinal_type_array &recvDispls, host_ordinal_type_array &transpose_map, host_scalar_type_array &nzvals_t, bool column_major, EPhase current_phase) const
void getCrs_kokkos_view (KV_S &nzval, KV_GO &colind, KV_GS &rowptr, typename MatrixAdapter< KokkosSparse::CrsMatrix< Scalar, LocalOrdinal, ExecutionSpace > >::global_size_t &nnz, const Teuchos::Ptr< const map_t > rowmap, EStorage_Ordering ordering, EDistribution distribution) const
void getCrs_kokkos_view (KV_S &nzval, KV_GO &colind, KV_GS &rowptr, typename MatrixAdapter< KokkosSparse::CrsMatrix< Scalar, LocalOrdinal, ExecutionSpace > >::global_size_t &nnz, EDistribution distribution, EStorage_Ordering ordering) const
void getCcs_kokkos_view (KV_S &nzval, KV_GO &rowind, KV_GS &colptr, typename MatrixAdapter< KokkosSparse::CrsMatrix< Scalar, LocalOrdinal, ExecutionSpace > >::global_size_t &nnz, const Teuchos::Ptr< const map_t > colmap, EStorage_Ordering ordering, EDistribution distribution) const
void getCcs_kokkos_view (KV_S &nzval, KV_GO &rowind, KV_GS &colptr, typename MatrixAdapter< KokkosSparse::CrsMatrix< Scalar, LocalOrdinal, ExecutionSpace > >::global_size_t &nnz, EDistribution distribution, EStorage_Ordering ordering) const
void help_getCrs_kokkos_view (KV_S &nzval, KV_GO &colind, KV_GS &rowptr, typename MatrixAdapter< KokkosSparse::CrsMatrix< Scalar, LocalOrdinal, ExecutionSpace > >::global_size_t &nnz, const Teuchos::Ptr< const map_t > rowmap, EDistribution distribution, EStorage_Ordering ordering, no_special_impl nsi) const
void do_getCrs_kokkos_view (KV_S &nzval, KV_GO &colind, KV_GS &rowptr, typename MatrixAdapter< KokkosSparse::CrsMatrix< Scalar, LocalOrdinal, ExecutionSpace > >::global_size_t &nnz, const Teuchos::Ptr< const map_t > rowmap, EDistribution distribution, EStorage_Ordering ordering, row_access ra) const
void help_getCcs_kokkos_view (KV_S &nzval, KV_GO &rowind, KV_GS &colptr, typename MatrixAdapter< KokkosSparse::CrsMatrix< Scalar, LocalOrdinal, ExecutionSpace > >::global_size_t &nnz, const Teuchos::Ptr< const map_t > colmap, EDistribution distribution, EStorage_Ordering ordering, no_special_impl nsi) const
void do_getCcs_kokkos_view (KV_S &nzval, KV_GO &rowind, KV_GS &colptr, typename MatrixAdapter< KokkosSparse::CrsMatrix< Scalar, LocalOrdinal, ExecutionSpace > >::global_size_t &nnz, const Teuchos::Ptr< const map_t > colmap, EDistribution distribution, EStorage_Ordering ordering, row_access ra) const
const Teuchos::RCP< const Teuchos::Comm< int > > getComm () const
 Returns the Teuchos::Comm object associated with this matrix.
global_size_t getGlobalNumRows () const
 Get the number of rows in this matrix.
global_size_t getGlobalNumCols () const
 Get the number of columns in this matrix.
global_size_t getGlobalNNZ () const
 Get the global number of non-zeros in this sparse matrix.
size_t getLocalNumRows () const
 Get the number of rows local to the calling process.
size_t getLocalNumCols () const
 Get the number of columns local to the calling process.
size_t getLocalNNZ () const
 Get the local number of non-zeros on this processor.
Teuchos::RCP< const map_t > getMap () const
Teuchos::RCP< const map_t > getRowMap () const
Teuchos::RCP< const map_t > getColMap () const
Teuchos::RCP< const type > get (const Teuchos::Ptr< const map_t > map, EDistribution distribution=ROOTED) const
Teuchos::RCP< const type > reindex (Teuchos::RCP< const map_t > &contigRowMap, Teuchos::RCP< const map_t > &contigColMap, const EPhase current_phase) const
local_ordinal_t gather (KV_S &nzvals, KV_GO &indices, KV_GS &pointers, host_ordinal_type_array &perm_g2l, host_ordinal_type_array &recvCountRows, host_ordinal_type_array &recvDisplRows, host_ordinal_type_array &recvCounts, host_ordinal_type_array &recvDispls, host_ordinal_type_array &transpose_map, host_scalar_type_array &nzvals_t, bool column_major, EPhase current_phase) const
 Gather matrix to MPI-0.
std::string description () const
 Returns a short description of this Solver.
void describe (Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel=Teuchos::Describable::verbLevel_default) const
 Describes of this matrix adapter with some level of verbosity.
void returnRowPtr_kokkos_view (KV &view) const
 Return kokkos view of CRS row pointer of matrixA_.
void returnColInd_kokkos_view (KV &view) const
 Return kokkos view of CRS column indices of matrixA_.
void returnValues_kokkos_view (KV &view) const
 Return kokkos view of CRS values of matrixA_.

Protected Member Functions

void getGlobalRowCopy_kokkos_view (global_ordinal_t row, KV_GO &indices, KV_S &vals, size_t &nnz) const
size_t getMaxRowNNZ () const
size_t getMaxColNNZ () const
size_t getGlobalRowNNZ (global_ordinal_t row) const
size_t getLocalRowNNZ (local_ordinal_t row) const
size_t getGlobalColNNZ (global_ordinal_t col) const
size_t getLocalColNNZ (local_ordinal_t col) const
bool isLocallyIndexed () const
bool isGloballyIndexed () const

Protected Attributes

const Teuchos::RCP< const KokkosSparse::CrsMatrix< Scalar, LocalOrdinal, ExecutionSpace > > mat_
Teuchos::RCP< const Tpetra::Map< local_ordinal_t, global_ordinal_t, node_t > > row_map_
Teuchos::RCP< const Tpetra::Map< local_ordinal_t, global_ordinal_t, node_t > > col_map_
Teuchos::RCP< const Teuchos::Comm< int > > comm_

Detailed Description

template<typename Scalar, typename LocalOrdinal, typename ExecutionSpace>
class Amesos2::ConcreteMatrixAdapter< KokkosSparse::CrsMatrix< Scalar, LocalOrdinal, ExecutionSpace > >

MatrixAdapter definitions for KokkosSparse::CrsMatrix objects.

All other significant functionality is inherited from this class's superclass.

Member Function Documentation

◆ reindex()

Teuchos::RCP< const MatrixAdapter< KokkosSparse::CrsMatrix< Scalar, LocalOrdinal, ExecutionSpace > > > Amesos2::MatrixAdapter< KokkosSparse::CrsMatrix< Scalar, LocalOrdinal, ExecutionSpace > >::reindex ( Teuchos::RCP< const map_t > & contigRowMap,
Teuchos::RCP< const map_t > & contigColMap,
const EPhase current_phase ) const
inherited

Reindex the GIDs such that they are contiguous without gaps (0, .., n-1) This is called in loadA for the matrix with (DISTRIBUTED_NO_OVERLAP && !is_contiguous_)

◆ getGlobalRowCopy_kokkos_view()

void Amesos2::MatrixAdapter< KokkosSparse::CrsMatrix< Scalar, LocalOrdinal, ExecutionSpace > >::getGlobalRowCopy_kokkos_view ( global_ordinal_t row,
KV_GO & indices,
KV_S & vals,
size_t & nnz ) const
protectedinherited
Parameters
[out]rowthe global matrix row
[out]indicesglobal column indices
[out]valsthe non-zero values in row row
[out]nnzthe number of nonzeros extracted from row row

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