47#include "Xpetra_BlockedMultiVector.hpp"
55#if defined(HAVE_XPETRA_EPETRA)
57#if !defined(XPETRA_EPETRA_NO_32BIT_GLOBAL_INDICES)
81#ifdef HAVE_XPETRA_TPETRA
105#ifdef HAVE_XPETRA_TPETRA
128#ifdef HAVE_XPETRA_TPETRA
163#ifdef HAVE_XPETRA_TPETRA
187#ifdef HAVE_XPETRA_TPETRA
210#ifdef HAVE_XPETRA_TPETRA
227#if !defined(XPETRA_EPETRA_NO_64BIT_GLOBAL_INDICES)
234RCP<MultiVector<double, int, long long, EpetraNode>>
242 RCP<const BlockedMap<int, long long, EpetraNode>> bmap = Teuchos::rcp_dynamic_cast<const BlockedMap<int, long long, EpetraNode>>(map);
246 return rcp(
new BlockedMultiVector<double, int, long long, EpetraNode>(bmap, NumVectors, zeroOut));
249#ifdef HAVE_XPETRA_TPETRA
252 return rcp(
new TpetraMultiVector<double, int, long long, EpetraNode>(map, NumVectors, zeroOut));
258 return rcp(
new EpetraMultiVectorT<long long, EpetraNode>(map, NumVectors, zeroOut));
273#ifdef HAVE_XPETRA_TPETRA
276 return rcp(
new TpetraMultiVector<double, int, long long, EpetraNode>(map, ArrayOfPtrs, NumVectors));
282 return rcp(
new EpetraMultiVectorT<long long, EpetraNode>(map, ArrayOfPtrs, NumVectors));
291Build(
const Teuchos::RCP<
const MultiVector<double, int, long long, EpetraNode> > &source,
296#ifdef HAVE_XPETRA_TPETRA
299 return rcp(
new TpetraMultiVector<double, int, long long, EpetraNode>(*source, copyOrView));
305 return rcp(
new EpetraMultiVectorT<long long, EpetraNode>(*source, copyOrView));
318RCP<MultiVector<int, int, long long, EpetraNode>>
326 RCP<const BlockedMap<int, long long, EpetraNode>> bmap = Teuchos::rcp_dynamic_cast<const BlockedMap<int, long long, EpetraNode>>(map);
330 return rcp(
new BlockedMultiVector<int, int, long long, EpetraNode>(bmap, NumVectors, zeroOut));
333#ifdef HAVE_XPETRA_TPETRA
336 return rcp(
new TpetraMultiVector<int, int, long long, EpetraNode>(map, NumVectors, zeroOut));
342 return rcp(
new EpetraIntMultiVectorT<long long, EpetraNode>(map, NumVectors, zeroOut));
357#ifdef HAVE_XPETRA_TPETRA
360 return rcp(
new TpetraMultiVector<int, int, long long, EpetraNode>(map, ArrayOfPtrs, NumVectors));
366 return rcp(
new EpetraIntMultiVectorT<long long, EpetraNode>(map, ArrayOfPtrs, NumVectors));
375Build(
const Teuchos::RCP<
const MultiVector<int, int, long long, EpetraNode> > &source,
380#ifdef HAVE_XPETRA_TPETRA
383 return rcp(
new TpetraMultiVector<int, int, long long, EpetraNode>(*source, copyOrView));
389 return rcp(
new EpetraIntMultiVectorT<long long, EpetraNode>(*source, copyOrView));
#define XPETRA_MONITOR(funcName)
#define XPETRA_FACTORY_END
MultiVectorFactory()
Private constructor. This is a static class.
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.
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)