56 template <
class GlobalOrdinal,
class Node>
59 return *(epetraGraph->getEpetra_CrsGraph());
63 template <
class GlobalOrdinal,
class Node>
64 RCP<const CrsGraph<int, GlobalOrdinal, Node> >
66 RCP<const Epetra_CrsGraph> const_graph = rcp(
new Epetra_CrsGraph(g));
67 RCP<Epetra_CrsGraph> graph =
68 Teuchos::rcp_const_cast<Epetra_CrsGraph>(const_graph);
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 class EpetraCrsGraphT<int, Xpetra::EpetraNode>;
78 template RCP<const CrsGraph<int, int, Xpetra::EpetraNode> > toXpetra<int, Xpetra::EpetraNode>(
const Epetra_CrsGraph &g);
79 template const Epetra_CrsGraph &toEpetra<int, Xpetra::EpetraNode>(
const RCP<const CrsGraph<int, int, Xpetra::EpetraNode> > &graph);
81 #ifdef HAVE_TPETRA_INST_SERIAL
82 template class EpetraCrsGraphT<int, Tpetra::KokkosCompat::KokkosSerialWrapperNode>;
83 template RCP<const CrsGraph<int, int, Tpetra::KokkosCompat::KokkosSerialWrapperNode> > toXpetra<int, Tpetra::KokkosCompat::KokkosSerialWrapperNode>(
const Epetra_CrsGraph &g);
84 template const Epetra_CrsGraph &toEpetra<int, Tpetra::KokkosCompat::KokkosSerialWrapperNode>(
const RCP<const CrsGraph<int, int, Tpetra::KokkosCompat::KokkosSerialWrapperNode> > &graph);
86 #ifdef HAVE_TPETRA_INST_PTHREAD
87 template class EpetraCrsGraphT<int, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>;
88 template RCP<const CrsGraph<int, int, Tpetra::KokkosCompat::KokkosThreadsWrapperNode> > toXpetra<int, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>(
const Epetra_CrsGraph &g);
89 template const Epetra_CrsGraph &toEpetra<int, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>(
const RCP<const CrsGraph<int, int, Tpetra::KokkosCompat::KokkosThreadsWrapperNode> > &graph);
91 #ifdef HAVE_TPETRA_INST_OPENMP
92 template class EpetraCrsGraphT<int, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>;
93 template RCP<const CrsGraph<int, int, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode> > toXpetra<int, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>(
const Epetra_CrsGraph &g);
94 template const Epetra_CrsGraph &toEpetra<int, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>(
const RCP<const CrsGraph<int, int, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode> > &graph);
96 #ifdef HAVE_TPETRA_INST_CUDA
97 typedef Tpetra::KokkosCompat::KokkosCudaWrapperNode default_node_type;
98 template class EpetraCrsGraphT<int, default_node_type>;
99 template RCP<const CrsGraph<int, int, default_node_type> > toXpetra<int, default_node_type>(
const Epetra_CrsGraph &g);
100 template const Epetra_CrsGraph &toEpetra<int, default_node_type>(
const RCP<const CrsGraph<int, int, default_node_type> > &graph);
102 #ifdef HAVE_TPETRA_INST_HIP
103 typedef Tpetra::KokkosCompat::KokkosHIPWrapperNode default_node_type;
104 template class EpetraCrsGraphT<int, default_node_type>;
105 template RCP<const CrsGraph<int, int, default_node_type> > toXpetra<int, default_node_type>(
const Epetra_CrsGraph &g);
106 template const Epetra_CrsGraph &toEpetra<int, default_node_type>(
const RCP<const CrsGraph<int, int, default_node_type> > &graph);
111 template class EpetraCrsGraphT<int, default_node_type>;
112 template RCP<const CrsGraph<int, int, default_node_type> > toXpetra<int, default_node_type>(
const Epetra_CrsGraph &g);
113 template const Epetra_CrsGraph &toEpetra<int, default_node_type>(
const RCP<const CrsGraph<int, int, default_node_type> > &graph);
114 #endif // HAVE_XPETRA_TPETRA
117 #ifndef XPETRA_EPETRA_NO_64BIT_GLOBAL_INDICES
118 #ifdef HAVE_XPETRA_TPETRA
119 #include "TpetraCore_config.h"
120 #if ((defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_OPENMP)) || \
121 (!defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_SERIAL)))
122 template class EpetraCrsGraphT<long long, Xpetra::EpetraNode>;
123 template RCP<const CrsGraph<int, long long, Xpetra::EpetraNode> > toXpetra<long long, Xpetra::EpetraNode>(
const Epetra_CrsGraph &g);
124 template const Epetra_CrsGraph &toEpetra<long long, Xpetra::EpetraNode>(
const RCP<const CrsGraph<int, long long, Xpetra::EpetraNode> > &graph);
126 #ifdef HAVE_TPETRA_INST_SERIAL
127 template class EpetraCrsGraphT<long long, Tpetra::KokkosCompat::KokkosSerialWrapperNode>;
128 template RCP<const CrsGraph<int, long long, Tpetra::KokkosCompat::KokkosSerialWrapperNode> > toXpetra<long long, Tpetra::KokkosCompat::KokkosSerialWrapperNode>(
const Epetra_CrsGraph &g);
129 template const Epetra_CrsGraph &toEpetra<long long, Tpetra::KokkosCompat::KokkosSerialWrapperNode>(
const RCP<const CrsGraph<int, long long, Tpetra::KokkosCompat::KokkosSerialWrapperNode> > &graph);
131 #ifdef HAVE_TPETRA_INST_PTHREAD
132 template class EpetraCrsGraphT<long long, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>;
133 template RCP<const CrsGraph<int, long long, Tpetra::KokkosCompat::KokkosThreadsWrapperNode> > toXpetra<long long, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>(
const Epetra_CrsGraph &g);
134 template const Epetra_CrsGraph &toEpetra<long long, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>(
const RCP<const CrsGraph<int, long long, Tpetra::KokkosCompat::KokkosThreadsWrapperNode> > &graph);
136 #ifdef HAVE_TPETRA_INST_OPENMP
137 template class EpetraCrsGraphT<long long, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>;
138 template RCP<const CrsGraph<int, long long, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode> > toXpetra<long long, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>(
const Epetra_CrsGraph &g);
139 template const Epetra_CrsGraph &toEpetra<long long, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>(
const RCP<const CrsGraph<int, long long, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode> > &graph);
141 #ifdef HAVE_TPETRA_INST_CUDA
142 typedef Tpetra::KokkosCompat::KokkosCudaWrapperNode default_node_type;
143 template class EpetraCrsGraphT<long long, default_node_type>;
144 template RCP<const CrsGraph<int, long long, default_node_type> > toXpetra<long long, default_node_type>(
const Epetra_CrsGraph &g);
145 template const Epetra_CrsGraph &toEpetra<long long, default_node_type>(
const RCP<const CrsGraph<int, long long, default_node_type> > &graph);
147 #ifdef HAVE_TPETRA_INST_HIP
148 typedef Tpetra::KokkosCompat::KokkosHIPWrapperNode default_node_type;
149 template class EpetraCrsGraphT<long long, default_node_type>;
150 template RCP<const CrsGraph<int, long long, default_node_type> > toXpetra<long long, default_node_type>(
const Epetra_CrsGraph &g);
151 template const Epetra_CrsGraph &toEpetra<long long, default_node_type>(
const RCP<const CrsGraph<int, long long, default_node_type> > &graph);
156 template class EpetraCrsGraphT<long long, default_node_type>;
157 template RCP<const CrsGraph<int, long long, default_node_type> > toXpetra<long long, default_node_type>(
const Epetra_CrsGraph &g);
158 template const Epetra_CrsGraph &toEpetra<long long, default_node_type>(
const RCP<const CrsGraph<int, long long, default_node_type> > &graph);
159 #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)