10#ifndef TPETRA_DETAILS_EXEUTIONSPACESSLOT_HPP
11#define TPETRA_DETAILS_EXEUTIONSPACESSLOT_HPP
17#include "Teuchos_RCP.hpp"
20#include <Kokkos_Core.hpp>
31template <
typename ExecSpace>
43 instances_[
i] = Spaces::space_instance<execution_space>(
59 template <Spaces::Priority priority = Spaces::Priority::medium>
61 return instances_[
static_cast<int>(
priority)];
76 Teuchos::RCP<const execution_space>
79 case Spaces::Priority::high:
81 case Spaces::Priority::medium:
83 case Spaces::Priority::low:
86 throw std::runtime_error(
"unexpected Tpetra Space priority");
95 Teuchos::RCP<const execution_space>
96 instances_[
static_cast<int>(Spaces::Priority::NUM_LEVELS)];
Declaration of Tpetra::Details::Behavior, a class that describes Tpetra's behavior.
Priority
Priority interface for Tpetra's managed execution spaces.
Struct that holds views of the contents of a CrsMatrix.
Lazily acquires and stores Kokkos Execution Spaces.
Slot()
Default constructor that creates instances for each possible space priority level.
Teuchos::RCP< const execution_space > space_instance(const Spaces::Priority &priority) const
Get a specific execution space instance based on the given priority level.
Teuchos::RCP< const execution_space > space_instance() const
Get a specific execution space instance based on the given priority level.
Implementation details of Tpetra.
Namespace Tpetra contains the class and methods constituting the Tpetra library.