Xpetra  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Xpetra_EpetraCrsMatrix.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 <Teuchos_Array.hpp>
12 
13 namespace Xpetra {
14 
15 #ifndef XPETRA_EPETRA_NO_32BIT_GLOBAL_INDICES
16 #ifdef HAVE_XPETRA_TPETRA
17 #include "TpetraCore_config.h"
18 #if ((defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_OPENMP)) || \
19  (!defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_SERIAL)))
20 template class EpetraCrsMatrixT<int, Xpetra::EpetraNode>;
21 #endif
22 
23 #ifdef HAVE_TPETRA_INST_SERIAL
24 template class EpetraCrsMatrixT<int, Tpetra::KokkosCompat::KokkosSerialWrapperNode>;
25 #endif
26 #ifdef HAVE_TPETRA_INST_PTHREAD
27 template class EpetraCrsMatrixT<int, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>;
28 #endif
29 #ifdef HAVE_TPETRA_INST_OPENMP
30 template class EpetraCrsMatrixT<int, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>;
31 #endif
32 #ifdef HAVE_TPETRA_INST_CUDA
33 typedef Tpetra::KokkosCompat::KokkosCudaWrapperNode default_node_type;
34 template class EpetraCrsMatrixT<int, default_node_type>;
35 #endif
36 #ifdef HAVE_TPETRA_INST_HIP
37 typedef Tpetra::KokkosCompat::KokkosHIPWrapperNode default_node_type;
38 template class EpetraCrsMatrixT<int, default_node_type>;
39 #endif
40 #else
41 // Tpetra is disabled and Kokkos not available: use dummy node type
42 typedef Xpetra::EpetraNode default_node_type;
43 template class EpetraCrsMatrixT<int, default_node_type>;
44 #endif // HAVE_XPETRA_TPETRA
45 #endif
46 
47 #ifndef XPETRA_EPETRA_NO_64BIT_GLOBAL_INDICES
48 #ifdef HAVE_XPETRA_TPETRA
49 #include "TpetraCore_config.h"
50 #if ((defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_OPENMP)) || \
51  (!defined(EPETRA_HAVE_OMP) && !defined(HAVE_TPETRA_INST_SERIAL)))
52 template class EpetraCrsMatrixT<long long, Xpetra::EpetraNode>;
53 #endif
54 
55 #ifdef HAVE_TPETRA_INST_SERIAL
56 template class EpetraCrsMatrixT<long long, Tpetra::KokkosCompat::KokkosSerialWrapperNode>;
57 #endif
58 #ifdef HAVE_TPETRA_INST_PTHREAD
59 template class EpetraCrsMatrixT<long long, Tpetra::KokkosCompat::KokkosThreadsWrapperNode>;
60 #endif
61 #ifdef HAVE_TPETRA_INST_OPENMP
62 template class EpetraCrsMatrixT<long long, Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>;
63 #endif
64 #ifdef HAVE_TPETRA_INST_CUDA
65 typedef Tpetra::KokkosCompat::KokkosCudaWrapperNode default_node_type;
66 template class EpetraCrsMatrixT<long long, default_node_type>;
67 #endif
68 #ifdef HAVE_TPETRA_INST_HIP
69 typedef Tpetra::KokkosCompat::KokkosHIPWrapperNode default_node_type;
70 template class EpetraCrsMatrixT<long long, default_node_type>;
71 #endif
72 #else
73 // Tpetra is disabled and Kokkos not available: use dummy node type
74 typedef Xpetra::EpetraNode default_node_type;
75 template class EpetraCrsMatrixT<long long, default_node_type>;
76 #endif // HAVE_XPETRA_TPETRA
77 #endif
78 
79 } // namespace Xpetra
Tpetra::KokkosCompat::KokkosSerialWrapperNode EpetraNode