17 template <
class GlobalOrdinal,
class Node>
20 return *tX.getEpetra_IntMultiVector();
23 template <
class GlobalOrdinal,
class Node>
26 return *tX.getEpetra_IntMultiVector();
30 #ifndef XPETRA_EPETRA_NO_32BIT_GLOBAL_INDICES
31 #ifdef HAVE_XPETRA_TPETRA
32 #include "TpetraCore_config.h"
33 #if ((defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_OPENMP)) || \
34 (!defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_SERIAL)))
35 template class EpetraIntMultiVectorT<int, Xpetra::EpetraNode>;
36 template Epetra_IntMultiVector &toEpetra<int, Xpetra::EpetraNode>(MultiVector<int, int, int, Xpetra::EpetraNode> &);
37 template const Epetra_IntMultiVector &toEpetra<int, Xpetra::EpetraNode>(
const MultiVector<int, int, int, Xpetra::EpetraNode> &);
39 #ifdef HAVE_TPETRA_INST_SERIAL
40 template class EpetraIntMultiVectorT<int, Tpetra::KokkosCompat::KokkosSerialWrapperNode>;
41 template Epetra_IntMultiVector &toEpetra<int, Tpetra::KokkosCompat::KokkosSerialWrapperNode>(MultiVector<int, int, int, Tpetra::KokkosCompat::KokkosSerialWrapperNode> &);
42 template const Epetra_IntMultiVector &toEpetra<int, Tpetra::KokkosCompat::KokkosSerialWrapperNode>(
const MultiVector<int, int, int, Tpetra::KokkosCompat::KokkosSerialWrapperNode> &);
44 #ifdef HAVE_TPETRA_INST_PTHREAD
45 template class EpetraIntMultiVectorT<int, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>;
46 template Epetra_IntMultiVector &toEpetra<int, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>(MultiVector<int, int, int, Tpetra::KokkosCompat::KokkosThreadsWrapperNode> &);
47 template const Epetra_IntMultiVector &toEpetra<int, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>(
const MultiVector<int, int, int, Tpetra::KokkosCompat::KokkosThreadsWrapperNode> &);
49 #ifdef HAVE_TPETRA_INST_OPENMP
50 template class EpetraIntMultiVectorT<int, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>;
51 template Epetra_IntMultiVector &toEpetra<int, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>(MultiVector<int, int, int, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode> &);
52 template const Epetra_IntMultiVector &toEpetra<int, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>(
const MultiVector<int, int, int, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode> &);
54 #ifdef HAVE_TPETRA_INST_CUDA
55 typedef Tpetra::KokkosCompat::KokkosCudaWrapperNode default_node_type;
56 template class EpetraIntMultiVectorT<int, default_node_type>;
57 template Epetra_IntMultiVector &toEpetra<int, default_node_type>(MultiVector<int, int, int, default_node_type> &);
58 template const Epetra_IntMultiVector &toEpetra<int, default_node_type>(
const MultiVector<int, int, int, default_node_type> &);
60 #ifdef HAVE_TPETRA_INST_HIP
61 typedef Tpetra::KokkosCompat::KokkosHIPWrapperNode default_node_type;
62 template class EpetraIntMultiVectorT<int, default_node_type>;
63 template Epetra_IntMultiVector &toEpetra<int, default_node_type>(MultiVector<int, int, int, default_node_type> &);
64 template const Epetra_IntMultiVector &toEpetra<int, default_node_type>(
const MultiVector<int, int, int, default_node_type> &);
69 template class EpetraIntMultiVectorT<int, default_node_type>;
70 template Epetra_IntMultiVector &toEpetra<int, default_node_type>(MultiVector<int, int, int, default_node_type> &);
71 template const Epetra_IntMultiVector &toEpetra<int, default_node_type>(
const MultiVector<int, int, int, default_node_type> &);
72 #endif // HAVE_XPETRA_TPETRA
75 #ifndef XPETRA_EPETRA_NO_64BIT_GLOBAL_INDICES
76 #ifdef HAVE_XPETRA_TPETRA
77 #include "TpetraCore_config.h"
78 #if ((defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_OPENMP)) || \
79 (!defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_SERIAL)))
80 template class EpetraIntMultiVectorT<long long, Xpetra::EpetraNode>;
81 template Epetra_IntMultiVector &toEpetra<long long, Xpetra::EpetraNode>(MultiVector<int, int, long long, Xpetra::EpetraNode> &);
82 template const Epetra_IntMultiVector &toEpetra<long long, Xpetra::EpetraNode>(
const MultiVector<int, int, long long, Xpetra::EpetraNode> &);
84 #ifdef HAVE_TPETRA_INST_SERIAL
85 template class EpetraIntMultiVectorT<long long, Tpetra::KokkosCompat::KokkosSerialWrapperNode>;
86 template Epetra_IntMultiVector &toEpetra<long long, Tpetra::KokkosCompat::KokkosSerialWrapperNode>(MultiVector<int, int, long long, Tpetra::KokkosCompat::KokkosSerialWrapperNode> &);
87 template const Epetra_IntMultiVector &toEpetra<long long, Tpetra::KokkosCompat::KokkosSerialWrapperNode>(
const MultiVector<int, int, long long, Tpetra::KokkosCompat::KokkosSerialWrapperNode> &);
89 #ifdef HAVE_TPETRA_INST_PTHREAD
90 template class EpetraIntMultiVectorT<long long, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>;
91 template Epetra_IntMultiVector &toEpetra<long long, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>(MultiVector<int, int, long long, Tpetra::KokkosCompat::KokkosThreadsWrapperNode> &);
92 template const Epetra_IntMultiVector &toEpetra<long long, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>(
const MultiVector<int, int, long long, Tpetra::KokkosCompat::KokkosThreadsWrapperNode> &);
94 #ifdef HAVE_TPETRA_INST_OPENMP
95 template class EpetraIntMultiVectorT<long long, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>;
96 template Epetra_IntMultiVector &toEpetra<long long, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>(MultiVector<int, int, long long, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode> &);
97 template const Epetra_IntMultiVector &toEpetra<long long, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>(
const MultiVector<int, int, long long, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode> &);
99 #ifdef HAVE_TPETRA_INST_CUDA
100 typedef Tpetra::KokkosCompat::KokkosCudaWrapperNode default_node_type;
101 template class EpetraIntMultiVectorT<long long, default_node_type>;
102 template Epetra_IntMultiVector &toEpetra<long long, default_node_type>(MultiVector<int, int, long long, default_node_type> &);
103 template const Epetra_IntMultiVector &toEpetra<long long, default_node_type>(
const MultiVector<int, int, long long, default_node_type> &);
105 #ifdef HAVE_TPETRA_INST_HIP
106 typedef Tpetra::KokkosCompat::KokkosHIPWrapperNode default_node_type;
107 template class EpetraIntMultiVectorT<long long, default_node_type>;
108 template Epetra_IntMultiVector &toEpetra<long long, default_node_type>(MultiVector<int, int, long long, default_node_type> &);
109 template const Epetra_IntMultiVector &toEpetra<long long, default_node_type>(
const MultiVector<int, int, long long, default_node_type> &);
114 template class EpetraIntMultiVectorT<long long, default_node_type>;
115 template Epetra_IntMultiVector &toEpetra<long long, default_node_type>(MultiVector<int, int, long long, default_node_type> &);
116 template const Epetra_IntMultiVector &toEpetra<long long, default_node_type>(
const MultiVector<int, int, long long, default_node_type> &);
117 #endif // HAVE_XPETRA_TPETRA
#define XPETRA_DYNAMIC_CAST(type, obj, newObj, exceptionMsg)
Tpetra::KokkosCompat::KokkosSerialWrapperNode EpetraNode
const Epetra_CrsGraph & toEpetra(const RCP< const CrsGraph< int, GlobalOrdinal, Node > > &graph)