53 template<
class GlobalOrdinal,
class Node>
56 return *tX.getEpetra_Vector();
59 template<
class GlobalOrdinal,
class Node>
62 return *tX.getEpetra_Vector();
66 #ifndef XPETRA_EPETRA_NO_32BIT_GLOBAL_INDICES
67 #ifdef HAVE_XPETRA_TPETRA
68 #include "TpetraCore_config.h"
69 #if ((defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_OPENMP)) || \
70 (!defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_SERIAL)))
71 template class EpetraVectorT<int, Xpetra::EpetraNode >;
72 template Epetra_Vector & toEpetra<int,Xpetra::EpetraNode >(Vector<double, int, int, Xpetra::EpetraNode> &);
73 template const Epetra_Vector & toEpetra<int, Xpetra::EpetraNode >(
const Vector<double, int, int, Xpetra::EpetraNode> &);
76 #ifdef HAVE_TPETRA_INST_SERIAL
77 template class EpetraVectorT<int, Kokkos::Compat::KokkosSerialWrapperNode >;
78 template Epetra_Vector & toEpetra<int,Kokkos::Compat::KokkosSerialWrapperNode >(Vector<double, int, int, Kokkos::Compat::KokkosSerialWrapperNode> &);
79 template const Epetra_Vector & toEpetra<int, Kokkos::Compat::KokkosSerialWrapperNode >(
const Vector<double, int, int, Kokkos::Compat::KokkosSerialWrapperNode> &);
81 #ifdef HAVE_TPETRA_INST_PTHREAD
82 template class EpetraVectorT<int, Kokkos::Compat::KokkosThreadsWrapperNode>;
83 template Epetra_Vector & toEpetra<int,Kokkos::Compat::KokkosThreadsWrapperNode >(Vector<double, int, int, Kokkos::Compat::KokkosThreadsWrapperNode> &);
84 template const Epetra_Vector & toEpetra<int, Kokkos::Compat::KokkosThreadsWrapperNode >(
const Vector<double, int, int, Kokkos::Compat::KokkosThreadsWrapperNode> &);
86 #ifdef HAVE_TPETRA_INST_OPENMP
87 template class EpetraVectorT<int, Kokkos::Compat::KokkosOpenMPWrapperNode >;
88 template Epetra_Vector & toEpetra<int,Kokkos::Compat::KokkosOpenMPWrapperNode >(Vector<double, int, int, Kokkos::Compat::KokkosOpenMPWrapperNode> &);
89 template const Epetra_Vector & toEpetra<int, Kokkos::Compat::KokkosOpenMPWrapperNode>(
const Vector<double, int, int, Kokkos::Compat::KokkosOpenMPWrapperNode> &);
91 #ifdef HAVE_TPETRA_INST_CUDA
92 typedef Kokkos::Compat::KokkosCudaWrapperNode default_node_type;
93 template class EpetraVectorT<int, default_node_type >;
94 template Epetra_Vector & toEpetra<int,default_node_type >(Vector<double, int, int, default_node_type> &);
95 template const Epetra_Vector & toEpetra<int, default_node_type >(
const Vector<double, int, int, default_node_type> &);
100 template class EpetraVectorT<int, default_node_type >;
101 template Epetra_Vector & toEpetra<int,default_node_type >(Vector<double, int, int, default_node_type> &);
102 template const Epetra_Vector & toEpetra<int, default_node_type >(
const Vector<double, int, int, default_node_type> &);
103 #endif // HAVE_XPETRA_TPETRA
106 #ifndef XPETRA_EPETRA_NO_64BIT_GLOBAL_INDICES
107 #ifdef HAVE_XPETRA_TPETRA
108 #include "TpetraCore_config.h"
109 #if ((defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_OPENMP)) || \
110 (!defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_SERIAL)))
111 template class EpetraVectorT<long long, Xpetra::EpetraNode >;
112 template Epetra_Vector & toEpetra<long long,Xpetra::EpetraNode >(Vector<double, int, long long, Xpetra::EpetraNode> &);
113 template const Epetra_Vector & toEpetra<long long, Xpetra::EpetraNode >(
const Vector<double, int, long long, Xpetra::EpetraNode> &);
116 #ifdef HAVE_TPETRA_INST_SERIAL
117 template class EpetraVectorT<long long, Kokkos::Compat::KokkosSerialWrapperNode >;
118 template Epetra_Vector & toEpetra<long long,Kokkos::Compat::KokkosSerialWrapperNode>(Vector<double, int, long long, Kokkos::Compat::KokkosSerialWrapperNode> &);
119 template const Epetra_Vector & toEpetra<long long, Kokkos::Compat::KokkosSerialWrapperNode>(
const Vector<double, int, long long, Kokkos::Compat::KokkosSerialWrapperNode> &);
121 #ifdef HAVE_TPETRA_INST_PTHREAD
122 template class EpetraVectorT<long long, Kokkos::Compat::KokkosThreadsWrapperNode>;
123 template Epetra_Vector & toEpetra<long long,Kokkos::Compat::KokkosThreadsWrapperNode>(Vector<double, int, long long, Kokkos::Compat::KokkosThreadsWrapperNode> &);
124 template const Epetra_Vector & toEpetra<long long,Kokkos::Compat::KokkosThreadsWrapperNode>(
const Vector<double, int, long long, Kokkos::Compat::KokkosThreadsWrapperNode> &);
126 #ifdef HAVE_TPETRA_INST_OPENMP
127 template class EpetraVectorT<long long, Kokkos::Compat::KokkosOpenMPWrapperNode >;
128 template Epetra_Vector & toEpetra<long long,Kokkos::Compat::KokkosOpenMPWrapperNode>(Vector<double, int, long long, Kokkos::Compat::KokkosOpenMPWrapperNode> &);
129 template const Epetra_Vector & toEpetra<long long,Kokkos::Compat::KokkosOpenMPWrapperNode>(
const Vector<double, int, long long, Kokkos::Compat::KokkosOpenMPWrapperNode> &);
131 #ifdef HAVE_TPETRA_INST_CUDA
132 typedef Kokkos::Compat::KokkosCudaWrapperNode default_node_type;
133 template class EpetraVectorT<long long, default_node_type >;
134 template Epetra_Vector & toEpetra<long long,default_node_type >(Vector<double, int, long long, default_node_type> &);
135 template const Epetra_Vector & toEpetra<long long, default_node_type >(
const Vector<double, int, long long, default_node_type> &);
140 template class EpetraVectorT<long long, default_node_type >;
141 template Epetra_Vector & toEpetra<long long,default_node_type >(Vector<double, int, long long, default_node_type> &);
142 template const Epetra_Vector & toEpetra<long long, default_node_type >(
const Vector<double, int, long long, default_node_type> &);
143 #endif // HAVE_XPETRA_TPETRA
const Epetra_CrsGraph & toEpetra(const RCP< const CrsGraph< int, GlobalOrdinal, Node > > &graph)
#define XPETRA_DYNAMIC_CAST(type, obj, newObj, exceptionMsg)