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 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 73 #ifdef HAVE_XPETRA_TPETRA 74 #include "TpetraCore_config.h" 75 #if ((defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_OPENMP)) || \ 76 (!defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_SERIAL))) 77 template const RCP< const Map<int, int, Xpetra::EpetraNode > > toXpetra<int, Xpetra::EpetraNode>(
const Epetra_BlockMap &map);
78 template const Epetra_Map & toEpetra<int, Xpetra::EpetraNode >(
const RCP< const Map<int, int, Xpetra::EpetraNode > > &map);
79 template const Epetra_Map & toEpetra<int, Xpetra::EpetraNode >(
const Map< int, int, Xpetra::EpetraNode> & map);
81 #ifdef HAVE_TPETRA_INST_SERIAL 83 template const RCP< const Map<int, int, Kokkos::Compat::KokkosSerialWrapperNode > > toXpetra<int, Kokkos::Compat::KokkosSerialWrapperNode>(
const Epetra_BlockMap &map);
84 template const Epetra_Map & toEpetra<int, Kokkos::Compat::KokkosSerialWrapperNode >(
const RCP< const Map<int, int, Kokkos::Compat::KokkosSerialWrapperNode > > & map);
85 template const Epetra_Map & toEpetra<int, Kokkos::Compat::KokkosSerialWrapperNode >(
const Map< int, int, Kokkos::Compat::KokkosSerialWrapperNode> & map);
87 #ifdef HAVE_TPETRA_INST_PTHREAD 89 template const RCP< const Map<int, int, Kokkos::Compat::KokkosThreadsWrapperNode > > toXpetra<int, Kokkos::Compat::KokkosThreadsWrapperNode>(
const Epetra_BlockMap &map);
90 template const Epetra_Map & toEpetra<int, Kokkos::Compat::KokkosThreadsWrapperNode >(
const RCP< const Map<int, int, Kokkos::Compat::KokkosThreadsWrapperNode > > &map);
91 template const Epetra_Map & toEpetra<int, Kokkos::Compat::KokkosThreadsWrapperNode >(
const Map< int, int, Kokkos::Compat::KokkosThreadsWrapperNode> & map);
93 #ifdef HAVE_TPETRA_INST_OPENMP 95 template const RCP< const Map<int, int, Kokkos::Compat::KokkosOpenMPWrapperNode > > toXpetra<int, Kokkos::Compat::KokkosOpenMPWrapperNode>(
const Epetra_BlockMap &map);
96 template const Epetra_Map & toEpetra<int, Kokkos::Compat::KokkosOpenMPWrapperNode >(
const RCP< const Map<int, int, Kokkos::Compat::KokkosOpenMPWrapperNode > > &map);
97 template const Epetra_Map & toEpetra<int, Kokkos::Compat::KokkosOpenMPWrapperNode >(
const Map< int, int, Kokkos::Compat::KokkosOpenMPWrapperNode> & map);
99 #ifdef HAVE_TPETRA_INST_CUDA 100 typedef Kokkos::Compat::KokkosCudaWrapperNode default_node_type;
102 template const RCP< const Map<int, int, default_node_type > > toXpetra<int, default_node_type>(
const Epetra_BlockMap &map);
103 template const Epetra_Map & toEpetra<int, default_node_type >(
const RCP< const Map<int, int, default_node_type > > &map);
104 template const Epetra_Map & toEpetra<int, default_node_type >(
const Map< int, int, default_node_type> & map);
109 template const RCP< const Map<int, int, default_node_type > > toXpetra<int, default_node_type>(
const Epetra_BlockMap &map);
110 template const Epetra_Map & toEpetra<int, default_node_type >(
const RCP< const Map<int, int, default_node_type > > &map);
111 template const Epetra_Map & toEpetra<int, default_node_type >(
const Map< int, int, default_node_type> & map);
112 #endif // HAVE_XPETRA_TPETRA 115 #ifndef XPETRA_EPETRA_NO_64BIT_GLOBAL_INDICES 116 #ifdef HAVE_XPETRA_TPETRA 117 #include "TpetraCore_config.h" 118 #if ((defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_OPENMP)) || \ 119 (!defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_SERIAL))) 120 template const RCP< const Map<int, long long, Xpetra::EpetraNode > > toXpetra<long long, Xpetra::EpetraNode>(
const Epetra_BlockMap &map);
121 template const Epetra_Map & toEpetra<long long, Xpetra::EpetraNode >(
const RCP< const Map<int, long long, Xpetra::EpetraNode > > &map);
122 template const Epetra_Map & toEpetra<long long, Xpetra::EpetraNode >(
const Map< int, long long, Xpetra::EpetraNode> & map);
125 #ifdef HAVE_TPETRA_INST_SERIAL 127 template const RCP< const Map<int, long long, Kokkos::Compat::KokkosSerialWrapperNode > > toXpetra<long long, Kokkos::Compat::KokkosSerialWrapperNode>(
const Epetra_BlockMap &map);
128 template const Epetra_Map & toEpetra<long long, Kokkos::Compat::KokkosSerialWrapperNode >(
const RCP< const Map<int, long long, Kokkos::Compat::KokkosSerialWrapperNode > > & map);
129 template const Epetra_Map & toEpetra<long long, Kokkos::Compat::KokkosSerialWrapperNode >(
const Map< int, long long, Kokkos::Compat::KokkosSerialWrapperNode> & map);
131 #ifdef HAVE_TPETRA_INST_PTHREAD 133 template const RCP< const Map<int, long long, Kokkos::Compat::KokkosThreadsWrapperNode > > toXpetra<long long, Kokkos::Compat::KokkosThreadsWrapperNode>(
const Epetra_BlockMap &map);
134 template const Epetra_Map & toEpetra<long long, Kokkos::Compat::KokkosThreadsWrapperNode >(
const RCP< const Map<int, long long, Kokkos::Compat::KokkosThreadsWrapperNode > > &map);
135 template const Epetra_Map & toEpetra<long long, Kokkos::Compat::KokkosThreadsWrapperNode >(
const Map< int, long long, Kokkos::Compat::KokkosThreadsWrapperNode> & map);
137 #ifdef HAVE_TPETRA_INST_OPENMP 139 template const RCP< const Map<int, long long, Kokkos::Compat::KokkosOpenMPWrapperNode > > toXpetra<long long, Kokkos::Compat::KokkosOpenMPWrapperNode>(
const Epetra_BlockMap &map);
140 template const Epetra_Map & toEpetra<long long, Kokkos::Compat::KokkosOpenMPWrapperNode >(
const RCP< const Map<int, long long, Kokkos::Compat::KokkosOpenMPWrapperNode > > &map);
141 template const Epetra_Map & toEpetra<long long, Kokkos::Compat::KokkosOpenMPWrapperNode >(
const Map< int, long long, Kokkos::Compat::KokkosOpenMPWrapperNode> & map);
143 #ifdef HAVE_TPETRA_INST_CUDA 144 typedef Kokkos::Compat::KokkosCudaWrapperNode default_node_type;
146 template const RCP< const Map<int, long long, default_node_type > > toXpetra<long long, default_node_type>(
const Epetra_BlockMap &map);
147 template const Epetra_Map & toEpetra<long long, default_node_type >(
const RCP< const Map<int, long long, default_node_type > > &map);
148 template const Epetra_Map & toEpetra<long long, default_node_type >(
const Map< int, long long, default_node_type> & map);
153 template const RCP< const Map<int, long long, default_node_type > > toXpetra<long long, default_node_type>(
const Epetra_BlockMap &map);
154 template const Epetra_Map & toEpetra<long long, default_node_type >(
const RCP< const Map<int, long long, default_node_type > > &map);
155 template const Epetra_Map & toEpetra<long long, default_node_type >(
const Map< int, long long, default_node_type> & map);
156 #endif // HAVE_XPETRA_TPETRA
const Epetra_CrsGraph & toEpetra(const RCP< const CrsGraph< int, GlobalOrdinal, Node > > &graph)
#define XPETRA_RCP_DYNAMIC_CAST(type, obj, newObj, exceptionMsg)
RCP< const CrsGraph< int, GlobalOrdinal, Node > > toXpetra(const Epetra_CrsGraph &g)
virtual RCP< const Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node > > getMap() const
const Epetra_Map & getEpetra_Map() const