41 #ifndef TPETRA_FECRSMATRIX_DECL_HPP
42 #define TPETRA_FECRSMATRIX_DECL_HPP
54 #include "Tpetra_FECrsGraph.hpp"
63 template<
class Scalar = ::Tpetra::Details::DefaultTypes::scalar_type,
65 class GlobalOrdinal = ::Tpetra::Details::DefaultTypes::global_ordinal_type,
68 public CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>
70 friend class CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>;
77 typedef typename CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>::scalar_type scalar_type;
88 typedef typename CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>::impl_scalar_type impl_scalar_type;
91 typedef typename CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>::local_ordinal_type
local_ordinal_type;
94 typedef typename CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>::global_ordinal_type global_ordinal_type;
97 typedef typename CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>::node_type
node_type;
100 typedef typename CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>::device_type device_type;
103 typedef typename CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>::execution_space execution_space;
110 typedef typename CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>::mag_type mag_type;
113 typedef typename CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>::map_type map_type;
116 typedef typename CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>::import_type import_type;
119 typedef typename CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>::export_type export_type;
122 typedef typename CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>::crs_graph_type crs_graph_type;
125 typedef typename CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>::local_graph_type local_graph_type;
129 typedef typename CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>::local_matrix_type local_matrix_type;
132 typedef CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> crs_matrix_type;
135 typedef FECrsGraph<LocalOrdinal, GlobalOrdinal, Node> fe_crs_graph_type;
166 explicit FECrsMatrix (
const Teuchos::RCP<const fe_crs_graph_type>& graph,
167 const Teuchos::RCP<Teuchos::ParameterList>& params = Teuchos::null);
170 FECrsMatrix (
const FECrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>&) =
delete;
173 FECrsMatrix (FECrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>&&) =
delete;
177 operator= (
const FECrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>&) =
delete;
180 operator= (FECrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>&&) =
delete;
191 virtual ~FECrsMatrix () =
default;
224 void globalAssemble () {endFill();}
243 void switchActiveCrsMatrix();
251 FE_ACTIVE_OWNED_PLUS_SHARED
255 Teuchos::RCP<const FECrsGraph<LocalOrdinal, GlobalOrdinal, Node> > feGraph_;
258 Teuchos::RCP<CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> > inactiveCrsMatrix_;
260 Teuchos::RCP<FEWhichActive> activeCrsMatrix_;
270 #endif // TPETRA_FECRSMATRIX_DECL_HPP
Declaration of the Tpetra::CrsMatrix class.
int local_ordinal_type
Default value of Scalar template parameter.
CombineMode
Rule for combining data in an Import or Export.
Sum new values into existing values.
::Kokkos::Compat::KokkosDeviceWrapperNode< execution_space > node_type
Default value of Node template parameter.
CrsMatrix(const Teuchos::RCP< const map_type > &rowMap, const size_t maxNumEntriesPerRow, const ProfileType pftype=TPETRA_DEFAULT_PROFILE_TYPE, const Teuchos::RCP< Teuchos::ParameterList > ¶ms=Teuchos::null)
Constructor specifying fixed number of entries for each row.