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>
class Slot {
33 using execution_space = ExecSpace;
40 for (
int i = 0; i < static_cast<int>(Spaces::Priority::NUM_LEVELS); ++i) {
58 template <Spaces::Priority priority = Spaces::Priority::medium>
60 return instances_[
static_cast<int>(priority)];
75 Teuchos::RCP<const execution_space>
78 case Spaces::Priority::high:
80 case Spaces::Priority::medium:
82 case Spaces::Priority::low:
85 throw std::runtime_error(
"unexpected Tpetra Space priority");
94 Teuchos::RCP<const execution_space>
95 instances_[
static_cast<int>(Spaces::Priority::NUM_LEVELS)];
Declaration of Tpetra::Details::Behavior, a class that describes Tpetra's behavior.
Teuchos::RCP< const ExecSpace > space_instance(const Priority &priority, int i=0)
get a strong Teuchos::RCP to Tpetra-managed Kokkos execution space instance i
Priority
Priority interface for Tpetra's managed 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.
Nonmember function that computes a residual Computes R = B - A * X.
Namespace Tpetra contains the class and methods constituting the Tpetra library.