Xpetra Version of the Day
Loading...
Searching...
No Matches
Xpetra_EpetraCrsGraph.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
11
12#include "Xpetra_Exceptions.hpp"
13#include "Xpetra_Utils.hpp"
16
17namespace Xpetra {
18
19// TODO: move that elsewhere
20template <class GlobalOrdinal, class Node>
23 return *(epetraGraph->getEpetra_CrsGraph());
24}
25
26// TODO: move that elsewhere
27template <class GlobalOrdinal, class Node>
28RCP<const CrsGraph<int, GlobalOrdinal, Node> >
32 Teuchos::rcp_const_cast<Epetra_CrsGraph>(const_graph);
34}
35
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)))
41template class EpetraCrsGraphT<int, Xpetra::EpetraNode>;
44#endif
45#ifdef HAVE_TPETRA_INST_SERIAL
49#endif
50#ifdef HAVE_TPETRA_INST_PTHREAD
54#endif
55#ifdef HAVE_TPETRA_INST_OPENMP
59#endif
60#ifdef HAVE_TPETRA_INST_CUDA
61typedef Tpetra::KokkosCompat::KokkosCudaWrapperNode default_node_type;
65#endif
66#ifdef HAVE_TPETRA_INST_HIP
67typedef Tpetra::KokkosCompat::KokkosHIPWrapperNode default_node_type;
71#endif
72#else
73// Tpetra is disabled and Kokkos not available: use dummy node type
74typedef Xpetra::EpetraNode default_node_type;
78#endif // HAVE_XPETRA_TPETRA
79#endif
80
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)))
89#endif
90#ifdef HAVE_TPETRA_INST_SERIAL
94#endif
95#ifdef HAVE_TPETRA_INST_PTHREAD
99#endif
100#ifdef HAVE_TPETRA_INST_OPENMP
104#endif
105#ifdef HAVE_TPETRA_INST_CUDA
106typedef Tpetra::KokkosCompat::KokkosCudaWrapperNode default_node_type;
110#endif
111#ifdef HAVE_TPETRA_INST_HIP
112typedef Tpetra::KokkosCompat::KokkosHIPWrapperNode default_node_type;
116#endif
117#else
118// Tpetra is disabled and Kokkos not available: use dummy node type
119typedef Xpetra::EpetraNode default_node_type;
123#endif // HAVE_XPETRA_TPETRA
124#endif
125
126} // namespace Xpetra
#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)
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)