54 template<
class GlobalOrdinal,
class Node>
57 return *tX.getEpetra_IntMultiVector();
60 template<
class GlobalOrdinal,
class Node>
63 return *tX.getEpetra_IntMultiVector();
67 #ifndef XPETRA_EPETRA_NO_32BIT_GLOBAL_INDICES 68 #ifdef HAVE_XPETRA_TPETRA 69 #include "TpetraCore_config.h" 70 #if ((defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_OPENMP)) || \ 71 (!defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_SERIAL))) 72 template class EpetraIntMultiVectorT<int, Xpetra::EpetraNode >;
73 template Epetra_IntMultiVector & toEpetra<int,Xpetra::EpetraNode >(MultiVector<int, int, int, Xpetra::EpetraNode> &);
74 template const Epetra_IntMultiVector & toEpetra<int, Xpetra::EpetraNode >(
const MultiVector<int, int, int, Xpetra::EpetraNode> &);
76 #ifdef HAVE_TPETRA_INST_SERIAL 77 template class EpetraIntMultiVectorT<int, Kokkos::Compat::KokkosSerialWrapperNode >;
78 template Epetra_IntMultiVector & toEpetra<int,Kokkos::Compat::KokkosSerialWrapperNode >(MultiVector<int, int, int, Kokkos::Compat::KokkosSerialWrapperNode> &);
79 template const Epetra_IntMultiVector & toEpetra<int, Kokkos::Compat::KokkosSerialWrapperNode >(
const MultiVector<int, int, int, Kokkos::Compat::KokkosSerialWrapperNode> &);
81 #ifdef HAVE_TPETRA_INST_PTHREAD 82 template class EpetraIntMultiVectorT<int, Kokkos::Compat::KokkosThreadsWrapperNode>;
83 template Epetra_IntMultiVector & toEpetra<int,Kokkos::Compat::KokkosThreadsWrapperNode >(MultiVector<int, int, int, Kokkos::Compat::KokkosThreadsWrapperNode> &);
84 template const Epetra_IntMultiVector & toEpetra<int, Kokkos::Compat::KokkosThreadsWrapperNode >(
const MultiVector<int, int, int, Kokkos::Compat::KokkosThreadsWrapperNode> &);
86 #ifdef HAVE_TPETRA_INST_OPENMP 87 template class EpetraIntMultiVectorT<int, Kokkos::Compat::KokkosOpenMPWrapperNode >;
88 template Epetra_IntMultiVector & toEpetra<int,Kokkos::Compat::KokkosOpenMPWrapperNode >(MultiVector<int, int, int, Kokkos::Compat::KokkosOpenMPWrapperNode> &);
89 template const Epetra_IntMultiVector & toEpetra<int, Kokkos::Compat::KokkosOpenMPWrapperNode >(
const MultiVector<int, int, int, Kokkos::Compat::KokkosOpenMPWrapperNode> &);
91 #ifdef HAVE_TPETRA_INST_CUDA 92 typedef Kokkos::Compat::KokkosCudaWrapperNode default_node_type;
93 template class EpetraIntMultiVectorT<int, default_node_type >;
94 template Epetra_IntMultiVector & toEpetra<int,default_node_type >(MultiVector<int, int, int, default_node_type> &);
95 template const Epetra_IntMultiVector & toEpetra<int,default_node_type >(
const MultiVector<int, int, int, default_node_type> &);
97 #ifdef HAVE_TPETRA_INST_HIP 98 typedef Kokkos::Compat::KokkosHIPWrapperNode default_node_type;
99 template class EpetraIntMultiVectorT<int, default_node_type >;
100 template Epetra_IntMultiVector & toEpetra<int,default_node_type >(MultiVector<int, int, int, default_node_type> &);
101 template const Epetra_IntMultiVector & toEpetra<int,default_node_type >(
const MultiVector<int, int, int, default_node_type> &);
106 template class EpetraIntMultiVectorT<int, default_node_type >;
107 template Epetra_IntMultiVector & toEpetra<int,default_node_type >(MultiVector<int, int, int, default_node_type> &);
108 template const Epetra_IntMultiVector & toEpetra<int,default_node_type >(
const MultiVector<int, int, int, default_node_type> &);
109 #endif // HAVE_XPETRA_TPETRA 112 #ifndef XPETRA_EPETRA_NO_64BIT_GLOBAL_INDICES 113 #ifdef HAVE_XPETRA_TPETRA 114 #include "TpetraCore_config.h" 115 #if ((defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_OPENMP)) || \ 116 (!defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_SERIAL))) 117 template class EpetraIntMultiVectorT<long long, Xpetra::EpetraNode >;
118 template Epetra_IntMultiVector & toEpetra<long long,Xpetra::EpetraNode >(MultiVector<int, int, long long, Xpetra::EpetraNode> &);
119 template const Epetra_IntMultiVector & toEpetra<long long, Xpetra::EpetraNode >(
const MultiVector<int, int, long long, Xpetra::EpetraNode> &);
121 #ifdef HAVE_TPETRA_INST_SERIAL 122 template class EpetraIntMultiVectorT<long long, Kokkos::Compat::KokkosSerialWrapperNode >;
123 template Epetra_IntMultiVector & toEpetra<long long,Kokkos::Compat::KokkosSerialWrapperNode >(MultiVector<int, int, long long, Kokkos::Compat::KokkosSerialWrapperNode> &);
124 template const Epetra_IntMultiVector & toEpetra<long long, Kokkos::Compat::KokkosSerialWrapperNode >(
const MultiVector<int, int, long long, Kokkos::Compat::KokkosSerialWrapperNode> &);
126 #ifdef HAVE_TPETRA_INST_PTHREAD 127 template class EpetraIntMultiVectorT<long long, Kokkos::Compat::KokkosThreadsWrapperNode>;
128 template Epetra_IntMultiVector & toEpetra<long long,Kokkos::Compat::KokkosThreadsWrapperNode >(MultiVector<int, int, long long, Kokkos::Compat::KokkosThreadsWrapperNode> &);
129 template const Epetra_IntMultiVector & toEpetra<long long, Kokkos::Compat::KokkosThreadsWrapperNode >(
const MultiVector<int, int, long long, Kokkos::Compat::KokkosThreadsWrapperNode> &);
131 #ifdef HAVE_TPETRA_INST_OPENMP 132 template class EpetraIntMultiVectorT<long long, Kokkos::Compat::KokkosOpenMPWrapperNode >;
133 template Epetra_IntMultiVector & toEpetra<long long,Kokkos::Compat::KokkosOpenMPWrapperNode >(MultiVector<int, int, long long, Kokkos::Compat::KokkosOpenMPWrapperNode> &);
134 template const Epetra_IntMultiVector & toEpetra<long long, Kokkos::Compat::KokkosOpenMPWrapperNode >(
const MultiVector<int, int, long long, Kokkos::Compat::KokkosOpenMPWrapperNode> &);
136 #ifdef HAVE_TPETRA_INST_CUDA 137 typedef Kokkos::Compat::KokkosCudaWrapperNode default_node_type;
138 template class EpetraIntMultiVectorT<long long, default_node_type >;
139 template Epetra_IntMultiVector & toEpetra<long long,default_node_type >(MultiVector<int, int, long long, default_node_type> &);
140 template const Epetra_IntMultiVector & toEpetra<long long,default_node_type >(
const MultiVector<int, int, long long, default_node_type> &);
142 #ifdef HAVE_TPETRA_INST_HIP 143 typedef Kokkos::Compat::KokkosHIPWrapperNode default_node_type;
144 template class EpetraIntMultiVectorT<long long, default_node_type >;
145 template Epetra_IntMultiVector & toEpetra<long long,default_node_type >(MultiVector<int, int, long long, default_node_type> &);
146 template const Epetra_IntMultiVector & toEpetra<long long,default_node_type >(
const MultiVector<int, int, long long, default_node_type> &);
151 template class EpetraIntMultiVectorT<long long, default_node_type >;
152 template Epetra_IntMultiVector & toEpetra<long long,default_node_type >(MultiVector<int, int, long long, default_node_type> &);
153 template const Epetra_IntMultiVector & toEpetra<long long,default_node_type >(
const MultiVector<int, int, long long, default_node_type> &);
154 #endif // HAVE_XPETRA_TPETRA
const Epetra_CrsGraph & toEpetra(const RCP< const CrsGraph< int, GlobalOrdinal, Node > > &graph)
#define XPETRA_DYNAMIC_CAST(type, obj, newObj, exceptionMsg)