48 #ifdef HAVE_XPETRA_EPETRA
54 template <
class GlobalOrdinal,
class Node>
60 template <
class GlobalOrdinal,
class Node>
63 return epetraMap->getEpetra_Map();
66 template <
class GlobalOrdinal,
class Node>
67 const RCP<const Xpetra::Map<int, GlobalOrdinal, Node> >
toXpetra(
const Epetra_BlockMap &map) {
68 RCP<const Epetra_BlockMap> m = rcp(
new Epetra_BlockMap(map));
72 #ifndef XPETRA_EPETRA_NO_32BIT_GLOBAL_INDICES
74 #ifdef HAVE_XPETRA_TPETRA
75 #include "TpetraCore_config.h"
76 #if ((defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_OPENMP)) || \
77 (!defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_SERIAL)))
78 template const RCP<const Map<int, int, Xpetra::EpetraNode> > toXpetra<int, Xpetra::EpetraNode>(
const Epetra_BlockMap &map);
79 template const Epetra_Map &toEpetra<int, Xpetra::EpetraNode>(
const RCP<const Map<int, int, Xpetra::EpetraNode> > &map);
80 template const Epetra_Map &toEpetra<int, Xpetra::EpetraNode>(
const Map<int, int, Xpetra::EpetraNode> &map);
82 #ifdef HAVE_TPETRA_INST_SERIAL
84 template const RCP<const Map<int, int, Tpetra::KokkosCompat::KokkosSerialWrapperNode> > toXpetra<int, Tpetra::KokkosCompat::KokkosSerialWrapperNode>(
const Epetra_BlockMap &map);
85 template const Epetra_Map &toEpetra<int, Tpetra::KokkosCompat::KokkosSerialWrapperNode>(
const RCP<const Map<int, int, Tpetra::KokkosCompat::KokkosSerialWrapperNode> > &map);
86 template const Epetra_Map &toEpetra<int, Tpetra::KokkosCompat::KokkosSerialWrapperNode>(
const Map<int, int, Tpetra::KokkosCompat::KokkosSerialWrapperNode> &map);
88 #ifdef HAVE_TPETRA_INST_PTHREAD
90 template const RCP<const Map<int, int, Tpetra::KokkosCompat::KokkosThreadsWrapperNode> > toXpetra<int, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>(
const Epetra_BlockMap &map);
91 template const Epetra_Map &toEpetra<int, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>(
const RCP<const Map<int, int, Tpetra::KokkosCompat::KokkosThreadsWrapperNode> > &map);
92 template const Epetra_Map &toEpetra<int, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>(
const Map<int, int, Tpetra::KokkosCompat::KokkosThreadsWrapperNode> &map);
94 #ifdef HAVE_TPETRA_INST_OPENMP
96 template const RCP<const Map<int, int, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode> > toXpetra<int, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>(
const Epetra_BlockMap &map);
97 template const Epetra_Map &toEpetra<int, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>(
const RCP<const Map<int, int, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode> > &map);
98 template const Epetra_Map &toEpetra<int, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>(
const Map<int, int, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode> &map);
100 #ifdef HAVE_TPETRA_INST_CUDA
101 typedef Tpetra::KokkosCompat::KokkosCudaWrapperNode default_node_type;
103 template const RCP<const Map<int, int, default_node_type> > toXpetra<int, default_node_type>(
const Epetra_BlockMap &map);
104 template const Epetra_Map &toEpetra<int, default_node_type>(
const RCP<const Map<int, int, default_node_type> > &map);
105 template const Epetra_Map &toEpetra<int, default_node_type>(
const Map<int, int, default_node_type> &map);
107 #ifdef HAVE_TPETRA_INST_HIP
108 typedef Tpetra::KokkosCompat::KokkosHIPWrapperNode default_node_type;
110 template const RCP<const Map<int, int, default_node_type> > toXpetra<int, default_node_type>(
const Epetra_BlockMap &map);
111 template const Epetra_Map &toEpetra<int, default_node_type>(
const RCP<const Map<int, int, default_node_type> > &map);
112 template const Epetra_Map &toEpetra<int, default_node_type>(
const Map<int, int, default_node_type> &map);
117 template const RCP<const Map<int, int, default_node_type> > toXpetra<int, default_node_type>(
const Epetra_BlockMap &map);
118 template const Epetra_Map &toEpetra<int, default_node_type>(
const RCP<const Map<int, int, default_node_type> > &map);
119 template const Epetra_Map &toEpetra<int, default_node_type>(
const Map<int, int, default_node_type> &map);
120 #endif // HAVE_XPETRA_TPETRA
122 #endif // XPETRA_EPETRA_NO_32BIT_GLOBAL_INDICES
124 #ifndef XPETRA_EPETRA_NO_64BIT_GLOBAL_INDICES
126 #ifdef HAVE_XPETRA_TPETRA
127 #include "TpetraCore_config.h"
128 #if ((defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_OPENMP)) || \
129 (!defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_SERIAL)))
130 template const RCP<const Map<int, long long, Xpetra::EpetraNode> > toXpetra<long long, Xpetra::EpetraNode>(
const Epetra_BlockMap &map);
131 template const Epetra_Map &toEpetra<long long, Xpetra::EpetraNode>(
const RCP<const Map<int, long long, Xpetra::EpetraNode> > &map);
132 template const Epetra_Map &toEpetra<long long, Xpetra::EpetraNode>(
const Map<int, long long, Xpetra::EpetraNode> &map);
135 #ifdef HAVE_TPETRA_INST_SERIAL
137 template const RCP<const Map<int, long long, Tpetra::KokkosCompat::KokkosSerialWrapperNode> > toXpetra<long long, Tpetra::KokkosCompat::KokkosSerialWrapperNode>(
const Epetra_BlockMap &map);
138 template const Epetra_Map &toEpetra<long long, Tpetra::KokkosCompat::KokkosSerialWrapperNode>(
const RCP<const Map<int, long long, Tpetra::KokkosCompat::KokkosSerialWrapperNode> > &map);
139 template const Epetra_Map &toEpetra<long long, Tpetra::KokkosCompat::KokkosSerialWrapperNode>(
const Map<int, long long, Tpetra::KokkosCompat::KokkosSerialWrapperNode> &map);
142 #ifdef HAVE_TPETRA_INST_PTHREAD
144 template const RCP<const Map<int, long long, Tpetra::KokkosCompat::KokkosThreadsWrapperNode> > toXpetra<long long, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>(
const Epetra_BlockMap &map);
145 template const Epetra_Map &toEpetra<long long, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>(
const RCP<const Map<int, long long, Tpetra::KokkosCompat::KokkosThreadsWrapperNode> > &map);
146 template const Epetra_Map &toEpetra<long long, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>(
const Map<int, long long, Tpetra::KokkosCompat::KokkosThreadsWrapperNode> &map);
149 #ifdef HAVE_TPETRA_INST_OPENMP
151 template const RCP<const Map<int, long long, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode> > toXpetra<long long, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>(
const Epetra_BlockMap &map);
152 template const Epetra_Map &toEpetra<long long, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>(
const RCP<const Map<int, long long, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode> > &map);
153 template const Epetra_Map &toEpetra<long long, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>(
const Map<int, long long, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode> &map);
156 #ifdef HAVE_TPETRA_INST_CUDA
157 typedef Tpetra::KokkosCompat::KokkosCudaWrapperNode default_node_type;
159 template const RCP<const Map<int, long long, default_node_type> > toXpetra<long long, default_node_type>(
const Epetra_BlockMap &map);
160 template const Epetra_Map &toEpetra<long long, default_node_type>(
const RCP<const Map<int, long long, default_node_type> > &map);
161 template const Epetra_Map &toEpetra<long long, default_node_type>(
const Map<int, long long, default_node_type> &map);
164 #ifdef HAVE_TPETRA_INST_HIP
165 typedef Tpetra::KokkosCompat::KokkosHIPWrapperNode default_node_type;
167 template const RCP<const Map<int, long long, default_node_type> > toXpetra<long long, default_node_type>(
const Epetra_BlockMap &map);
168 template const Epetra_Map &toEpetra<long long, default_node_type>(
const RCP<const Map<int, long long, default_node_type> > &map);
169 template const Epetra_Map &toEpetra<long long, default_node_type>(
const Map<int, long long, default_node_type> &map);
175 template const RCP<const Map<int, long long, default_node_type> > toXpetra<long long, default_node_type>(
const Epetra_BlockMap &map);
176 template const Epetra_Map &toEpetra<long long, default_node_type>(
const RCP<const Map<int, long long, default_node_type> > &map);
177 template const Epetra_Map &toEpetra<long long, default_node_type>(
const Map<int, long long, default_node_type> &map);
178 #endif // HAVE_XPETRA_TPETRA
180 #endif // HAVE_XPETRA_EPETRA_NO_64BIT_GLOBAL_INDICES
184 #endif // HAVE_XPETRA_EPETRA
virtual RCP< const Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node > > getMap() const
#define XPETRA_RCP_DYNAMIC_CAST(type, obj, newObj, exceptionMsg)
Tpetra::KokkosCompat::KokkosSerialWrapperNode EpetraNode
const Epetra_Map & getEpetra_Map() const
const Epetra_CrsGraph & toEpetra(const RCP< const CrsGraph< int, GlobalOrdinal, Node > > &graph)
RCP< const CrsGraph< int, GlobalOrdinal, Node > > toXpetra(const Epetra_CrsGraph &g)