17 template <
class GlobalOrdinal,
class Node>
20 return *tX.getEpetra_Vector();
23 template <
class GlobalOrdinal,
class Node>
26 return *tX.getEpetra_Vector();
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 EpetraVectorT<int, Xpetra::EpetraNode>;
36 template Epetra_Vector &toEpetra<int, Xpetra::EpetraNode>(Vector<double, int, int, Xpetra::EpetraNode> &);
37 template const Epetra_Vector &toEpetra<int, Xpetra::EpetraNode>(
const Vector<double, int, int, Xpetra::EpetraNode> &);
40 #ifdef HAVE_TPETRA_INST_SERIAL
41 template class EpetraVectorT<int, Tpetra::KokkosCompat::KokkosSerialWrapperNode>;
42 template Epetra_Vector &toEpetra<int, Tpetra::KokkosCompat::KokkosSerialWrapperNode>(Vector<double, int, int, Tpetra::KokkosCompat::KokkosSerialWrapperNode> &);
43 template const Epetra_Vector &toEpetra<int, Tpetra::KokkosCompat::KokkosSerialWrapperNode>(
const Vector<double, int, int, Tpetra::KokkosCompat::KokkosSerialWrapperNode> &);
45 #ifdef HAVE_TPETRA_INST_PTHREAD
46 template class EpetraVectorT<int, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>;
47 template Epetra_Vector &toEpetra<int, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>(Vector<double, int, int, Tpetra::KokkosCompat::KokkosThreadsWrapperNode> &);
48 template const Epetra_Vector &toEpetra<int, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>(
const Vector<double, int, int, Tpetra::KokkosCompat::KokkosThreadsWrapperNode> &);
50 #ifdef HAVE_TPETRA_INST_OPENMP
51 template class EpetraVectorT<int, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>;
52 template Epetra_Vector &toEpetra<int, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>(Vector<double, int, int, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode> &);
53 template const Epetra_Vector &toEpetra<int, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>(
const Vector<double, int, int, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode> &);
55 #ifdef HAVE_TPETRA_INST_CUDA
56 typedef Tpetra::KokkosCompat::KokkosCudaWrapperNode default_node_type;
57 template class EpetraVectorT<int, default_node_type>;
58 template Epetra_Vector &toEpetra<int, default_node_type>(Vector<double, int, int, default_node_type> &);
59 template const Epetra_Vector &toEpetra<int, default_node_type>(
const Vector<double, int, int, default_node_type> &);
61 #ifdef HAVE_TPETRA_INST_HIP
62 typedef Tpetra::KokkosCompat::KokkosHIPWrapperNode default_node_type;
63 template class EpetraVectorT<int, default_node_type>;
64 template Epetra_Vector &toEpetra<int, default_node_type>(Vector<double, int, int, default_node_type> &);
65 template const Epetra_Vector &toEpetra<int, default_node_type>(
const Vector<double, int, int, default_node_type> &);
70 template class EpetraVectorT<int, default_node_type>;
71 template Epetra_Vector &toEpetra<int, default_node_type>(Vector<double, int, int, default_node_type> &);
72 template const Epetra_Vector &toEpetra<int, default_node_type>(
const Vector<double, int, int, default_node_type> &);
73 #endif // HAVE_XPETRA_TPETRA
76 #ifndef XPETRA_EPETRA_NO_64BIT_GLOBAL_INDICES
77 #ifdef HAVE_XPETRA_TPETRA
78 #include "TpetraCore_config.h"
79 #if ((defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_OPENMP)) || \
80 (!defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_SERIAL)))
81 template class EpetraVectorT<long long, Xpetra::EpetraNode>;
82 template Epetra_Vector &toEpetra<long long, Xpetra::EpetraNode>(Vector<double, int, long long, Xpetra::EpetraNode> &);
83 template const Epetra_Vector &toEpetra<long long, Xpetra::EpetraNode>(
const Vector<double, int, long long, Xpetra::EpetraNode> &);
86 #ifdef HAVE_TPETRA_INST_SERIAL
87 template class EpetraVectorT<long long, Tpetra::KokkosCompat::KokkosSerialWrapperNode>;
88 template Epetra_Vector &toEpetra<long long, Tpetra::KokkosCompat::KokkosSerialWrapperNode>(Vector<double, int, long long, Tpetra::KokkosCompat::KokkosSerialWrapperNode> &);
89 template const Epetra_Vector &toEpetra<long long, Tpetra::KokkosCompat::KokkosSerialWrapperNode>(
const Vector<double, int, long long, Tpetra::KokkosCompat::KokkosSerialWrapperNode> &);
91 #ifdef HAVE_TPETRA_INST_PTHREAD
92 template class EpetraVectorT<long long, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>;
93 template Epetra_Vector &toEpetra<long long, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>(Vector<double, int, long long, Tpetra::KokkosCompat::KokkosThreadsWrapperNode> &);
94 template const Epetra_Vector &toEpetra<long long, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>(
const Vector<double, int, long long, Tpetra::KokkosCompat::KokkosThreadsWrapperNode> &);
96 #ifdef HAVE_TPETRA_INST_OPENMP
97 template class EpetraVectorT<long long, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>;
98 template Epetra_Vector &toEpetra<long long, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>(Vector<double, int, long long, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode> &);
99 template const Epetra_Vector &toEpetra<long long, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>(
const Vector<double, int, long long, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode> &);
101 #ifdef HAVE_TPETRA_INST_CUDA
102 typedef Tpetra::KokkosCompat::KokkosCudaWrapperNode default_node_type;
103 template class EpetraVectorT<long long, default_node_type>;
104 template Epetra_Vector &toEpetra<long long, default_node_type>(Vector<double, int, long long, default_node_type> &);
105 template const Epetra_Vector &toEpetra<long long, default_node_type>(
const Vector<double, int, long long, default_node_type> &);
107 #ifdef HAVE_TPETRA_INST_HIP
108 typedef Tpetra::KokkosCompat::KokkosHIPWrapperNode default_node_type;
109 template class EpetraVectorT<long long, default_node_type>;
110 template Epetra_Vector &toEpetra<long long, default_node_type>(Vector<double, int, long long, default_node_type> &);
111 template const Epetra_Vector &toEpetra<long long, default_node_type>(
const Vector<double, int, long long, default_node_type> &);
116 template class EpetraVectorT<long long, default_node_type>;
117 template Epetra_Vector &toEpetra<long long, default_node_type>(Vector<double, int, long long, default_node_type> &);
118 template const Epetra_Vector &toEpetra<long long, default_node_type>(
const Vector<double, int, long long, default_node_type> &);
119 #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)