12 #ifndef XPETRA_MATRIXFACTORY_DECL_HPP
13 #define XPETRA_MATRIXFACTORY_DECL_HPP
17 #include "Xpetra_Matrix.hpp"
18 #include "Xpetra_CrsMatrixWrap.hpp"
20 #include "Xpetra_Map.hpp"
21 #include "Xpetra_BlockedMap.hpp"
23 #include "Xpetra_BlockedVector.hpp"
28 template <
class Scalar,
33 #undef XPETRA_MATRIXFACTORY_SHORT
43 static RCP<Matrix>
Build(
const RCP<const Map>& rowMap);
46 static RCP<Matrix>
Build(
const RCP<const Map>& rowMap,
size_t maxNumEntriesPerRow);
49 static RCP<Matrix>
Build(
const RCP<const Map>& rowMap,
const RCP<const Map>& colMap,
size_t maxNumEntriesPerRow);
52 static RCP<Matrix>
Build(
const RCP<const Map>& rowMap,
const RCP<const Map>& colMap,
const ArrayRCP<const size_t>& NumEntriesPerRowToAlloc);
55 static RCP<Matrix>
Build(
56 const Teuchos::RCP<const Map>& rowMap,
57 const Teuchos::RCP<const Map>& colMap,
59 const Teuchos::RCP<Teuchos::ParameterList>& params = null);
61 static RCP<Matrix>
Build(
63 const Teuchos::RCP<const Map>& rowMap,
64 const Teuchos::RCP<const Map>& colMap,
65 const Teuchos::RCP<const Map>& domainMap = Teuchos::null,
66 const Teuchos::RCP<const Map>& rangeMap = Teuchos::null,
67 const Teuchos::RCP<Teuchos::ParameterList>& params = null);
70 static RCP<Matrix>
Build(
const RCP<const Map>& rowMap,
const ArrayRCP<const size_t>& NumEntriesPerRowToAlloc);
73 static RCP<Matrix>
Build(
const RCP<const CrsGraph>& graph,
const RCP<ParameterList>& paramList = Teuchos::null);
76 static RCP<Matrix>
Build(
const RCP<const CrsGraph>& graph,
78 const RCP<ParameterList>& paramList = Teuchos::null);
81 static RCP<Matrix>
Build(
const RCP<const Vector>& diagonal);
84 static RCP<Matrix>
Build(
const RCP<const Matrix>& sourceMatrix,
const Import& importer,
const RCP<const Map>& domainMap = Teuchos::null,
const RCP<const Map>& rangeMap = Teuchos::null,
const Teuchos::RCP<Teuchos::ParameterList>& params = Teuchos::null);
87 static RCP<Matrix>
Build(
const RCP<const Matrix>& sourceMatrix,
const Export& exporter,
const RCP<const Map>& domainMap,
const RCP<const Map>& rangeMap,
const Teuchos::RCP<Teuchos::ParameterList>& params);
90 static RCP<Matrix>
Build(
const RCP<const Matrix>& sourceMatrix,
const Import& RowImporter,
const Import& DomainImporter,
const RCP<const Map>& domainMap,
const RCP<const Map>& rangeMap,
const Teuchos::RCP<Teuchos::ParameterList>& params);
93 static RCP<Matrix>
Build(
const RCP<const Matrix>& sourceMatrix,
const Export& RowExporter,
const Export& DomainExporter,
const RCP<const Map>& domainMap = Teuchos::null,
const RCP<const Map>& rangeMap = Teuchos::null,
const Teuchos::RCP<Teuchos::ParameterList>& params = Teuchos::null);
99 #define XPETRA_MATRIXFACTORY_SHORT
103 #define XPETRA_MATRIXFACTORY_SHORT
104 #endif // ifndef XPETRA_MATRIXFACTORY_DECL_HPP
static RCP< Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > BuildCopy(const RCP< const Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > A, bool setFixedBlockSize=true)
static RCP< Matrix > Build(const RCP< const Map > &rowMap)
KokkosSparse::CrsMatrix< impl_scalar_type, LocalOrdinal, 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...
Xpetra-specific matrix class.
MatrixFactory()
Private constructor. This is a static class.