20 template <
class GlobalOrdinal,
class Node>
23 return *(epetraGraph->getEpetra_CrsGraph());
27 template <
class GlobalOrdinal,
class Node>
28 RCP<const CrsGraph<int, GlobalOrdinal, Node> >
30 RCP<const Epetra_CrsGraph> const_graph = rcp(
new Epetra_CrsGraph(g));
31 RCP<Epetra_CrsGraph> graph =
32 Teuchos::rcp_const_cast<Epetra_CrsGraph>(const_graph);
36 #ifndef XPETRA_EPETRA_NO_32BIT_GLOBAL_INDICES
37 #ifdef HAVE_XPETRA_TPETRA
38 #include "TpetraCore_config.h"
39 #if ((defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_OPENMP)) || \
40 (!defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_SERIAL)))
41 template class EpetraCrsGraphT<int, Xpetra::EpetraNode>;
42 template RCP<const CrsGraph<int, int, Xpetra::EpetraNode> > toXpetra<int, Xpetra::EpetraNode>(
const Epetra_CrsGraph &g);
43 template const Epetra_CrsGraph &toEpetra<int, Xpetra::EpetraNode>(
const RCP<const CrsGraph<int, int, Xpetra::EpetraNode> > &graph);
45 #ifdef HAVE_TPETRA_INST_SERIAL
46 template class EpetraCrsGraphT<int, Tpetra::KokkosCompat::KokkosSerialWrapperNode>;
47 template RCP<const CrsGraph<int, int, Tpetra::KokkosCompat::KokkosSerialWrapperNode> > toXpetra<int, Tpetra::KokkosCompat::KokkosSerialWrapperNode>(
const Epetra_CrsGraph &g);
48 template const Epetra_CrsGraph &toEpetra<int, Tpetra::KokkosCompat::KokkosSerialWrapperNode>(
const RCP<const CrsGraph<int, int, Tpetra::KokkosCompat::KokkosSerialWrapperNode> > &graph);
50 #ifdef HAVE_TPETRA_INST_PTHREAD
51 template class EpetraCrsGraphT<int, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>;
52 template RCP<const CrsGraph<int, int, Tpetra::KokkosCompat::KokkosThreadsWrapperNode> > toXpetra<int, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>(
const Epetra_CrsGraph &g);
53 template const Epetra_CrsGraph &toEpetra<int, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>(
const RCP<const CrsGraph<int, int, Tpetra::KokkosCompat::KokkosThreadsWrapperNode> > &graph);
55 #ifdef HAVE_TPETRA_INST_OPENMP
56 template class EpetraCrsGraphT<int, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>;
57 template RCP<const CrsGraph<int, int, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode> > toXpetra<int, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>(
const Epetra_CrsGraph &g);
58 template const Epetra_CrsGraph &toEpetra<int, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>(
const RCP<const CrsGraph<int, int, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode> > &graph);
60 #ifdef HAVE_TPETRA_INST_CUDA
61 typedef Tpetra::KokkosCompat::KokkosCudaWrapperNode default_node_type;
62 template class EpetraCrsGraphT<int, default_node_type>;
63 template RCP<const CrsGraph<int, int, default_node_type> > toXpetra<int, default_node_type>(
const Epetra_CrsGraph &g);
64 template const Epetra_CrsGraph &toEpetra<int, default_node_type>(
const RCP<const CrsGraph<int, int, default_node_type> > &graph);
66 #ifdef HAVE_TPETRA_INST_HIP
67 typedef Tpetra::KokkosCompat::KokkosHIPWrapperNode default_node_type;
68 template class EpetraCrsGraphT<int, default_node_type>;
69 template RCP<const CrsGraph<int, int, default_node_type> > toXpetra<int, default_node_type>(
const Epetra_CrsGraph &g);
70 template const Epetra_CrsGraph &toEpetra<int, default_node_type>(
const RCP<const CrsGraph<int, int, default_node_type> > &graph);
75 template class EpetraCrsGraphT<int, default_node_type>;
76 template RCP<const CrsGraph<int, int, default_node_type> > toXpetra<int, default_node_type>(
const Epetra_CrsGraph &g);
77 template const Epetra_CrsGraph &toEpetra<int, default_node_type>(
const RCP<const CrsGraph<int, int, default_node_type> > &graph);
78 #endif // HAVE_XPETRA_TPETRA
81 #ifndef XPETRA_EPETRA_NO_64BIT_GLOBAL_INDICES
82 #ifdef HAVE_XPETRA_TPETRA
83 #include "TpetraCore_config.h"
84 #if ((defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_OPENMP)) || \
85 (!defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_SERIAL)))
86 template class EpetraCrsGraphT<long long, Xpetra::EpetraNode>;
87 template RCP<const CrsGraph<int, long long, Xpetra::EpetraNode> > toXpetra<long long, Xpetra::EpetraNode>(
const Epetra_CrsGraph &g);
88 template const Epetra_CrsGraph &toEpetra<long long, Xpetra::EpetraNode>(
const RCP<const CrsGraph<int, long long, Xpetra::EpetraNode> > &graph);
90 #ifdef HAVE_TPETRA_INST_SERIAL
91 template class EpetraCrsGraphT<long long, Tpetra::KokkosCompat::KokkosSerialWrapperNode>;
92 template RCP<const CrsGraph<int, long long, Tpetra::KokkosCompat::KokkosSerialWrapperNode> > toXpetra<long long, Tpetra::KokkosCompat::KokkosSerialWrapperNode>(
const Epetra_CrsGraph &g);
93 template const Epetra_CrsGraph &toEpetra<long long, Tpetra::KokkosCompat::KokkosSerialWrapperNode>(
const RCP<const CrsGraph<int, long long, Tpetra::KokkosCompat::KokkosSerialWrapperNode> > &graph);
95 #ifdef HAVE_TPETRA_INST_PTHREAD
96 template class EpetraCrsGraphT<long long, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>;
97 template RCP<const CrsGraph<int, long long, Tpetra::KokkosCompat::KokkosThreadsWrapperNode> > toXpetra<long long, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>(
const Epetra_CrsGraph &g);
98 template const Epetra_CrsGraph &toEpetra<long long, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>(
const RCP<const CrsGraph<int, long long, Tpetra::KokkosCompat::KokkosThreadsWrapperNode> > &graph);
100 #ifdef HAVE_TPETRA_INST_OPENMP
101 template class EpetraCrsGraphT<long long, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>;
102 template RCP<const CrsGraph<int, long long, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode> > toXpetra<long long, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>(
const Epetra_CrsGraph &g);
103 template const Epetra_CrsGraph &toEpetra<long long, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>(
const RCP<const CrsGraph<int, long long, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode> > &graph);
105 #ifdef HAVE_TPETRA_INST_CUDA
106 typedef Tpetra::KokkosCompat::KokkosCudaWrapperNode default_node_type;
107 template class EpetraCrsGraphT<long long, default_node_type>;
108 template RCP<const CrsGraph<int, long long, default_node_type> > toXpetra<long long, default_node_type>(
const Epetra_CrsGraph &g);
109 template const Epetra_CrsGraph &toEpetra<long long, default_node_type>(
const RCP<const CrsGraph<int, long long, default_node_type> > &graph);
111 #ifdef HAVE_TPETRA_INST_HIP
112 typedef Tpetra::KokkosCompat::KokkosHIPWrapperNode default_node_type;
113 template class EpetraCrsGraphT<long long, default_node_type>;
114 template RCP<const CrsGraph<int, long long, default_node_type> > toXpetra<long long, default_node_type>(
const Epetra_CrsGraph &g);
115 template const Epetra_CrsGraph &toEpetra<long long, default_node_type>(
const RCP<const CrsGraph<int, long long, default_node_type> > &graph);
120 template class EpetraCrsGraphT<long long, default_node_type>;
121 template RCP<const CrsGraph<int, long long, default_node_type> > toXpetra<long long, default_node_type>(
const Epetra_CrsGraph &g);
122 template const Epetra_CrsGraph &toEpetra<long long, default_node_type>(
const RCP<const CrsGraph<int, long long, default_node_type> > &graph);
123 #endif // HAVE_XPETRA_TPETRA
#define XPETRA_RCP_DYNAMIC_CAST(type, obj, newObj, exceptionMsg)
Tpetra::KokkosCompat::KokkosSerialWrapperNode EpetraNode
const Epetra_CrsGraph & toEpetra(const RCP< const CrsGraph< int, GlobalOrdinal, Node > > &graph)
RCP< const CrsGraph< int, GlobalOrdinal, Node > > toXpetra(const Epetra_CrsGraph &g)