12 #ifdef HAVE_XPETRA_EPETRA
18 template <
class GlobalOrdinal,
class Node>
24 template <
class GlobalOrdinal,
class Node>
27 return epetraMap->getEpetra_Map();
30 template <
class GlobalOrdinal,
class Node>
31 const RCP<const Xpetra::Map<int, GlobalOrdinal, Node> >
toXpetra(
const Epetra_BlockMap &map) {
32 RCP<const Epetra_BlockMap> m = rcp(
new Epetra_BlockMap(map));
36 #ifndef XPETRA_EPETRA_NO_32BIT_GLOBAL_INDICES
38 #ifdef HAVE_XPETRA_TPETRA
39 #include "TpetraCore_config.h"
40 #if ((defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_OPENMP)) || \
41 (!defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_SERIAL)))
42 template const RCP<const Map<int, int, Xpetra::EpetraNode> > toXpetra<int, Xpetra::EpetraNode>(
const Epetra_BlockMap &map);
43 template const Epetra_Map &toEpetra<int, Xpetra::EpetraNode>(
const RCP<const Map<int, int, Xpetra::EpetraNode> > &map);
44 template const Epetra_Map &toEpetra<int, Xpetra::EpetraNode>(
const Map<int, int, Xpetra::EpetraNode> &map);
46 #ifdef HAVE_TPETRA_INST_SERIAL
48 template const RCP<const Map<int, int, Tpetra::KokkosCompat::KokkosSerialWrapperNode> > toXpetra<int, Tpetra::KokkosCompat::KokkosSerialWrapperNode>(
const Epetra_BlockMap &map);
49 template const Epetra_Map &toEpetra<int, Tpetra::KokkosCompat::KokkosSerialWrapperNode>(
const RCP<const Map<int, int, Tpetra::KokkosCompat::KokkosSerialWrapperNode> > &map);
50 template const Epetra_Map &toEpetra<int, Tpetra::KokkosCompat::KokkosSerialWrapperNode>(
const Map<int, int, Tpetra::KokkosCompat::KokkosSerialWrapperNode> &map);
52 #ifdef HAVE_TPETRA_INST_PTHREAD
54 template const RCP<const Map<int, int, Tpetra::KokkosCompat::KokkosThreadsWrapperNode> > toXpetra<int, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>(
const Epetra_BlockMap &map);
55 template const Epetra_Map &toEpetra<int, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>(
const RCP<const Map<int, int, Tpetra::KokkosCompat::KokkosThreadsWrapperNode> > &map);
56 template const Epetra_Map &toEpetra<int, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>(
const Map<int, int, Tpetra::KokkosCompat::KokkosThreadsWrapperNode> &map);
58 #ifdef HAVE_TPETRA_INST_OPENMP
60 template const RCP<const Map<int, int, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode> > toXpetra<int, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>(
const Epetra_BlockMap &map);
61 template const Epetra_Map &toEpetra<int, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>(
const RCP<const Map<int, int, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode> > &map);
62 template const Epetra_Map &toEpetra<int, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>(
const Map<int, int, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode> &map);
64 #ifdef HAVE_TPETRA_INST_CUDA
65 typedef Tpetra::KokkosCompat::KokkosCudaWrapperNode default_node_type;
67 template const RCP<const Map<int, int, default_node_type> > toXpetra<int, default_node_type>(
const Epetra_BlockMap &map);
68 template const Epetra_Map &toEpetra<int, default_node_type>(
const RCP<const Map<int, int, default_node_type> > &map);
69 template const Epetra_Map &toEpetra<int, default_node_type>(
const Map<int, int, default_node_type> &map);
71 #ifdef HAVE_TPETRA_INST_HIP
72 typedef Tpetra::KokkosCompat::KokkosHIPWrapperNode default_node_type;
74 template const RCP<const Map<int, int, default_node_type> > toXpetra<int, default_node_type>(
const Epetra_BlockMap &map);
75 template const Epetra_Map &toEpetra<int, default_node_type>(
const RCP<const Map<int, int, default_node_type> > &map);
76 template const Epetra_Map &toEpetra<int, default_node_type>(
const Map<int, int, default_node_type> &map);
81 template const RCP<const Map<int, int, default_node_type> > toXpetra<int, default_node_type>(
const Epetra_BlockMap &map);
82 template const Epetra_Map &toEpetra<int, default_node_type>(
const RCP<const Map<int, int, default_node_type> > &map);
83 template const Epetra_Map &toEpetra<int, default_node_type>(
const Map<int, int, default_node_type> &map);
84 #endif // HAVE_XPETRA_TPETRA
86 #endif // XPETRA_EPETRA_NO_32BIT_GLOBAL_INDICES
88 #ifndef XPETRA_EPETRA_NO_64BIT_GLOBAL_INDICES
90 #ifdef HAVE_XPETRA_TPETRA
91 #include "TpetraCore_config.h"
92 #if ((defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_OPENMP)) || \
93 (!defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_SERIAL)))
94 template const RCP<const Map<int, long long, Xpetra::EpetraNode> > toXpetra<long long, Xpetra::EpetraNode>(
const Epetra_BlockMap &map);
95 template const Epetra_Map &toEpetra<long long, Xpetra::EpetraNode>(
const RCP<const Map<int, long long, Xpetra::EpetraNode> > &map);
96 template const Epetra_Map &toEpetra<long long, Xpetra::EpetraNode>(
const Map<int, long long, Xpetra::EpetraNode> &map);
99 #ifdef HAVE_TPETRA_INST_SERIAL
101 template const RCP<const Map<int, long long, Tpetra::KokkosCompat::KokkosSerialWrapperNode> > toXpetra<long long, Tpetra::KokkosCompat::KokkosSerialWrapperNode>(
const Epetra_BlockMap &map);
102 template const Epetra_Map &toEpetra<long long, Tpetra::KokkosCompat::KokkosSerialWrapperNode>(
const RCP<const Map<int, long long, Tpetra::KokkosCompat::KokkosSerialWrapperNode> > &map);
103 template const Epetra_Map &toEpetra<long long, Tpetra::KokkosCompat::KokkosSerialWrapperNode>(
const Map<int, long long, Tpetra::KokkosCompat::KokkosSerialWrapperNode> &map);
106 #ifdef HAVE_TPETRA_INST_PTHREAD
108 template const RCP<const Map<int, long long, Tpetra::KokkosCompat::KokkosThreadsWrapperNode> > toXpetra<long long, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>(
const Epetra_BlockMap &map);
109 template const Epetra_Map &toEpetra<long long, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>(
const RCP<const Map<int, long long, Tpetra::KokkosCompat::KokkosThreadsWrapperNode> > &map);
110 template const Epetra_Map &toEpetra<long long, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>(
const Map<int, long long, Tpetra::KokkosCompat::KokkosThreadsWrapperNode> &map);
113 #ifdef HAVE_TPETRA_INST_OPENMP
115 template const RCP<const Map<int, long long, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode> > toXpetra<long long, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>(
const Epetra_BlockMap &map);
116 template const Epetra_Map &toEpetra<long long, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>(
const RCP<const Map<int, long long, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode> > &map);
117 template const Epetra_Map &toEpetra<long long, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>(
const Map<int, long long, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode> &map);
120 #ifdef HAVE_TPETRA_INST_CUDA
121 typedef Tpetra::KokkosCompat::KokkosCudaWrapperNode default_node_type;
123 template const RCP<const Map<int, long long, default_node_type> > toXpetra<long long, default_node_type>(
const Epetra_BlockMap &map);
124 template const Epetra_Map &toEpetra<long long, default_node_type>(
const RCP<const Map<int, long long, default_node_type> > &map);
125 template const Epetra_Map &toEpetra<long long, default_node_type>(
const Map<int, long long, default_node_type> &map);
128 #ifdef HAVE_TPETRA_INST_HIP
129 typedef Tpetra::KokkosCompat::KokkosHIPWrapperNode default_node_type;
131 template const RCP<const Map<int, long long, default_node_type> > toXpetra<long long, default_node_type>(
const Epetra_BlockMap &map);
132 template const Epetra_Map &toEpetra<long long, default_node_type>(
const RCP<const Map<int, long long, default_node_type> > &map);
133 template const Epetra_Map &toEpetra<long long, default_node_type>(
const Map<int, long long, default_node_type> &map);
139 template const RCP<const Map<int, long long, default_node_type> > toXpetra<long long, default_node_type>(
const Epetra_BlockMap &map);
140 template const Epetra_Map &toEpetra<long long, default_node_type>(
const RCP<const Map<int, long long, default_node_type> > &map);
141 template const Epetra_Map &toEpetra<long long, default_node_type>(
const Map<int, long long, default_node_type> &map);
142 #endif // HAVE_XPETRA_TPETRA
144 #endif // HAVE_XPETRA_EPETRA_NO_64BIT_GLOBAL_INDICES
148 #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)