48 #ifdef HAVE_XPETRA_EPETRA
54 template<
class GlobalOrdinal,
class Node>
61 template<
class GlobalOrdinal,
class Node>
65 return epetraMap->getEpetra_Map();
68 template<
class GlobalOrdinal,
class Node>
69 const RCP< const Xpetra::Map<int, GlobalOrdinal, Node> >
toXpetra(
const Epetra_BlockMap &map)
71 RCP<const Epetra_BlockMap> m = rcp(
new Epetra_BlockMap(map));
77 #ifndef XPETRA_EPETRA_NO_32BIT_GLOBAL_INDICES
79 #ifdef HAVE_XPETRA_TPETRA
80 #include "TpetraCore_config.h"
81 #if ((defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_OPENMP)) || \
82 (!defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_SERIAL)))
83 template const RCP< const Map<int, int, Xpetra::EpetraNode > > toXpetra<int, Xpetra::EpetraNode>(
const Epetra_BlockMap &map);
84 template const Epetra_Map & toEpetra<int, Xpetra::EpetraNode >(
const RCP< const Map<int, int, Xpetra::EpetraNode > > &map);
85 template const Epetra_Map & toEpetra<int, Xpetra::EpetraNode >(
const Map< int, int, Xpetra::EpetraNode> & map);
87 #ifdef HAVE_TPETRA_INST_SERIAL
89 template const RCP< const Map<int, int, Kokkos::Compat::KokkosSerialWrapperNode > > toXpetra<int, Kokkos::Compat::KokkosSerialWrapperNode>(
const Epetra_BlockMap &map);
90 template const Epetra_Map & toEpetra<int, Kokkos::Compat::KokkosSerialWrapperNode >(
const RCP< const Map<int, int, Kokkos::Compat::KokkosSerialWrapperNode > > & map);
91 template const Epetra_Map & toEpetra<int, Kokkos::Compat::KokkosSerialWrapperNode >(
const Map< int, int, Kokkos::Compat::KokkosSerialWrapperNode> & map);
93 #ifdef HAVE_TPETRA_INST_PTHREAD
95 template const RCP< const Map<int, int, Kokkos::Compat::KokkosThreadsWrapperNode > > toXpetra<int, Kokkos::Compat::KokkosThreadsWrapperNode>(
const Epetra_BlockMap &map);
96 template const Epetra_Map & toEpetra<int, Kokkos::Compat::KokkosThreadsWrapperNode >(
const RCP< const Map<int, int, Kokkos::Compat::KokkosThreadsWrapperNode > > &map);
97 template const Epetra_Map & toEpetra<int, Kokkos::Compat::KokkosThreadsWrapperNode >(
const Map< int, int, Kokkos::Compat::KokkosThreadsWrapperNode> & map);
99 #ifdef HAVE_TPETRA_INST_OPENMP
101 template const RCP< const Map<int, int, Kokkos::Compat::KokkosOpenMPWrapperNode > > toXpetra<int, Kokkos::Compat::KokkosOpenMPWrapperNode>(
const Epetra_BlockMap &map);
102 template const Epetra_Map & toEpetra<int, Kokkos::Compat::KokkosOpenMPWrapperNode >(
const RCP< const Map<int, int, Kokkos::Compat::KokkosOpenMPWrapperNode > > &map);
103 template const Epetra_Map & toEpetra<int, Kokkos::Compat::KokkosOpenMPWrapperNode >(
const Map< int, int, Kokkos::Compat::KokkosOpenMPWrapperNode> & map);
105 #ifdef HAVE_TPETRA_INST_CUDA
106 typedef Kokkos::Compat::KokkosCudaWrapperNode default_node_type;
108 template const RCP< const Map<int, int, default_node_type > > toXpetra<int, default_node_type>(
const Epetra_BlockMap &map);
109 template const Epetra_Map & toEpetra<int, default_node_type >(
const RCP< const Map<int, int, default_node_type > > &map);
110 template const Epetra_Map & toEpetra<int, default_node_type >(
const Map< int, int, default_node_type> & map);
115 template const RCP< const Map<int, int, default_node_type > > toXpetra<int, default_node_type>(
const Epetra_BlockMap &map);
116 template const Epetra_Map & toEpetra<int, default_node_type >(
const RCP< const Map<int, int, default_node_type > > &map);
117 template const Epetra_Map & toEpetra<int, default_node_type >(
const Map< int, int, default_node_type> & map);
118 #endif // HAVE_XPETRA_TPETRA
120 #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, Kokkos::Compat::KokkosSerialWrapperNode > > toXpetra<long long, Kokkos::Compat::KokkosSerialWrapperNode>(
const Epetra_BlockMap &map);
138 template const Epetra_Map & toEpetra<long long, Kokkos::Compat::KokkosSerialWrapperNode >(
const RCP< const Map<int, long long, Kokkos::Compat::KokkosSerialWrapperNode > > & map);
139 template const Epetra_Map & toEpetra<long long, Kokkos::Compat::KokkosSerialWrapperNode >(
const Map< int, long long, Kokkos::Compat::KokkosSerialWrapperNode> & map);
142 #ifdef HAVE_TPETRA_INST_PTHREAD
144 template const RCP< const Map<int, long long, Kokkos::Compat::KokkosThreadsWrapperNode > > toXpetra<long long, Kokkos::Compat::KokkosThreadsWrapperNode>(
const Epetra_BlockMap &map);
145 template const Epetra_Map & toEpetra<long long, Kokkos::Compat::KokkosThreadsWrapperNode >(
const RCP< const Map<int, long long, Kokkos::Compat::KokkosThreadsWrapperNode > > &map);
146 template const Epetra_Map & toEpetra<long long, Kokkos::Compat::KokkosThreadsWrapperNode >(
const Map< int, long long, Kokkos::Compat::KokkosThreadsWrapperNode> & map);
149 #ifdef HAVE_TPETRA_INST_OPENMP
151 template const RCP< const Map<int, long long, Kokkos::Compat::KokkosOpenMPWrapperNode > > toXpetra<long long, Kokkos::Compat::KokkosOpenMPWrapperNode>(
const Epetra_BlockMap &map);
152 template const Epetra_Map & toEpetra<long long, Kokkos::Compat::KokkosOpenMPWrapperNode >(
const RCP< const Map<int, long long, Kokkos::Compat::KokkosOpenMPWrapperNode > > &map);
153 template const Epetra_Map & toEpetra<long long, Kokkos::Compat::KokkosOpenMPWrapperNode >(
const Map< int, long long, Kokkos::Compat::KokkosOpenMPWrapperNode> & map);
156 #ifdef HAVE_TPETRA_INST_CUDA
157 typedef Kokkos::Compat::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);
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);
170 #endif // HAVE_XPETRA_TPETRA
172 #endif // HAVE_XPETRA_EPETRA_NO_64BIT_GLOBAL_INDICES
176 #endif // HAVE_XPETRA_EPETRA
const Epetra_CrsGraph & toEpetra(const RCP< const CrsGraph< int, GlobalOrdinal, Node > > &graph)
virtual RCP< const Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node > > getMap() const
#define XPETRA_RCP_DYNAMIC_CAST(type, obj, newObj, exceptionMsg)
RCP< const CrsGraph< int, GlobalOrdinal, Node > > toXpetra(const Epetra_CrsGraph &g)
const Epetra_Map & getEpetra_Map() const