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> &);
97 #ifdef HAVE_TPETRA_INST_HIP 98 typedef Kokkos::Compat::KokkosHIPWrapperNode default_node_type;
99 template class EpetraVectorT<int, default_node_type >;
100 template Epetra_Vector & toEpetra<int,default_node_type >(Vector<double, int, int, default_node_type> &);
101 template const Epetra_Vector & toEpetra<int, default_node_type >(
const Vector<double, int, int, default_node_type> &);
106 template class EpetraVectorT<int, default_node_type >;
107 template Epetra_Vector & toEpetra<int,default_node_type >(Vector<double, int, int, default_node_type> &);
108 template const Epetra_Vector & toEpetra<int, default_node_type >(
const Vector<double, 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 EpetraVectorT<long long, Xpetra::EpetraNode >;
118 template Epetra_Vector & toEpetra<long long,Xpetra::EpetraNode >(Vector<double, int, long long, Xpetra::EpetraNode> &);
119 template const Epetra_Vector & toEpetra<long long, Xpetra::EpetraNode >(
const Vector<double, int, long long, Xpetra::EpetraNode> &);
122 #ifdef HAVE_TPETRA_INST_SERIAL 123 template class EpetraVectorT<long long, Kokkos::Compat::KokkosSerialWrapperNode >;
124 template Epetra_Vector & toEpetra<long long,Kokkos::Compat::KokkosSerialWrapperNode>(Vector<double, int, long long, Kokkos::Compat::KokkosSerialWrapperNode> &);
125 template const Epetra_Vector & toEpetra<long long, Kokkos::Compat::KokkosSerialWrapperNode>(
const Vector<double, int, long long, Kokkos::Compat::KokkosSerialWrapperNode> &);
127 #ifdef HAVE_TPETRA_INST_PTHREAD 128 template class EpetraVectorT<long long, Kokkos::Compat::KokkosThreadsWrapperNode>;
129 template Epetra_Vector & toEpetra<long long,Kokkos::Compat::KokkosThreadsWrapperNode>(Vector<double, int, long long, Kokkos::Compat::KokkosThreadsWrapperNode> &);
130 template const Epetra_Vector & toEpetra<long long,Kokkos::Compat::KokkosThreadsWrapperNode>(
const Vector<double, int, long long, Kokkos::Compat::KokkosThreadsWrapperNode> &);
132 #ifdef HAVE_TPETRA_INST_OPENMP 133 template class EpetraVectorT<long long, Kokkos::Compat::KokkosOpenMPWrapperNode >;
134 template Epetra_Vector & toEpetra<long long,Kokkos::Compat::KokkosOpenMPWrapperNode>(Vector<double, int, long long, Kokkos::Compat::KokkosOpenMPWrapperNode> &);
135 template const Epetra_Vector & toEpetra<long long,Kokkos::Compat::KokkosOpenMPWrapperNode>(
const Vector<double, int, long long, Kokkos::Compat::KokkosOpenMPWrapperNode> &);
137 #ifdef HAVE_TPETRA_INST_CUDA 138 typedef Kokkos::Compat::KokkosCudaWrapperNode default_node_type;
139 template class EpetraVectorT<long long, default_node_type >;
140 template Epetra_Vector & toEpetra<long long,default_node_type >(Vector<double, int, long long, default_node_type> &);
141 template const Epetra_Vector & toEpetra<long long, default_node_type >(
const Vector<double, int, long long, default_node_type> &);
143 #ifdef HAVE_TPETRA_INST_HIP 144 typedef Kokkos::Compat::KokkosHIPWrapperNode default_node_type;
145 template class EpetraVectorT<long long, default_node_type >;
146 template Epetra_Vector & toEpetra<long long,default_node_type >(Vector<double, int, long long, default_node_type> &);
147 template const Epetra_Vector & toEpetra<long long, default_node_type >(
const Vector<double, int, long long, default_node_type> &);
152 template class EpetraVectorT<long long, default_node_type >;
153 template Epetra_Vector & toEpetra<long long,default_node_type >(Vector<double, int, long long, default_node_type> &);
154 template const Epetra_Vector & toEpetra<long long, default_node_type >(
const Vector<double, int, long long, default_node_type> &);
155 #endif // HAVE_XPETRA_TPETRA
const Epetra_CrsGraph & toEpetra(const RCP< const CrsGraph< int, GlobalOrdinal, Node > > &graph)
#define XPETRA_DYNAMIC_CAST(type, obj, newObj, exceptionMsg)