47 #include "Xpetra_BlockedMultiVector.hpp"
55 #if defined(HAVE_XPETRA_EPETRA)
57 #if !defined(XPETRA_EPETRA_NO_32BIT_GLOBAL_INDICES)
66 RCP<MultiVector<double, int, int, EpetraNode>>
81 #ifdef HAVE_XPETRA_TPETRA
97 Teuchos::RCP<MultiVector<double, int, int, EpetraNode>>
100 const Teuchos::ArrayView<
const Teuchos::ArrayView<const double>>& ArrayOfPtrs,
105 #ifdef HAVE_XPETRA_TPETRA
127 RCP<MultiVector<int, int, int, EpetraNode>>
140 #ifdef HAVE_XPETRA_TPETRA
156 Teuchos::RCP<MultiVector<int, int, int, EpetraNode>>
159 const Teuchos::ArrayView<
const Teuchos::ArrayView<const int>>& ArrayOfPtrs,
164 #ifdef HAVE_XPETRA_TPETRA
182 #if !defined(XPETRA_EPETRA_NO_64BIT_GLOBAL_INDICES)
189 RCP<MultiVector<double, int, long long, EpetraNode>>
204 #ifdef HAVE_XPETRA_TPETRA
207 return rcp(
new TpetraMultiVector<double, int, long long, EpetraNode>(map, NumVectors, zeroOut));
213 return rcp(
new EpetraMultiVectorT<long long, EpetraNode>(map, NumVectors, zeroOut));
220 Teuchos::RCP<MultiVector<double, int, long long, EpetraNode>>
222 Build(
const Teuchos::RCP<
const Map<int, long long, EpetraNode>>& map,
223 const Teuchos::ArrayView<
const Teuchos::ArrayView<const Scalar>>& ArrayOfPtrs,
228 #ifdef HAVE_XPETRA_TPETRA
231 return rcp(
new TpetraMultiVector<double, int, long long, EpetraNode>(map, ArrayOfPtrs, NumVectors));
237 return rcp(
new EpetraMultiVectorT<long long, EpetraNode>(map, ArrayOfPtrs, NumVectors));
250 RCP<MultiVector<int, int, long long, EpetraNode>>
265 #ifdef HAVE_XPETRA_TPETRA
268 return rcp(
new TpetraMultiVector<int, int, long long, EpetraNode>(map, NumVectors, zeroOut));
274 return rcp(
new EpetraIntMultiVectorT<long long, EpetraNode>(map, NumVectors, zeroOut));
281 Teuchos::RCP<MultiVector<int, int, long long, EpetraNode>>
283 Build(
const Teuchos::RCP<
const Map<int, long long, Node>>& map,
284 const Teuchos::ArrayView<
const Teuchos::ArrayView<const int>>& ArrayOfPtrs,
289 #ifdef HAVE_XPETRA_TPETRA
292 return rcp(
new TpetraMultiVector<int, int, long long, EpetraNode>(map, ArrayOfPtrs, NumVectors));
298 return rcp(
new EpetraIntMultiVectorT<long long, EpetraNode>(map, ArrayOfPtrs, NumVectors));
305 #endif // END !defined(XPETRA_EPETRA_NO_64BIT_GLOBAL_INDICES)
307 #endif // END !defined(XPETRA_EPETRA_NO_32BIT_GLOBAL_INDICES)
309 #endif // END HAVE_XPETRA_EPETRA
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.
MultiVectorFactory()
Private constructor. This is a static class.
#define XPETRA_FACTORY_END
#define XPETRA_MONITOR(funcName)