46 #ifndef XPETRA_CRSMATRIXFACTORY_HPP
47 #define XPETRA_CRSMATRIXFACTORY_HPP
53 #ifdef HAVE_XPETRA_TPETRA
54 #include "Xpetra_TpetraCrsMatrix.hpp"
57 #ifdef HAVE_XPETRA_EPETRA
65 template <
class Scalar,
76 static RCP<CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> >
79 TEUCHOS_TEST_FOR_EXCEPTION(rowMap->lib() ==
UseEpetra, std::logic_error,
80 "Can't create Xpetra::EpetraCrsMatrix with these scalar/LO/GO types");
81 #ifdef HAVE_XPETRA_TPETRA
90 static RCP<CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> >
92 size_t maxNumEntriesPerRow,
93 const Teuchos::RCP<Teuchos::ParameterList>& plist = Teuchos::null)
97 #ifdef HAVE_XPETRA_TPETRA
107 static RCP<CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> >
109 const ArrayRCP<const size_t>& NumEntriesPerRowToAlloc,
110 const Teuchos::RCP<Teuchos::ParameterList>& plist = Teuchos::null)
112 #ifdef HAVE_XPETRA_TPETRA
122 static RCP<CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> >
125 size_t maxNumEntriesPerRow,
126 const Teuchos::RCP<Teuchos::ParameterList>& plist = Teuchos::null)
130 #ifdef HAVE_XPETRA_TPETRA
140 static RCP<CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> >
Build(
const Teuchos::RCP<
const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap,
const Teuchos::RCP<
const Map< LocalOrdinal, GlobalOrdinal, Node > > &colMap,
const ArrayRCP< const size_t > &NumEntriesPerRowToAlloc,
const Teuchos::RCP< Teuchos::ParameterList > &plist=Teuchos::null) {
143 #ifdef HAVE_XPETRA_TPETRA
156 #ifdef HAVE_XPETRA_TPETRA
157 if (graph->getRowMap()->lib() ==
UseTpetra)
166 static RCP<CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> >
Build(
171 const Teuchos::RCP<Teuchos::ParameterList>& params = Teuchos::null) {
174 #ifdef HAVE_XPETRA_TPETRA
175 if (sourceMatrix->getRowMap()->lib() ==
UseTpetra)
183 static RCP<CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> >
Build(
188 const Teuchos::RCP<Teuchos::ParameterList>& params = Teuchos::null) {
191 #ifdef HAVE_XPETRA_TPETRA
192 if (sourceMatrix->getRowMap()->lib() ==
UseTpetra)
200 static RCP<CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> >
Build(
206 const Teuchos::RCP<Teuchos::ParameterList>& params) {
209 #ifdef HAVE_XPETRA_TPETRA
210 if (sourceMatrix->getRowMap()->lib() ==
UseTpetra)
218 static RCP<CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> >
Build(
224 const Teuchos::RCP<Teuchos::ParameterList>& params) {
227 #ifdef HAVE_XPETRA_TPETRA
228 if (sourceMatrix->getRowMap()->lib() ==
UseTpetra)
236 #ifdef HAVE_XPETRA_KOKKOS_REFACTOR
237 static RCP<CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> >
Build (
241 const Teuchos::RCP<Teuchos::ParameterList>& params = null) {
244 #ifdef HAVE_XPETRA_TPETRA
252 static RCP<CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> >
Build (
254 const Teuchos::RCP<
const Map<LocalOrdinal,GlobalOrdinal,Node> >& rowMap,
255 const Teuchos::RCP<
const Map<LocalOrdinal,GlobalOrdinal,Node> >& colMap,
256 const Teuchos::RCP<
const Map<LocalOrdinal,GlobalOrdinal,Node> >& domainMap = Teuchos::null,
257 const Teuchos::RCP<
const Map<LocalOrdinal,GlobalOrdinal,Node> >& rangeMap = Teuchos::null,
258 const Teuchos::RCP<Teuchos::ParameterList>& params = null) {
261 #ifdef HAVE_XPETRA_TPETRA
263 return rcp(
new TpetraCrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>(lclMatrix, rowMap, colMap, domainMap, rangeMap, params));
274 #if (defined(HAVE_XPETRA_EPETRA) && !defined(XPETRA_EPETRA_NO_32BIT_GLOBAL_INDICES))
291 static RCP<CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> >
295 #ifdef HAVE_XPETRA_TPETRA
299 #ifdef HAVE_XPETRA_EPETRA
306 static RCP<CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> >
Build(
const RCP<
const Map<LocalOrdinal, GlobalOrdinal, Node> > &rowMap,
size_t maxNumEntriesPerRow,
const Teuchos::RCP< Teuchos::ParameterList > &plist=Teuchos::null) {
309 #ifdef HAVE_XPETRA_TPETRA
320 static RCP<CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> >
Build(
const Teuchos::RCP<
const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap,
const ArrayRCP< const size_t > &NumEntriesPerRowToAlloc,
const Teuchos::RCP< Teuchos::ParameterList > &plist=Teuchos::null) {
323 #ifdef HAVE_XPETRA_TPETRA
335 static RCP<CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> >
Build(
const Teuchos::RCP<
const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap,
const Teuchos::RCP<
const Map< LocalOrdinal, GlobalOrdinal, Node > > &colMap,
size_t maxNumEntriesPerRow,
const Teuchos::RCP< Teuchos::ParameterList > &plist=Teuchos::null) {
338 #ifdef HAVE_XPETRA_TPETRA
350 static RCP<CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> >
Build(
const Teuchos::RCP<
const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap,
const Teuchos::RCP<
const Map< LocalOrdinal, GlobalOrdinal, Node > > &colMap,
const ArrayRCP< const size_t > &NumEntriesPerRowToAlloc,
const Teuchos::RCP< Teuchos::ParameterList > &plist=Teuchos::null) {
353 #ifdef HAVE_XPETRA_TPETRA
368 #ifdef HAVE_XPETRA_TPETRA
369 if (graph->getRowMap()->lib() ==
UseTpetra)
373 if (graph->getRowMap()->lib() ==
UseEpetra)
381 static RCP<CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> >
Build(
386 const Teuchos::RCP<Teuchos::ParameterList>& params = Teuchos::null) {
389 #ifdef HAVE_XPETRA_TPETRA
390 if (sourceMatrix->getRowMap()->lib() ==
UseTpetra)
394 if (sourceMatrix->getRowMap()->lib() ==
UseEpetra)
401 static RCP<CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> >
Build(
406 const Teuchos::RCP<Teuchos::ParameterList>& params = Teuchos::null) {
409 #ifdef HAVE_XPETRA_TPETRA
410 if (sourceMatrix->getRowMap()->lib() ==
UseTpetra)
414 if (sourceMatrix->getRowMap()->lib() ==
UseEpetra)
421 static RCP<CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> >
Build(
427 const Teuchos::RCP<Teuchos::ParameterList>& params) {
430 #ifdef HAVE_XPETRA_TPETRA
431 if (sourceMatrix->getRowMap()->lib() ==
UseTpetra)
435 if (sourceMatrix->getRowMap()->lib() ==
UseEpetra)
442 static RCP<CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> >
Build(
448 const Teuchos::RCP<Teuchos::ParameterList>& params) {
451 #ifdef HAVE_XPETRA_TPETRA
452 if (sourceMatrix->getRowMap()->lib() ==
UseTpetra)
456 if (sourceMatrix->getRowMap()->lib() ==
UseEpetra)
463 #ifdef HAVE_XPETRA_KOKKOS_REFACTOR
464 static RCP<CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> >
Build (
468 const Teuchos::RCP<Teuchos::ParameterList>& params = null) {
471 #ifdef HAVE_XPETRA_TPETRA
481 static RCP<CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> >
Build (
483 const Teuchos::RCP<
const Map<LocalOrdinal,GlobalOrdinal,Node> >& rowMap,
484 const Teuchos::RCP<
const Map<LocalOrdinal,GlobalOrdinal,Node> >& colMap,
485 const Teuchos::RCP<
const Map<LocalOrdinal,GlobalOrdinal,Node> >& domainMap = Teuchos::null,
486 const Teuchos::RCP<
const Map<LocalOrdinal,GlobalOrdinal,Node> >& rangeMap = Teuchos::null,
487 const Teuchos::RCP<Teuchos::ParameterList>& params = null) {
490 #ifdef HAVE_XPETRA_TPETRA
492 return rcp(
new TpetraCrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>(lclMatrix, rowMap, colMap, domainMap, rangeMap, params));
496 return rcp(
new EpetraCrsMatrixT<int,Node>(lclMatrix, rowMap, colMap, domainMap, rangeMap, params) );
506 #if (defined(HAVE_XPETRA_EPETRA) && !defined(XPETRA_EPETRA_NO_64BIT_GLOBAL_INDICES))
521 static RCP<CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> >
525 #ifdef HAVE_XPETRA_TPETRA
529 #ifdef HAVE_XPETRA_EPETRA
536 static RCP<CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> >
Build(
const RCP<
const Map<LocalOrdinal, GlobalOrdinal, Node> > &rowMap,
size_t maxNumEntriesPerRow,
const Teuchos::RCP< Teuchos::ParameterList > &plist=Teuchos::null) {
539 #ifdef HAVE_XPETRA_TPETRA
550 static RCP<CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> >
Build(
const Teuchos::RCP<
const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap,
const ArrayRCP< const size_t > &NumEntriesPerRowToAlloc,
const Teuchos::RCP< Teuchos::ParameterList > &plist=Teuchos::null) {
553 #ifdef HAVE_XPETRA_TPETRA
565 static RCP<CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> >
Build(
const Teuchos::RCP<
const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap,
const Teuchos::RCP<
const Map< LocalOrdinal, GlobalOrdinal, Node > > &colMap,
size_t maxNumEntriesPerRow,
const Teuchos::RCP< Teuchos::ParameterList > &plist=Teuchos::null) {
568 #ifdef HAVE_XPETRA_TPETRA
580 static RCP<CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> >
Build(
const Teuchos::RCP<
const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap,
const Teuchos::RCP<
const Map< LocalOrdinal, GlobalOrdinal, Node > > &colMap,
const ArrayRCP< const size_t > &NumEntriesPerRowToAlloc,
const Teuchos::RCP< Teuchos::ParameterList > &plist=Teuchos::null) {
583 #ifdef HAVE_XPETRA_TPETRA
598 #ifdef HAVE_XPETRA_TPETRA
599 if (graph->getRowMap()->lib() ==
UseTpetra)
603 if (graph->getRowMap()->lib() ==
UseEpetra)
611 static RCP<CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> >
Build(
616 const Teuchos::RCP<Teuchos::ParameterList>& params = Teuchos::null) {
619 #ifdef HAVE_XPETRA_TPETRA
620 if (sourceMatrix->getRowMap()->lib() ==
UseTpetra)
624 if (sourceMatrix->getRowMap()->lib() ==
UseEpetra)
631 static RCP<CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> >
Build(
636 const Teuchos::RCP<Teuchos::ParameterList>& params = Teuchos::null) {
639 #ifdef HAVE_XPETRA_TPETRA
640 if (sourceMatrix->getRowMap()->lib() ==
UseTpetra)
644 if (sourceMatrix->getRowMap()->lib() ==
UseEpetra)
651 static RCP<CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> >
Build(
657 const Teuchos::RCP<Teuchos::ParameterList>& params) {
660 #ifdef HAVE_XPETRA_TPETRA
661 if (sourceMatrix->getRowMap()->lib() ==
UseTpetra)
665 if (sourceMatrix->getRowMap()->lib() ==
UseEpetra)
672 static RCP<CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> >
Build(
678 const Teuchos::RCP<Teuchos::ParameterList>& params) {
681 #ifdef HAVE_XPETRA_TPETRA
682 if (sourceMatrix->getRowMap()->lib() ==
UseTpetra)
686 if (sourceMatrix->getRowMap()->lib() ==
UseEpetra)
692 #ifdef HAVE_XPETRA_KOKKOS_REFACTOR
693 static RCP<CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> >
Build (
697 const Teuchos::RCP<Teuchos::ParameterList>& params = null) {
700 #ifdef HAVE_XPETRA_TPETRA
710 static RCP<CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> >
Build (
712 const Teuchos::RCP<
const Map<LocalOrdinal,GlobalOrdinal,Node> >& rowMap,
713 const Teuchos::RCP<
const Map<LocalOrdinal,GlobalOrdinal,Node> >& colMap,
714 const Teuchos::RCP<
const Map<LocalOrdinal,GlobalOrdinal,Node> >& domainMap = Teuchos::null,
715 const Teuchos::RCP<
const Map<LocalOrdinal,GlobalOrdinal,Node> >& rangeMap = Teuchos::null,
716 const Teuchos::RCP<Teuchos::ParameterList>& params = null) {
719 #ifdef HAVE_XPETRA_TPETRA
721 return rcp(
new TpetraCrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>(lclMatrix, rowMap, colMap, domainMap, rangeMap, params));
725 return rcp(
new EpetraCrsMatrixT<long long, Node>(lclMatrix, rowMap, colMap, domainMap, rangeMap, params) );
736 #define XPETRA_CRSMATRIXFACTORY_SHORT
static RCP< CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > Build(const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap, size_t maxNumEntriesPerRow, const Teuchos::RCP< Teuchos::ParameterList > &plist=Teuchos::null)
static RCP< CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > Build(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap, const ArrayRCP< const size_t > &NumEntriesPerRowToAlloc, const Teuchos::RCP< Teuchos::ParameterList > &plist=Teuchos::null)
static RCP< CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > Build(const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap)
Constructor for empty matrix (intended use is an import/export target - can't insert entries directly...
static RCP< CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > Build(const Teuchos::RCP< const CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &sourceMatrix, const Export< LocalOrdinal, GlobalOrdinal, Node > &exporter, const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &domainMap=Teuchos::null, const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rangeMap=Teuchos::null, const Teuchos::RCP< Teuchos::ParameterList > ¶ms=Teuchos::null)
Constructor using FusedExport.
static RCP< CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > Build(const Teuchos::RCP< const CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &sourceMatrix, const Import< LocalOrdinal, GlobalOrdinal, Node > &importer, const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &domainMap=Teuchos::null, const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rangeMap=Teuchos::null, const Teuchos::RCP< Teuchos::ParameterList > ¶ms=Teuchos::null)
static RCP< CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > Build(const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap)
Constructor for empty matrix (intended use is an import/export target - can't insert entries directly...
static RCP< CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > Build(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &colMap, const ArrayRCP< const size_t > &NumEntriesPerRowToAlloc, const Teuchos::RCP< Teuchos::ParameterList > &plist=Teuchos::null)
Constructor specifying column Map and number of entries in each row.
static RCP< CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > Build(const Teuchos::RCP< const CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &sourceMatrix, const Import< LocalOrdinal, GlobalOrdinal, Node > &importer, const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &domainMap=Teuchos::null, const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rangeMap=Teuchos::null, const Teuchos::RCP< Teuchos::ParameterList > ¶ms=Teuchos::null)
Constructor using FusedImport.
static RCP< CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > Build(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &colMap, const ArrayRCP< const size_t > &NumEntriesPerRowToAlloc, const Teuchos::RCP< Teuchos::ParameterList > &plist=Teuchos::null)
Constructor specifying column Map and number of entries in each row.
static RCP< CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > Build(const Teuchos::RCP< const CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &sourceMatrix, const Import< LocalOrdinal, GlobalOrdinal, Node > &RowImporter, const RCP< const Import< LocalOrdinal, GlobalOrdinal, Node > > DomainImporter, const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &domainMap, const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rangeMap, const Teuchos::RCP< Teuchos::ParameterList > ¶ms)
Constructor using FusedImport.
#define XPETRA_FACTORY_ERROR_IF_EPETRA(lib)
static RCP< CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > Build(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap, const ArrayRCP< const size_t > &NumEntriesPerRowToAlloc, const Teuchos::RCP< Teuchos::ParameterList > &plist=Teuchos::null)
Constructor specifying (possibly different) number of entries in each row.
static RCP< CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > Build(const Teuchos::RCP< const CrsGraph< LocalOrdinal, GlobalOrdinal, Node > > &graph, const Teuchos::RCP< Teuchos::ParameterList > &plist=Teuchos::null)
Constructor specifying a previously constructed graph.
CrsMatrixFactory()
Private constructor. This is a static class.
static RCP< CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > Build(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &colMap, size_t maxNumEntriesPerRow, const Teuchos::RCP< Teuchos::ParameterList > &plist=Teuchos::null)
Constructor specifying column Map and fixed number of entries for each row.
CrsMatrixFactory()
Private constructor. This is a static class.
static RCP< CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > Build(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap, const ArrayRCP< const size_t > &NumEntriesPerRowToAlloc, const Teuchos::RCP< Teuchos::ParameterList > &plist=Teuchos::null)
CrsMatrixFactory()
Private constructor. This is a static class.
static RCP< CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > Build(const Teuchos::RCP< const CrsGraph< LocalOrdinal, GlobalOrdinal, Node > > &graph, const Teuchos::RCP< Teuchos::ParameterList > &plist=Teuchos::null)
Constructor specifying a previously constructed graph.
static RCP< CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > Build(const Teuchos::RCP< const CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &sourceMatrix, const Export< LocalOrdinal, GlobalOrdinal, Node > &exporter, const RCP< Map< LocalOrdinal, GlobalOrdinal, Scalar > > &domainMap=Teuchos::null, const RCP< Map< LocalOrdinal, GlobalOrdinal, Scalar > > &rangeMap=Teuchos::null, const Teuchos::RCP< Teuchos::ParameterList > ¶ms=Teuchos::null)
#define XPETRA_FACTORY_END
static RCP< CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > Build(const Teuchos::RCP< const CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &sourceMatrix, const Import< LocalOrdinal, GlobalOrdinal, Node > &RowImporter, const RCP< const Import< LocalOrdinal, GlobalOrdinal, Node > > DomainImporter, const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &domainMap, const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rangeMap, const Teuchos::RCP< Teuchos::ParameterList > ¶ms)
static RCP< CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > Build(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &colMap, const ArrayRCP< const size_t > &NumEntriesPerRowToAlloc, const Teuchos::RCP< Teuchos::ParameterList > &plist=Teuchos::null)
Constructor specifying column Map and number of entries in each row.
static RCP< CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > Build(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &colMap, size_t maxNumEntriesPerRow, const Teuchos::RCP< Teuchos::ParameterList > &plist=Teuchos::null)
Constructor specifying column Map and fixed number of entries for each row.
static RCP< CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > Build(const Teuchos::RCP< const CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &sourceMatrix, const Export< LocalOrdinal, GlobalOrdinal, Node > &RowExporter, const RCP< const Export< LocalOrdinal, GlobalOrdinal, Node > > DomainExporter, const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &domainMap, const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rangeMap, const Teuchos::RCP< Teuchos::ParameterList > ¶ms)
Constructor using FusedExport.
static RCP< CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > Build(const Teuchos::RCP< const CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &sourceMatrix, const Import< LocalOrdinal, GlobalOrdinal, Node > &importer, const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &domainMap=Teuchos::null, const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rangeMap=Teuchos::null, const Teuchos::RCP< Teuchos::ParameterList > ¶ms=Teuchos::null)
Constructor using FusedImport.
static RCP< CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > Build(const Teuchos::RCP< const CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &sourceMatrix, const Import< LocalOrdinal, GlobalOrdinal, Node > &RowImporter, const RCP< const Import< LocalOrdinal, GlobalOrdinal, Node > > DomainImporter, const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &domainMap, const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rangeMap, const Teuchos::RCP< Teuchos::ParameterList > ¶ms)
Constructor using FusedImport.
static RCP< CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > Build(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &colMap, size_t maxNumEntriesPerRow, const Teuchos::RCP< Teuchos::ParameterList > &plist=Teuchos::null)
Constructor specifying column Map and fixed number of entries for each row.
static RCP< CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > Build(const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap, size_t maxNumEntriesPerRow, const Teuchos::RCP< Teuchos::ParameterList > &plist=Teuchos::null)
Constructor specifying fixed number of entries for each row.
static RCP< CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > Build(const Teuchos::RCP< const CrsGraph< LocalOrdinal, GlobalOrdinal, Node > > &graph, const Teuchos::RCP< Teuchos::ParameterList > &plist=Teuchos::null)
Constructor specifying a previously constructed graph.
static RCP< CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > Build(const Teuchos::RCP< const CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &sourceMatrix, const Export< LocalOrdinal, GlobalOrdinal, Node > &RowExporter, const RCP< const Export< LocalOrdinal, GlobalOrdinal, Node > > DomainExporter, const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &domainMap, const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rangeMap, const Teuchos::RCP< Teuchos::ParameterList > ¶ms)
Constructor using FusedExport.
#define XPETRA_MONITOR(funcName)
static RCP< CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > Build(const Teuchos::RCP< const CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &sourceMatrix, const Export< LocalOrdinal, GlobalOrdinal, Node > &exporter, const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &domainMap=Teuchos::null, const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rangeMap=Teuchos::null, const Teuchos::RCP< Teuchos::ParameterList > ¶ms=Teuchos::null)
Constructor using FusedExport.
static RCP< CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > Build(const Teuchos::RCP< const CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &sourceMatrix, const Export< LocalOrdinal, GlobalOrdinal, Node > &RowExporter, const RCP< const Export< LocalOrdinal, GlobalOrdinal, Node > > DomainExporter, const RCP< Map< LocalOrdinal, GlobalOrdinal, Scalar > > &domainMap, const RCP< Map< LocalOrdinal, GlobalOrdinal, Scalar > > &rangeMap, const Teuchos::RCP< Teuchos::ParameterList > ¶ms)
static RCP< CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > Build(const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap, size_t maxNumEntriesPerRow, const Teuchos::RCP< Teuchos::ParameterList > &plist=Teuchos::null)
static RCP< CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > Build(const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap)
Constructor for empty matrix (intended use is an import/export target - can't insert entries directly...