11#ifndef PANZER_KOKKOS_NODE_TYPE_HPP
12#define PANZER_KOKKOS_NODE_TYPE_HPP
14#include "Phalanx_KokkosDeviceTypes.hpp"
15#include <Tpetra_KokkosCompat_ClassicNodeAPI_Wrapper.hpp>
40 Tpetra::KokkosCompat::KokkosDeviceWrapperNode<PHX::ExecutionSpace,
58 template <
typename Node>
61#if defined(HAVE_TPETRA_INST_SERIAL) && defined(KOKKOS_ENABLE_SERIAL)
66#if defined(HAVE_TPETRA_INST_OPENMP) && defined(KOKKOS_ENABLE_OPENMP)
68 struct TpetraNodeIsInstantiated<Tpetra::KokkosCompat::KokkosOpenMPWrapperNode>
71#if defined(HAVE_TPETRA_INST_PTHREAD) && defined(KOKKOS_ENABLE_THREADS)
76#if defined(HAVE_TPETRA_INST_CUDA) && defined(KOKKOS_ENABLE_CUDA)
81#if defined(HAVE_TPETRA_INST_HIP) && defined(KOKKOS_ENABLE_HIP)
86#if defined(HAVE_TPETRA_INST_SYCL) && defined(KOKKOS_ENABLE_SYCL)
93 "panzer: the Tpetra node type panzer derives from Phalanx' "
94 "execution and memory spaces is not one that Tpetra "
95 "instantiated, so every Tpetra object panzer creates would "
96 "fail to link. Either set the Tpetra_INST_<BACKEND> matching "
97 "Phalanx_DEFAULT_EXECUTION_SPACE -- note Tpetra_INST_HIP and "
98 "Tpetra_INST_SYCL are OFF by default, so a HIP or SYCL build "
99 "needs one set explicitly -- or make "
100 "Tpetra_ALLOCATE_IN_SHARED_SPACE agree with "
101 "Phalanx_ENABLE_SHARED_SPACE, since the two select the same "
102 "Kokkos::SharedSpace and enabling one alone changes the node's "
103 "memory space to one Tpetra did not instantiate.");
Tpetra::KokkosCompat::KokkosDeviceWrapperNode< PHX::ExecutionSpace, PHX::MemorySpace > TpetraNodeType
The Kokkos node type used to instantiate all Tpetra objects (Map, MultiVector, CrsGraph,...
Whether Tpetra explicitly instantiated its classes over Node.