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>;
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_;
Declaration of the Tpetra::CrsMatrix class.
typename device_type::execution_space execution_space
The Kokkos execution space.
CrsGraph< LocalOrdinal, GlobalOrdinal, Node > crs_graph_type
The CrsGraph specialization suitable for this CrsMatrix specialization.
Node node_type
This class' Kokkos Node type.
GlobalOrdinal global_ordinal_type
The type of each global index in the matrix.
KokkosSparse::CrsMatrix< impl_scalar_type, local_ordinal_type, execution_space, void, typename local_graph_type::size_type > local_matrix_type
The specialization of Kokkos::CrsMatrix that represents the part of the sparse matrix on each MPI pro...
typename crs_graph_type::local_graph_type local_graph_type
The part of the sparse matrix's graph on each MPI process.
typename Kokkos::ArithTraits< Scalar >::val_type impl_scalar_type
The type used internally in place of Scalar.
Map< LocalOrdinal, GlobalOrdinal, Node > map_type
The Map specialization suitable for this CrsMatrix specialization.
typename Node::device_type device_type
The Kokkos device type.
Scalar scalar_type
The type of each entry in the matrix.
LocalOrdinal local_ordinal_type
The type of each local index in the matrix.
Export< LocalOrdinal, GlobalOrdinal, Node > export_type
The Export specialization suitable for this CrsMatrix specialization.
typename Kokkos::ArithTraits< impl_scalar_type >::mag_type mag_type
Type of a norm result.
CrsMatrix(const CrsMatrix< ::Tpetra::Details::DefaultTypes::scalar_type, ::Tpetra::Details::DefaultTypes::local_ordinal_type, ::Tpetra::Details::DefaultTypes::global_ordinal_type, ::Tpetra::Details::DefaultTypes::node_type > &)=default
Copy constructor.
Import< LocalOrdinal, GlobalOrdinal, Node > import_type
The Import specialization suitable for this CrsMatrix specialization.
int local_ordinal_type
Default value of Scalar template parameter.
::Kokkos::Compat::KokkosDeviceWrapperNode< execution_space > node_type
Default value of Node template parameter.
Namespace Tpetra contains the class and methods constituting the Tpetra library.
CombineMode
Rule for combining data in an Import or Export.
@ ADD
Sum new values into existing values.