10#ifndef TPETRAEXT_POINTTOBLOCKDIAGPERMUTE_DECL_HPP
11#define TPETRAEXT_POINTTOBLOCKDIAGPERMUTE_DECL_HPP
13#include "Teuchos_ParameterList.hpp"
14#include "Teuchos_RCP.hpp"
15#include "Tpetra_CrsMatrix.hpp"
16#include "Tpetra_MultiVector.hpp"
30template <
class Scalar = ::Tpetra::Details::DefaultTypes::scalar_type,
32 class GlobalOrdinal = ::Tpetra::Details::DefaultTypes::global_ordinal_type,
33 class Node = ::Tpetra::Details::DefaultTypes::node_type>
45 int setParameters(Teuchos::ParameterList&
list);
48 Teuchos::RCP<crs_type> createCrsMatrix()
const {
return blockDiagMatrix_; }
52 Teuchos::ParameterList list_;
54 bool purelyLocalMode_;
55 bool contiguousBlockMode_;
56 int contiguousBlockSize_;
59 Teuchos::Array<int> blockStarts_;
60 Teuchos::Array<GlobalOrdinal> blockGids_;
62 Teuchos::RCP<const map_type> compatibleMap_;
63 Teuchos::RCP<crs_type> blockDiagMatrix_;
65 void cleanupBlockInfo();
66 int setupContiguousMode();
67 int extractBlockDiagonal();
Sparse matrix that presents a row-oriented interface that lets users read or modify entries.
Struct that holds views of the contents of a CrsMatrix.
Tpetra analogue of EpetraExt_PointToBlockDiagPermute.
int local_ordinal_type
Default value of Scalar template parameter.
Namespace for external Tpetra functionality.