Xpetra Version of the Day
Loading...
Searching...
No Matches
Xpetra_EpetraMap.cpp
Go to the documentation of this file.
1// @HEADER
2// *****************************************************************************
3// Xpetra: A linear algebra interface package
4//
5// Copyright 2012 NTESS and the Xpetra contributors.
6// SPDX-License-Identifier: BSD-3-Clause
7// *****************************************************************************
8// @HEADER
9
10#include "Xpetra_ConfigDefs.hpp"
11
12#ifdef HAVE_XPETRA_EPETRA
13
14#include "Xpetra_EpetraMap.hpp"
15
16namespace Xpetra {
17
18template <class GlobalOrdinal, class Node>
20 const EpetraMapT<GlobalOrdinal, Node> &epetraMap = dynamic_cast<const EpetraMapT<GlobalOrdinal, Node> &>(*map.getMap());
21 return epetraMap.getEpetra_Map();
22}
23
24template <class GlobalOrdinal, class Node>
27 return epetraMap->getEpetra_Map();
28}
29
30template <class GlobalOrdinal, class Node>
35
36#ifndef XPETRA_EPETRA_NO_32BIT_GLOBAL_INDICES
37
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)))
45#endif
46#ifdef HAVE_TPETRA_INST_SERIAL
47// template class EpetraMapT<int, Tpetra::KokkosCompat::KokkosSerialWrapperNode >;
51#endif
52#ifdef HAVE_TPETRA_INST_PTHREAD
53// template class EpetraMapT<int, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>;
57#endif
58#ifdef HAVE_TPETRA_INST_OPENMP
59// template class EpetraMapT<int, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode >;
63#endif
64#ifdef HAVE_TPETRA_INST_CUDA
65typedef Tpetra::KokkosCompat::KokkosCudaWrapperNode default_node_type;
66// template class EpetraMapT<int, default_node_type >;
70#endif
71#ifdef HAVE_TPETRA_INST_HIP
72typedef Tpetra::KokkosCompat::KokkosHIPWrapperNode default_node_type;
73// template class EpetraMapT<int, default_node_type >;
77#endif
78#else
79// Tpetra is disabled and Kokkos not available: use dummy node type
80typedef Xpetra::EpetraNode default_node_type;
84#endif // HAVE_XPETRA_TPETRA
85
86#endif // XPETRA_EPETRA_NO_32BIT_GLOBAL_INDICES
87
88#ifndef XPETRA_EPETRA_NO_64BIT_GLOBAL_INDICES
89
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)))
97#endif
98
99#ifdef HAVE_TPETRA_INST_SERIAL
100// template class EpetraMapT<long long, Tpetra::KokkosCompat::KokkosSerialWrapperNode >;
104#endif
105
106#ifdef HAVE_TPETRA_INST_PTHREAD
107// template class EpetraMapT<long long, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>;
111#endif
112
113#ifdef HAVE_TPETRA_INST_OPENMP
114// template class EpetraMapT<long long, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode >;
118#endif
119
120#ifdef HAVE_TPETRA_INST_CUDA
121typedef Tpetra::KokkosCompat::KokkosCudaWrapperNode default_node_type;
122// template class EpetraMapT<long long, default_node_type >;
126#endif
127
128#ifdef HAVE_TPETRA_INST_HIP
129typedef Tpetra::KokkosCompat::KokkosHIPWrapperNode default_node_type;
130// template class EpetraMapT<long long, default_node_type >;
134#endif
135
136#else
137// Tpetra is disabled and Kokkos not available: use dummy node type
138typedef Xpetra::EpetraNode default_node_type;
142#endif // HAVE_XPETRA_TPETRA
143
144#endif // HAVE_XPETRA_EPETRA_NO_64BIT_GLOBAL_INDICES
145
146} // namespace Xpetra
147
148#endif // HAVE_XPETRA_EPETRA
#define XPETRA_RCP_DYNAMIC_CAST(type, obj, newObj, exceptionMsg)
const Epetra_Map & getEpetra_Map() const
virtual RCP< const Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node > > getMap() const
Tpetra::KokkosCompat::KokkosSerialWrapperNode EpetraNode
const Epetra_CrsGraph & toEpetra(const RCP< const CrsGraph< int, GlobalOrdinal, Node > > &graph)
template const Epetra_CrsGraph & toEpetra< long long, Xpetra::EpetraNode >(const RCP< const CrsGraph< int, long long, Xpetra::EpetraNode > > &graph)
RCP< const CrsGraph< int, GlobalOrdinal, Node > > toXpetra(const Epetra_CrsGraph &g)
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
template RCP< const CrsGraph< int, long long, Xpetra::EpetraNode > > toXpetra< long long, Xpetra::EpetraNode >(const Epetra_CrsGraph &g)
template const Epetra_CrsGraph & toEpetra< int, Xpetra::EpetraNode >(const RCP< const CrsGraph< int, int, Xpetra::EpetraNode > > &graph)
template RCP< const CrsGraph< int, int, Xpetra::EpetraNode > > toXpetra< int, Xpetra::EpetraNode >(const Epetra_CrsGraph &g)