46 #ifndef XPETRA_MULTIVECTORFACTORY_DECL_HPP
47 #define XPETRA_MULTIVECTORFACTORY_DECL_HPP
52 #ifdef HAVE_XPETRA_TPETRA
53 #include "Xpetra_TpetraMultiVector.hpp"
56 #ifdef HAVE_XPETRA_EPETRA
82 template <
class Scalar,
85 class Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
93 static Teuchos::RCP<MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
97 static Teuchos::RCP<MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
99 const Teuchos::ArrayView<
const Teuchos::ArrayView<const Scalar>> &ArrayOfPtrs,
102 static Teuchos::RCP<MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
104 Teuchos::DataAccess copyOrView);
108 #if defined(HAVE_XPETRA_EPETRA)
110 #if !defined(XPETRA_EPETRA_NO_32BIT_GLOBAL_INDICES)
127 static RCP<MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
131 static Teuchos::RCP<MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
133 const Teuchos::ArrayView<
const Teuchos::ArrayView<const Scalar>> &ArrayOfPtrs,
136 static Teuchos::RCP<MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
138 Teuchos::DataAccess copyOrView);
153 static RCP<MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
157 static Teuchos::RCP<MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
159 const Teuchos::ArrayView<
const Teuchos::ArrayView<const Scalar>> &ArrayOfPtrs,
162 static Teuchos::RCP<MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
164 Teuchos::DataAccess copyOrView);
168 #if !defined(XPETRA_EPETRA_NO_64BIT_GLOBAL_INDICES)
182 static RCP<MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
185 bool zeroOut =
true);
188 static Teuchos::RCP<MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
190 const Teuchos::ArrayView<
const Teuchos::ArrayView<const Scalar>> &ArrayOfPtrs,
193 static Teuchos::RCP<MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
195 Teuchos::DataAccess copyOrView);
210 static RCP<MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
213 bool zeroOut =
true);
216 static Teuchos::RCP<MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
218 const Teuchos::ArrayView<
const Teuchos::ArrayView<const Scalar>> &ArrayOfPtrs,
221 static Teuchos::RCP<MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>
223 Teuchos::DataAccess copyOrView);
226 #endif // END !defined(XPETRA_EPETRA_NO_64BIT_GLOBAL_INDICES)
228 #endif // END !defined(XPETRA_EPETRA_NO_32BIT_GLOBAL_INDICES)
230 #endif // END HAVE_XPETRA_EPETRA
234 #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