10 #ifndef XPETRA_MULTIVECTORFACTORY_DECL_HPP
11 #define XPETRA_MULTIVECTORFACTORY_DECL_HPP
16 #ifdef HAVE_XPETRA_TPETRA
17 #include "Xpetra_TpetraMultiVector.hpp"
20 #ifdef HAVE_XPETRA_EPETRA
46 template <
class Scalar,
49 class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
57 static Teuchos::RCP<MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
61 static Teuchos::RCP<MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
63 const Teuchos::ArrayView<
const Teuchos::ArrayView<const Scalar>> &ArrayOfPtrs,
66 static Teuchos::RCP<MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
68 Teuchos::DataAccess copyOrView);
72 #if defined(HAVE_XPETRA_EPETRA)
74 #if !defined(XPETRA_EPETRA_NO_32BIT_GLOBAL_INDICES)
91 static RCP<MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
95 static Teuchos::RCP<MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
97 const Teuchos::ArrayView<
const Teuchos::ArrayView<const Scalar>> &ArrayOfPtrs,
100 static Teuchos::RCP<MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
102 Teuchos::DataAccess copyOrView);
117 static RCP<MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
121 static Teuchos::RCP<MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
123 const Teuchos::ArrayView<
const Teuchos::ArrayView<const Scalar>> &ArrayOfPtrs,
126 static Teuchos::RCP<MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
128 Teuchos::DataAccess copyOrView);
132 #if !defined(XPETRA_EPETRA_NO_64BIT_GLOBAL_INDICES)
146 static RCP<MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
149 bool zeroOut =
true);
152 static Teuchos::RCP<MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
154 const Teuchos::ArrayView<
const Teuchos::ArrayView<const Scalar>> &ArrayOfPtrs,
157 static Teuchos::RCP<MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
159 Teuchos::DataAccess copyOrView);
174 static RCP<MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
177 bool zeroOut =
true);
180 static Teuchos::RCP<MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
182 const Teuchos::ArrayView<
const Teuchos::ArrayView<const Scalar>> &ArrayOfPtrs,
185 static Teuchos::RCP<MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
187 Teuchos::DataAccess copyOrView);
190 #endif // END !defined(XPETRA_EPETRA_NO_64BIT_GLOBAL_INDICES)
192 #endif // END !defined(XPETRA_EPETRA_NO_32BIT_GLOBAL_INDICES)
194 #endif // END HAVE_XPETRA_EPETRA
198 #define XPETRA_MULTIVECTORFACTORY_SHORT
static Teuchos::RCP< MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > > Build(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node >> &map, size_t NumVectors, bool zeroOut=true)
Constructor specifying the number of non-zeros for all rows.
Factory for any type of Xpetra::MultiVector and its derived classes.
MultiVectorFactory()
Private constructor. This is a static class.
Tpetra::KokkosCompat::KokkosSerialWrapperNode EpetraNode